对于不支持的语言,Android复数不合语法

时间:2014-08-01 14:00:53

标签: android localization

我在Android XML中使用数量字符串(复数)时遇到问题,如果我需要从不受支持的语言默认,则会获得相应的复数形式。

Android复数支持创建多个字符串,这些字符串适用于所提供的数量,所以我在strings.xml中有这个:

<plurals name ="hours">
    <item quantity="one">1 hour ago</item>
    <item quantity="other">%d hours ago</item>
</plurals>

这在我的代码中:

getQuantityString(R.plurals.hours, time, time);

如果我的设备设置为英语,这可以正常工作,但如果我将我的设备设置为日语,这是一种我还不支持的语言,它只使用&#34;其他&#34;数量字符串,可以产生输出

  

1小时前

有没有办法让复数在默认语言不受支持的情况下提供语法输出?

2 个答案:

答案 0 :(得分:0)

日语没有单数或复数形式,但它只有一个统一的形式。随着复数,Android无论计数是什么,一直使用其他日语。没有办法把它关掉。最好的解决方案是提供适当的日语翻译

%d時間前

答案 1 :(得分:0)

这里的主要问题是它采用当前语言环境的复数规则,但将它们应用于恰好与英语一致的默认字符串。

您可以在此处尝试维护应用程序中支持的区域设置列表,并检查是否支持当前区域设置。如果是,你什么都不做。如果不是,您可以将语言环境设置为英语。这应该使系统应用英语规则。 Changing Locale within the app itself可以帮助您做到这一点。