我的Toast消息未翻译;它仅以默认语言显示

时间:2016-07-21 20:42:26

标签: android android-toast

我创建了一个Toast消息,通知用户设备方向更改:

if (configuration.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        Toast.makeText(this, R.string.orientation_change, Toast.LENGTH_SHORT).show();
        recreate();
    }

只要需要,就会显示该消息,但在我的应用程序的其他语言版本中,R.string.orientation_change文本以默认语言显示,即英语。这在模拟器和真实设备中进行了检查,每个都有相同的结果。

有没有办法让Toast消息本地化?

3 个答案:

答案 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)

解决了问题:

  1. 清理项目;
  2. 再次建造项目。
  3. 在构建时,我收到一个错误,即translatable="false"参数设置在英语定义的值旁边,尽管也为其他语言准备了值。

    由于某种原因,林特以前没有发现它,但无论如何,问题现在已经解决了。

    谢谢你们的努力。

答案 2 :(得分:1)

可能感觉像是黑客,但获取资源为你做翻译,而不是内部Toast代码。

Toast.makeText(this, getResources().getString(R.string.orientation_change), Toast.LENGTH_SHORT).show();