0

当我在 Android 中使用数量字符串资源时,它对英语很容易并且按预期工作:

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

对于1,这将返回数量中定义的字符串,例如one对于2to 70,它返回数量字符串。other

但是当我使用与俄语Locale集相同的代码时,输​​出是不同的:

one不仅将数量字符串用于 input 1,还用于以“1”结尾的所有数字的 inputs 21, 31, 41, - 。51为什么?这是有意的(甚至是正确的)行为吗?我只能说,对我来说,这看起来很奇怪。好吧,当我让谷歌翻译字符串30 dogs时,31 dogs-32 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。

我不确定下一个例子是否好,但你可以把它当作不是“一个”,而是“第一个”。例如在英语中我们说 21 - “二十一”,但不是“二十一”,“二十二”,但不是“二十二”。不包括 11、12、13、14 (我们不说“十第一”或“十第一”之类的。只是十一)

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 回答