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

Эта будет несколько необычная заметка. В ней буду рассказывать не столько о работе с программами перевода (хотя о них скажу более чем достаточно), сколько об особенностях внедрения перевода в тему на WordPress.

Что представляют из себя файлы перевода

Файлы перевода имеют расширение .po и .mo. Они создаются с помощью специальных программ, которые будут описаны ниже.

Во время работы с переводом мы используем файл с расширением po:

Но для того, чтобы WordPress понимал перевод ему нужен скомпилированный ужатый файл .mo.

Как поменять язык темы WordPress

Раньше надо было менять язык файла темы в файле wp-config.php, но сегодня это устарелый метод.

Для отображения сайта на другом языке, в настройках сайта меняем язык. Настройки находятся по такому пути (в адрес вставьте свой сайт):

Чем переводить темы для WordPress

Мне известны две программы для перевода WordPress тем.

Программа Poedit

Poedit — самая популярная, она же появилась первой. Бесплатная версия программы не позволяет проанализировать сайт и создать список для перевода. А вручную всё заносить очень тяжело. Бесплатная версия Poedit может пригодиться, если нужно перевести уже готовый к переводу файл.

В платной версии можно автоматизировать перевод.

Плагин Loco Translate

Плагин бесплатный и позволяет сделать много из того, что программа Poedit делает платно.

Плагин Loco Translate не только переводит темы, но и плагины. Интерфейс у программы очень удобный и ничего лишнего.

В данном случае остановимся на переводе тем. На скриншоте ниже видно, что для сайта созданы два языка. Если языкового файла нет, его можно сгенерировать нажав на ссылку Create template:

Заходим внутрь нужного языка и видим минималистический интерфейс со всем необходимым:

Как поменять папку для файлов перевода WordPress

Для переводов тем в WordPress существует папка по умолчанию languages. Находится она в не папки темы, а в папке wp-content. Мне не нравится держать файлы одной темы в разных местах, поэтому подключаю папку с темами внутри своей темы. Для этого в файл functions.php надо добавить:

Добавляется это в функцию setup темы:

Как внедрить перевод в тему своего сайта

Текст в теме WordPress находится в разных конструкциях html и php. Отсюда по разному эти php вариации будут выглядеть.

1. echo __(

Самый простой вариант:

где ploshadka — это ваш домен.

2. printf в несколько строк

Иногда необходимо изменить конструкцию, чтобы было легче внедрить перевод:

Результат будет иметь такой вид:

3. printf в одну строку

Если необходимо, чтобы в переводе был и русский и английский текст одновременно, который позже переведем только на английский:

Результат будет как и в предыдущем варианте:

Но при этом в программе перевода потребуется перевести только одну строчку. А это очень удобно.

4. Вместе с произвольными полями

Или так:

Результат будет один:

5. Несколько переменных php

Если есть конструкция с переменными, например:

То выносим переменную и создаем перевод таким образом:

6. Перевод внутри переменной

Нужно перевести такую конструкцию:

Переделываем её в такую штуку:

6. Перевод внутри функций

Если внутри функции содержится текст для перевода:

Когда ту же функцию нужно вывести в более сложном варианте. Надо single_cat_title сделать переменной и тогда можно вставлять:

Результат:

Как вывести данные в зависимости от языка сайта

И наконец, если не хочется что-то переводить отдельно, то можно написать текст для каждого языка прямо в шаблоне темы сайта. Для этого использовать инструкцию if определяющую язык сайта:

Или так:

Добавить комментарий

Напишите свой комментарий, если вам есть что добавить/поправить/спросить по теме текущей статьи: "Как переводить темы на WordPress".

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