Как и чем перевести тему или плагин WordPress?
В разное время я уже касался на страницах WPNICE различных аспектов этой популярной темы о переводах плагинов и шаблонов для WordPress. В сегодняшней статье постараюсь суммировать все свои знания относительно ситуации на сегодня. Надеюсь вам, уважаемые читатели будет интересно и главное — полезно.
Если перевод на русский язык самой WordPress, дело давно решенное и не вызывающее лишних вопросов у пользователей, то вот с плагинами и темами ситуация по прежнему животрепещущая. Не смотря на появление довольно значительного количества разработчиков из России и стран бывшего союза, все таки подавляющее количество WP ресурсов приходит с запада. А значит, требуют перевода. И дело тут даже не в том, что «английский знать нужно». Хороший перевод на родной — русский, украинский и т. д. язык, никогда и никому еще не вредил.
Отдельно хочу уточнить для рассеянных и невнимательных — в статье идет речь о переводе именно различных интерфейсов для WordPress тем и плагинов, а не о переводе контента (наполнения) сайта. Это совсем другая тема. Некоторые так же пытаются кивать в сторону машинного перевода. К сожалению (или к счастью) различные авто переводчики пока не в состоянии делать грамотные переводы. Они иногда бывают достаточны для того, что бы понять о чем идет речь, но не более того.
Давайте теперь внимательно рассмотрим все известные на сегодня способы сделать качественный перевод темы или плагина.
Перевод в коде темы
Не раз уже говорилось о том, что переводить прямо в коде плагина или темы занятие не правильное и неблагодарное, так как все ваши изменения будут потеряны при первом же обновлении. Исключением может служить только уж какая-то совсем уникальная ситуация. Тогда поиск и текстовый редактор вам в руки, но не говорите, что вас не предупреждали 🙂
.pot, .po и .mo
Для того, что ваш перевод никак не зависел от изменений в коде, разработчики приложений для WP уже давно используют технологию GNU gettext для создания отдельных файлов для перевода в форматах типа .pot, .po и .mo. Собственно, первый вариант это пустая «болванка» для перевода, второй вариант — уже готовый файл перевода на нужном языке, а третий — уже скомпилированный вариант для корректной работы с WordPress.
Как определить, готовы ли ваша тема или плагин к переводу? Очень просто — в корневой директории должна присутствовать папка — languages. Иногда просто — lang. Изредка встречаются и другие названия папок. Но суть в подготовленном к переводу файле .pot который должен находится в этой папке. Если какой то язык уже есть, будет присутствовать и файлик с расширением .po Например, — en_US.po или — ru_RU.po
Перейдем к инструментам которые помогут вам сделать свой перевод.
Редактор POEDIT
Простой и очень популярный, специализированный редактор для переводов. Предназначен для редактирования каталогов локализации gettext. POEDIT не WP плагин, а независимая программа, которую вам придется скачать и установит на свой компьютер. Имеет простой, трехоконный интерфейс позволяющий легко переводить нужные строки. В отдельном окошке можно оставлять комментарии.
Для начала работы с редактором вам нужно либо открыть уже готовый файл — .PO, либо создать новый на основе любого готового PO файла или POT шаблона. При создании нового PO файла выберите нужный язык. Как правило, программа сама точно определяет и подставляет нужный. Во время первого сохранения редактор предложит сохранить файл в виде — ru_RU.po Имейте ввиду, изменять произвольно конечный вид файла не стоит, так как перевод может стать не читаемым.
Далее вам нужно будет только выбрать строку для перевода и ввести в окне ниже, перевод собственный. Аналогично происходит работа с множественными вариантами перевода для одного слова. В недалеком прошлом редактор имел проблемы в этом отношении, но сейчас уже все работает как часы.
Во время работы с программой всегда можно проверить перевод на ошибки, ввести комментарий, отметить строку перевода как не точную и синхронизировать с новыми исходными файлами если они у вас появились. В настройках каталога вы можете указать свои авторские данные, изменить кодировку (не рекомендуется), форму для множественных чисел, изменить вручную пути для исходных папок.
Кроме бесплатной версии существует версия ПРО, в которой добавлена возможность создавать новый перевод просто выбрав папку с темой или плагином. Кроме того, в ПРО версии есть детальная статистика текущего перевода, что в некоторых случаях очень удобно. Ну и конечно, гарантированная поддержка автора. Всем кто занимается частыми переводами, настоятельно рекомендую приобрести именно расширенную версию. Стоит она не дорого.
Теперь обратим внимание на специальные WP плагины использующие те же принципы, но позволяющие осуществлять перевод прямо в админке вашей темы.
Плагин CodeStyling Localization (CSL)
Самый популярный, бесплатный плагин для локализации. Имеет достаточно простой интерфейс и все необходимое для быстрого и удобного перевода. Выбираем нужную тему или плагин и далее, переводим необходимые поля по аналогии с POEDIT. Если нужного перевода еще нет, то создаем новый, предварительно выбрав из готового списка языков. CodeStyling Localization сам по себе, уже переведен на русский и имеет удобный поиск по переводу.
К сожалению, плагин не обновлялся уже более года и неизвестно, будет ли обновляться в будущем. Скорее всего, уже не будет, судя по последним записям в блоге автора. В целом, не смотря на некоторые проблемы со множественными числами и скриптами типа Script Guard в некоторых популярных плагинах, вполне еще может быть использован для перевода.
Официальный сайт автора.
Скачать плагин с этого сайта (используйте на свой страх и риск).
Плагин Loco Translate
Относительно новый плагин имеющий редактор в стиле POEDIT. Интерфейс действительно простой и понятный. Те кто уже пользовался ранее CSL или POEDIT, разберутся без труда. Да и для новичков, тут ничего сложного нет. В меню настроек плагина можно выбрать тему или плагин из тех, что установлены на сайте и сразу приступать к переводу. Умеет создавать резервные копии PO файлов и позволяет при желании подключить стороннюю программу для компиляции MO файлов.
Базовые настройки Loco Translate очень простые и трогать там ничего не нужно, в большинстве случаев. Сконцентрируйтесь на самих переводах. Если в теме/плагине не предусмотрены файлы локализации, то плагин предлагает создать новый POT файл и делать перевод затем на его основе. Это не всегда работает корректно, но в целом, часто помогает. Сохранение перевода возможно как в самой директории плагина, так и в глобальных переводах для WordPress.
Дополнительно стоит отметить, что кроме плагина, автор замутил целый онлайн сервис, где вы так же можете переводить ваши файлы и создавать целые проекты. Можно делать даже коллективный перевод предоставляя доступ другим пользователям. Правда, число бесплатных проектов ограничено. Для полного доступа придется купить аккаунт PRO.
Loco Translate — в целом, очень не плохой и удобный плагин, который вполне может заменить пресловутый CSL. Всем любителям переводить из админки рекомендуется.
Официальная страница плагина.
Плагин Easy Translation Manager for WordPress
Премиум плагин от известной конторы разрабов. Уже давно продается на codecanyon.net Имеет запутанный и как мне показалось, слишком избыточный интерфейс. Переводит при этом, весьма слабо и неохотно, а многое просто не находит даже если для перевода есть все условия и файлы. Яркий пример того, как премиум плагин может быть в разы хуже бесплатных аналогов.
Правда, этот плагин кроме обычного перевода тем и плагинов может сделать вам и некое подобие мультиязычного сайта. То есть переводить, элементы интерфейсов сайта и сам контент. При желании, можно вывести значок переключения и таким образом переключаться между языками. Однако, добиться хороших результатов мне в этом деле так и не удалось. В общем, если вам не жаль 28 «зеленых», можете попробовать сами.
Официальная страница плагина.
Плагин ConveyThis Translate
Реиновация плагина, запущенного в 2008 году. Предоставляет возможность автоматического перевода страниц сайта одним нажатием.
Не требует длительной настройки. Для активации достаточно зарегистрироваться на сайте плагина, получить API Key и указать в настройках необходимые языки из 100 предложенных.
Плагин работает по модели freemium, то есть имеет бесплатный план с ограниченным функционалом и несколько расширенных планов.
При необходимости, перевод любой страницы можно отредактировать в личном кабинете.
Официальная страница плагина и в репозитории WordPress
GlotPress
Система для массового перевода от разработчиков WordPress. Позволяет вести перевод для каждого отдельного проекта целой группе зарегистрированных пользователей. При чем, на разные языки одновременно. Как правило, любой желающий может подключится к переводу на любом этапе и предлагать свои варианты локализации отдельных слов и строк. По ходу всего процесса наглядно отображается текущий процент готовности перевода. На любом этапе уже можно скачать файлы перевода даже если перевод еще далеко не полный.
Устанавливается эта система, конечно посложнее чем обычный плагин. Да и скачать последнюю версию можно лишь используя SVN вот отсюда. GlotPress используется рядом крупных плагинов например, таких как Simple Press, BuddyPress и некоторыми прочими «гигантами WP». Замечу, что если плагин использует собственный перевод от GlotPress, то переводить с помощью вышеописанных плагинов или POEDIT особого смысла нет, так как исходник перевода всегда будет заменен на тот, что использует система. Прежде чем переводить, что-то подобное самостоятельно, узнайте не ведется ли уже авторами перевод на GlotPress.
Надеюсь, вы получили общее представление о том как и чем перевести тему или плагин WordPress. Если вам, уважаемые читатели, известны еще какие-то плагины и программы способные помочь пользователям WordPress c переводом, пожалуйста укажите их в своих комментариях.
Как найти тему или плагин готовую к переводу?
Премиум плагины и темы как правило имеют в описании что-то типа — Translation Ready
Можно ли отключить плагин локализации после перевода?
Как перенести переведенные файлы с компа на свой сайт?
Что делать если моя тема или плагин не готовы к переводу?
Так же рекомендую к прочтению по этой теме:
Как сделать сайт мультиязычным?
Детальное описание двух плагинов для локализации.
Редактор POEDIT — переводим темы и плагины
А как вы относитесь к переведу с помощью Google Translate? Ведь это самый простой вариант, для тех, кто не хочет тратить время на перевод всех материалов вручную.
Если вы о сервисе гугловском, то нормально отношусь. Но это разные вещи. Машинный перевод пока способен только очень примерно переводить. Просто, что бы понять о чем речь вообще идет. Некоторые плагины позволяют использовать авто перевод от гугла или майкрософта, но оставлять результат такого перевода на своем сайте как есть — не уважать ни себя, ни пользователей сайта.
Я придумал, как можно упростить задачу: перевести страницы сайта, с помощью google translate, а потом откорректировать неточности вручную и вставить на сайт, с помощью плагинов, что вы описали. Я думаю это очень сильно сократит время редактирования контента.
Ну, кому как. Мне проще без машин переводить. Кроме того, тут статья о том, как переводить интерфейсы, а не сам контент. То что вы имеет ввиду вот тут https://wpnice.ru/stroim-multiyazychnyj-sajt-plaginy-qtranslate-wpml/
Поедитом баловался одно время — но что-то она не всегда корректно архив обратно заталкивает.
Вообще то poedit ни туда, ни обратно ничего не заталкивает.
Здравствуйте. Очень много тут чёткой и важной для меня информации.Особенно о магазине на
WP и приватном сайте. Но вопрос у меня сейчас о другом — по-поводу плагина CodeStyling Localization.
Плагин очень удобный (для меня). Но….Скажите, мастер , а множественное число как переводится
в нём? Нигде не нашёл информации . С уважением, ПруткоФФ.
Здравствуйте. Для полей со множественной формой там так же будет окно очень похожее на то, что изображено на втором скриншоте для POEDIT в этой статье. Суть одна — заполняете все табы для разных выражений.
Здравствуйте. Спасибо за столь быстрый ответ.Постараюсь на днях вникнуть в тему.с уважением.Пруткофф
Здравствуйте, мастер.
Я справился-таки с переводом своих плагинов при помощи очень удобного CodeStyling Localizatio, правда до множественных форм пока не добрался, так как возникла проблема в другом — несколько слов и словосочетаний из группы контактных данных (ИМЯ ФАМИЛИЯ Е-МАЙЛ АДРЕСС и пр. так и не перевелись на русский язык. Проверил генерацию mo-файла — все генерируется.
А теперь вопрос (традиционный для россиянина) — кто виноват и что делать (шутка)?
А может просто залезть на сервер и сделать изменения в плагинах там?Но меня останавливает не столько отсутствие опыта(начинать-то когда-то надо), а страх, что могу повредить что-либо безвозвратною. Правда сайт у меня сейчас заблокирован плагином Mauntainc.Такие вот дела….
Итак вопросы. 1.Если слова не перевелись прямо (в лоб) — с чем это связано?2.Можно залезть на сервер и внести изменения там без последствий для дальнейшей работы? 3. Эти изменения вносить в
директорию wp-content/plagin ?С уважением, Пруткоф
Здравствуйте. Я бы не стал сейчас использовать Codestyling Localization. Он был хорош 2 года назад, но с тех пор не обновляется и может работать не корректно. Советую использовать POEDIT. И Вам нужно понять где именно содержится нужный перевод. Надо переводить только файлы типа .PO. которые содержаться в теме или плагине. Если вы укажите конкретно о каком плагине или теме речь, возможно я подскажу более точно.
Здравствуйте, ещё раз..
Вы совершенно правы, на данном этапе я пытаюсь понять ,где расположены эти непереведённые слова.
Это плагин Job-manager.Делаю родной жене микро-сайтик для побора персонала.Продинамил всё что мог.Последствия (сами понимаете) непредсказуемы (шутка).Иные способы подбора кадров у нас не работают. Могу выслать скриншот или сам плагин (если необходимо). С уважением ,Николай Пруткофф
Вы не там переводите. Так бывает когда автор подготовил поля для перевода прямо в админке. Вам в закладку App Form Settings в Field Label/Type в самой админке этого плагина. Все остальные поля переводите там же.
Дмитрий, и ещё вот какой вопрос, раз уж речь зашла о переводах.. А что такое Slug ?Точнее как переводится это термин в среде программистов? Простой перевод — «пуля» или «слизень»..
С уважением,Николай.
Не знаю как у программистов, а вообще по оределению slug это краткий заголовок или заголовок для URL-адреса. Может использоваться в общем то где угодно.
Дмитрий, Вы — Гений ! Но признаться, и я сейчас уже сам нашёл ошибку! Это действительно так как Вы пишите..Я,признаться,нашёл ее совсем случайно..Методом тыка..Уже руки опустились.Уже на сервер лазил.Пытался там сермягу искать.Я Вам очень признателен за поддержку. А вот ещё про Slug можно какие-нибудь пояснения? С уважением,Николай
Спасибо за разъяснения по Slag.
Здравствуйте,Дмитрий!
Смысловое значение термина Slug я для себя, С Вашей помощью уяснил. А вот как быть с термином
«Sticky». Переводчик выдаёт значение — липкий ,липкая лента,клейкий. Можно внести ясность?Чего она клеит?
И ещё — спасибо за уменьшение размера рекламы до одного окошка — читать и работать стало удобнее.
С уважением,Николай
Добрый день. Sticky — применимо как правило к виджету или меню навигации которое условно говоря прилипает (фиксируется) наверху или в сайдбаре при прокрутке страницы вниз.
Понял.Спасибо.Николай
Здравствуйте, Дмитрий. Хочу ещё раз высказать Вам свою благодарность за иконки и т.п.
Очень классные «вещички».Спасибо.Николай
Здравствуйте,Дмитрий. Чувствую себя как Альхен (застенчивый ворюга из «12 стульев » Ильфа и Петрова). Не могу удержаться, чтобы не «потиранить» Вас снова,хотя понимаю, что времени у Вас нет.
Не буду обжаться, поэтому,если Вы не сможете ответить (или ответите на часть вопросов). Вопросов у чайника много. Итак, к делу..
1.Появляется текст и сообщение об ошибке 404. Текст очень корявый.
Вопрос — откуда управляется эта ошибка 404? Я хочу исправить перевод. Облазил сам всё..Не нашёл.
2. Вместе с «ошибкой 404» на странице появляется окошко «поиск».
Вопрос — Как из поиска исключить слова ненужные рядовому пользователю сайта во-избежание лишних
вопросов и телодвижений?
3.Как поставить поиск в WP 4.1.1. на главную страницу в меню? Отдельным плагином?
4.Вместе с «ошибкой 404» и корявым переводом текста на странице появляются раздел «Страницы»
(?) с активными рубриками из меню и раздел «Рабочие места» с активным перечнем резюме и вакансий.
Вопросы:1.Это что,карта сайта? 2.Её в главное меню вывести принципиально можно ?(не спрашиваю каким образом).
5.Почему в рубриках «вакансии/резюме» Title и Categories не переводятся,хотя в админпанели они русифицированы,как и всё другое?Как это исправить?
6.Как в футере перевести jobs 1,2,3 of 9 и Pages ?Отдельным плагином? PagesNavi здесь подойдёт?
7. Где переводится Apply Now (применить сейчас)? Его нет ни в плагинах,ни в темах..Может быть я плохо искал,но просмотрел ещё раз всё.
Такая вот шарада-головоломка-ребус.
С уважением,Николай.
Николай, ваш интерес к WordPress не оставляет равнодушным, но явно выходит за рамки комментариев. У меня есть платная услуга — Консультирование по скайпу. С радостью отвечу на все ваши вопросы. Делитесь своими контактами вот тут https://wpnice.ru/o-bloge/, оплачивайте и я к вашим услугам.
OK.Тогда подготовлюсь получше,составлю перечень вопросов. А консультация проходит с использованием возможностей экрана или только в рамках контекстной строки? С уважением
Вы можете вывести свой экран, если будет нужно.
Здравствуйте, Дмитрий. Вопрос один — если перевод плагина при помощи CodeStyling Localization шёл в неактивном состоянии переводимого плагина — может ли это влиять на сам перевод? Я переводил iTems Securiti. Как он был в английском варианте ,так и остался. А в переводчике – всё нормально, всё перевелось. А может это связано с обновлением на хостинге? Может дождаться их ? С уважением.
Не понятно, что значит — «перевод плагина при помощи CodeStyling Localization шёл в неактивном состоянии переводимого плагина»? О каком переводчике речь?
Извиняюсь за неточность в изложении вопроса… Неактивен был переводимый плагин — iTems Securiti. Он то вот так и остался в английском «варианте»,даже после активизации его. Хотя в плагине CodeStyling Localization видно -перевод произошёл. Другие плагины я перевёл достаточно свободно ,но при переводе они были активизированы. Я ещё «грешу» на сервер. Пока вот, занимаясь дизайном сайта,обратил внимание, что некоторые правки в шаблоне обновляются через несколько дней.С уважением.
Отключите и удалите CSL вообще. Используйте POEDIT.
Понял.По-пробую сегодня исполнить. Спасибо.
Здравствуйте,Дмитрий.
Разобрался я ,наконец-то, в Poedit-е. Начал переводить iTems Securiti. Всё переводится прекрасно.
То немногое, что перевёл — установил через http://ftp.Всё установилось. Однако,CSL всё же мне кажется удобнее (хоть и подвёл,гадёныш).Спасибо за совет. С уважением,Николай
Здравствуйте,Дмитрий.
Но всё-таки, почему нормально переведённые при помощи PO-edita шаблоны, плагины WordPress (т.е. все слова переведены полностью) содержат 2-3 слова, которые никак не хотят русифицироваться после закачки на сервер? Как с этим бороться?
С уважением,Николай.
Хочу изменить «Добавить комментарий» на что-то вроде «А вы что об этом думаете?» попробовал в ru_RU.po изменить ничего не получилось, что не так?
Да ничего не надо менять. если столько времени уходит. А то иногда полдня теряешь, а потом думаешь- для чего всё затеял…А конкретно — пока ничего придумать не могу. Надо знать конкретно последовательность Ваших действий. С уважением
На самом деле все оказалось очень просто, понадобилась прожка для компеляции *.mo файла
Ну да, «прожка» и называется POEDIT 🙂
Дмитрий, а как мне сделать перевод, если в папке с плагином лежит только файл с расширением php? Открыть любой готовый PO файл программой poedit — а откуда он будет тогда знать, откуда подтягивать текст для перевода?
Никакой poedit тут не поможет. Открываете текстовым редактором этот файл. Ищите нужные слова и заменяете.
Заменил одно слово в файле, затем проверил — слово перестало отображаться на сайте. А на странице редактирования в том месте отображаются крякозябры. Плагин называется custom-post-types (или это не плагин?) Как быть?
При сохранении использовать кодировку UTF8 (без BOM). А лучше вообще ничего не трогать, потому что при обновлении все изменения пропадут.
Крякозябры в режиме редактирования исчезли, но на сайте все равно не отображается соответствующая строка 🙁
Здравствуйте! Возникла такая ситуация: необходимо в переводимом предложении, слово сделать ссылкой (в оригинале ссылки нет). Как это реализовать? Прописать теги прямо в переводе? Мне кажется это не совсем правильно… Не подскажите?) (пользуюсь poedit)
А что делать,если плагин готов к переводу,но когда пробую перевести перечисленными выше способами,то ничего не меняется!
Я специально проверял,по разному переводил,но ничего не поменялось.
Разбираться в каждом отдельном случае. О каком плагине речь?
Dmitry, добрый день!
У меня в главном меню в шапке появились на каждую выкладку одинаковые по 4-5 штук закладки. Как можно их отредактировать?
И где можно отредактировать перевод? Через Notepad++ можно? Сделал перевод через Poedit, залил, а результат не поменялся
Спасибо
Добрый. Внешний вид — Меню. Там и редактируйте.
Dmitry, попробовал. Ошибку выдаёт:
Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 72 bytes) in /home2/asgard/public_html/wp-includes/meta.php on line 836
Не понятно, каким образом редактирование меню на сайте связано с нехваткой памяти.
Здравствуйте! C помощью этого плагина перевела тему. Всё перевелось хорошо, но вот 3 фразы никак не хотят «подхватываться».
_http://prntscr.com/cawz7u
А именно «by» и «About the Author:» и «Logged in as»
В настройках Loco перевод установлен:
_http://prntscr.com/cawzhq
_http://prntscr.com/cawzmh
Но почему-то на сайте всё равно английский вариант, хотя всё остальное по-русски.
В чем может быть проблема, как думаете?
Если необходимо, сайт: _http://psyhelp24.org/
Спасибо!