
Не все темы и плагины WordPress переведены на нужный язык и естественно может возникнуть ситуация когда перевод темы и плагинов действительно нужен. Например если они выводят информацию на иностранном языке не только в админ панель, но и на страницы, которые видны всем посетителям. Не красиво выходит когда текст и одни элементы интерфейса на одном языке, а другие на другом языке.
В этой статье описываются простые и быстрые методы перевода (локализации) тем, плагинов и самого ядра WordPress.
Методы перевода темы и плагинов в WordPress
Я могу назвать следующие способы перевода:
- Правка исходного кода - первое что приходит новичкам в голову. Этот способ не удобен и не стабилен: стоит лишь обновить плагин или тему до более свежей версии и все что было отредактировано в исходном коде будет утеряно. Таким образом приходится привязываться к какой-то версии плагина или шаблона и не обновлять их, либо каждый раз после обновления редактировать файлы.
- Использовать шаблонные файлы перевода - считается "правильным" и более удобным. В этом случае можно использовать:
- Перевод при помощи программы Poedit
- Перевод при помощи плагина Loco Translate
Файлы перевода .po, .mo
Файлы перевода имеют расширение .po и .mo и находятся в папке languages, которая находится в папке шаблона и темы. В этой папке могут находится уже готовые файлы перевода темы на различные языки, а так же шаблон для перевода на любой другой язык.
Имя файла для определенного языка соответствует названию локали конкретного языка: для русского языка - это ru_RU.po, для французского fr_FR.po и тд..
Файл перевода .po
Файл перевода .po можно посмотреть при помощи обычного текстового редактора, в нем описаны:
- текстовые сообщения которые нужно перевести
- перевод этих сообщений
- где именно эти сообщения встречаются, то есть в каких файлах и в каких строках.
- служебная информация, которую можно не трогать
Для примера вот кусок текста из такого файла:
#: content-none.php:13 index.php:49 search.php:34 msgid "Nothing Found" msgstr "Ничего не найдено"
Исходя из этого примера понятно что фраза "Nothing Found" встречается в 13-й строке файла "content-none.php", 49-й строке файла "index.php" и 34-й строке файла "search.php".
Если один из этих файлов будет отредактирован и строки сместятся, например на 5 строк вниз в файле index.php, то после этого в файле перевода нужно будет исправить "index.php:49" на "index.php:54".
В большинстве тем и плагинов уже есть шаблонные файлы переводов - файл .po, в нем описаны сообщения которые нужно перевести, но самого перевода нет. Вам остается лишь прописать перевод для нужных строк. Не обязательно переводить все сообщения, можете перевести лишь то, что нужно.
Файл перевода .mo
Файл перевода .mo - это скомпилированный вариант файла .po, с ним работает ядро WordPress для отображения перевода. После редактирования перевода в файле .po, его нужно скомпилировать в файл .mo, чтобы изменения вступили в силу. В большинстве случаев такие редакторы как программа Poedit или плагин Loco Translate делают это автоматически при сохранении .po файла.
Перевод темы и плагинов через Poedit
Poedit — это программа для работы с файлами перевода формата .po и .mo. Есть бесплатная версия.
Скачать Poedit можно на странице poedit.net/download.php.
Для редактирования существующего перевода, или шаблонного файла перевода, достаточно открыть уже существующий файл .po. Работать с программой Poedit очень легко — щёлкните на соответствующую строку с надписью которую нужно перевести и введите новый перевод. При сохранении, Poedit автоматически скомпилирует ваш перевод и создаст соответствующий файл .mo.
Вот так выглядит интерфейс Poedit:
Установка файлов перевода
После того как работа над файлом .po закончена, сохраните его при помощи poedit, таким образом автоматически скомпилируется .mo файл. Теперь их нужно скопировать в папку languages, которая находится в папке с темой или плагином. Файлы должны иметь следующие имена, например для русского языка: ru_RU.po и ru_RU.mo.
Локализация Wordpress при помощи плагина Loco Translate
Loco Translate - плагин для перевода шаблона, плагинов и даже ядра CMS прямо из админки wordpress.
С плагином переводить даже еще проще чем через poedit:
- Устанавливаем плагин
- В админке WordPress переходим в меню "Переводчик Loco"
- Возле нужной темы или плагина жмем "Новый язык" или редактируем уже существующий
- Если создаем новый язык, то будет предложено его выбрать из выпадающего списка
- Должны отобразиться строки для перевода, если они не отобразились, то жмем кнопку "Синхронизация", чтобы они появились.
- Перевод сохраняем кнопкой "Сохранить"
Учитывайте чтобы увидеть результат перевода "в живую" нужно в админ панели WordPress включить тот язык, на который были переведены тема или плагин.
Полезные ссылки:
- Скачать Poedit можно на странице poedit.net/download.php.
- Loco Translate - плагин для перевода шаблона или плагинов прямо из админки wordpress
- wpmag.ru/?p=97 - очень длинная ветка комментариев где активно обсуждают эту тему.