【问题标题】:How to translate tags (taxonomies) in Hugo?如何在 Hugo 中翻译标签(分类法)?
【发布时间】:2020-10-12 06:56:54
【问题描述】:

我正在尝试翻译 Hugo 中的标签。

我的标签只在我的帖子的元数据中声明:

---
author: arthur.sw
date: 2007-01-01T00:00:35Z
tags:
  - experiment
  - reflection
---

... post content ...

我将它们翻译成我的语言文件:

/i18n/en.toml:

[Experiment]
one = "Experiment"
other = "Experiments"

[Reflection]
one = "Reflection"
other = "Reflections"

/i18n/fr.toml:

[Experiment]
one = "Expérience"
other = "Expériences"

[Reflection]
one = "Réflexion"
other = "Réflexions"

但无论我是否使用大写字母,它都不会翻译标签。

我也试过修改我的layouts/_default/list.html:

[...]

        <h1 class='title'>
          {{- if eq .Kind "taxonomy" -}}
          <span class='taxonomy-type'>
            {{- ( ( i18n .Data.Singular 1 ) | default .Data.Singular ) | title -}}
            {{- print ": " -}}
          </span>
          {{- end -}}

          {{- i18n .Title -}}

        </h1>

[...]

(我在.Title 之前添加了i18n 来翻译分类名称)但这也不起作用。

如何翻译标签?

【问题讨论】:

    标签: internationalization taxonomy hugo


    【解决方案1】:

    每个标签都是分类的一部分。类别是另一个例子——这两种类型都已经在 Hugo 中预定义了。

    Hugo 中多语言页面的工作方式是您将有两个单独的文件来填充不同的内容。您需要在这里知道的是,分类法也是您可以直接在相应的内容文件中翻译的东西,别无他处。

    在您的特定情况下,如果您将标签作为翻译标签放入您的帖子文件中,它们将显示在每个翻译页面中。

    这看起来很明显,但您很快就会意识到,如果您转到分类列表页面(例如&lt;URL&gt;/tags/),那么您会看到默认语言的所有标签。如果您切换另一种语言,比如说法语,它可能会转到另一个 URI,例如 &lt;URL&gt;/fr/tags/,并显示该特定语言的所有标签。 接下来,您在这里期望的是,您可以单击任何标签并查看与之相关的页面。是的,你可以——但是在特定的概览页面上切换语言会告诉你其他语言没有这样的标签(除非它们的名称完全相同,这有时可能会发生)。

    这对于 Hugo 来说在两个标签之间建立连接变得有点不方便,您将需要在 /taxonomy/tag/&lt;mytagname&gt;.fr.md 下创建额外的模板文件,在前面的内容中使用 translationKey 属性,其中将包含英文名称小写。

    这就是所谓的“绕过默认链接”,您可以从各自的Hugo documentation page 中了解更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-07
      • 1970-01-01
      • 2016-11-05
      • 2013-04-04
      • 1970-01-01
      • 2015-11-11
      相关资源
      最近更新 更多