如何在液体中组合绳子和手柄

How to combine strings and handles in liquid

我正在为 Jekyll 中使用数据文件的字符串和句柄的组合而苦苦挣扎。

我使用 nav.yml 数据文件为 Jekyll-site 生成菜单,其中 nav.title 是菜单条目的标题。我的目标是根据活动语言翻译该标题。为此,我有一个包含相应翻译的 il8n.yml 文件,并且 - 使用 polyglot-plugin - 我可以通过 {{site.data.il8n.term[site.active_lang]}} 访问这些翻译字符串,其中 term 是短语我想翻译。

这很简单,但是当我尝试将菜单数据文件中的 nav.title 字符串与 il8n 数据文件中的翻译结合起来时,我 运行 遇到了问题。

有没有办法在 il8n 文件中查找 nav.title 的条目?例如,我的 nav.yml-数据文件中有一个菜单项 "Publications" 的条目:

- title: "publications"
  href: "/publications/"

以及我的 il8n.yml-数据文件中 "publications" 的翻译条目:

- title: "publications"
  de: Publikationen
  en: Publications

有什么方法可以将这两个句柄结合起来吗?我当前的解决方法是 il8n 文件中的一个 menu: true 条目和一个寻找该条件的相应循环,但我想将翻译与菜单项分开。

通过设置 il8n-data 文件,您可以:

<ul>
{% for item in site.data.nav %}
  <li>
  {% assign itemTranslation = site.data.il8n | where: 'title', item.title %}
  {{ itemTranslation[0][site.active_lang] }}
  </li>
{% endfor %}
</ul>

il8n.yml 是这样订购的:

publications:
  de: Publikationen
  en: Publications
toto is great:
  de: toto is great in german
  en: toto is great

你可以做到:

<ul>
{% for item in site.data.nav %}
    <li>{{ site.data.il8n2[item.title][site.active_lang] }}</li>
{% endfor %}
</ul>