Как переопределять языковые константы в Joomla?
Одной из важнейших преимуществ любой CMS - это возможность выбора языка, ведь в рамках сети интернет, аудитория не ограничивается каким-то отдельным регионом, когда доступ к сайту имеет весь мир. Joomla включает в себя поддержку мультиязычности и позволяет переопределять языковые константы и этот функционал доступен и работает "из коробки".
Основная трудность типичных CMS заключается в том, что расширения или шаблоны вносят изменения в языковые файлы, которые могут быть потеряны после процедур обновлений. С другой стороны, неопытные администраторы могут непреднамеренно вносить изменения в языковые файлы в неверной кодировке, что приведет к неверному отображению текста.
Не стоит беспокоиться, Joomla продумала эти моменты и защищает языковые файлы от перезаписи, а все изменения можно выполнять из панели администратора. Более того, все внесенные изменения применяются сразу, при этом не требуется покидать панель администратора.
Особенности переопределения языковых константы в Joomla
Описываемый метод известен как Language Overrides [Переопределение языковых констант] и доступен через панель администрирования в разделе Language Manager [Менеджер языков], где вы сможете переопределить языковые константы.
Любой пользователь, который вносит правки в языковый файл должен иметь небольшой опыт и знать о языковых константах, для новичков этот момент может казаться запутанным. Фактически Joomla использует константы для заполнения языковых строк и представляет их в виде шаблонных меток, которые могут быть заменены пользовательским текстом. К примеру, константа COM_CONTENT_ARTICLE_HITS определяет текст Hits, которую можно встретить в контенте Joomla типа article (статья), изменяя её значение, мы изменяем сам текст, который будет отражен на сайте.
Добавление новой схемы переопределения
Для добавления новой схемы переопределения откройте manager, выбирайте Extensions → Language Manager [Расширения → Менеджер языков] в панели администрирования Joomla. В данном разделе мы можем установить новые языки, задать язык для сайта и панели администрирования, а так же редактировать основные настройки, такие как языковые теги и название сайтов. Здесь нам будет интересен четвертый пункт левого меню - Overrides [Переопределение констант], откуда мы попадем на страницу схем переопределений.
Прежде всего необходимо убедиться, что мы вносим изменения для нужного языка; каждый язык в Joomla имеет свой приоритет, который записывается в файл, вы можете просматривать и изменять язык на любом этапе и в любое время. В левой боковой панели есть фильтр, где вы можете выбрать интересующий вас язык, а так же для какой части сайта будут внесены изменения - панель администрирования или основная часть. Таким образом, если мы желаем изменить языковые константы в выбранном языке Russian, например для Article Hits или Read More, выбираем из списка Russian (ru-RU) - Сайт.
Нажмите кнопку New [Создать], в верхней части экрана, после чего откроется страница Edit Override [Редактирование языковой константы], где мы найдем все интересующие нас настройки:
Здесь, в поле Language Constant [Языковая константа], мы вводим имя константы, которую хотим изменить или переопределить, например COM_CONTENT_ARTICLE_HITS. Затем, в поле Text [Текст], добавляем новую метку, которую хотим использовать для данной константы.
Это все, что от нас требовалось сделать, сохраняем изменения. Теперь в списке схем переопределения мы можем видеть новую запись, при необходимости её можно отредактировать или удалить в любое время. Данные схемы хранятся в отдельном файле отдельно от основного файла языка, в нашем случае это language/overrides/en-GB.override.ini, что позволяет избежать инцидентов с случайным затиранием данных.
Поиск языковых констант
Есть ещё одна проблема о которой важно упомянуть. Каждое расширение или шаблон может иметь одну и более уникальных языковых констант, имена которых могут быть достаточно сложны и не всегда можно однозначно трактовать их принадлежность. К счастью, на странице редактирования схем переопределения (Extensions → Language Manager : Edit Overrides) справа есть поле, которое позволяет задать строку поиска:
Изменяя поле Search For [Искать], можно найти имя языковой константы, её значение и сам текст, который она определяет:
К примеру, во многих шаблонах используется строка "Hits" [Кол-во просмотров], который можно видеть в нижней части контента, перед блоком комментариев. Если стоит задача изменить данный текст, то ищем строку "просмотров" в поле Search For [Искать], после чего будут отображены все языковые константы, содержащие данную строку, мы с легкостью найдем нужную нам константу COM_EASYDISCUSS_PLUGIN_HITS. Важно понимать, что нам будут предложены все найденные результаты, которые схожи со строкой поиска, то есть не обязательно знать точное название языковой константы или её значения.
И еще один приятный нюанс, который ускоряет процесс изменения: после нажатия на нужный элемент в результатах поиска, все поля раздела Edit Override [Редактирование языковой константы] будут автоматически заполнены текущими значениями, что позволит сэкономить несколько драгоценных секунд.
Советы
В рамках данного метода могут быть задействованы нестандартные решения:
1. Для изменения большого количества языковых констант и настроек не обязательно использовать панель администрирования. Данные хранятся в файле, поэтому можно выполнить пакетную обработку путем редактирования файла. Файл с настройками можно найти тут language/overrides/.LANG_CODE.override.ini, где LANG_CODE - это код языка, например en-GB, pl-PL, de-DE и т.д.
2. Так же как и мы переопределяем языковые константы для основной части сайта, мы можем проделать аналогичные изменения и для панели администрирования, чтобы сделать её более понятным для пользователей или сотрудников.
Заключение
Возможность переопределять языковые константы несомненно большой плюс в сторону Joomla как CMS способная реализовать полнофункциональный мультиязычный веб-сайт. Безопасное изменение языковых констант через панель администрирования исключает возможность случайного перезатирания данных во время обновления.
Соседние материалы | ||||
Как выбрать лучшие решения для сайта на Joomla? | Фильтрация результатов поиска Joomla |
Комментарии