Мультиязычность в Joomla 1.7

j17multilanguageРазработчики Joomla 1.7  создали встроенную функцию мультиязычности в данной версии CMS по умолчанию. Конечно же данный функционал мультиязычности не превосходит такие компоненты как JoomFish, но тем не менее данная реализация на данный момент считается самым лучшим решением для Joomla 1.7.

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

Языковые пакеты можно загрузить из архива JED.

1.Активация плагина фильтрации языка

mlang1

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

2. Настройки плагина

mlang2

Настройки плагина имеют 3 параметра:

  • 1) Выбор языка для новых посетителей - позволяет выбрать язык пользователя исходя из настроек браузера или настроек самого сайта.
  • 2) Автоматическая смена языка - данная функция автоматически изменяет содержание если пользователь изменит язык в своих настройках (личном кабинете)
  • 3) Связь пунктов меню - опция включает автоматическую смену языка меню, если пользователь переключить язык в настройках сайта.

Мы рекомендуем использовать выбор языка на основе настроек браузера пользователя. К примеру если язык браузера пользователя на испанском языке, и у вас установлен данный язык в CMS Joomla 1.7, то при входе на сайт, пользователь автоматически увидит всю системную информацию, включая модули, описание, системные компоненты и.т.д. на испанском языке. Также рекомендуем использовать пункт связки меню, тем самым вы сможете связать свое меню используя разные языки.

3. Язык контента

mlang3

Далее вам необходимо создать и выбрать язык контента. Откройте выпадающее меню Расширения » Менеджер языков » Языки контента. По умолчанию в CMS Joomla 1.7 создан 1 язык для контента (английский) с префиксом English (en-GB). Если вы хотите отображать два языка на сайте, к примеру: Русский и Английский, то вам необходимо создать русский язык. Для этого нажмите на кнопку «Создать» в верхней правой части экрана.

4. Создание языка контента

mlang4

После того как вы нажали на кнопку создания языка, вам необходимо заполнить обязательные поля (отмечены здездочкой), после выбрать статус плагина в "Опубликовано" и нажать на кнопку «Сохранить». Чтобы автоматически использовать флаг языка, вы можете прописать в поле «Префикс изображения» код языка, в нашем примере этот код — ru. Изображения будут формироваться автоматически и браться из медиа директории вашего сайта по адресу: /media/mod_languages/images/ Вы можете предварительно открыть данную директорию вашего сайта и посмотреть код языка который выводит определенный флаг.

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

5. Проверка языка главной страницы

mlang5

Язык главной страницы сайта (обычно - Главная, Home) должен быть выставлен на все языки. Удостоверьтесь что в настройках меню главной страницы, в пункте "Язык" у вас установлена опция "Все". Данное действие необходимо для автоматического определения языка на основе браузера пользователя.

6. Создание и конфигурация меню

mlang6

При создании любого другого меню (кроме главной), вам необходимо создавать несколько дубликатов меню и присвоить им те языки, которые будут использоваться. Для примера как показано выше на рисунке, используется меню "Статьи" для русского языка, если вы хотите использовать кроме русского языка, английский (либо любой другой), вы должны также создать такое же меню, написать заголовок меню на том языке который был выбран и установить опцию языка в нужный тип (код) языкового файла.

mlang7

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

7. Связи пунктов меню

mlang8

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

8. Модуль переключения языка сайта

mlang9

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

mlang10

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

mlang11

После того как вы настроите языковой модуль, вам необходимо выбрать свободную и видимую позицию вашего шаблона (там где вы хотите установить модуль переключения языка) и опубликовать его, нажав на кнопку "Сохранить". После обновите страницу на сайте и вы сможете увидеть модуль переключения языка с изображениями флагов или списком (в зависимости от того режима отображения который вы выбрали при настройке языкового модуля).

Внимание! Если по какой-то причине у вас не отображаются иконки флагов или выпадающий список выбора языка в Joomla 1.7, то вы просто на каком-то шаге совершили ошибку. Проверьте еще раз все созданные меню, их привязку к статьям и самое главное привязку кода языка к пункту меню.

Дальше дело техники и назначение каждому меню статьи на нужном языке. Данный способ конечно не такой легкий как перевод с помощью компонента JoomFish, но тем не менее на сегодняшний день это самый актуальный и стабильный вариант создания мультиязычных сайтов на CMS Joomla 1.7.

Тэги: joomla, файлов, заголовки, системные, языковых, мультиязычности, языковые

Комментарии

И ещё такой вопросец: а можно ли сделать так, чтобы в русской версии сайта после домена не прибавлялся индекс языка ru?

Damian 09.04.2012 13:58 #7

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

Damian 09.04.2012 10:46 #6

Здравствуйте!
А можно сделать так, чтобы при смене языка переводилось и название сайта?

artem-tur 08.04.2012 20:37 #5

Добрый день. Сделал всё так, как описано в статье. Но флажки всё равно не выводятся. Если ставлю выпадающий список, то он оказывается пустой((( Даже не знаю в чём тут дело.

Damian 22.03.2012 15:49 #4

Может кто подскажет. У меня такая проблема - в менеджере меню отсутствует пункт "Связи пункта меню". Как сделать чтоб этот пункт появился?

Вячеслав 18.02.2012 02:30 #3

Возникла некоторая трудность. Сайт имеет два языка: Английский и Русский. При вводе адреса сайта, в адресной строке автоматически дописывается префикс языка который стоит как "язык сайта по умолчанию". Как сделать так чтобы отображалось "адрес_сайта/index.php" , а не например "адрес_сайта/index.php/ru"

Filin-Rock 10.01.2012 13:19 #2

Хороший сайт, жаль что раньше на него не "натыкался"(

Gluks 30.11.2011 16:45 #1

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

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


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