我有一个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));
}
}
答案 0 :(得分:1)
从ISO语言代码的数据源构建字典:
答案 1 :(得分:1)
是的,您可以使用Locale.forLanguageTag
:
Locale locale = Locale.forLanguageTag("en-US");
System.out.println(locale.getDisplayName());
// "English (United States)"