Как перевести плагин wordpress
Здравствуйте, уважаемые читатели моего блога!
Представляю вашему вниманию статью о том, как осуществить перевод плагинов wordpress на русский и не только.
Традиционно немного о предыдущих статьях.
В статьях Как создать плагин для Wordpress ( часть 1 ) и Как создать плагин для Wordpress ( часть 2 ), я детально рассказывал о создании своего плагина.
Но, логично если мы его создали, то вероятно нам захочется представить его не только русскоязычному населению, но и тем, кто живет за пределами 1/6 части суши.
Но, логично если мы его создали, то вероятно нам захочется представить его не только русскоязычному населению, но и тем, кто живет за пределами 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"

Нам предлагается выбрать язык НА КОТОРЫЙ! будем переводить.
В моем случае это English(United States) - информация взята из админ-меню, пункт "Настройки".
ОЧЕНЬ ВАЖНО! То значение которое в скобках.
Перейдем в пункт меню "Catalog->Properties".

Далее напишем имя нашего проекта, выберем кодировку 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

Добавим __().
Т.е. чтобы просканировалось все что в качестве аргументов этой функции.
И нажмем ОК.
Нажмем кнопку Update.
Появилось окно с нашими просканированными строками.
Внизу для каждой строки напишем ее перевод в пункте Translation.
И снова нажмем Save.
Автоматически в папке с нашим языковым и понятным файлом my_restrict-en_US.po, который понимаем мы, если открыть его в тектовом редакторе, сгенерировался файл my_restrict-en_US.mo, который понимает Wordpress.
И теперь у нас вместо русской строки "Для просмотра этой страницы залогинтесь!", появилась английская версия "Please LogIn!", которую мы написали в пункте Translation, напротив нашей строки. Ведь в моей версии Wordpress на английском. У вас может быть на русском или украинском или на любом другом.

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