制作多语言 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);
问题已解决。
我创建了多语言(英语、俄语、乌兹别克语)应用程序。我将 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);
问题已解决。