2016-03-17 19 views
9

dil kodundan o dilde dil adı alın:Böyle olanlar dilde gösterilecek lüzum (... "en", "es" olduğu gibi) Ben dil kodlarının bir listesi var

English 
Español 
Français 
Deutsch 
日本語 

Bunları Android'de almak için yerleşik bir API var mı yoksa bunları kendim mi eşleştirmeliyim?

+1

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

+3

Olası yinelenen [Java kütüphanesi/dil kodu dil adına çeviren api] (http://stackoverflow.com/questions/12910955/java-library-api-hangi-dönüştürür-dil-kod-dil-adı) –

cevap

18

Locale sınıfının bunun için bir yöntemi vardır: public String getDisplayLanguage(Locale locale). Belgelerden: "Yerel olarak yerelleştirilen bu yerel ayarın adını döndürür. Dil adı bilinmiyorsa, dil kodu döndürülür." Yani böyle yerel ayarlar için dil adları alabilirsiniz:

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

Bu neredeyse tam olarak ihtiyacım olan şey. İlk harfi büyük harfle yazmam gerekti, çünkü "es", "Español" in "español" ini geri döndürüyor, ama neredeyse mükemmel. Teşekkür ederim! – razielsarafan

+2

@razielsarafan'ın büyük harf kullanımı kolaydır: 'name = name.substring (0, 1) .toUpperCase() + name.substring (1);' – nvi9

+0

Tüm ülke kodlarını almak için: https://stackoverflow.com/a/ 30028371/3527024 – thenaoh

İlgili konular