Создание мультиязычных сайтов на CMS WordPress

26.11.2017

Статья в процессе написания.
Начинал писать ее в 2013 году, потом все менялось и постоянно удалялись черновики.
Сейчас хочу привести статью по локализации шаблонов к какому-то полноценному завершенному виду.
А пока что буду добавлять сюда информацию отрывочно, чтобы потом из обрывков мыслей сложить полноценную инструкцию.

Для начала в файле functions.php указываем папку с локализованными переводами и даем понять, что шаблон мультиязычен:

add_action( 'after_setup_theme', 'my_theme_setup' );
function my_theme_setup(){
    load_theme_textdomain( 'crea', get_template_directory() . '/languages' );
}

В шаблоне в папке /languages должны находиться файлы с переводами в формате .po и .mo

В самом шаблоне статические тексты оборачиваем в функцию _e() или __()

<?php _e('Contact us', 'crea'); ?>

Так же можно (но не нужно), вместо функций _e() или __() использовать функции pll__(), pll_e() вместе с pll_register_string() и переводить фразы в админке WordPress на странице настроек Polylang. Документация.

В хеде используем определение языка для html

<html lang="<?php echo pll_current_language('slug'); ?>">

Для перевода шаблона из админки подойдет плагин Loco Translate

Полезные ссылки по локализации шаблонов на CMS WordPress:

Localization

Полезная инфа:

Оставить комментарий