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 /フォルダーのデフォルト言語を指定できます。(ツール接頭辞は、名前空間宣言http://schemas.android.com/toolsを指します 。)
しかし、これはうまくいかないようです。私はそれを間違っていますか、これはlintの問題ですか?
strings.xml
、すべてのファイルがデフォルトとしてすべてのエントリを持っていることですvalues/strings.xml
。