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

25

在Java或者Java库中是否有语言代码的常量,例如"en""de"?(或者直接使用字符串也可以吗?)

我知道可以像这样:

Locale.COUNTRY-NAME.getLanguage()
会起作用,但我正在寻找更简洁的解决方案
Locale.LANGUAGE-NAME
3个回答

10

很抱歉,并非所有语言都有常量。

您可以使用多个预定义的Locale,例如Locale.UK Locale.US等。每个Locale都有一个语言代码,可以通过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

这个链接提供了有关Java中Locale的详细信息,Locale是一个类,用于表示特定地理、政治或文化区域的标识符。它在Java应用程序中非常有用,因为它可以帮助您确定如何格式化和解析日期、时间、数字和货币等数据类型。

8
2个字母的语言代码由ISO 639-1标准定义。 java.util.Locale类并不包含所有语言代码,而只包含VM支持的Locales(根据Locale.getAvailableLocales())。在Java中访问所有ISO 639-1语言代码的最简单方法是依赖于Unicode国际化组件项目(ICU4J)——这是来自IBM的广泛使用和积极开发的i18n库。您可以从ULocale类获取所有语言列表:com.ibm.icu.util.ULocale.getISOLanguages()

这是ISO 639-1,而不是639-2。否则,+1。 - Henning

-1

是的...使用Locale.COUNTRY-NAME


3
不一样的事情。Martin正在寻找“语言代码”,而不是“国家代码”。它们不一定一一映射。 - Michael Petrotta
3
您可以使用Locale来获取语言,例如 Locale local = Locale.ENGLISH; local.getLanguage(); - Varun Achar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接