Где и как хранить языковые фразы для javascript в Битрикс?

Всем привет.
Насколько я понимаю при создании модулей для битрикса языковые файлы lang/*/*.php нужно хранить в cp1251 кодировке, а остальные в UTF

Но как быть с js файлами в которых присутствуют языковые фразы?
Если сайт в UTF и файл в UTF то проблем нет
Но если сайт в cp1251 а файл в UTF то все плохо.

В битриксе есть механизм для хранения и подгрузки языковых враз в скрипт?
  • Вопрос задан
  • 172 просмотра
Пригласить эксперта
Ответы на вопрос 3
  • AlexeyGfi
    @AlexeyGfi
    Дизайн . Битрикс . html . css . js == 20$/час
    Так или иначе, задача сводится к тому, чтобы в яваскрипт передать фразу в правильной кодировке.

    Это либо подключение */lang_id/*.js файла, внутри которого определены лингвистические фразы в виде значения переменных, либо инлайн-инициализация переменных с лингвистическими фразами, транслируемыми через php.
    ...либо подгрузка через аякс, но и там сводится к одному из двух.

    Подключение файла: готовите файл и подключаете его например таким кодом:
    $doc_root= \Bitrix\Main\Application::getDocumentRoot();
    $js= __DIR__ . '/lang/'.LANGUAGE_ID.'/js_lang.js';
    \Bitrix\Main\Page\Asset::getInstance()
    	->addJs( $js . '?x=' . md5( filemtime( $doc_root . $js ) ), true );


    Инлайн-инициализация при сборке страницы:
    <script ...>
    lang_me= {
    	'MENU_TITLE' : 'php-код'
    	...
    }
    </script>

    где php-код:
    <?=GetMessageJS('MENU_TITLE')?>
    Ныряя в GetMessageJS видим обычный GetMessage, обёрнутый escape-функцией (CUtil::JSEscape) для корректной трансляции символов.
    Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Вакансии с Моего Круга Все вакансии
Заказы с Фрилансим Все заказы