Подробная инструкция по созданию мультиязычного сайта на Joomla 4/5: установка языков, настройка языковых плагинов, настройка меню и модулей для переключения языка, а также советы по управлению стилями шаблона для каждого языка.

Расширения для многоязычности

Список расширений ядра Joomla для реализации многоязычности: 

Система - Фильтр языка (плагин)
Плагин для фильтрации контента сайта в зависимости от языка. Это первостепенное расширение, которое необходимо активировать для реализации мультиязычности.
Система - Подмена кода языка (плагин)
Плагин для обеспечения подмены кода языка в HTML-разметке страницы сайта для улучшения SEO. Предположим, для французского языкового пакета fr-FR необходимо реализовать сценарий, при котором поисковые системы должны считать страницу сайта предназначенной для франкоязычной аудитории Канады. Добавьте код fr-CA в поле fr-FR, и плагин будет «на лету» осуществлять подмену кода языка.
Многоязычные связи (компонент панели управления)
Компонент для управления многоязычными связями, который становится доступен после включения плагина Фильтр языка. Упрощает создание и редактирование версий элементов для альтернативных языков.
Состояние многоязычности (модуль панели управления)
Модуль для отображения информации о состоянии параметров многоязычности в позиции Status. Информация выводится в модальном окне при клике по модулю.
Переключение языков (модуль сайта)
Модуль для отображения списка языков контента при использовании системы многоязычности. При клике по соответствующему языку происходит переключение.
Демо-данные - Многоязычный сайт (плагин)
Плагин, который предоставляет демо-данные для создания многоязычного сайта. На работающем сайте этот плагин нужно выключить и забыть о нём.

Установка языков

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

Автоматическая установка

  1. Перейдите в СистемаУстановкаЯзыки.
  2. Установите необходимые языки, нажимая на кнопку Установить.

Обратите внимание!
Если языковые пакеты не скачиваются автоматически, их можно установить вручную.

Ручная установка

  1. Скачайте языковые пакеты с официального сайта Joomla Language Packages.
  2. Загрузите и установите файлы через СистемаУстановкаРасширения.
  3. Опубликуйте загруженный язык в СистемаУправлениеЯзыки контента.

Настройки языка

Для перехода к настройками языка перейдите в Система → Языки контента → [Нужный язык].

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

Языковые плагины

Для корректной работы мультиязычного сайта требуется настроить и опубликовать соответствующие системные плагины Joomla.

  1. Перейдите в СистемаУправлениеПлагины.
  2. Найдите и включите плагины:

Система - Фильтр языка

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

Язык для посетителей
Язык сайта или язык браузера. Определяет, какой язык будет применен для посетителей сайта: язык сайта по умолчанию, либо автоматически определять его на основе настроек браузера пользователя.
Автоматическое переключение языка
Эта опция позволяет менять язык контента на сайте автоматически, если пользователь меняет язык сайта на другой (влияет на отображение на главной странице).
Связи элементов
Активация опции задействует компонент Многоязычные связи, позволяющий устанавливать связи между различными элементами контента на различных языках.
Добавление метатега alternate
Активирует добавление метатега alternate для пунктов меню, которым установлены связи. Данный тег указывает поисковым роботам, что у страницы есть альтернативная версия на другом языке.
Добавление значения x-default
Если пользователь не использует язык, представленный на сайте, он будет направлен на версию сайта, установленную в опции Язык для x-default.
Язык для x-default
Выбор языка по умолчанию, который будет использоваться, если язык пользователя не соответствует ни одному из установленных.
Удаление кода языка из URL
Включение этой опции уберет языковой префикс для языка сайта по умолчанию, например: web.site/en. Для всех остальных языков префикс останется. Желательно оставлять префикс и для версии сайта по умолчанию, это улучшает SEO и более очевидно указывает пользователям, что сайт мультиязычный.
Время жизни cookie
Срок действия cookie для языка: можно выбрать, чтобы они истекали либо по окончании сеанса, либо через год.

Система - Подмена кода языка

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

Установка языка элементам контента

После включения плагина Фильтр языка на страницах редактирования элементов контента Joomla станет доступна опция Язык.

По умолчанию для всех элементов опция Язык имеет значение Все, что делает эти элементы доступными для всех языков, поэтому первым делом необходимо назначить язык существующим элементам. Сделать это можно быстро, используя функцию Пакетная обработка.

  1. Перейдите к списку элементов (материалов, категорий или пунктов меню).
  2. Отметьте все элементы, для которых в дальнейшем потребуется создавать связанные элементы на другом языке/языках.
  3. В панели инструментов кликните Действия Пакетная обработка.
  4. В опции Установить язык выберите нужный язык (если элементы на русском, то Russian) и нажмите Выполнить.
  5. Теперь все эти элементы будут доступны, если на лицевых страницах включен соответствующий язык (с помощью модуля Переключатель языка, или автоматически, в зависимости от настроек плагина Фильтр языка).

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

Многоязычные связи

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

Внимание!
Компонент Многоязычные связи становится доступен после включения плагина Фильтр языка с включенной опцией Связи элементов.

  1. Перейдите в Компоненты Многоязычные связи.
  2. В фильтре выберите Тип контента и Язык.
  3. Из появившегося списка элементов кликните по тому, для которого хотите создать связанный элемент на другом языке.
  4. На странице редактирования связи в опции Цель выберите язык, для которого создаётся альтернативный элемент контента. 
  5. Заполните контент альтернативного элемента и сохраните.

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

Также быстро перейти к созданию многоязычной связи для элемента можно, воспользовавшись кнопкой Связать элемент, доступной в панели инструментов на странице редактирования элемента:

Просматривать установленные связи и менять связанные элементы можно на странице редактирования элементов во вкладке Связи:

Модуль переключения языка

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

  1. В КонтентМодули сайта создайте модуль Переключение языков.
  2. Настройте и опубликуйте модуль.

Модули сайта для разных языков

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

Внимание!
Если на сайте используется Advanced Module Manager, то в этом случае потребуется добавлять язык в условия показа модуля.

Стили шаблона для языков

Если на сайте не используется стандартный шаблон Cassiopeia, возможно потребуется создать и настроить отдельный стиль шаблона для каждого языка. Это позволит точно контролировать отображение элементов сайта для разных языков. В частности это актуально для шаблонов, работающих на фреймворке Helix Ultimate, в которых вывод главного меню и копирайтов регулируется в настройках стиля.

Обязательно укажите, для каких страниц/пунктов меню привязывается тот или иной стиль шаблона Joomla.

Состояние многоязычности

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