Сделать сайт на WP многоязычным

29 Ноя 2015

 

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

Мы изучали этот момент, набили собственные шишки, и остановились на использовании плагина: qTranslate-Х

Автор: qTranslate Team

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

qtranslate

получаем такую картину

q2

Заходим в настройки:
1.  по умолчанию у нас остался русский язык (правильно)
2. УРЛ тоже стоит правильный, и мы его не трогаем
3.

Дополнительные вкладки пока не трогаем.

Вариант №1. Работа с виджетом

Если в теме не используются динамические меню, то соответственно (Внешний вид -> Меню -> Переключатель языка) — будет не доступным. Читайте как сделать так, чтоб виджеты стали отображаться в админке сайта.

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

1. надо активировать это в functions.php

/**
* Register our sidebars and widgetized areas.
*
*/
function arphabet_widgets_init() {

register_sidebar( array(
‘name’ => ‘Home right sidebar’,
‘id’ => ‘home_right_1’,
‘before_widget’ => ‘<div>’,
‘after_widget’ => ‘</div>’,
‘before_title’ => ‘<h2 class=»rounded»>’,
‘after_title’ => ‘</h2>’,
) );

}
add_action( ‘widgets_init’, ‘arphabet_widgets_init’ );

2. Добавляем вывод переключения языков в нужное место сайта. Обычно в header.php

Вставляем наш  волшебный код:

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

<?php if(get_locale() == ‘ru_RU’) { ?>
<!— ru —>
<h2>Новости</h2>
<?php } else { ?>
<!— en —>
<h2>News</h2>
<?php } ?>

Вариант №2. Добавляем все вручную

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

И подсказка на всякий случай если надо вывести вместо текста — флаги

<?php echo qtrans_generateLanguageSelectCode(‘image’); ?>