• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/localization/loc.php
  • Класс: BitrixMainLocalizationLoc
  • Вызов: Loc::loadLanguageFile
static function loadLanguageFile($file, $language = null, $normalize = true)
{
	if($language === null)
	{
		$language = self::getCurrentLang();
	}

	if($normalize)
	{
		$file = Path::normalize($file);
	}

	if(!isset(self::$messages[$language]))
	{
		self::$messages[$language] = array();
	}

	//first time call only for lang
	if(!isset(self::$userMessages[$language]))
	{
		self::$userMessages[$language] = self::loadUserMessages($language);
	}

	//let's find language folder and include lang files
	$mess = self::includeLangFiles($file, $language, $langFile);

	if (!empty($mess))
	{
		[$convertEncoding, $targetEncoding, $sourceEncoding] = Translation::getEncodings($language, $langFile);

		foreach ($mess as $key => $val)
		{
			if (isset(self::$customMessages[$language][$key]))
			{
				self::$messages[$language][$key] = $mess[$key] = self::$customMessages[$language][$key];
			}
			else
			{
				if ($convertEncoding)
				{
					if ($targetEncoding !== 'utf-8' || !preg_match('//u', $val))
					{
						$val = Encoding::convertEncoding($val, $sourceEncoding, $targetEncoding);
					}
					$mess[$key] = $val;
				}

				self::$messages[$language][$key] = $val;
			}
		}
	}

	return $mess;
}