如何使用pybabel在jinja 2.10 {%trans%}中转义'%'字符?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用pybabel在jinja 2.10 {%trans%}中转义'%'字符?相关的知识,希望对你有一定的参考价值。

我正在使用jinja 2.10和pybabel。当我的模板包含以下代码(在trans块中使用'%'char)时,pybabel-compile不会转换字符串。提取的字符串(在.po中)是正常的,但在结果页面上根本没有翻译。

<h3 class="title">{% trans %}100% anonymity{% endtrans %}</h3>

此代码有效,但trans-syntax看起来更好:

<h3 class="title">{{ _("100%% anonymity") }}</h3>

另外,我不能使用'%%'代替'%'来打扰我的翻译同事。

答案

我也坚持这个,但我在Babel documentation找到了解决方案:

##flask.ext.babel.gettext(string, **variables)##
##Translates a string with the current locale and passes in the given keyword arguments as mapping to a string formatting string.

gettext(u'Hello World!')
gettext(u'Hello %(name)s!', name='World')

我翻译成这样的简单代码:

_('Hello %(name)s!', name='World%')

我希望我帮助你:D

以上是关于如何使用pybabel在jinja 2.10 {%trans%}中转义'%'字符?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 cakephp 2.10 中使用 JWT?

如何在 Django 1.8 中使用 jinja2 作为模板引擎

如何在Jinja中同时遍历2个元素?

如何使用 Jinja2 模板在烧瓶中解码 &#39 [重复]

Jinja2:如何在包含的模板和可扩展模板中使用命名块

使用 jinja2 时如何将新条目添加到字典对象中?