当从html模板中提取关键字时,Pybabel提取添加额外的单引号

时间:2013-12-12 14:58:10

标签: python regex google-app-engine internationalization babel

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

1 个答案:

答案 0 :(得分:2)

babel.cfg文件中存在问题。 从

改变它
[django: templates/**.*]

[jinja2: templates/**.*]