11
4

3 に答える 3

10

Android は CLDR の複数形システムを使用していますが、これはその仕組みではありません (したがって、これが変わるとは思わないでください)。

このシステムについては、次のように説明されています。

http://cldr.unicode.org/index/cldr-spec/plural-rules

つまり、「1」は数字の 1 を意味するのではないことを理解することが重要です。代わりに、これらのキーワードはカテゴリであり、各カテゴリに属する​​特定の数字 n は CLDR データベースのルールによって定義されます。

http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html

0 以外に「0」を使用する言語はないようですが、「1」に 0 を割り当てる言語はあります。確かに、「2」に 2 以外の数字が含まれている場合はたくさんあります。

意図したことを実行できる Android の場合、アプリケーションは、より複雑な複数形の規則を使用して、多くの言語に適切に翻訳できませんでした。

于 2012-03-02T23:57:02.697 に答える
3

これは古いバグです。PluralRulesクラスの関連するコードセクションに欠落しているif句がいくつかあります。

あなたのリンクされた質問の答えが述べたように、あなたはMessageFormat何か他のものを使うことによってより良いです。バグは2010年5月に報告されており、近い将来に蜂が修正されるとは思わない(この場合、古いバージョンのデバイスではまだ障害のあるバージョンがあります)

完全に誤りです。コメントを参照してください。

于 2011-12-12T12:04:17.933 に答える
3

はい、2 つの使用法はロケールに固有です。数値 2 を指定したからといって、quantity="two" が使用されるわけではありません。数値 2 に特殊なケースがある言語にのみその数量を使用します。

http://developer.android.com/guide/topics/resources/string-resource.html#Pluralsから:

選択は文法上の必要性に基づいて行われることに注意してください。英語のゼロの文字列は、数量が 0 の場合でも無視されます。これは、0 が 2 と文法的に異なるわけではないため、または 1 以外の他の数字 (「ゼロ本」、「1 本」、「2 本」など) とは異なるためです。の上)。たとえば、量 2 にしか当てはまらない 2 つの音のように聞こえるという事実に惑わされないでください。言語によっては、2、12、102 (など) がすべて互いに同じように扱われる必要がある場合がありますが、他のものとは異なる方法で扱われます。量。翻訳者に頼って、彼らの言語が実際にどのような区別を主張しているかを理解してください。

于 2012-04-04T01:52:43.683 に答える