Создание сайта самостоятельно

Настройка многоязычности в Joomla 2.5

Проще всего это сделать установив копонент FaLang. (Скачать). Работает на Joomla 1.7/2.5/3.0. Плюсом компонента является то, что компонент не создает дублей страниц. В настройках компонента можно указать, переводить весь сайт или отдельные страницы.

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

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

1. Устанавливаем Русскую локализацию. Для этого заходим в Extensions->Extension Manager, и загружаем необходимый (в нашем случае русской) пакет локализации.

 

2. Настраиваем языки. Идем в Extensions->Language Manager и видим наши языки

Здесь важно понимать - что для чего настраивается. Всего 3 настройки - язык для админки, язык для сайта и язык контента, первые две определяют языки по умолчанию для админки и сайта. В админки все будет видно сразу, а вот на сайте - только если компонент использует языковые константы и форматы (такие как "читать далее", системные ошибки и формат даты ). Языки сайта и админки могут отличаться, если это нужно.

Третья же настройка очень важна для решения нашей задачи. Здесь определяется Код языка для URL, Префикс изображения, Тег языка.

Код языка для URL - будет добавляться в адресную строку при языковом переходе.

Префикс изображения - нужен для выбора правильной картинки (флага языка), дело в том, что изображения флагов имеют формат en.gif, ru.gif и т.д. Изображения хранятся по адресу корень_сайта/media/mod_languages/images/.

Тег языка - по сути - это названия всех языковых файлов локализации (ru-RU, en-GB и др.).

Вот как это должно выглядеть для русского языка:

3. Включаем плагин (у нас админка уже на русском) Расширеия->Менеджер плагинов->Система - Фильтр языка.

Сейчас нас интересуют настройки плагина (в правой части).

Выбор языка для новых посетителей: язык сайта - значит пользователь увидит тот язык, который МЫ ему предложим по умолчанию, настройки браузера - значит БРАУЗЕР пользователя "дернет" тот язык, который в нем стоит по умолчанию. Правильно выставлять настройки браузера, но мы пока выставим язык сайта. Вообще, данный выбор зависит от задачи....

Автоматическая смена языка - ставим "да".

Связь пунктов меню - вот эта настройка обязательно "да". Дело в том, что без нее нельзя настроить связи пунктов меню и при переключении языков пользователь постоянно будет "вылетать" на главную страницу. 

4. Готовим структуру сайта и контент. Весь контент, модули, пункты меню, собственно меню - все у нас будет в 2-х экземплярах. Соответственно версиям (RU/EN) выставляем язык отображения. Так, если язык выбран - материал, модуль, пункт меню будет отображаться только в указанной языковой версии.

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

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

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

Как известно Алиасы пунктов меню не могут повторяться, однако в случае многоязычности это позволительно. Алиасы "зеркальных" меню должны быть идентичны. Системные же имена (задается при создании в поле Тип меню) самих меню должны быть уникальными, для удобства я предлагаю снабдить их префиксами -en, -ru.

Переходим к самой главной части реализации нашего плана - вывод и настройка переключения языков.

7. Создаем дефолтное меню - это обязательное меню с одним пунктом назначенным по умолчанию, причем модуль для него назначать не надо, оно нигде не должно отображаться. Главная задача дефолтного меню - назначение контроллера по умолчанию. Поэтому создаем там один единственный пункт и назначаем его главным.

8. Настраиваем языковое переключение. Плагин у нас уже включен, так что создаем модуль. Нам нужен модуль "Переключения языков":

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

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

9. Настраиваем локализации. Выбираем (в нашем случае) Главное меню->Главная и назначаем ее пунктом по умолчанию!!! Как говорилось выше у Joomla не может быть 2 главных меню, но если все сделано правильно - то вместо звезды отобразится флаг языка.

Соответственно в Main menu назначаем пункт меню Home по умолчанию. Вместо звезды получаем Британский флаг. Теперь при выборе меню мы можем видеть, что 2 меню у нас имеют маркеры языковых локализаций. С другими меню этого делать не надо!

Если вместо флагов появляется звезда, то проверьте выбран ли "Язык" меню!

10. Настраиваем связи. Каждый пункт меню нужно связать с его "зеркалом" в другой локализации. Связи настраиваются в правой панели настроек в пункте Связи пункта меню (этот пункт появляется только после включения плагина Система - Фильтр языка и если в нем выбран параметр Связь пунктов меню). Если данный пункт отсутствует проверьте настройки плагина (п.3)!

Связи настраиваем только в одной локализации, причем в той, которая не стоит по умолчанию. У нас локализация по умолчанию - русская, поэтому работаем только с английскими "зеркалами". После назначения в них связей автоматически проставятся связи и в русских "зеркалах".

11. Делаем привязку модулей. Как обычно в Joomla модули отображаются там, куда их привязали. Однако не забываем, что у нас кроме пунктов меню есть еще и языки. Модули так же можно привязывать к локализации.

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

Вот вроде бы и все.

Рейтинг
(2 )