Mar*_*eit 16 java locale constants internationalization
是否有像语言代码的任何常量"en"或"de"Java或在一个Java库?(或者正在使用字符串OK?)
我知道类似的东西
Locale.COUNTRY-NAME.getLanguage()
Run Code Online (Sandbox Code Playgroud)
会工作,但我正在寻找更精简的东西
Locale.LANGUAGE-NAME
Run Code Online (Sandbox Code Playgroud)
恐怕不是所有语言都有常数。您确实有几个预定义的区域设置,例如Locale.UK Locale.US等。每个区域设置都有一个语言代码,可以通过该getLanguage()方法获取。
要获取底层 JVM 支持的所有语言代码,请使用 getISOLanguages()
for(String lang : Locale.getISOLanguages()) {
System.out.println(lang);
}
Run Code Online (Sandbox Code Playgroud)
更多详情:http : //download.oracle.com/javase/1.4.2/docs/api/java/util/Locale.html
2字母的语言代码由ISO 639-1标准定义。本java.util.Locale类不包含所有这些,但只有语言环境由VM支持(按照Locale.getAvailableLocales())。
访问Java中所有ISO 639-1语言代码的最简单方法是依靠Unicode国际组件项目(ICU4J),它是IBM广泛,广泛使用并积极开发的i18n库。您可以从ULocale类获取所有语言的列表:com.ibm.icu.util.ULocale.getISOLanguages()。