главная/Перевод темы WordPress на лету, смена локализации программно.

Перевод темы WordPress на лету, смена локализации программно.

Описание проблемы.

Допустим, у вас стоит плагин перевода wordpress на разные языки и вы хотите автоматически перевести сайт при клике на ссылку.

Вы уже сделали линки вида zalki-lab.ru/?lang=ru . Где в $_GET параметре передаете сокращение нужного вам языка. Так же у вас имеются сгенерированные mo и po файлы ( en_US.po ).

 

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

Код для перевода темы wordpress.

Переходим в файл functions.php вашего шаблона и в самый верх вставляем следующий код.

<?php
add_filter( 'locale','redefine_locale', 10 );
function redefine_locale( $locale ) {
$lang = ( isset( $_GET['lang'] ) ) ? esc_html( $_GET['lang'] ) : '';
switch ( $lang ) {
case 'en':
$locale = 'en_US';
break;
default:
$locale = 'de_DE';
break;
}
return $locale;
}

Подключение textdomain

Самое главное не забудьте убедится, что у вас также подключен textdomain.
load_theme_textdomain( ‘pr’, get_template_directory() . ‘/languages’ );