Всем привет!
Хочу поделиться способом подключать языковые файлы для JS. Узнал я о нем от своего наставника Владислава, так что огромная ему благодарность.
Все знают, что у Битрикса есть JS метод BX.message() (), но к сожалению примеров использования в документации нет. Главный вопрос: Как "скормить" ему языковые файлы.
Рассмотрим на примере. Есть компонент с шаблоном, в котором создан script.js. Требуется реализовать мультиязычность в этом скрипте.
1) Создаём языковой файл script.js.php по аналогии с template.php
2) Создаём файл component_epilog.php со следующим содержимым:
3) Используем метод BX.message() в самом script.js
Предложенный вариант подойдет и для использования в шаблонах сайтов.
Всем спасибо!
Хочу поделиться способом подключать языковые файлы для JS. Узнал я о нем от своего наставника Владислава, так что огромная ему благодарность.
Все знают, что у Битрикса есть JS метод BX.message() (), но к сожалению примеров использования в документации нет. Главный вопрос: Как "скормить" ему языковые файлы.
Рассмотрим на примере. Есть компонент с шаблоном, в котором создан script.js. Требуется реализовать мультиязычность в этом скрипте.
1) Создаём языковой файл script.js.php по аналогии с template.php
2) Создаём файл component_epilog.php со следующим содержимым:
use Bitrix\Main\Page\Asset,
Bitrix\Main\Localization\Loc;
// Получаем содержимое языкового файла
$ARJSMESS = Loc::LoadLanguageFile($_SERVER["DOCUMENT_ROOT"].$templateFolder."/script.js.php");
if (!empty($ARJSMESS)) {
// Добавляем объект с переводами.
Asset::getInstance()->AddString("<sc ript type=\"text/javascript\">BX.message(".CUtil::PhpToJSObject($ARJSMESS).")</sc ript>");
} |
Предложенный вариант подойдет и для использования в шаблонах сайтов.
Всем спасибо!