Блог о программировании на PHP, Yii2, 1C-Bitrix

Интернационализация шаблонов 1С-Битрикс

При написании сайта на системе 1С-Битрикс, если того требует сайт или начальство, используются файлы интернационализации системы, так же известные как Lang-файлы, хранящиеся по пути: «./lang/SITE_LID/file.php».

Допустим, в Lang-файле file.php определена переменная:

<?$MESS["NEED_MESSAGE"] = "Необходимое сообщение";?>

При получении значения на уровне php все прозрачно:

<?=GetMessage("NEED_MESSAGE")?>

на уровне js у многих возникают проблемы, но тут тоже все тривиально, но есть ньюансы:

console.log( BX.message("NEED_MESSAGE") )

, где BX.message определена в header.php шаблона как

<?$APPLICATION->AddHeadString('<script>BX.message('.CUtil::PhpToJSObject( $MESS, false ).')</script>', true);?>

также не забываем подключить lang файл в верху header.php шаблона, т.к. битрикс не удосуживается это сделать сам:

<?IncludeTemplateLangFile(__FILE__);?>