【问题标题】:How to list all languages in correct order and switch to a language-specific URL?如何以正确的顺序列出所有语言并切换到特定语言的 URL?
【发布时间】:2018-05-26 10:03:12
【问题描述】:

我在 Ubuntu 上使用 Hugo 0.40.1 https://gohugo.io/,并尝试使用以下代码创建语言切换控件:

{{ 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. 根据文档,$.Site.Languages 应该可以工作 按照 weight 指定的顺序,但不能像 语言没有以任何可预测的方式排序
  3. 不清楚(从文档中)如何构造 URL 指向 到当前页面的不同语言

我正在尝试将其发布在这里以及 GitHub 上,以试图找到过去使用 Hugo 实现类似功能的人。

【问题讨论】:

    标签: hugo static-site


    【解决方案1】:

    Hugo 的论坛非常有帮助,最终我找到了解决方案。有关详细信息,请参阅此链接: this question in the Hugo discussion forum

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

    我的主要错误是使用 Site.Languages,而我必须使用 Translations 或 AllTranslations。

    不确定订单和 LanguageName 有什么问题,因为在某个时刻它刚刚“开始工作”。

    【讨论】:

      猜你喜欢
      • 2013-01-10
      • 1970-01-01
      • 1970-01-01
      • 2021-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      相关资源
      最近更新 更多