SOFT
SPRINT

softsprint.net Shop

Несколько языков WordPress. Плагин qTranslate

Кратко расскажем о создании двуязычной темы на WordPress. За основу берём плагин qTranslate ( https://wordpress.org/plugins/qtranslate/ )
После установки вносим настройки, чтобы базовым был, например, русский язык. Пример настроек можем посмотреть, например, здесь: http://web-chitalka.com/wordpress/kak-sdelat-dvuyazyichnyiy-sayt-na-wordpress-legko.html

Далее обычный пользователь столкнётся с рядом проблем.

1) Для решения ошибки «The qTranslate Editor has disabled itself because it hasn’t been tested with your WordPress version yet. This is done to prevent WordPress from malfunctioning. You can reenable it by clicking here (may cause data loss! Use at own risk!). To remove this message permanently, please update qTranslate to the corresponding version.»
поменяйте строку в файле qtranslate.php на эту:

define('QT_SUPPORTED_WP_VERSION', $wp_version);

2) Если не работает визуальный редактор постов или страниц, можете заменить нужные файлы по подсказке: https://gist.github.com/warenhaus/10990386
Можете скачать готовый апдейт – скачать

3) Если работаете в режиме Текст (HTML), для написания контента сразу под английскую и русскую версию сайта следует использовать такую конструкцию:

[:eng]English text [:rus]Русский текст

4) Для изменения языка в названиях виджетов используем такую конструкцию:

EnglishРусский

Внимание: в Вашем случае вместо eng пишите en, а вместо rus пишите ru!

5) Если нужно динамически переводить текстовые блоки в теме, то используем такую конструкцию:

<?php if(get_locale() == 'ru_RU') { ?>
Русский текст
<?php } else { ?>
English text
<?php } ?>

6) Если нужно динамически выводить какой-либо функциональный элемент темы, например, меню, то можем пользоваться такой конструкцией (источник: http://bizikov.ru/2013/07/multilanguage-wordpress/):
Регистрируем в functions.php нужные меню:

if ( function_exists( 'register_nav_menu' ) ) {
  register_nav_menus(
    array('ru'=>__('RU Menu'),'en'=>__('EN Menu'),)
  );
}

Далее в админке WordPress наполняем эти меню и сохраняем. Для вывода меню, вставляем в нужном месте следующий код:

if(get_locale() == 'ru_RU') {
        wp_nav_menu(array('theme_location' => 'ru'));
    } elseif(get_locale() == 'en_US') {
        wp_nav_menu(array('theme_location' => 'en'));
    }

На сегодня всё))

P.S. Со времени написания статьи появился новый плагин qTranslate X (https://wordpress.org/plugins/qtranslate-x/). Благо, в нём ничего не нужно править на уровне кода, поскольку разработчики уже учли все баги оригинального qTranslate. От себя замечу один нюанс с выводом дат на страницах WordPress: в админке рекомендую отметить пункт “Преобразование Даты/Времени” – STRFTIME вместо даты с заменой форматов предопределенных для каждого языка.

Также на заметку следует взять следующий способ вывода текста в зависимости от языка:

<h1><?php _e('Все права защищены'); ?></h1>

 

4) Для изменения языка в названиях виджетов используем такую конструкцию:

EnglishРусский

Внимание: в Вашем случае вместо eng пишите en, а вместо rus пишите ru!

5) Если нужно динамически переводить текстовые блоки в теме, то используем такую конструкцию:

<?php if(get_locale() == 'ru_RU') { ?>
Русский текст
<?php } else { ?>
English text
<?php } ?>

6) Если нужно динамически выводить какой-либо функциональный элемент темы, например, меню, то можем пользоваться такой конструкцией (источник: http://bizikov.ru/2013/07/multilanguage-wordpress/):
Регистрируем в functions.php нужные меню:

if ( function_exists( 'register_nav_menu' ) ) {
  register_nav_menus(
    array('ru'=>__('RU Menu'),'en'=>__('EN Menu'),)
  );
}

Далее в админке WordPress наполняем эти меню и сохраняем. Для вывода меню, вставляем в нужном месте следующий код:

if(get_locale() == 'ru_RU') {
        wp_nav_menu(array('theme_location' => 'ru'));
    } elseif(get_locale() == 'en_US') {
        wp_nav_menu(array('theme_location' => 'en'));
    }

На сегодня всё))

P.S. Со времени написания статьи появился новый плагин qTranslate X (https://wordpress.org/plugins/qtranslate-x/). Благо, в нём ничего не нужно править на уровне кода, поскольку разработчики уже учли все баги оригинального qTranslate. От себя замечу один нюанс с выводом дат на страницах WordPress: в админке рекомендую отметить пункт “Преобразование Даты/Времени” – STRFTIME вместо даты с заменой форматов предопределенных для каждого языка.

Также на заметку следует взять следующий способ вывода текста в зависимости от языка:

<h1><?php _e('Все права защищены'); ?></h1>
CONTACT US
Cookies | Privacy Policy | Terms and ConditionsSoftSprint ©