在Lektor的动态菜单中使用替代(翻译)标题

时间:2018-09-04 09:41:46

标签: python-3.6 lektor

我是Lektor的新手,我一直在自己的布局中使用此代码段动态生成菜单

{% for content in site.get('/').children %}
    <li><a href="{{ content|url(alt=alt) }}">{{ content.title }}</a></li>
{% endfor %}

按照所选的替代语言生成alt网址是很好的方法,但是title仍然仅以内容的主要语言显示,而不是翻译后的语言。

这意味着当选择说法语alt(并显示在url中)时,菜单仍然是MainContact而不是法语翻译版本。

我知道我可以使用数据包来保存菜单的语言映射,但是这需要在数据包中复制标题信息,然后确保它与{{1}中的内容保持同步}。

理想情况下,我缺少的是针对content.title的过滤器,您可以在其中指定要使用的title或其他我不知道的方法?

1 个答案:

答案 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