我遇到了数量字符串(复数)的问题。
手册上说,我可能会为每个本地化提供特定的数量字符串,并且有几种常见的情况:“零”、“一”、“二”、“少”、“多”和“其他”。我不知道是否涵盖了世界上所有语言的所有可能案例;无论如何,对于我正在尝试进行本地化的俄语来说,这已经绰绰有余了。
在俄语中,从 2 到 4 的数字应该被视为“少数”(规则实际上更复杂,但我只需要 10 以下的数字)。
但是,当我请求 2 的数量字符串时,系统会采用“其他”字符串。它既不需要“两个”字符串,也不需要“很少”一个(我在我的资源中提供了它们)。如果我删除了“其他”字符串,我会得到异常:
android.content.res.Resources$NotFoundException:
Plural resource ID #0x7f080000 quantity=2 item=other
我在模拟器(Android 2.1)和真实设备(Android 2.3)上都试过了,这两种情况下的行为都是错误的。显然,某处存在错误 - 系统无法识别我的语言的特定于区域设置的数量。难道Android在这里有一些错误?