2013-12-12 13 views
1

我有一個運行帶有jinja2 html模板的python的App Engine應用程序。我正在使用pybabel將其國際化。當我運行命令pybabel extract -F babel.cfg -o ./locale/messages.pot ./從模板中提取時,它會向帶有單引號的字符串添加額外的單引號,並且對使用雙引號的關鍵字使用雙引號。從html模板中提取關鍵字時,pybabel提取物會添加額外的單引號

例子: 我提取這些字符串:

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 pybabel提取運行後

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

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

當然,當我更新並編譯並運行應用程序時,這並不起作用,但如果刪除多餘的單引號和引號,它將按預期工作。如果您不對模板文件中的關鍵字使用引號,則不起作用。

的babel.cfg文件很簡單:

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

如何使pybabel提取物不包括額外的引號,當它從模板中提取的關鍵字有什麼建議?或者從文件中提取任何其他方法?

回答

2

問題發生在babel.cfg文件中。 從

[django: templates/**.*] 

將其更改爲

[jinja2: templates/**.*]