在Jinja2中使用与babel的链接

时间:2016-02-05 09:13:23

标签: python flask jinja2 babel

目前我正在使用Flask和Jinja2与Babel结合使用。到目前为止,一切都很好。

我遇到的唯一问题是在翻译文本中使用链接时。假设我们在HTML中有以下内容:

<p>You can change this in your <a href="{{ url_for("settings") }}">settings</a>.</p>

我如何与babel结合使用?

我一直在考虑以下代码,但是当翻译语言中单词的顺序不一样时会出现问题。

<p>{{ _("You can change this in your ")<a href="{{ url_for("settings") }}">{{ _("settings")</a>.</p>

另一个想法是将整个HTML放入要翻译的字符串中,但我不能再使用字符串转义。

这样做的首选方式是什么?

1 个答案:

答案 0 :(得分:1)

我一直在寻找解决方案,并遇到了这个优秀的page

您可以使用可用于jinja2变量的字符串替换来添加链接。这是一个例子:

{{ _("You can change this in your %(open)ssettings%(close)s.", open='<a href="/user/%d">' % user_id, close='</a>')|safe }}

您的.po文件将有一个这样的条目:

msgid "You can change this in your %(open)ssettings%(close)s."
msgstr ""