复数字符串资源中文总是获得quantity为other的字符串

本文探讨了在不同语言环境下如何正确使用复数形式的字符串资源。特别关注了中文环境中复数形式的区别并不明显的问题,并指出不应将复数字符串用于如邮件提示等非复数应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

	<plurals name="unicornCount">
	    <item quantity="one">One unicorn</item>
	    <item quantity="other">%d unicorns</item>
	</plurals>
String s = getResources().getQuantityString(R.plurals.unicornCount, 1, 1);
		Log.d(this.getClass().getName(), s);
		s = getResources().getQuantityString(R.plurals.unicornCount, 3, 3);
		Log.d(this.getClass().getName(), s);

因为中文没有复数语法,所以当语言是中文时,将总是获得quantity为other的字符串

Although historically called "quantity strings" (and still called that in API), quantity strings should only be used for plurals. It would be a mistake to use quantity strings to implement something like Gmail's "Inbox" versus "Inbox (12)" when there are unread messages, for example. It might seem convenient to use quantity strings instead of an "if" statement,but it's important to note that some languages (such as Chinese) don't make these grammatical distinctions at all, so you'll always get the "other" string.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值