Оглавление
- Активация языковых плагинов
- Выставляем базовые настройки плагина
- Добавляем язык контента
- Установка пакета локализации
- Создаём структуру категорий для языков
- Назначение языка для главной страницы
- Создание новых меню, пунктов меню для каждого языка
- Создание страниц по умолчанию в каждом языковом меню
- Включаем модуль переключения языков
- Создание материалов
Основа многоязычности контента Joomla была заложена, начиная с линейки 1.6, после чего функционал усовершенствовался с выходом промежуточных версий. Следует отметить, что стандартный функционал Joomla 2.5 не предлагает универсального решения и имеет некоторые ограничения, однако на данный момент при помощи Joomla 2.5 можно добавить дополнительную языковую версию вашему сайту из «коробки».
При всех очевидных достоинствах, проблемы начинаются с правильной организации многоязычной структуры и настройки языков сайта. Ввиду особенностей настроек «с наскоку» многоязычность организовать, как правило, не удается, и возникают вопросы.
Данный урок поможет вам разобраться, как организовать многоязычность в Joomla 2.5.
Для работы потребуется скачать и установить необходимые пакеты локализации языков, которые будут использоваться на сайте. Пакеты локализаций на различные языки можно выбрать здесь, но лучше сразу взять и установить русскую локализацию Joomla.
1. Активация языковых плагинов
- Идите в Расширения > Менеджер плагинов;
- Воспользуйтесь фильтром для поиска языковых плагинов;
- Активируйте плагины нажатием на иконки с красными кружками. Либо можете выделить чекбоксы с плагинами и нажать на зеленую иконку «Включить» в верхнем правом углу;
- Иконки с красными кружками (обозначающие статус «Выключено») заменятся на зеленые как только плагины будут включены;
- Выберите плагин Система – Фильтр языка (Language Filter) и перейдите в режим редактирования настроек плагина.
2. Выставляем базовые настройки плагина
Можно включить режим выбора языковой версии для посетителей сайта и загружать язык по умолчанию, либо можно воспользоваться режимом определения страны посетителя по языку браузера и открывать сайт в нужной языковой версии.
3. Добавляем язык контента
Идём в Расширения > Менеджер языков.
Нажимаем в закладку «Содержимое» (Content tab)
Нажимаем в заголовок English (UK) для просмотра параметров языка по умолчанию.
- Заголовок = название языка появится в выпадающих списках при назначении языка объекту (материалу). Параметр Заголовок также будет использован во фронтэнд модуле переключения языков в случае, если в настройках указано не отображать изображения с флагами;
- Заголовок на "Родном языке" = заголовок на любом языке, удобном для администратора. Отображается в спике языков контента;
- Код языка для URL = Код (префикс) языка будет добавлен к URL сайта. Если режим ЧПУ включён, адрес будет выглядеть примерно так: http://your-site.ru/en/. Если ЧПУ отключено, суффикс &lang=en будет добавлен в конце ссылки. Обратите внимание на то, что код языка должен быть уникальным среди всех установленных языков;
- Префикс изображения = префикс файла с изображением флага - применяется в админ.панели и в фронтэнд модуле "Переключение языков" (настройка "Включить изображения флагов") Пример: если выбран префикс 'en', название файла с картинкой флага должно быть en.gif. Изображения и CSS для модуля "Переключение языков" находятся в папке media/mod_languages/. Администратор сайта может добавить любое изображение / флаг с любым префиксом. Пример: pt_br для бразильского флага (язык: португальский бразильский);
- Тег языка = Здесь вводим тег языка. Пример: en-GB для британского английского. Нужно указывать точный префикс для языка, который используется или будет использоваться;
- Статус = Статус языка контента: опубликован он или нет. Если он опубликован, язык появится в списке доступных языков во фронтэнд модуле "Переключение языков".
Настройки языка - закладки в правой части экрана
- Метаданные = Метаданные значения каждого используемого языка, заданные в мультиязычной конфигурации, переопределят метаданные из Глобальной конфигурации сайта;
- Название сайта = Перевод дефолтного (т.е. заданного по умолчанию) названия сайта, на нужный язык. Перевод названия сайта отобразится в Title при переключении на второй язык. Пример: язык по умолчанию - английский. Сайт называется так: Maine-coon cattery. В русской версии title сайта переводим как: кошачий питомник мейнкунов.
Примечание: изображения флага и CSS для этого модуля расположены здесь: media/mod_languages/. Мы можем добавить любое изображение или флаг с собственным префиксом. Пример: pt - языковой префикс бразильского португальского изображение будет бразильского флага, а для изображения португальского флага нужно указать префикс pg.
В этом случае необязательно иметь уже установленный языковой пакет - эту процедуру можно завершить позже. Мы можем заниматься наполнением сайта содержимым на определенном языке, даже не удосужившись установить последний. Процесс установки пакета локализации можно завершить в любое время, когда в этом возникнет необходимость.
Для языка по умолчанию эти настройки можно оставить пустыми. Название сайта будет взято из Глобальной Конфигурации.
А вот пример конфигурации русской локализации (язык контента):
Далее, пример настроек русской локализации:
Это переопределение названия сайта для русской версии.
После заполнения формы нажимаем Сохранить и закрыть.
Теперь в списке установленных языков появилась русская локализация. Удостоверьтесь, что язык активен - зеленый индикатор указывает на активное состояние языка.
4. Установка пакета локализации
- Официальные пакеты локализаций Joomla можно найти на специальной страничке Joomla Extension directory. Нам же нужно скачать русскую локализацию Joomla и устрановить ее;
- Установка пакета локализации происходит через менеджер расширений - как и любое расширение. Пакет локализации Joomla можно установить на любом этапе работы над сайтом. Однако новый язык начнет отображаться в менеджере языков только после установки;
- Не перепутайте пакет локализации с установочным дистрибутивом Joomla, русская локализация которого также доступна к скачиванию. Разница между ними в том, что в пакете локализации содержится перевод всех языковых констант (интерфейс, названия кнопок, системные сообщения и т.п.), а установочный пакет - это обычный дистрибутив Joomla, в который уже включена русская локализация, а также перевод демонстрационных данных. Поскольку предполагается, что сайт у нас уже есть, то достаточно установить пакет локализации и назначить русский языком фронтальной части и панели администрирования по молчанию.
Первые версии русской локализации Joomla 2.5 шли в качестве двух установочных пакетов - локализации фронта сайта и панели администрирования. Если у вас такая локализация, то лучше скачать более свежую версию, в которой перевод и фронта и админ.панели идёт в одном установочном пакете.
По умолчанию установочный дистрибутив Joomla включает в себя один язык - британский английский. Это базовый язык, но можно установить любые другие доступные языки. Например, русский, немецкий или французский.
5. Создаём структуру категорий для языков
- Создаем родительскую категорию для каждого языка;
- Выбираем язык в соответствии с категорией;
- Размещаем подкатегории и материалы для каждого языка в соответствии с приведённой ниже иерархией:
Иерархия категорий в соответствии с языком:
Родительская категория
Материалы со статусом "Все"
Родительская категория для первого языка
Материалы первого языка
Родительская категория для второго языка
Материалы второго языка.
- После того, как будут созданы, по крайней мере, родительские категории, можно создать меню и пункты меню для каждого языка;
- Для настройки языкового плагина не нужны созданные подкатегории.
Шаг 6: назначение языка для главной страницы
- Идем в меню > Главное меню (на картинке меню называется "Все языки");
- Нажимаем в пункт меню Главная (Home);
- Удостоверяемся, что этот пункт меню является страницей по умолчанию (главная страница);
- Еще раз проверяем, чтобы в настройках пункта меню в параметре язык было выставлено значение "Все".
Шаг 7: Создание новых меню, пунктов меню для каждого языка
- Идем в Меню > Менеджер меню > Добавить новое меню;
- Создаем новое меню для каждого языка;
- Заметьте: я переименовал Main menu (главное меню) в "Все языки" чтобы помнить, для чего нужно это меню. Далее создаю меню для английского языка (базового языка) и меню для дополнительных языков (в нашем случае это русский).
- В целях полноценной организации мультизычности Joomla, система рассматривает языковой статус содержимого "Все" как отдельный язык. То есть, материалы или содержимое, в настройках которых указан не конкретный язык (русский, английский), а "все языки", будут отображаться во всех языковых версиях. Нужно создать отдельный тип меню "Все языки" и назначать в нем главную страницу для всех языков по умолчанию. Этот шаг обязательный, без создания меню "Все" не получится назначить по умолчанию страницы для каждого языка.
Шаг 8: Создание страниц по умолчанию в каждом языковом меню
- После того, как меню будут созданы (в этом случае одно было переименовано и я создал также меню для английского и русского языков;
- Открываем меню для базового языка (например, английский);
- Создаем пункт меню, связанный с родительской категорией нужного языка (в нашем примере это английский);
- Делаем страницу главной по умолчанию (выбираем ДА);
- Повторяем действие для всех языков, добавленных на сайте. Каждой языковой версии нужно создать собственное меню, а также пункты меню;
- Любые создаваемые на нужном языке страницы должны иметь свои пункты меню, и их язык должен быть выбран в соответствии с конкретной языковой версией (например, в меню русской версии сайта у всех пунктов меню должен быть назначен только русский язык);
- В настройках пункта меню мы можем указать связь редактируемого пункта меню с аналогичным пунктом меню другого языка. Например, у нас есть пункт меню под названием "Collaboration", а в русской версии такой же пункт меню называется "Сотрудничество". Установив связь пунктов меню, мы даем системе понять, что это связанные страницы, и при переключении во фронте с одной языковой версии на другую, мы попадем не на главную страницу (что весьма раздражает), а попадем на ту же страницу, только на другом языке. Идем в "связи пункта меню", в списке выбираем связанный пункт меню, сохраняемся. Ту же процедуру проводим и с связанным пунктом меню. Связь выставляется так:
- После сохранения пункта меню главной страницы и выхода в менеджер меню, мы увидим флаг используемого языка - это индикатор, показывающий, что данный пункт меню является главным по умолчанию для этой языковой версии (меню английского языка);
- Также следует убедиться, что пункт меню опубликован (индикатор зеленого цвета). Если пункт меню снят с публикации (индикатор красного цвета, его следует опубликовать);
Удостоверяемся, что все пункты меню имеют связи с их аналогами в др.языковой версии. В случае, если сязь не установлена, в колонке связи будет отсутствовать иконка с замочком. (см.изображение выше)
Шаг 9: Включаем модуль переключения языков
Идём в Расширения > Менеджер модулей. Нажимаем "Создать".
- Выбираем в списке "Переключение языков" (Language Switcher в английской версии);
- Модулю нужно назначить позицию, видимую в шаблоне;
- После того, как модуль добавлен, откроем его для настройки:
- Мы можем выбрать использовать выпадающее меню со списком языков или вместо него выводить иконки флагов. Выберите, какой тип отображения больше подходит для использования во фронтальной части сайта;
- Теперь назначаем показ модулю "Переключение языков" для главных страниц всех языковых версий и всех связанных между собой пунктов меню, и выбираем способ отображения переключателя между языками: текст или флаги.
Пример модуля переключения языков:
Модуль переключения языков будет отображать либо флаги стран, либо выпадающий список с выбором названия языков. Интерфейс фронтальной части сайта будет переведен на выбранный в модуле язык. Переключение между языковыми версиями осуществляется путем клика в иконку с флагом.
Шаг 10: Создание материалов
- Если нужно создать материал на двух языках, создаем два материала. Например: один материал на русском языке, второй на английском.
- Процесс может быть значительно упрощен с помощью платного компонента Falang, бесплатного Joomfish или иного другого расширения с JED, обеспечивающего расширенные возможности мультиязычности Joomla. В таких расширениях можно редактировать переводы обоих материалов на одной странице (экран делится на две части), что, несомненно, повышает удобство заполнения сайта содержимым на разных языках. В данном уроке работа с такими расширениями не рассматривается;
- Выберите правильную категорию и установите нужный язык материала (в нашем примере это английский);
- При переключении между языковыми версиями в модуле выбора языков мы будем направлены на соответствующую страницу с языковой версией.
Обратите внимание на заголовки. Если нужно, чтобы заголовки модулей Главное меню и Выбор языка были переведены на английский (Main menu и Language Switcher), нужно создать копии модулей с переименованными заголовками и назначить их на соответствующие языковые пункты меню, не забыв выбрать в настройках английский язык (English (UK)).
Советы от JoomlaBlog.ru:
- Будьте внимательны при создании любого содержимого в Joomla - язык создаваемому материалу, модулю или категории назначается по умолчанию как "все", и нужно быть внимательным, не забыв указывать нужный язык. При наполнении многоязычного сайта содержимым это, пожалуй, самая распространенная ошибка, т.к. играет роль человеческий фактор - занимаясь наполнением сайта и публикуя новые статьи, мы автоматом забываем назначать материалу или содержимому нужный язык, в итоге материал не отображается или, наоборот, появляется во всех языковых версиях.
- Вторая распространенная ошибка вебмастеров, которые создают многоязычный сайт на Joomla - они не знают, что нужно делать меню для всех языков, полагая, что достаточно создать два меню - для русской и английской версии. Следует помнить, что особенности Joomla таковы, что нужно создавать и третье меню - для всех языков.
- Обращайте внимание на связи пунктов меню. Это упростит навигацию по сайту при переключении между языковыми версиями сайта.