header("lang"); // dd($user_locale); if (empty($user_locale) || !in_array($user_locale, ['cn', 'en', 'tw', 'tr'])) { // $user_locale = 'en'; $user_locale = 'zh-CN'; } if ($user_locale == 'cn') $user_locale = 'zh-CN'; if ($user_locale == 'tw') $user_locale = 'zh-TW'; $app_locale = App::getLocale(); // dd($app_locale); if ($app_locale !== $user_locale) { echo 3333; App::setLocale($user_locale); } // dd(App::getLocale()); return $next($request); } private static function useQuery($request) { $uri = $request->path(); $map = [ 'api/app/exchange/getCoinInfo', 'api/exchange/getCoinInfo', 'api/app/article/list', 'api/article/list', 'api/app/user/logout', 'api/user/logout' ]; if (!in_array($uri, $map)) return $request->header("lang"); if (!isset($request->query()['lang'])) return $request->header("lang"); return $request->query()['lang']; } public function handle($request, Closure $next) { $user_locale = $request->header("Lang"); $user_locale = self::useQuery($request); // 语言缩写 $suoxie = [ 'cn', 'en', 'tw', 'tr', 'jp', // 日本 'kor', // 韩语 'de', // 德国 'it', // 意大利 'nl', // 芬兰 'pl', // 波兰 'pt', // 葡萄牙 'spa', // 西班牙 'swe', // 瑞典 'uk', // 乌克兰 'fin', // 芬兰 'fra', //法国 'zh-CN', 'zh-TW' ]; $str = ''; // if (empty($user_locale) || !in_array($user_locale, $suoxie) || empty($request->Cookie())) { // //$user_locale = 'zh-CN'; // $user_locale = 'en'; // } if (empty($user_locale) || !in_array($user_locale, $suoxie)) { //$user_locale = 'zh-CN'; $user_locale = 'en'; } if ($user_locale == 'cn') $user_locale = 'zh-CN'; if ($user_locale == 'tw') $user_locale = 'zh-TW'; $app_locale = App::getLocale(); // var_dump($app_locale);exit; if ($app_locale !== $user_locale) { App::setLocale($user_locale); } return $next($request); } }