Lint: Wie kann man Fehler ignorieren, bei denen "<key> nicht in <language> übersetzt wird"?

189

Ich kann unsere Android-App nicht kompilieren / debuggen, da die Lokalisierungsdateien noch nicht perfekt sind.

Das Validierungstool meiner IDE Lint erstellt Fehler mit folgenden Worten:

newCardsOrderVals wird nicht in ar, bg, ca, cs übersetzt

Das Kompilieren / Installieren / Ausführen mit Ant funktioniert einwandfrei, aber ich möchte meine IDE verwenden, um das Debuggen zu vereinfachen.

Gibt es eine Möglichkeit, diese bestimmte Prüfung auszuschalten oder sie im Idealfall eher als Warnung als als Fehler zu betrachten?

Ich verstehe, dass wir vor der Veröffentlichung wirklich Lokalisierungsdateien richtig machen müssen, aber vorerst hat dies keine Priorität, da die Bildschirme selbst sehr häufig geändert werden.

Nicolas Raoul
quelle
1
Gibt es eine Möglichkeit zu konfigurieren, welche Sprachen als "nicht übersetzt" gekennzeichnet sind? Ich bekomme Fehler wie "es, er und iw". Warum bekomme ich diese Sprachen? Wie konfiguriere ich meine Android-App so, dass der Satz nur auf "en" beschränkt ist?
Inder
@inder: Vielleicht, weil du Verzeichnisse wie "values-he" usw. in deinem res / Ordner hast?
Nicolas Raoul
1
Nein, ich habe keine solchen Verzeichnisse. Nur Werte, Layout und Zeichnung.
Inder
7
er und iw kommen aus der Facebook SDK-Bibliothek.
Madej
2
Dies ist ein Fehler in Android Lint: code.google.com/p/android/issues/detail?id=50525
altumano

Antworten:

348

Android Studio:

  • "Datei"> "Einstellungen" und geben Sie "MissingTranslation" in das Suchfeld ein

Finsternis:

  • Windows / Linux: In "Fenster"> "Einstellungen"> "Android"> "Flusenfehlerprüfung"
  • Mac: "Eclipse"> "Einstellungen"> "Android"> "Flusenfehlerprüfung"

Suchen Sie die MissingTranslationLinie und stellen Sie sie Warningwie folgt ein :

Fehlende Übersetzungen werden nicht übersetzt

Nicolas Raoul
quelle
2
... Es ist unter "Fenster"> "Einstellungen"> "Android"> "Flusenfehlerprüfung"
Ollie Bennett
2
Es ist hilfreich, aber ich hatte dieses Problem lange nicht, bis es plötzlich auftauchte. Und ich weiß nicht warum.
pktangyue
Vielen Dank für Ihren wertvollen Beitrag
Pawan asati
Zu Ihrer Information unter Android Studio werden "Datei"> "Einstellungen" und "Fehlende Übersetzung" in das Suchfeld eingegeben.
Peer
86

Sie können das Attribut translatable = "false" für die Definition wie folgt festlegen:

<string name="account_setup_imap" translatable="false">IMAP</string>

Weitere Informationen finden Sie unter http://tools.android.com/recent/non-translatablestrings

efor18
quelle
1
Ich sagte : „Die Lokalisierungsdateien nicht sind perfekt noch “. Sie werden nach und nach gefüllt. translatable = "false" würde verhindern, dass jemand übersetzt.
Nicolas Raoul
3
Obwohl die Antwort nicht direkt mit der Frage zusammenhängt, bietet sie eine brillante Lösung für Leute wie mich, die dieses Thema gefunden haben, als Google "wie man Flusen macht, ohne sich um meine App-Konstanten / -Parameter zu sorgen". Vielen Dank, efor18!
aka_sh
83

Um dies in einem Gradle-Build zu ignorieren, fügen Sie dies dem Android-Abschnitt Ihrer Build-Datei hinzu:

lintOptions {
   disable 'MissingTranslation'
}
Janusz
quelle
2
Vielen Dank, ich habe buchstäblich Tage gespart, um die richtigen Saiten für die Produktion zu finden.
D-Kent
Schön, das hat es geschafft
Mirko
Dies zu meinem App-Modul hinzugefügt, hat es für mich verbessert.
Merkur
23

Dies führt dazu, dass Lint den fehlenden Übersetzungsfehler für ALLE Zeichenfolgen in der Datei ignoriert. Andere Zeichenfolgendateien können jedoch bei Bedarf überprüft werden.

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" 
    tools:ignore="MissingTranslation">
Tom Bollwitt
quelle
Dies ist wahrscheinlich der korrekteste Weg, um fortzufahren, ohne Flusen für das gesamte Projekt zu deaktivieren
MatPag
11

Wenn Sie die Warnungen zu den bestimmten Zeichenfolgen deaktivieren möchten, können Sie Folgendes verwenden:

string.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>    

    <!--suppress MissingTranslation -->
    <string name="some_string">ignore my translation</string>
    ...

</resources>

Wenn Sie anstelle eines Fehlers vor bestimmten Zeichenfolgen warnen möchten, müssen Sie eine benutzerdefinierte Lint-Regel erstellen, um den Schweregradstatus für eine bestimmte Sache anzupassen.

http://tools.android.com/tips/lint-custom-rules

Eduko
quelle
1
+1 Gute Möglichkeit, dies ein für alle Mal zu tun, damit nicht alle Entwickler des Teams ihre IDE-Einstellungen ändern müssen. Gibt es eine Möglichkeit, eine Warnung zu erstellen, anstatt sie vollständig zu unterdrücken?
Nicolas Raoul
Sie können eine benutzerdefinierte Lint-Regel erstellen, um den Schweregradstatus für eine bestimmte Sache anzupassen. Hier gibt es ein Beispiel: tools.android.com/tips/lint-custom-rules
Eduko
9

Fügen Sie Folgendes in die lint.xmlDatei ein:

<?xml version="1.0" encoding="UTF-8"?>
<lint>
    ...

    <issue
        id="MissingTranslation"
        severity="ignore" />
</lint>

Weitere Informationen: Unterdrücken von Flusenwarnungen .

Brais Gabin
quelle
8

Fügen Sie die Zeilen in Ihrer Datei /res/values.xml auf der Registerkarte "Ressourcenstamm" wie folgt hinzu:

<resources
xmlns:tools="http://schemas.android.com/tools" 
    tools:locale="en" tools:ignore="MissingTranslation">

tools: locale setzt die lokale Sprache auf Englisch, später ist keine Sprachübersetzung für alle Ressourcenzeichenfolgen und Tools erforderlich: Ignorieren Sie let Lint, um die fehlenden Übersetzungen der Ressourcenzeichenfolgenwerte zu ignorieren.

Purvik Rana
quelle
6

Fügen Sie Ihrer Gradle-Datei im Android-Bereich Folgendes hinzu

    lintOptions {
       disable 'MissingTranslation'
    }
chzahid
quelle
5

Zusätzlich,

Keine projektabhängigen Eigenschaften, Eclipse-Einstellungen.
In Mac Eclipse> Einstellungen

Geben Sie hier die Bildbeschreibung ein

Jinbom Heo
quelle
3

Ein anderer Ansatz besteht darin, die Sprachen anzugeben, die Sie unterstützen möchten, und den Rest mithilfe der Option 'resConfigs' mit Gradle herauszufiltern.

Schauen Sie sich diese andere Antwort an für Details an

Ich denke, das ist besser, weil Sie legitime Übersetzungsfehler für Sprachen, die Sie tatsächlich unterstützen möchten, nicht vollständig ignorieren müssen

kip2
quelle
1

Viele von ihnen haben unterschiedliche Arbeitsantworten gegeben, und auch ich habe die gleichen Flusenfehler, die ich ignoriere, indem ich mit Eclipse Folgendes mache.

  1. Klicken Sie auf Windows
  2. Klicken Sie auf Einstellungen
  3. Wählen Sie Android> Lint Error Checking.
  4. Klicken Sie auf Alle ignorieren> Übernehmen> OK.

Das ist es.

Raju
quelle
2
Dadurch werden alle Fluseneinstellungen ignoriert. Nicht nur die fehlende Übersetzung
Luciano Rodríguez
1

Folgendes hat bei mir funktioniert.

  • Klicken Sie auf Windows
  • Klicken Sie auf Einstellungen
  • Wählen Sie Android> Lint Error Checking.
  • Suchen und wählen Sie die entsprechende Flusenprüfung und aus
  • Stellen Sie den Schweregrad auf "Ignorieren" (unten rechts).
user4353093
quelle