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

对于 java 或 java 库中的语言代码,是否有任何常量?(或者使用字符串可以吗?"en""de"

我知道像这样的东西

Locale.COUNTRY-NAME.getLanguage()

会工作,但我正在寻找更精简的东西,如

Locale.LANGUAGE-NAME

答案 1

恐怕不是所有语言都有常量。您确实有几个预定义的区域设置,例如 等。每个区域设置都有一个语言代码,可以通过该方法获得。Locale.UKLocale.USgetLanguage()

要获取底层 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


答案 2

2 个字母的语言代码由 ISO 639-1 标准定义。该类不包含所有语言环境,而仅包含 VM 支持的区域设置(如 所示)。java.util.LocaleLocale.getAvailableLocales()

在Java中访问所有ISO 639-1语言代码的最简单方法是依靠Unidine International Components for Unicode项目(ICU4J) - 一个广泛,广泛使用和积极开发的IBM i18n库。您可以从ULocale类中获取所有语言的列表:com.ibm.icu.util.ULocale.getISOLanguages()


推荐