2013-09-05 50 views
4

如何找到它Locale-languagecountry如何從語言獲得當地國家?

例如;如果我設置本地languageen話,我希望得到US作爲國家。

Locale locale = new Locale("en"); 
locale.getCountry() // returns null 

的問題是,我只有國家代碼,如:fr,de,en現在我只是想找到這些代碼正確的國家語言環境。

回答

4

en是英語。 en_US是美國英語。我認爲,英國英語是en_GB。推測使用en_US會做你想做的。這裏列出了所有支持的區域設置:http://www.oracle.com/technetwork/java/javase/locales-137662.html

您無法從「en」獲取國家/地區,因爲您可以看到,多個國家/地區可能會共享一種語言。你會選擇哪一個?

+0

TNX的prolem是,我只有國家代碼,如:'法國,德國,en'現在我只是想找到這些代碼正確的國家語言環境。順便說一句,它也不能與'en_US'一起使用。 – tokhi

+0

@stsd啊,我的格式錯了。如果您閱讀javadoc,則會看到Locale有一個雙參數構造函數。這些不是國家代碼。他們是語言代碼。正如我所說,每種語言都可以在多個國家使用。 –

0

一種選擇是讓所有avaialble語言環境:

Locale[] locales = Locale.getAvailableLocales(); 

然後將它們插入到一個HashMap並定義languagekey。現在可以通過語言鍵搜索國家了。

相關問題