无法在 Android Studio 中设置默认语言

Cannot set the default language in Android Studio

我在 Android Studio 中收到有关未翻译字符串的警告 - 它告诉我它们尚未翻译成英文。这似乎是因为我有一个 "en-rGB" 资源文件夹。但是我已经尝试按照 lint 中的说明指定默认语言,但这并没有奏效。

我有以下 strings.xml 个文件:

values/strings.xml:

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

    <string name="string1">Howdy</string>
    <string name="string2">Howdy</string>
</resources>

values-en-rGB/strings.xml:

<resources>

    <string name="string1">Hello</string>
</resources>

values-fr/strings.xml:

<resources>

    <string name="string1">Bonjour</string>
    <string name="string2">Bonjour</string>
</resources>

values-fr-rCA/strings.xml:

<resources>

    <string name="string2">Bonjour</string>
</resources>

预期结果: 应该没有警告,两个字符串都被翻译成英文和法文

实际结果: Lint 会警告 string2,说它没有翻译成英文。

请注意,我包含了 fr-rCA 以表明它不是区域性的。令人高兴的是,只要翻译成"unregioned"法文,就不用再翻译成加拿大法文了。在这种情况下,它不会对 string1 发出警告,即使它没有被翻译成加拿大法语,因为它已经被翻译成法语。

我无法将主资源文件夹更改为英文(values-en),因为那样会导致没有默认资源的错误。这是真的。

我一般不想取消警告,因为我打算添加其他语言,而且我确实希望警告出现在未翻译成我包含的其他语言的字符串中。

我所追求的是告知 lint 默认语言的正确方法。我已经按照 "Imcomplete translation" 警告的说明进行了操作:

You can tell lint (and other tools) which language is the default language in your res/values/ folder by specifying tools:locale="languageCode" for the root element in your resource file. (The tools prefix refers to the namespace declaration http://schemas.android.com/tools.)

但这似乎不起作用。我做错了吗,还是 lint 的问题?

这是一个错误:https://issuetracker.google.com/issues/142590628

我有一个修补程序给你:自动复制 values/strings.xmlvalues-en 文件夹

1. 创建 values-en 文件夹

2.粘贴到app/build.gradle

task copyEnResource {
    copy {
        from ('src/main/res/values/strings.xml')
        into ('src/main/res/values-en/')
    }
}

preBuild.dependsOn copyEnResource

演示: