public static function loadLanguage($langCode = null) { if (is_null($langCode)) { $langCode = self::detectLanguage(); } // If we are asked to load a non-default language, load the English (Great Britain) base translation first if ($langCode != 'en-GB') { static::loadLanguage('en-GB'); } // Main file $filename = APATH_INSTALLATION . '/' . AApplication::getInstance()->getName() . '/language/' . $langCode . '.ini'; $strings = AngieHelperIni::parse_ini_file($filename, false); self::$strings = array_merge(self::$strings, $strings); // Platform override file $filename = APATH_INSTALLATION . '/' . AApplication::getInstance()->getName() . '/platform/language/' . $langCode . '.ini'; if (!@file_exists($filename)) { $filename = APATH_INSTALLATION . '/platform/language/' . $langCode . '.ini'; } if (@file_exists($filename)) { $strings = AngieHelperIni::parse_ini_file($filename, false); self::$strings = array_merge(self::$strings, $strings); } // Performs callback on loaded strings if (!empty(static::$iniProcessCallbacks) && !empty(self::$strings)) { foreach (static::$iniProcessCallbacks as $callback) { $ret = call_user_func($callback, $filename, self::$strings); if ($ret === false) { return; } elseif (is_array($ret)) { self::$strings = $ret; } } } }