2016-02-19 107 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 –