WordPress L10n как сделать локализацию плагина


Оглавление (нажмите, чтобы открыть):

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

Привет, друзья! Сегодня я затрону ещё раз важную тему для пользователей WordPress — это перевод плагинов и тем WordPress на русский язык или любой другой. Как вы уже знаете что, перевести самостоятельно темы и плагины на любой язык можно с помощью программы Poedit или плагина Codestyling Localization. Но, есть и более новый инструмент. Перевод плагинов и тем/шаблона ВордПресс на русский язык с помощью Loco Translate.

С Poedit приходится возиться, да и не все могут разобраться с данной программой, а плагин Codestyling Localization уже удалён из официального каталога wordpress.org и его приходиться скачивать с других сайтов, например у меня, тут. Так вот, давайте откинем старое в сторону и воспользуемся новым, лучшим решением на сегодняшний день, то есть, плагином.

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

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

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

Наряду с развитием WordPress и использованием сообществом различных языков, потребность в языковой локализации неизбежна.

Что такое перевод (локализация)?

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

Способы перевода тем / плагинов в WordPress

Самый универсальный и простой способ — использовать плагин Loco Translate. Плагин для перевода темы и плагина WordPress просто супер. Пользуйтесь!

Плагин для перевода WordPress тем (шаблонов) и плагинов

Loco Translate лучший плагин, предназначенным для перевода тем WordPress и плагинов на русский

Loco Translate позволяет редактировать файлы переводов WordPress прямо в браузере, то есть, он встраивается непосредственно в панель управления WP, не требуя при этом использования внешних редакторов. Создавать и обновлять файлы перевода можно напрямую в любой теме или плагине. Работать с ним легко и просто, справится даже новичок. Сам данный плагин поддерживает русский язык и поэтому сложностей у вас не будет. Сейчас я покажу вам, как можно переводить плагины или шаблоны/темы вордпресс на русский язык .

Устанавливайте модуль Loco Translate стандартным способом через админку. После его активации у вас появится раздел Переводчик Loco с подразделами:

Раздел Переводчик Loco с подразделами

Настраивать Loco Translate не нужно, там выставлено всё нужное по умолчанию. Вам нужно нажать на темы или плагины, в зависимости от того, чего вам нужно перевести. Подраздел Темы — Это приведет вас к списку всех доступных у вас тем в WordPress, плагины — список установленных плагинов:

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

Например, нажмём на Akismet Anti-Spam и вы увидите что данный плагин переведён на 100%:

Plugins Akismet Anti-Spam переведён на русский 100%

Если было бы 90% вы могли перевести его до конца. Ладно, а теперь давайте переведём чего нибудь на русский язык. Переведите тему WordPress с помощью плагина, нажав подраздел Темы. Выбираете из списка нужную для перевода тему (вы можете установить тему не активировав её, а после перевода шаблона на нужный язык — активируйте), плагин покажет, что нужного перевода для темы не найдено. Нажмите New language (Новый язык):

Добавить новый язык

Чтобы начать перевод темы на другой язык, нажмите эту кнопку. Вы попадете на новый экран, где вы можете выбрать нужный язык из списка. В данном случае это будет русский язык:

Выбор языка для перевода темы WordPress

Выбрав нужный язык и папку, нажмите кнопку Start translating (Начать перевод), и вы перейдете на экран редактора для перевода темы:

Начать перевод темы на русский язык

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

Перевод темы/шаблона WordPress на русский язык

После каждого перевода строки, не забывайте нажать кнопку Save (Сохранить). В примере, нужно перевести 948 строк, это на несколько часов. Если хорошая тема, то не жалко и потратить своё время. В ближайшем будущем разработчики плагина хотят интегрировать Google и Bing для автоматического перевода плагинов и тем. Тогда будет ещё круче.

Да, и ещё. Для перевода используйте переводчики от Google и Яндекса, так как, они переводят слова/предложения по разному. У кого то перевод лучше, а где то хуже, так что, выбирайте приемлемый для вас вариант.

Таким же методом, товарищи, переводите свои установленные плагины.

Заключение

Этот пост предоставил вам подробную информацию о том, как переводить темы и плагины WordPress. Я надеюсь, что это поможет вам сделать вашу работу проще.

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

Плагины для локализации

О том, как переводить wordpress темы в сети, уже написано не мало. В первую очередь, это касается ручных переводов. То есть, вооружившись текстовым редактором, вы должны найти все нужные вам для перевода слова в коде и методично, шаг за шагом, перевести их на русский.

Сегодня разговор пойдет о двух плагинах, значительно облегчающих эту задачу. То есть переводить придется все равно вам, но сделать это будет уже гораздо удобнее.

Один плагин совершенно бесплатный, это — CodeStyling Localization. А вот второй, самый что ни на есть платный — Easy Translation Manager.

В конце статьи подведу небольшой сравнительный итог обоих плагинов.

CodeStyling Localization (CSL)

Устанавливается стандартным способом. После установки, в меню Инструменты, появляется новый раздел – локализация. Кликаем на нем и попадаем на страницу плагина – Управление языковыми файлами.

Перед вами меню с шестью закладками:

Все файлы – плагин показывает все, что он сможет перевести.

WordPress – собственно перевод самой WordPress. Не особо актуально, ибо у большинства стоит уже русский WP.

Плагины – выводит список плагинов, которые можно перевести

Темы – выводит список всех тем для перевода

Compatibility – показывает, где могут возникнуть проблемы с переводом

Security Risk – показывает, где могут возникнуть проблемы с безопасностью.

Порядок работы с переводом примерно такой:

Выбираем в списке всех доступных (если у вас их установлено несколько) тему, нужную нам для локализации. Если в графе Языки ничего нет, то жмем Добавить новый язык. Находим и выбираем в списке русский язык. После этого он появится в графе языков. Нажимаем Сканировать и даем плагину просканировать тему на предмет необходимых для перевода слов. Затем нажимаем Редактировать.

Открывается список всех доступных для локализации слов. Ну и далее по очереди или выборочно переводим нужные слова нажимая напротив каждого Редактировать. Появится всплывающее окно состоящее из двух частей. Где наверху оригинал, а внизу можно вписать свой перевод. Нажимаем Сохранить или Сохранить и перейти к следующему/предыдущему.


Для того, что бы все ваши изменения вступили в силу нажимаем кнопку Генерировать МО – файл.

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

Все то же самое применяется и в отношении плагинов.

Easy Translation Manager (ETM)

В принципе этот платный плагин работает так же как и его бесплатный аналог, но в отличии от последнего имеет более продвинутое и удобное управление, а так же некоторые дополнительные функции. Рассмотрим подробнее.

После установки плагина в «админке» появляется новое меню ETM Settings, состоящее из семи разделов.

Get Started: Краткое руководство о том, как начать работу с плагинов. Авторы рекомендуют выполнить три простых шага – Выбрать языки для перевода – выбрать доступ к меню выбора языков – начать перевод тем, плагинов и остального.

Plugin Translation — Перевод плагинов. Тут будет список плагинов доступных для перевода и возможность их перевести. Сам процесс перевода практически аналогичен тому, что я описывал для бесплатного плагина , поэтому не вижу особого смысла повторятся.

Theme Translation — Перевод тем. Так же как предыдущий.

Pages Translation — Перевод отдельных страниц сайта

Post Translation — Перевод всего, что связано с постами, тегами и рубриками

Menu Translation — Перевод основного меню темы

Options — Набор основных опций плагина — General Settings, Manage availability of Items, List Configuration, Design and Layout, Language, Support for other plugins, License. С виду поражает количеством настроек, но на самом деле из важных только – выбор нужных языков. Все остальное просто настройка внешнего вида самого плагина в админке, скрытие или видимость отдельных элементов и т д.

Как видим, ETM имеет гораздо больше настроек, чем его бесплатный конкурент, но большинство из них можно и нужно просто оставить как есть — без изменений.

Итоги

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

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

Страницы плагинов — CodeStyling Localization Easy Translation Manager

Рекомендую почитать так же — Как и чем перевести тему и плагин?

load_plugin_textdomain() — подключает файлы локализации для плагинов WordPress

Возвращает логическое true в случае успешного подключения языковых файлов, возвращает false при возникновении проблем с чтением .mo файла .

Пример

Используйте эту функцию только внутри хука plugins_loaded .

Впервые познакомился с WordPress в 2009 году. С 2014 года меня можно встретить на WordCamp по всему миру — официальной конфе по WordPress, иногда там выступаю, но с 2020 выступаю только на тех, которые сам организовываю. Также периодически школа Epic Skills и LoftSchool приглашают меня вести у них уроки/вебинары.

Если вам нужна помощь с вашим сайтом или может даже разработка с нуля — пишите мне.

Локализация тем WordPress и плагинов: легко, удобно, быстро

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

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

Некоторые особенности плагина Loco Translate:

  • Редактор перевода в админ-панели сайта
  • Создание и обновление языковых файлов напрямую из админ-панели
  • Резервное копирование файлов PO. MO
  • Защищенная папка для языковых файлов пользовательских переводов

Как не нужно переводить темы или плагины

Начинающие пользователи по своему незнанию часто делают нелепые ошибки, включая перевод тем прямо в шаблонных файлах php. Это есть неправильно, даже по такой простой причине, как потеря перевода при первом же обновлении темы. Не говоря уже о том, что можно случайно что-то удалить из шаблонных файлов темы.

Как правильно локализировать темы WordPress

Исходные строки фраз, надписей и прочего текста в файлах php должны остаться на английском языке, так как WordPress использует технологию GNU gettext для локализации. Кроме того, весь этот текст помещается в специальную функцию вывода. Вместе с оператором echo (или в отдельности) используется _e(») или __(») .

Мастер Йода рекомендует:  Как стать настоящим хакером или Capture The Flag

Функция _e(») определяет текст для перевода, а WordPress следует параметрам файла config.php, в котором указан основной язык локализации define(‘WPLANG’, ‘ru_RU’); или тот, который указан в настройках «Общие-Язык сайта».

Но прежде чем получить нужный результат, необходимо подключить языковые файлы к теме. За это отвечает функция load_theme_textdomain . Она прописывается вначале файла functions.php

Здесь «nematheme» обязательно указывайте наименование темы без пробелов, а «languages» – это название папки, в которой находятся языки перевода – она должна быть расположена внутри темы.

Файлы перевода PO, MO, POT

Полный комплект локализации состоит из трех файлов:

POT (Portable Object Template) – файл содержит в себе весь текст, доступный для перевода. Это, так сказать, шаблон того содержания, которое помещено во функцию _e(») или __(») .

PO (Portable Object) – файл перевода предназначен исключительно для темы оформления. В нем находится тот же текст, что и в файле POT, только отличается своими целями.

MO (Machine Object) – персональный файл для ядра машины WordPress. В нем находится все тот же самый текст, что и в файле PO, только он чуть другого формата и работает с системой, дабы та, в свою очередь, понимала, какой использовать файл локализации.

Обычно все эти файлы расположены внутри темы в папке «languages», «lang», «translate». Чтобы найти тему, поддерживающую локализацию, достаточно на официальном сайте использовать фильтр поиска с галочкой «Готова к переводу».

Переводим тему WordPress на русский язык с плагином Loco Translate

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

К примеру, нам понравилась тема Pashmina . Мы ее устанавливаем и замечаем, что некоторые слова, фразы написаны на английском языке. Стало быть, она нуждается в переводе. Первым делом подготовим к этому тему и начнем с создания папки «languages» непосредственно внутри самой темы. Затем открываем файл functions.php и недалеко от начала добавляем функцию:

Дальше делаем следующее: устанавливаем и активируем плагин Loco Translate, в панели слева переходим в появившуюся вкладку «Loco Translate-Менеджер переводов». В этом разделе находятся две категории элементов доступных для перевода: темы и плагины. Принцип работы с ними один и тот же, поэтому в примере поработаем с темой.

Находим из списка нашу тему, напротив нее нажимаем на надпись: «Новый шаблон». На открывающейся странице плагин выдаст результат анализа текста. На этом этапе нажмите кнопку «Сохранить» – это будет файл шаблона POT. Он сохранится в папке «languages».

Теперь снова возвращаемся в раздел «Менеджер переводов», и наша тема уже первая в списке с созданным шаблоном POT. Жмем на кнопку «Новый язык».


Из выпадающего списка выбираем русский язык, а директорию языка оставляем по умолчанию. Жмем «Начать перевод».

Перед нами откроется редактор с тремя основными полями: исходный текст, выбранный текст из исходника, перевод. Что вы делаете? Выбираете из первого поля фразу (она попадает во второе поле), а в третьем поле прописываете перевод и жмете кнопку «Сохранить».

Результат можно будет смотреть сразу.
На этом все. Если есть вопросы, задавайте их в комментариях.

САЙТ ПОД КЛЮЧ!

Я уже писала о том, как сделать перевод слова «Распродажа» в плагине WooCommerce на CMS WordPress и благополучно уберечь его от обновлений. Однако, Вордпресс не тоит на месте и придумывает всё новые проблемы! Если у плагина Вукоммерц (WooCommerce) переводы опять слетели и предыдущая инструкция уже не помогает восстановить файлы русификации, предлагаю ещё один способ для тех, кто полон решимости побороть упрямство системы.

Хочу заметить, что сама я, в таком случае, просто отказываюсь от обновлений WP и пусть меня заклюют апологеты кодекса WordPress. Дело в том, что тенденции в дизайне и юзабилити сайтов не стоят на месте, постоянно меняются и развиваются. И рано или поздно вы придёте к решению сделать редизайн своего сайта, а заодно и усовершенствовать его функционал. Вот тогда и установите последнюю версию WP, шаблона и плагинов. Слишком уж много неожиданных неприятностей приносят обновления и СЛИШКОМ уж много времени и сил тратится на устранение этих неприятностей.

Итак, ещё один способ сохранить актуальный перевод (русификацию) плагина или шаблона в Вордпресс:

Для начала следует запретить автоматическое обновление Вордпресс. Дело в том, что начиная с версии 3.7 WordPress обновляется автоматически, без уведомления администратора сайта. Лично мне очень не нравится когда кто-то или что-то делает на моих сайтах без моего участия. Поэтому добавим в файл wp-config.php две константы:

Правдами и неправдами в интернете вы уже нашли необходимые вам файлы локализации или сделали нужный перевод самостоятельно в программе Poedit и сохранили файлы .po и .mo у себя на компе. Если нет — здесь я описала, как это сделать. Можно скачать готовые файлы русификации у меня здесь.

Теперь закачиваем эти файлы в директорию: /httpdocs/wp-content/languages/plugins. И обязательно повторить эту же процедуру в директории: /httpdocs/wp-content/plugins/woocommerce/i18n/languages.

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

Если не помогают вышеописанные процедуры, а такое бывает в платных шаблонах, то можно попробовать усилить все действия ещё одним способом:

Устанавливаем запрет на обновление перевода плагина. Для этого нужно создать новую (свою) директорию с переводом в папке wp-content/languages/ например папку woocommerce и поместить отредактированные переводы в нее. А в файл functions.php поместить следующий код, переопределяющий откуда брать перевод:

Файлы перевода должны быть названы также как и были в папке /plugins/ (woocommerce-ru_RU.po, woocommerce-ru_RU.mo).

По такому же принципу можно локализовать перевод шаблона (темы) для вашего сайта. Для этого надо создать в папке темы папку local-translate (с переводами) и прописать к ней путь в файле functions.php:

1 thought on “Как сохранить перевод (локализацию) плагинов и тем в WordPress”

Спасибо, очень помогли! Я уже голову сломал, постоянно слетали переводы. Буквально на следующий день после замены… Теперь держаться уже второй месяц. Как ни странно, тема адаптированная под woocommerce — storefront

Перевод плагинов WordPress на русский язык

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

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

Устанавливаем плагин русификации WordPress. Для этого через админку сайта заходим в раздел “Плагины” -> “Добавить новый” и ищем “Loco Translate“. Устанавливаем его и активируем.

После активации плагина слева в меню появится пункт “Loco Translate“:

Наводим курсор мыши на него и затем в раскрывшемся меню выбираем “Плагины“. Перед нами отображается список всех установленных нами дополнений WordPress:

Выбираем из списка тот, который мы хотим русифицировать. Для примера, я выберу AUS Telegram Bot Notifier, который позволяет автоматически постить все новые статьи WordPress в Telegram канал. Открывается следующее окно, где для создания нового языка перевода нужно нажать “Новый язык“:

А затем жмем “Пропустить шаблон“:

На следующем экране выбираем язык, на который мы хотим перевести. Указываем расположение файла русификации плагина. Думаю, что правильнее будет располагать все файлы русификации в системном каталоге WordPress.

Далее нажимаем кнопку “Создать перевод” и приступаем к русификации. Ну или к любомудругомуязыкуфикации 🙂

Здесь, в списке “Исходный код” выбираем не переведенную фразу. Далее в списке ниже видим вариант языка по-умолчанию (в данном примере EN). А еще ниже находится поле с языком, который мы выбрали (в моем случае – русский):

Указываем в поле “Русский перевод” перевод данного текста. Если видите какие-то незнакомые слова, то рекомендую установить в браузере расширение “Google Переводчик“. Процесс с ним пойдет куда быстрее. После перевода всех фраз, нажимаем кнопку “Сохранить” и оцениваем результат. Вот таким вот нехитрым способом можно русифицировать как плагины, так и шаблоны WordPress.

Перевод плагинов WordPress теперь не является для Вас проблемой. Был рад помочь. Если возникнут какие-то сложности или вопросы – обязательно пишите в комментарии, постараюсь оперативно дать ответит 🙂

Как локализовать тему для WordPress (или плагин)

Размещено в: 20.03.15 | пользователем Irena Domingo

В этой статье я расскажу и покажу вам, как можно перевести тему для WordPress (или плагин). Я настоятельно рекомендую использовать тему для WordPress, которая уже переведена на русский язык, однако, если выбранная вами тема не локализована, вы сможете перевести ее самостоятельно с помощью Poedit, Loco Translate или Codestyling Localization.

Оглавление

Введение

Темы и плагины содержат текстовые строки в своих файлах. Каждый раз, когда вы видите что-то похожее на:

в файле с расширением .PHP темы или плагина, то вам необходимо осуществить перевод такого элемента.

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

Примеры текстовых строк из пользовательской части:

  • “Search” (кнопка поиска);
  • “Nothing found” (отображается при пустом результате поиска);
  • “Read more” (отображает полное содержимое поста);

Примеры текстовых строк из администраторской части:

  • “Top primary menu” (текст в зоне виджетов)
  • “Ready to publish your first post?” (текст в панели управления WordPress)
  • “Number of posts to show:” (текст в панели управления WordPress)

Такие инструменты, как Poedit (который вы можете использовать совершенно бесплатно) или плагины, как Loco Translate или Codestyling Localization (также бесплатны) позволяют вам переводить текстовые строки из файлов системы WordPress. Существуют также и премиальные решения, позволяющие осуществлять перевод текстовых строк, например WPML.

В этой статье я покажу вам, как осуществляется перевод текстовых строк: при помощи Poedit, Loco Translate или плагина Codestyling Localization. Но для начала, давайте узнаем, что представляют собой файлы с расширениями .POT, .PO и .MO.

1. Текстовые строки: файлы .POT, .PO и .MO

Темы для WordPress локализуются при помощи GNU gettext framework. Этот способ используется как для самой системы WordPress, так и для всех тем и плагинов. Однако стоит учитывать, что разработчики не всегда предусматривают возможность локализации своих решений, поэтому всегда обращайте внимание перед загрузкой или покупкой темы (или плагина) на наличие такой возможности.

Большое количество тем для WordPress поддерживают многоязычность. В их состав должны входить соответствующие файлы с расширениями .POT, .PO и .MO.

1.1. Заготовка файла PO для перевода на новый язык (.POT)


Основным файлом для создания локализованных версий тем (или плагинов), является файл .PO. Обычно, файл .POT представляет собой перечень всех текстовых строк, используемых в файлах темы на английском языке.

Разработчики используют специальные инструменты, (такие, как gettext) которые производят анализ PHP источника и создают файл .POT, который содержит список всех текстовых элементов, требующих перевода.

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

Файл .POT можно найти в языковой папке темы или плагина.

Иногда языковая папка называется lang (а не language), также в зависимости от темы или плагина файл .POT может идти вместе с файлами .PO и .MO, и файлом-инструкцией README.TXT (инструкция для переводчиков).

1.2. Человеко-читаемый файл (PO) и бинарный файл (MO)

Файл .PO включает в себя оригинальные и переведенные текстовые записи в двух колонках. Это перевод, начатый кем-то до вас (автором темы, профессиональным переводчиком или пользователем темы для WordPress и др.), который может быть полностью завершенным.

Система WordPress не использует возможно, что ваша тема или плагин уже переведены на требуемый язык. Например, если вы видите файл ru_RU.po, то ваша тема уже переведена на русский язык. Перейдя по этой ссылке вы сможете ознакомиться с кодами стран и языков.

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

Файл .MO создается программой Poedit в автоматическом режиме, каждый раз, когда вы сохраняете файл PO. Единственное, что требуется от вас при работе с этими файлами – загрузить или обновить файл на сервере после внесения изменений в файл .PO.

2. Как перевести тему для WordPress (или плагин)

2.1. Программа Poedit

Poedit – это программное решение (доступно для Windows, Mac и Linux), которое вы можете использовать для перевода темы или плагина на требуемый язык. Вы можете загрузить эту программу совершенно бесплатно на сайте poedit.net.

У данной программы существует премиальная версия, добавляющая к Poedit дополнительные функции и инструменты, такие как выделенная служба поддержки WordPress, подсчет слов, запоминание внесенных значений и многие другие. Стоимость этой версии – $19.99.

1. Запустите Poedit и выберите File(Файл) > New Catalog from POT / PO file(Новый каталог из файла POT / PO)

2. Выберите файл .POT или .PO ил каталога темы или плагина, которые вам требуется перевести (вы сможете найти эти файлы в каталогеwp-content/themes/ваша тема/language/)

3. Вы увидите всплывающее окно, предлагающее выбрать язык локализации. Выберите ваш язык:

4. Нажмите OK, после чего Poedit присвоит нужное название файлам автоматически. Если вы выбрали русский язык (Россия), то это будет файл: ru_RU.po

5. Сохраните файл на своем компьютере

6. После этого вы можете приступить к переводу вашей темы или плагина. В левой части будет отображаться текстовый массив для перевода, в то время как, все переведенные элементы будут отображаться в правой части. В формах в нижней части экрана будут отображаться исходные тексты, варианты локализации и комментарии для переводчиков. Процесс перевода крайне прост – вам нужно выбрать слово или предложение, ввести свой вариант перевода и нажать кнопку “Validate (Подтвердить)”

Мастер Йода рекомендует:  Как защитить ПО от копирования и взлома

ЗАПОМНИТЕ:

  • Необходимо сохранять все специальные символы из оригинального текста при переводе (обратите внимание на скриншот выше);
  • Нет необходимости переводить все текстовые строки. Например, если вам не требуется переводить интерфейс администраторской части сайта.

7. Когда вы завершите работу, обязательно сохраните внесенные изменения. Программа Poedit автоматически создаст оба файла: .po и .mo. Вам останется только загрузить их в папку, содержащую языковые пакеты вашей темы.

2.2. Плагин “Loco Translate”

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

  • функционал редактора PO в рамках панели администратора WordPress;
  • возможность создания и изменения языковых файлов прямо в каталогах темы или плагина;
  • экспорт текстовых строк;
  • компилирование файлов MO;
  • создание резервных копий файлов PO

2.3. Плагин “Codestyling Localization”

(Этого плагина уже не существует.)

Другим популярным решением является плагин “Codestyling Localization“. Вы можете управлять локализациями и вносить все необходимые изменения в файлы .PO и .MO, прямо через панель управления WordPress.

Codestyling Localization позволяет производить анализ файлов-источников и может использовать Microsoft Translator API или Google Translate API в процессе перевода (инструкции для плагина).

Тем не менее, если вы являетесь продвинутым пользователем компьютера, то я настоятельно рекомендую использовать программу Poedit для перевода ваших тем и плагинов на русский язык. Это может казаться немного сложнее, но при этом вам не потребуется установка и настройка еще одного плагина.

(9 votes, average: 4,78 out of 5)

Polylang — плагин для мультиязычных сайтов на нескольких языках в WordPress

В последних реализациях мультиязычных сайтов на WordPress я использую именно этот модуль. По сравнению с обозреваемым ранее плагином WPML он мне кажется более доступным для понимания и легким в работе. В принципе, похожее мнение о нем встречал в разных подборках/обзорах на аналогичные решения. Недавно внедрил Polylang на еще один проект и просто в восторге! Да, тут есть свои определенные нюансы (о которых поведаю ниже), но в целом продукт очень толковый. Разумеется в посте идет речь о бесплатном варианте (не премиальной версии).

Оглавление:

Основная задача плагина Polylang – реализация мультиязычности в Вордпресс CMS. Не следует путать это с переводом шаблона на русский, т.к. это немного другая история — здесь пользователь получает доступ к сайту в WordPress на нескольких языках и может читать/видеть тексты на том, который лучше ему подходит. Данная фишка применима больше к крупным международным/туристическим порталам или веб-проектам, ориентированным под страны с многоязычным населением.

С помощью модуля:

  • Вы можете легко переводить заметки, страницы, категории/теги, меню либо создавать их с нуля, выбирая одну из доступных локалей.
  • Поддерживается любое количество языковых версий, в том числе и письмо справа налево.
  • Доступна обработка пользовательских типов записей (таксономий), разных форматов постов, RSS-фидов и базовых виджетов.
  • При создании новых переводов постов все категории/метки автоматически копируются.
  • Адрес альтернативных версий веб-сайта может формироваться с помощью дополнительного параметра в URL (например «/en/») либо реализовываться на субдомене.
  • Переключение языков реализуется через виджет, функцию или в меню.

Премиальная сборка предлагает еще несколько опций, но мне всегда хватало бесплатных.

Кстати, на официальном сайте в разделе поддержки найдете полезную документацию: вопросы-ответы, разработчикам, с чего начать, продвинутые советы, инфу о совместимости с WooCommerce и др. Если описания рабочего процесса ниже вам будет недостаточно и/или нужно будет реализовать задачи посерьезнее – рекомендую туда заглянуть.

Установка и настройка Polylang для WordPress

Ищите модуль по названию в WP-админке или скачивайте отсюда. В данный момент у него более 400тысяч загрузок и почти максимальная оценка (850 юзеров поставили ему 5-рку). Единственное, что может слегка смущать – наличие около сотни багов, над которыми разработчики активно трудятся. Критичных ошибок пока не встречал.

Алгоритм работы следующий:

1. После активации модуля переходим в раздел “Languages”, где выбираем одноименный подпункт меню. Здесь надо создать базовый язык по умолчанию. Для этого в первом параметре “Choose a language” достаточно выбрать нужное значение из списка, и все опции автоматически будут установлены.

Так как это первая наша запись, то значение “Order” (порядок языковых версий) будет установлен в ноль. Осталось только кликнуть по кнопке “Add new language”.

2. Сразу после добавления базовой локали в админке появится следующее сообщение:

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


3. Раз уж нам надо сделать многоязычный сайт в WordPress, то без (как минимум) еще одного дополнительного языка нам не обойтись. Выполняете такую же процедуру как и на первом шаге – переходим в “Languages” и в выпадающем списке находим нужное нам значение. Внимание! В данном случае параметр “Order” меняем на единицу (двойку, тройку и т.д., для каждого следующего объекта).

4. Теперь переходим в раздел настроек плагина “Settings”, где находим пункт “URL modifications”. В моем случае нужно было сделать классический вариант URL’а по типу:

  • Базовая версия — https://название_сайта.ru/pro-nas/
  • Английская: https://название_сайта.ru/en/about-us/

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

  • Оставляем по умолчанию вариант с директорией в URL-линке.
  • Избавляем от приставки language в адресе + убираем отображение идентификатора локали по умолчанию.
  • На главной в URL не выводится название страницы, а только языковая версия.
  • Сохраняем все настройки.

Переключатель языков в Polylang – виджет и функция

Требуемый нам виджет называется «Language Switcher». Выглядит он следующим образом.

Содержит такие настройки как:

  • отображение выпадающим списком (dropdown);
  • вывод текстовых названий локалей;
  • показ соответствующих флажков;
  • скрытие текущего языка;
  • скрытие вариантов, где нет перевода.

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

Функция pll_the_languages

В ее параметрах указываются разные аргументы, для которых вы ставите значения 1 или 0, отвечающие за срабатывание или отключение опции (1 – да, 0 – нет):

  • dropdown – показ в виде dropdown списка;
  • show_names – вывод названий языков;
  • display_names_as – отображение локалей как “имени” или “slug”;
  • show_flags – выводить флаги или нет;
  • h >Самый популярный пример использования функции:

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

Заменяем стандартные иконки-флаги на свои

Для использования своих иконок вместо стандартных нужно:

  1. Сохранить изображения в формате по типу “en_US.png”, то есть его название должно соответствовать локали (для украинской версии это просто — uk.png). В качестве расширений файлов допускаются: PNG, SVG, JPG.
  2. Далее создаете на FTP в директории wp-content новую папку /polylang куда и заливаете все эти иконки флажков.
  3. Затем заходите в админку в раздел “Languages” – “Settings”, где открываете пункт настроек “URL modifications” и просто сохраняете их, ничего не изменив.

На этом все. Из дополнительных подсказок/советов:

  • Создавать свою директорию /wp-content/polylang/ нужно дабы после обновления плагина изображения не перезаписались базовыми по умолчанию. Хотя, если вы используете дочернюю тему, то как я понял, картинки загружать в /polylang/flags/ вполне реально.
  • Кастомные флажки работают только во фронтенде, в админке – нет.
  • Для определения размеров SVG файлов нужно юзать фильтр pll_custom_flag (в других случаях достаточно подправить CSS):

add_filter( ‘pll_custom_flag’, ‘pll_custom_flag’, 10, 2 ); function pll_custom_flag( $flag, $code ) < $flag['url'] = "http://mysite.com/wordpress/wp-content/polylang/<$code>.svg»; $flag[‘w ] = 22; return $flag; >

Создание переводов на разные языки

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

Строчные параметры

Они находятся в разделе плагина под названием “Strings translations”. Как я понимаю, сюда входят некоторые базовые системные значения + «вкрапления» из других модулей: заголовок, архивы, главная, ошибка 404, формат даты и т.п.

Если посмотреть на мой пример на скриншоте выше, то там часть фраз импортирована из Yoast SEO. Судя по всему, разработчики плагинов могут как-то юзать эту фишку для организации лучшей совместимости с Polylang.

Переводы страниц/постов

Тут все достаточно наглядно и интуитивно понятно. Переходите к списку всех записей и в самом конце каждой строки увидите наличие тех или иных локализаций.

  • галочками отмечается наличие текста на нужном языке;
  • нажимая на иконку “+” (плюс) вы создаете новый перевод;
  • иконка “карандаша” – редактирование.

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

Тут аналогично требуется кликнуть по иконке с “+”, после чего откроется новое окно для создания записи. Она будет привязана в качестве перевода оригинальной как только вы нажмете «Опубликовать».

Важно! В бесплатной версии плагина Polylang в WordPress настройках недоступно указание одинаковых URL двум элементам! То есть вы можете создавать только разные URL-адреса для вебстраниц. Хотя с другой стороны по SEO так, в принципе, и советуют делать.

Перевод шаблонов

В некоторых из них можно провернуть прием, аналогичный предыдущему пункту: то есть сначала выбираете нужный язык в верхней горизонтальной панели, а затем заходите в раздел админки «Внешний вид» — «Настроить». Если фишка не сработала, попробуйте специальное решение на GitHub которое называется “Add Polylang to WordPress Customizer” и добавляет выбор локали в инструмент настройщика шаблона.

Однако лично я комбинировал два других подходов:

  • Непосредственно в самих файлах макета использовал условный оператор IF и функцию pll_current_language(), которая отдает двухбуквенный slug текущего установленного языка.
  • Также создал новые блоки виджетов а затем в них добавлял соответствующий контент (как показано ниже).

Логично, что в первом случае у вас все данные “зашиты” в шаблон, и пользователь не сможет их легко менять в панели управления (в отличии от второго подхода). Иногда для решения задачи хватает и одного метода… Либо пробуйте скрипт с GitHub.

Виджеты, плагины, графика и др.

В этом подразделе приведу инфу по разным более мелким вопросам.

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

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

3. Иногда приходится делать локализацию изображений дабы они корректно срабатывали для каких-то специфичных плагинов или тем. Если перейти в «Медиабиблиотеку», то там увидите такие же элементы управления, как и для страниц/заметок.

Важно! Теоретически, если перейти в параметры “Settings” для Polylang, то можно отключить локализацию изображений на сайте. Лично у меня эта фишка не сработала при решении одной определенной задачи – попробуйте, может в вашем случае получится.

Дополнительные фишки плагина Polylang


Напоследок еще пару советов, помогающих сделать мультиязычный сайт на нескольких языках в WordPress с применением данного решения:

  • Во-первых, если вы использовали ранее WPML, то есть специальное решение для перехода к рассматриваемому модулю – называется оно “WPML to Polylang”.
  • Когда кто-то заходит на определенную версию сайта, например, английскую (en), то в следующий раз юзеру она сразу будет открываться автоматически. Опять же в “Settings” видел параметр “Detect browser language” – можно попробовать его выключить.
  • Что касается совместимости с WooCommerce, то в некоторых местах советуют премиальный официальный аддон. Бесплатные альтернативы я пока что не искал.

Итого. В общем, достаточно много инфы получилось собрать про настройку Polylang. Как по мне, это реально один из самых топовых плагинов для мультиязычного сайта в WordPress. Его описание в репозитории показывается достаточно много активных багов/правок, но пусть вас это не смущает – работа над ними активно ведется. По функциональности все реально круто + наглядно, что тоже немаловажно. Конечно, платная сборка обладает некоторыми дополнительными крутыми функциями, но пока мне и обычная вполне подходит.

Если у вас ест что добавить или вопросы – пишем под постом.

Очередной блог фрилансера

коротко и полезно о веб-разработке

WordPress. Как сделать блог многоязычным

Начиная вести свой блог, я твердо решила никогда не писать обзорных статей о плагинах к WordPress. На это было несколько причин: во-первых об этом и без меня достаточно пишут, во-вторых, разобраться с плагином сможет практически любой пользователь. Да и к тому же, меня не особо интересовала эта область. Но правила на то и существуют, чтобы их иногда нарушать.

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

Установка плагина

Для того чтобы добавить дополнительные языки для нашего блога, мы будем использовать плагин WPML Multilingual CMS, который позволяет не только русифицировать все тексты на сайте, но и перевести шаблон, а также элементы навигации. Так что с его помощью, мы сможем создать, полноценный сайт на разных языках. Он гарантированно работает до версии wordpress 2.8.4, но обязательно потребует наличие PHP5 на вашем сервере. Итак, скачиваем плагин, устанавливаем его, как обычно (распаковываем в папку wp-content/plugins) и активируем.

После активации плагина, в панели управления появится дополнительный блок управления плагином WPML:

Перейдите на вкладку Overview в блоке WMPL, здесь вам понадобится установить первоначальные настройки. Вы увидите две группы настроек, содержащие несколько разных секций. Мы не будем сейчас останавливаться на них подробно, в данный момент нас интересует первая секция под названием Languages. Здесь вам понадобится назначить доступные для сайта языки. Нажимайте кнопку «configure languages»:

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

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

Локализация контента

Итак, вышеприведенных шагов достаточно, для того, чтобы можно было создавать записи уже на двух языках. В нашем примере, у нас уже есть традиционная запись «Привет, мир», с русским текстом. И если вы все сделали правильно, вот так будет выглядеть вкладка «Редактировать записи», в Панели управления:

Кнопка в виде плюса, одновременно сообщает нам, что запись еще не переведена на английский язык, и позволяет добавить перевод. Нажав на нее, вы увидите обычную форму добавления новой записи, за исключением небольшого блока “Language” слева, этот блок будет информировать вас о текущем языке и переводе к записи.

Здесь можно смело переписать нашу запись на английском языке. Я использовала для перевода, переводчик Google, поэтому за качество не ручаюсь.

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

Теперь, можно полюбоваться на полученный результат, вот так выглядит оригинал статьи в моем блоге:

А если воспользуемся переключателем, то он загрузит нам эту же версию страницы, но на английском языке:

Страницы локализуются точно также, я добавила одну страницу «о блоге»:

и ее локализованный вариант «about»:

Обратите внимание, что в английском варианте, рядом со ссылкой «главная», появилась надпись «No categories». Это потому, что я пока не добавила перевод рубрики «новости», в панели управления рубриками. Сделать это очень просто. Заходите на страницу редактирования рубрики, и в блоке language нажимаете ссылку add:

А дальше по аналогии с записями, добавляете английское название и сохраняете. Затем нужно отредактировать наш перевод, для того, чтобы назначить ему новую рубрику. Точно также как рубрики, локализуются метки записи, я не буду на этом отдельно останавливаться, думаю, вы вполне разберетесь самостоятельно.

Локализация комментариев

WPML предлагает весьма интересную схему локализации комментариев, которую проще всего будет объяснить на примере.

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

Эту статью прочитала одна из ваших читательниц, и оставила комментарий на английском языке:

Когда вы зайдете в Панель управления, вы обнаружите новый комментарий, но не на английском языке, для вас он будет переведен на русский:

Вы ответите комментатору на русском языке:

А ваш ответ, добавится на английском языке.

То есть фактически, вы можете говорить с читателями на их родном языке.

Как же это происходит?

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

С другой стороны, когда вы публикуете ответ пользователю, ваш ответ может быть переведен профессиональным переводчиком, и будет звучать так, как будто вы на самом деле владеете иностранным языком. И вот за эту услугу, уже придется заплатить, эта услуга стоит около 0.07$ за слово.

Для того чтобы активировать локализацию комментариев, вам понадобится отметить соответствующие пункты в меню WPML – comments translations, а также зарегистрироваться в сервисе ICanLocalize, что можно сделать прямо из панели администрирования в разделе WPML – Pro translation:

Локализация темы

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

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

Хорошим примером, здесь могут служить темы, входящие в состав WordPress, по умолчанию. А определить готов ли ваш шаблон к переводу очень просто: достаточно взглянуть на то, как оформлены текстовые строки, такие как: «автор», «комментарии», «читать далее» и другие. Если вы видите обычный текст, без использования php-функции gettext , то вам не повезло – и придется добавлять ее вручную.

WPML предлагает два способа перевода шаблона, с помощью готового .mo -файла или вручную, с помощью плагина, но независимо от выбранного способа локализации, вам прежде всего нужно все-все текстовые строки шаблона заключить внутрь функции gettext . Например, строчку «Автор», идущую перед именем автора, следует записать так:

А текст, выводящийся в php-функциях, например, надпись «Редактировать», следующим образом:

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

Перевод темы с помощью плагина

Итак, переходим на страницу WPML – Theme Localization, и указываем, что мы будем переводить тему с помощью WMPL:

Все очень просто, после того, как мы заключили все текстовые строки шаблона в функцию gettext , нажимаем кнопку «Scan the theme for string», и плагин просканирует все файлы темы, найдет строчки, которые нужно перевести, и отобразит их в таблице, выше.

После того, как вы увидите найденные строки, нажимайте кнопку «View strings that need translation», и добавляйте по очереди перевод для каждой строки:


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

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

Перевод темы с помощью файла .mo

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

Чтобы использовать перевод с помощью файла .mo , выберите пункт «Using a .mo file in the theme directory». Все, что вам потребуется указать – это название текстового домена для вашей темы.

Как я уже упоминала, когда тема создается правильно, все текстовые строки заключены в вызов функции gettext . Каждый вызов этой функции содержит два аргумента – строку, которая должна быть переведена, и второй аргумент, под названием Текстовый домен. Этот второй аргумент определяет, что все текстовые строчки темы, принадлежат ему. Вам нужно будет ввести значение текстового домена в соответствующем поле, чтобы WPML мог загрузить необходимый файл с переводом.

Оформление переключателя

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

Для начала давайте уберем существующий переключатель языков, это делается в меню WPML – Languages

Выбираете из списка none, и сохраняете.

Получение списка доступных языков

Функция icl_get_languages() используется для получения списка переводов для любой страницы. Пример использования:

Параметр skip_missing говорит функции, как выводить языки, не имеющие перевода. Вы вернемся к нему, чуть позже.

Эта функция возвращает массив с определенным набором элементов, для каждого языка. Например, для WordPress-сайта, запущенного на Английском, Французском и Итальянском, массив будет выглядеть следующим образом:

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

  • active: Это текущий активный язык (только один язык является активным)
  • native_name: Имя языка (не переводится)
  • translated_name: Имя языка, переведенное на текущий, активный язык
  • country_flag_url: URL PNG-картинки в виде флага, отображающей язык
  • url: Ссылка на перевод, выполненный на этом языке

Обработка отсутствующих переводов

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

Если указать ’skip_missing=1′ , эти языки просто не будут выводиться. Если значение параметра skip_missing , установить в 0 , будут выведены все доступные языки сайта.

Использование функции в шаблоне

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

Примеры PHP-функций, представленных ниже, должны быть распложены в файле functions.php (который расположен в папке с темой).

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

Что делает функция:

  1. Получает список языков от WMPL — $languages = icl_get_languages(’skip_missing=1′);
  2. Проверяет, доступен ли перевод для текущей записи — if(1
  3. Создает вывод, пропуская активный в данный момент язык — if(!$l[‘active’]) .
  1. Сообщения заключены в функцию gettext . Это очень важно, поскольку это сообщение, добавленное к каждой записи, будет отображаться на правильном языке — __(‘Эта запись также переведена на:’);
  2. Имена языков выводятся на основе переведенных названий. Это гарантирует правильное отображение имени языка: $l[‘translated_name’]

Вот такой у нас получился результат:

Чтобы включить это сообщение в каждую запись, добавьте вызов функции icl_post_languages() , в файле single.php.

Список языков с флагами

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

Эта функция выполняет следующее:

  1. Если существует хотя бы один перевод, создает DIV и открывает внутри него маркированный список
  2. Просматривает каждый язык и добавляет его в список
  3. Если текущий язык не является активным в данный момент, также добавляет ссылку на страницу с этим языком
  4. Добавляет флаг для языка
  5. Добавляет оба названия языка, настоящее и переведенное, если они отличаются

Кроме самой функции, нам понадобится добавить немного CSS, для нормального отображения нашего списка языков:

В результате у нас получился вот такой переключатель:

Чтобы добавить его в свою тему, добавьте вызов функции languages_list_footer , в файле footer.php (или в любом другом месте вашего шаблона) следующим образом:

Обратите внимание: вы легко можете изменить горизонтальный переключатель языков, на вертикальный. Просто удалите из CSS строчку display: inline .

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

Рассказать друзьям

Понравилась статья? Лучший способ сказать спасибо — поделиться ссылкой в социальных сетях:

Руссификация шаблона WordPress с помощью плагина Codestyling localization

Ранее мы рассмотрели способ перевода темы WordPress на русский язык с помощью PoEdit. Но есть и более удобный метод перевода, используя плагин Codestyling localization. Он позволяет осуществлять перевод прямо из-под админки, без применения внешнего редактора. Скачиваем, устанавливаем, активируем плагин. Заходим в Консоль-Инструменты-Локализация, выбираем вкладку Темы.
В появившемся окне, выбираем тему, которую необходимо перевести на другой язык, жмем Добавить новый язык. В новом окошке, прокруткой, находим Русский язык, выбираем его и жмем создать po-файл. В результате видим, у нас появился новый язык — Русский, кликаем Сканировать. В новом окне, опять нажимаем сканировать, после окончания сканирования, жмем завершить. После этого выбираем редактировать и видим такую картину, в левой колонке список фраз темы на английском языке, которые мы будем последовательно переводить на русский язык. Для этого жмем кнопку Редактировать, расположенную напротив фразы. По завершению перевода, обязательно генерировать mo-файл. Проверяем странички нашего блога и видим, что тема переведена на русский язык. Если, где обнаружим ошибку или не переведенные слова, то процедуру нужно повторить повторно, для того, чтобы быстро найти нужную фразу, удобно пользоваться формой поиска. Плагин Codestyling localization для скачивания

Также читайте:

3 комментария Руссификация шаблона WordPress с помощью плагина Codestyling localization

ох ёёёё спасибо огромное! единственный полейзный плагин в wordpress

вы не подскажите, что делать, если при нажатии на сканирование. выдаёт следующую информацию об ошибке: CodeStyling Localization — Ошибка доступа
You are trying to rescan files which expands above your PHP Memory Limit at NaN MB during the analysis.
Please enable the low memory mode for scanning this component.

Вы включили low memory mode, как это предлагается в сообщении об ошибке?
Он включается так — вверху, слева, надо поставить галочку.

Мастер Йода рекомендует:  Как уменьшить необходимость вручную изменять код темы вашего WordPress - сайта
Добавить комментарий