Получить страну и язык из кода локали - PullRequest
0 голосов
/ 04 июля 2018

У меня есть метод Android, который выводит все языковые коды для распознавания речи, которые доступны в устройстве. Проблема в том, что он возвращает коды типа «en-US», «es-ES», «es-MX» ... Я хотел бы знать, есть ли способ преобразовать эти коды в отображаемое имя языка (английский ( США), испанский (Испания) ...). Спасибо за вашу помощь.

@Override
public void onReceive(Context context, Intent intent)
{
    Bundle results = getResultExtras(true);
    if (results.containsKey(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE))
    {
        languagePreference =
                results.getString(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE);
    }
    if (results.containsKey(RecognizerIntent.EXTRA_SUPPORTED_LANGUAGES))
    {
        supportedLanguages =
                results.getStringArrayList(
                        RecognizerIntent.EXTRA_SUPPORTED_LANGUAGES);
    }

    for(int i=0;i<supportedLanguages.size();i++){
        System.out.println("The language supported is: "+supportedLanguages.get(i));
    }
}

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

Да, вы можете использовать Locale.forLanguageTag:

Locale locale = Locale.forLanguageTag("en-US");
System.out.println(locale.getDisplayName());

// "English (United States)"
0 голосов
/ 04 июля 2018

Создание словаря из источника данных ISO. Языковые коды:

https://www.andiamo.co.uk/resources/iso-language-codes

...