如何通过点击事件更改我的所有活动(按钮文本,文本视图等)上的所有文本?

时间:2016-07-01 08:30:08

标签: android translation language-translation

当我点击按钮或选择菜单项时,我可以将应用中的所有文字更改为其他文字吗?

我实际上要做的是让我的应用程序翻译成几种非iso语言("非iso"意味着我无法在wiki上找到它们#s; s ISO-639列表)。

因此,我希望用户能够选择他们查看我的应用的语言,无论他们的手机语言设置如何。我希望他们能够在应用程序中进行语言选择。

我在strings.xml中有所有英文按钮和textview文本,我可以为新语言创建一个strings-xx.xml。

我将使用带有列出的语言选项的子菜单。因此,文本更改将响应该菜单上的onclick事件。 任何指针都会非常受欢迎。

1 个答案:

答案 0 :(得分:2)

取自:How to change language of app when user selects language?

Cell C1

您可以将任何有效的语言字符串传递给setLocale方法,例如“de”或“it”,但您必须重新启动Activity。

如果您按后退按钮,我不知道您的应用将如何表现。如果它启动“旧”活动,请在重新启动活动时尝试此操作:

public void setLocale(String lang) { 
    myLocale = new Locale(lang); 
    Resources res = getResources(); 
    DisplayMetrics dm = res.getDisplayMetrics(); 
    Configuration conf = res.getConfiguration(); 
    conf.locale = myLocale; 
    res.updateConfiguration(conf, dm); 
    Intent refresh = new Intent(this, YOURACTIVITY.class); 
    startActivity(refresh); 
    finish();
} 

}