如何翻译 Hugo 中的配置文件?
How to translate a config file in Hugo?
我是第一次使用 Hugo,我遇到了翻译问题。
更具体地说,我正在使用 hugo-theme-bootstrap 主题。在 config\_default
中,我有一个名为 author.toml
的文件,其中包含作者姓名、简历、城市等信息。它看起来像这样:
name = "Pascal Bergeron"
avatar = "images/profile.jpg"
bio = "Description française."
location = "Montréal"
问题是我的网站的英文版和法文版都使用了这个文件。但是,我需要根据语言更改 bio
和 location
字段。我尝试创建一个名为 author.fr.toml
的文件,但它的设置最终被忽略了。事实上,如果我什至将 author.toml
重命名为 author.en.toml
,英语的设置将被忽略。好像我只能有一个 author.toml
文件。这很奇怪,因为我可以用这种方式翻译 config
文件夹中的所有其他文件(例如,我有一个 params.en.toml
和一个 params.fr.toml
文件)。
我在我的主题的 layouts
文件夹中做了一些挖掘,我找到了 author.toml
用于创建 HTML 代码的文件。它看起来像这样:
{{- with .Site.Author -}}
<section class="profile surface row">
<div class="col-xl-6 d-flex align-items-center justify-content-center">
<img class="profile-avatar img-fluid" src="{{ absURL (default "images/profile.webp" .avatar) }}" alt="{{ .name }}" loading="lazy">
</div>
<div class="col-xl-6">
<h5 class="profile-name my-2">{{ .name }}</h5>
{{- with .bio -}}
<div class="profile-bio mb-2">{{ . }}</div>
{{- end -}}
{{- with .company -}}
<div class="profile-company mb-2"><i class="fas fa-fw fa-building"></i>{{ . }}</div>
{{- end -}}
{{- with .location -}}
<div class="profile-location mb-2"><i class="fas fa-fw fa-map-marker-alt"></i>{{ . }}</div>
{{- end -}}
{{- if .about -}}
<div class="profile-about mb-2"><i class="fas fa-fw fa-info-circle"></i><a target="_blank" href="{{ .about }}">{{ i18n "about_me" }}</a></div>
{{- else -}}
{{- with $.GetPage "about" -}}
<div class="profile-about mb-2"><i class="fas fa-fw fa-info-circle"></i><a href="{{ .Permalink }}">{{ .Title }}</a></div>
{{- end -}}
{{- end -}}
</div>
</section>
{{- end -}}
如何为每种语言创建一个 author.toml
文件?
(TLDR - 网站作者将作者数据设置为 1 个配置文件 - 即主题是为整个网站的 1 位作者构建的)。
你好 Pascal,非常感谢你花时间回答我。
澄清一下:
这不是“hugo”的东西,而是这个小伙子构建这个主题的方式。
您将不得不修改他的主题(或联系他)。正如您所指出的,我认为有问题的特定文件是边栏中的 profile.html:
{{- 如果 .Site.Author -}}
{{- $layout := default "" .Site.Author.params.layout -}}
{{- if eq $layout "compact" -}}
{{- 部分“sidebar/profile/compact”。 -}}
{{- else -}}
{{- 部分“sidebar/profile/default”。 -}}
{{- 结束 -}}
{{- 结束 -}}
如果你遵循这个调用的各个部分,即在整个兔子中你会找到一个例子(这是许多例子之一),就像你在你的问题中描述和引用的那样,它有具体的评论 {{ - 与.Site.Author - }} 意思是,它正在寻找 1 个具有特定名称的文件。
[https://gohugo.io/content-management/multilingual/][1]
涵盖如何设置 hugo 多语言 - 每个站点应该有 1 个配置文件(在 Hugo 中有它自己的含义 - 见上页)
重点是,这是一个主题问题,我建议让主题创建者调整编辑。
我的建议是,如果主题创建者没有帮助——将删除对 TOML 文件的依赖,并简单地引用一个包含作者数据的无头包,并且由于主题具有 i18n,将两者集成(见上文 link) 所以它们是每种语言的无头包。
我是第一次使用 Hugo,我遇到了翻译问题。
更具体地说,我正在使用 hugo-theme-bootstrap 主题。在 config\_default
中,我有一个名为 author.toml
的文件,其中包含作者姓名、简历、城市等信息。它看起来像这样:
name = "Pascal Bergeron"
avatar = "images/profile.jpg"
bio = "Description française."
location = "Montréal"
问题是我的网站的英文版和法文版都使用了这个文件。但是,我需要根据语言更改 bio
和 location
字段。我尝试创建一个名为 author.fr.toml
的文件,但它的设置最终被忽略了。事实上,如果我什至将 author.toml
重命名为 author.en.toml
,英语的设置将被忽略。好像我只能有一个 author.toml
文件。这很奇怪,因为我可以用这种方式翻译 config
文件夹中的所有其他文件(例如,我有一个 params.en.toml
和一个 params.fr.toml
文件)。
我在我的主题的 layouts
文件夹中做了一些挖掘,我找到了 author.toml
用于创建 HTML 代码的文件。它看起来像这样:
{{- with .Site.Author -}}
<section class="profile surface row">
<div class="col-xl-6 d-flex align-items-center justify-content-center">
<img class="profile-avatar img-fluid" src="{{ absURL (default "images/profile.webp" .avatar) }}" alt="{{ .name }}" loading="lazy">
</div>
<div class="col-xl-6">
<h5 class="profile-name my-2">{{ .name }}</h5>
{{- with .bio -}}
<div class="profile-bio mb-2">{{ . }}</div>
{{- end -}}
{{- with .company -}}
<div class="profile-company mb-2"><i class="fas fa-fw fa-building"></i>{{ . }}</div>
{{- end -}}
{{- with .location -}}
<div class="profile-location mb-2"><i class="fas fa-fw fa-map-marker-alt"></i>{{ . }}</div>
{{- end -}}
{{- if .about -}}
<div class="profile-about mb-2"><i class="fas fa-fw fa-info-circle"></i><a target="_blank" href="{{ .about }}">{{ i18n "about_me" }}</a></div>
{{- else -}}
{{- with $.GetPage "about" -}}
<div class="profile-about mb-2"><i class="fas fa-fw fa-info-circle"></i><a href="{{ .Permalink }}">{{ .Title }}</a></div>
{{- end -}}
{{- end -}}
</div>
</section>
{{- end -}}
如何为每种语言创建一个 author.toml
文件?
(TLDR - 网站作者将作者数据设置为 1 个配置文件 - 即主题是为整个网站的 1 位作者构建的)。
你好 Pascal,非常感谢你花时间回答我。 澄清一下:
这不是“hugo”的东西,而是这个小伙子构建这个主题的方式。
您将不得不修改他的主题(或联系他)。正如您所指出的,我认为有问题的特定文件是边栏中的 profile.html:
{{- 如果 .Site.Author -}}
{{- $layout := default "" .Site.Author.params.layout -}}
{{- if eq $layout "compact" -}}
{{- 部分“sidebar/profile/compact”。 -}}
{{- else -}}
{{- 部分“sidebar/profile/default”。 -}}
{{- 结束 -}}
{{- 结束 -}}
如果你遵循这个调用的各个部分,即在整个兔子中你会找到一个例子(这是许多例子之一),就像你在你的问题中描述和引用的那样,它有具体的评论 {{ - 与.Site.Author - }} 意思是,它正在寻找 1 个具有特定名称的文件。
[https://gohugo.io/content-management/multilingual/][1]
涵盖如何设置 hugo 多语言 - 每个站点应该有 1 个配置文件(在 Hugo 中有它自己的含义 - 见上页)
重点是,这是一个主题问题,我建议让主题创建者调整编辑。
我的建议是,如果主题创建者没有帮助——将删除对 TOML 文件的依赖,并简单地引用一个包含作者数据的无头包,并且由于主题具有 i18n,将两者集成(见上文 link) 所以它们是每种语言的无头包。