36  /  382
Справочник

Механизм реализации

Просмотров: 34311
Дата последнего изменения: 21.07.2023
Роберт Басыров
Сложность урока:
2 уровень - несложные понятия и действия, но не расслабляйтесь.
1
2
3
4
5
Недоступно в лицензиях:
Ограничений нет

Языковое сообщение - группа фраз на разных языках, имеющая один смысл.


  • В папке шаблона сайта создается папка с именем /lang/:
    /bitrix/templates/< идентификатор шаблона >/lang/
  • В папке /lang/ создаются папки с идентификаторами используемых языков: /en/, /de/, /ru/ и т.д. Например:
    /bitrix/templates/<идентификатор шаблона>/lang/ru/
  • В созданных папках размещаются соответствующие файлы языковых сообщений. Они характеризуются следующими параметрами:

    • Имя файла языковых сообщений соответствует имени файла, в котором выполняется его вызов. Например, если предполагается, что вызов файла с языковыми сообщениями будет выполняться в прологе шаблона сайта (файл header.php), то файл языковых сообщений должен быть сохранен с именем header.php;
    • Список сообщений в файле хранится в следующем виде:
      <?
      $MESS ['COMPANY_NAME'] = "Company Name";
      $MESS ['MAIN_PAGE'] = "Home page";
      $MESS ['PRINT'] = "Print version";
      $MESS ['AUTH_LOGIN'] = "Authorization";
      $MESS ['RATES_HEADER'] = "Currency rates";
      $MESS ['SEARCH'] = "Site search";
      $MESS ['SUBSCR'] = "Subscription";
      ?>
      где выражение в скобках это код фразы (например, 'COMPANY_NAME')

      Примечание: Система собирает все языковые файлы и формирует единый массив $MESS при формировании страницы. И если языковые фразы в разных местах имеют одинаковый код, то во всех местах будет использоваться код из последнего подключенного языкового файла. Это приводит к выводу неверной фразы. Рекомендуется создавать максимально уникальные ключи.


  • Затем в начало файла, для которого предусмотрено использование языковых сообщений (например, header.php), добавляется функция:
    <?
    Loc::loadMessages(__FILE__).
    ?>
    Функция выполняет подключение файла языковых сообщений для текущего языка.
  • Далее все текстовые сообщения заменяются на функции вызова соответствующих языковых сообщений:
    <?echo Loc::getMessage("SEARCH");?>
    В качестве параметра функции GetMessage() используется код подключаемого сообщения. Функция проверяет наличие в подключенном языковом файле сообщения с соответствующим кодом и отображает его пользователю.

45
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии