首页 > 解决方案 > 从语言环境代码中获取国家和语言

问题描述

我有一个 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));
    }
}

标签: androidlocalespeech-recognition

解决方案


从 ISO 语言代码的数据源构建字典:

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


推荐阅读