0

Android で数量文字列リソースを使用すると、英語で簡単に使用でき、期待どおりに動作します。

String output = getResources().getQuantityString(R.plurals.my_resource, i, i);

の場合、これは数量で1定義された文字列を返します。たとえば、 toの場合、数量文字列を返します。one270other

しかし、ロシア語Localeセットで同じコードを使用すると、出力が異なります。

one入力だけでなく、「1」で終わるすべての数値1の入力、、、、にも21数量31文字列を使用します。なんで?それは意図された(正しい)動作ですか?私には、これは非常に奇妙に見えます。さて、Google に文字列を翻訳させると、名詞の出力は常に同じになります。415130 dogs31 dogs32 dogs

ちなみに、リトアニア語でも同様の動作を見たことがあります。

4

2 に答える 2

4

動作は正しいです。

ロシア語では、数えると同じ単語の複数の形式があります。

「дерево」は英語で「木」。しかし、単語はカウントに応じて接尾辞を変更します

    1 деревО
    2 деревА
    3 деревА
    4 деревА
    5 деревЬЕВ
    6 деревЬЕВ
    7 деревЬЕВ
    ...
    21 дерево
    22 деревА
    23 деревА
    24 деревА
    25 деревЬЕВ
    26 деревЬЕВ
    ...
    31 дерево
    32 деревА
    33 деревА
    34 деревА
    35 деревЬЕВ
    36 деревЬЕВ

and so on

除外は 11、12、13、14 です。

次の例が良いかどうかはわかりませんが、「1つ」ではなく「最初」のように受け取ってください。たとえば、英語では 21 - 「21 ファースト」と言い、「21」、「22」ではなく、「22」ではありません。除外は 11、12、13、14 です (「10 ファースト」や「10 ファーストティーン」などとは言いません。11 だけです)。

http://www.russianlessons.net/lessons/lesson11_main.php

于 2013-01-07T00:23:20.820 に答える
2

それは意図された(正しい)動作ですか?

私はロシア語を話せませんが、簡単に検索するとこれが正しいことがわかります:

カウンティング

あなたが持っているものの数を示すとき、私たちは通常、問題のオブジェクトを属格に置きます。ただし、ロシア語には英語との重要な違いがいくつかあります。

  • 何かの 1、21、31、41 などがある場合、それらは単数主格になります。
  • 何かの 2、3、4、22、23、24、32、33、34 などがある場合は、単数属格を使用します。
  • 5 から 19、25 から 29、35 から 39 などがある場合は、複数属格を使用します。
于 2013-01-07T00:07:32.453 に答える