Комментарии

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

Rate this item
(29 votes)

Создать многоязычный сайт на Joomla 2.5 -стало довольно легко, так как эта версия Joomla уже содержит в себе все необходимое. Joomla 1.5, как известно, не поддерживала многоязычность и приходилось пользоваться сторонними компонентами. Я, например, использовал очень удобный компонент JoomFish. На момент написания этого поста, JoomFish для Joomla 2.5 еще не вышла и мне пришлось осваивать родной функционал CMS.

Курс JoomMaster от RadiusPRO

Сначала все кажется довольно просто (на самом деле так оно и есть), но все же подводных камней не избежать. Разработчики достаточно хорошо прокомментировали как настраивать плагин и модуль переключения языков, НО... они забыли напомнить, что  у Joomla может быть только один пункт меню по умолчанию (контроллер по умолчанию). Что это значит и при чем здесь этот пункт - будет понятно дальше.

Допустим,  у нас есть сайт с неким количеством контента, имеется два меню (верхнее и боковое), несколько модулей, которые содержат определенный (не важно какой) функционал. Наша задача - сделать его двуязычным, для примера англо-русский.Курс JoomMaster от RadiusPRO

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

Итак начнем... Устанавливаем Joomla, по умолчанию мы имеем только английскую локализацию.

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

Пакет локализации загружен. Теперь у нас на сайте можно использовать 2 языка (RU/EN). Предположим, что языком по умолчанию у нас станет русский (отталкиваюсь от того, что чаще всего английский - второй язык, если конечно мы не в Англии Смеюсь).

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

 

Здесь ВАЖНО понимать - что для чего настраивается.

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

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

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

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

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

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

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

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

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

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

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

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

Вот что должно получиться:

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

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

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

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

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

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

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

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

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

Идем дальше...Курс JoomMaster от RadiusPRO

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

 

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

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

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

 

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

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

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

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

Например у нас модуль переключения языков отображается везде и на всех языках, т.к. он не имеет заголовка. Если этот же пункт предусматривал бы наличие заголовка, то пришлось бы создавать для него зеркало и привязывать отображение к пунктам меню и к языку. А вот для  правого меню у нас создано 2 модуля в одной и той же позиции. Для модуля "Правое меню" назначаем язык - Russian(RU) и (на всякий случай) назначаем привязку к пунктам меню только в "русских зеркалах", соответственно для модуля "Right menu" язык будет English(UK) и привязка к "английским зеркалам".

Так же некоторые модули у нас выводятся только в английской версии, некоторые только в русской сайта.

Вот вроде бы и все. Жду комментариев.

Read 90202 times

Комментарии   

0 #208 Antonimist 21.06.2020 09:06
I consider, that you commit an error. I can defend the position. Write to me in PM, we will discuss.


------
монтаж кондиционеров в киеве цены | https://master-climat.com.ua/
Цитировать
0 #207 Williamtromo 16.06.2020 00:11
Живописные места для катания на снегоходах за городом от 15 до 120 минут.
Цитировать
0 #206 AnthonyEsoma 28.05.2020 22:47
Я горячий друг истины, но отнюдь не желаю быть ее мучеником.


-------
https://www.anal4us.com/categories/ | https://www.anal4us.com/
Цитировать
0 #205 JesseGEK 27.05.2020 19:50
Очень советую Вам посетить сайт, на котором есть много информации на интересующую Вас тему.


-------
https://www.analibiza.com/videos/ | https://www.analibiza.com
Цитировать
0 #204 EdwardBinue 27.05.2020 05:29
Если я врач, то мне нужны больные и больница...


-------
https://www.virt4me.com/categories/ | https://www.virt4me.com/
Цитировать
0 #203 KetGenue 30.04.2020 11:02
Viagra 500mg Buy Cialis Cellulitis Cephalexin Treatment Cialis Colchicine Online Canada
Цитировать
0 #202 petite annonce 26.04.2020 01:06
At this moment I am going away to do my breakfast, afterward having my breakfast coming over again to read further news.

--- www.achetervendre.eu
Цитировать
0 #201 Free Ads 18.03.2020 19:53
It's an awesome article for all the internet people; they will take
benefit from it I am sure.
Цитировать
0 #200 Ellwaws 18.03.2020 05:43
Propecia Causa Impotencia https://apcialisle.com/# - cialis vs viagra Farmaco Kamagra Buy Cialis Vendita Levitra Controindicazioni
Цитировать
0 #199 Ellwaws 09.03.2020 04:21
Cialis Online Shopping Hk http://apcialisle.com/# - Buy Cialis Remoxy Amoxicillin Bangledesh Buy Cialis Priligy Legal Australia
Цитировать
0 #198 Uk Free Classifieds 21.02.2020 22:38
Awesome article.
Цитировать
0 #197 гдз по алгебре 7 02.01.2020 15:21
If you desire to grow your knowledge only keep visiting this web page and be updated with the
newest news update posted here.
Цитировать
0 #196 гдз по английскому 9 31.12.2019 22:50
of course like your web-site but you need to take a look
at the spelling on quite a few of your posts. Several of them are rife with spelling issues and
I find it very troublesome to inform the reality then again I'll definitely come again again.
Цитировать
0 #195 aOwencienitef 12.11.2019 15:02
Keywords-Club.ru - Как в AdWords исключить запрос.
Инструмент Moz также предоставляет данные по доменам, которые показывались в выдаче по выбранному ключевому слову и последние упоминания этих ключевых слов. Как и другие вышеперечисленные сервисы, WordStream выдает нам 100 запросов бесплатно. Ключевые слова — это обязательные словосочетания или отдельные слова, которые должны быть в создаваемом тексте. Не знаю, но это так!!! И вот какая картина сложилась. Кентауский Канал Статья сейчас актуальна?

Источник: Как смотреть статистику по «Not Provided»

Теги: ключевые слова расизм , запрос ключевых слова , ключевое слово это в русском языке , ключевые слова для сайта рефератов , значение синтаксиса в ключевых словах , ключевые слова росстат , как создать ключевые слова на вторую страницу в конструкторе юкоз , ключевые слова в стихотворении на холмах грузии , анализ статьи ключевые слова , ключевые слова для информационный сайт
Цитировать

Добавить комментарий


Защитный код
Обновить