什么是使用区域特定字符串的标准方法?

时间:2017-02-17 11:05:33

标签: android string

我工作的应用程序将在英国,美国和澳大利亚推出。我在values-en-rUS,values-en-rAU和values文件夹中有strings.xml。我有一些前“Zipcode”的字符串,它只会在美国使用,所以我把它们添加到values-en-rUS的strings.xml中。我有“Postcode”作为AU和UK strings.xml文件中的等价物。

只要设备区域设置正确,即美国的英语(美国),这样就可以正常工作。如果设备是英语(澳大利亚)且用户在美国使用该应用程序,则解决方案将失败。

是否有标准方法显示特定字符​​串而不管设备区域设置如何?任何帮助表示赞赏

2 个答案:

答案 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_envalues

有一些Locale常量。一个小型原型将看到这是否令人满意。

答案 1 :(得分:2)

我认为您使用的是错误的本地化。 values-en-rUS您正在为位于美国地区的手机定义英语资源(区域设置en)。

如果您使用values-en_US,则应该正确使用区域设置en_US

为了更好地了解不同语言环境之间的回退如何考虑此链接: Android doc