Android Strings.XML区域文件覆盖语言文件?

Android Strings.XML区域文件覆盖语言文件?,android,localization,Android,Localization,我正在尝试本地化我的应用程序,但有一些疑问。我已经用西班牙语翻译了字符串,并且我试图非常具体地使用区域代码,因此我将文件夹命名为values-es_rES、values-es_rUS和values-es_rMX。现在有更多的国家和用户喜欢使用西班牙语,所以我创建了一个通用的values es文件夹 我想知道android能否自动将墨西哥、美国和西班牙的所有用户推到各自的地区代码下的语言,而智利、秘鲁等其他国家的用户是否会显示es语言而不是我默认的美国英语?您有两个选项 使用语言区域设置(即,西班

我正在尝试本地化我的应用程序,但有一些疑问。我已经用西班牙语翻译了字符串,并且我试图非常具体地使用区域代码,因此我将文件夹命名为values-es_rES、values-es_rUS和values-es_rMX。现在有更多的国家和用户喜欢使用西班牙语,所以我创建了一个通用的values es文件夹

我想知道android能否自动将墨西哥、美国和西班牙的所有用户推到各自的地区代码下的语言,而智利、秘鲁等其他国家的用户是否会显示es语言而不是我默认的美国英语?

您有两个选项

  • 使用语言区域设置(即,西班牙语/西班牙为es_-es,西班牙语/秘鲁为es_-PE)
  • 在资源文件夹中使用MNC/MCC代码,这将取代区域设置
  • 按照您所描述的方式,所有已定义语言环境为es_XX(任何区域)的用户都将转到您的“values es”文件夹,但美国用户不会,除非美国用户已将“es_US”配置为其语言环境

    请看下面的表2


    请记住,如果“es_es”中缺少某个资产,它将从“es”中获取该资产,因此仅更改那些不同的资产。

    这取决于手机本身的系统语言环境。如果您更改手机的区域设置,您的应用程序也将默认为西班牙语。重复:您指出了我面临的确切问题“但美国用户不会,除非美国用户已将“es_US”配置为其区域设置。”实际上,我的问题是,我有两个模块项目(应用程序App1和App2)进入同一个repo,两个应用程序都有值_zh和值zh rTW。当我将设备的自定义区域设置设置为zh_US时,App1从值_zh中拾取字符串,但App2从值zh rTW而不是值zh中拾取字符串。但如果我向App2添加值,它就会从那里选择它。但我不想让它从zh的价值观中吸取教训(因为美国可以进入任何地区)。有什么想法吗???TIATypo在上面的评论中写道“但我希望它能从zh值中得到启发”。这是我的问题,请随意回答-