当我点击按钮或选择菜单项时,我可以将应用中的所有文字更改为其他文字吗?
我实际上要做的是让我的应用程序翻译成几种非iso语言("非iso"意味着我无法在wiki上找到它们#s; s ISO-639列表)。
因此,我希望用户能够选择他们查看我的应用的语言,无论他们的手机语言设置如何。我希望他们能够在应用程序中进行语言选择。
我在strings.xml中有所有英文按钮和textview文本,我可以为新语言创建一个strings-xx.xml。
我将使用带有列出的语言选项的子菜单。因此,文本更改将响应该菜单上的onclick事件。 任何指针都会非常受欢迎。
答案 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();
}
}