← Назад к статьям

Как настроить xgettext для перевода phtml файлов

M
miholeus
30 октября 2010 г. · 1 мин чтения

Недавно закончил модуль локализации для системы, которую пишу. И столкнулся с проблемой, о которой сейчас расскажу.

Так как я рассказываю на этом сайте о Zend Framework, то перевод я осуществлял естественно при помощи Zend_Translate. Компонент Zend_Translate позволяет использовать несколько адаптеров для

перевода. Я же в основном до этого всегда использовал gettext - встроенный в php механизм для перевода текстов. Есть с ним ряд проблем, но в целом мне очень нравится работать с ним. Огромный плюс  - это, пожалуй,

возможность автоматического сканирования всего проекта на предмет необходимости перевода. Нажал кнопку и тут же получил список того, что необходимо перевести, т.е. не надо запоминать и вносить в файлик

строчки для перевода, а потом в случае изменения лезть в этот же самый файлик и ручками править. Удобно ;)

Но обычно я использовал перевод в .php файлах, поэтому никаких проблем у меня не возникало. Кстати, я использую gui программу для редактирования, называется она Poedit. Это редактор .po файлов (в них собственно и содержится перевод, плюс дополнительная инфа о том, кто перевел и т.д). Poedit использует консольную утилитку xgettext, которая ищет строчки в файлах для перевода.

Вот тут я и столкнулся с проблемой ;) В Zend Framework по умолчанию используются шаблоны вида .phtml. И я долго удивлялся, почему при сканировании проекта не могу получить список строк для перевода.

Недолго думая, я залез в Установки - Парсеры, выбрал PHP и добавил .phtml в качестве еще одного расширения. Но тут получил следующую ошибку:

xgettext: warning: file `/var/www/soulex/application/modules/admin/views/scripts/error/error.phtml' extension `phtml' is unknown

Неизвестное расширение для xgettext, хотя я только что его прописал. Оказалось, что нужно дополнительно сообщить xgettext, что он имеет дело с php файлами при помощи опции

–language=PHP

Вот скриншот того, что получилось. Надеюсь заметка кому-нибудь пригодится и удачного перевода!

P.S. Завтра опубликую новый пост касательно Zend Framework ;)

Комментарии 4

Комментарии проходят модерацию
Загрузка комментариев...