Мультиязычность joomla 3

Подготовка к мультиязычности

Самое первое что нужно сделать — это провести инвентаризацию сайта. Удалить всё ненужное, всё то что не используется или устарело.

Заодно сразу подумайте, как и где будут располагаться материалы на английском языке. Это будет одна-две категории или будет полная копия существующего сайта, только на английском.

Шаг 1. Создаём язык контента.

Переходим Менеджер расширений — Языки — Языки контента. Создать.

Указываем:

  • Заголовок и Заголовок на русском языке.
  • Тег языка: ru-RU
  • Код языка для URL, будет подставляться к адресу сайта, указываем — ru
  • Префикс изображения, выбираем тоже ru
  • Остальное подставляется автоматически.

На вкладке «Метаданные» можно указать мета теги description и keywords для всего сайта, когда он отображается на этом языке.
И также можно указать название сайта на этом языке. При переключении языка название сайта будет изменяться.

Шаг 2. Устанавливаем языки для категорий.

Для категорий, которые будут на русском ставим язык — русский. Для категорий на английском — английский.
Категории для материалов на английском можно сразу создать.

Шаг 3. Устанавливаем язык для материалов.

Для материалов на русском языке тоже изменяем язык со значения Все на Русский.

Это делаем через пакетную обработку материалов. Т.е. ставим галочки на всех материалах (либо по частям, если материалов много) и жмём вверху пакетная обработка.

Если вам нужно сделать копии существующих материалов на английском языке, то также выделяем все нужные материалы и через пакетную обработку копируем их в нужную категорию + сразу устанавливаем язык English.

Шаг 4. Создаём модуль переключения языков.

Идём в менеджер модулей и создаём новый модуль с типом Переключение языков.

В настройках модуля выбираем:

  • Выпадающий список — ставим да, если хотите его включить. Или оставляем нет, если хотите чтобы флаги языков показывались без выпадающего списка.
  • Включить изображения флагов — обычно принято включать.
  • Активный язык — можно включить, тогда к изображению выбранного языка будет добавляться свой класс и можно будет выделять этот пункт.
  • Показывать строкой — флаги языков будут выстроены в одну линию, иначе друг под другом.

Шаг 5. Включаем плагин мультиязычности.

Идём в плагины, фильтруем по типу System.

Находим плагин Система — Фильтр и настраиваем его.

настройки такие:

  • Выбор языка для новых посетителей — это значит каким образом система должна определять язык пользователя.
    Из настроек браузера или из настроек сайта по-умолчанию.
  • Автоматическая смена языка — язык будет автоматически изменяться в зависимости от настроек интерфейса сайта.
  • Связь элементов — включает связанные элементы. Например, если посетитель находится на статье №5, то при смене языка, он перейдёт на статью №5, только на английском языке.
    Если связи бы не было, то при смене языка, находясь на статье №5, посетитель бы попал на главную страницу.
  • Добавлять мета тег alternate — это используется для SEO, лучше пусть будет включено.
  • Add x-default Meta Tag — добавляет значение x-default к атрибуту hreflang, тоже используется в SEO
    И ниже выбирается язык сайта по-умолчанию. Т.е. главная версия сайта.
  • Удалять префикс языка — будет удалять из адреса страницы префикс, например site.ru/ru/ — в конце это префикс.
    Чтобы эта опция работала нужно включить SEF и .htaccess
  • Время жизни cookie — сколько хранить данные о выбранном языке посетителя.
    В течении сессии или год. Лучше выбрать в течении сессии.

Далее включаем плагин «Подмена языка».
Он нужен для подстановки языка в htm код страницы

Теперь трюк.

Шаг 6. Создаём «заглушку» меню.

а) Создаём меню, называем как нибудь и в нём создаём какой нибудь пункт меню, я например создал страницу поиска.

Это меню.

Это пункт-заглушка в нём, с типом — Форма поиска

В пункте меню устанавливаем Язык — Все.
Сохраняем и делаем этот пункт главной страницей сайта, кликая по звёздочке напротив.

Шаг 7. Изменяем язык для пунктов меню.

Идём в пункты меню, те которые для русского языка, выделяем все и через пакетную обработку изменяем язык на Русский.

Прим: если на вашем сайте много разных меню, то меняем их язык по очереди.

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

И лёгким движением мыши звёздочка превращается в флажок РФ)

Шаг 8. Создаём новое меню для английской версии сайта.

Его можно назвать как угодно, например MainMenu.

Русское меню у меня переименовано в Главное меню. Это чтобы не запутаться в них.

Далее в английском меню создаём первый пункт, который будет главным в английской версии сайта.
Не забывайте указать для него язык — English.

После сохранения, также жмём на звёздочку и делаем этот пункт главным в английской версии сайта.

После чего вместо звёздочки появится иконка с британским флажком.
И после этих манипуляций у вас меню будет такого вида, а в модуле переключения языков будет видно флажки для переключения языков.

Далее можете добавлять в английское меню новые пункты.

Но это ещё не всё.

Сейчас нужно пройтись по модулям и установить для них нужные языки.
При необходимости создать новые модули (или копии существующих) для английской версии сайта.

Кроме этого в каждом пункте меню нужно установить связи с аналогичными пунктами, но с другим языком.

Это поможет пользователям удобнее переходить на разные языковые версии, не теряя текущего положения на сайте.

Установить связи достаточно в одной языковой версии меню.
Т.е. связать английские пункты с русскими. И потом связывать русские пункты с английскими уже не нужно. Связи уже будут установлены.

Возможные ошибки.

The requested page can’t be found (404) — такая ошибка может появляться если вы создали новые меню для английского языка путём копирования русских пунктов.

В этом случае английские пункты меню будут вести на русские материалы, которые не должны быть доступны для английской версии.

Поэтому нужно зайти в каждый пункт меню и выбрать вместо русского материала — такой же, но английский.

Сайт будет двуязычным. Языки русский(ru) и английский(en). Joomla 3 у нас уже установлена так, как описано в статье «Установка Joomla 3». В процессе установки можно было сразу включить многоязычность.

Но мы этого не сделали и сделаем это сейчас. Войдём в административную часть сайта и для неё же включим модуль «Multilanguage status». Этот модуль предназначен для контроля настройки мультиязычности, мы будем использовать его, как подсказку. Переходим в «Расширения», «Менеджер модулей».

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

Включаем модуль «Multilanguage status» и видим, что в нижней панели вместо ссылки «Просмотр сайта» появилась ссылка «Мультиязычность». Кликаем на этой ссылке и получаем сообщение: «Ваш сайт не является мультиязычным». Что ж, продолжим. Вернём переключатель видимости фильтра менеджера модулей в значение «Сайт», чтобы впоследствии не было путаницы.

Переходим в «Менеджер плагинов». Нам нужно отобрать языковые плагины. Для этого в основной части окна, в поле поиск пишем «язык» и кликаем по кнопке «Искать».

Отобрались два плагина: «Система — Фильтр языка» и «Система — Подмена кода языка». Включаем оба.

Открываем плагин «Система — Фильтр языка» для редактирования и настраиваем его.

Рассмотрим настройки плагина.

  • Выбор языка для новых посетителей. Если выбрать «Язык сайта», то новые посетители будут видеть сайт на его основном языке. У многоязычного сайта один язык считается основным, используемым по умолчанию. Основной язык сайта мы определим позже. Если же выбрать «Настройки браузера», то будет предпринята попытка определить язык из настроек браузера пользователя. Если поддерживается такой язык, то новые пользователи будут видеть сайт в соответствии со своими языковыми настройками. Если сайт не поддерживает языковые настройки посетителя, то он будет отображён на языке по умолчанию.
  • Автоматическая смена языка. Эта опция будет автоматически изменять содержание сайта, в зависимости от языка, используемого в интерфейсе, при изменении языка сайта пользователем. Включаем.
  • Связь элементов. Этот параметр включает механизм использования связей элементов (статей, категорий, пунктов меню) при переключении сайта на другой язык. Включаем.
  • Удалять префикс языка по умолчанию. Если на сайте включено формирование ЧПУ (SEF), позволяет удалять из ссылок префикс для основного языка сайта. В чём суть? Допустим, есть многоязычный сайт mysite.ru, который поддерживает два языка: русский (ru)язык, он же основной и английский (en) язык. Если параметр «Удалять префикс языка» выключен, то адрес какой-нибудь страницы для русского языка выглядит так: mysite.ru/ru/mypage.html, а для английского так: mysite.ru/en/mypage.html. Перед именем страницы присутствует языковой префикс: или ru, или en. Так вот, чтобы отключить языковой префикс в ссылках для основного языка, и нужна эта опция. При её включении адрес страницы для русского языка, а он у нас основной, будет выглядеть так: mysite.ru/mypage.html. Включаем.
  • Время жизни Cookie. Определяет срок хранения языковых настроек.
  • Добавлять мета-тег ‘alternate’. Позволяет включить в заголовок добавление ссылок rel=’alternate’ для пунктов меню, имеющие связанные пункты меню в других языках. Включаем.

Сохраняем и закрываем плагин. Кликнем теперь на ссылке «Мультиязычность» в нижней панели админки Joomla.

Видим, что процесс пошёл, но есть еще, чем заняться. Во-первых, у нас пока не включен модуль переключатель языков, а во-вторых, у нас всего один язык контента. Язык контента не надо путать с языком сайта или языком админки. Давайте его установим. Переходим в «Менеджер языков» и в левой части окна выбираем «Языки контента». Видим, что английский язык уже есть.

По кнопке «Создать» добавляем новый язык контента. В нашем случае это будет русский. Вкладку «Подробно» заполняем следующим образом:

Давайте разберемся с настройками «Язык контента» подробнее:

  • Заголовок. Это название языка, которое отображается в списке языков контента. Можно указать на том языке, который вам наиболее удобен для администрирования. Заголовок будет показан только в админке сайта.
  • Заголовок на ‘Родном’ языке. Здесь указываем название языка контента на том языке, который описываем.
  • Тег языка. Указываем ru-RU. Первые два символа обозначают язык, последние два – страну. А где посмотреть теги для других языков? В самой же Joomla! Первый вариант, если языковый пакет не установлен для сайта и админки. Открываем «Менеджер расширений» и в левой части окна выбираем пункт «Установка языковых пакетов». В основном окне, в списке доступных языков находим желаемый и получаем нужную нам информацию в столбце «Подробности URL».

Второй вариант. Если языковый пакет уже установлен. Из статьи «Joomla 3 Структура каталогов» мы знаем, что в Joomla существует каталог «language». Он содержит подкаталоги для установленных языковых пакетов. Смотрим, как называется нужный подкаталог.

  • Код языка для URL. Указываем ru. Это значение префикса. См. настройку плагина «Система – Фильтр языка». Код должен быть уникален. Лучше указывать два символа по стандарту ISO 639.
  • Префикс изображения. В выпадающем списке выбираем ru. После этого справа от выпадающего списка появиться иконка, идентифицирующая выбранный язык. Файлы изображений и CSS файлы хранятся в папке /media/mod_languages/.
  • Поля Состояние и Доступ оставляем со значениями по умолчанию. Переходим на вкладку «Название сайта» и заполняем единственное поле. Сохраняем и закрываем настройку языка контента. Английский язык контента уже установлен и менять в нём ничего не нужно разве, что заполнить поле «Название сайта» на английском языке.

Теперь установим переключатель языка. Переходим в «Менеджер модулей» и создаём новый модуль.

В появившемся окне выбираем «Переключение языков».

Оставляем настройки модуля по умолчанию. В таком виде он будет отображаться в виде значков флагов.

Публикуем и сохраняем модуль в подходящей позиции шаблона. Но не торопитесь. Сейчас вы его не увидите на лицевой стороне сайта. Он появится позже, когда настройка многоязычности будет закончена.

Опять проверим статус мультиязычности.

Видим, что нам надо создать и опубликовать по главной странице для каждого языка. Этим и займёмся в следующей части.

Помните, что у нас вы можете не только купить готовый сайт или заказать его разработку, но и подобрать подходящий тариф поддержки сайта, заказать продвижение сайта в поисковых системах, а так же зарегистрировать домен в одной из двухсот доменных зон и выбрать недорогой тариф хостинга! Айтишник РУ

Об авторе:

Меня зовут Андрей Золкин. Из более, чем пятнадцати лет работы в сфере информационных технологий, десять лет работаю с системами, базирующимися на открытом исходном коде. На страницах сайта Aitishnik.Ru веду блоги по CMC Joomla и Debian GNU/Linux.

Ещё статьи о Joomla 3

    • Joomla 3. (часть 2)

      В первой части мы говорили о том, что такое Joomla и как работает эта CMS. Во второй части поговорим о том, какие сайты можно сделать на Joomla, каковы её возможности, чем отличается Joomla 3 от предыдущих версий и как в этих версиях не запутаться.Если говорить о возможностях, то на Joomla можно сделать…

    • Joomla 3 (часть 3)

      Продолжаем разговор. В первой части блога мы говорили о том, что такое CMS Joomla вообще и как она работает. Во второй части мы говорили о возможностях Joomla, об отличии Joomla 3 от предыдущих версий, а так же о нумерации версий этой CMS. Теперь…

    • Joomla 3. Общие настройки. Права и фильтры текста…

      Этой статьей заканчивается описание общих настроек сайта на Joomla 3. В предыдущих статьях было дано описание настроек, расположенных на вкладках «Сайт», «Система» и «Сервер». Теперь же рассмотрим оставшиеся настройки, расположенные на вкладках «Права» и «Фильтры текста». Эти…

    • Joomla 3. Первый вход. Админка и сайт

      В прошлый раз мы рассматривали установку Joomla 3. Надеюсь, это было легко и просто. Теперь, чтобы и дальше было так же просто, сделаем первый вход в административную часть Joomla, в общих чертах познакомимся с элементами управления, внесем некоторые изменения и зайдём на сайт с лицевой части. Для демонстрации возможностей, править будем…

    • Joomla 3. Мультиязычность. Многоязычный сайт ч.2…

      В первой части статьи мы сделали большую часть работы по созданию многоязычного сайта. Для правильной настройки мультиязычности мы использовали модуль «Multilanguage status». При последнем обращении он показал, что нужно создать по главной странице для каждого языка и опубликовать их. Продолжим и займёмся этим.

    • Локальный хостинг на XAMPP

      В предыдущих статьях мы разобрались с тем, что такое CMS Joomla, какие возможности она имеет, где её скачать и каковы системные требования Joomla. Теперь для установки и изучения этой системы управления содержимым мы организуем локальный хостинг. Конечно, можно установить …

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *