Как изменить язык сайта Битрикс для раздела или страницы

Как то раз мне потребовалось сделать один раздел сайта полностью на английском языке, а весь остальной сайт на русском. С первого взгляда все казалось проще некуда, что нужно определить константу LANGUAGE_ID со значением “en” при заданных условиях в init.php. Однако, такой фокус не проходит, т.к. к моменту вызова файла init.php эта константа уже определена, а переопределять константы в PHP запрещено.

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

Пример кода, который помогает установить английский язык для раздела “/en/” включая все вложенные страницы и папки:

if(preg_match('/^\/en\//', $_SERVER['REQUEST_URI'])){
    define("LANGUAGE_ID", 'en');
}

По желанию можно поменять в строке ‘/^\/en\//’ значение папки на свое и получить желаемый результат.

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

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Посты по теме

CRON для сайта

Как сделать свой сайт быстрее и эффективнее путем настройки фоновых заданий на CRON

Настройка CRON для VtigerCRM

Для того, чтобы правильно работали фоновые задания в CRM системе обязаельно нужно настроить запуск исполняющего файла по CRON. Для этого в VtigerCRM есть специальные файлы для Linux и Windows серверов Все что нужно сделать, это добваить в планировщик CRON на линксовом сервере выполнение задачи ~/cron/vtigercron.sh с интервалом 1 раз в минуту.

Исправление PHP Parse error: Unclosed '{' on line в Битриксе

Иногда в Битриксе может возникать ошибка “PHP Parse error: Unclosed ‘{‘ on line …”. Обычно такую ошибку можно обнаружить после переезда на новый хостинг. Для испраления этой ошибки необходимо установить значение on параметра short_open_tag в настройках PHP. Делается это в панели управления хостингом.

Что делать если Bitrix MySQL использует все ресурсы процессора

Однажды столкнулся с интересной проблемой, MySQL стал пожирать полностью все ресурсы процессора. Причем “захват” ресурсов происходил плавно с выраженными скачками на графике мониторинга Провалы на графике это ручной перезапуск службы MySQL Причина утечки процессорных ресурсов под MySQL В поисках причины были исследованы длинные запросы к БД и перепробваны различные комбинации настроек MySQL, но ничего не […]