2016-03-17 3 views
9

言語コードから、その言語で言語名を取得します。私はこのようなものを言語で表示する必要があります(...「EN」、「ES」のように)私は言語コードのリストを持っている

English 
Español 
Français 
Deutsch 
日本語 

Androidでこれらを取得するための組み込みAPIがありますか、それとも自分でマップする必要がありますか?

+1

http://developer.android.com/reference/java/util/Locale.html#getDisplayName(java.util.Locale)またはhttp:/ /developer.android.com/reference/java/util/Locale.html#getDisplayLanguage(java.util.Locale) –

+3

言語コードを言語名に変換する[Javaライブラリ/ api]の重複可能性があります。http://stackoverflow.com/questions/12910955/java-library-api-which-converted-language-code-to-language-name) –

答えて

18

Localeクラスのメソッドは、public String getDisplayLanguage(Locale locale)です。ドキュメントから: "ロケールにローカライズされたこのロケールの言語の名前を返します。言語名が不明な場合は、言語コードが返されます。" は、だから、このようなロケールの言語名を取得することができます。

String lng = "en"; 
Locale loc = new Locale(lng); 
String name = loc.getDisplayLanguage(loc); // English 

lng = "es"; 
loc = new Locale(lng); 
name = loc.getDisplayLanguage(loc); // español 

//... 
+0

これは私が必要としていたものとほぼ同じです。最初の文字を大文字にする必要がありました。なぜなら、 "es"は "español" inesad "Español"を返しますが、ほぼ完璧です。ありがとうございました! – razielsarafan

+2

@razielsarafanそれは大文字で簡単です: 'name = name.substring(0、1).toUpperCase()+ name.substring(1);' – nvi9

+0

すべての国番号を取得するには:https://stackoverflow.com/a/ 30028371/3527024 – thenaoh

関連する問題