Мультиязычный сайт
Публикуйте заметки на нескольких языках из одного хранилища. trip2g использует подход на основе папок: каждый язык хранится в отдельной подпапке, а посетители могут переключаться между языками с помощью автоматически появляющегося переключателя.
Как это работает
Организуйте хранилище так, чтобы у каждого языка была своя папка:
docs/
en/
user/
getting-started.md
multilingual.md
ru/
user/
Начало работы.md
multilingual.md
Добавьте свойство lang на главную страницу каждого языкового раздела:
---
lang: ru
---
trip2g использует lang для связывания заметок с языком и для правильного формирования атрибута <html lang="..."> на каждой странице.
Переключение языков
Свяжите одну и ту же страницу на разных языках с помощью lang_redirect. Когда это свойство задано, в шапке страницы автоматически появляется кнопка переключения языка.
---
title: "Мультиязычный сайт"
lang_redirect: "[[en/user/multilingual]]"
---
Значение должно быть вики-ссылкой на соответствующую заметку. На английской странице укажите ссылку обратно на русскую:
---
title: "Multilingual sites"
lang_redirect: "[[ru/user/multilingual]]"
---
Переключатель языка появляется только тогда, когда связанная заметка существует и доступна посетителю.
Боковая панель для каждого языка
Разместите _sidebar.md внутри языковой папки — он будет применяться ко всем заметкам в этой папке и её подпапках:
docs/
en/
user/
_sidebar.md ← применяется ко всем EN-заметкам в user/
ru/
user/
_sidebar.md ← применяется ко всем RU-заметкам в user/
Каждая боковая панель пишется на нужном языке и ссылается только на заметки своего раздела. В RU-боковой панели используйте короткую форму вики-ссылок, так как боковая панель и заметки находятся в одной папке:
**Начало работы**
- [[Начало работы]]
- [[multilingual|Мультиязычность]]
Подвал для каждого языка
_footer.md работает так же, как _sidebar.md — поместите его в корень языкового раздела, и он применится ко всем заметкам ниже:
docs/
en/
_footer.md ← подвал для всех EN-заметок
ru/
_footer.md ← подвал для всех RU-заметок
Главная страница для каждого языка
Используйте систему журнала (magazine), чтобы главная страница показывала карточки только для одного языка. Свойство magazine_include_files ограничивает набор заметок-карточек, а lang помечает язык главной страницы:
---
lang: ru
content: [self, magazine]
magazine_include_files: ru/**/*.md
magazine_include_property: home_position
---
---
lang: en
content: [self, magazine]
magazine_include_files: en/**/*.md
magazine_include_property: home_position
---
Порядок карточек задаётся свойством home_position на каждой заметке:
---
home_position: 1
---
Меньшее значение — выше на странице. Заметки без home_position в журнал не попадают.
Советы
- Единый slug — используйте одинаковый
slug(например,slug: multilingual) в обеих языковых версиях, чтобы URL были предсказуемыми и удобными для перекрёстных ссылок. - Боковая панель для каждого языка — создайте
_sidebar.mdв каждой языковой папке, чтобы навигация всегда была на языке читателя. - Отдельные главные страницы — дайте каждому языку собственный
_index.mdсlangиmagazine_include_files, ограниченным папкой этого языка. lang_redirectдобавляется не везде — указывайте его только там, где существует переведённый аналог. Страницы без пары просто не покажут переключатель языка.
Смотрите также
- Свойства заметок — справочник по свойствам frontmatter
- Мультидомены — размещение каждого языка на отдельном домене