用python解析gettext .po文件
我需要从.po文件中提取消息。有没有一个Python模块来做到这一点?我写了一个解析器,但它依赖于平台(如\ r \ n,\ n),所以也许有一些正常的方法来达到那个目的?用python解析gettext .po文件
使用内置的gettext模块:http://docs.python.org/library/gettext.html
看来,我作为谷歌在第一个搜索结果提供python gettext
后。如果你想知道这是你搜索的内容,那么是的,它是。
在大多数情况下,您不需要自己解析.po
文件。开发人员给翻译人员一个.pot
模板文件,他们将其重命名为xx_XX.po
并翻译字符串。然后,你作为开发者只需要使用GNU的gettext
工具(或它的Python实现,pygettext
)
他们“编译”到.mo
文件,但是,如果你想/需要解析的PO文件自己,而不是编译它们,我强烈建议您使用polib
,一个知名的python库来处理po
文件。它由几个大型项目,如水银和Ubuntu的Launchpad翻译引擎:
的PyPI包家: http://pypi.python.org/pypi/polib/
代码库: https://bitbucket.org/izi/polib/wiki/Home
文档: http://polib.readthedocs.org
导入模块是一个具有MIT许可证的单个文件,因此您可以轻松地将它合并到代码中,如下所示:
import polib
po = polib.pofile('path/to/catalog.po')
for entry in po:
print entry.msgid, entry.msgstr
它不能比这更容易;)
@saeedgnu作品:也许你可以帮助改善它? 'polib'是用于处理po文件的最广泛使用的库,并且它被主动地维护,所以任何改进都将有益于很多*软件 – MestreLion 2016-03-22 15:02:05
我认为它应该是这样的,使用它的程序可能会添加一些条目加载po文件(或创建一个新的pofile对象),它都在内存中 – saeedgnu 2016-03-23 17:41:04
'gettext'是真棒,但它只能编译'mo'文件,而不是纯文本'po'那些 – MestreLion 2013-04-30 23:01:45