Как создать мультиязычный сайт на CMS Joomla

Как создать мультиязычный сайт на CMS Joomla

Мультиязычный сайт на Joomla! – Как сделать?

Наглядное и подробное объяснение как создать мультиязычный сайт на Джумле.

Всё будет показано для новой версии Джумла 4 стандартными методами без использования сторонних компонентов, таких Falang, LanguageCK и AMLang. У этих компонентов есть свои преимущества и недостатки. Никто не гарантирует нормальную работу и отсутствие конфликтов при использовании этих сторонних расширений. Если вы делаете мультиязычный сайт на CMS Joomla впервые, то ограничьтесь использованием стандартных средств движка Joomla без сторонних компонентов. Вполне можно обойтись встроенными методами, всё уже сделано, осталось только подключить и настроить.

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

Создание мультиязычного сайта на CMS Joomla!

 

Предупреждение: не жмите кнопки с демо-данными на готовом сайте! На рабочем проекте лучше сделайте всё вручную по шагам.

Кнопка Install в разделе Blog Sample Data (Демо-данные блога) добавляет демонстрационные статьи в вашу установку, эта кнопка для наполнения какими-нибудь статьями, это для свежей установки сайта, для экспериментов, они нам не нужны сейчас.

Кнопка Install в разделе Multilingual Sample Data (Демо-данные многоязычного сайта) включает нужные компоненты для мультиязычности, создаёт пункты меню для разных языков и устанавливает главные страницы для каждого языка, опубликовывает модуль переключения языка, создаёт 2 статьи на русском и английском языках и связывает их между собой. Вот эта кнопка нам и нужна, но! Только в том случае, если вы начинаете с нуля новый сайт, если у вас новая установка без контента, без меню и т.д.

Совет: если вы хотите начать создавать сайт на разных языках используя встроенные методы Джумлы, то начните новый проект именно с этой кнопки (Multilingual Sample Data) - как раз для таких случаев. А после уже наращивайте контент следуя методам создания мультиязычного сайта.

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

Предупреждение: сделайте резервную копию всего сайта (backup). Не забывайте про бэкапы.

Итак, поехали по шагам.

0.
Установите необходимые языки, если вы этого ещё не сделали:

Создание мультиязычного сайта на CMS Joomla!

Создание мультиязычного сайта на CMS Joomla!

Создание мультиязычного сайта на CMS Joomla!

Далее в настройках System - Languages (Система - Языки) мы уже увидим установленные в систему языки и нажмите на звёздочку для языка по умолчанию для сайта (я выбрал русский):

Создание мультиязычного сайта на CMS Joomla!

Тот же язык я выбрал и для админ-панели:

Создание мультиязычного сайта на CMS Joomla!

Это было предисловие, если у вас ещё не были установлены необходимые языки.


1. Зайдите Система-Плагины (System - Plugins) и включите эти два плагина "Система – Фильтр языка" и "Система – Подмена кода языка":

Создание мультиязычного сайта на CMS Joomla!

В админ-панели на главной появится иконка "Состояние многоязычности", если нажать на неё, то будут показаны условия для перевода сайта в мультиязычность:

Создание мультиязычного сайта на CMS Joomla!

Создание мультиязычного сайта на CMS Joomla!

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

2. Пойдём по порядку – первое условие: "Язык контента - RU не опубликован, перемещен в корзину или удален. Система многоязычности может работать некорректно или сайт может быть недоступен."
Опубликуйте языки контента, которые будут на сайте в меню Система – Языки контента:

Создание мультиязычного сайта на CMS Joomla!

3. Далее, предупреждение: "Модуль меню, который содержит пункт меню Главная страница с назначением всем языкам, не должен быть опубликован. Язык не будет отображаться на сайте."
Снимите с публикации модуль меню, на котором есть главная страница для всех языков:

Создание мультиязычного сайта на CMS Joomla!


4.
Перейдём к сообщению: "Главная страница, которая назначена для языка контента en-GB, не опубликована. Язык не будет отображаться на сайте."
Это означает, что нужно создать меню для английского языка, создать в нём пункт меню, который будет являться главной страницей для этого языка и опубликовать модуль этого меню. Для этого сначала надо убрать старый алиас "home", который занят по умолчанию системой, нам он пригодится дальше:

Создание мультиязычного сайта на CMS Joomla!

Поменяйте его на что-нибудь отличное от "home", я написал "home-all", и сохранитесь. Теперь нужный нам алиас "home" свободен:

Создание мультиязычного сайта на CMS Joomla!

Создание мультиязычного сайта на CMS Joomla!

Далее создадим новое меню для английского языка:

Создание мультиязычного сайта на CMS Joomla!

Создание мультиязычного сайта на CMS Joomla!

Создание мультиязычного сайта на CMS Joomla!

Создайте новый пункт меню в новом меню "MENU EN", например, тип "Избранные материалы" и сделайте его главной страницей для английского языка. Используйте алиас "home", который мы освободили заранее:

Создание мультиязычного сайта на CMS Joomla!

В учебных целях пусть тип этого пункта будет "Избранные материалы":

Создание мультиязычного сайта на CMS Joomla!

Создание мультиязычного сайта на CMS Joomla!

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

Создание мультиязычного сайта на CMS Joomla!

Вот что получилось. Теперь нажмите кругляш "Главная":

Создание мультиязычного сайта на CMS Joomla!

Создание мультиязычного сайта на CMS Joomla!

Сейчас этот пункт стал главной страницей для английского языка. Об этом напоминается рядом с названием в главном меню (en-GB).


5.
То же самое нужно проделать с русским меню. Об этом нам подсказывает список в иконке о состоянии многоязычности сайта: "Главная страница, которая назначена для языка контента ru-RU, не опубликована. Язык не будет отображаться на сайте."
Сейчас мы создадим русское меню, сделаем в нём пункт, который назначим главной страницей для русской версии и сделаем связку двух меню (свяжем русское и английское):

Создание мультиязычного сайта на CMS Joomla!

Создание мультиязычного сайта на CMS Joomla!

Создание мультиязычного сайта на CMS Joomla!

Дальше создадим пункт меню в новом меню и сделаем его Главной для русского языка:

Создание мультиязычного сайта на CMS Joomla!

Создание мультиязычного сайта на CMS Joomla!

Создание мультиязычного сайта на CMS Joomla!

Сразу сделаем связку с уже готовым пунктом меню на английской версии меню, заходим во вкладку "Связь" и выбираем пункт меню на английском языке:

Создание мультиязычного сайта на CMS Joomla!

Создание мультиязычного сайта на CMS Joomla!

Создание мультиязычного сайта на CMS Joomla!

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

Создание мультиязычного сайта на CMS Joomla!

Создание мультиязычного сайта на CMS Joomla!


6.
Теперь нужно создать модули, отображающие на сайте два новых меню (английское и русское), также не забывайте выставлять свойство Язык для каждого модуля меню:

Создание мультиязычного сайта на CMS Joomla!

Создание мультиязычного сайта на CMS Joomla!

Создание мультиязычного сайта на CMS Joomla!

И для второго языка также:

Создание мультиязычного сайта на CMS Joomla!
Создание мультиязычного сайта на CMS Joomla!

Создание мультиязычного сайта на CMS Joomla!

Создание мультиязычного сайта на CMS Joomla!

7. Теперь нужно создать контент для двух языков и связать эти статьи друг с другом, и поставьте звёздочку "Избранный материал", чтобы он отобразился на главной, т.к. мы именно такого типа меню создали, отображающий избранные материалы:

Создание мультиязычного сайта на CMS Joomla!

Создание мультиязычного сайта на CMS Joomla!

Создание мультиязычного сайта на CMS Joomla!

И для русского языка создайте материал, только свяжите его с английской версией, затем сделайте его также избранным:

Создание мультиязычного сайта на CMS Joomla!

Создание мультиязычного сайта на CMS Joomla!

Создание мультиязычного сайта на CMS Joomla!

Создание мультиязычного сайта на CMS Joomla!

Создание мультиязычного сайта на CMS Joomla!

Создание мультиязычного сайта на CMS Joomla!

8. Теперь надо создать модуль переключения языка без заголовка (чтобы не делать два модуля с разными названиями на разных языках, упрощаем задачу), а также установить позиции для новых модулей меню, сейчас они опубликованы, но не стоят в какой-то позиции, давайте поставим их в позицию "sidebar-right":

Создание мультиязычного сайта на CMS Joomla!

Создание мультиязычного сайта на CMS Joomla!

Создание мультиязычного сайта на CMS Joomla!

Создание мультиязычного сайта на CMS Joomla!

Теперь установим позицию для новых модулей меню и выберем язык:

Создание мультиязычного сайта на CMS Joomla!

Создание мультиязычного сайта на CMS Joomla!

Создание мультиязычного сайта на CMS Joomla!


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

Создание мультиязычного сайта на CMS Joomla!

Создание мультиязычного сайта на CMS Joomla!

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

Создание мультиязычного сайта на CMS Joomla!

Создание мультиязычного сайта на CMS Joomla!

Подведём небольшой итог.
Для перевода сайта в мультиязычный режим стандартными средствами Joomla требуется ряд действий, к тому же создание контента теперь потребует заполнения дополнительных свойств и создания связок между языками. У этого метода есть недостаток - теперь всё будет продублировано дважды (или трижды, или четырежды, и т.д. в зависимости от количества нужных вам языков на сайте), этого дублирования можно частично избежать используя сторонние компоненты, но они усложняют работу с сайтом, к тому же дублирования нельзя будет избежать в полной мере (с компонентами дублирование будет происходить, например, внутри одной статьи, а не созданием двух статей для двух языков). Стандартными средствами движка Джумлы вполне можно обойтись для создания мультиязычного сайта, главное – сделать нужную подготовку для этого в начале, а уж после наполнять сайт контентом, вместо исправлений созданного содержимого, что привносит больше ошибок.

 

Ещё интересные посты о сайтостроении


Вход на сайт