从语言代码中获取该语言的语言名称

Cha*_*ake 18 java android locale

我有一个语言代码列表(如"en","es"......)我需要用这样的语言显示:

English
Español
Français
Deutsch
???
Run Code Online (Sandbox Code Playgroud)

是否有任何内置的API可以在Android中获取这些API,或者我应该自己映射它们?

nvi*_*vi9 36

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

//...
Run Code Online (Sandbox Code Playgroud)

  • @razielsarafan很容易大写:`name = name.substring(0,1).toUpperCase()+ name.substring(1);` (2认同)
  • 另外,我想另外提到,只有在这种情况下,Locale 才需要使用语言代码进行实例化。如果您尝试使用语言+国家/地区代码(例如,`es_MX` - 来自墨西哥的西班牙语)执行此操作,则必须执行以下操作:`Locale auxLocale = new Locale(languageCode, countryCode);` 否则它将无法工作。我发布此信息以供任何人注意-就我而言,我花了一点时间才意识到,因为我需要使用语言和国家/地区代码。谢谢大家的回答! (2认同)