【问题标题】:Android Studio - Languages confusionAndroid Studio - 语言混乱
【发布时间】:2018-02-21 06:28:30
【问题描述】:

我正在开发应支持 3 种语言的应用程序:俄语、英语、乌兹别克语。为此,我在“res”文件夹中创建了 3 个文件夹,每个文件夹都有 strings.xml 文件

  1. 价值观
  2. 价值观-zh
  3. 价值观-uz

我希望将俄语作为默认语言,将英语和乌兹别克语作为可选语言。

但 Android Studio 显示 values-en/strings.xml 的俄罗斯联邦标志,这很奇怪。

当我运行应用程序时,大多数情况下,它都能正常工作。但是当系统语言是英语时,它开始表现得很奇怪——从英语切换到俄语,然后从俄语切换到英语。

这是 Android Studio 的错误还是我做错了什么?有什么办法可以解决这个问题吗?

【问题讨论】:

  • 它会显示语言的标志,这很正常,没什么奇怪的
  • @Aj27,是的。对于这个项目,我有这种问题。我以前从来没有遇到过这样的问题
  • 这不是 Android Studio 的功能问题
  • @Aj27 ,但我认为奇怪的是“values-en”显示了另一个国家标志。
  • @Aj27,是的,values-en 显示错误标志

标签: android


【解决方案1】:

你可以把 values-en 改成 values-en-rGB 就可以了。

【讨论】:

  • 谢谢我试试这个,但是r是什么意思?
  • r 代表地区
  • 如果你清楚,你可以将此问题标记为已接受,这样也可以帮助其他人。有关语言和区域设置的更多信息,您可以查看developer.android.com/guide/topics/resources/…
【解决方案2】:

您也可以在您的应用程序的第一次运行中更改locale,如启动屏幕setLocale("ra",this) 或您的Application class(如果有)。

例如

  public void setLocale(String localeCode, AppCompatActivity appCompatActivity) {
        new PrefManager().setLanguageForDevice(appCompatActivity, localeCode);
        Locale locale = new Locale(localeCode);
        Locale.setDefault(locale);
        Configuration config = new Configuration();

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            config.setLocales(new LocaleList(locale));
        } else {
            config.locale = locale;
        }          
    }

【讨论】:

  • 感谢您的建议!我一定会试试的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-24
  • 1970-01-01
  • 2016-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多