コード例 #1
0
ファイル: loc.php プロジェクト: rasuldev/torino
 /**
  * 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;
 }
コード例 #2
0
ファイル: loc.php プロジェクト: DarneoStudio/bitrix
 /**
  * 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;
 }