我遇到了数量字符串(复数)的问题.
手册说,我可以提供特定于每个本地化的数量字符串,并且有几种常见情况:"零","一","两个","很少","很多"和"其他".我不知道是否涵盖了世界上所有语言的所有可能案例; 无论如何,对于俄罗斯来说,我正在尝试进行本地化.
在俄语中,2到4的数字应该被视为"少数"(规则实际上更复杂,但我只需要10以下的数字).
但是,当我请求数量字符串为2时,系统将获取"其他"字符串.它既不是"两个"字符串也不是"少数"字符串(我已经在我的资源中提供了它们).如果我删除了"其他"字符串,我会得到异常:
android.content.res.Resources$NotFoundException:
Plural resource ID #0x7f080000 quantity=2 item=other
Run Code Online (Sandbox Code Playgroud)
我在模拟器(Android 2.1)和真实设备(Android 2.3)上都尝试过这种方法,两种情况下的行为都是一样的错误.显然,某处存在错误 - 系统无法识别我语言的特定于语言环境的数量.这可能是Android有一些错误吗?
感谢Brigham指出问题并解释了问题;这种解释首先引起了更多问题,但现在这些问题似乎得到了解决。事实上,数量字符串无法正常工作(至少在 API 11 之前,即 Android 3.x),因此您必须使用替代方案。
注释 15中提到了版本 11 之前的 API 的解决方案,其中包含指向用于替代处理数量字符串的项目的链接。该项目是一个仅执行系统应该执行的操作的程序。它可以轻松转换为库,因此您只需将其添加到项目中,导入类即可。
| 归档时间: |
|
| 查看次数: |
2591 次 |
| 最近记录: |