8 июля 2013

Как сделать сайт Вордпрес мультиязычным

Данное решение подойдет только для тех, кто использует wordpress, в качестве основы сайта. Весь необходимый функционал предоставляет плагин qTranslate. Русский файл перевода уже включён в последние версии плагина qTranslate, но по неизвестным причинам, его нет в списке.

Заходим в Настройки → Языки (Settings → Languages) и вводим следующие данные:

  1. Language Code — ru
  2. Flag — ru.png
  3. Name — Русский
  4. Locale — ru_RU
  5. Date Format — d.m.y
  6. Time Format — %I:%M %p
  7. Not Available Message — Sorry, this entry is only available in %LANG:,: and %.

Нажимаем «Добавить язык». После этого можно установить языком по умолчанию «Русский».

Когда перейдем на страницу редактирования записи, то вероятнее всего увидите следующее сообщение:

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.

Это сообщение оповещает нас о том, что плагин не протестирован на текущей версии WordPress. Чтобы избавиться от него, необходимо заменить в qtranslate.php:

define('QT_SUPPORTED_WP_VERSION', '3.4.2');

на

define('QT_SUPPORTED_WP_VERSION', '3.5.1');

Элементы дизайна

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

В ситуации с меню, можно создать в Дизайн → Меню. Два разных меню и выводить их в зависимости от языка:

Регистрируем в functions.php наши меню:

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

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

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

Конфликт с плагином All in One SEO Pack

Использование плагина в сочетании с All in One SEO Pack может привести к проблеме дублирования заголовков сайта. Для этого необходимо в functions.php

// Enable qTranslate for WordPress SEO
 function qtranslate_filter($text) {
 return __($text);
 }
 add_filter('wpseo_title', 'qtranslate_filter', 10, 1);
 add_filter('wpseo_metadesc', 'qtranslate_filter', 10, 1);
 add_filter('wpseo_metakey', 'qtranslate_filter', 10, 1);
?>

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

2 комментария

  1. Андрей

    Здравствуйте.
    Подскажите пожалуйста, как мне сделать сайт объявлений на вордпресс. Нужно чтобы можно было настроить поддомены для регионов. (чтобы присвоить в яндексе регион). Вот нашел одну доску объявлений http://moskva.biglus.com/ с регионами, подскажите какой шаблон или плагин тут используется, нужно именно, чтобы поддомены работали как в указанном сайте. Я находил плагин для создания поддоменов, но там только для категорий, тоесть из категорий создаются поддомены, а мне так не нужно.

    • Александр Бизиков

      Андрей, добрый день!

      Для расположения WordPress сайта на поддомене вида site.example.com есть два способа:
      Установить WordPress сайт на поддомене или установить на example.com мультисайт WordPress. О том как установить сайт в режиме мультисайт, можно почитать в этой статье.

      Теперь про объявления. Рекомендую использовать готовую платную тему предназначенную для создания досок объявлений. Не скачивайте ворованные темы, в них могут быть вирусы и другие неприятные вещи, которые поспособствуют взлому вашего сайта.

      Из платных тем для объявлений могу посоветовать тему Classifieds. Еще много тем можно найти на themeforest.net по ключевому слову classified

🔒 Обсуждение закрыто