Локализация тем WordPress и плагинов: легко, удобно, быстро

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

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

Некоторые особенности плагина Loco Translate:

  • Редактор перевода в админ-панели сайта
  • Создание и обновление языковых файлов напрямую из админ-панели
  • Резервное копирование файлов PO. MO
  • Защищенная папка для языковых файлов пользовательских переводов

Как не нужно переводить темы или плагины

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

Как правильно локализировать темы WordPress

Исходные строки фраз, надписей и прочего текста в файлах php должны остаться на английском языке, так как WordPress использует технологию GNU gettext для локализации. Кроме того, весь этот текст помещается в специальную функцию вывода. Вместе с оператором echo (или в отдельности) используется _e('') или __('').

Примеры:

<php echo 'Hello World'; ?>
<php _e('Hello World', domia); ?>

Или…

<php echo '<h1>Hello World</h1>'; ?>
<?php echo '<h1>' . __('Hello World', domia) . '</h1>'; ?>

Функция _e('') определяет текст для перевода, а WordPress следует параметрам файла config.php, в котором указан основной язык локализации define('WPLANG', 'ru_RU'); или тот, который указан в настройках «Общие-Язык сайта».

Но прежде чем получить нужный результат, необходимо подключить языковые файлы к теме. За это отвечает функция load_theme_textdomain. Она прописывается вначале файла functions.php

load_theme_textdomain( 'nematheme', get_template_directory() . '/languages' ); 

Здесь «nematheme» обязательно указывайте наименование темы без пробелов, а «languages» – это название папки, в которой находятся языки перевода – она должна быть расположена внутри темы.

Файлы перевода PO, MO, POT

Полный комплект локализации состоит из трех файлов:

POT (Portable Object Template) – файл содержит в себе весь текст, доступный для перевода. Это, так сказать, шаблон того содержания, которое помещено во функцию _e('') или __('').

PO (Portable Object) – файл перевода предназначен исключительно для темы оформления. В нем находится тот же текст, что и в файле POT, только отличается своими целями.

MO (Machine Object) – персональный файл для ядра машины WordPress. В нем находится все тот же самый текст, что и в файле PO, только он чуть другого формата и работает с системой, дабы та, в свою очередь, понимала, какой использовать файл локализации.

Обычно все эти файлы расположены внутри темы в папке «languages», «lang», «translate». Чтобы найти тему, поддерживающую локализацию, достаточно на официальном сайте использовать фильтр поиска с галочкой «Готова к переводу».

Переводим тему WordPress на русский язык с плагином Loco Translate

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

К примеру, нам понравилась тема Pashmina. Мы ее устанавливаем и замечаем, что некоторые слова, фразы написаны на английском языке. Стало быть, она нуждается в переводе. Первым делом подготовим к этому тему и начнем с создания папки «languages» непосредственно внутри самой темы. Затем открываем файл functions.php и недалеко от начала добавляем функцию:

load_theme_textdomain( 'pashmina', get_template_directory() . '/languages' );

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

локал темы

Находим из списка нашу тему, напротив нее нажимаем на надпись: «Новый шаблон». На открывающейся странице плагин выдаст результат анализа текста. На этом этапе нажмите кнопку «Сохранить» – это будет файл шаблона POT. Он сохранится в папке «languages».

перевод вордпресс темы

Теперь снова возвращаемся в раздел «Менеджер переводов», и наша тема уже первая в списке с созданным шаблоном POT. Жмем на кнопку «Новый язык».

localizat theme

Из выпадающего списка выбираем русский язык, а директорию языка оставляем по умолчанию. Жмем «Начать перевод».

Loco Translate

Перед нами откроется редактор с тремя основными полями: исходный текст, выбранный текст из исходника, перевод. Что вы делаете? Выбираете из первого поля фразу (она попадает во второе поле), а в третьем поле прописываете перевод и жмете кнопку «Сохранить».

локализация темы

Результат можно будет смотреть сразу.
На этом все. Если есть вопросы, задавайте их в комментариях.

Loco Translate

2 комментария
  1. Огромное спасибо! Были проблемы с другими способами, а ваш сработал сразу и на ура! Благодарю за доходчивое и грамотное описание!

Оставить ответ

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