Drupal - русификация и перевод модулей.

Перевод модуля находится в папке translations и представляет из себя минимум два файла — modulename.pot (это шаблон перевода) и languagename.po (это сам перевод).

Для их генерации существует модуль Translation template extractor, который извлекает из файлов выбранного модуля текст, передаваемый в функцию t().

Отсюда два требования при написании мультиязычных модулей — весь текст должен быть на английском и проходить через t():

drupal_set_message('Сообщение добавлено'); // не правильно
drupal_set_message(t('Message added')); // правильно!

Процесс генерации .pot и .po файлa:

  1. Скачиваем модуль.
  2. Распаковываем модуль в папку sites/all/modules.
  3. Включаем модуль Translation template extractor на странице admin/build/modules.
  4. На странице admin/build/translate/extract выбираем свой модуль и извлекаем Регистро независимый шаблон в файл с именем имя_модуля.pot (скриншот).
  5. Там же извлекаем Файл шаблона для перевода на Русский язык с включённой опцией Вложить существующий перевод, в файл ru.po (скриншот).

В папке модуля создаём каталог translations, куда кладём созданные файлы.

Открываем файл ru.po в любом текстовом редакторе, либо с помощью программы Poedit, и добавляем в msgstr русский перевод соответствующих msgid.

Пример переведённого файла ru.po модуля comment_notify:

#: comment_notify.module:485
msgid "source comment"
msgstr "источник комментария"
 
#: comment_notify.module:512
msgid "Email to unsubscribe"
msgstr "Емайл, для которого нужно отключить уведомления"

Далее импортируем получившийся файл ru.po на странице admin/build/translate/import.

Перевод готов. Теперь при первой установке модуля, друпал будет автоматически импортировать нужные .po файлы из каталога translations.

— Подробнее про мультиязычность модулей.

Теги: