< Заур Магомедов />

профессиональный верстальщик и блоггер

Мое хобби - разработка сайтов, но со временем это переросло в постоянный и стабильный источник дохода.

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

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

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

Пост был обновлен: Янв 04, 2017

Всем привет! В данном посте хочу вновь затронуть тему 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с

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

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

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

Читайте также:  Компонент Xmap - карта сайта для joomla 2.5, joomla 3.0

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

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

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

Установка модуля переключения языков в 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. Переопределение языковых констант в 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. Как изменить порядок отображения языков в модуле переключения языков?

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

Пост был обновлен: Янв 04, 2017

Остались вопросы? Посмотрите видеоинструкцию

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

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

У меня вы можете:

Оцените пост:

1 балл2 балла3 балла4 балла5 баллов (46 оценок, среднее: 4,78 из 5)
Загрузка...

Проверка орфографии

Система Orphus

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

  • Саша Июн 22, 2017 в 1:08

    Добрый день,
    никак не могу понять, в чем проблема. На моем сайте 2 языка укр и рус.
    В категории Пирамидки http://woodentoys.com.ua/ru/catalog/pyramydky язык не переключается. Выдает ошибку.
    Любая другая категория — переключается язык. Подскажите, где искать настройки?

    Спасибо

  • huseyn Апр 13, 2017 в 13:37

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

    • Заур Магомедов
      Заур Магомедов Апр 13, 2017 в 16:06

      Я так понял нет китайского языка контента?

      • huseyn Апр 14, 2017 в 15:55

        китайский контент есть но отображал флажок… докопал и исправил.. Спасибо Вам Заур

        • Заур Магомедов
          Заур Магомедов Апр 14, 2017 в 16:03

          Не за что!

  • Паша Мудрогелов Мар 27, 2017 в 12:39

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

    • Заур Магомедов
      Заур Магомедов Мар 27, 2017 в 20:50

      Здравствуйте. Префикс можно убрать только у языка по умолчанию. В остальном нет смысла убирать.

  • Сергей Мар 23, 2017 в 10:51

    Здравствуйте!
    Существует ли возможность реализовать мультиязычного названия сайта? (В Вашем примере «Демо сайт Joomla 3»)

    • Заур Магомедов
      Заур Магомедов Мар 23, 2017 в 17:06

      Под названием сайты вы имеете ввиду — то что в title страницы прописывается? Или то, что в логотипе на демо-сайте?

      • Сергей Мар 27, 2017 в 11:24

        «В Вашем примере «Демо сайт Joomla 3»» — то, что в логотипе.
        Нашёл тогда же — через базу можно ввести разные названия сайта.

        Уже созрел новый вопрос — можно ли сделать средствами joomla многозначный пункт меню, чтобы выводился определенный материал в зависимости от выбора какого-то элемента (по-аналогии с выбором языка)? Суть — хотим сделать многогодичный сайт одной конференции, чтобы можно было выбрать год, а затем пункты меню (визуально одного и того же) переводили на материалы конференции выбранного года.

  • Дмитрий Мар 12, 2017 в 6:18

    Спасибо за статью, Скажите для русского языка так же префикс ru используется как у вас на скриншоте для английского, а что делать если категории одинаково названы пример joomla… и что у вас за плагин комментариев интересный 🙂

    • Заур Магомедов
      Заур Магомедов Мар 13, 2017 в 1:03

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

      По поводу комментарий — вы про комментарии на этом блоге? Это стандартные комменты WordPress.

      • Дмитрий Апр 15, 2017 в 5:21

        Спасибо, проверте работу этих комментариев, приходят письма как текст, а не HTML т.е. ссылки вместе с тегами

  • Іван Пугач Фев 28, 2017 в 18:37

    Здравствуйте! Настраивал сайт по вашему описанию. Спасибо!
    Но.. через некоторое время перестал нормально работать. Т.е. при смене языка в каком то материале — перебрасывает на другой материал или на главную. Пересмотрел Вашу статью, прошелся по пунктам, но ничего не изменилось. Все привязки как раньше, а проблема та же.
    Может что то подскажите? Спасибо.

    • Заур Магомедов
      Заур Магомедов Мар 01, 2017 в 20:32

      Даже не знаю честно говоря, смотреть надо.

      • ipugach Мар 01, 2017 в 23:40

        Спасибо за ответ! Может хоть наводку дадите.
        Когда смотрю код страницы:

        <ul class="lang-inline">
        						<li class="" dir="ltr">
        			<a href="/uk/79-tovar/126-kotel-vodogrejnyj-niistu-5-uk.html">
        							<img src="/media/mod_languages/images/uk_ua.gif" alt="Українська" title="Українська" />						</a>
        			</li>
        								<li class="lang-active" dir="ltr">
        			<a href="/79-tovar/81-kotel-vodogrejnyj-niistu-5.html">
        							<img src="/media/mod_languages/images/ru.gif" alt="русский" title="русский" />						</a>
        			</li>
        				</ul>
         

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

        • Заур Магомедов
          Заур Магомедов Мар 02, 2017 в 0:17

          Как я вам могу дать наводку — мне смотреть и вникать надо в проблему. Начните все заново, пройдитесь по всем пунктам.

          Из-за кеша тоже может быть, отключите его, если он у вас включен. Больше ничего не могу сказать.

  • Петр Фев 20, 2017 в 0:54

    Добрый день!
    У меня вопрос,
    Скажите пожалуйста, в joomla 3.x где (в каком файле) дописать код / или куда копировать css файл, что бы в материале отображался Аккордеон?
    Я раньше использовал отдельно модуль Аккордеона (название не Важно) но размещенный текст не искался в поисковике сайта. я набрел на статью, где рассказывается, что можно использовать css в материале.. (не пишу css и html т.к. я не автор, и что бы не нарушить правила, могу дать ссылку по почте) Но не понятно как и где прописывать стили css
    у меня задача в материале (определенный номер журнала) создать оглавление журнала (название статьи и Авторы Рус/Eng) в виде аккордиона, а при раскрытии определенного названия статьи будет отображаться резюме статьи Рус/Eng. Заранее Вас благодарю!

    • Заур Магомедов
      Заур Магомедов Фев 21, 2017 в 2:09

      Не могу ничего сказать. Надо вникать, смотреть, думать.

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

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Если вы хотите вставить в текст комментария код HTML, CSS, PHP, JavaScript, то обрамите код в соответствии необходимыми тегами:

  • Код HTML - тегами [html] ваш код... [/html]
  • Код CSS - тегами [css] ваш код... [/css]
  • Код PHP - тегами [php] ваш код... [/php]
  • Код JavaScript - тегами [code lang="js"] ваш код... [/code]