Как я могу объединить 2 файла .POT (файлы перевода) - PullRequest
13 голосов
/ 29 октября 2010

У меня следующая ситуация:

Один продукт, который я хочу перевести, который имеет два отдельных сайта, один для администраторов, один для клиентов.
База кода - CakePHP.
Оба сайтаполностью отделены друг от друга, они являются полными сайтами CakePHP.
И у них обоих много общих строк.

Итак, с CakePHP я генерирую файлы .pot для каждого сайта, но яЯ хотел бы дать переводчикам ОДИН файл с уникальными строками в обоих файлах .pot.

Они вернули бы мне один .po файл со строками для обоих сайтов, и я просто скопирую один и тот же файл.на обоих сайтах, так что у меня будут .po файлы с дополнительными строками, которые код не будет использовать, но это не должно быть проблемой.

Так что вопрос по сути состоит в том ... Как объединить два.pot файлы?

  • Мне нужно получить новый файл, в котором нет повторяющихся строк.
  • В идеале, он будет сохранять (и для дублирующих строк добавлять комментарии) перед каждымстрока, которую добавляет CakePHP, определяягде строка была найдена, но если этого не сделать, это нормально, я могу жить без нее.(см. ниже выдержку из файла .pot для пояснения по этому вопросу)

Вам известны какие-либо инструменты, которые позволили бы мне сделать это?Мне бы очень хотелось, чтобы мне не пришлось писать свои собственные.


Вот комментарии, о которых я говорю выше:

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

Ответы [ 2 ]

26 голосов
/ 29 октября 2010

Хорошо, значит, инструмент для этого - msgcat

msgcat *.pot > all.pot

Если вы работаете в Windows, установите Cygwin и убедитесь, что у вас есть пакет gettext-devel , поскольку msgcat не входит в обычный пакет gettext .

0 голосов
/ 27 июля 2012

команда:

msgcat inputfile1 inputfile2 ... > outpo
...