Можно ли добавить перевод в каталог gettext (* .po) с помощью PHP? - PullRequest
0 голосов
/ 11 октября 2011

Я добавляю локализацию на сайт.Этот процесс можно было бы полностью автоматизировать, если бы я мог просто добавить перевод в файл .po через PHP, но я не могу найти библиотеку, которая позволяет это (например, версия POEdit для PHP).

То, что я делал, так как HTML в основном следует одному и тому же формату, - это запуск каждого phtml-файла (на самом деле это представления Zend Framework, если он имеет значение) через класс, который я написал, чтобы изолировать исходный текст на английском языке, назначить емуиндекс (page.block.1) и напишите функцию <?php echo _('page.block.1'); ?>, оборачивая исходный текст в комментарии HTML.Затем я вручную открываю POEdit, проверяю новые строки для перевода и вырезаю / вставляю закомментированный текст из phtml-файла в POEdit.

Это очень много времени.Предполагая, что я мог бы использовать библиотеку PHP для добавления нового перевода, у меня есть и индекс, и строка, готовая, так что это не только устранит человеческую ошибку, но и выполнит задачу за секунды, а не часы.

Делает таккласс существует, для PHP или даже Python / Perl?Кажется, я не могу его найти.

1 Ответ

2 голосов
/ 11 октября 2011

Существует гораздо более простой способ, особенно если вы используете Zend_Translate gettext адаптер .

Вы можете использовать функции перевода непосредственно в ваших файлах .phtml, например:

<label><?php echo $this->translate('some fancy text'); ?><label>

А затем используйте утилиту xgettext для создания файла .po из ваших файлов .phtml.Вызов xgettext будет выглядеть примерно так:

xgettext -o nameOfTheGeneratedPOFile.po --keyword=translate -L php

Затем вы можете использовать POEdit для перевода файла .po и msgfmt для создания файла .mo.

Ознакомьтесь с документацией Zend_Translate для получения дополнительной информации о том, как ее использовать.

...