2011-08-28 70 views

回答

3

恐怕沒有所有語言的常數。 您確實有幾個預定義的語言環境,如Locale.UKLocale.US等。每個語言環境都有一個可通過getLanguage()方法獲取的語言代碼。

爲了獲得基礎JVM使用getISOLanguages()

for(String lang : Locale.getISOLanguages()) { 
    System.out.println(lang); 
} 

更多細節支持的所有語言代碼:http://download.oracle.com/javase/1.4.2/docs/api/java/util/Locale.html

0

是啊..使用Locale.COUNTRY-NAME

+2

不是一回事。 Martin尋找*語言*代碼,而不是*國家*代碼。它們不一定彼此映射1:1。 –

+0

@邁克爾:你說得對。 –

+3

你可以使用語言環境來獲取語言,例如'Locale local = Locale.ENGLISH; local.getLanguage();' –

4

兩個字母的語言代碼由ISO 639-1標準定義。 java.util.Locale類不包含它們全部,但僅包含虛擬機支持的語言環境(根據Locale.getAvailableLocales())。

在Java中訪問所有ISO 639-1語言代碼的最簡單方法是依靠International Components for Unicode項目(ICU4J)—一個廣泛的,廣泛使用和積極開發的來自IBM的i18n庫。您可以從ULocale類中獲得所有語言的列表:com.ibm.icu.util.ULocale.getISOLanguages()

+0

它是ISO 639-1,而不是639-2。否則,+1。 – Henning

相關問題