Одной из важнейших преимуществ любой 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 [Текст], добавляем новую метку, которую хотим использовать для данной константы.

Языковая константа Joomla

Это все, что от нас требовалось сделать, сохраняем изменения. Теперь в списке схем переопределения мы можем видеть новую запись, при необходимости её можно отредактировать или удалить в любое время. Данные схемы хранятся в отдельном файле отдельно от основного файла языка, в нашем случае это 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 способная реализовать полнофункциональный мультиязычный веб-сайт. Безопасное изменение языковых констант через панель администрирования исключает возможность случайного перезатирания данных во время обновления.


 
4.5283687943262 1 1 1 1 1 (Оценок: 282)
4.5283687943262 282
Опубликовано: 05-02-2016

Комментарии  

Юрий
0 #1 Юрий 20.04.2016 20:04
Немного запутанный момент касательно хранения переопределений . Ведь если вносимые изменения хранятся отдельно от ядра, то в ядре присутствуют значения, которые были по-умолчанию, то есть до переопределения . Так какие действия необходимо сделать, чтобы вернуть какой-либо константе исходное значение?
Support
+3 #2 Support 21.04.2016 16:26
В списке переопределенны х констант, удаляете ненужные и все. После чего вновь будут отображаться стандартные значения.

Вы не зарегистрированы, чтобы оставлять комментарии.