- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/lib/userconsent/intl.php
- Класс: BitrixMainUserConsentIntl
- Вызов: Intl::getLanguageMessages
static function getLanguageMessages($languageId, array $map = array())
{
// rewrite $languageId by real value from virtual language
$virtualLanguageId = null;
if (isset(self::$virtualLanguageMap[$languageId]))
{
$virtualLanguageId = $languageId;
$languageId = self::$virtualLanguageMap[$virtualLanguageId];
}
// load messages
$messages = Loc::loadLanguageFile(__FILE__, $languageId, true);
// set map by all message codes
if (empty($map))
{
$keys = array_keys($messages);
foreach ($keys as $key)
{
$map[$key] = $key;
}
}
// append postfix to message codes from virtual language
if ($virtualLanguageId)
{
$postfix = '_'.mb_strtoupper($virtualLanguageId);
foreach ($map as $itemKey => $messageKey)
{
if (mb_substr($itemKey, -mb_strlen($postfix)) == $postfix)
{
$oldItemKey = $itemKey;
$itemKey = mb_substr($itemKey, 0, -mb_strlen($postfix));
unset($map[$oldItemKey]);
}
if (mb_substr($messageKey, -mb_strlen($postfix)) != $postfix)
{
if (isset($messages[$messageKey . $postfix]))
{
$messageKey .= $postfix;
}
}
$map[$itemKey] = $messageKey;
}
}
// set messages by map
$item = array();
foreach ($map as $itemKey => $messageKey)
{
$message = $messages[$messageKey] ?? '';
$message = trim($message);
$message = $message == '-' ? '' : $message;
$item[$itemKey] = $message;
}
return $item;
}