无法在 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.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
演示:
我在 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.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
演示: