普通话和广东话是否有单独的Java语言环境?

普通话和广东话是否有单独的Java语言环境?,java,localization,translation,locale,chinese-locale,Java,Localization,Translation,Locale,Chinese Locale,我正在尝试使用JDK将不同语言的名称翻译成其他语言。例如: new Locale("en", "US").getDisplayLanguage(new Locale("en", "US")); // English new Locale("en", "US").getDisplayLanguage(new Locale("fr", "FR")); // anglais 我想这样做是为了得到“普通话”和“广东话”,但是 是否有一种语言环境变体可以用来表示“普通话”和“广东话”而不是“汉语”?是否

我正在尝试使用JDK将不同语言的名称翻译成其他语言。例如:

new Locale("en", "US").getDisplayLanguage(new Locale("en", "US")); // English
new Locale("en", "US").getDisplayLanguage(new Locale("fr", "FR")); // anglais
我想这样做是为了得到“普通话”和“广东话”,但是

是否有一种语言环境变体可以用来表示“普通话”和“广东话”而不是“汉语”?是否有其他Java库可用于将语言名称翻译成其他语言


谢谢

这实际上是普通话:

new Locale("zh", "CN").getDisplayLanguage(new Locale("en", "US")); 
但是,是的,你会看到
中文

您可以使用:

Locale.SIMPLIFIED_CHINESE.getDisplayName(Locale.ENGLISH) 
对于
中文(中国)

中文(台湾)


对于
中文(香港)

以下代码在Java8中返回“yue”,但在Java14中返回“粤语”

Locale.forLanguageTag("zh-yue").getDisplayName() 

考虑到这两种语言本质上是两种不同的语言,您希望一个地区如何区分这两种语言?@fge我不知道。但是,区域设置确实包含一个语言组件。Java使用它来翻译月份名称等。那么,有什么区别的方法吗?向Unicode CLDR提交了一张票证:
Locale.TRADITIONAL_CHINESE.getDisplayName(Locale.ENGLISH)
Locale.forLanguageTag("zh-HK").getDisplayName(Locale.ENGLISH)
Locale.forLanguageTag("zh-yue").getDisplayName()