我正在构建一个可以向用户读取字符串资源的简单应用。最终这些资源将被翻译成目前两种语言,英语(默认资源)和德语。
现在我的问题是当没有用户系统区域设置的翻译时,为TTS引擎选择正确的语言。
有没有办法确定字符串是否已翻译。它不是来自默认的values/strings.xml
文件?
更新:对象是,例如没有德语字符串用英语合成。
答案 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
根据此信息,您可以确定是否使用了设备国家/地区的翻译。