Kann angegeben werden, dass die Zeichenfolgen in einer Datei in den value-*
Verzeichnissen absichtlich nicht in andere Sprachen übersetzt werden? Ich habe eine Reihe von Zeichenfolgen, die für alle Sprachen gleich sind und keine Übersetzung benötigen. Daher habe ich eine unlocalized-strings.xml
Datei im values
Verzeichnis erstellt. Wenn Sie Android Lint ausführen, um nach Problemen zu suchen, wird immer wieder darauf hingewiesen, dass einige Übersetzungen fehlen. Ich möchte nicht Um diese Prüfung für das gesamte Projekt zu deaktivieren, möchte ich sie nur in einigen XML-Dateien deaktivieren. Ist dies möglich?
"title_widget_updater_service" is not translated in de, en, en-rUS, it
Issue: Checks for incomplete translations where not all strings are translated
Id: MissingTranslation
If an application has more than one locale, then all the strings declared in one language
should also be translated in all other languages.
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 require all regions to
provide a full translation by setting the environment variable
ANDROID_LINT_COMPLETE_REGIONS.
Wie kann diese definierte Region von unlokalisierte Strings?
android
android-resources
android-lint
Gianni Costanzi
quelle
quelle
Antworten:
Ich weiß nicht, wie ich die gesamte Datei ignorieren soll, aber Sie können dies Zeichenfolge für Zeichenfolge tun, indem Sie:
quelle
Es ist das
ignore
Attribut destools
Namespace in Ihrer Zeichenfolgendatei wie folgt:quelle
Project->Clean
, um die Fehler endgültig zu beseitigen.Hinzufügen zu
build.gradle
:quelle
Ich kenne drei Möglichkeiten:
So wenden Sie den Änderungswert Wert für Wert an: Legen Sie das Attribut
translatable="false"
für die<string>
Definition fest:Wenn Sie viele Ressourcen haben, die nicht übersetzt werden sollten, können Sie sie in einer Datei mit dem Namen
donottranslate.xml
ablegen. Lint berücksichtigt alle nicht übersetzbaren Ressourcen.Eine andere Möglichkeit, die ich beim Durchsuchen von Hackers Keyboard-Projektquellen entdeckt habe :
Sie können das Präfix
donottranslate-
zu Ihrer Ressourcendatei hinzufügen . Wie im vorherigen Beispiel berücksichtigt Lint alle nicht übersetzbaren Ressourcen.In Ihrem Fall können Sie ersetzen
unlocalized-strings.xml
durchdonottranslate-strings.xml
. Es scheint zu funktionieren, aber ich habe keine Dokumentation für diesen Tipp gefunden.Siehe: Android Tools-Projektsite: Nicht übersetzbare Zeichenfolgen
quelle
donottranlate.xml
dastranslatable="false"
Tag nicht mehr hinzufügen müssen , wenn wir unseren String in die Datei einfügen?Und hier ist eine Android Studio-Lösung zum Deaktivieren dieses schwerwiegenden Lint-Fehlers:
quelle
Ich denke, was Sie brauchen, anstatt Flusen zu deaktivieren, ist, sie mit Attributen zu markieren
quelle
Erstellen Sie eine Ressourcendatei mit einem Dateinamen, der mit " donottranslate " beginnt (z. B. donottranslate.xml , donottranslate_urls.xml usw.), und lint ignoriert seine Zeichenfolgen vollständig, wenn nach fehlenden Übersetzungen gesucht wird.
quelle
Wenn Sie die Flusenprüfung für fehlende Übersetzungen deaktivieren möchten, können Sie gehen
"Projekteigenschaften -> Android-Fusseleinstellungen -> Wählen Sie" Fehlende Übersetzung "-> Im Schweregrad zu ignorierende Option",
Ich hoffe, das hilft anderen, weil ich gerade auf dieses Problem stoße :)
quelle
Eine andere Möglichkeit, dies zu tun, besteht darin, Ihre Zeichenfolge mithilfe von
resValue
oder zur Gradle-Datei hinzuzufügenbuildConfigField
. Sowas in der Art:Verwendung:
quelle
Um Warnungen in Android Studio zu vermeiden, öffnen Sie Einstellungen ==> Inspektionen und deaktivieren Sie "Unvollständige Übersetzungen". Der Gradle-Build wird dadurch jedoch nicht beeinflusst.
quelle
Es gibt auch den "Übersetzungseditor" (Rechtsklick auf string.xml "Open Translation Editor").
Aktivieren Sie dann das Kontrollkästchen "Nicht übersetzbar" für eine Zeichenfolge.
https://developer.android.com/studio/write/translations-editor
quelle