2016-03-17 26 views
9

Tôi có một danh sách các mã ngôn ngữ (như trong "en", "es" ...) Tôi cần để hiển thị trong những ngôn ngữ như thế này:Nhận tên ngôn ngữ trong đó ngôn ngữ từ mã ngôn ngữ

English 
Español 
Français 
Deutsch 
日本語 

Có bất kỳ API tích hợp nào để nhận các API này trong Android hay tôi có nên tự bản đồ hóa chúng không?

+1

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

+3

Có thể trùng lặp của [Thư viện Java/api chuyển đổi mã ngôn ngữ thành tên ngôn ngữ] (http://stackoverflow.com/câu hỏi/12910955/java-library-api-chuyển đổi-ngôn ngữ-mã-sang-ngôn ngữ-tên) –

Trả lời

18

Lớp Locale có phương pháp cho điều này: public String getDisplayLanguage(Locale locale). Từ tài liệu: "Trả về tên của ngôn ngữ của miền địa phương này, được bản địa hóa sang ngôn ngữ. Nếu không biết tên ngôn ngữ, mã ngôn ngữ sẽ được trả về". Vì vậy, bạn có thể nhận được tên ngôn ngữ cho miền địa phương như thế này:

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

Đây gần như chính xác những gì tôi cần. Tôi đã phải viết hoa chữ cái đầu tiên bởi vì "es" trả về "español" insead của "Español" nhưng nó gần như hoàn hảo. Cảm ơn bạn! – razielsarafan

+2

@razielsarafan thật dễ dàng viết hoa: 'name = name.substring (0, 1) .toUpperCase() + name.substring (1);' – nvi9

+0

Để nhận tất cả mã quốc gia: https://stackoverflow.com/a/ 30028371/3527024 – thenaoh

Các vấn đề liên quan