Fehler "wird hier übersetzt, aber nicht im Standardgebietsschema gefunden" in strings.xml mit translatable = "false"

94

Hier sind meine Werte \ strings.xml (die Standarddatei) und alles ist selbsterklärend: Geben Sie hier die Bildbeschreibung ein

Meine Fragen):

  1. Wie kann es "nicht im Standardgebietsschema gefunden" werden, wenn ich das Standardgebietsschema bearbeite (values ​​\ strings.xml)?
  2. Wie kann es ein Flusenübersetzungsfehler sein, wenn ich einstelle translatable="false"? In den Ordnern values-pl \ strings.xml (und values-ru, values-iw) sind die Zeichenfolgen nicht einmal vorhanden? es sollte sowieso nicht.
  3. Ich kann nicht verstehen, warum ich den Fehler für die russische Zeichenfolge nicht bekomme.

(Ich würde hier die Werte-ru \ string.xml oder values-pl \ string.xml anzeigen, aber es gibt dort nichts Interessantes, da die Zeichenfolgen sowieso fehlen ...)

PIXP
quelle
2
Wenn dies ab und zu passiert, führen Sie einfach die üblichen Bereinigungen durch (Bereinigen / Wiederherstellen oder Ungültigmachen von Caches / Neustart von ASTUDIO usw.), es sei denn, der Fehler ist natürlich "echt". ;) Mein Punkt ist, dass es mit Android Studio 3.2 (Beta-Atm) zufällig passiert, gute Zeichenfolgen unterstrichen werden, Sie etwas berühren und der Fehler verschwindet. Es ist fehlerhaft. ¯_ (ツ) _ / ¯
Martin Marconcini
1
Versuchen Sie diese Methode: stackoverflow.com/a/53780805/7831470
Sagar Giri
Derzeit wird Android Studio 3.3.2 ausgeführt. Dies passiert mir gelegentlich, wenn ich einen Zeichenfolgennamen in der Datei strings.xml dupliziere (z. B. beim Einfügen von Kopien). Es ist etwas frustrierend, aber das Reinigen und Neustarten scheint es zu beheben.
John Riggs
Es kommt sehr häufig vor, wenn Sie eine Ressource von einer Datei in eine andere Datei in einem anderen Modul verschieben. Ich muss den Cache jedes Mal ungültig machen, Bereinigung / Build haben keine Auswirkung. Scheint ein Problem mit der Indizierung.
3c71
Das Ausführen der App hat bei mir
funktioniert

Antworten:

79

das ist mir auch passiert

Ich mache 2 Dinge:

  • Überprüfen Sie die gesamte Datei, um festzustellen, ob eine andere Übersetzung nicht ausgeführt wurde (ich habe eine in Datei en, aber in pt-br).
  • Bereinigen, aktualisieren Sie gradle und beenden Sie das Android Studio und starten Sie es neu
JoaoLopesF
quelle
8
Bereinigen Sie einfach das Projekt und starten Sie Android Studio neu. Und es hat funktioniert;)
Ektos974
17
Falls das Bereinigen des Projekts und das Neustarten von Android Studio nicht funktioniert, versuchen Sie bitte, Caches ungültig zu machen / neu zu starten.
Makuno
2
Bereinigte und ungültige Caches / Neustart. Hat auch für mich gearbeitet! :)
Reeshabh Ranjan
2
❗ Entfernen Sie die Zeile und fügen Sie sie erneut hinzu, bevor Sie dies tun. Das Leben ist kurz.
Nolan Amy
Ich denke, Sie sollten der Antwort eine Ergänzung hinzufügen, nämlich den Befehl : Invalidate Caches / Restart. Um nicht in den Kommentaren zu suchen, wie ich es zum Beispiel getan habe.
Morozov
67

Der Wiederaufbau kann lange dauern. YMMV, aber ...

Entfernen Sie einfach die fehlerhafte Linie und fügen Sie sie erneut hinzu.

Hat für mich gearbeitet. Sehr schnell.

Nolan Amy
quelle
3
Ich musste noch weniger tun. Ich habe die Zeichenfolge umbenannt und dann wieder geändert.
Matt
1
Beeindruckend! das geht super schnell.
UserAbhi
3
Wählen Sie die betreffende Zeile aus, Strg-X, Strg-V. Getan. Hat für mich gearbeitet!
EIN
1
Wählen Sie die betreffende Zeile aus, löschen Sie sie, machen Sie sie rückgängig (Befehl / Steuerung z). Getan. Hat für mich gearbeitet!
HendraWD
1
Schnellere Lösungen
Mochadwi
22

In meinem Fall hat mir das geholfen:

  1. Wählen Sie die Zeichenfolgen aus, die Fehler verursachen.
  2. Schneiden Sie sie.
  3. Fügen Sie sie erneut ein

Wenn es bei Ihnen nicht funktioniert, fügen Sie der strings.xml(v21)Datei dieselben Zeichenfolgen hinzu .

Gourav
quelle
9

Drücken Sie Invalidate Caches / Restart ... Android Studio neu zu starten. Es hat bei mir funktioniert. Tatsächlich geschah dies, als ich Dateien von meinem anderen Computer kopiert und über den Datei-Explorer eingefügt hatte.

abir99
quelle
5

Ich hatte die gleiche Fehlermeldung, nur mit dem seltsamen Problem, dass es in das Standardgebietsschema selbst und alle Übersetzungen geworfen wurde. Es stellt sich heraus, dass Sie in Ihrem Namen keine Punkte verwenden sollten (z. B. name = "bla.blub"), da dieser intern in "bla_blub" konvertiert wird und dann nicht mit "bla.blub" übereinstimmen kann, daher der Fehler. Ich musste nur die Punkte im Standardgebietsschema in Unterstreichungen ändern, und dann waren auch alle anderen Fehler in anderen Übersetzungen (einschließlich Punkte im Namen) verschwunden.

Beachten Sie jedoch, dass andere Build-Tools weiterhin Probleme verursachen können. Ersetzen Sie stattdessen alle Punkte durch Unterstreichungen!

CitrusO2
quelle
4

Das Beenden von Android Studio und der Neustart haben es für mich behoben.

lekanbaruwa
quelle
Es funktioniert auch für mich, es ist viel weniger schmerzhaft als den Cache ungültig zu machen und neu zu starten.
3c71
2

Ich habe ein Tool zum Verwalten des Übersetzungsstatus von Android-Apps erstellt. Es zeigt Ihnen nicht nur an, welche Zeichenfolgen in den anderen Sprachen fehlen, sondern kann auch die verbleibenden Zeichenfolgen melden und bereinigen, die Sie möglicherweise in Ihrer Standardübersetzungsdatei gelöscht haben.

https://github.com/gubatron/android-missing-strings

Um alle Reste in anderen Sprachen zu bereinigen, rufen Sie so auf

./ams --cleanleftovers -o all.txt

Dadurch werden die verbleibenden Zeichenfolgen bereinigt und der Bericht über fehlende Zeichenfolgen für alle Sprachen in die Datei all.txt ausgegeben

Gubatron
quelle
2

Ich habe dieses Problem durch die folgenden Schritte gelöst:

  1. mein Projekt reinigen

  2. es wieder aufzubauen

  3. und schließlich ungültige Caches drücken / Im Dateimenü neu starten

Hisbollah Watandost
quelle
1

Stellen Sie einfach sicher, dass Sie für alle Zeichenfolgendateien dieselben Namenskonventionen haben, einschließlich derselben Groß- und Kleinschreibung. Nehmen wir an, Sie haben "sign_in" in strings.xml und "sign_In" in Ihrer fr / string.xml, sodass Sie einen Fehler in fr / strings.xml erhalten, wie "wird hier übersetzt, aber nicht im Standardgebietsschema gefunden". Also, wenn Sie zu "sign_in" bearbeiten. Der Fehler wird behoben.

Babar Shamsi
quelle
0

Kopieren und Einfügen hat bei mir nicht funktioniert.

Ich habe auch versucht, zu bereinigen und neu zu starten. Der vorherige Fehler war verschwunden, aber bei neu eingegebenen Zeichenfolgen treten immer noch neue Fehler auf.

Ich habe versucht, die geöffnete Datei strings.xml und den Übersetzungseditor zu schließen und dann neu zu starten.

string.xml-Datei und Übersetzungseditor

Das ist für mich in Ordnung.

Roy Wan
quelle
0

Ich hatte dieses Problem für alle Zeichenfolgen in meiner XML-Datei.

Die Sache ist, dass Ihre Standardeinstellung strings.xmlkein tools:localeAttribut haben sollte, wie es die anderen übersetzten Dateien haben. Wenn dies der Fall ist, wird die App bei jeder Kompilierung im Release-Modus als eine andere übersetzte Datei behandelt.

Dielson Sales
quelle