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

Is there a separate Java locale for Mandarin and Cantonese?

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

new Locale("en", "US").getDisplayLanguage(new Locale("en", "US")); // English
new Locale("en", "US").getDisplayLanguage(new Locale("fr", "FR")); // anglais

我想这样做以获得 "Mandarin" 和 "Cantonese",但是

new Locale("zh", "CN").getDisplayLanguage(new Locale("en", "US")); // Chinese

是否有我可以用来获取 "Mandarin" 和 "Cantonese" 而不是 "Chinese" 的语言环境变体?我可以使用另一个 Java 库来将语言的名称翻译成其他语言吗?

谢谢!

这实际上是普通话:

new Locale("zh", "CN").getDisplayLanguage(new Locale("en", "US")); 

但是,是的,你得到 Chinese

您可以使用:

Locale.SIMPLIFIED_CHINESE.getDisplayName(Locale.ENGLISH) 

对于Chinese (China)

Locale.TRADITIONAL_CHINESE.getDisplayName(Locale.ENGLISH)

对于Chinese (Taiwan)

Locale.forLanguageTag("zh-HK").getDisplayName(Locale.ENGLISH)

对于Chinese (Hong Kong)

以下代码returns Java 8 中的“粤语”,Java 14 中的“粤语”。

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