GeanyКапельный поливНоутбук Haier HI133LVLC трансляция экрана по сетиПроектор Cactus CS-PRE 09B

Многоязычность в Joomla

Всем привет! В данном посте хочу вновь затронуть тему joomla, а именно как сделать мультиязычный сайт на joomla. Мультиязычность — это одно из достоинств, которым пригляделаcь мне joomla. Мультиязычный сайт создается таким образом, что пользователю необходимо добавлять один и тот же материал на разных языках. Т.е. перевод осуществляется не каким либо автоматическим роботом-переводчиком, а происходит просто переключение с одного языка на другой. Все статьи на разных языках пишутся человеком, как говорится, с чувством, с толком, с расстановкой. Лично по мне, такой подход более серьезен, нежели использование какого либо гугл-переводчика.

 

В данной статье пошагово разберем, что необходимо сделать, чтобы наш сайт был доступен на разных языках. Я на примерном сайте создам еще два дополнительных языка — английский и немецкий, т.е. у меня сайт будет на трех языках: русский, английский и немецкий. Давайте начнем.

Мультиязычный сайт на Joomla

Для начала нам необходимо установить файлы локализации необходимых языков. Ну, предполагается, что файлы русской локализации уже у вас установлены. Вы же ведь устанавливали русский язык при установке joomla? Если не устанавливали и у вас админка и сайт на английском, то установите. Мы разберем, как установить немецкую локализацию, остальные языки устанавливаются аналогично.  Английский язык установлен по умолчанию.

Менеджер языков

Итак, идем в «Расширения» -> «Менеджер языков». У меня установлено два языка, русский установлен по умолчанию. Так же должно быть и у вас.

Менеджер языков joomla 3. Как создать мультиязычный сайт на Joomla?

Обратите внимание на левую колонку. Вы должны четко понимать, что означает каждый пункт:

Языковые пакеты сайта — задается перевод фронтальной (видимой) части сайта;

Языковые пакеты панели управления — задается перевод панели управления сайта;

Языки контента — языки контента необходимы нам для организации мультиязычного сайта (с которыми мы и будем работать);

Переопределение констант — про переопределения языковых констант я уже писал, можете подробнее почитать.

Давайте установим еще один язык, в моем случае это немецкий язык. Для этого жмем кнопочку «Установить язык». Далее, в списке языков отмечаем галочкой нужный нам язык. Я отметил German, т.е. немецкий. Если не знаете, как будет ваш язык на английском, то можете воспользоваться гугл-переводчиком.

Установка файлов локализации joomla3. Как создать мультиязычный сайт на Joomla?

Язык установлен. Возвращаемся в менеджер языков и убеждаемся, что у нас появился еще один язык для сайта и панели управления.

Список установленных языков в joomla3. Как создать мультиязычный сайт на Joomla?Следующий шаг — открываем ссылку «Языки контента» в новой вкладке (наводим и жмем на колесико мыши), таким образом у нас будут открыты две вкладки панели управления: вкладка менеджера языков и вкладка языков контента. Сейчас узнаете почему.

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

Создание нового языка контента в joomla3. Как создать мультиязычный сайт на Joomla? Давайте разберем каждое поле. Где брать значения?

Заголовок — здесь вводим любой заголовок;

Заголовок на родном языке — здесь вводите название языка на данном языке

Тег языка — берем из колонки «Тег языка» в менеджере языков (для этого мы и сохранили вкладку браузера с языками);

Тег языка в менеджере языков joomla 3

Код языка для URL — здесь вводим суффикс для адреса сайта данного языка (только обязательно латиницей), например, будет примерно так — site.ru/en/;

Префикс изображения — в выпадающем списке выбираем префикс нужного нам языка. Если выберем правильно рядом должен высветиться флажок данного языка. Вы должны знать как выглядит флаг у добавляемого языка. Если не знаете какой префикс выбрать, то делаем следующее — переходим в корневую директорию сайта и открываем папку — /media/mod_languages/images. Находим свой флаг и смотрим на  название файла. Чтобы просмотреть флаги можно воспользоваться стандартным окном windows. Если у вас сайт на хостинге и нет возможности визуально просмотреть медиа-файлы, то можете скачать все файлы флагов на компьютер. Они легкие и много времени это не займет.

 

Иконки флагов в joomla3. Как создать мультиязычный сайт на Joomla?

Состояние — естественно публикуем

Доступ — всем гостям — Publiс

Описание — можете ввести какое либо описание.

Хочу отметить, что все поля, отмеченные звездочкой обязательны для заполнения.

 

Во вкладке «Название сайта» можете вписать общее название сайта на родном языке. В некоторых случаях эта опция может быть полезной.

Читайте также:  Как установить Joomla на локальный сервер

Жмем «Сохранить и создать» и аналогично создаем еще один язык контента.

Модуль переключения языков

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

Установка модуля переключения языков в joomla3. Как создать мультиязычный сайт на Joomla?

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

Системный плагин

Следующее, что нам необходимо сделать это включить плагин фильтра языков. Для этого идем в «Расширения» -> «Менеджер плагинов» -> «Система — Фильтр языка».

Системный плагин фильтр языка в joomla3. Как создать мультиязычный сайт на Joomla?

Давайте не просто его включим, а зайдем и разберем кое-какие настройки. Вообще, я рекомендую оставить настройки по умолчанию, но вдруг кого то не устроит что-либо.

Настройки плагина фильтр языка в joomla3. Как создать мультиязычный сайт на Joomla?

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

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

Следующая опция на которую я хотел обратить ваше внимание это «Удалять префикс языка по умолчанию«. Что это значит? Наверняка на многих сайтах, где имеются несколько языков вы видели, что адреса имеют вид, например, site.ru/en или site.ru/ru, т.е. добавляется суффикс языка к адресу сайта. Так вот данная опция нужная для того, чтобы удалять суффикс из адреса для языка сайта по умолчанию. Мне кажется это логично. По умолчанию данная опция отключена, но я обычно ее включаю и вам рекомендую.

Все, публикуем плагин и сохраняем. Остальные опции оставляем как есть.

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

А теперь обо все по порядку.

Контент

Идем в «Материалы» -> «Менеджер категорий» и создаем категорию.  В настройках категории присваиваем язык категории. Заметьте, что нам при выборе языка доступны все три созданные нами языка.

Установка языка при создании категории в joomla3. Как создать мультиязычный сайт на Joomla?

Дублируем данную категорию и создаем аналогично на других языках. Содержание категории: заголовок и описание заменяем в соответствии с языком. Аналогично я создам еще одну категорию. У меня их будут две: статьи и новости.

Далее, таким же образом создаются материалы для всех языков. В настройках статьи также выставляется язык.

Установка языка при создании материала в joomla3. Как создать мультиязычный сайт на Joomla?

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

Модули

Контент у меня создан. Теперь я создам модуль также на трех языках. Это будет модуль формы авторизации. Здесь также как и для статей создаем модуль на трех языках и присваиваем нужный язык в настройках модуля.

Установка языка при создании модуля в joomla3. Как создать мультиязычный сайт на Joomla?

Меню

Теперь давайте перейдем к меню. Нам необходимо проделать следующее: дублируем главное меню столько раз, сколько у нас будет языков, т.е. под каждый язык создается меню и дублируются пункты. Оставляем одно общее меню с одним единственным пунктом — Главная. В моем случае у меня будут четыре меню: одно общее с одним пунктом «Главная» и три меню с пунктами на английском, русском и немецком языках.

Давайте разберем меню по умолчанию. Заходим в пункт «Главная» и выставляем значение главная страница в положение — «Да» и значение языка — «Все». Присвоив статус пункту «Главная страница» мы делаем его главным (оно будет помечено иконкой домика), а меню становится по умолчанию главным.

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

Создание пункта меню в joomla3. Как создать мультиязычный сайт на Joomla?Следует отметить, что пункту меню «Главная» во всех меню следует выставить переключатель «Главная страница» в положение «Да». В результате данных действий у каждого языкового меню в выпадающем меню админки joomla, а также в колонке «Главная» в списке пунктов меню должна появиться иконка флага.

Иконки флагов при создании мультиязычного сайта на Joomla3.

Я создал все пункты во всех меню и вот что у меня получилось.

Менеджер меню в joomla 3. Как создать мультиязычный сайт на joomla3?У вас должно получиться примерно тоже самое.

Читайте также:  Как создать материал в joomla 2.5? Добавление статей и категорий.

Связи

Следующим шагом мы свяжем все пункты языковых меню между собой посредством связей. Для этого заходим в любое языковое меню и последовательно открываем каждый пункт на редактирование. В открывшемся окне настроек пункта меню находим вкладку «Связи» и связываем данным пункт с аналогичным пунктом в других языковых меню.

Связь между пунктами меню в joomla3. Мультиязычность в joomla3.

Вот таким образом проходимся по всем пунктам одного меню и связываем пункты с аналогичными пунктами других меню. Я открыл на редактирование пункты английского меню и связал все пункты.

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

Иконки связей пунктов меню joomla3. Мультиязычность в joomla3.

 

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

Теперь давайте таким же образом свяжем наши категории и статьи. Сначала зайдем в категории и откроем категорию на любом языке на редактирование. Находим вкладку «Связи» и также связываем категорию аналогичной ей на другом языке.

Связи категорий в мультиязычном сайте joomla 3В списке категорий, если все сделали правильно вы должны также увидеть пиктограммы языков в колонке «Связи». Здесь также можно отредактировать содержимое языка, щелкнув по пиктограмме.

Таким же образом связываем все материалы друг с другом языками. Открываете материал и во вкладке «Связи» связываете материалы.

Теперь давайте выведем каждое языковое меню в нашем шаблоне посредством модуля. Для этого идем в «Меню» -> «Менеджер меню» и переходим по ссылке «Добавить модуль для данного типа меню». Конечно это можно сделать и через менеджер модулей. В данном случае разницы никакой нет. Все модуля для языковых меню выводим в одной и той же позиции. Я выбрал позицию «position-7» моего шаблона «Protostar». Не забываем выбрать язык для каждого модуля меню.

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

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

Демо-сайт на joomla3. Как создать мультиязычный сайт на joomla3?Попробуйте войти в категорию и переключиться на другой язык. Я вот вошел в категорию «Статьи» и переключился на английский язык. Вот как выглядит теперь контент моего сайта.

Мультиязычный сайт на joomla3

При переключении на другой язык меня никуда не перекинуло, я остался все на той же странице, просто изменился язык сайта. Достигается это как раз посредством связей пунктов меню, категорий и статей, а также посредством включенной опции «Связь элементов» в плагине фильтрации языка.

В адресе сайта видим тот самый суффикс, который мы задали при создании языков контента. Обратите внимание, для языка по умолчанию суффикс языка не выводится. Это как раз за счет того, что мы активировали соответствующую опцию в плагине переключения языков.

Если у вас в адресе присутствует — index.php, то это говорит о том, что у вас не включен ЧПУ (человеко-понятный урл). Чтобы включить ЧПУ необходимо в общих настройках joomla во вкладке «Сайт» в настройках Seo выставить первые три переключателя в положение «Да», а также переименовать в корневой директории сайта файл — htaccess.txt в .htaccess.

Настройки ЧПУ в joomla3. Мультиязычный сайт на joomla3

Ну вот и все. Получилась большая инструкция. Я надеюсь ничего не пропустил и у вас вопросов не возникнет, а если и возникнет, то с удовольствием отвечу на них в комментариях.

Всем удачи! 

Наиболее часто задаваемые вопросы

1. Не отображаются иконки флагов в переключателе языков и в меню?

Проследите за тем, чтобы каждому пункту «Главная» каждого языка был присвоен статус главной страницы. Если данная опция включена, то пройдитесь по всем настройкам еще раз. Может вы неправильно вписали тег языка? Уверен, сделали что-то неправильно!

Присвоение пункту Главная для каждого языка

2. Что делать, если нет нужного языка в Joomla?

Вам необходимо его создать. Как? Если в краце, то берете любой язык, качаете его к себе на компьютер и переводите на свой язык по аналогии. Далее устанавливаете. Вообще это тема для отдельной статьи. Обязательно ее напишу, а пока вот ссылка на joomlaforum — http://joomlaforum.ru/index.php?topic=320561.0

3. Как изменить порядок отображения языков в модуле переключения языков?

Попробуйте изменить порядок в админке «Языки контента».

Источник: https://zaurmag.ru/joomla/multiyazychnost-v-joomla3-kak-sdelat-multiyazychnyj-sajt-na-joomla.html#10521077108510771076107810771088_110310791099108210861074