用户在以编程方式更改语言后,应用名称不会更改语言

时间:2015-04-18 20:04:38

标签: java android string

我为用户提供了更改应用语言的机会。我用这个:

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”。

如果设备语言发生了变化,那么它会发生变化但不像我的方式。我做错了什么?

1 个答案:

答案 0 :(得分:2)

您对updateConfiguration()的来电最多会影响您的流程。它不会影响其他进程。这意味着除非您的应用 主屏幕,否则主屏幕不会更改。 updateConfiguration()不会影响用户在系统级别的语言,而AFAIK也无法让普通的SDK应用程序执行此操作。