ランニング:
> 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 パッケージを使用しています。これらの結合動作が予期されているかどうかはわかりませんが、複数形でない文字列の翻訳を検索する機能が破壊されているようです。これを回避する方法はありますか?
最初の呼び出しが失敗した場合に ngettext 呼び出しを試みるために、gettext のフォールバックをハックすることを考えていました。しかし、それは非常にハックに思えます。