我工作的应用程序将在英国,美国和澳大利亚推出。我在values-en-rUS,values-en-rAU和values文件夹中有strings.xml。我有一些前“Zipcode”的字符串,它只会在美国使用,所以我把它们添加到values-en-rUS的strings.xml中。我有“Postcode”作为AU和UK strings.xml文件中的等价物。
只要设备区域设置正确,即美国的英语(美国),这样就可以正常工作。如果设备是英语(澳大利亚)且用户在美国使用该应用程序,则解决方案将失败。
是否有标准方法显示特定字符串而不管设备区域设置如何?任何帮助表示赞赏
答案 0 :(得分:2)
正确的Java SE标准用法是:
Locale: Properties file name part:
Locale("en", "US") values_en_US
Locale("en", "AUS") values_en_AUS
Locale("en", "UK") values_en_UK
最佳也有Locale("en") / values_en
和values
。
有一些Locale常量。一个小型原型将看到这是否令人满意。
答案 1 :(得分:2)
我认为您使用的是错误的本地化。
values-en-rUS
您正在为位于美国地区的手机定义英语资源(区域设置en
)。
如果您使用values-en_US
,则应该正确使用区域设置en_US
。
为了更好地了解不同语言环境之间的回退如何考虑此链接: Android doc