在 Jinja 模板中,如何结合 {% trans %} 和 {% with %}
In Jinja templates, how to combine {% trans %} with {% with %}
我正在使用启用了 i18n 扩展的 Jinja 模板(在 Django 中)。我可以在模板中添加翻译块就好了,比如:{% trans %}Hello{% endtrans %}
.
但是有些地方我使用 {% with %}
在包含模板之前设置字符串的值:
{% with title="Latest posts" %}
{% include "_partials/blog_posts.jinja" %}
{% endwith %}
鉴于在 {% trans %}{% endtrans %}
块内“不允许任何语句,仅允许文本和简单的变量标签”,我不知道如何设置字符串“Latest posts”以进行翻译以及制作它可用于包含的模板。
您可以在 with
块的变量中使用 gettext/ngettext
函数:
{% with title=gettext("Latest posts") %}
{% include "_partials/blog_posts.jinja" %}
{% endwith %}
gettext
的 _
快捷方式也有效:title=_("Latest posts")
。
我正在使用启用了 i18n 扩展的 Jinja 模板(在 Django 中)。我可以在模板中添加翻译块就好了,比如:{% trans %}Hello{% endtrans %}
.
但是有些地方我使用 {% with %}
在包含模板之前设置字符串的值:
{% with title="Latest posts" %}
{% include "_partials/blog_posts.jinja" %}
{% endwith %}
鉴于在 {% trans %}{% endtrans %}
块内“不允许任何语句,仅允许文本和简单的变量标签”,我不知道如何设置字符串“Latest posts”以进行翻译以及制作它可用于包含的模板。
您可以在 with
块的变量中使用 gettext/ngettext
函数:
{% with title=gettext("Latest posts") %}
{% include "_partials/blog_posts.jinja" %}
{% endwith %}
gettext
的 _
快捷方式也有效:title=_("Latest posts")
。