2010-12-09 7 views
2

Ich habe ein sehr seltsames Problem mit ibtool und Lokalisierungen: benutzen ich diesen Befehl, um die stringsfiles zu exportieren:Warum kann ibtool die UTF-16-Zeichenkette nicht in die Nib-Datei importieren?

ibtool --export-strings-file XibLoc.strings SomeXib.xib 

dann die Saiten in eine Xib-Datei zu importieren Ich habe versucht, lokalisierte Version zu produzieren:

ibtool --strings-file XibLoc.strings --write NewXib.xib SomeXib.xib 

Dies ist eine ziemlich Standard-Technik für xib Lokalisierung ist jedoch spuckt er einen Fehler:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>com.apple.ibtool.errors</key> 
    <array> 
     <dict> 
      <key>description</key> 
      <string>The stringsfile XibLoc.strings does not appear to contain valid data for UTF-16 string encoding.</string> 
     </dict> 
    </array> 
</dict> 
</plist> 

Also WTF ist das? ibtool exportiert Daten in UTF-16-Kodierung und stellt fest, dass es nicht zurück importiert werden kann, selbst wenn ich nichts in der exportierten Datei ändere. Weiß jemand, was dort vor sich geht? Oder was mache ich falsch?

+6

Gefunden eine Antwort: das Problem war wirklich, dass der Pfad für die Zeichenketten war falsch, also anstatt zu sagen: "Kann die Zeichenkette Datei nicht öffnen" - ibtool im Allgemeinen Apple Art gab eine dumme Fehlermeldung weg vom wahren Grund – justadreamer

Antwort

1

ibtool ist mit der Dateiargumentsyntax zu pingelig. In ibtool 5.0 wurde es sogar noch schlimmer. Siehe/dupe meine Radar on this.

Der einzige Weg für mich arbeiten zu lassen (vorausgesetzt, Ihre en Lokalisierung des Master-XIB bietet) ist:

cd <project folder> 
ibtool --strings-file fr.lproj/SomeXib.strings --write fr.lproj/SomeXib.xib en.lproj/SomeXib.xib 

keine Anführungszeichen nicht fügen Sie oder „..“ usw. zu den Pfadnamen seit ibtool könnte in diesem Fall fehlschlagen.

+0

Scheint dass die Option --write wichtig ist –