数量"两"在Android Strings-Resources Plural中不起作用

the*_*ega 11 android translation plural

Android允许翻译人员定义Plurals.以下示例适用于我的语言环境'en':

<plurals name="numberOfSongsAvailable">
    <item quantity="one">One song found.</item>
    <item quantity="other">%d songs found.</item>
</plurals>
Run Code Online (Sandbox Code Playgroud)

但是添加一个特殊值two不起作用,仍然采用该other版本.使用two依赖于语言环境?那么,two如果语言环境明确指定应该有two版本,Android是否只采用该版本?

SO问题Android复数处理"零"在使用zero英语时也出现同样的错误,也不支持.除了避免我想要避免的Android复数之外,这个问题没有解决方案.

mir*_*e2k 10

Android正在使用CLDR复数系统,这不是它的工作原理(所以不要指望这会改变).

该系统在这里描述:

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

简而言之,理解"一个"并不意味着数字1是很重要的.相反,这些关键字是类别,属于每个类别的特定数字n由CLDR数据库中的规则定义:

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

虽然似乎没有语言对0以外的任何东西使用"零",但有些语言将0分配给"1".肯定有很多情况下"两个"包含其他数字而不仅仅是2.

如果Android允许您执行您的预期操作,则无法将您的应用程序正确地翻译成具有更复杂复数规则的任意数量的语言.