2009-06-05 80 views

回答

6

不,看起來在API中沒有這樣的方法。但是,您可以使用由Locale.getAvailableLocales()返回的Locales創建緩存;那麼你可以簡單地在這個緩存中查找顯示名稱。

private static Map<String, Locale> displayNames = new HashMap<String, Locale>(); 
static { 
    for (Locale l : Locale.getAvailableLocales()) { 
     displayNames.put(l.getDisplayName(), l); 
    } 
} 

public static Locale getLocale(String displayName) { 
    return displayNames.get(displayName); 
} 
1

我這樣做了一次,我不認爲它可以一直工作,因爲可以在每個JVM實現中對語言環境進行不同的命名。遍歷語言環境,直到找到你想要的。

3

顯示語言的名字?

Locale[] locales = Locale.getAvailableLocales(); 
for (Locale current : locales) { 
    for (Locale test : locales) { 
    System.out 
     .print(test.getDisplayName(current) + " "); 
    } 
    System.out.println(); 
} 

我假設如果你正在處理語言環境,你需要處理多種語言。

+0

不!不要讓它複雜化!這是一個很好的,簡單的問題,然後你必須走到一起並毀掉它。 :( – 2009-06-05 23:55:15

0

你可以使用Apache的公地郎鹹平:對發佈前已經看了API中

org.apache.commons.lang.LocaleUtils.toLocale(localeStr); 
+0

不起作用 - 僅限於此語言和國家/地區代碼 – Strinder 2017-06-01 10:27:37

相關問題