跑步:
> xgettext test.py -o out.pot
在 Python 代码段 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。