制作多语言 android 应用程序

make multi language android application

我创建了多语言(英语、俄语、乌兹别克语)应用程序。我将 4 个字符串资源放在 4 个文件夹中(values、values-en、values-ru、values-uz)作为 docs。当我在 App Controller 中更改应用程序语言更新资源配置时,如下所示:

 Settings.LANGUAGE = prefs.getString(User.LANG, Settings.RUSSIAN);
 Locale locale = new Locale(Settings.LANGUAGE);
 Locale.setDefault(locale);
 Configuration configuration = new Configuration();
 configuration.locale = locale;
 getBaseContext().getResources().updateConfiguration(configuration,
     getBaseContext().getResources().getDisplayMetrics());

之后,通过调用 App Controller 的方法重新启动 App,如下所示:

public void reStart() {
    Intent i = getBaseContext().getPackageManager()
            .getLaunchIntentForPackage(getBaseContext().getPackageName());
    i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(i);
}

在他们之后它几乎适用于所有设计。但在 Samsung Galaxy S6 (SM-G920F) 上,它的表现非常疯狂。有些词是英语,有些是乌兹别克语和其他语言。 那么,如何修复此错误? "Supporting Different Languages" 的概念不是所有设备都支持(适用于)吗? 顺便说一句,我检查了所有资源都以相应的语言给出(如附图所示):

根据我的观察,奇怪的行为只影响 Activity 个标题,我发现我在清单文件中设置了 activity 个标题的翻译。只有这些翻译行为不当。所有其他动态设置的翻译工作正常。 因此,为了解决这个问题,我从 Manifest 文件中删除了所有 activity 标签,然后在 onCreate 方法中设置 activity 标题,如下所示:

getSupportActionBar().setTitle(R.string.title_activity_followers);

问题已解决。