2016-02-19 169 views
0

我在支持多种语言时遇到问题。我在服务器上有多种语言的字符串列表,我正在运行时下载它们。对于每个字符串,都有一组支持的语言,其格式如"en-US", "nl-NL"等。与支持语言匹配的语言环境

我希望我的应用程序为默认语言环境选择最佳匹配翻译。如果没有最好的,就应该选择en-US

适用于iOS的一个例子是here

你知道一个解决方案或库,可以帮助我吗?

回答

0

你可以使用内置的Locale类:

Locale l = new Locale("", "CH"); 
System.out.println(l.getDisplayCountry()); 

打印 “瑞士” 的例子。请注意,我没有提供一种语言。

那么你可以反向查找要做的就是从现有的国家建立一个地图:

public static void main(String[] args) throws InterruptedException { 
Map<String, String> countries = new HashMap<>(); 
for (String iso : Locale.getISOCountries()) { 
Locale l = new Locale("", iso); 
countries.put(l.getDisplayCountry(), iso); 
    } 


System.out.println(countries.get("Switzerland")); 
System.out.println(countries.get("Andorra")); 
System.out.println(countries.get("Japan")); 
} 

在这里你可以看到更多。 here

+0

这是怎么给我最好的匹配的语言环境?如果我的Locale是nl-BE,并且没有nl-BE,它应该返回nl-NL,因为那是最好的匹配。与国家代码我不能匹配BE与NL –