我为我的用户提供了更改应用语言的机会。我用这个:
public void languageToLoad(String language) {
String lang = language;
Locale locale = new Locale(lang);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
}
英语: languageToLoad(en) 或法语: languageToLoad(fr)
但我的问题是应用程序名称不会更改。
strings.xml(en):
<string name="app_name">SoccerPro</string>
strings.xml(fr):
<string name="app_name">FootballPro</string>
每个字符串都会更改其值,但“app_name”不会更改。
如果设备语言发生变化,那么它也会发生变化,但不像我的方式。我做错了什么?
最佳答案
您对 updateConfiguration()
的调用最多会影响您的进程。它不影响其他进程。这意味着除非您的应用是主屏幕,否则主屏幕不会改变。 updateConfiguration()
不会在系统级别影响用户的语言,据我所知,普通的 SDK 应用程序无法做到这一点。
关于java - 用户以编程方式更改应用名称后,应用名称不会更改语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29722189/