【问题标题】:Android. How change default locale fo string.xml in values安卓。如何在值中将默认语言环境更改为 string.xml
【发布时间】:2016-07-01 11:25:03
【问题描述】:

我有一个只有俄语语言环境的应用程序。如果我没记错的话,res/values 中的string.xml 默认是英语语言环境。但是英语和俄语有不同的复数形式。例如:

俄语:

  • 1,21,31..x1 книга
  • 2-4, 2(2-4), 3(2-4), .., x(2-4) книги
  • 在其他情况下 - книг

英文:

  • 1 本书
  • n 本书

当用户将系统语言从俄语更改为其他语言时,问题就开始了。 如何更改应用程序的默认语言?还是可以强制应用使用俄语复数形式?

【问题讨论】:

  • @vladimir 你看到这个问题了吗:set-locale-programatically,你可以强制使用任何语言。如果你看问题不明白,我可以告诉你。
  • 是的,但它没有回答我的问题。我需要的是默认的 string.xml 使用的俄语复数形式。
  • 我不想以编程方式设置语言环境。
  • 请仔细阅读我的问题)。我的所有字符串都在默认文件夹中。默认值中的 string.xml 使用英语复数,而不是俄语。我有问题:“1 книга”,但总是“n книг”。如英文:“1 book”,“n books”。但这对俄语来说是错误的。
  • 嗯,现在我明白了,对不起。

标签: android locale


【解决方案1】:

我终于找到了答案: https://developer.android.com/studio/write/tool-attributes#toolslocale

<resources xmlns:tools="http://schemas.android.com/tools"
tools:locale="es">

来自文档:

这告诉工具给定元素中资源的默认语言/区域设置是什么(因为工具否则假定为英语)以避免来自拼写检查程序。该值必须是有效的语言环境限定符。

【讨论】:

    【解决方案2】:

    您可以创建不同的 String.xml 文件

    喜欢这个

    values/
               strings.xml
           values-es/
               strings.xml
           values-fr/
               strings.xml
    

    查看google官方文档https://developer.android.com/training/basics/supporting-devices/languages.html &https://developer.android.com/guide/topics/resources/localization.html

    【讨论】:

    • 这不能回答我的问题。 values - 默认情况下的文件夹。我只有一种语言。但默认使用英语复数。
    【解决方案3】:

    创建新的值文件夹 values-ru 并将 string.xml 放入其中。

    在 java 中,使用此代码以编程方式更改您的应用语言。更改为带有 ru 参数的 rushion 调用方法,例如 changeLanguage("ru")。

    public void changeLanguage(String languageToLoad) {
            //for language change
            Locale locale = new Locale(languageToLoad);
            Locale.setDefault(locale);
            Configuration config = new Configuration();
            config.locale = locale;
            getResources().updateConfiguration(config, getResources().getDisplayMetrics());
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-04
      • 1970-01-01
      • 2014-03-09
      相关资源
      最近更新 更多