Android Lint: Wie ignoriert man fehlende Übersetzungswarnungen in einer regionalen Gebietsschema-String-Datei, die absichtlich nur einige Standardübersetzungen überschreibt?
Lesezeit: 5 Minuten
Steveo
Ist es möglich, einige Zeichenfolgen, aber nicht alle, in einer separaten Ressourcendatei zu übersetzen, ohne dass sich Lint darüber beschwert Fehlende Übersetzung?
Beispiel: Die Strings meiner App sind alle drin res/values/strings.xml. Eine der Saiten ist
<string name="postal_code">Postal Code</string>
Da “Postleitzahl” in den USA normalerweise “Postleitzahl” heißt, möchte ich eine weitere Ressource hinzufügen res/values-en-rUS/strings.xml mit Inhalt:
Lint beschwert sich jedoch über andere Saiten Werte/Strings.xml aber nicht drin values-en-rUS/strings.xml
Mir ist klar, dass Sie die Warnungen unterdrücken können, indem Sie angeben tools:ignore in Werte/Strings.xml. Dies ist jedoch unerwünscht, da die Lint-Warnung beim Übersetzen in eine andere Sprache tatsächlich nützlich ist.
Stattdessen ist es möglich, die Warnung in der zu unterdrücken values-en-rUS/strings.xml Datei, wie in Lint sagen, dass er diese Datei nicht als Kriterium verwenden soll, wenn er nach fehlenden Übersetzungen sucht?
Verwandt/fast ein Dummkopf: Ignorieren der Überprüfung von Android Lint „MissingTranslation“ auf Teilübersetzungen
– bladibla
28. April 2015 um 23:05 Uhr
Bitte markieren Sie die @blahdiblah-Antwort als akzeptiert, da es sich tatsächlich um eine richtige Antwort handelt.
– Wadim Kotow
26. Juli 2019 um 13:06 Uhr
Nicks
Eine gute Möglichkeit, die MissingTranslations-Prüfung zu deaktivieren, besteht darin, die Option modulspezifisch hinzuzufügen build.gradle Datei .
Wenn die Zeichenfolgen nicht in der gebietsschemaspezifischen Zeichenfolgendatei vorhanden sind, werden die Zeichenfolgen aus der Standarddatei entnommen, was im Allgemeinen der Fall ist strings.xml.
Beachten Sie, dass dies deaktiviert wird alle MissingTranslation-Warnungen/-Fehler, damit Sie keine Fehlalarme erhalten en-rUS absichtlich teilweise übersteuern en Standardeinstellungen, aber Sie erhalten auch keine True Positives, wenn bei einem anderen Gebietsschema eine Übersetzung fehlt.
– bladibla
6. Dezember 2017 um 23:46 Uhr
Ich fand Ihre Antwort auf jeden Fall nützlich, aber es könnte sein, dass Sie daran interessiert sind, Übersetzungen in verschiedenen Ebenen zu ignorieren (alle ignorieren, nur Zeichenfolgen in einer bestimmten Datei ignorieren oder nur eine Zeichenfolge ignorieren). Schau mal hier: stackoverflow.com/a/53206467/973919
– xarlymg89
14. März 2019 um 12:31 Uhr
Anticafe
Ich habe gemäß dieser Antwort eine bessere Lösung gefunden: https://stackoverflow.com/a/13797364/190309
Einfach hinzufügen ignore="MissingTranslation" zu deinem string.xmlzum Beispiel:
<?xml version="1.0" encoding="utf-8"?>
<resources
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingTranslation" >
<!-- your strings here; no need now for the translatable attribute -->
</resources>
Das OP hat ausdrücklich nach einer Lösung gefragt, die nur ignoriert etwas fehlende Übersetzungen. Diese Lösung gilt für alles in einer bestimmten Datei.
– Sterling
26. Februar 2015 um 21:12 Uhr
bladibla
Lint unterstützt teilweise regionale Übersetzungen, muss aber wissen, welche Sprache die Standardzeichenfolgen sind. Auf diese Weise kann es eine teilweise regionale Übersetzung von fehlenden Übersetzungen in einem anderen Gebietsschema unterscheiden.
Um das Gebietsschema anzugeben in values/strings.xml:
Zitat aus dem lint-Befehlszeilentool, wenn es ausgeführt wird lint --show:
By default this detector allows regions of a language to just provide a
subset of the strings and fall back to the standard language strings. [...]
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 <resources> element in your resource file. (The tools prefix
refers to the namespace declaration http://schemas.android.com/tools.)
Fügen Sie die Gebietsschemaspezifikation zu Ihrer Standardsprachdatei hinzu, und Sie sollten diesen Fehler nicht erhalten en-rUSwird aber weiterhin über alle anderen fehlenden Übersetzungen informiert.
Ihre Antwort ist sinnvoll, funktioniert aber bei mir nicht – ich habe eine Standard-String-Datei “values/strings.xml” und übersetze einige der Strings in en-rGB. Ich lege sie in “values-en-rUS/strings.xml” ab ” Datei – Ich habe tools:locale=”en” zu “values/strings.xml” hinzugefügt, aber immer noch den Fehler erhalten, dass einige Strings nicht in “en” übersetzt werden
– Ahmed Haschem
7. April 2019 um 13:55 Uhr
Ich versuche das und tatsächlich funktioniert es. Wenn Sie eine Lint-Aufgabe ausführen, werden nach dem Hinzufügen von tools:locale=”en” keine MissingTranslation-Warnungen angezeigt. Aber in Android Studio 3.5.1 werden rote Linien immer noch da sein. Es handelt sich also wahrscheinlich um einen Android Studio-Bug. Diese Antwort sollte als richtige Antwort markiert werden
@michgauz Ich habe gesehen, dass du bei den Google-Jungs geblieben bist, um diese Korrektur vorzunehmen, auch wenn sie es nicht wollten, gut für dich und danke!
– Matt Jenje
21. Juli 2020 um 9:33 Uhr
Dies scheint noch nicht beantwortet zu sein, also zeige ich Ihnen eine Lösung:
In Ihrer DEFAULT-XML-Datei können Sie Zeichenfolgen definieren, die keine Übersetzungen wie die folgenden benötigen:
Dieser String muss nicht übersetzt werden und lint wird sich auch nicht darüber beschweren…
Dies ist eine Schweizer Messerantwort, sodass Sie die Meldung über fehlende Übersetzungen ignorieren können, je nachdem, in welcher Situation Sie sich befinden:
Alles ignorieren MissingTranslation Botschaften in Beton resources.xml Datei:
<?xml version="1.0" encoding="utf-8"?>
<resources
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingTranslation">
<!-- your strings here; no need now for the translatable attribute -->
</resources>
Ignorieren MissingTranslation Meldung für nur einen String:
Drei Möglichkeiten, mit der Warnung „fehlende Übersetzung“ umzugehen
– Mukesch
15. Januar 2020 um 7:18 Uhr
Bananenweizen
Wenn Sie Eclipse verwenden, sehen Sie sich bitte die Symbolleistenschaltflächen der Lint-Warnungsansicht an. Eine davon heißt “In Datei ignorieren”. Dies sollte helfen, aber nur, wenn Lint den Fehler Ihrer “US”-Datei zuordnet. Diese Schaltfläche ändert einfach die Datei lint.xml in Ihrem Projekt, sodass Sie dies einfach untersuchen (und rückgängig machen) können.
10908200cookie-checkAndroid Lint: Wie ignoriert man fehlende Übersetzungswarnungen in einer regionalen Gebietsschema-String-Datei, die absichtlich nur einige Standardübersetzungen überschreibt?yes
Verwandt/fast ein Dummkopf: Ignorieren der Überprüfung von Android Lint „MissingTranslation“ auf Teilübersetzungen
– bladibla
28. April 2015 um 23:05 Uhr
Bitte markieren Sie die @blahdiblah-Antwort als akzeptiert, da es sich tatsächlich um eine richtige Antwort handelt.
– Wadim Kotow
26. Juli 2019 um 13:06 Uhr