Интернационализация
Конфигурация i18n на уровне сайта
Чтобы использовать многоязычную поддержку в VuePress, вам сначала необходимо использовать следующую структуру файлов:
docs
├─ README.md
├─ foo.md
├─ nested
│ └─ README.md
└─ ru
├─ README.md
├─ foo.md
└─ nested
└─ README.md
Затем, укажите опцию locales
в файле .vuepress/config.js
:
module.exports = {
locales: {
// Ключ — это путь вложенности для локализации.
// Локализация по умолчанию может использовать '/' в качестве пути.
'/': {
lang: 'en-US', // это будет установлено атрибутом lang в теге <html>
title: 'VuePress',
description: 'Vue-powered Static Site Generator'
},
'/ru/': {
lang: 'ru',
title: 'VuePress',
description: 'Генератор статических сайтов на Vue'
}
}
}
Если локализация не имеет title
или description
VuePress будет возвращаться к значениям корневого уровня. Вы можете опустить на корневом уровне title
и description
если они указаны в каждой локализации.
Конфигурация i18n темы по умолчанию
Тема по умолчанию также имеет встроенную поддержку i18n с помощью опции themeConfig.locales
, используя аналогичный формат { path: config }
. Каждая локализация должна иметь собственные опции nav и sidebar, в дополнение к нескольким другим текстовым значениям, используемым на сайте:
module.exports = {
locales: { /* ... */ },
themeConfig: {
locales: {
'/': {
// текст для выпадающего списка доступных локализаций
selectText: 'Languages',
// текст для текущей локализации в выпадающем списке
label: 'English',
// текст для ссылок редактирования на github
editLinkText: 'Edit this page on GitHub',
// настройки поиска algolia для текущей локализации
algolia: {},
nav: [
{ text: 'Nested', link: '/nested/' }
],
sidebar: {
'/': [/* ... */],
'/nested/': [/* ... */]
}
},
'/ru/': {
selectText: 'Languages',
label: 'Русский',
editLinkText: 'Изменить эту страницу на GitHub',
nav: [
{ text: 'Вложенная страница', link: '/ru/nested/' }
],
algolia: {},
sidebar: {
'/ru/': [/* ... */],
'/ru/nested/': [/* ... */]
}
}
}
}
}