Просмотров: 33957
Дата последнего изменения: 21.07.2023
Сложность урока:
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()
используется код подключаемого сообщения. Функция проверяет наличие в подключенном языковом файле сообщения с соответствующим кодом и отображает его пользователю.