【问题标题】:make multi language android application制作多语言安卓应用
【发布时间】:2016-09-27 14:36:44
【问题描述】:

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

应用程序通过调用应用程序控制器的方法重新启动后,如下所示:

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

在他们之后,几乎所有设计都运行良好。但在三星 Galaxy S6 (SM-G920F) 上,它的表现非常疯狂。有些单词是英语,有些是乌兹别克语和其他单词。 那么,如何解决这个错误呢?不是所有设备都支持(适用于)“支持不同语言”的概念吗? 顺便说一句,我检查了所有资源都以相应的语言给出(如附图所示):

【问题讨论】:

  • 三星喜欢在那里做自己的事情...... :[我发现他们并不总是遵循标准(对于一些事情)
  • 在更改设备语言而不是像那样以编程方式时,您是否遇到同样的问题?
  • 那我该怎么办? @NeilLocketz
  • 您不需要以编程方式更改语言,语言必须由用户设置定义。当他更改设备语言时,您的资源将自动更改
  • 正在为多语种受众创建应用程序。需要从应用程序内部切换语言。客户已明确要求此功能。

标签: android localization samsung-mobile multilingual


【解决方案1】:

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

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

问题解决了。

【讨论】:

    猜你喜欢
    • 2012-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-14
    • 1970-01-01
    • 1970-01-01
    • 2010-10-22
    • 1970-01-01
    相关资源
    最近更新 更多