Немного о том, с чем мне пришлось побороться, чтобы запустить этот сайт.
Замечание: Я использую YAML для настройки Hugo, потому что у TOML всё плохо с древовидными структурами типа конфигурации меню (они трудно читаемы), а JSON вообще плохо подходит для человеческих задач :) Формат по умолчанию для метаинформации в начале нового поста можно настроить, отредактировав шаблон archetypes/default.md
.
-
Настраиваем i18n в Hugo как обычно:
defaultContentLanguage: en defaultContentLanguageInSubdir: false params.displayFullLangName: false
params.displayFullLangName: false
говорит PaperMod показывать язык в селекторе в виде двухбуквенного кода вместо полного названия. -
Переводим пункты главного меню.
Пример:
languages: en: weight: 10 languageName: English menu: main: - weight: 10 name: Posts pageRef: /posts - weight: 20 name: Tags pageRef: /tags - weight: 30 name: Categories pageRef: /categories - weight: 40 name: Search pageRef: /search ru: weight: 20 languageName: Русский menu: main: - weight: 10 name: Посты title: Посты pageRef: /posts - weight: 20 name: Теги title: Теги url: /tags - weight: 30 name: Категории title: Категории pageRef: /categories - weight: 40 name: Поиск title: Поиск pageRef: /search
-
Добавляем JSON в выхлоп, чтобы заработал поиск:
outputs: home: [HTML, RSS, JSON]
-
Добавляем перевод для страницы со списком постов: создаём файл
content/_index.<language ID>.md
и поле метаинформацииtitle
добавляем перевод слова «Posts»:Например:
content/_index.ru.md
--- title: Посты ---
-
Добавляем страницу поиска
content/search.md
и её переводыcontent/search.<код языка>.md
.Например:
content/search.md
:--- title: Search layout: search summary: Search placeholder: Search the site ---
content/search.ru.md
:--- title: Поиск layout: search summary: Страница поиска по сайту placeholder: Поиск по сайту ---
-
Добавляем переводы для вспомогательных страниц «Tags», «Categories» and «Search»: создаём
content/categories.<код языка>.md
,content/tags.<код языка>.md
andcontent/search.<код языка>.md
. Внутри достаточно будет блока метаинформации с единственным полемtitle
. -
Добавляем новые посты на языке по умолчанию
posts/some-new-post.md
и соответствущий перевод на другой языкposts/some-new-post.<код языка>.md
.