Перевод пользовательского интерфейса в Drupal 7

Несомненно, для современного программного обеспечения (ПО), отвечающего всем критериям качества. Одним из самых важных является наличие локализаций, соответствующих родному языку пользователей, использующих это ПО. Это обстоятельство оказывает довольно заметное влияние также и на удобство использования ПО. И как следствие, на его популярность. Учитывая это, разработчики стремятся наделить свои программные продукты гибкой системой локализации. Способной не только предоставить пользователю выбор заранее определённых переводов интерфейса, но также и возможность самостоятельно создавать собственные переводы. Именно так и организована система локализации для CMS Drupal. О которой более подробно будет рассказано в данной статье.

Система локализации в Drupal 7

Более «демократичную», дружественную по отношению к пользователю и в то же время более гибкую систему переводов пользовательского интерфейса как в Drupal сложно себе представить. Подобное довольно редко встречается даже в закрытых и дорогих коммерческих проектах. Однако, в CMS Drupal усилиями разработчиков, а также благодаря помощи многочисленного сообщества поклонников этой CMS, удалось воплотить все самые смелые ожидания пользователей в рамках свободного проекта, коим и является Drupal.

По-умолчанию за всю систему локализации Drupal 7 отвечает модуль «Locale», поставляемый в базовом комплекте ядра. Именно он, кроме поддержки многоязычности интерфейса, позволяет переводить отдельные элементы интерфейса на другие языки. Основным или базовым языком CMS Drupal является английский.

Основу системы локализации Drupal составляет функция t() — от слова «translate», т. е. «перевод». Эта функция в качестве параметра получает строку (только на английском языке) и возвращает её перевод на том языке, который установлен основным для сайта в целом или для текущего пользователя. Да, каждый пользователь сайта на Drupal может выбрать для своего аккаунта язык по-умолчанию. Если это разрешено администратором.

Как уже было отмечено, Drupal позволяет переводить отдельные строки вручную на нужный язык. Это часто случается, когда в конкретной локализации переведено не всё или переведено не так как хотелось бы пользователю. Данная возможность также регламентируется администратором сайта и может быть предоставлена пользователям. Но по понятным причинам, с особой осторожностью.

Система локализации Drupal может функционально расширяться отдельными модулями. И это очень удобно. Поскольку сама CMS Drupal способна расширять свою функциональность с помощью модулей, то и сами эти модули должны иметь соответствующие переводы. Таким образом, файлы переводов для Drupal существуют в трёх разных категориях:

  • ядро системы;
  • переводы для модулей;
  • переводы для тем оформления.

Где найти переводы для Drupal

На официальной странице поддержки переводов для Drupal https://localize.drupal.org/ можно найти все требуемые локализации как для ядра Drupal, так и для его модулей и тем, причём раздельно для разных версий. Переводы представляют собой файлы *.po, которые удобно импортировать в систему. Таким образом и устанавливается новый язык.

Поскольку при установке новых модулей (как и тем оформления) в интерфейс чаще всего добавляются новые формы и элементы управления, то по-умолчанию они отображаются на базовом языке системы, т. е. на английском. Для их перевода необходимо скачать соответствующие для этих модулей файлы *.po и вручную их импортировать. Однако, этот процесс можно автоматизировать и при установке новых модулей, Drupal будет самостоятельно обнаруживать необходимые переводы, скачивать их и устанавливать. Для этого предназначен модуль «Localization update». Он выводит и без того прекрасную функциональность системы локализации Drupal, на ещё более продвинутый уровень, обеспечивая, помимо автоматической установки переводов, также и проверку их обновлений.

Страница управления переводами и их настройками доступна по адресу http://drupal-site/admin/config/regional/translate. Или же можно на странице конфигурации системы (пункт «Конфигурация» в главном меню) щёлкнуть по ссылке «Перевод интерфейса», находящейся в категории «Регион и язык». Все рекомендации даются с расчётом на то, что русская локализация уже установлена. Это можно, кстати, сделать ещё на этапе установки Drupal.

Экспорт и импорт переводов

Страница управления переводами в Drupal располагает несколькими категориями задач, среди которых экспорт и импорт переводов. Управление и опции для этих задач доступны в соответствующих вкладках. Например, на вкладке «Обзор» имеется список всех установленных в системе языков с указанием объема перевода в процентном соотношении.

Рис. 1: Административная страница состояния переводов.

Но более полезными в практическом являются вкладки «Экспортировать» и «Импортировать». Здесь несложно разобраться. Предоставляемый функционал позволяет экспортировать переводы для требуемого языка в файл готовых переводов *.po или в файл шаблона переводов *.pot. Последний отличается тем, что содержит лишь строки оригинального языка без соответствующих вариантов перевода. Это удобно, например, когда нужно подготовить строки локализации для их последующего перевода другими людьми или профессиональными переводчиками. Опция «Текстовая группа» определяет, для какой части системы должен производиться экспорт. В данном случае это встроенный интерфейс Drupal.

Рис. 2: Административная страница управления экспортом переводов.
Рис. 2: Административная страница управления экспортом переводов.

С импортом переводов (вкладка «Импортировать») также всё довольно просто. Нужно лишь выбрать требуемый файл переводов (*.po), указать язык, в который добавляются импортируемые переводы, а также определить категорию переводов (как и в случае с экспортом) и режим самого перевода. Для последнего характерны два варианта, отличающиеся только тем, что в одном из них полностью заменяются существующие (идентичные) строки, а в другом они же игнорируются.

Рис. 3: Административная страница управления импортом переводов.
Рис. 3: Административная страница управления импортом переводов.

Ручной перевод отдельных строк

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

Рис. 4: Список строк локализации для редактирования переводов.
Рис. 4: Список строк локализации для редактирования переводов.

В поле поиска можно вводить строки на любом языке. Например, если нужно изменить перевод вкладки «Импортировать» на более короткое «Импорт». То нужно попытаться найти эту строку, введя в поисковую строку «Импортировать». Если таковой перевод имеется, то для него будут показаны все соответствующие совпадения:

Рис. 5: Поиск нужной строки перевода.
Рис. 5: Поиск нужной строки перевода.

В данном случае очевидно, что лучшее совпадение содержится в первой строке результатов поиска. Теперь можно, нажав на ссылку «изменить», отредактировать перевод для требуемых языков:

Рис. 6: Редактирование переводов для имеющихся языков.
Рис. 6: Редактирование переводов для имеющихся языков.

Сохранив сделанные изменения в переводах, можно теперь видеть, что и имя вкладки теперь изменилось в соответствии с новым текстовым значение строки перевода:

Рис. 7: Результат отредатированного перевода вкладки со старым названием "Импортировать".
Рис. 7: Результат отредатированного перевода вкладки со старым названием «Импортировать».

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

Итак, на конкретном примере были рассмотрены основные приёмы для работы с переводами в CMS Drupal 7. Как можно убедиться, система локализации Drupal действительно очень гибкая, а самое главное — позволяет практически полностью редактировать переводы пользовательского интерфейса.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.



2019-05-27T11:42:26
Drupal