• Модуль: 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;
}