我已经将我的本地化了。我还使用TextToSpeech来读取一些本地化字符串。
speech.setLanguage(Locale.getDefault());
我的问题是,如果用户说意大利语,由于应用程序未本地化为意大利语,界面将恢复为英语,但TextToSpeech仍使用意大利语语音和发音。
基本上是这样的:
任何想法如何做到这一点?
我还没有找到方法知道该应用目前使用的语言,但我发现我可以使用Locale.getDefault().getLanguage()
获取该语言并将其与AssetManager.getLocales()
进行比较,但我没有&# 39;设法调用getLocales()
答案 0 :(得分:0)
这就是我现在正在做的事情:
String deviceLang = Locale.getDefault().getLanguage();
speech.setLanguage(deviceLang.equals("en") || deviceLang.equals("es") ? Locale.getDefault() : Locale.US);
但是我不满意我必须用我支持的语言更新它。一个更好的解决方案是获取应用程序支持的语言并将其与deviceLang进行比较(这可能与AssetManager.getLocales()
有关,但我还没有设法证明它)