Перевод тем и плагинов WordPress на русский: Loco Translate, Poedit и ручной способ

WordPress

Прочитав этот урок, вы научитесь нормально работать с локализациями и поймете, как переводить WordPress шаблоны и плагины на русский или любой другой язык, не ломая тему и не теряя перевод после обновлений.

Как перевести WordPress плагин или тему на русский язык. Инструменты и способы для перевода

Сразу замечу: перевод WordPress плагинов и перевод тем делается по одному и тому же принципу. Разобравшись один раз, дальше будете переводить всё подряд.

Русифицировать файлы темы или плагина для WordPress можно несколькими способами:

1. Вручную (правим код). Самый «дедовский» способ. Открываете каждый файл темы или плагина и просто заменяете английские слова на русские. То есть вам нужно глазами пробежаться по всему коду и перевести фразы, которые видны пользователям. Работает даже с самыми старыми и «кривыми» шаблонами.

Но у такого подхода есть огромный минус: как только вы обновите тему или плагин, все ваши правки с большой долей вероятности улетят в трубу. И вам снова придется всё переводить.

2. Программный способ (подходит для интернациональных тем и плагинов). Нормальные разработчики изначально готовят свои продукты к переводу: добавляют специальные функции перевода и textdomain, а все фразы собирают в файлы локализации. В этом случае вы создаете или правите специальный файл перевода, загружаете его на сервер — и плагин или тема автоматически «переключаются» на нужный язык.

Плюс этого варианта в том, что при обновлении темы или плагина перевод чаще всего сохраняется. Иногда нужно только обновить сам файл перевода под новую версию.

Небольшое лирическое отступление. Когда вы переводите шаблоны (темы) для любых CMS, вы как автор перевода часто можете поставить ссылку на свой сайт. Обычно такие ссылки ставятся в футере. Плюс можно написать автору оригинальной темы, отдать ему локализованную версию и получить ссылку уже с его сайта. Итого — плюс одна бесплатная обратная ссылка за ваш труд.

Как понять, интернациональная у вас тема/плагин или обычная «неподготовленная»?

Разработчики интернациональных тем и плагинов используют специальные функции, которые упрощают жизнь переводчику. Обычно в коде это выглядит так:

<?php _e( 'Some sort text', 'textdomain' ); ?>
<?php next_comments_link( __( 'Newer Comments <span class="meta-nav">→</span>', 'themater' ) ); ?>

Иными словами, перед текстом, который подлежит переводу, вы увидите конструкции вида __() или _e() и рядом будет указан textdomain (второй параметр).

Также в папке вместе с темой или плагином обычно есть папка с локализациями (чаще всего languages), в которой лежат файлы с расширениями .pot, .po и .mo.

Если у вас всё это есть — тема/плагин уже подготовлены к переводу, и можно спокойно работать через Loco Translate или Poedit.

Если не уверены, пишите в комментариях — помогу определить, что у вас за зверь.

Разновидность файлов локализации

Когда мы занимаемся локализацией шаблонов и плагинов WordPress, практически всегда сталкиваемся с тремя типами файлов.

.POT или Portable Object Template — это шаблон перевода, в котором собраны все строки, доступные для перевода. В нем ещё нет перевода и не указан язык. На основе одного .pot файла можно сделать переводы на разные языки. Например, на основе .pot создается .po файл для русского языка.

.PO или Portable Object — это файл, который уже содержит оригинальный текст и его перевод на конкретный язык. С .po файлом работает человек: сюда вы вписываете перевод, комментарии, указываете автора и т.п.

.MO или Machine Object — это бинарная, «машинная» версия .po файла. Этот файл понимают уже не люди, а движок. Именно из .mo скрипты подтягивают переведённые строки. На сайт достаточно загрузить .mo файл, но обычно рядом хранится и .po.

Перевод WordPress шаблонов и плагинов из админки сайта при помощи плагина Loco Translate

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

Установить его можно стандартно: зайдите в раздел «Плагины» — «Добавить новый«, в поиске введите «Loco Translate» и нажмите «Enter«. В списке результатов найдите нужный плагин и нажмите кнопку «Установить«.

установка плагина Loco Translate

После установки откроется страница с информацией о плагине. Не забудьте его активировать.

Активация Loco Translate

После активации у вас в левом меню админ-панели появится пункт «Loco Translate». Обратите внимание на подпункты «Темы» и «Плагины«. В зависимости от того, что вам нужно перевести, заходите в нужный раздел. Внутри вы увидите список всех установленных тем или плагинов.

список всех установленных плагинов

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

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

обзор переводов

После нажатия на «Новый язык», если у темы или плагина нет *.pot шаблона, Loco Translate предложит его создать. Просто нажимаем на кнопку «Создать шаблон«.

Создание шаблона локализации

На следующей странице еще раз подтверждаем и снова жмем «Создать шаблон».

Создаем шаблон

После этого вас вернет на вкладку «Обзор», где снова нажимаем «Новый язык». На открывшейся странице выбираем нужный язык, местоположение файлов локализации (чуть ниже — важное примечание) и жмем «Начать перевод«.

создание нового файла локализации

Примечание по выбору местоположения:

  • Авторский — файлы будут сохранены внутри папки, где установлена тема или плагин. При автоматических обновлениях продукта файлы в этом месте могут перезаписываться. То есть это вариант либо для авторов, либо для случаев, когда вы осознанно не обновляете продукт.
  • Системный — это глобальная папка языков WordPress (WP_LANG_DIR). Файлы, сохраненные там, теоретически могут быть перезаписаны автообновлениями переводов.
  • Авторский (рекомендуется Loco) — защищенная папка самого Loco в wp-content/languages/loco/. Там файлы не трогают автоматические обновления, и у этих переводов высокий приоритет. Если папки нет, её нужно создать и выставить права.

Я в примере выбрал системный путь — т.к. потом удалю плагин Loco Translate, и авторский путь в таком случае мне не нужен. Но файлы перевода рекомендую сохранить на ПК — если при обновлении плагина или темы перевод слетит, вы сможете залить их заново через FTP.

После выбора местоположения откроется редактор перевода. В верхней части окна у вас список строк, ниже — исходный текст и поле для перевода.

переводим плагин

Внимание! В исходном тексте периодически попадаются системные строки вида %1$s, %s и т.п. Их трогать нельзя! Просто оставляйте как есть и вписывайте перевод вокруг них, сохраняя плейсхолдеры.

Переводите нужные строки и не забывайте нажимать на кнопку «Сохранить«. После сохранения Loco сам скомпилирует файлы *.po и *.mo, и плагин или тема должны перейти на нужный язык.

Плагин на русском

Да, если вы заметили, при переводе есть неактивная кнопка «auto«. Если в настройках указать API-ключ переводчика, можно получать черновой автоперевод прямо из Loco. Лично мне все же удобнее для таких задач Poedit Pro, но как вариант — тоже можно использовать.

api keys

Перевод файлов локализации на ПК при помощи программы POEdit

Poedit — мощный кроссплатформенный редактор переводов (Windows, macOS, Linux), который умеет работать с gettext и очень хорошо подходит под WordPress.

Есть две версии: free и pro. В бесплатной версии вы переводите строки вручную. В Pro-версии доступен автоматический черновой перевод на основе API переводчика — сильно экономит время, когда строк много.

Скачать Poedit можно на официальном сайте poedit.net. Установка стандартная.

Чтобы сделать перевод, вам нужен файл шаблона *.pot или файл перевода *.po. Их нужно скачать на ПК, перевести, а затем загрузить обратно на сайт.

Файлы локализации обычно лежат в директориях тем и плагинов, например:

/wp-content/themes/название-темы/languages
/wp-content/plugins/название-плагина/languages

файлы локализации

Если есть *.pot файл — скачиваем его. Если *.pot нет, берем любой *.po файл. Если в папке темы или плагина нет каталога languages, проверьте глобальные папки перевода:

  • /wp-content/languages/plugins;
  • /wp-content/languages/themes.

Если вы откроете *.pot файл в Poedit, программа сама предложит создать новый перевод. Жмем «Создать новый перевод», выбираем нужный язык и нажимаем «ОК». После этого переводим строки по списку.

Создание нового перевода в poedit

Если *.pot файла нет, можно либо заранее создать его через Loco Translate (см. выше), либо, как уже говорил, скачать *.po файл и на его основе создать новый перевод.

Для этого запускаем Poedit и выбираем «Создание нового перевода на основе имеющегося файла PO или шаблона POT», после чего указываем нужный *.po файл:

Создание нового перевода на основе имеющегося файла PO или pot

После этого выбираем язык перевода и жмем OK.

выбираем язык перевода

Дальше — всё по классике: переводим строки, при необходимости добавляем комментарии, сохраняем. Poedit автоматически создает два файла — один .po и один .mo.

Чем Poedit удобнее Loco? Во-первых, он показывает ошибки и предупреждения, во-вторых, лично мне в нем быстрее и комфортнее переводить большие объемы, чем в админке.

А теперь самое вкусное — плюшки версии ПРО:

Версия про

Во-первых, есть предлагаемые варианты перевода: щелкнули по подходящему — и строка заполняется автоматически. Во-вторых, есть функция «Черновой перевод«.

Жмем на «Черновой перевод» — открывается окно с настройками, выставляем галки (что и как переводить) и снова нажимаем «Черновой перевод».

Черновой перевод

Программа обращается к API переводчика и автоматически заполняет переводы там, где есть точное соответствие. В моем случае за 30 секунд было переведено 92% строк (1582 из 1780). Это минимум полтора часа экономии, если бы переводить вручную.

Результат чернового перевода

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

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

Пулуавтоматический перевод

И после этого сохраняем.

сохраняем перевод

Если при сохранении есть ошибки, Poedit не промолчит — он покажет предупреждения и подсветит проблемные строки.

ошибки

Все ошибки и предупреждения собираются в верхней части окна. Исправляем их и снова сохраняем.

Правим ошибки

После окончательного сохранения у вас на руках два файла перевода: один .po и один .mo.

файлы локализации po и mo

Их нужно залить либо в /wp-content/themes/название-темы/languages, либо в /wp-content/plugins/название-плагина/languages — то есть туда, откуда вы изначально брали файлы для локализации.

Часто бывает, что вы кладете файлы в директорию languages внутри папки шаблона или плагина, а перевод так и не применяется. В таком случае попробуйте переименовать файлы ru_RU.po и ru_RU.mo в goodnews5_ru_RU.po и goodnews5_ru_RU.mo, где goodnews5 — это название темы или плагина (точнее, папки, в которой он лежит). После этого загрузите их в /wp-content/languages/plugins или /wp-content/languages/themes. Во многих случаях именно название файла решает, подтянется ли перевод.

Что делать, если перевелось не всё?

Такое случается часто. Вы всё сделали по инструкции, перевели .po, залили .mo, а часть надписей на сайте всё равно остаётся на английском.

Вариантов тут несколько:

  • не все строки темы/плагина вообще вынесены в файлы локализации (часть текста «зашита» прямо в шаблоны);
  • есть несколько textdomain, и вы перевели не тот файл;
  • строка относится к другому модулю или плагину (часто в премиум-темах всё очень «модульно»);
  • некоторые части интерфейса рисуют конструкторы (Elementor, Gutenberg-блоки и т.п.), а переводы у них свои.

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

Ручной перевод WordPress шаблона через код при помощи Notepad++

Сразу предупреждаю: ручной перевод через правку кода — самый опасный способ. Можно случайно сломать тему или плагин. Поэтому здесь действуем аккуратно и с пониманием, что делаем. Я привожу этот вариант больше для полноты картины и для тех, кто не боится кода.

В свое время в качестве подопытного кролика я взял тему с сайта themes.rock-kitty.net под названием Horcrux. Вот её верхняя часть, на которой видно несколько англоязычных слов:

англоязычная тема Horcrux

Если походить по рубрикам, архивам и т.д., найдете еще кучу англоязычных надписей. Переводить все это вручную, конечно, не самое приятное занятие, но иногда выбора нет.

Алгоритм такой:

1. Поочередно открываем все файлы темы с расширением *.php в программе Notepad++.
2. Во всех вкладках выставляем кодировку UTF-8 без BOM: меню «Кодировки» — «Кодировать в UTF-8 без BOM». Файлы темы лежат в директории wp-content/themes/название-темы.

Если вы лениво проигнорируете кодировку и не выставите UTF-8 без BOM, вместо нормально отображаемых русских букв можете получить набор «????». Такая проблема довольно часто встречается при переводах.

Теперь постепенно переводим. Для начала лучше трогать только текст, выделенный черным цветом (комментарии и т.п.), серые элементы кода пока не трогаем.

кусок кода одного из файлов шаблона

После перевода часть кода может выглядеть примерно так:

4

И так переводим все PHP файлы, в которых встречаются нужные нам английские фразы.

Когда закончили первый проход, нажимаем «Сохранить все».

Сохранить всё

После этого обновляем главную страницу блога и смотрим, всё ли грузится без ошибок. Если да — двигаемся дальше. Если вылезла ошибка — ищем, какой файл сломали, откатываем правки и пробуем еще раз, но аккуратнее.

Далее нам пригодится очень полезная функция Notepad++ — «Поиск по файлам».

Смотрим на главной странице непереведенные слова, а в Notepad++ идем в «Поиск» — «Найти в файлах».

поиск - найти в файлах

Заполняем окно по аналогии с тем, что у меня на скриншоте:

8

Жмем «Найти всё». Снизу появится список попаданий, и вы увидите, в каких файлах и на каких строках встречается нужная фраза.

Например, наше слово может находиться в файле sidebar.php в строке 7. Открываем файл sidebar.php и переводим нужный фрагмент:

поиск и перевод слов в шаблоне вордпресс при помощи Notepad++

Потом так же переводим следующие слова вроде «Read More», «COMMENT» и т.д.

Ни в коем случае не переводите функциональные части PHP-кода. Ломаются они очень быстро. Например, вот такой код:
<form action=»<?php echo get_option(‘siteurl’); ?>/wp-comments-post.php» method=»post» id=»commentform»>
трогать нельзя.

А вот такую строку:

<?php $subsc_text = «Enter your email address..»; ?>

перевести можно и нужно:

<?php $subsc_text = «Введите ваш e-mail»; ?>

В строке типа:

<input name=»submit» type=»submit» id=»commentSubmit» tabindex=»5″ value=»Submit» />

мы можем менять только value=»Submit» на value=»Отправить». Все остальное лучше не трогать.

По мере практики вы быстро начнете понимать, где текст, а где логика. Главное правило: почаще сохраняйтесь и проверяйте сайт. Если после очередной правки вместо сайта выскакивает ошибка — значит, что-то лишнее затерли или добавили.

Что делать с картинками и демо-контентом?

Некоторые темы используют картинки с «вшитыми» английскими надписями (кнопки, баннеры и т.п.). Такие вещи переводятся не через .po/.mo файлы, а в графическом редакторе.

Нужно зайти в папку wp-content/themes/название_темы/images/, найти нужную картинку и перерисовать её в любом графическом редакторе (Photoshop, GIMP, Figma и т.п.) или заменить на свою.

Импортированный демо-контент (страницы, записи, товары) переводится как обычные записи WordPress: либо редактируете каждую страницу вручную, либо используете мультиязычные плагины, если у вас несколько языков.

Как обновить перевод под новую версию темы или плагина?

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

Исправить это можно двумя способами:

  • с помощью сканирования исходного кода темы/плагина (через Loco или Poedit);
  • с помощью более свежего файла .POT (если его обновил автор).

Сколько стоит перевод WordPress тем и плагинов и где его заказать?

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

Например, на бирже kwork вам в полном объеме переведут шаблон или плагин всего за 500 рублей (конкретные цены могут меняться, но порядок примерно такой).

Стоимость перевода вордпресс тем и плагинов на kwork

Так что если вам лень возиться с .po/.mo и разбираться во всех нюансах — можете заказать на кворке, либо обратиться за помощью в переводе шаблонов и плагинов ко мне в телеграмм.

Ответы на часто задаваемые вопросы

Как найти в исходном коде продукта функцию подключения файла локализации?

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

Вызываете поиск по файлам и ищете слова load_theme_textdomain, load_plugin_textdomain или просто textdomain. Так вы увидите, какой textdomain используется и где подключаются файлы перевода.

Почему не виден перевод настроек темы?

Причин может быть много. Пройдитесь по чек-листу:

  1. Почистите кэш (и кэш плагина, и кэш на хостинге, и кэш браузера).
  2. В настройках WordPress должен стоять русский язык (Настройки — Общие — Язык сайта).
  3. Посмотрите, не установлен ли у вас плагин, который переключает языки сайта или админки. Возможно, активен другой язык.
  4. Проверьте, куда вы загрузили файлы локализации. Иногда нужно не в языковую папку продукта, а именно в глобальную языковую папку WordPress (/wp-content/languages/...).
  5. Проверьте названия файлов. Особенно это критично для плагинов. В большинстве случаев в имени файла локализации обязательно должно быть указано название плагина (или его домен локализации), например my-plugin-ru_RU.mo.
  6. Иногда перевод не работает именно из-за активного плагина Loco Translate. Попробуйте временно его деактивировать и посмотреть, подтянется ли перевод из файлов.
  7. В некоторых шаблонах есть сразу две языковые папки: одна для фронтенда, другая — для админки. В этом случае нужно положить файлы в обе, либо в ту, которая отвечает за нужную часть интерфейса.

Иногда проблема не в одном пункте, а в комбинации двух-трех. Но, как правило, пройдя все эти шаги, удается понять, почему перевод не подтягивается.

Ссылки

Остались вопросы — задавайте! Отвечу с удовольствием и по возможности помогу с разбором именно вашей темы или плагина.

Поделиться с друзьями
Алексей

Веб-дизайнер и SEO оптимизатор. Занимаюсь созданием сайтов с 2010 года и их продвижение с 2012 года!

Оцените автора
( 1 оценка, среднее 5 из 5 )
Web-Revenue.ru
Добавить комментарий

  1. Сергей

    День добрый!
    Мне срочно нужен перевод дизайна! Готов даже заплатить
    прошу как можно скорей мне ответить либо на почту либо в скайп: xxxados

    Ответить
    1. Алексей автор

      Добрый день! Написал вам на почту!

      Ответить
  2. Евгения

    великолепная статья, я раньше мучалась с переводом, а тепереь!Элементарно, Ватсон!Спасибо!

    Ответить
    1. Алексей автор

      Пожалуйста)

      Ответить
  3. Макс

    Тема (Cherry) не реагирует на перевод. Переводил с помощью Codestyling Localization, потом с Poedit. Закидывал переведенные файлы .po и .mo в файл lang темы и в папку languages в wp-content корня сайта.

    Менял и присваивал в config.php WPLANG значение ‘ru_RU’.

    */ define(‘WPLANG’, ‘ru_RU’);

    Менял с ru_RU.po на ru.po и с ru_RU.mo на ru.mo

    В теме нет папки languages , только папка с lang с дефолтными po и mo. Так же там нет файла pot

    Не реагирует и все тут. И эта тема не первая… Хоть убей не пойму в чем дело, может вы сталкивались с чем то подобным???

    Ответить
    1. Алексей автор

      Данная тема скорее всего не интернациональная и не поддерживает языковые файлы! Единственный выход, вы можете перевести ее вручную при помощи нотепад++ к примеру, но при обновлении темы перевод пропадет!

      Ответить
  4. Алексей

    Вот! Настоящая находка! Теперь буду всё переводить как мне надо. А то всё по английски а тои и французкий…

    Ответить
    1. Алексей автор

      )

      Ответить
  5. Алекс

    Плагин штука класная конечно но сейчас все больше англоязычных Больших плагинов типа CRM или плагинов социалок или интернет магазинов не имеют .po и .mo файлов то есть не предполагают локализации и их приходится переводить ручками что как раз в случае с большими плагинами сильно геморойно ((( и ничего не поделаш (((

    Ответить
    1. Алексей автор

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

      Ответить
  6. Андрей

    Спасибо братан. Очень помогла твоя статья. Благодарю

    Ответить
    1. Алексей автор

      Пожалуйста)

      Ответить
  7. Lisa

    Автор, СПАСИБИЩЕ! На куче сайтов написано как русифицировать шаблоны, но везде фигня — я неделю не могла перевести тему! А у вас все подробно расписано и благодаря вам я все же перевела весь шаблон самостоятельно)))
    А еще стала лучше в кодировках разбираться.

    Ответить
  8. Ксения

    Спасибо большое за статью! Я вчера столько времени потратила, а оказывается все так просто))) Очень нужный плагин скачала, но не все переведено было. С вашими инструкциями все получилось!

    Ответить
  9. Екатерина

    Здравствуйте Алексей. Хочу вас поблагодарить за вашу статью. Все очень подробно написано, а главное я в ней нашла нужную для меня информацию. Спасибо вам большое!

    Ответить