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

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

Один продукт, который я хочу перевести, который имеет два отдельных веб-сайта, один для админов, один для клиентов.
Кодовая база - 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 ""

Ответы

Ответ 1

Итак, инструмент для этого - msgcat

msgcat *.pot > all.pot

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

Ответ 2

команда:

msgcat inputfile1 inputfile2 ... > outpo