【发布时间】:2014-02-06 09:22:10
【问题描述】:
我为 Android 创建了一个文本到语音引擎,它支持多种语言,其中一种是印地语。
在 Android 文本转语音设置中,当用户选择默认语言环境时,Android 会进行多项检查,包括发送意图 ACTION_GET_SAMPLE_TEXT
这是我支持的语言环境列表:
private static final String[] SUPPORTED_LANGUAGES = { "eng-GBR", "eng-USA", "fra-FRA", "spa-ESP", "deu-DEU", "ita-ITA",
"kor-KOR", "nld-NLD", "dan-DNK", "fin-FIN", "jpn-JPN", "nor-NOR", "pol-POL", "por-PRT", "por-BRA", "rus-RUS",
"swe-SWE", "zho-CHN", "zho-HKG", "zho-TWN", "ara-SAU", "hi-IN", "ces-CZE", "ell-GRC", "hun-HUN", "ron-ROU",
"slk-SVK", "tha-THA", "tur-TUR", "cym-GBR", "isl-ISL", "in-IDN" };
对于除“hi-IN”之外的每个区域设置,Android 都会发送此意图,我会以示例文本进行响应,并且“收听示例”按钮变为可用。
我成功地从对onIsLanguageAvailable 的调用中返回了LANG_COUNTRY_AVAILABLE,但按钮仍然显示为灰色,并且显示不支持该语言。
我尝试了很多不同的 ISO 语言环境组合:
hin-IN、hi-IND、ind-HI 等等等等,但 Android 不会发送 Intent,尽管它在区域设置列表中被正确标记为印地语(印度)或只是印地语。
logcat 中没有错误提示变体匹配失败。
我发布我的代码没什么意义,因为 Android 根本不会发送此区域设置的 Intent,因此它无法访问我的代码....
任何想法如何正确处理此语言环境变体?
编辑:我刚刚意识到印度尼西亚语(in-IDN)也发生了这种情况
【问题讨论】:
-
尝试
hin-IND和ind-IDN分别用于印地语和印度尼西亚语。 -
@shoerat 非常感谢!我发誓我试过这些组合?无论如何,如果您将评论放在答案中,我将奖励您赏金。再次感谢。
标签: android locale text-to-speech