/** * Loads language messages for specified file * * @param string $file * @param string $language * @return array */ public static function loadLanguageFile($file, $language = null) { if ($language === null) { $language = self::getCurrentLang(); } if (!isset(self::$messages[$language])) { self::$messages[$language] = array(); } //first time call only for lang if (self::$customMessages === null) { self::$customMessages = self::loadCustomMessages($language); } $path = Path::getDirectory($file); static $langDirCache = array(); if (isset($langDirCache[$path])) { $langDir = $langDirCache[$path]; $fileName = substr($file, strlen($langDir) - 5); } else { //let's find language folder $langDir = $fileName = ""; $filePath = $file; while (($slashPos = strrpos($filePath, "/")) !== false) { $filePath = substr($filePath, 0, $slashPos); $langPath = $filePath . "/lang"; if (is_dir($langPath)) { $langDir = $langPath; $fileName = substr($file, $slashPos); $langDirCache[$path] = $langDir; break; } } } $mess = array(); if ($langDir != "") { //load messages for default lang first $defaultLang = self::getDefaultLang($language); if ($defaultLang != $language) { $langFile = $langDir . "/" . $defaultLang . $fileName; if (file_exists($langFile)) { $mess = self::includeFile($langFile); } } //then load messages for specified lang $langFile = $langDir . "/" . $language . $fileName; if (file_exists($langFile)) { $mess = array_merge($mess, self::includeFile($langFile)); } foreach ($mess as $key => $val) { self::$messages[$language][$key] = $val; } } return $mess; }
/** * Loads language messages for specified file * * @param string $file * @param string $language * @param bool $normalize * @return array */ public 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 (self::$userMessages === null) { self::$userMessages = self::loadUserMessages($language); } //let's find language folder and include lang files $mess = self::includeLangFiles($file, $language); foreach ($mess as $key => $val) { if (isset(self::$customMessages[$language][$key])) { self::$messages[$language][$key] = $mess[$key] = self::$customMessages[$language][$key]; } else { self::$messages[$language][$key] = $val; } } return $mess; }