Немного о том, с чем мне пришлось побороться, чтобы запустить этот сайт.
Замечание: Я использую YAML для настройки Hugo, потому что у TOML всё плохо с древовидными структурами типа конфигурации меню (они трудно читаемы), а JSON вообще плохо подходит для человеческих задач :) Формат по умолчанию для метаинформации в начале нового поста можно настроить, отредактировав шаблон archetypes/default.md.
-
Настраиваем i18n в Hugo как обычно:
defaultContentLanguage: en defaultContentLanguageInSubdir: false params.displayFullLangName: falseparams.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.<код языка>.mdandcontent/search.<код языка>.md. Внутри достаточно будет блока метаинформации с единственным полемtitle. -
Добавляем новые посты на языке по умолчанию
posts/some-new-post.mdи соответствущий перевод на другой языкposts/some-new-post.<код языка>.md.