我有一个使用 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 提取不包含额外引号的任何建议?或者从文件中提取的任何其他方法?