/** * 设置配置【语言】 支持批量设置 /a.b.c方式设置 * * @param string|array $key 要设置的key,为数组时是批量设置 * @param mixed $value 要设置的值 * * @return null */ public static function set($key, $value = null) { if (is_array($key)) { static::$lang = array_merge(static::$lang, array_change_key_case($key)); } else { $key = strtolower($key); if (!strpos($key, '.')) { static::$lang[$key] = $value; return null; } // 多维数组设置 A.B.C = 1 $key = explode('.', $key); $tmp = null; foreach ($key as $k) { if (is_null($tmp)) { if (isset(static::$lang[$k]) === false) { static::$lang[$k] = []; } $tmp =& static::$lang[$k]; } else { is_array($tmp) || ($tmp = []); isset($tmp[$k]) || ($tmp[$k] = []); $tmp =& $tmp[$k]; } } $tmp = $value; unset($tmp); } return null; }
/** * @param $pack * @return Translate */ static function load_lang($pack = null) { if (!static::$lang) { static::$lang = NCService::load('Application.Translate'); } return static::$lang; }
/** * Gets / sets current language * * @param string $lang - if provided sets new language * @return string - current language */ public static function language($lang = null) { if (!is_null($lang)) { static::$lang = $lang; } return static::$lang; }
/** * Load Language */ protected function loadLanguage() { if (file_exists($language = ROOT . '/' . 'lang' . '/' . static::$site['backend_language'] . '.yml')) { static::$lang = Spyc::YAMLLoad(file_get_contents($language)); } else { die("Oops.. Where is language file ?!"); } }
/** * */ public static function init() { static::loadCore(); static::loadCountries(); static::$lang = \HaaseIT\HCSF\Helper::getLanguage(); static::loadSecrets(); if (static::$core["enable_module_customer"]) { static::loadCustomer(); } if (static::$core["enable_module_shop"]) { static::loadShop(); } }
public static function lang() { if (static::$lang) { return static::$lang; } if (isset($_REQUEST['lang']) && static::validLang($_REQUEST['lang'])) { return static::$lang = $_REQUEST['lang']; } if (isset($_SESSION['lang']) && static::validLang($_SESSION['lang'])) { return static::$lang = $_SESSION['lang']; } $user = UserHandler::instance()->user(); if (!is_null($user) && static::validLang($user->lang())) { return static::$lang = $user->lang(); } return static::$lang = DEFAULT_LANGUAGE; }
public static function load($langCode) { $fileName = $langCode . '.php'; if (file_exists(PATH_BASE . '/config/languages/' . $fileName)) { $lang = (include_once PATH_BASE . '/config/languages/' . $fileName); static::$language = array_merge(static::$language, $lang); static::$lang = $langCode; } else { $fileName = DEFAULT_LANG . '.php'; if (file_exists(PATH_BASE . '/config/languages/' . $fileName)) { $lang = (include_once PATH_BASE . '/config/languages/' . $fileName); static::$language = array_merge(static::$language, $lang); static::$lang = DEFAULT_LANG; } else { die('Unable to load the requested language file: ' . $fileName); } } }
protected static function init() { static::$lang = 'en'; /* Load Language List */ if (static::$languageList === null) { static::$languageList = (require_once PATH_INSTALL . '/install_files/lang/list.php'); } /* Get User Choose Language */ if (isset($_GET['lang']) && isset(static::$languageList[$_GET['lang']])) { static::$lang = $_GET['lang']; setcookie('lang', static::$lang); } else { if (isset($_COOKIE['lang']) && isset(static::$languageList[$_COOKIE['lang']])) { static::$lang = $_COOKIE['lang']; } } /* Load Language File */ if (static::$langStrings === null) { $path = PATH_INSTALL . '/install_files/lang/' . static::$lang . '/lang.php'; static::$langStrings = (require_once $path); } }
/** * Sets the current language */ public static function setLang($lang) { static::$lang = $lang; \Config::set('language', $lang); if (static::$lang_default != $lang) { \Lang::load('errors', true, $lang, false, true); \Lang::load('admin', true, $lang, false, true); \Lang::load('site', true, $lang, false, true); \Lang::load('languages', true, $lang, false, true); static::$lang_prefix = "/{$lang}"; } \CMF\Doctrine\Extensions\Translatable::setLang($lang); }
/** * Set language for global usage. * * @static * @access public * @param string $sVal * @since 1.0.0-alpha * @version 1.0.0-alpha */ public static function setLang($sVal) { static::$lang = $sVal; }
public static function setup() { if (!\IS_CLI) { # 客户端语言包 $accept_language = $_SERVER['HTTP_ACCEPT_LANGUAGE']; # 匹配语言设置 if (\preg_match_all('#,([a-z]+\\-[a-z]+);#i', $accept_language, $matches)) { $accept_language = $matches[1]; $accept_language = \array_slice($accept_language, 0, 2); //只取前3个语言设置 \array_map('\\strtolower', $accept_language); if (isset(\Bootstrap::$config['core']['lang']) && !\in_array(\Bootstrap::$config['core']['lang'], $accept_language)) { $accept_language[] = \Bootstrap::$config['core']['lang']; } } elseif (isset(\Bootstrap::$config['core']['lang'])) { $accept_language = array(\Bootstrap::$config['core']['lang']); } else { $accept_language = array('zh-cn'); } # 包含目录 $include_path = \Bootstrap::$include_path; # 逆向排序,调整优先级 \krsort($include_path); $lang_key = \implode(';', $accept_language); $cache_file = \DIR_CACHE . 'lang_serialized_cache_for_' . $lang_key; if (\is_file($cache_file)) { $changed = false; $last_mtime = \filemtime($cache_file); if ($last_mtime) { foreach ($accept_language as $lang) { foreach ($include_path as $path) { $file = $path . 'i18n' . \DS . $lang . '.lang'; if (\is_file($file)) { if ($last_mtime < \filemtime($file)) { $changed = true; break 2; } } } } } # 没有修改过 if (!$changed) { static::$lang = (array) @\unserialize(\file_get_contents($cache_file)); return; } } # 获取语言文件 $lang = array(); foreach ($accept_language as $l) { foreach ($include_path as $path) { $file = $path . 'i18n' . \DS . $l . '.lang'; if (\is_file($file)) { $tmp_arr = @\parse_ini_file($file); if ($tmp_arr) { $lang = \array_merge($lang, $tmp_arr); } } } } if (!\is_file($cache_file)) { @\file_put_contents($cache_file, \serialize($lang)); } static::$lang = $lang; } }
/** * Set Text languge * * @param Language $lang Language instance * * @return void */ public static function setLanguage(Language $lang) { static::$lang = $lang; return; }
/** * Set user lang * * @param string $lang */ public static function set($lang) { static::$lang = $lang; }