2013-03-19 4 views
5

OK, das Ziel dieser Frage ist nicht streng programmierend, aber es ist eine Frage, die Programmierer mit Programmierwerkzeugen beantworten können, und Programmierer können hier nützliche Antworten finden. Trage mit mir.Wie kann ich die Sprachlokalisierungsdateien von Mac OS X für das Erlernen natürlicher Sprache zurückentwickeln?

Ich finde die Änderung der Systemsprache in Mac OS X eine nützliche Möglichkeit, das Erlernen von natürlichen Sprachen, zB Französisch, zu verbessern. Manchmal finde ich jedoch einen Menüeintrag oder eine Dialogbox in Französisch, die ich nicht verstehen kann, und es ist langweilig, die Übersetzung zu googlen oder die Systemsprache auf Englisch zu ändern. Aber ich weiß, dass die englische Übersetzung irgendwo in der Lokalisierungsdatei versteckt ist und irgendwie auf den französischen Ausdruck verweist. Also, was ich tun möchte, ist den ganzen Text aus allen Lokalisierungsdateien zu extrahieren, um eine Zuordnung dieser Phrase in Englisch zu entwickeln = diese Phrase in Französisch, damit ich es leicht nachschlagen kann.

Ich weiß, dass die Lokalisierungsdateien in etwas wie Localizable.strings, Lproj-Dateien und Nib-Dateien gespeichert sind, aber ich kann nicht Kopf oder Schwanz davon machen, wie sie gespeichert sind oder wie man mit ihnen arbeitet. Ich kann programmieren, aber ich habe noch nie etwas in Xcode geschrieben. Alle Informationen, die ich finden kann, sind für Mac OS/iOS-Programmierer, um ihre Software zu lokalisieren, nicht für Hacker, um bereits erstellte Lokalisierungsinformationen zu extrahieren.

Wie kann ich die Fremdspracheninformationen als Klartext aus dem Mac OS X-System und den Softwarelokalisierungsdateien von Drittanbietern extrahieren? Vielen Dank!

Antwort

1

Strings-Dateien sind einfach. Sie sind einfach Wörterbücher, die als Eigenschaftslisten serialisiert sind. Die Wörterbuchschlüssel werden vom Programm verwendet, um die angegebene Zeichenfolge für eine bestimmte Lokalisierung nachzuschlagen. Sie können eine Zuordnung von Englisch zu einer anderen Sprache erstellen, indem Sie beide Wörterbücher laden, über die Schlüssel iterieren und den Wert aus dem englischen Wörterbuch als Schlüssel in Ihrer Ausgabe und den Wert aus dem anderen Sprachwörterbuch als Wert in Ihrer Ausgabe verwenden.

NIBs sind härter. Der Build-Prozess "kompiliert" NIB-Dateien in ein Formular, das nicht zum Bearbeiten oder Parsen dient. Wenn Sie Zugriff auf nicht kompilierte NIB-Dateien haben, können Sie ibtool --export-strings-file verwenden, um eine Zeichenfolgendatei auszugeben, die Sie dann wie oben beschrieben verarbeiten können. Wenn du das nicht tust, denke ich, dass du es vielleicht schwer haben wirst.

+0

Danke für die Hilfe, ich verstehe, was Sie über das Speichern von Sachen in Eigenschaftslisten sagen, aber immer noch Probleme haben, herauszufinden, wie die verschiedenen Zeichenketten-Dateien beziehen und verbunden sind, und wo sie normalerweise gespeichert sind. – arandomlypickedname

+0

Können Sie genau erklären, womit Sie Probleme haben? – bdash