Translate

Как перевести плагин wordpress

Как перевести плагин wordpress

Здравствуйте, уважаемые читатели моего блога!

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

Традиционно немного о предыдущих статьях.

В статьях Как создать плагин для Wordpress ( часть 1 ) и Как создать плагин для Wordpress ( часть 2 ), я детально рассказывал о создании своего плагина.

Но, логично если мы его создали, то вероятно нам захочется представить его не только русскоязычному населению, но и тем, кто живет за пределами 1/6 части суши.

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

Ну-с, продолжим, как сказала мать сорока детей.

В плагине описанном в статье Как создать плагин для Wordpress ( часть 2 ), мы выводим сообщение посетителю, который незалогинился у нас на сайте ( страница запрещена к просмотру обычным посетителям ).

В коде есть такие строки


"<p>".__('Для просмотра этой страницы залогинтесь!', 'my_restrict')."</p>


Что это означает?

Строка внутри функции __()  будет переведена на язык сайта, который стоит в пункте админ-меню "Настройки" опция "Site Language".
Через запятую стоит название текстового домена, по которому будет найден перевод. Название произвольное, лишь бы совпадало с названием загружаемого функцией


add_action( 'plugins_loaded', 'true_load_plugin_textdomain' );

function true_load_plugin_textdomain() {
 load_plugin_textdomain( 'my_restrict', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
}


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

Теперь самое основное - нужно как-то реализовать перевод. Сам Вордпресс за вас этого не сделает. А кто?

Программа Poedit (скачать)!

После установки программы - запустим ее!

Выбрав в меню "File->New"

Как перевести плагин wordpress


Нам предлагается выбрать язык НА КОТОРЫЙ! будем переводить.

В моем случае это English(United States) - информация взята из админ-меню, пункт "Настройки".

ОЧЕНЬ ВАЖНО! То значение которое в скобках.

Перейдем в пункт меню "Catalog->Properties".

Как перевести плагин wordpress

Далее напишем имя нашего проекта, выберем кодировку UTF-8.
Нажмем "Save".
Программа по умолчанию поставит имя en.po,  вот здесь важно сохранить файл с именем в формате {наш текстовый домен}-{en_EN}.po.

В нашем случае имя будет my_restrict-en_US.po. Помните, что я говорил выше насчет "ОЧЕНЬ ВАЖНО! То значение которое в скобках".

Если имя будет my_restrict-en_EN.po, то нихрена у вас не заработает!



Перейдем к следующей закладке. Source paths

 Там где первый зеленый плюс, выберем файл, в котором у нас прописаны текстовые константы в таком формате

"<p>".__('Для просмотра этой страницы залогинтесь!', 'my_restrict')."</p>

в данном случае это наш plugin.php.

Далее посетим закладку Source keywords.

Выберем new item

Как перевести плагин wordpress


Добавим __().
Т.е. чтобы просканировалось все что в качестве аргументов этой функции.
И нажмем ОК.

Нажмем кнопку Update.

Появилось окно с нашими просканированными строками.


Как перевести плагин wordpress

Внизу для каждой строки напишем ее перевод в пункте Translation.

И снова нажмем Save.

Автоматически в папке с нашим языковым и понятным файлом my_restrict-en_US.po, который понимаем мы, если открыть его в тектовом редакторе, сгенерировался файл my_restrict-en_US.mo, который понимает Wordpress.

И теперь у нас вместо русской строки "Для просмотра этой страницы залогинтесь!", появилась английская версия "Please LogIn!", которую мы написали в пункте Translation, напротив нашей строки. Ведь в моей версии Wordpress на английском. У вас может быть на русском или украинском или на любом другом.

Как перевести плагин wordpress


Таким образом можно делать перевод кнопок, сообщений вашего плагина на любой язык, создавая новые файлы формата {наш текстовый домен}-{язык_ЯЗЫК}.po.

Спасибо за внимание!

Комментариев нет:

Отправить комментарий