【发布时间】:2012-10-26 05:49:54
【问题描述】:
跑步:
> xgettext test.py -o out.pot
关于 Python sn-p test.py:
def main(num):
gettext("TEST")
ngettext(num, "TEST", "TESTS")
生成具有以下行的pot文件(翻译的字符串在po文件中):
#: test.py:3 test.py:4
msgid "TEST"
msgid_plural "TESTS"
msgstr[0] "TEST-SINGLE"
msgstr[1] "TEST-PLURAL"
将其转换为 po 文件,然后是 mo 文件。我无法获得 gettest("TEST") 调用的翻译。
> ngettext("TEST", "TESTS", 1)
> TEST-SINGLE
> gettext("TEST")
> TEST
我正在使用 Python 的标准 gettext 包。我不确定这些合并行为是否是预期的,但它似乎破坏了查找非复数字符串的翻译的能力。有没有办法避免这种情况?
我正在考虑为 gettext 创建一个后备,如果第一个调用失败,则尝试使用 ngettext 调用。不过这看起来很 hacky。
【问题讨论】:
-
[删除了这个,因为我想出了如何回答我自己的问题]
标签: python internationalization gettext extraction