我在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
),因为这将导致错误,即没有默认资源。这是真的。
我不想一般地抑制警告,因为我打算添加其他语言,我确实希望出现未被翻译成我包含的其他语言的字符串的警告。
我想知道的是告诉lint默认语言的正确方法。我已经按照“不完整翻译”警告的说明做了:
您可以通过在资源文件的根元素中指定tools:locale="languageCode",告诉lint(和其他工具)您的res/values/文件夹中的默认语言。 (tools前缀是指命名空间声明 http://schemas.android.com/tools。)
但是这似乎行不通。我做错了吗,还是这是lint的问题?
strings.xml
文件都应该将所有条目作为默认的values/strings.xml
,无论该值是否需要翻译。 - ahasbini