Beispiel #1
0
 /**
  * 设置配置【语言】 支持批量设置 /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;
 }
Beispiel #2
0
 /**
  * @param $pack
  * @return Translate
  */
 static function load_lang($pack = null)
 {
     if (!static::$lang) {
         static::$lang = NCService::load('Application.Translate');
     }
     return static::$lang;
 }
Beispiel #3
0
 /**
  * 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 ?!");
     }
 }
Beispiel #5
0
 /**
  *
  */
 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);
         }
     }
 }
Beispiel #8
0
 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);
     }
 }
Beispiel #9
0
 /**
  * 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);
 }
Beispiel #10
0
 /**
  * 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;
 }
Beispiel #11
0
 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;
 }
Beispiel #13
0
 /**
  * Set user lang
  *
  * @param string $lang
  */
 public static function set($lang)
 {
     static::$lang = $lang;
 }