Сейчас практически все темы 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. Жмем на кнопку «Новый язык».
Из выпадающего списка выбираем русский язык, а директорию языка оставляем по умолчанию. Жмем «Начать перевод».
Перед нами откроется редактор с тремя основными полями: исходный текст, выбранный текст из исходника, перевод. Что вы делаете? Выбираете из первого поля фразу (она попадает во второе поле), а в третьем поле прописываете перевод и жмете кнопку «Сохранить».
Результат можно будет смотреть сразу.
На этом все. Если есть вопросы, задавайте их в комментариях.
Огромное спасибо! Были проблемы с другими способами, а ваш сработал сразу и на ура! Благодарю за доходчивое и грамотное описание!
Не за что, Анна) Рад, что статья оказалась полезной.