Подробная инструкция по созданию мультиязычного сайта на Joomla 4/5: установка языков, настройка языковых плагинов, настройка меню и модулей для переключения языка, а также советы по управлению стилями шаблона для каждого языка.
Расширения для многоязычности
Список расширений ядра Joomla для реализации многоязычности:
- Система - Фильтр языка (плагин)
- Плагин для фильтрации контента сайта в зависимости от языка. Это первостепенное расширение, которое необходимо активировать для реализации мультиязычности.
- Система - Подмена кода языка (плагин)
- Плагин для обеспечения подмены кода языка в HTML-разметке страницы сайта для улучшения SEO. Предположим, для французского языкового пакета fr-FR необходимо реализовать сценарий, при котором поисковые системы должны считать страницу сайта предназначенной для франкоязычной аудитории Канады. Добавьте код fr-CA в поле fr-FR, и плагин будет «на лету» осуществлять подмену кода языка.
- Многоязычные связи (компонент панели управления)
- Компонент для управления многоязычными связями, который становится доступен после включения плагина Фильтр языка. Упрощает создание и редактирование версий элементов для альтернативных языков.
- Состояние многоязычности (модуль панели управления)
- Модуль для отображения информации о состоянии параметров многоязычности в позиции Status. Информация выводится в модальном окне при клике по модулю.
- Переключение языков (модуль сайта)
- Модуль для отображения списка языков контента при использовании системы многоязычности. При клике по соответствующему языку происходит переключение.
- Демо-данные - Многоязычный сайт (плагин)
- Плагин, который предоставляет демо-данные для создания многоязычного сайта. На работающем сайте этот плагин нужно выключить и забыть о нём.
Установка языков
После того как вы определились с набором необходимых языков, их нужно установить.
Автоматическая установка
- Перейдите в Система → Установка → Языки.
- Установите необходимые языки, нажимая на кнопку Установить.
Ручная установка
- Скачайте языковые пакеты с официального сайта Joomla Language Packages.
- Загрузите и установите файлы через Система → Установка → Расширения.
- Опубликуйте загруженный язык в Система → Управление → Языки контента.
Настройки языка
Для перехода к настройками языка перейдите в Система → Языки контента → [Нужный язык].
Как правило, здесь можно всё оставлять по умолчанию, однако для альтернативного языка может потребоваться изменить Назние сайта и значение метатега Description, это делается во вкладке Параметры.
Языковые плагины
Для корректной работы мультиязычного сайта требуется настроить и опубликовать соответствующие системные плагины Joomla.
- Перейдите в Система → Управление → Плагины.
- Найдите и включите плагины:
- Система - Фильтр языка
- Система - Подмена кода языка
Система - Фильтр языка
После включения данного плагина настройки по умолчанию обеспечивают нормальную работу мультиязычности сайта.
- Язык для посетителей
- Язык сайта или язык браузера. Определяет, какой язык будет применен для посетителей сайта: язык сайта по умолчанию, либо автоматически определять его на основе настроек браузера пользователя.
- Автоматическое переключение языка
- Эта опция позволяет менять язык контента на сайте автоматически, если пользователь меняет язык сайта на другой (влияет на отображение на главной странице).
- Связи элементов
- Активация опции задействует компонент Многоязычные связи, позволяющий устанавливать связи между различными элементами контента на различных языках.
- Добавление метатега alternate
- Активирует добавление метатега alternate для пунктов меню, которым установлены связи. Данный тег указывает поисковым роботам, что у страницы есть альтернативная версия на другом языке.
- Добавление значения x-default
- Если пользователь не использует язык, представленный на сайте, он будет направлен на версию сайта, установленную в опции Язык для x-default.
- Язык для x-default
- Выбор языка по умолчанию, который будет использоваться, если язык пользователя не соответствует ни одному из установленных.
- Удаление кода языка из URL
- Включение этой опции уберет языковой префикс для языка сайта по умолчанию, например: web.site/en. Для всех остальных языков префикс останется. Желательно оставлять префикс и для версии сайта по умолчанию, это улучшает SEO и более очевидно указывает пользователям, что сайт мультиязычный.
- Время жизни cookie
- Срок действия cookie для языка: можно выбрать, чтобы они истекали либо по окончании сеанса, либо через год.
Система - Подмена кода языка
Если версия вашего сайта ориентирована на конкретный регион, в этом плагине Joomla можно задать код языка для этого региона, что улучшит видимость сайта в поисковых системах. Если такая задача не стоит, то данный плагин настраивать не следует.
Установка языка элементам контента
После включения плагина Фильтр языка на страницах редактирования элементов контента Joomla станет доступна опция Язык.
По умолчанию для всех элементов опция Язык имеет значение Все, что делает эти элементы доступными для всех языков, поэтому первым делом необходимо назначить язык существующим элементам. Сделать это можно быстро, используя функцию Пакетная обработка.
- Перейдите к списку элементов (материалов, категорий или пунктов меню).
- Отметьте все элементы, для которых в дальнейшем потребуется создавать связанные элементы на другом языке/языках.
- В панели инструментов кликните Действия → Пакетная обработка.
- В опции Установить язык выберите нужный язык (если элементы на русском, то Russian) и нажмите Выполнить.
- Теперь все эти элементы будут доступны, если на лицевых страницах включен соответствующий язык (с помощью модуля Переключатель языка, или автоматически, в зависимости от настроек плагина Фильтр языка).
Многоязычные связи
После установки языка уже существующим элементам контент необходимо создать версии этих элементов для альтернативных языков. Для этого предусмотрен компонент Многоязычные связи, который позволяет редактировать контент двух версий элемента на одной странице.
- Перейдите в Компоненты → Многоязычные связи.
- В фильтре выберите Тип контента и Язык.
- Из появившегося списка элементов кликните по тому, для которого хотите создать связанный элемент на другом языке.
- На странице редактирования связи в опции Цель выберите язык, для которого создаётся альтернативный элемент контента.
- Заполните контент альтернативного элемента и сохраните.
Также быстро перейти к созданию многоязычной связи для элемента можно, воспользовавшись кнопкой Связать элемент, доступной в панели инструментов на странице редактирования элемента:
Просматривать установленные связи и менять связанные элементы можно на странице редактирования элементов во вкладке Связи:
Модуль переключения языка
Для того, чтобы пользователи смогли выбирать нужный язык на лицевых страницах, необходимо создать соответствующий модуль.
- В Контент → Модули сайта создайте модуль Переключение языков.
- Настройте и опубликуйте модуль.
Модули сайта для разных языков
Для модулей сайта так же можно определять язык, для которого они должны быть задействованы. Кроме этого в настройках модулей можно настраивать привязку к определённым пунктам меню.
Стили шаблона для языков
Если на сайте не используется стандартный шаблон Cassiopeia, возможно потребуется создать и настроить отдельный стиль шаблона для каждого языка. Это позволит точно контролировать отображение элементов сайта для разных языков. В частности это актуально для шаблонов, работающих на фреймворке Helix Ultimate, в которых вывод главного меню и копирайтов регулируется в настройках стиля.
Обязательно укажите, для каких страниц/пунктов меню привязывается тот или иной стиль шаблона Joomla.
Состояние многоязычности
Для контроля состояния многоязычности в панели управления Joomla предусмотрен специальный модуль, отображаемый в области заголовка. При клике по нему появляется модальное окно с соответствующей информацией. После того, как настроите многоязычность, обязательно воспользуйтесь этой функцией.
Упоминаемые термины:
Joomla, Админка, Компонент, Модуль, Плагин, Расширение, Стиль шаблона, Шаблон, Ядро, Языковой пакет, SEO, Куки, Внешний интерфейс, Cassiopeia, Helix Ultimate