我为用户提供了更改应用语言的机会。我用这个:
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());
}
for english:languageToLoad(en)或french:languageToLoad(fr)
但我的问题是应用名称不会改变。
strings.xml(en):
<string name="app_name">SoccerPro</string>
strings.xml(fr):
<string name="app_name">FootballPro</string>
每个字符串都会更改其值,但不会更改“app_name”。
如果设备语言发生了变化,那么它会发生变化但不像我的方式。我做错了什么?
答案 0 :(得分:2)
您对updateConfiguration()
的来电最多会影响您的流程。它不会影响其他进程。这意味着除非您的应用 主屏幕,否则主屏幕不会更改。 updateConfiguration()
不会影响用户在系统级别的语言,而AFAIK也无法让普通的SDK应用程序执行此操作。