От одного клиента поступил заказ – сделать двуязычный сайт. Структура сайта вполне можно было реализовать на движке WordPress, но как быть с многоязычностью? Погуглив, нашел замечательный плагин qtranslate. Легкий, удобный, функциональный! Решил поделиться опытом его установки и настройки – может, кому-нибудь будет полезным.
Итак, качаем плагин с сайта и стандартно заливаем в папку с плагинами на хостинге. Сразу в папке wp-incledes создаем подпапку languages и даем ей права 777. Затем идем в панель управления WordPress и активируем плагин. Теперь можно приступать к его настройке.
У меня по умолчанию русский язык в плагине установлен не был. Ставил «ручками». Для этого на странице настройки плагина в разделе «Add Language» вбил в строки следующие данные:
- Language Code – ru
- Flag – ru.png
- Name – Russian
- Date Format – пусто
- Time Format – пусто
- Not Available Message - Sorry, this entry is only available in %LANG:, : and %
И нажал «Add Language». Язык добавился. Теперь в сводной таблице сделал нужные языки активными, и один из них сделал «языком по умолчанию» - Default.
Кстати, не язык у меня хоть и русский, но флаг установлен казахский, так как сайт рассчитан на аудиторию из этой страны.
Далее, на той же странице настройки плагина, поставил галочки в полях «Hide Untranslated Content» и «Detect Browser Language». Первая опция отвечает за то, чтобы в списке постов выводились только те, которые имеют перевод на выбранный язык. Вторая опция позволяет автоматически определять, какой язык в браузере посетителя определен как дефолтный, и, в зависимости от этого, показывать ему версию сайта на том или ином языке. Другими словами, предположим, что у вас сайт на двух языках – русском и английском. Русский язык у вас в плагине установлен как дефолтный. К вам приходит посетитель, у которого в браузере основной язык – русский. Он увидит ваш сайт на русском языке. Потом к вам придет пользователь с основным языком браузера – английским. Плагин сам подсуетиться, и пользователь сразу увидит английскую версию вашего сайта. А вот если к вам придет юзер с языком, например, немецким, то плагин продемонстрирует ему сайт на языке, который вы установили для него основным – т.е. на русском. Надеюсь, понятно :)
Идем далее. В настройках есть опция - Advanced Settings (Show). Кликаем на Show, получаем дополнительные опции настройки. Тут можно ничего не трогать, кроме двух пунктов.
URL Modification Mode – выберите, как страницы на разных языках будут отличаться друг от друга. Вариантов три:
- к каждой странице будет добавлено окончание типа ?lang=en (http://site.ru/hello.php?lang=en)
- будет добавлен префикс после домена (http://site.ru/en/hello.php)
- будет добавлен префикс до имени домена (http://en.site.ru/hello.php)
Что выбрать – решать вам. Мне понравился второй вариант.
И еще можно поставить галочку в «Hide URL language information for default language.». Если вы эту опцию активируете, что для языка, который вы выбрали «дефолтным», никакие префиксы и окончания добавляться не будут. Т.е. если сайт на трех языках – русском, немецком и английском, и русский – дефолтный, то адреса страниц при будут выглядеть так:
- http://site.ru/hello.php - на русском
- http://site.ru/en/hello.php - на английском
- http://site.ru/gr/hello.php - на немецком
А если вы эту опцию не активируете, то, соответственно, получите такой вариант
- http://site.ru/ru/hello.php - на русском
- http://site.ru/en/hello.php - на английском
- http://site.ru/gr/hello.php - на немецком
После выбора всех настроек не забудьте их сохранить, нажав клавишу «Save Changes»!
Комментариев: 4 RSS
1 Алексей 21-11-2012 13:58
Указанный вами сайт явно взломали - сплошные перенаправления на нехорошую страницу с рекламой и загрузкой трояноподобной программы (принудительно предлагает загрузить odnoclassniki.exe и ничего о Франции).
2 Administrator 21-11-2012 14:02
Это уже не моя версия сайта. Владельцы, видимо, его снова переделали. Спасибо за информацию, сейчас уберу ссылку со своего блога.
3 regedit 29-07-2014 20:34
Сделал всё как написано, но ничего не произошло, сайт не перевёл, как был русский - так и остался, что делать?!
4 Administrator 29-07-2014 22:26
Этот плагин не переводит сайт. После его добавления появляется функционал, который позволяет при создания записей вводить текст на нескольких языках - например, русском и английском. А затем пользователь может выбирать, на каком языке эти записи будут отображаться.