Привет! Я уже как-то писал про перевод темы WordPress, с тех пор прошло довольно много времени. Раньше мы лезли непосредственно в файлы темы и переводили английские слова на русские. Приходилось копаться в куче разных файлов шаблона и находить нужные слова для перевода. Согласитесь, жутко неудобное занятие, хотелось все скорректировать в одном файле.
Прогресс не стоит на месте, все развивается, Вордпресс – не исключение. Сегодня я расскажу про то, как перевести тему WordPress наиболее правильным способом и как раз с помощью редактирования всего лишь одного файла.
А еще знаете, что самое классное? Когда вы переводите несколько шаблонов, Вы сталкиваетесь с тем, что по сути вам часто приходится переводить одни и те же фразы в стиле “Page Not Found”, “Pages” и другие. Тут я покажу Вам, как избавиться от данной проблемы и моментально переводить уже встречавшиеся ранее фразы.
Перевод шаблона WordPress
Файлы для перевода темы
Практически во всех современных шаблонах есть такая папка “lang” или она может как-то немного по-другому называться:
Внутри этой папки содержатся файлы, которые имеют расширение .po и .mo:
У Вас там могут быть только 2 файла: “en_EN.mo” и “en_EN.po”, все зависит от темы.
Как перевести тему WordPress с помощью редактирования “.po” файла
- Скачиваем себе на компьютер 2 файла: en_EN.mo и en_EN.po. Если же у вас уже присутствует перевод темы на русский и содержатся 2 файла ru_RU.mo и ru_RU.po и вы хотите просто скорректировать перевод, то скачиваем эти файлы.
- Устанавливаем себе великолепную программу Poedit. Мне очень понравилось то, что есть версия, как для Windows, так и для Os X. Вот тут можно скачать Poedit, программа бесплатная.
- Запускаем Poedit -> Файл -> Открыть:
- Находим скаченный в первом шаге файл en_EN.po и открываем его.
- И там мы увидим список английский слов, которые у нас встречаются в шаблоне, подлежащие переводу:
- Выбираем необходимую фразу и внизу в поле “Перевод” вбиваем необходимый русский текст:
- Для тех, кто часто занимается переводом шаблонов, могут купить Pro версию данной программы и она сама будет предлагать несколько вариантов перевода: машинный (несколько вариантов), человеческий. Я, если быть честным, не увидел надобности в этом, а все потому, что… Смотрим следующий пункт. 🙂
- Потому что в программе Poedit реализован классный функционал, который сохраняет в своей памяти наши переводы. То есть, допустим, перевели фразу “Pages” на русский язык и, когда в следующий раз при переводе другой темы нам встретится такая же фраза, программа уже предложит те варианты, которые мы использовали. Согласитесь, круто!
- И не нужно все это вручную перепечатывать, просто 1 клик по данной фразе или даже можно использовать “горячие клавиши” и фраза переведена на русский язык. Вуаля! Очень классно.
- Таким образом переводим фразы в этом файле. Я обычно не трогаю фразы, которые встречаются в админке WordPress, там итак все понятно, перевожу только те фразы, которые демонстрируются пользователям на сайте.
- После заверешения перевода фраз, в программе Poedit нажимаем Файл -> Сохранить как и уже там сохраняем под названием ru_RU:
- В результате у нас получится 2 файла: ru_RU.mo и ru_RU.po:
- Закидываем эти 2 файла по FTP в папку lang (или как-то по-другому у вас называется), то есть туда, где мы скачали файлы en_EN.po и en_EN.mo в первом шаге:
- Следующее нам нужно указать WordPress, какой язык использовать. Для этого по FTP в корне сайта (там, где лежат папки wp-content, wp-admin и др.) открываем файл wp-config.php:
- И там просто добавляем вот этот код:
define('WPLANG', 'ru_RU');
Его нужно вставить после WP-DEBUG:
- Вот и все! Переведенные фразы Вы уже можете наблюдать у себя на сайте. Каждый последующий перевод будет проще, так как Poedit будет сохранять фразы и, если будут совпадения, предложит уже использованные вами переводы. Очень удобно.
На сегодня у меня все. Если не хотите пропускать свежие уроки, подпишитесь на обновления в конце этой статьи. Если будут вопросы – задавайте, с радостью отвечу.
Всего вам хорошего!
Спасибо, познавательно. Кстати, с poedit уже работал для перевода одного из плагинов – удобная программка.
Спасибо, очень полезный урок!
Вопрос немного не по теме и все же… Почему Вы не уберете на сайте дублирующиеся категории? Спрашиваю, потому что у самого такая же проблема и я не знаю как ее решить.
Не совсем понял, про что вы?
У вас эта категория доступна как https://reclampa.ru/category/sozdanie-bloga/poleznoe_dlya_bloga
так и по адресу https://reclampa.ru/category/poleznoe_dlya_bloga А это дубль
Посмотрите на rel=canonical, так что никакой это не дубль 🙂 Не напрягайтесь)
Круто! И просто
Петр, как на счет сотрудничества. Если есть заказы, где необходим дизайн/верстка и адаптация к WordPress можем поработать. Если заинтересован, ответь под комментом, я напишу потом на почту.
Напиши мне на почту petr(гав)reclampa.ru, я направлю тебя к нужному человеку.
Статья супер! Спасибо большое) Сразу же не откладывая перевел свою тему) осталось только одно слово (которое я нашел пока) которое не перевелось. Это в комментариях, если 1 коммент, то пишется сверху – 1 ответ, если больше, то – 2 responses и так далее)
Вы указали вставить код define(‘WPLANG’, ‘ru_RU’);
где WPLANG, WP – это Ворд Прес, LANG название папки, у меня папка с этими файлами идет не как LANG, а languages, от сюда и вопрос:
Нужно ли мне в коде к слову WPLANG добавлять uages?
Попробуйте сначала сделать так, как я сказал, потом если что попробуете по-другому варианту и все.
Да, а в сравнении с прошлым методом перевода всё получается быстрее и качественнее. А самое главное – шансы что-то накосячить блезки к нулю, поскольку пользователь больше работает с самим текстом для перевода, и меньше с php кодом.
Вот, кстати, poeditor онлайн, для тех у кого нет доступа к компьютеру: https://localise.biz/free/poeditor
Там, конечно, нет некоторых фишек десктопной версии, но для “поправить” вполне сгодиться.
Хорошая статья, а главное полезное и без воды.
Петр, а если в папке Lang нет England файлов, только De, TR, ES, FR: https://prnt.sc/vmnu8c
А сама тема англоязычная, как перевести, чтобы в админке остались англ слова, а на фронте поменять на рус?
Спасибо!