- Как перевести WordPress плагин или тему на русский язык. Инструменты и способы для перевода.
- Разновидность файлов локализации
- Перевод wordpress шаблонов и плагинов из админки сайта при помощи плагина Loco Translate
- Перевод файлов локализации на ПК при помощи программы POEdit
- Что делать если перевелось не все?
- Ручной перевод wordpress шаблона через код при помощи Notepad++.
- Что делать с картинками и демо контентом?
- Как обновить перевод под новую версию темы или плагина?
- Сколько стоит перевод WordPress тем и плагинов и где его заказать?
- Ответы на часто задаваемые вопросы
- Как найти в исходном коде продукта функцию подключения файла локализации?
- Почему не виден перевод настроек темы?
- Ссылки
Прочитаю данный урок, вы научитесь работать с локализациями: переводить WordPress шаблоны и плагины на русский или любой другой язык.
Как перевести WordPress плагин или тему на русский язык. Инструменты и способы для перевода.
Замечу, что перевод wordpress плагинов аналогичен переводу тем или наоборот!
Русифицировать файлы тем или плагинов для WordPress можно несколькими способами:
1. Вручную. Для этого потребуется открыть каждый файл темы или плагина и заменить английские слова на русские. В общем вы должны будете пробежаться глазами по всему коду и перевести фразы предназначенные для пользователей. Но у такого перевода есть один огромный минус: если вы обновите тему или плагин, то Вам придется заново переводить все файлы.
2. Программный (подходит только для интернациональных тем и плагинов): создаётся специальный файл локализации для темы или плагина. Который заливается на сервер в папку с локализацией темы или плагина, в следствии чего получается автоматически русифицированный плагин или шаблон. В таком случае, при обновлении темы или плагина русский язык сохранится, и 90% случаях, заново переводить не придется.
Кстати когда Вы делаете перевод шаблонов (тем) для любых cms, то вы, как автора перевода получаете возможность поставить ссылку на свой сайт. Обычно эти ссылки ставятся в футере. Также о локализации можно сообщить автору темы англоязычной версии и получить ссылку на свой сайт с переведенной темой. Таким образом, Вы бесплатно добываете 1 обратную ссылку на свой сайт.
Как узнать какая у тебя тема или плагин: интернациональный или обычный.
Разработчики интернациональных тем и плагинов используют специальные коды, которые упрощают работу переводчика. Обычно они выглядят следующим образом:
<?php _e(‘some-sort text’) ?>
<?php next_comments_link( __( ‘Newer Comments <span class=»meta-nav»>→</span>’, ‘themater’ ) ); ?>
Иными словами перед текстом который подлежит переводу будут находиться: __ (два подчеркивания) или _e (подчеркивание и буква e).
Также в папке вместе с темой или плагином, обычно есть папка с локализациями (обычно это папка «languages») в которой находятся файлы локализации с расширениями *.pot, *.po и *.mo.
Надеюсь, что вы определили какая у вас тема или плагин! Если не пишите в комментариях я Вам помогу определить.
Разновидность файлов локализации
Когда мы занимаемся локализацией шаблонов и плагинов WordPress, то мы обязательно соприкасаемся с файлами локализации.
.POT или Portable Object Template – это шаблон в котором присутствуют все строки для перевода. Но, в таком файле нет перевода и не указан конкретный язык перевода. На основе этого файла можно создать перевод на любой язык. Например, на основе файла .pot создается файл .po.
.PO или Portable Object – файл который содержит язык-оригинал и его перевод на конкретный язык. С этим файлом работает человек. В этот файл вносится перевод, комментарии, указывается автор перевода и комментарии.
.MO или Machine Object – это бинарная версия .po файла. Этот файл понимают машины и с ним работают. Из этого файла скрипты подтягивают перевод для выражений и терминов. А потому на сайт достаточно загрузить только лишь этот файл.
Перевод wordpress шаблонов и плагинов из админки сайта при помощи плагина Loco Translate
Установите плагин Loco Translate, для этого перейдите в раздел «Плагины» — «Добавить новый«, в открывшейся странице в поле поиска введите «Loco Translate» и нажмите клавишу «Enter«, после чего на странице с результатами поиска, на против данного плагина нажмите кнопку «Установить«,
после этого откроется страница установки плагина, после успешной установки, не забудьте активировать его.
После чего у вас в левом меню в админ панели должен появится пункт «Loco Translate». Обратите внимание на подпункты «Темы» и «Плагины». В зависимости от того, что вам нужно перевести, перейдите в нужный подпункт. В каждом из них находится список установленных шаблонов/плагинов. К примеру я перейду в «Плагины». Появится список всех установленных плагинов.
Здесь нас нужно нажать на плагин который хотите перевести (или обновить его перевод). Вы окажетесь во вкладке «Обзор», где вы увидите список языков, на которые плагин уже переведён. Если кликнуть на уже существующий язык, то можно отредактировать перевод. Если нужного языка нет, то жмем по кнопке «Новый язык».
После нажатия на кнопку «Новый язык», если у темы или плагина нет *.pot шаблона, то Loco Translate предложит создать его, нажимаем на кнопку «Создать шаблон».
На открывшейся странице жмем еще раз нажимаем на кнопку «Создать шаблон».
После чего вас снова перекинет снова на вкладку обзор, где снова нужно нажать на кнопку «Новый язык». На открывшейся странице выбираем нужный язык, местоположение куда сохранятся файлы локализации (см. ниже примечания) и жмем на «Начать перевод».
Примечание по выбору местоположения:
- Авторский — это место будет внутри папки, в которой установлена тема или плагин. Автоматические обновления будут перезаписывать файлы в этом месте, поэтому сохраняйте файлы здесь только в том случае, если вы являетесь автором или имеете вескую причину для добавления файлов непосредственно в пакет.
- Системный — это расположение находится в каталоге установки глобального языка ( WP_LANG_DIR). Файлы, сохраненные здесь, могут быть перезаписаны установщиком собственного языка WordPress, поэтому не сохраняйте файлы здесь, если вы не отключили автоматическое обновление переводов .
- Авторский (рекомендуется плагином Loco Translate) — это защищенная папка Loco, в «wp-content/languages/loco/»которой нет автоматических обновлений и которая имеет приоритет над указанными выше папками . Если эта папка не существует, вам может потребоваться ее создать и убедиться, что у нее есть правильные разрешения.
Я выбрал системный путь — т.к. я потом удалю плагин Loco Translate — отсюда авторское месторождение для меня не подходит. Но я сохраню на пк файлы перевода на всякий случай — если при обновлении плагина или темы слетит перевод — я его заново загружу через ftp.
Откроется редактор для перевода, щелкаем по строчке которую хотите перевести, ниже видите исходный код и окошко куда нужно написать перевод.
Внимание! В исходном переводе попадаются системные строки, например %1$s их трогать нельзя, так и оставляйте, пример на скриншоте.
Переводите все, после чего нажимаете на кнопку «Сохранить«. Ну вот в принципе и все, после сохранения локо транслит скомпилирует файлы *.po и *.mo, после чего плагин или тема должны стать на нужном языке.
Да если вы заметили при переводе, есть неактивная кнопка auto — если в настройках указать API ключ переводчика, то сможете автоматически получать перевод с переводчика.
Перевод файлов локализации на ПК при помощи программы POEdit
Poedit — мощный кроссплатформенный клиент (доступен для Windows, macOS и Linux) и интуитивно понятный редактор для перевода интерфейсов, использующих gettext.
Poedit существует в 2х версиях free и pro. Про версия может автоматически переводить файлы — вернее делать черновой перевод на основе api переводчика, в версии free нужно переводить все вручную.
Скачать 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, то он сам предложит вам создать перевод. Жмем на кнопку «Создать новый перевод», выбираем новый язык и нажимаем «ОК». И переводим.
В случае если *.pot файла нет, вы можете его создать при помощи Loco Translate (см. выше), либо как сказал выше скачиваем *.po файл. Далее запускаем ПоЭдит и выбираем «Создание нового перевода на основе имеющегося файла PO или шаблона POT» и выбираем файл *.po.
После выбираем язык перевода и жмем OK.
Переводим и сохраняем. В отличии от плагина POEdit показывает ошибки и лично мне в нем как то комфортнее переводить чем через админку в плагине Loco Translate. А теперь давайте покажу главные плюшки версии ПРО:
Есть предлагаемые варианты перевода — щелкнули на подходящий и перевод автоматом заполнился. И еще более прикольная фишка это «Черновой перевод». Жмем на него, откроется окошко, выставляем все галки и снова жмем «Черновой перевод».
Программа обращается к API переводчика и заполняет перевод при точном соответствии. За 30 секунд он перевел 92% (1582 строки из 1780 — сэкономил как минимум часа 1,5 работы).
В общем если вам нужно перевести большой количество тем и плагинов, рекомендую купить лицензию, она не такая уж и дорогая — 1999р, лично у меня она себя уже раз 50 окупила.
Остается лишь пробежаться глазами по черновому переводу, подправить при необходимости и перевести остатки.
И сохраняем.
Если есть ошибки, то poedit скажет об этом.
Все ошибки и предупреждения собираются в верху, правим их и пересохраняем.
После сохранения poedit создает 2 файла (1 po и 1 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.
Что делать если перевелось не все?
Может быть такое, что файлы локализации не покрывают все английские элементы, тогда вам надо либо забить, либо переводить вручную код.
Ручной перевод wordpress шаблона через код при помощи Notepad++.
Переводить вручную опасно, можно случайно повредить тему или плагин — так что этот способ привожу больше для информации. В качестве подопытного кролика я взял тему с сайта: themes.rock-kitty.net под названием Horcrux. Вот её верхняя часть, на которой я выделил англоязычные слова:
Если полистать рубрики, архивы и т.д. вы найдёте ещё кучу англоязычных слов. Ну да ладно! Приступим к переводу:
Поочередно открываем все файлы темы с расширением *.php программой Notepad++. И во всех вкладках выставляем кодировку UTF-8 без BOM («Кодировки» — «Кодировать в UTF-8 без BOM»). Файлы темы находятся в директории «wp-content/themes/название-темы».
Если Вы на каждом файле этого не сделаете кодировку UTF-8 без BOM, то вместо переведенных слов получите «????». Такая проблема довольно-таки часто встречается при переводах.
Ну, а теперь приступаем к переводу! На первых порах, начните с перевода слов чёрного цвета (серые слова пока не трогаем):
У Вас должно получиться следующее:
И так переводим все php файлы в которых попадаются слова чёрного цвета.
После того как вы перевели все слова чёрного цвета, нажимаем на кнопку сохранить всё:
Далее обновляем главную страницу блога и проверяем работоспособность темы, если всё нормально без ошибок загружается едем дальше, т.к. перевели пока мы не всё.
Теперь нам потребуется одна полезная функция Notepad++ — «поиск».
Смотрим на главной странице непереведённые слова и в Notepad++ нажимаем «Поиск» – «Найти в файлах»
и заполняем открывшееся окно по подобию (как на картинке ниже):
Начинаем «Найти всё»
И видим то наше не переведённое слово находиться в файле sidebar.php в 7 строке, открываем файл sidebar.php и переводим данное предложение:
Потом, таким же макаром ищем и переводим следующие слова (такие как: Read More, COMMENT ) и так далее.
Не в кое случае в файлах шаблона не переводите функциональные части php кода. Вы его сломаете!!!
Т.е. код такого вида: <form action=»<?php echo get_option(‘siteurl’); ?>/wp-comments-post.php» method=»post» id=»commentform»> не трогаем.
А вот здесь например можно и нужно перевести: Enter your email address..:
<?php $subsc_text = «Enter your email address..»; ?>
В строке например такого типа:
<input name=»submit» type=»submit» id=»commentSubmit» tabindex=»5″ value=»Submit» />
Можно исправить только значение: value=»Submit» на value=»Отправить», всё остальное трогать нельзя.
Думаю что походу разберётесь, просто почаще сохраняйте изменения и проверяйте грузиться ли Ваш блог! Если вместо главной страницы вылетает какая-нибудь ошибка, отменяете изменения и снова сохраняетесь и проверяете работоспособность блога и т.п.
Что делать с картинками и демо контентом?
Для того, чтобы перевести некоторые кнопки и картинки, необходимо зайти в папку wp-content\themes\название_темы\images\ взять нужную Вам картинку и перерисовать её в любом графическом редакторе, либо заменить на свою.
А импортированный контент (страницы и записи) вам нужно либо удалить, либо заменить на реальный.
Как обновить перевод под новую версию темы или плагина?
Часто в плагины или темы (в основном в премиум) добавляется новый функционал, следовательно новые строки для локализации, перевода для которых у вас нет. Сейчас разберем как легко и просто исправить данную проблему.
Это можно сделать:
а) с помощью сканирования исходного кода темы
б) с помощью более свежего файла .POT.
Подробнее в видео ниже.
Сколько стоит перевод WordPress тем и плагинов и где его заказать?
Заказать перевод можно практически на любой фриланс бирже. И стоит он копейки: к примеру на бирже kwork, вам в полном объёме переведут шаблон или плагин всего за 500 рублей.
Так что если вам лень возиться можете заказать на кворке, либо обращайтесь за помощью в переводе шаблонов и плагинов ко мне в телеграмм.
Ответы на часто задаваемые вопросы
Как найти в исходном коде продукта функцию подключения файла локализации?
Это можно сделать с помощью любой программы которая может искать по директориям, например бесплатным notepad++. Вызываете поиск и ищите слово textdomain.
Почему не виден перевод настроек темы?
Причин может быть много:
- Нужно почистить кэш.
- В настройках WordPress указан не русский язык.
- Стоит плагин, который переключает языки на сайте или в админке. И текущий язык не русский.
- Файлы локализации нужно загрузить не в языковую папку продукта, а в языковую папку WordPress.
- Файлы локализации имеют неправильное название. Особенно, это актуально для плагинов. В большинстве случаев, в названии файла локализации для плагина обязательно должно быть указано название плагина или домена (локализации).
- Перевод не работает, потому что на сайте активирован плагин Loco Translate. Деактивируйте этот плагин.
- В некоторых шаблонах присутствуют две языковые папки. Одна – для файлов локализации перевода фронтенда, а другая – для файлов локализации перевода бэкэнда.
Иногда, причина не в одном пункте, а в нескольких.
Ссылки
Остались вопросы — задавайте! Отвечу с удовольствием.
День добрый!
Мне срочно нужен перевод дизайна! Готов даже заплатить
прошу как можно скорей мне ответить либо на почту либо в скайп: xxxados
Добрый день! Написал вам на почту!
великолепная статья, я раньше мучалась с переводом, а тепереь!Элементарно, Ватсон!Спасибо!
Пожалуйста)
Тема (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
Не реагирует и все тут. И эта тема не первая… Хоть убей не пойму в чем дело, может вы сталкивались с чем то подобным???
Данная тема скорее всего не интернациональная и не поддерживает языковые файлы! Единственный выход, вы можете перевести ее вручную при помощи нотепад++ к примеру, но при обновлении темы перевод пропадет!
Вот! Настоящая находка! Теперь буду всё переводить как мне надо. А то всё по английски а тои и французкий…
)
Плагин штука класная конечно но сейчас все больше англоязычных Больших плагинов типа CRM или плагинов социалок или интернет магазинов не имеют .po и .mo файлов то есть не предполагают локализации и их приходится переводить ручками что как раз в случае с большими плагинами сильно геморойно ((( и ничего не поделаш (((
Плагины без .po и .mo файлов перевести не сложно, единственный минус, заключается в том что переведенные в ручную плагины после обновления придется переводить заново!
Спасибо братан. Очень помогла твоя статья. Благодарю
Пожалуйста)
Автор, СПАСИБИЩЕ! На куче сайтов написано как русифицировать шаблоны, но везде фигня — я неделю не могла перевести тему! А у вас все подробно расписано и благодаря вам я все же перевела весь шаблон самостоятельно)))
А еще стала лучше в кодировках разбираться.
Спасибо большое за статью! Я вчера столько времени потратила, а оказывается все так просто))) Очень нужный плагин скачала, но не все переведено было. С вашими инструкциями все получилось!
Здравствуйте Алексей. Хочу вас поблагодарить за вашу статью. Все очень подробно написано, а главное я в ней нашла нужную для меня информацию. Спасибо вам большое!