如何在 Hugo 中翻译标签(分类法)?
How to translate tags (taxonomies) in Hugo?
我正在尝试翻译 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
来翻译分类名称)但是这样也不管用
如何翻译标签?
每个标签都是分类法的一部分。类别是另一个例子——这两种类型都已经在 Hugo 中预定义了。
Hugo 中多语言页面的工作方式是您有两个单独的文件来填充不同的内容。您在这里需要知道的是,分类法也是您可以在相应的内容文件中直接翻译的东西,别处没有。
在您的特定情况下,如果您将标签作为已翻译的标签放入您的 post 文件中,它们将显示在每个已翻译的页面中。
这看起来很明显,但您很快就会意识到,如果您转到分类列表页面(例如 <URL>/tags/
),那么您会看到默认语言的所有标签。如果您切换另一种语言,比方说法语,它可能会转到另一个 URI,如 <URL>/fr/tags/
并显示该特定语言的所有标签。
接下来,您在这里期望的是您可以单击任何标签并查看与它相关的页面。是的,您可以 - 但在该特定概览页面上切换语言会告诉您其他语言没有这样的标签(除非它们的名称完全相同,这有时可能会发生)。
这是 Hugo 在两个标签之间建立联系变得有点不方便的地方,您需要在 /taxonomy/tag/<mytagname>.fr.md
下创建额外的模板文件,并在 front matter 中使用 translationKey
属性这将包含小写的英文名称。
这就是所谓的“绕过默认链接”,您可以从相应的 Hugo documentation page.
中阅读更多相关信息
我正在尝试翻译 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
来翻译分类名称)但是这样也不管用
如何翻译标签?
每个标签都是分类法的一部分。类别是另一个例子——这两种类型都已经在 Hugo 中预定义了。
Hugo 中多语言页面的工作方式是您有两个单独的文件来填充不同的内容。您在这里需要知道的是,分类法也是您可以在相应的内容文件中直接翻译的东西,别处没有。
在您的特定情况下,如果您将标签作为已翻译的标签放入您的 post 文件中,它们将显示在每个已翻译的页面中。
这看起来很明显,但您很快就会意识到,如果您转到分类列表页面(例如 <URL>/tags/
),那么您会看到默认语言的所有标签。如果您切换另一种语言,比方说法语,它可能会转到另一个 URI,如 <URL>/fr/tags/
并显示该特定语言的所有标签。
接下来,您在这里期望的是您可以单击任何标签并查看与它相关的页面。是的,您可以 - 但在该特定概览页面上切换语言会告诉您其他语言没有这样的标签(除非它们的名称完全相同,这有时可能会发生)。
这是 Hugo 在两个标签之间建立联系变得有点不方便的地方,您需要在 /taxonomy/tag/<mytagname>.fr.md
下创建额外的模板文件,并在 front matter 中使用 translationKey
属性这将包含小写的英文名称。
这就是所谓的“绕过默认链接”,您可以从相应的 Hugo documentation page.
中阅读更多相关信息