Ich erhalte in Android Studio Warnungen vor nicht übersetzten Zeichenfolgen - es wird mir mitgeteilt, dass sie nicht ins Englische übersetzt wurden. Dies scheint daran zu liegen, dass ich einen Ressourcenordner "en-rGB" habe. Ich habe jedoch versucht, die Anweisungen in Flusen zu befolgen, um die Standardsprache anzugeben, aber dies hat nicht funktioniert.
Ich habe die folgenden strings.xml-Dateien:
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>
Erwartetes Ergebnis: Es sollten keine Warnungen angezeigt werden. Beide Zeichenfolgen werden sowohl in Englisch als auch in Französisch übersetzt
Tatsächliches Ergebnis: Lint warnt vor string2 und sagt, dass es nicht ins Englische übersetzt wurde.
Beachten Sie, dass ich fr-rCA aufgenommen habe, um zu zeigen, dass es sich nicht um eine regionale Sache handelt. Es ist froh, dass es nicht ins Französische übersetzt werden muss, solange es ins "unregionierte" Französisch übersetzt wird. In diesem Fall wird nicht vor string1 gewarnt, obwohl es nicht ins Französisch-Kanadische übersetzt wurde, da es bereits ins Französische übersetzt wurde.
Ich kann den Hauptressourcenordner nicht in Englisch ( values-en
) ändern , da dies zu Fehlern führt, dass keine Standardressourcen vorhanden sind. Was wahr ist.
Ich möchte die Warnung im Allgemeinen nicht unterdrücken, da ich beabsichtige, weitere Sprachen hinzuzufügen, und ich möchte, dass die Warnung für Zeichenfolgen angezeigt wird, die nicht in andere von mir aufgenommene Sprachen übersetzt wurden.
Was ich suche, ist der richtige Weg, um Lint über die Standardsprache zu informieren. Ich habe es gemäß den Anweisungen für die Warnung "Unvollständige Übersetzung" getan:
Sie können lint (und anderen Tools) mitteilen, welche Sprache die Standardsprache in Ihrem Ordner res / values / ist, indem Sie tools angeben: locale = "languageCode" für das Stammelement in Ihrer Ressourcendatei. (Das Tools-Präfix bezieht sich auf die Namespace-Deklaration http://schemas.android.com/tools .)
Das scheint aber nicht zu funktionieren. Mache ich es falsch oder ist das ein Problem mit Flusen?
quelle
strings.xml
Dateien standardmäßig alle Einträge enthaltenvalues/strings.xml
, unabhängig davon, ob der Wert übersetzt werden muss oder nicht.Antworten:
Es ist ein Fehler: https://issuetracker.google.com/issues/142590628
Ich habe einen Hotfix für Sie: Automatisch
values/strings.xml
invalues-en
Ordner kopieren1.
values-en
Ordner erstellen2. Fügen Sie es ein
app/build.gradle
Demo:
quelle