Разное

Создание многоязычного сайта на Joomla 2.5

Joomla
Добавление в избранное
Сохранить

Создание многоязычного сайта на Joomla

Оглавление

  1. Активация языковых плагинов
  2. Выставляем базовые настройки плагина
  3. Добавляем язык контента
  4. Установка пакета локализации
  5. Создаём структуру категорий для языков
  6. Назначение языка для главной страницы
  7. Создание новых меню, пунктов меню для каждого языка
  8. Создание страниц по умолчанию в каждом языковом меню
  9. Включаем модуль переключения языков
  10. Создание материалов

Основа многоязычности контента Joomla была заложена, начиная с линейки 1.6, после чего функционал усовершенствовался с выходом промежуточных версий. Следует отметить, что стандартный функционал Joomla 2.5 не предлагает универсального решения и имеет некоторые ограничения, однако на данный момент при помощи Joomla 2.5 можно добавить дополнительную языковую версию вашему сайту из «коробки».

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

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

1. Активация языковых плагинов

Активация языковых плагинов в Joomla - создание многоязычного сайта на Joomla 2.5

  • Идите в Расширения > Менеджер плагинов;
  • Воспользуйтесь фильтром для поиска языковых плагинов;
  • Активируйте плагины нажатием на иконки с красными кружками.  Либо можете выделить чекбоксы с плагинами и нажать на зеленую иконку «Включить» в верхнем правом углу;
  • Иконки с красными кружками (обозначающие статус «Выключено») заменятся на зеленые как только плагины будут включены;
  • Выберите плагин Система – Фильтр языка (Language Filter) и перейдите в режим редактирования настроек плагина.

 

2. Выставляем базовые настройки плагина

Настройки плагина Система фильтр языка - урок по созданию многозычного сайта на Joomla

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

3. Добавляем язык контента

Добавляем язык контента - создание мультиязычного сайта на Joomla

Идём в Расширения > Менеджер языков.

Назначение языка контента в менеджере языков - создание мультиязычного сайта на Joomla

Нажимаем в закладку «Содержимое» (Content tab)
Нажимаем в заголовок English (UK) для просмотра параметров языка по умолчанию.

Параметры языка - создание мультиязычного сайта на Joomla урок

  • Заголовок = название языка появится в выпадающих списках при назначении языка объекту (материалу). Параметр Заголовок также будет использован во фронтэнд модуле переключения языков в случае, если в настройках указано не отображать изображения с флагами;
  • Заголовок на "Родном языке" = заголовок на любом языке, удобном для администратора. Отображается в спике языков контента;
  • Код языка для URL = Код (префикс) языка будет добавлен к URL сайта. Если режим ЧПУ включён, адрес будет выглядеть примерно так: http://ваш-сайт.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.

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

Редактируем название сайта - урок создание многоязычного сайта на Joomla

Для языка по умолчанию эти настройки можно оставить пустыми. Название сайта будет взято из Глобальной Конфигурации.
А вот пример конфигурации русской локализации (язык контента):

Настройка языка контента - урок создание многоязычного сайта на Joomla

Далее, пример настроек русской локализации:

Редактирование описания языка контента - создание многоязычного сайта на Joomla - урок

Это переопределение названия сайта для русской версии.
После заполнения формы нажимаем Сохранить и закрыть.

Редактирование и управление языками контента Joomla - урок о создании многоязычного сайта

Теперь в списке установленных языков появилась русская локализация. Удостоверьтесь, что язык активен - зеленый индикатор указывает на активное состояние языка.

4. Установка пакета локализации

Загрузка пакета локализации Joomla

  • Официальные пакеты локализаций Joomla можно найти на специальной страничке Joomla Extension directory. Нам же нужно скачать русскую локализацию Joomla и устрановить ее;
  • Установка пакета локализации происходит через менеджер расширений - как и любое расширение. Пакет локализации Joomla можно установить на любом этапе работы над сайтом. Однако новый язык начнет отображаться в менеджере языков только после установки;
  • Не перепутайте пакет локализации с установочным дистрибутивом Joomla, русская локализация которого также доступна к скачиванию. Разница между ними в том, что в пакете локализации содержится перевод всех языковых констант (интерфейс, названия кнопок, системные сообщения и т.п.), а установочный пакет - это обычный дистрибутив Joomla, в который уже включена русская локализация, а также перевод демонстрационных данных. Поскольку предполагается, что сайт у нас уже есть, то достаточно установить пакет локализации и назначить русский языком фронтальной части и панели администрирования по молчанию.

Загрузка файла локализации Joomla - создание многоязычного сайта

Первые версии русской локализации Joomla 2.5 шли в качестве двух установочных пакетов - локализации фронта сайта и панели администрирования. Если у вас такая локализация, то лучше скачать более свежую версию, в которой перевод и фронта и админ.панели идёт в одном установочном пакете.

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

5. Создаём структуру категорий для языков

Создание структуры категорий языков Joomla

  • Создаем родительскую категорию для каждого языка;
  • Выбираем язык в соответствии с категорией;
  • Размещаем подкатегории и материалы для каждого языка в соответствии с приведённой ниже иерархией:

Иерархия категорий в соответствии с языком:

Родительская категория
Материалы со статусом "Все"

Родительская категория для первого языка
Материалы первого языка

Родительская категория для второго языка
Материалы второго языка.

 

Структура категорий многоязычного сайта на Joomla

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

Шаг 6: назначение языка для главной страницы

Назначение языка для главной страницы сайта на Joomla

  • Идем в меню > Главное меню (на картинке меню называется "Все языки");
  • Нажимаем в пункт меню Главная (Home);
  • Удостоверяемся, что этот пункт меню является страницей по умолчанию (главная страница);
  • Еще раз проверяем, чтобы в настройках пункта меню в параметре язык было выставлено значение "Все".

Шаг 7: Создание новых меню, пунктов меню для каждого языка

Создание меню для разных языков Joomla

  • Идем в Меню > Менеджер меню > Добавить новое меню;
  • Создаем новое меню для каждого языка;
  • Заметьте: я переименовал Main menu (главное меню) в "Все языки" чтобы помнить, для чего нужно это меню. Далее создаю меню для английского языка (базового языка) и меню для дополнительных языков (в нашем случае это русский).
  • В целях полноценной организации мультизычности Joomla, система рассматривает языковой статус содержимого "Все" как отдельный язык. То есть, материалы или содержимое, в настройках которых указан не конкретный язык (русский, английский), а "все языки", будут отображаться во всех языковых версиях. Нужно создать отдельный тип меню "Все языки" и назначать в нем главную страницу для всех языков по умолчанию. Этот шаг обязательный, без создания меню "Все"  не получится назначить по умолчанию страницы для каждого языка.

 

Шаг 8: Создание страниц по умолчанию в каждом языковом меню

Создание главных страниц по умолчанию для каждого языка Joomla

  • После того, как меню будут созданы (в этом случае одно было переименовано и я создал также меню для английского и русского языков;
  • Открываем меню для базового языка (например, английский);
  • Создаем пункт меню, связанный с родительской категорией нужного языка (в нашем примере это английский);
  • Делаем страницу главной по умолчанию (выбираем ДА);
  • Повторяем действие для всех языков, добавленных на сайте. Каждой языковой версии нужно создать собственное меню, а также пункты меню;
  • Любые создаваемые на нужном языке страницы должны иметь свои пункты меню, и их язык должен быть выбран в соответствии с конкретной языковой версией (например, в меню русской версии сайта у всех пунктов меню должен быть назначен только русский язык);
  • В настройках пункта меню мы можем указать связь редактируемого пункта меню с аналогичным пунктом меню другого языка. Например, у нас есть пункт меню под названием "Collaboration", а в русской версии такой же пункт меню называется "Сотрудничество". Установив связь пунктов меню, мы даем системе понять, что это связанные страницы, и при переключении во фронте с одной языковой версии на другую, мы попадем не на главную страницу (что весьма раздражает), а попадем на ту же страницу, только на другом языке. Идем в "связи пункта меню", в списке выбираем связанный пункт меню, сохраняемся. Ту же процедуру проводим и с связанным пунктом меню. Связь выставляется так:

Установление связей пунктов меню между разными языковыми версиями сайта на Joomla

  • После сохранения пункта меню главной страницы и выхода в менеджер меню, мы увидим флаг используемого языка - это индикатор, показывающий, что данный пункт меню является главным по умолчанию для этой языковой версии (меню английского языка);
  • Также следует убедиться, что пункт меню опубликован (индикатор зеленого цвета). Если пункт меню снят с публикации (индикатор красного цвета, его следует опубликовать);

Пункты меню языковой версии и их связи с пунктами других языков в Joomla

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

Шаг 9: Включаем модуль переключения языков

Идём в Расширения > Менеджер модулей. Нажимаем "Создать".

Добавление модуля переключения языков в админ.панели Joomla

  • Выбираем в списке "Переключение языков" (Language Switcher в английской версии);
  • Модулю нужно назначить позицию, видимую в шаблоне;
  • После того, как модуль добавлен, откроем его для настройки:

Настройки Joomla модуля переключение языков

  • Мы можем выбрать использовать выпадающее меню со списком языков или вместо него выводить иконки флагов. Выберите, какой тип отображения больше подходит для использования во фронтальной части сайта;
  • Теперь назначаем показ модулю "Переключение языков" для главных страниц всех языковых версий и всех связанных между собой пунктов меню, и выбираем способ отображения переключателя между языками: текст или флаги.

Назначение модуля переключение языков соответствующим языковым пунктам меню Joomla

 

Пример модуля переключения языков:

Вид модуля переключения языков Joomla со стороны фронтэнда

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

Шаг 10: Создание материалов

Подготовка материала для языковой версии Joomla

  • Если нужно создать материал на двух языках, создаем два материала. Например: один материал на русском языке, второй на английском.
  • Процесс может быть значительно упрощен с помощью платного компонента Falang, бесплатного Joomfish или иного другого расширения с JED, обеспечивающего расширенные возможности мультиязычности Joomla. В таких расширениях можно редактировать переводы обоих материалов на одной странице (экран делится на две части), что, несомненно, повышает удобство заполнения сайта содержимым на разных языках. В данном уроке работа с такими расширениями не рассматривается;
  • Выберите правильную категорию и установите нужный язык материала (в нашем примере это английский);
  • При переключении между языковыми версиями в модуле выбора языков мы будем направлены на соответствующую страницу с языковой версией.

Пример многоязычного сайта на Joomla

Обратите внимание на заголовки. Если нужно, чтобы заголовки модулей Главное меню и Выбор языка были переведены на английский (Main menu и Language Switcher), нужно создать копии модулей с переименованными заголовками и назначить их на соответствующие языковые пункты меню, не забыв выбрать в настройках английский язык (English (UK)).

 

Советы от JoomlaBlog.ru:

  • Будьте внимательны при создании любого содержимого в Joomla - язык создаваемому материалу, модулю или категории назначается по умолчанию как "все", и нужно быть внимательным, не забыв указывать нужный язык. При наполнении многоязычного сайта содержимым это, пожалуй, самая распространенная ошибка, т.к. играет роль человеческий фактор - занимаясь наполнением сайта и публикуя новые статьи, мы автоматом забываем назначать материалу или содержимому нужный язык, в итоге материал не отображается или, наоборот, появляется во всех языковых версиях.
  • Вторая распространенная ошибка вебмастеров, которые создают многоязычный сайт на Joomla - они не знают, что нужно делать меню для всех языков, полагая, что достаточно создать два меню - для русской и английской версии. Следует помнить, что особенности Joomla таковы, что нужно создавать и третье меню - для всех языков.
  • Обращайте внимание на связи пунктов меню. Это упростит навигацию по сайту при переключении между языковыми версиями сайта.

Удачи в создании многоязычного сайта на Joomla!

Оригинальная статья: Steve Burge
Eugene Sivokon
Предприниматель, менеджер проектов, Joomla-энтузиаст. Занимаюсь созданием сайтов с 2002 года. Координатор нескольких Joomla проектов. Обожаю путешествовать, интересуюсь историей и изучаю иностранные языки.

Подпишитесь на рассылку новостей CMScafe