plurals 直译就是『复数』,在Android的资源文件中就是用来操作复数的
当目标语言需要对一个或多个特定数字值进行特殊处理时,就可以用到plurals了。
比如定义一个英语的资源文件:
|
|
关于quantity的取值范围解释:
zero | 语言需要对数字0进行特殊处理。(比如阿拉伯语) |
one | 语言需要对类似1的数字进行特殊处理。(比如英语和其它大多数语言里的1;在俄语里,任何以1结尾但不以11结尾的数也属于此类型。) |
two | 语言需要对类似2的数字进行特殊处理。(比如威尔士语) |
few | 语言需要对较小数字进行特殊处理(比如捷克语里的2、3、4;或者波兰语里以2、3、4结尾但不是12、13、14的数。) |
many | 语言需要对较大数字进行特殊处理(比如马耳他语里以11-99结尾的数) |
other | 语言不需要对数字进行特殊处理。 |
将上面的资源文件定义到 res/values-en/plurals.xml。
代码中调用:
|
|
测试系统语言,设置成英语。
运行后,输出:
|
|
getQuantityString方法的参数解释:第一个为资源id;第二个传入一个数字,用于匹配目标语言中有特殊处理的数量值,特定数量值需要在资源文件中配置好,其它数量就对应资源配置中的quantity=other
选项;第三个参数,非必须,只有在对应配置项中,有数值的formatString(即%d)时,才需要