根据翻译状态选择tts的语言

时间:2016-01-28 13:48:40

标签: android text-to-speech

我正在构建一个可以向用户读取字符串资源的简单应用。最终这些资源将被翻译成目前两种语言,英语(默认资源)和德语。

现在我的问题是当没有用户系统区域设置的翻译时,为TTS引擎选择正确的语言。

有没有办法确定字符串是否已翻译。它不是来自默认的values/strings.xml文件?

更新:对象是,例如没有德语字符串用英语合成。

1 个答案:

答案 0 :(得分:0)

我不知道这是否正是你需要的,如果我理解你正确的方式。我猜你想首先确定用户设备使用哪种语言环境,对吧?然后,有一种方法可能是你需要的方法:

String locale = context.getResources().getConfiguration().locale.getDisplayName();

使用getResources().getConfiguration()您将获得“对此资源对象有效的当前配置”,并使用配置区域设置获得“区域设置的当前用户首选项,相应的到语言环境资源限定符“(API引用)。然后,您将使用getDisplayName()

来检索已使用的语言

返回此区域设置的语言名称,国家/地区名称和变体,已本地化为区域设置。确切的输出形式取决于此区域设置是否对应于特定语言,脚本,国家/地区和变体。

我猜,你会得到像“英语”或“英语(美国)”或类似的输出。这在这里描述:

http://developer.android.com/reference/java/util/Locale.html#getDisplayName%28%29

根据此信息,您可以确定是否使用了设备国家/地区的翻译。