我创建了一个Toast消息,通知用户设备方向更改:
if (configuration.orientation == Configuration.ORIENTATION_LANDSCAPE) {
Toast.makeText(this, R.string.orientation_change, Toast.LENGTH_SHORT).show();
recreate();
}
只要需要,就会显示该消息,但在我的应用程序的其他语言版本中,R.string.orientation_change
文本以默认语言显示,即英语。这在模拟器和真实设备中进行了检查,每个都有相同的结果。
有没有办法让Toast消息本地化?
答案 0 :(得分:2)
您必须为每种要支持的语言提供一个字符串,遵循以下结构:
MyProject/
res/
values/
strings.xml
values-es/
strings.xml
values-fr/
strings.xml
其他信息,请参阅:https://developer.android.com/training/basics/supporting-devices/languages.html
答案 1 :(得分:2)
解决了问题:
在构建时,我收到一个错误,即translatable="false"
参数设置在英语定义的值旁边,尽管也为其他语言准备了值。
由于某种原因,林特以前没有发现它,但无论如何,问题现在已经解决了。
谢谢你们的努力。
答案 2 :(得分:1)
可能感觉像是黑客,但获取资源为你做翻译,而不是内部Toast代码。
Toast.makeText(this, getResources().getString(R.string.orientation_change), Toast.LENGTH_SHORT).show();