Localización de iOS - Actualizando Localizable.strings con solo nuevas cadenas

He buscadoGoogle yDesbordamiento de pila y aún no tengo una respuesta clara sobre una forma fácil y automatizada de hacer esto, pero aquí está el escenario:

Tengo una aplicación con 1000 cadenas localizadas en, fr, de, es, it.Construyo una nueva característica que hace 10 claramente nuevas.NSLocalizedString() llaves.Solo quiero esas 10 nuevas cadenas adjuntas en los extremos de los archivos:en.lproj / Localizable.stringsfr.lproj / Localizable.stringses.lproj / Localizable.stringsde.lproj / Localizable.stringsit.lproj / Localizable.strings

genstrings recuperará todas las 1010 cadenas distintas. Esto es un dolor ya que tendré que "meter en un pajar" encontrar esas 10 cuerdas cada vez que actualizo.

ACTUALIZACIÓN 19-SEP-2014 - XCode 6 - Apple finalmente ha lanzado el soporte para la exportación e importación XLIFF de sus archivos .strings¿Qué hay de nuevo en XCode 6? Localización

Linguan (v1.1.3) Si bien es una herramienta encantadora la mayor parte del tiempo, está empezando a ser una herramienta en el otro sentido. Fusiona los cambios, pero algunas cadenas no coinciden correctamente cuando se fusionan, por lo que cada vez que hace Scan Sources crea 100 nuevas claves duplicadas, así como las 10 cadenas que busco, por lo que está haciendo más trabajo.

FileMerge Como se sugiere a continuación, intente hacer una diferencia entre las versiones antiguas y nuevas degenstrings archivos de salida. losgenstrings La salida tiene las cadenas ordenadas alfabéticamente, por lo que 10 cadenas dispersas a lo largo de 1000 significa que hay 200 diferencias para revisar. sigue emparejando el/*...*/ y el"..." = "..." y diciendo que el... Ha sido actualizado. No se ha actualizado, solo se ha cambiado a una nueva ubicación en el archivo. Cada vez más parece que voy a tener que escribir una herramienta personalizada.

MacHG + FileMerge en una nota lateral, por alguna extraña razón no le gusta hacer diferencias fuera del repositorio con la copia de trabajo de Localizable.strings. Los paneles izquierdo y derecho aparecen vacíos.ACTUALIZAR: Resulta que las variaciones en algunos conjuntos de cambios se guardan como UTF-16 y algunos como UTF-8 se están atornillando, pudiendo hacer una diferencia adecuada.

Bash Script + FileMerge He escrito el siguiente script para ayudar a mantener mi archivo de referencia en inglés después de cada vez que agrego un nuevoNSLocalizedString entradas:

#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"

Pero esto solo actualiza el archivo EN y me falta una forma de actualizar los archivos de otros idiomas con las nuevas claves. Este ha sido bueno para los casos en los que no tengo una palabra en inglés como la clave y mis cadenas de bombas."welcome_message" = "Welcome!" con"welcome_message" = "welcome_message"

POEditor http://poeditor.com/. Esta es una herramienta en línea y suscripción basada después de 1000 cadenas. Parece funcionar bien, pero sería bueno si existiera una herramienta no basada en suscripción.

Traducto pro Parece hacer un buen trabajo al integrarse con XCode y extraer las cadenas y fusionar cosas. Pero es imposible obtener algo de vuelta fuera de él hasta que esté completamente traducido, por lo que está obligado a usar sus servicios de traducción.

Seguramente esta funcionalidad ha sido implementada antes. ¿Cómo mantiene Apple sus aplicaciones localizadas?

Adictos a la escritura, te invoco! El desarrollo de iOS ha estado ocurriendo por algún tiempo y la localización es algo común, ¿seguro que ya hay una solución madura para esto?

Python Script update_strings.py: Desbordamiento de pila finalmente recomendé una pregunta relacionada y el script de Python en esta respuestaMejores prácticas usando NSLocalizedString parece prometedor...

Probado y en su forma actual (31-MAYO-2013) no maneja comentarios de varias líneas si tiene entradas de comentarios duplicadas (espera comentarios de una sola línea).

Puede que necesites modificar un poco la expresión regular.