Как преобразовать .po в массив PHP (Zend Framework) с помощью Translate Toolkit?

Я пытаюсь использовать po2php для преобразования моего .po в массив переводов Zend php.

Я просто пытаюсь это: $ po2php translations.po translations.php, но это приводит к ошибке, которую я не понимаю: po2php: warning: Couldn't handle input file translations.po: don't know what to do with input format .po, no template file.

Я не знаю, что такое файл шаблона, зачем мне его предоставлять?

ОБНОВЛЕНИЕ: я также пробовал $ po2php translations.po translations.php -t messages.pot, но это мне не помогает, выдает почти ту же ошибку: po2php: warning: Couldn't handle input file translations.po: don't know what to do with input format .po, template format .pot.


person ragulka    schedule 18.07.2013    source источник
comment
Почему бы не использовать Zend_Translate_Adapter_Gettext (framework.zend.com/manual/ 1.12/en/zend.translate.adapter.html), чтобы использовать файлы .po/.mo напрямую?   -  person Joel Lord    schedule 18.07.2013
comment
Это просто требование для проекта, над которым я работаю. Исторические причины...   -  person ragulka    schedule 18.07.2013
comment
Извините, тогда ничем не могу помочь... :(   -  person Joel Lord    schedule 18.07.2013


Ответы (1)


Вы также можете попробовать грушевый пакет File_Gettext. Подробнее читайте здесь: https://github.com/pear/File_Gettext

Код будет выглядеть так (не тестировалось):

include_once 'File/Gettext/PO.php';

$poFile = new File_Gettext_PO();
$poFile->load('PATH_TO/translations.po');

print_r($poFile->strings);

$poFile->strings должен содержать содержимое po-файла в виде ассоциативного массива. Далее вам нужна функция для вывода этого массива в файл. Взгляните на второй ответ здесь: Печать массива в файл

person bitWorking    schedule 18.07.2013