2010-10-29 18 views
13

tengo la siguiente situación:Cómo puedo combinar 2 .POT archivos (archivos de traducción)

Uno de los productos que quiero traducir, que tiene dos sitios separados, uno para los administradores, uno para los clientes.
El código base es CakePHP.
Ambos sitios están completamente separados unos de otros, son sitios completos de CakePHP.
Y ambos tienen MUCHAS cuerdas en común.

Entonces, con CakePHP genero los archivos .pot para cada sitio, pero me encantaría darles a los traductores UN archivo, con las cadenas únicas en ambos archivos .pot.

Me devolverían un archivo .po con las cadenas para ambos sitios, y copiaré el mismo archivo en ambos sitios, por lo que tendré archivos .po con cadenas adicionales que el código no usar, pero eso no debería ser un problema.

Así que la pregunta es esencialmente ... ¿Cómo puedo fusionar dos archivos .pot?

  • Necesito obtener un nuevo archivo que no tenga cadenas duplicadas.
  • Idealmente, mantendrá (y para cadenas duplicadas, adjunte) los comentarios antes de cada cadena que CakePHP agrega, especificando dónde se encontró la cadena, pero si esto no se hace, está bien, puedo vivir sin ella. (Consulte a continuación un extracto del archivo .pot para obtener una aclaración al respecto)

¿Conoce alguna herramienta que me permita hacerlo? Realmente me gustaría evitar tener que escribir el mío.


Estos son los comentarios que estoy hablando anterior:

#: \controllers\accounts_controller.php:118 
#: \controllers\customer_documents_controller.php:75 
msgid "Parent Customer not specified" 
msgstr "" 

Respuesta

26

Ok, por lo que la herramienta para hacer esto es msgcat

msgcat *.pot > all.pot 

Si estás en Windows, instalar cygwin, y asegúrese de tener el paquete gettext-devel, porque msgcat no está en el gettext package normal.

+1

Gracias! ___________________________ –

+0

@ J.Pablo Fernández: ¿puedes enviar el comando de fusión? – 1355

+4

En el caso de los archivos POT (a diferencia de los archivos PO), sugiero usar "--use-first" también, para no terminar con material innecesariamente duplicado. – Gallaecio

-3

el comando es:

msgcat inputfile1 inputfile2 ... > outpo 
+2

¿Por qué el voto a favor? La respuesta de J. Pablo es mejor, pero esto no es técnicamente incorrecto o engañoso – gregmac

+5

Supongo que la votación negativa se hace porque esta respuesta no contiene nada además de la respuesta existente y esta fue agregada casi dos años después de la mejor respuesta. –

Cuestiones relacionadas