Многоязычный сайт Joomla 3 на шаблоне helix 3 framework

Рекомендую хостинг которым я пользуюсь

Всем привет. В этом посте я поделюсь с вами тем, как боролся с шаблоном для Jommla 3, основанным на helix 3 framework. Началось все с того, что очередной клиент захотел себе сайт на шаблоне At Creative от студии AGE THEMES. Шаблон хороший, адаптивный, но не совсем заточен под многоязычие, и дело тут не только в верхнем меню, но и настройках шрифтов сайта.


Содержание:


Давайте обо всем по порядку.

1. Главное меню сайта выбирается в настройках шаблона.

Особенностью шаблонов, которые основаны на helix 3 framework или в шаблонах типа Purity III, является то, что основное меню сайта располагается на сайте не путем размещения модуля меню в определенной позиции шаблона, а выбирается в настройках шаблона.

Выбор главного меню

Ладно если бы можно было в этих настройках выбрать несколько меню, но нет. Читал на форуме, что для того, чтобы решить эту проблему, нужно дублировать стиль шаблона и выбирать в настройках копии стиля шаблона другое меню. Далее, как пишут на форуме, необходимо скопированный стиль присваивать пунктам меню нужного языка в настройках шаблона (для Helix 3 это Assignment рисунок ниже)

Присваиваем стиль шаблона пунктам меню

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

Я решил не заморачиваться с копированием стилей шаблона и использовать более простой способ.

И так, если правильно устанавливать Joomla 3, то можно еще на этапе установки организовать на нем многоязычность. Как это сделать можно прочесть тут: Как сделать многоязычный сайт на этапе установки Joomla 3.

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

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

ПОМНИТЕ! При создании любых элементов для многоязычного сайта, будь-то пункты меню, материалы или модули, каждому из них нужно обязательно указывать к какому языку он относится.

Пунктов в одном меню получится очень много, и с первого взгляда может показаться что управлять этим списком будет очень сложно, но не стоит забывать о том, что почти любой список, в том числе и список пунктов меню можно легко отфильтровать с помощью Инструментов Поиска, расположенных над списком, рядом с полем поиска )

Фильтр пунктов меню

Теперь у нас есть меню, которое содержит все пункты меню сайта на всех языках и именно это меню мы выбираем в настройках шаблона:

Выбор меню в настройках шаблона

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

 2. Проблема с настройками шрифтов текста в настройках шаблона.

Настройка шрифтов сайта

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

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

Изначально, если ничего не менять, то строка подключения шрифта выглядит так:

и в этой строке четко видно, что для подключаемого шрифта выбрана латиница, а мы хотим чтобы в этой строке кроме латиницы была так же и кириллица, то есть строка вида

Чтобы этого добиться открываем файл /plugins/system/helix3/core/helix3.php

ищем место, в котором формируется строка подключения шрифта. У меня это строки кода 813-816 и код выглядит так:

и немного меняем код. Изменения выделены серым цветом

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

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

Если статья помогла, вы можете отблагодарить автора просто кликнув в НУЖНОМ МЕСТЕ на сайте. Каждое такое НУЖНОЕ МЕСТО специально подписано )
автор: Руслан Овчинников
Оценка: 1Оценка: 2Оценка: 3Оценка: 4Оценка: 5 (4 оценок, в среднем: 3,00 из 5)
Загрузка...

  • Max

    Уже больше года таким шаблонам, есть ещё два по аналогичному принципу сделанные. Удобный для тех кто не разбирается в web программировании. Просто мышкой перетащил, нажал и готова тема.
    Для основательных проектов это никак не подходит.
    И всё же веб разработчик владеющий html, css, js, php и многим чем другим будет на голову выше всех этих конструкторов сайтов. Кто делал более менее серьёзный проект, например интернет магазин, тот поймёт.

    • Руслан

      Max, а в чем суть этой вашей пафосной речи? ))

  • tttatiana

    что делать с главной страницей, у которой по умолчанию должны быть «все языки». такое меню нельзя отключить, джумла ругается, что д.б. один главный пункт со всеми языками. Что тогда в русской или английской версии в главном меню будет показано 2 «Главных»? как обойти это требование про главную страницу на всех языках?

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

  • Evgeniy
    • Вы проверяли работоспособность этого решения?