我是Lektor的新手,我一直在自己的布局中使用此代码段动态生成菜单
{% for content in site.get('/').children %}
<li><a href="{{ content|url(alt=alt) }}">{{ content.title }}</a></li>
{% endfor %}
按照所选的替代语言生成alt
网址是很好的方法,但是title
仍然仅以内容的主要语言显示,而不是翻译后的语言。
这意味着当选择说法语alt
(并显示在url中)时,菜单仍然是Main
,Contact
而不是法语翻译版本。
我知道我可以使用数据包来保存菜单的语言映射,但是这需要在数据包中复制标题信息,然后确保它与{{1}中的内容保持同步}。
理想情况下,我缺少的是针对content.title
的过滤器,您可以在其中指定要使用的title
或其他我不知道的方法?
答案 0 :(得分:0)
虽然天真,但直到我查看源代码之后,我才意识到可以在alt
中传递site.get
参数。因此,获取特定语言的已定义子页面的方法是:
{% for content in site.get('/', alt=alt).children %}
<li><a href="{{ content }}">{{ content.title }}</a></li>
{% endfor %}
并且由于我们已经在get中指定了alt
参数,因此我们不再需要为当前的alt过滤url
。