Android系统。如何在值中更改string.xml的默认语言环境

时间:2016-07-01 11:25:04

标签: android locale

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

俄语:

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

英文:

  • 1本书
  • n本书

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

3 个答案:

答案 0 :(得分:2)

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

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

来自doc:

  

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

答案 1 :(得分:0)

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

像这样

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

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

答案 2 :(得分:0)

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

java中的

使用此代码以编程方式更改您的应用程序语言。更改为rush参数的rushion调用方法,如此changeLanguage(&#34; ru&#34;)。

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());
    }