Android扩展默认语言环境

Android扩展默认语言环境,android,localization,android-resources,Android,Localization,Android Resources,我继承了一个旧的android应用程序,我做的第一件事就是将构建从Ant更改为gradle。 该应用程序构建得很好,但当我尝试运行发布目标时,gradle无法抱怨缺少翻译 资源文件夹的文件夹结构为:(默认语言,在values文件夹中为en GB) 因此,linter基本上是正确的,values us文件夹中缺少大多数文件。 但是,一个区域设置包含大约20个文件,每个文件大约有100多行,默认值和US之间的差异可能总共有5行,因此必须维护两个区域设置的所有值似乎不切实际。 明确地说,我绝对希望发布

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

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

因此,linter基本上是正确的,values us文件夹中缺少大多数文件。 但是,一个区域设置包含大约20个文件,每个文件大约有100多行,默认值和US之间的差异可能总共有5行,因此必须维护两个区域设置的所有值似乎不切实际。
明确地说,我绝对希望发布目标失败,当值dk/或值de/缺少翻译时,我只是想用某种方式将美国地区标记为默认值的扩展。这可能吗?

我认为Lint发现了一些字符串,它们不在res/values中,而是在res/values-{language}中。在这种情况下,如果代码尝试使用其中一个字符串,而字符串选择下降到默认值(手机设置为不提供翻译的语言),应用程序将崩溃


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

因此,事实证明这实际上非常简单。我所要做的就是将values-us/文件夹重命名为values-en-rUS/并且它可以工作

在非翻译字符串上设置属性
translateable=“false”
(在
en GB
中)。你的(最终的)字符串数组也是如此。谢谢你的输入,但我真的希望linter在有意义的地方运行,在任何非英语值文件夹中运行f.x。我在原来的问题中添加了更多信息。。。嗯,它已经这样做了。在非英语文件夹中,Lint抱怨未翻译的字符串。但是,如果字符串被标记为“不可翻译”(在English文件夹中),它将不再抱怨这些单词。字符串不是不可翻译的,linter应该验证它们是否被翻译为。f、 x.dk或de locale。将它们标记为不可翻译(因为实际上需要从gb-->us翻译的字符串太少了,所以几乎每个字符串都需要翻译)会使linter变得无关紧要。所以,我不明白你的意思。如果你想把英语翻译成其他语言,那就去做吧。不需要翻译成任何其他语言的字符串应该被标记。非常直接,不是吗?事实上,反过来说,默认值有一些本地化缺少的值。对不起,如果这个问题措辞不当。我试着给它添加更多的信息,希望能让它稍微不那么模棱两可
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