Как получать имя языка, установленного в Android?

Со следующим кодом Java изменил язык моего приложения:

public class Utils {

    private static Locale defaultLocale;

    public static void setLocale(Context myContext, String languageToLoad) {

        if (defaultLocale == null) defaultLocale = Locale.getDefault(); //backup default locale

        if (languageToLoad.equals("default")) languageToLoad = defaultLocale.getLanguage();
        Log.d("UsefulFunctions", "setLocale():" + languageToLoad);

        Locale locale = new Locale(languageToLoad);
        Locale.setDefault(locale);
        Configuration config = new Configuration();
        config.locale = locale;
        myContext.getResources().updateConfiguration(config,
                myContext.getResources().getDisplayMetrics());

    }
}

Я хочу добавить функцию getDisplayLanguage для того, чтобы он возвращает мне установленный язык, не Вашего идентификатора (es, en) а именно, если я определяю язык как: es что возвратил под меня español

Чтобы получать доступные языки, которые есть в Android

Locale locales[] = Locale.getAvailableLocales();

Видеть таблицу how-do-i-display-all-available-locales.html (в)

Чтобы получать имя языка списка

locale[i].getDisplayLanguage()

Только мне нужно, как искать внутри array типа Locale специфический язык, перемещая параметр тип Language а именно es

Пример Результата:

Utils.setLoclae('es');
Utils.getDisplayLanguage('es') //devuelve Español

1
задан 17.05.2016, 19:07
2 ответа

Попытайся как первая opciГіn:

Locale.getDefault().getDisplayLanguage();

tambiГ©n

Locale.getDefault().getDisplayName();
4
ответ дан 24.11.2019, 14:21
  • 1
    Итак, если оно функционирует, не быть для того, чтобы я осложнялся, жизнь –  Webserveis 17.05.2016, 19:23
  • 2
    Что получается с getDisplayName (), ты это протестировал??? –  Jorgesys♦ 17.05.2016, 19:52
  • 3
    Если @Webserveis tambi и # 233; n я только что протестировал это, потому что действительно искренне desconoc и # 237; в этот другой opci и # 243; n, что ты сделал .getDisplayName () сходно в new Locale (" es") .getDisplayName () и он получает " Espa и # 241; ol" –  Jorgesys♦ 17.05.2016, 20:19
  • 4
    @Elenasys в ссылке, которую я поместил в вопрос, есть стоимость, такой который c и # 243; mo они получаются от каждого м и # 233; совсем, avajava.com/tutorials/lessons/… –  Webserveis 17.05.2016, 20:22
  • 5
    Большое спасибо из-за informaci и # 243; n, это очень хорошая статья. –  Jorgesys♦ 17.05.2016, 20:25

Он используется getDisplayLanguage() :

Locale.getDefault().getDisplayLanguage();

getDisplayLanguage() Возврати имя локального языка.

—————

Проверяя использование getDisplayName (), возможно считать как другой выбор, хотя он возвращает более специфические данные как это имя, имя страны, и вариант, как возможно видеть в примерах документации:

  • new Locale("en").getDisplayName(Locale.US)

    он получает: English

  • new Locale("en", "US").getDisplayName(Locale.US)

    он получает: English (United States)

  • new Locale("en", "US", "POSIX").getDisplayName(Locale.US)

    он получает: English (United States,Computer)

  • Locale.fromLanguageTag("zh-Hant-CN").getDisplayName(Locale.US)

    он получает: Chinese (Traditional Han,China)

  • new Locale("en").getDisplayName(Locale.FRANCE)

    он получает: anglais

  • new Locale("en", "US").getDisplayName(Locale.FRANCE)

    он получает: anglais (États-Unis)

  • new Locale("en", "US", "POSIX").getDisplayName(Locale.FRANCE)

    он получает: anglais (États-Unis,informatique).

В этой статье, которую он имеет @Webserveis, мы можем видеть стоимость, полученную начиная с Locale с getDisplayLanguage() и с getDisplayName():

2
ответ дан 24.11.2019, 14:21
  • 1
    Это тот же ответ, что est и # 225; достигни:/ –  x4mp73r 17.05.2016, 19:56
  • 2
    Определи использование getDisplayName (), так как он не возвращается, и #250; nicamente " имя языка establecido" –  Jorgesys♦ 17.05.2016, 20:01

Теги

Похожие вопросы