【问题标题】:How can I have both res/values-pt_PT and res/values-pt_BR on Android?如何在 Android 上同时拥有 res/values-pt_PT 和 res/values-pt_BR?
【发布时间】:2014-08-30 12:45:35
【问题描述】:

在为国际化创建文件夹时,我不断收到错误消息。但错误仅出现在名称为 values-xx_XX 的文件夹中。如果我有 values-xx 一切都很好,但就像我在标题中问的那样,我想为(大约)相同的语言创建 2 个单独的文件夹:values-pt_PT,values-pt_BR。我怎样才能做到这一点而不会出现任何错误?注意:错误没有在任何地方指定,eclipse只是用红叉标记文件夹并且不允许我运行项目。

感谢每一个提示。谢谢! :)

【问题讨论】:

    标签: android internationalization android-resources


    【解决方案1】:

    使用values-xx-rXX 格式而不是values-xx_XX。在这种情况下,您应该使用values-pt-rPTvalues-pt-rBR

    http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources

    语言由两个字母的 ISO 639-1 语言代码定义, 可选地后跟两个字母的 ISO 3166-1-alpha-2 区域代码 (以小写“r”开头)。

    【讨论】:

    • 这似乎是答案。确实文档指定了这个问题,下次我应该更加注意搜索/查看。但现在我有另一个问题。我应该将什么字符串作为 Locale 的参数提供?例如,如果我有文件夹 values-pt-rBR 应该是什么字符串?我已经尝试过 pt_BR 但它不起作用。谢谢回答
    • 好的,我找到了解决方案。我使用了另一个构造函数 Locale("br","BR") 并且它有效。我仍然不知道为什么它不起作用 Locale("br_BR")。谢谢你的回答!
    【解决方案2】:

    我自己没有做过,但是在这里快速搜索后,我找到了Setting region based Local in android,他们建议像你一样使用构造函数:

    Locale locale = new Locale("ar","SA"); //(language,country)
    

    而且,如果您希望将其作为一个参数传递,您仍然可以使用“values”文件夹中的小写“r”,如下所示:

     Locale locale = new Locale("ar-rSA");
    

    希望对你有帮助:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-01
      • 1970-01-01
      • 2014-08-24
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      相关资源
      最近更新 更多