我有一个允许语言选择的Jekyll 3项目。我们使用'jekyll-multiple-languages-plugin'宝石进行国际化。
我们有一个词汇表,应根据所选语言显示德语术语或英语术语。我使用'jekyll-multiple-languages-plugin'gem提供的变量site.lang
来获取所选语言。
现在,glossary.html看起来像这样
<div id="glossary">
{% if site.lang == "de" %}
{% for term in site.data['terms_de'] %}
<!-- German glossary goes here -->
{% endfor %}
{% elsif site.lang == "en" %}
{% for term in site.data['terms_en'] %}
<!-- English glossary goes here -->
{% endfor %}
{% endif %}
</div>
但是,我喜欢这样的东西
<div id="glossary">
{% for term in site.data["terms_#{site.lang}"] %}
<!-- Glossary goes here -->
{% endfor %}
</div>
但由于某种原因,字符串插值"terms_#{site.lang}"
不起作用。我也试过'terms_'+site.lang
我认为插值不起作用,因为当我在页面中放置{{ site.lang }}
时,我会看到所选语言,但是当我写{{ "terms_"+site.lang }}
时,我看不到任何内容。
提前致谢。
答案 0 :(得分:3)
您可以使用capture
标记,而不是显示它为变量设置的值:
{% capture term_lang %}{{ 'terms_' | append: site.lang }}{% endcapture%}
然后您可以将该变量用作数组的索引:
site.data[term_lang]
在你的例子中:
{% capture term_lang %}{{ 'terms_' | append: site.lang }}{% endcapture%}
<div id="glossary">
{% for term in site.data[term_lang] %}
<!-- Glossary goes here -->
{% endfor %}
</div>