在 Jinja2 中使用 babel 链接
Using links with babel in Jinja2
目前我将 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 放入要翻译的字符串中,但是我不能再使用字符串转义了。
执行此操作的首选方法是什么?
我正在寻找解决这个问题的方法,并遇到了这个优秀的 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 ""
目前我将 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 放入要翻译的字符串中,但是我不能再使用字符串转义了。
执行此操作的首选方法是什么?
我正在寻找解决这个问题的方法,并遇到了这个优秀的 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 ""