Мультиязычность сайта может быть реализована средствами самой CMS Joomla, без использования сторонних расширений.
Сайты созданные на CMS Jomla могут быть мультиязычными, т. е. использовать несколько языков для представления материалов сайта пользователям. Мультиязычность сайта может быть реализована несколькими способами. Один из них - средствами самой CMS Joomla, без использования сторонних расширений.
Сторонние разработчики расширений для CMS Joomla предлагают, как минимум, два принципиально отличающихся варианта создания мультиязычности сайта. Можно, например, использовать компонент FaLang версий Core (бесплатный) или Pro (по подписке) и переводить с основного языка на другие вручную и ли использовать расширения a-ля Google Translate, для автоматического перевода.
Отдельный, третий вариант, можно организовать при использовании компонента CCK Seblod, полностью меняющего структуру организации материалов на сайте и по своему решающего задачу мультиязычности. О сторонних расширениях для использования на мультиязычных сайтах будут написаны отдельные материалы.
Этот материал посвящен обзору возможностей предоставляемых CMS Joomla, но информация так же относится и к другим способам организации мультиязычности на сайте.
Главное меню: «Расширения» - «Языки»
Прежде всего, на мультиязычном сайте должны быть установлены необходимые языки. Языки устанавливает и производит основные настройки разработчик сайта и дальнейшее расширение (настройку на еще один язык) лучше так же поручить разработчику. Пользователю сайта обязательно нужно понимать как устроена система мультиязычности, чтобы уметь изменять, в случае необходимости, некоторые настройки, не обращаясь к разработчику.
Для работы с мультиязычностью сайта на CMS Joomla предназначен раздел сайта «Менеджер языков», доступ к которому возможен при помощи главного (верхнего) меню «Расширения» - «Языки» панели управления CMS Joomla. Так же доступ к «Менеджеру языков» возможен из меню в левой части главной страницы панели управления сайта.
Вкладка «Установлен»
На вкладке «Установлен» менеджера языков CMS Joomla находится таблица со списком установленных на сайте языков. Английский как правило присутствует всегда, установленный по умолчанию. Другие языки установлены в соответствии с задачами сайта.
На вкладке «Установлен» менеджера языков CMS Joomla производится выбор языка сайта «по умолчанию», раздельно для административной стороны (панель управления) и фронтальной (сайт). Выбор стороны сайта производится в поле с выпадающим списком (по умолчанию «Сайт»), расположенным над столбцом «Заголовок».
В верхней части страницы, на вкладке «Установлен» менеджера языков CMS Joomla расположены кнопки:
«По умолчанию» - переключает язык по умолчанию. Язык нужно выбрать в списке (радио кнопка слева от наименования языка).
«Установить язык» - нажатие на кнопку отправляет в раздел управления расширениями сайта, где можно установить новый язык.
«Переключение языка» - кнопка доступна при выборе «Панель управления» и предназначена для мгновенного переключения административной части сайта на выбранный язык.
Остальные сведения о языках (тег, версия, автор, id и др.) на вкладке «Установлен» носят информационный характер.
Вкладка «Языки контента»
Вкладка «Языки контента» менеджера языков CMS Joomla имеет значительно больше настроек, которые необходимо знать пользователю и оказывает прямое влияние на жизнь сайта.
Здесь так же находится таблица со списком установленных на сайте языков. Состав языков аналогичный предыдущей вкладке, но языками контента можно управлять (удалять, снимать с публикации …). Для этого предназначены кнопки в верхней части страницы:
«Создать» - открывается окно для создания языка контента. Создать язык контента можно только для установленного на сайте языкового пакета.
«Изменить» - открывается окно для редактирования параметров языка контента.
«Опубликовать», «Снять с публикации» - переключатели статуса языка контента. Неопубликованный язык контента недоступен с фронтальной стороны сайта, т.е. на него нельзя переключится при помощи модуля переключения языков.
«В корзину» - удаляет языка контента из списка, с возможностью восстановления. Для окончательного удаления необходимо очистить корзину.
«Установить язык» - нажатие на кнопку отправляет в раздел управления расширениями сайта, где можно установить новый язык. Прежде чем создать язык контента, языковой пакет нужно установить на сайт.
Находящаяся на этой странице кнопка «Инструменты поиска» - предназначена для вывода дополнительных полей со списками выбора параметров поиска нужного языка контента. Актуально при большом количестве языков сайта.
Менеджер языков: Изменить язык контента.
При нажатии на наименование языка контента (столбец «Заголовок») откроется страница для редактирования языка контента со следующими полями:
«Заголовок»— понятное разработчику и пользователю сайта наименование языка контента.
«Заголовок на родном языке»— здесь все понятно (Русский, English…)
«Тег языка»— общепризнанный символ для обозначения языка
«Код языка для URL»— идентификатор языка в адресе сайта (www.mysite.com/ru/)
«Префикс изображения» — визуальное, общепринятое обозначение языка. Выглядит как миниатюрное изображение флага страны, с которой ассоциируется язык, с учетом тега языка.
«Состояние» — опубликован или нет язык контента
«Доступ» — уровень доступа к языку контента, как правило Public
«Описание» — краткое примечание к языку контента, если необходимо.
Данные в полях на вкладке «Подробно» не подлежат изменению (кроме описания) после создания языка контента, при создании сайта, во избежание сбоев мультиязычности сайта CMS Joomla. Но возможно Вам понадобится изменить данные в полях на двух других вкладках.
Вкладка «Метаданные»
На вкладке два поля - «Мета-тег Keywords» и «Мета-тег Description». Информация о ключевых словах и описание сайта внесенные в эти поля для каждого языка контента замещают аналогичную информацию для сайта в целом, внесенную в разделе «Система: Общие настройки»
Вкладка «Название сайта »
На вкладке одно поле - «Название сайта». Название сайта внесенное в это поле для каждого языка контента замещает аналогичную информацию для сайта в целом, внесенную в разделе «Система: Общие настройки»
Вкладка «Переопределение констант»
Вкладка «Переопределение констант» менеджера языков CMS Joomla это продвинутый уровень обеспечения мультиязычности сайта.
При организации мультиязычности средствами CMS Joomla или с помощью компонента FaLang в использовании переопределения констант, как правило, необходимость не возникает.
Этот раздел актуален при переопределении структуры вывода контента CMS Joomla при помощи компонента CCK Seblod и создания мультиязычности и только для разработчика сайта или очень продвинутого пользователя.
Еще одна ситуация, при которой может понадобится переопределение констант - если разработчик какого-то модуля или плагина не предусмотрел перевод на язык, который вам нужен. (RU и EN есть, а FR нет). В этом случае на сайте вы увидите для этого языка вывод значений в виде языковых констант.
Решить эту проблему можно двумя путями.
Первый, путь разработчика - создаем на сервере языковой файл (.ini) для нужного языка (берем английский, копируем, переименовываем для французского и переводим значения языковых констант).
А второй, путь продвинутого пользователя - воспользоваться функцией переопределения констант. Идем в админку. Верхнее меню: «Расширения» - «Языки» - «Переопределение констант». Откроется пустая страница с сообщением «Ничего не найдено».
Далее в выпадающем списке выбираем нужный язык (язык должен быть установлен на сайте и для него создан и опубликован «язык контента»). У вас есть возможность выбора стороны сайта, на примере FR:
- Français (fr-Fr) - Панель управления, для переопределения констант админки
- Français (fr-Fr) - Сайт, для переопределения констант фронт-енда
Если вы выберете для работы административную часть сайта, то созданная константа может одновременно быть использована и для фронта.
Форма создания/редактирования языковой константы
После выбора значения в поле выпадающего списка вы увидите таблицу со списком констант и их значений. Если констант много, список будет многостраничным. Справа в верху - поле выбора числа констант на странице. Так же в верхней части поле для поиска конкретной константы или её значения.
Список будет пуст, если создается первая константа.
Нажимаем зеленую кнопку «Создать» в верхней части страницы. Откроется форма (пример для админки):
Поля, которые необходимо заполнить:
Языковая константа * - вводим значение языковой константы
Текст - значение для языковой константы
Для всех областей - это поле присутствует только в форме для констант админки. Если отметить это поле, то будет создана (обновлена) также и константа для фронта
Не забудьте сохранить изменения. Редактирование константы производится в аналогичной форме. Она откроется если щелкнуть мышкой по имени константы.
Примечание:
При создании новой константы производится занесение ее имени и значения в языковой файл (.ini) расположенный в специальной папке overraides. Для констант админки папка находится по адресу /administrator/language, для констант фронта - language. При редактировании происходит изменение данных в этих файлах.
Основной материал этой статьи относится к ЛЮБОМУ способу реализации мультиязычности на сайте (за исключением автоперевода а-ля «Google Translate»).
В следующей статье опишу особенности построения структуры сайта для реализации мультиязычности именно средствами CMS Joomla.