2011-04-21 17 views
15

Estoy buscando una forma de extraer todas las cadenas localizables de los archivos .xib y tenerlas todas guardadas en un solo archivo.¿Cómo puedo extraer todas las cadenas localizables de todos los archivos XIB en un archivo?

Probablemente esto implica ibtool pero no fue capaz de determinar una forma de fusionar todos estos en un solo diccionario de traducción (podría ser .strings, .plist o algo más).

+0

¿Has encontrado una respuesta? – Lukasz

+0

@Lukasz no es totalmente uno, pero definitivamente voy a publicar una respuesta cuando tenga una solución. – sorin

Respuesta

32

terminal abierto y entra en el directorio raíz del proyecto (o el directorio donde se almacenan todos los archivos XIb) y escriba este comando:

find . -name \*.xib | xargs -t -I '{}' ibtool --generate-strings-file '{}'.txt '{}' 

La magia es el hallazgo y xargs comandos trabajando juntos. -I opción genera marcador de posición. -t es solo para salida detallada (verá qué comandos se han generado y ejecutado). Genera archivos txts con el mismo nombre que los archivos xib en el mismo directorio. Este comando se puede mejorar para concatenar la salida en un archivo pero aún así es un buen punto de partida.

Junto a ellos juntos:

Puede concatenar los archivos recién creados en una usando comando de terminal similar:

find . -name \*.xib.txt | xargs -t -I '{}' cat '{}' > ./xib-strings-concatenated.txt 

Este comando va a poner todas las cadenas en un archivo xib-cuerdas-concatenados. txt en el directorio raíz.

Puede eliminar los archivos generados incompletas (si lo desea) usando buscar y xargs nuevo:

find . -name \*.xib.txt | xargs -t -I '{}' rm -f '{}' 
+1

Gran respuesta. ¿Hay algún recurso web donde pueda aprender cómo hacer esas herramientas de línea de comandos? –

+0

@TusharKoul Bash scripts docs y tutoriales? ;-) – Lukasz

+0

sí ... Esperaba que pudieras señalarme un recurso concreto al que siempre te refieres. De todos modos, creo que me sentía demasiado flojo para google: D –

5

esto es mucho más fácil ahora.

en Xcode, seleccione su proyecto (no es un objetivo)

y luego utilice Menú/editor/exportación para la localización

salida de Xcode un archivo xliff con todas las cadenas localizables de todo el proyecto.

+0

¿esto solo toma de xibs? o de archivos .m también? –

+0

¿Incluye todas las cadenas posibles de xib o guiones gráficos? F.ex: títulos para todos los estados de botón? – Lukasz

Cuestiones relacionadas