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.


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


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


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'
}

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">

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


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


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.


6

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

    lintOptions {
       disable 'MissingTranslation'
    }

5

Zusätzlich,

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

Geben Sie hier die Bildbeschreibung ein


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



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.


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).
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.