Android 扩展默认语言环境

Android extend default locale

我继承了一个旧的 android 应用程序,我做的第一件事就是将构建从 Ant 更改为 gradle。 该应用程序构建良好,但是当我尝试 运行 发布目标时,gradle 失败并抱怨缺少翻译。

资源文件夹的文件夹结构为:(默认语言,在values文件夹中为en-GB)

res/
   values/
        /file1.xml
        /file2.xml
        /file3.xml
   /values-us/
        /file2.xml (containing just the few lines that differ from /value/file2.xml
   /values-dk/
         file1.xml
         file2.xml
         file3.xml

所以,基本上 linter 是正确的,values-us 文件夹中的大部分文件都丢失了。 然而,一个语言环境包含大约 20 个文件,每个文件大约 100 多行,默认和美国之间的差异可能总共有 5 行,必须维护两个语言环境的所有值似乎不切实际。 明确地说,我绝对希望发布目标失败,当 values-dk/ 或 values-de/ 缺少翻译时,我就像某种方式将美国语言环境标记为默认的扩展。这可能吗?

我认为 Lint 发现了一些不在 res/values 中但在 res/values-{language} 中的字符串。在这种情况下,如果代码尝试使用其中一个字符串并且字符串选择变为默认字符串(phone 设置为您不提供翻译的语言),应用程序将崩溃。

错误应该告诉您哪个字符串没有翻译。我首先检查定义它的语言并确保它也在默认语言中。

原来这其实很简单。我所要做的就是将 values-us/ 文件夹重命名为 values-en-rUS/ 并且它起作用了。