使用不同语言的Android文字转语音

时间:2015-11-26 17:56:14

标签: java android locale

我想创建一个可以支持不同语言的应用程序。

"默认"没有问题。语言:

tts.setLanguage(Locale.ENGLISH);

还有其他一些:

Locale l = new Locale("ru","RU");
tts.setLanguage(l);

但是很多其他人都没有工作,例如:

Locale l = new Locale("hu","HU");
tts.setLanguage(l);

我也试过" hu"," hu-HU"," hu-rHU"," HU" ...但是没什么...

此外,它不适用于土耳其语,希腊语,荷兰语,捷克语......

4 个答案:

答案 0 :(得分:6)

并非所有内容都受支持,请使用:Locale.getAvailableLocales()获取可用的区域设置并针对isLanguageAvailable对其进行测试,或者从api21开始,您可以使用getAvailableLanguages()直接获取当前TTS引擎的可用语言。您可以安装替代TTS引擎,即。 SVOX非常好。

答案 1 :(得分:0)

当您键入语言环境时,下拉列表将打开,并且可用的语言如下:

  1. 韩语
  2. 意大利语
  3. 德语
  4. 日语
  5. 法语
  6. 英语
  7. 加拿大法语
  8. 中文
  9. 简体中文
  10. 台湾
  11. 繁体中文
  12. 英国
  13. 美国

目前没有匈牙利语(Magyarul),土耳其语(Türkçe)。

enter image description here

答案 2 :(得分:0)

您必须将手机的系统语言更改为希腊语、土耳其语、荷兰语或任何您想要的语言,以便区域设置采用您的默认区域设置语言。 我写了 println 以检查程序是否正确使用您的系统语言

println(Locale.getDefault().country)
tts!!.setLanguage(Locale.getDefault())

答案 3 :(得分:0)

第一个参数必须使用 ISO 639 alpha-2alpha-3 代码。它是俄语的 "rus"。和 ISO 3166 alpha-2 用于第二个参数。正确 ("RU")。

以下是 ISO 国家/地区代码列表:

ISO 639

ISO 3166