我在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来表明这不是地区性的事情。很高兴的是,只要将其翻译成“未划分区域的”法语,就不必将其翻译成加拿大法语。在这种情况下,即使它没有被翻译成加拿大法语,它也不会警告string1,因为它已经被翻译成法语。
我无法将主资源文件夹更改为英语(values-en
),因为这将导致错误,提示没有默认资源。正确。
我一般不希望取消警告,因为我打算添加其他语言,并且我确实希望针对未翻译成我所包含的其他语言的字符串显示警告。
我所追求的是正确的方式来通知皮棉默认语言。我已经按照“翻译不完整”警告的说明进行了操作:
您可以告诉皮棉(和其他工具)默认的语言通过在res / values /文件夹中指定语言tools:locale =“ languageCode”表示您的根元素资源文件。 (工具前缀指的是名称空间声明http://schemas.android.com/tools。)
但是这似乎不起作用。我做错了吗,或者这是皮棉的问题?
是错误:https://issuetracker.google.com/issues/142590628
我有一个修复程序:自动将values/strings.xml
复制到values-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
Demo: