我需要从.po
文件中提取消息。是否有Python模块可以做到这一点?我写了一个解析器,但它取决于平台(\r\n
与\n
)。
有更好的方法吗?
答案 0 :(得分:21)
在大多数情况下,您不需要自己解析.po
个文件。开发人员为翻译人员提供.pot
模板文件,他们将其重命名为xx_XX.po
并翻译字符串。然后你作为开发人员只需要使用GNU的.mo
工具(或其Python实现,gettext
)将它们“编译”到pygettext
文件
但是,如果你想/需要自己解析po文件,而不是编译它们,我强烈建议你使用polib
,一个众所周知的python库来处理po
文件。它被几个大型项目使用,例如Mercurial和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
这不容易;)
答案 1 :(得分:1)
答案 2 :(得分:-4)
使用内置的gettext模块:http://docs.python.org/library/gettext.html
在我提供python gettext
之后,它似乎是Google中的第一个搜索结果。如果您想知道这是否是您搜索的内容,那么是的,它是。