我有一个使用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提取后,在message.pot中。
当我更新并编译并运行应用程序时,这当然不起作用,但是如果我删除额外添加的单引号和转义引号,它按预期工作。如果您不对模板文件中的关键字使用引号,则它不起作用。
babel.cfg文件非常简单:
[django: templates/**.*]
[python: /**.py]
encoding = utf-8
[extractors]
jinja2 = jinja2.ext:babel_extract
有关如何制作pybabel提取物的任何建议在从模板中提取关键字时不包含额外的引号?或者从文件中提取的任何其他方法?
答案 0 :(得分:2)
babel.cfg文件中存在问题。 从
改变它[django: templates/**.*]
到
[jinja2: templates/**.*]