Мультиязычный сайт на WordPress (обновлено)

26.11.2019 | Написал

Для создания мультиязычного веб-сайта на WordPress я использую бесплатную версию плагина Polylang. Настраивается он легко и это я не буду расписывать. Но есть моменты, на которых стоит остановится.

Первый момент – плагин не переводит меню. Чтобы меню таки стало мультиязычным, нам нужно создать в консоли столько меню, сколько у нас языков. Дальше в месте, где мы его выводим, используем следующее условие:

<?php if( 'ru' == pll_current_language() ) : 
 // вызываем руское меню ;
 else :
 // вызываем меню для второго языка ;
 endif; ?>

Второй момент – переключение между языками. Можно, конечно, использовать виджет, а можно вставить вот такую функцию в любом месте темы:

<ul class="lang-menu">
<?php pll_the_languages(array('show_flags' => 0, 'show_names' => 1, 'display_names_as' => 'slug' ));?>
</ul>

Для выделения текущего языка добавляем стили:

.lang-link .current-lang a {color:#fff;}

Третье – перевод отдельных фраз в шаблоне. Здесь мы будем использовать встроенную возможность Polylang переводить строки. По умолчанию это название сайта, описание и форматы времени и даты. Но можно добавить свои строки, которые будут переводиться при переключении языка.
Для этого сначала заведем строку в functions.php темы:

// добавляем строки в полиленг
add_action('init', function() {
  pll_register_string('Описание строки', 'Строка с текстом');
});

После этого в консоли в Languages – Strings translations добавляем тексты с переводом.
Выводим в шаблоне вставкой:

<?php pll_e('Строка с текстом'); ?>

Чтобы вывести ссылку на мультиязычную версию определенного поста, делаем так:

<a href="<?php echo get_permalink(pll_get_post(8)); ?>"><?php echo get_the_title(pll_get_post(8)); ?></a>

Еще один интересный плагин для создания мульязычного сайта на WordPress – WPGlobus.
Там, в принципе, вполне вменяемый виджет переключения языков, его можно добавить через консоль в нужное место. Но бывает, есть необходимость вставить его непосредственно в файлы темы. В этом случае добавляем, например, в header.php вызов виджета таким образом:

<?php the_widget( 'WPGlobusWidget' ); ?>

При такой вставке, виджет вставится с параметрами по умолчанию. Изменить их мы можем, поправив файл wp-content/plugins/wpglobus/includes/class-wpglobus-widget.php. Там в р-не 49-53 строк есть условие типа вывода модуля.

Комментарии читателей статьи "Мультиязычный сайт на WordPress (обновлено)"

Нет комментариев.

Добавить комментарий

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.