Ноя
30

Перевод в WordPress с помощью gettext

Author admin    Category Полезное     Tags

Перевод темы WordPressТрадиционно для перевода текста в теме WordPress требуется отредактировать содержимое специального файла шаблона PO, использовав при этом программу Poedit или какой-нибудь подходящий плагин. Однако, что делать, если вам нужно быстро подправить всего несколько слов в шаблоне, и нет особо времени/желания для установки сторонних решений?

На помощь приходят функции и фильтры WordPress, что позволяют заменить любой текст, для которого доступна локализация в шаблоне. Имеется ввиду наличие специальных конструкций __( или _e( — без них данный метод не будет работать.

Допустим, вам нужно сделать частичный перевод темы WordPress на русский, заменив заголовок формы комментариев «Leave a Reply» на текст «Оставить комментарий». Для этого заходим в файл функций functions.php и размещаем следующий код:

add_filter('gettext', 'translate_text');
 add_filter('ngettext', 'translate_text');
 
function translate_text($translated) {
$translated = str_ireplace('Leave a Reply', 'Оставить комментарий', $translated);
return $translated;
}

При вызове данной функции фильтр заменит все вхождения «Leave a Reply» на указанный вами текст. Причем данный хак позволяет переводить и более одной фразы — просто добавляете новые строки $translated в функцию.

add_filter('gettext', 'translate_text');
add_filter('ngettext', 'translate_text');
 
function translate_text($translated) {
$translated = str_ireplace('Leave a Reply', 'Оставить комментарий', $translated);
$translated = str_ireplace('Подытог', 'Итого', $translated);
return $translated;
}

По второму примеру видите, что можно не только переводить тексты темы, но и заменять определенные уже локализованные элементы шаблона. Эта фишка оказалась очень полезной при работе с WooCommerce. Файлов локализации у этого модуля было несколько, пару часов пытался разобраться какой именно используется для отображения фразы «Подытог» — тщетно. Причем разные плагины и Poedit также не помогли с решением задачи, а правка шаблона напрямую, сами понимаете, не лучший вариант. Но данный хак с заменой слов отлично сработал! Автору решения респект. Выручил.

Иногда перевод темы WordPress с помощью gettext может сэкономить вам много нервов. Актуален, если нужно заменить несколько элементов, и у вас либо нет времени, либо не можете найти нужные файлы локализации. «Злоупотреблять» этим методом для перевода всей темы я бы не советовал.



Прокомментировать

Новые шаблоны и статьи

Рубрики

Популярные шаблоны

Мы помогаем детям


KosynokBannerNetwork