我需要从.po文件中提取消息.是否有Python模块可以做到这一点?我写了一个解析器,但它取决于平台(\r\nvs. \n).
有一个更好的方法吗?
Mes*_*ion 23
在大多数情况下,您不需要.po自己解析文件.开发人员为翻译人员提供.pot模板文件,他们将其重命名为xx_XX.po并翻译字符串.那么你作为开发人员只需要.mo使用GNU的gettext工具(或其Python实现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
Run Code Online (Sandbox Code Playgroud)
它不容易;)
Babel 包含一个用 Python 编写的 .po 文件解析器:
内置 gettext 模块仅适用于二进制 .mo 文件。
| 归档时间: |
|
| 查看次数: |
6244 次 |
| 最近记录: |