<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                [TOC] * * * * * ## 1 語言包管理文件源代碼(thinkphp\library\think\Lang.php) ~~~ private static $lang = []; private static $range = 'zh-cn'; ~~~ ~~~ public static function range($range = '') { if ('' == $range) { return self::$range; } else { self::$range = $range; } } ~~~ ~~~ public static function set($name, $value = null, $range = '') { $range = $range ?: self::$range; if (!isset(self::$lang[$range])) { self::$lang[$range] = []; } if (is_array($name)) { return self::$lang[$range] = array_change_key_case($name) + self::$lang[$range]; } else { return self::$lang[$range][strtolower($name)] = $value; } } ~~~ ~~~ public static function load($file, $range = '') { $range = $range ?: self::$range; if (!isset(self::$lang[$range])) { self::$lang[$range] = []; } if (is_string($file)) { $file = [$file]; } $lang = []; foreach ($file as $_file) { APP_DEBUG && Log::record('[ LANG ] ' . $_file, 'info'); $_lang = is_file($_file) ? include $_file : []; $lang = array_change_key_case($_lang) + $lang; } if (!empty($lang)) { self::$lang[$range] = $lang + self::$lang[$range]; } return self::$lang[$range]; } ~~~ ~~~ public static function get($name = null, $vars = [], $range = '') { $range = $range ?: self::$range; if (empty($name)) { return self::$lang[$range]; } $key = strtolower($name); $value = isset(self::$lang[$range][$key]) ? self::$lang[$range][$key] : $name; if (!empty($vars) && is_array($vars)) { if (key($vars) === 0) { array_unshift($vars, $name); $value = call_user_func_array('sprintf', $vars); } else { $replace = array_keys($vars); foreach ($replace as &$v) { $v = "{:{$v}}"; } $value = str_replace($replace, $vars, $value); } } return $value; } ~~~ ~~~ public static function detect() { $langCookieVar = Config::get('lang_cookie_var'); $langDetectVar = Config::get('lang_detect_var'); $langSet = ''; if (isset($_GET[$langDetectVar])) { $langSet = strtolower($_GET[$langDetectVar]); \think\Cookie::set($langCookieVar, $langSet, 3600); } elseif (\think\Cookie::get($langCookieVar)) { $langSet = strtolower(\think\Cookie::get($langCookieVar)); } elseif (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { preg_match('/^([a-z\d\-]+)/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches); $langSet = strtolower($matches[1]); \think\Cookie::set($langCookieVar, $langSet, 3600); } if (in_array($langSet, \think\Config::get('lang_list'))) { self::$range = $langSet; } } ~~~ ## 2 文件分析 1 靜態變量 ~~~ $lange: 語言參數數組 $range: 作用域參數 ~~~ 2 `public static function range($range = ''){}` 設置語言作用域 > $range:作用域參數 3 `public static function set($name, $value = null, $range = ''){}` 設置語言配置參數 > $name:語言名稱 > $value:語言對應值 > $range:作用域 4 `public static function load($file, $range = ''){}` 加載應用文件 > $file:語言文件 5 `public static function get($name = null, $vars = [], $range = ''){}` 獲取語言配置參數 > $name: 語言名稱 > $vars: 語言對應值 > $range: 作用域 6 `public static function detect(){}` 自動偵測設置獲取語言選擇 ## 3 使用 ## 4 總結
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看