在java或java庫中是否有像"en"
或"de"
這樣的語言代碼的常量? (或正在使用該字符串OK?)java或java庫中的語言代碼是否有常量?
我知道,像
Locale.COUNTRY-NAME.getLanguage()
會的工作,但我尋找的東西,更精簡的像
Locale.LANGUAGE-NAME
在java或java庫中是否有像"en"
或"de"
這樣的語言代碼的常量? (或正在使用該字符串OK?)java或java庫中的語言代碼是否有常量?
我知道,像
Locale.COUNTRY-NAME.getLanguage()
會的工作,但我尋找的東西,更精簡的像
Locale.LANGUAGE-NAME
恐怕沒有所有語言的常數。 您確實有幾個預定義的語言環境,如Locale.UK
Locale.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
是啊..使用Locale.COUNTRY-NAME
兩個字母的語言代碼由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()。
它是ISO 639-1,而不是639-2。否則,+1。 – Henning
不是一回事。 Martin尋找*語言*代碼,而不是*國家*代碼。它們不一定彼此映射1:1。 –
@邁克爾:你說得對。 –
你可以使用語言環境來獲取語言,例如'Locale local = Locale.ENGLISH; local.getLanguage();' –