在 Lektor 的动态菜单中使用替代(翻译)标题
Using alternative (translated) titles in dynamic menus in Lektor
我是 Lektor 的新手,我一直在我的布局中使用这个片段来动态生成菜单
{% for content in site.get('/').children %}
<li><a href="{{ content|url(alt=alt) }}">{{ content.title }}</a></li>
{% endfor %}
根据所选的替代(语言)生成 alt
url 效果很好,但 title
仍然仅以内容的主要语言显示,而不是翻译的那个。
这意味着选择法语alt
时(并在url中存在)时,菜单仍然是Main
,Contact
而不是法语翻译版本。
我知道我可以使用数据包来解决这个问题,以保存菜单的语言映射,但这需要复制数据包中的标题信息,然后确保它与 [=] 中的任何内容保持同步16=].
理想情况下,我缺少的是 title
的过滤器,您可以在其中指定要使用的 alt
,或者我不知道的其他一些方法?
尽管可能很幼稚,但在查看源代码之前,我没有意识到您可以在 site.get
中传递 alt
参数。所以获取某个语言定义的子页面的方法是:
{% for content in site.get('/', alt=alt).children %}
<li><a href="{{ content }}">{{ content.title }}</a></li>
{% endfor %}
并且由于我们已经在get中指定了alt
参数,我们不需要再为当前alt过滤url
。
我是 Lektor 的新手,我一直在我的布局中使用这个片段来动态生成菜单
{% for content in site.get('/').children %}
<li><a href="{{ content|url(alt=alt) }}">{{ content.title }}</a></li>
{% endfor %}
根据所选的替代(语言)生成 alt
url 效果很好,但 title
仍然仅以内容的主要语言显示,而不是翻译的那个。
这意味着选择法语alt
时(并在url中存在)时,菜单仍然是Main
,Contact
而不是法语翻译版本。
我知道我可以使用数据包来解决这个问题,以保存菜单的语言映射,但这需要复制数据包中的标题信息,然后确保它与 [=] 中的任何内容保持同步16=].
理想情况下,我缺少的是 title
的过滤器,您可以在其中指定要使用的 alt
,或者我不知道的其他一些方法?
尽管可能很幼稚,但在查看源代码之前,我没有意识到您可以在 site.get
中传递 alt
参数。所以获取某个语言定义的子页面的方法是:
{% for content in site.get('/', alt=alt).children %}
<li><a href="{{ content }}">{{ content.title }}</a></li>
{% endfor %}
并且由于我们已经在get中指定了alt
参数,我们不需要再为当前alt过滤url
。