1

我有一个使用 jinja2 html 模板运行 python 的 App Engine 应用。我正在使用 pybabel 将其国际化。当我运行pybabel extract -F babel.cfg -o ./locale/messages.pot ./从模板中提取的命令时,它会在带有单引号的字符串中添加额外的单引号 ',并在使用双引号的关键字上转义双引号。

示例:我正在提取这些字符串:

index.html
<h1 class="offset2 span10 pageTitle">{{ _("appname") }}</h1> 
<p>{{ _('about') }}</p> 

变成

messages.pot
#: templates/index.html:57
msgid "\"appname\""
msgstr ""

#: templates/index.html:58
msgid "'about'"
msgstr ""

哪个不起作用。预期(如果我手动删除不需要的字符,则确认工作)输出应该是:

messages.pot
#: templates/index.html:57
msgid "appname"
msgstr ""

#: templates/index.html:58
msgid "about"
msgstr ""

在运行 pybabel 提取后的 messages.pot 中。

当然,当我更新、编译和运行应用程序时,这不起作用,但如果我删除额外添加的单引号和转义引号,它会按预期工作。如果您不对模板文件中的关键字使用引号,则它不起作用。

babel.cfg 文件非常简单:

[django: templates/**.*]
[python: /**.py]
encoding = utf-8
[extractors]
jinja2 = jinja2.ext:babel_extract

关于如何在从模板中提取关键字时如何使 pybabel 提取不包含额外引号的任何建议?或者从文件中提取的任何其他方法?

4

1 回答 1

2

问题出在 babel.cfg 文件中。改变它从

[django: templates/**.*]

[jinja2: templates/**.*]
于 2013-12-12T15:48:04.033 回答