2010-10-29 12 views
13

Ho la seguente situazione:Come posso unire 2 pot file (file di traduzione)

Un prodotto che voglio tradurre, che ha due siti separati, uno per gli amministratori, uno per i clienti.
Il codice base è CakePHP.
Entrambi i siti sono completamente separati l'uno dall'altro, sono siti CakePHP completi.
Entrambi hanno MOLTE stringhe in comune.

Quindi con CakePHP ho generato i file .pot per ogni sito, ma mi piacerebbe dare un file di traduttori UNO, con le stringhe univoche in entrambi i file .pot.

Mi restituiscono un file .po con le stringhe per entrambi i siti e copierò lo stesso file su entrambi i siti, quindi avrò file .po con stringhe aggiuntive che il codice non usare, ma non dovrebbe essere un problema

Quindi la domanda è essenzialmente ... Come posso unire due file .pot?

  • Ho bisogno di ottenere un nuovo file che non ha stringhe duplicate.
  • Idealmente, manterrà (e per le stringhe duplicate, accoda) i commenti prima di ogni stringa che CakePHP aggiunge, specificando dove è stata trovata la stringa, ma se ciò non viene fatto, va bene, posso vivere senza di essa. (vedi sotto per un estratto del file .pot per un chiarimento su questo)

Sai qualche strumento che mi permetterebbe di fare questo? Mi piacerebbe davvero evitare di dover scrivere il mio.


Questi sono i commenti di cui sto parlando sopra:

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

risposta

26

Ok, quindi lo strumento per farlo è msgcat

msgcat *.pot > all.pot 

Se siete su Windows, installa cygwin e assicurati di avere il pacchetto gettext-devel, perché msgcat non è nel normale gettext package.

+1

Grazie! ___________________________ –

+0

@ J.Pablo Fernández: puoi postare il comando per l'unione. – 1355

+4

Nel caso dei file POT (al contrario dei file PO) suggerisco di usare anche "--use-first", per non finire con roba inutilmente duplicata. – Gallaecio

-3

il comando è:

msgcat inputfile1 inputfile2 ... > outpo 
+2

Perché il downvote? La risposta di J. Pablo è migliore, ma questo non è tecnicamente sbagliato o fuorviante – gregmac

+5

Direi che il downvoting è fatto perché questa risposta non contiene nulla oltre alla risposta esistente e questa è stata aggiunta quasi due anni dopo la risposta migliore. –