Вот добрались мы и до третьей части моего повествования о
локализации веб-проектов с помощью Zend Framework и GNU gettext.
Напомню, в предыдущей части я рассказал Вам о программной реализации мультиязычности в PHP, теперь самое время рассмотреть инструментарий для создания файлов переводов и эффективное управление ими на основе Вашего исходного кода…
Инструменты
Для работы нам необходима всего лишь одна маленькая и шустрая программка – Poedit для Windows. Лично я пользуюсь версией 1.4.2.
Установка программы происходит с помощью установщика, поэтому с этим трудностей у Вас возникнуть не должно. При первом запуске программы Вам будет предложено выбрать язык интерфейса и ввести ваш адрес электронной почты.
Все, программа готова к использованию.
Создание и настройка каталогов
Для создания каталогов (так называется набор строк для перевода) Вы можете воспользоваться менеджером каталогов, но лично я всегда выбирал Файл -> Создать каталог…

После выбора пункта меню вы должны увидеть окно настройки будущего каталога. Думаю, что с заполнением вкладки «информация о проекте» трудностей возникнуть не должно. Есть только одно примечание: не путайте «кодировку исходного кода» и «кодировку» - это принципиально разные понятия. Кодировка исходного кода, это кодировка программного кода Вашего веб-проекта, а «кодировка» - кодировка файла с переводом.

Вторая вкладка «Пути» очень важна. Здесь Вы должны указать пути к исходным кодам Вашего приложения. «Путь к базе» - это папка самого высокого уровня, где находятся Ваши исходники, нужно указывать полный путь. Далее Вам предлагается перечислить папки, которые находятся в базовой папке, для сканирования исходного кода.

Для ясности вопроса приведу Вам пример уже заполненного варианта:

Т.е. в примере сканируются папки:
- Z:\home\fooup-cms\fooup.cms\core\lib\
- Z:\home\fooup-cms\fooup.cms\core\locale\
- Z:\home\fooup-cms\fooup.cms\core\mvc\
Вкладка «ключевые слова» нам не нужна, так как рассмотренных настроек вполне хватит. После того как Вы нажмете кнопку «ОК» Вам будет предложено сохранить *.po файл, с которого потом соберется *.mo файл. Назовите сохраняемый файл в зависимости от выбранной стратегии сканирования переводов в Zend Framework. В моем случае файл должен называться в формате {locale}.mo, где {locale} – необходимое 2-х буквенное сокращение языка (ISO 639).
Итак, каталог успешно создан. Перейдем к следующему шагу.
Сканирование исходного кода
Для начала сканирования исходного кода на предмет строк нуждающихся
в переводе нажмите кнопку «Обновить»
. После чего Вы должны увидеть
индикатор процесса проверки. После завершения операции Вы увидите
сводку об обновлении, в которой будет указано количество добавленных и
удаленных строк.
Алгоритм работы программы следующий:
- Проверяются файлы с исходным кодом в папках указанных Вами
- В них находятся вызовы функций вида _(‘Строка’)
- Все найденные строки добавляются в каталог. Потом Вы их переводите
Проблемы?
Я так и знал, что у Вас возникли проблемы
. Дайте догадаюсь,
появились вопросы о шаблонах вида
? По-умолчанию, шаблоны вида (файлы
*.phtml) опускаются. От этого есть лекарство:
- Файл -> Установки…
- В появившемся окне выбираем вкладку «Парсеры»
- Выбираем PHP, нажимаем «Править»
- Появится окно «Настройка парсера»
- В поле «Список расширений» вписываем: *.php;*.phtml
Если сейчас Вы попытаетесь просканировать исходники, то получите целую кучу ругани от программы. Дело в том, что программа определяет парсер по расширению, а так как расширение phtml не относится ни к одному языку программирования из поддерживаемых, то возникает ошибка разбора файла. Вывод – нужно заставить парсер обрабатывать шаблоны вида как файлы php. По поводу этой темы перелопатил целую кучу поисковой выдачи поисковиков, но все было безуспешно. Решение нашел, почитав официальную документацию по GNU gettext.
Нужно немного модифицировать настройки по-умолчанию поля «Команда парсера» - впишите «xgettext --language=PHP --force-po -o %o %C %K %F». Вот как все перечисленные настройки должны выглядеть в итоге:

После сохранения настроек, все должно быть хорошо. Программа найдет строки с переводами... Далее переводите строки и используйте скомпилированные бинарные файлы в Вашем веб-проекте.
Небольшая заметка: для быстрого перемещения между строками используйте клавиши CTRL + стрелочки
Итог
В данной статье мы рассмотрели процесс создания каталогов переводов в программе poEdit, решили ряд вопросов и проблем, что поможет Вам сократить время на решении этих нюансов. В следующей части я подведу итоги проделанной работы и отвечу на Ваши вопросы. Zend Translate + Gettext + Poedit = удобно, быстро, эфективно. Удачи!
