2015-07-20 17 views
2

我正在嘗試使用JDK來獲取翻譯成其他語言的不同語言的名稱。例如:是否有單獨的普通話和廣東話Java語言環境?

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

我想這樣做是爲了得到「國語」和「廣東話」,但

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

是否有語言環境的變體,我可以用它來獲得「國語」和「廣東話「而不是」中國人「?是否有另一個Java庫可用於獲取翻譯成其他語言的語言的名稱?

謝謝!

+0

鑑於這些本質上是兩個獨立的_languages_,你怎麼能指望一個_locale_既區分? – fge

+0

@fge我不知道。但是,語言環境確實包含語言組件。 Java使用它來翻譯月份名稱等。那麼,有沒有辦法區分? – Adam

+0

向Unicode CLDR提交了一張票:http://unicode.org/cldr/trac/ticket/8792 – Adam

回答

0

這實際上是普通話:

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)