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

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

Так как я рассказываю на этом сайте о 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 мысли о “Как настроить xgettext для перевода phtml файлов

  • 5 февраля 2016 в 18:52
    Permalink

    Добрый день! обязательно ли сперва расставить метки во всех местах, где нужен перевод в phtm файлах?
    Или можно как то научить его выковырить все слова в po файл и расставить метки автоматом?
    Проект уже большой и хочется автоматизировать..

    [Ответить]

    admin Reply:

    Автоматом вряд ли получится выдрать произвольные слова. Инструмент можно настроить на определенные функции (по дефолту, _). Так что сначала придется обернуть все переводы в функцию.

    [Ответить]

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

:D :) ^_^ :( :o 8) ;-( :lol: xD :wink: :evil: :p :whistle: :woot: :sleep: =] :sick: :straight: :ninja: :love: :kiss: :angel: :bandit: :alien: