web-dev-qa-db-de.com

Localizable.strings - Die Daten können nicht gelesen werden, da sie nicht das richtige Format haben

Wenn ich etwas aus Textedit oder aus dem Web kopiere und in eine lokalisierbare Datei einfügen, wird dieser Kompilierungsfehler angezeigt. Wenn ich diese in eine lokalisierbare Datei eingebe, wird kein Fehler angezeigt. Ich versichere Ihnen, dass ich das richtige Format und ';' in der Datei.

"New" = "New";
"In Progress" = "In Progress";
"Waiting" = "Waiting";
"Closed" = "Closed";
21
Rashad
  • Verwenden Sie plutil vom Terminal:

sie müssen es für jede Version der lokalisierbaren Datei ausführen. Z.B

  1. cd in Ihr Projektstammverzeichnis 
  2. cd eb.lproj - Sie können dies durch .__ ersetzen. jede Lokalisierung, mit der Sie arbeiten. 
  3. plutil -lint Localizable.strings

Wenn Sie Schritt 3 ausführen, wird entweder ein Fehler angezeigt, der Ihnen mitteilt, was mit Ihrer Datei nicht stimmt. Oder Sie erfahren, dass die Datei in Ordnung ist

79
bat

Für mich fehlten Semikolons. Wenn Sie ein Tool zum Generieren der .strings-Datei verwenden, stellen Sie sicher, dass keine Anführungszeichen vorhanden sind, die die abgrenzenden Semikolons "fressen".

19
Ahmed Khalaf

Ich hatte das gleiche Problem und habe es gelöst, indem ich ungenutzte Zeichenfolgen in meiner Localizable.String -Datei kommentierte oder entfernte :) 

3

pl <Localizable.strings ist besser als plutil -lint Localizable.strings

Log zeigt so etwas an

2019-08-14 16: 39: 34.066 pl [21007: 428513] CFPropertyListCreateFromXMLData (): Plist-Parser im alten Stil: fehlendes Semikolon im Wörterbuch in Zeile 427. Die Analyse wird abgebrochen. Unterbrechen Sie das Debuggen von _CFPropertyListMissingSemicolon. 2019-08-14 16: 39: 34.068 pl [21007: 428513] CFPropertyListCreateFromXMLData (): Plist-Parser im alten Stil: fehlendes Semikolon im Wörterbuch in Zeile 427. Die Analyse wird abgebrochen. Unterbrechen Sie das Debuggen von _CFPropertyListMissingSemicolon. 2019-08-14 16: 39: 34.071 pl [21007: 428513] *** Ausnahmeparsing ASCII Eigenschaftsliste: NSParseErrorException Error Domain = NSCocoaErrorDomain Code = 3840 "Unerwartetes Zeichen/in Zeile 1" UserInfo = {NSDebugDescription = Unerwartetes Zeichen/in Zeile 1, kCFPropertyListOldStyleParsingError = Fehler Domain = NSCocoaErrorDomain Code = 3840 "Missing ';' in Zeile 427" UserInfo = {NSDebugDescription = Missing ';' in Zeile 427}

2
Jerome

Ihre Syntax scheint in Ordnung zu sein, das einzige, was ich sehen kann, kann Ihre Datei "brechen" und diesen Fehler verursachen, ist das Anführungszeichen. Stellen Sie sicher, dass Sie den gewünschten Code " und nicht in einer anderen Form wie verwenden.

1
Rashwan L

Ich hatte einmal einen ähnlichen Fehler und es stellte sich heraus, dass sich in der Mitte der Datei eine URL befand:

// Some Comment 1
"Some key 1" = "Some value 1";
http://...whatever...
// Some Comment 2
"Some key 2" = "Some value 2";

Beim Aufruf von plutil -lint in dieser Datei lautete die Ausgabe:

Unexpected character / at line 1

Nun, das erste Zeichen war in der Tat / da die Datei mit einem Kommentar begann, das Problem jedoch nach dem Entfernen der URL behoben wurde; oder in einen Kommentar verwandeln, der eigentlich hätte sein sollen. Beachten Sie, dass sich die URL nicht in der Nähe des Anfangs der Zeichenfolgendatei befand. Sie befand sich ungefähr in der Mitte einer Zeichenfolgendatei mit 6000 Zeilen. Ich konnte es nur finden, indem ich im Commit-Verlauf stöberte und mir immer die Änderungen ansah.

1
Mecki

Stellen Sie außerdem sicher, dass der Dateiname der Zeichenfolge immer Localizable.strings Lautet.

1
Naishta

In meinem Fall fehlte "=" zwischen einem String-Paar. Sogar Plutil half mir nicht, die Fehlerlinie zu erkennen. Ich habe jedes String-Paar manuell geprüft. : /

1
ESG

Ich hatte ein ähnliches Problem, bei dem ich den Zeichenfolgenwert nicht mit dem Backslash \ für einen Wert meiner Zeichenfolge entschlüsselt habe. 

Vor:

"INVALID_NUMBER" = "Es scheint, dass Sie eine ungültige Nummer eingegeben haben. Die Nummer sollte mit" 0 "oder" 7 "beginnen.";

Aktualisierte:

"INVALID_NUMBER" = "Es scheint, dass Sie eine ungültige Nummer eingegeben haben. Die Nummer sollte mit" 0 "oder" 7 "beginnen;";

Backslashes sind erforderlich, wenn Sie die Anführungszeichen anzeigen möchten "

Bitte schau hier kurz nach Wie füge ich Anführungszeichen in Strings ein

0
Praveenkumar

Es scheint, dass Ihre info.plist nicht in korrekter Form ist. überprüfe es richtig. Ich hatte auch das gleiche Problem. Ich habe es gelöst, indem ich meine info.plist geändert habe. 

0
Ayush Dixit

Ich hatte gerade diese Erfahrung:

  • externer Übersetzer, der die Arbeit in Visual Code oder anderen Texteditoren erledigt
  • Dateien funktionieren nicht und erhalten einen Fehler wie diesen: (Testen mit plutil -lint)

    Localizable.strings: Unexpected character " at line 1 CardRatingView.strings: Unexpected character / at line 2

Ich habe gerade eine neue Datei in XCode erstellt und den gesamten Dateiinhalt eingefügt, und plötzlich funktionierte alles einwandfrei.

Ich denke, etwas kann schief gehen oder die Datei selbst beschädigen, während Sie mit anderen Texteditoren arbeiten.

0
Francesco Fiore

Ich bin auf dieses Problem gestoßen, alle meine Formatierungen waren korrekt. Die Suche nach unzulässigen Zeichen mit plutil -lint Localizable.strings Und der Verwendung von Ruby Bibliotheken wie "utf8_utils" Funktionierte auch nicht, um die unzulässigen Zeichen zu finden. ABER als ich die Localizable.strings eingefügt habe Inhalt in die Terminal-App, während irb ausgeführt wird, zeigte es mir die seltsamen Zeichen.

"PercentComplete" = "%d procent gennemført";

In irb einfügen:

"PercentComplete"\U+FFC2\U+FFA0= "%d procent gennemf\U+FFC3\U+FFB8rt";

Dann musste ich nur noch einen regulären Ausdruck ersetzen, um diese seltsamen Leerzeichen zu korrigieren: \U+FFC2\U+FFA0

0
prolfe