制作多语言的android应用程序

时间:2016-09-27 14:36:45

标签: android localization samsung-mobile multilingual

我创建了多语言(英语,俄语,乌兹别克语)应用程序。我将4个字符串resoureses放在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控制器的方法重新启动应用程序,如下所示:

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

在他们之后它几乎适用于所有设计。但在三星Galaxy S6(SM-G920F)上,它的工作原理很疯狂。有些词是英语,有些是乌兹别克语和ets。 那么,如何修复此错误?是不是(适用于)所有设备支持的“支持不同语言”的概念? 顺便说一下,我已经检查过所有资源都是用相应的语言给出的(如附图所示):

enter image description here

1 个答案:

答案 0 :(得分:2)

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

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

问题解决了。