运行中:
> xgettext test.py -o out.pot
关于Python片段测试.py公司名称:
^{pr2}$生成具有以下行的pot文件(已翻译的字符串位于po文件中):
#: test.py:3 test.py:4
msgid "TEST"
msgid_plural "TESTS"
msgstr[0] "TEST-SINGLE"
msgstr[1] "TEST-PLURAL"
在将其转换为采购订单文件和生产任务文件后。我无法获取gettest(“TEST”)调用的翻译。在
> ngettext("TEST", "TESTS", 1)
> TEST-SINGLE
> gettext("TEST")
> TEST
我使用的是Python的标准gettext包。我不确定这些合并行为是否在意料之中,但它似乎破坏了查找非复数字符串翻译的能力。有没有办法避免这种情况?在
我在考虑为gettext设计一个备用方法,如果第一个调用失败,就尝试一个ngettext调用。不过,这看起来很老套。在
两个条目完全相同,即单数项与复数项相同。演示:
然后使用msgfmt编译它:
^{pr2}$Gettext使用msgid作为字符串的键,因此它将看到这些单数和复数字符串是重复的。在
问题似乎源于gettext包查找翻译的方式。对于gettext和ugettext调用,它只需在目录内查找_catalog['TEST'],而不搜索_catalog[(“TEST”,0)]。在
我不相信这是正确的行为,因为xgettext决定合并这两个字符串,但是我在文档中找不到任何东西来证明这种或那种方式。在
为了解决这个问题,我在gettext和ugettext的两个替换方法中进行monkey修补,如果简单查找失败,这将回退到(message,0)目录查找。在
相关问题 更多 >
编程相关推荐