Локализация Битрикс

Стандартный способ локализовать компонент — это в ближайшей языковой папке «lang» вверх по дереву папок найти языковой файл с путем «идентификатор языка/обратный путь вниз по дереву до локализуемого файла/локализуемый файл». Например для файла

/bitrix/components/demo/news/.parameters.php

языковым является

/bitrix/components/demo/news/lang/ru/.parameters.php

Данный файл содержит определение языкозавсимых фраз доступных в теле файла:

$MESS ['BN_P_SORT_ASC'] = "по возрастанию";
$MESS ['BN_P_SORT_DESC'] = "по убыванию";
$MESS ['BN_P_IBLOCK_TYPE'] = "Тип инфо-блока";
$MESS ['BN_P_IBLOCK'] = "Инфо-блок";
$MESS ['BN_P_CACHE_FILTER'] = "Кэшировать при установленном фильтре";

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

Для таких ситуаций есть обходной путь.

Необходимо создать глобальный языковой файл и разместить его по адресу: 

\bitrix\php_interface\user_lang\ru\lang.php

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

$MESS​["/bitrix/components/bitrix/intranet.reserve_meeting/lang/ru/.description.php"]​["RESMIT_COMPONENT"] = "Резервирование залов заседаний";
$MESS​["/bitrix/components/bitrix/intranet.reserve_meeting/lang/ru/.description.php"]​["RESMIT_COMPONENT_DESCRIPTION"] = "Комплексный компонент резервирования ресурсов";
$MESS​["/bitrix/components/bitrix/intranet.reserve_meeting/lang/ru/.description.php"]​["RESMIT"] = "Резервирование ресурсов";

  • Andrey

    А есть ли файл с глобальными языковыми переменными. чтобы не было зависимости от пути. То есть чтобы в любом компоненте получить нужное значение. Хочу использовать как справочник по кодам цветов.