Как перечислить все языки в правильном порядке и перейти на URL-адрес конкретного языка? - PullRequest
0 голосов
/ 26 мая 2018

Я использую Hugo 0.40.1 https://gohugo.io/ в Ubuntu и пытаюсь создать элемент управления переключением языка, используя следующий код:

{{ range $.Site.Languages }}
    <span href="#"> {{ .Lang }} - {{ .LanguageName }} </span>
{{ end }}

Где config.yamlФайл содержит следующее:

languages:
  en:
    weight: 1
    LanguageName: english
  es:
    weight: 2
    LanguageName: español
  fr:
    weight: 3
    LanguageName: français

С этим связаны следующие проблемы:

  1. независимо от того, какие переменные / выражения я пытаюсь использовать, я не могу отобразить .LanguageName - либо отображается пустая строка, либо имя языка текущей страницы повторяется повсюду;обратите внимание, что .Lang работает правильно - но ничего больше
  2. в соответствии с документацией $. Сайт.Languages ​​ должен работать в порядке, указанном вес , но не работает так, и языки не упорядочены каким-либо предсказуемым образом
  3. неясно (из документации), как построить URL, указывающие на разные языки текущей страницы

Я пытаюсь опубликовать это здесь, а также на GitHub, чтобы найти кого-то, кто реализовывал нечто подобное в прошлом с Хьюго.

1 Ответ

0 голосов
/ 28 мая 2018

Дискуссионный форум Хьюго был очень полезным, и в конце концов я нашел решение.Подробности см. По этой ссылке: этот вопрос в дискуссионном форуме Гюго

{{ range $.AllTranslations }}
    <a class='{{if eq .Lang $.Lang}} selected {{end}}' href='{{.RelPermalink}}'> {{ .Language.LanguageName }} </a>
{{ end }}

Моя главная ошибка - использование Site.Languages, где мне приходилось использовать Переводы или AllTranslations.

Не уверен, в чем была проблема с заказом и LanguageName, потому что в какой-то момент он просто "начал работать".

...