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