ライブラリを使用して、Google Cloud AppEnginephp-gettext
の不足している拡張機能を回避しています。gettext
単数形と複数形が英語では同じですが、他の言語では異なる場合。
ngettext("%d correct", "%d correct", $n)
スペイン語の翻訳は
"%d correcto" (singular)
"%d correctos" (plural)
与えられた正解の数を示します。
しかし、単数形msgid
は複数形とまったく同じであるため、これはエラーになりますmsgid
。翻訳にコンテキストを追加できる関数dngettext()
でさえ、うまくいきません:
dngettext("Number of correct answers", "%d correct", "%d correct", $n)
gettext
ライブラリで警告とエラーが発生します。
PHP Notice: Undefined offset: -1
PHP Parse error: syntax error, unexpected '!=' (T_IS_NOT_EQUAL)
PHP Notice: Undefined variable: number
PHP Warning: Missing argument 4 for gettext_reader::npgettext()
私は英語の文章をmsgid
s として使用していますが、プロジェクト全体を変更して、代わりに暗号化された ID を使用することはできません。
ngettext("%d-correct-singular", "%d-correct-plural", $n)
元の言語で同一の単数形と複数形を処理する適切な方法は何ですか?