java或java库中的语言代码是否有常量?

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)

Ita*_*man 6

恐怕不是所有语言都有常数。您确实有几个预定义的区域设置,例如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


MaD*_*aDa 5

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()