使用基於Python的Babel gettext實用程序,是否有任何技術可以在.pot
文件的所有更新中保留文件中的翻譯器註釋和舊(「廢棄」)翻譯(標有#~
)?使用Babel:如何保護GNU gettext PO文件中的翻譯者評論(以及舊翻譯)?
第一次在.po
文件中過時的翻譯和pybabel update
運行時,翻譯標記爲#~
。一方面,它被視爲評論,並且不會在翻譯者查看並更改它時使用,但另一方面,它不會被刪除,因此翻譯者可以參考它或複製文本從它到其他翻譯。
但是,下次運行pybabel update
時,所有註釋都將從文件中永久刪除。這意味着那些標有#~
的翻譯也會被刪除。
例如,巴貝爾版本0.9.6和Jinja2版本2.6,以下文件:
./babel.ini
:
[jinja2: **/templates/**.html]
encoding = utf-8
./templates/test.html
:
<html><body>
<h1>{% trans %}My website{% endtrans %}</h1>
</body></html>
./i18n/pt_PT/LC_MESSAGES/messages.po
:
# ... header stuff generated from
# pybabel init -l pt_PT -d i18n -i i18n/messages.pot ...
# Don't forget, I want to remember something about this!
#~ msgid "My web page"
#~ msgstr "A minha página de web"
後,以下命令運行:
$ pybabel extract -F babel.ini -o i18n/messages.pot .
$ pybabel update -l pt_PT -d i18n -i i18n/messages.pot
葡萄牙messages.po
文件失去了所有的舊的意見,並且只包含:
./i18n/pt_PT/LC_MESSAGES/messages.po
:
# ... similar header stuff ...
#: templates/test.html:2
msgid "My web site"
msgstr ""
如何更新我的翻譯文件而不會丟失我的意見和舊翻譯?
你能指定你正在使用的庫,並提供一個示例文件嗎? – 2014-07-22 15:23:59
@JamieCockburn這有幫助嗎? – 2014-07-22 22:47:09