softsprint menu Order

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

February 20, 2015 in 7:14 pm | wiki

Кратко расскажем о создании двуязычной темы на 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 на эту:

1
<!--:eng-->English<!--:rus-->Русский

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

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

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

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

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

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

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

1
2
3
4
5
if(get_locale() == 'ru_RU') {
        wp_nav_menu(array('theme_location' => 'ru'));
    } elseif(get_locale() == 'en_US') {
        wp_nav_menu(array('theme_location' => 'en'));
    }

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

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

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

1
define('QT_SUPPORTED_WP_VERSION', $wp_version);

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

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

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

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

 

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

1
2
3
4
5
6
7
8
9
10
<!--:eng-->English<!--:rus-->Русский/pre>
 
Внимание: в Вашем случае вместо eng пишите en, а вместо rus пишите ru!
 
5) Если нужно динамически переводить текстовые блоки в теме, то используем такую конструкцию:
<pre lang="php" line="1" escaped="true"><?php if(get_locale() == 'ru_RU') { ?>
Русский текст
<?php } else { ?>
English text
<?php } ?>

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

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

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

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

1
2
3
4
5
if(get_locale() == 'ru_RU') {
        wp_nav_menu(array('theme_location' => 'ru'));
    } elseif(get_locale() == 'en_US') {
        wp_nav_menu(array('theme_location' => 'en'));
    }

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

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

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

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

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

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

 

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

1
2
3
4
5
6
7
8
9
10
<!--:eng-->English<!--:rus-->Русский/pre>
 
Внимание: в Вашем случае вместо eng пишите en, а вместо rus пишите ru!
 
5) Если нужно динамически переводить текстовые блоки в теме, то используем такую конструкцию:
<pre lang="php" line="1" escaped="true"><?php if(get_locale() == 'ru_RU') { ?>
Русский текст
<?php } else { ?>
English text
<?php } ?>

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

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

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

1
2
3
4
5
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 вместо даты с заменой форматов предопределенных для каждого языка.

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

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

 

Let`s discuss

softsprint heart

Our contacts

Lviv, Ukraine
моб: +380 97 551 44 55
skype: softsprint.net

Say hello!