iOS-Lokalisierung - Aktualisieren von Localizable.strings mit nur neuen Zeichenfolgen

ich habe gesuchtGoogle undPaketüberfluss und noch keine klare Antwort auf eine einfache und automatisierte Methode, dies zu tun, aber hier ist das Szenario:

Ich habe eine App mit 1000 Zeichenfolgen, die in en, fr, de, es, it lokalisiert sind.Ich baue ein neues Feature, das 10 ausgesprochen neu machtNSLocalizedString() Schlüssel.Ich möchte nur diese 10 neuen Zeichenfolgen an die Enden der Dateien anhängen:de.lproj / Localizable.stringsfr.lproj / Localizable.stringses.lproj / Localizable.stringsde.lproj / Localizable.stringsit.lproj / Localizable.strings

genstrings ruft alle 1010 verschiedenen Zeichenfolgen ab. Dies ist ein Schmerz, da ich jedes Mal, wenn ich ein Update mache, diese 10 Saiten "im Heuhaufen nadeln" müssen.

UPDATE 19. SEPTEMBER 2014 - XCode 6 - Apple hat endlich die Unterstützung für den XLIFF-Export und -Import Ihrer .strings-Dateien freigegebenWas ist neu in XCode 6? Lokalisierung

Linguan (v1.1.3) Während es die meiste Zeit ein schönes Werkzeug ist, fängt es an, ein Werkzeug im anderen Sinne zu sein. Die Änderungen werden zusammengeführt, aber einige Zeichenfolgen stimmen beim Zusammenführen nicht richtig überein. Bei jedem Scan von Quellen werden 100 neue doppelte Schlüssel sowie die 10 Zeichenfolgen erstellt, nach denen ich gesucht habe, damit mehr Arbeit geleistet wird.

FileMerge Versuchen Sie, wie unten vorgeschlagen, einen Unterschied zwischen der alten und der neuen Version dergenstrings Ausgabedateien. Dasgenstrings Bei der Ausgabe sind die Zeichenfolgen alphabetisch sortiert, sodass 10 Zeichenfolgen über 1000 verteilt bedeuten, dass 200 Unterschiede zu überprüfen sind. es passt immer zum/*...*/ und das"..." = "..." und zu sagen, dass die... wurde aktualisiert. Es wurde nicht aktualisiert, sondern nur an einen neuen Speicherort in der Datei verschoben. Es sieht immer mehr so ​​aus, als müsste ich ein benutzerdefiniertes Tool schreiben.

MacHG + FileMerge Nebenbei bemerkt, aus irgendeinem seltsamen Grund mag es nicht, Unterschiede aus dem Repository mit der Arbeitskopie von Localizable.strings zu machen. Sowohl der linke als auch der rechte Bereich sind leer.AKTUALISIEREN: Es stellte sich heraus, dass einige Änderungssätze, die als UTF-16 und andere als UTF-8 gespeichert wurden, sich ändern, um einen korrekten Unterschied zu machen.

Bash Script + FileMerge Ich habe das folgende Skript geschrieben, um die englische Referenzdatei nach jedem Hinzufügen einer neuen zu pflegenNSLocalizedString Einträge:

#LOCALISATION UPDATE SCRIPT
#
#This will create a temporary copy of the current 'en' reference file then generate the 
#latest reference file using the 'genstrings' tool. Finally forcing FileMerge to launch 
#and diff the changes.
#
#Last Updated: 2014-JAN-06
#Author(s): Josh Wilson

clear
#assuming this script is run from $SRCROOT

#Backup Existing 'en' reference
cp "en.lproj/Localizable.strings" "en.lproj/Localizable-src.strings"

#Scan source files for 'NSLocalizableString' macros
genstrings -q -u -o en.lproj Classes/*.{m,mm}
genstrings -q -u -a -o en.lproj Classes/iPad/*.{m,mm}
genstrings -q -u -a -o en.lproj Classes/iPhone/*.{m,mm}

#Force FileMerge to launch and diff the update (NOTE: piping to cat forces GUI to open)
opendiff "en.lproj/Localizable-src.strings" "en.lproj/Localizable.strings" | cat

#Cleanup up temporary file
rm "en.lproj/Localizable-src.strings"

Dadurch wird jedoch nur die EN-Datei aktualisiert, und es fehlt mir eine Möglichkeit, die anderen Sprachdateien mit den neuen Schlüsseln zu aktualisieren. Dieser war gut für Fälle, in denen ich kein englisches Wort habe, da der Schlüssel und die Saiten meine Bomben bombardieren"welcome_message" = "Welcome!" mit"welcome_message" = "welcome_message"

POEditor http://poeditor.com/. Dies ist ein Online-Tool und Abonnement, das auf 1000 Zeichenfolgen basiert. Scheint gut zu funktionieren, aber es wäre gut, wenn es ein nicht auf Abonnements basierendes Tool gäbe.

Traducto Pro Es scheint in Ordnung zu sein, sich in XCode zu integrieren und die Zeichenfolgen zu extrahieren und die Dinge zusammenzuführen. Aber es ist unmöglich, irgendetwas wieder herauszuholen, bis es vollständig übersetzt ist, so dass Sie gezwungen sind, ihre Übersetzungsdienste zu nutzen.

Sicherlich wurde diese Funktionalität schon früher implementiert. Wie hält Apple ihre Apps lokalisiert?

Script Junkies, ich rufe dich an! Die iOS-Entwicklung wird bereits seit einiger Zeit betrieben, und die Lokalisierung ist weit verbreitet. Gibt es dafür inzwischen eine ausgereifte Lösung?

Python-Skript update_strings.py: Paketüberfluss Schließlich empfahl eine verwandte Frage und das Python-Skript in dieser AntwortBest Practice mit NSLocalizedString sieht vielversprechend aus...

Getestet und in der aktuellen Form (31. Mai 2013) werden keine mehrzeiligen Kommentare verarbeitet, wenn Sie doppelte Kommentare eingegeben haben (es werden einzeilige Kommentare erwartet).

Könnte nur nötig sein, um die Regex ein bisschen zu optimieren.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage