From 262d48e1f7dd144e3e4e53a56cbeac65adec302e Mon Sep 17 00:00:00 2001 From: Pig Fang Date: Fri, 26 Apr 2019 00:01:32 +0800 Subject: [PATCH] Fix switching i18n --- app/Http/Kernel.php | 2 +- app/Http/Middleware/DetectLanguagePrefer.php | 6 +++--- app/Http/Middleware/EncryptCookies.php | 17 +++++++++++++++++ 3 files changed, 21 insertions(+), 4 deletions(-) create mode 100644 app/Http/Middleware/EncryptCookies.php diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 203848d9..05025199 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -27,7 +27,7 @@ class Kernel extends HttpKernel */ protected $middlewareGroups = [ 'web' => [ - \Illuminate\Cookie\Middleware\EncryptCookies::class, + \App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, diff --git a/app/Http/Middleware/DetectLanguagePrefer.php b/app/Http/Middleware/DetectLanguagePrefer.php index 1a325b74..455805cb 100644 --- a/app/Http/Middleware/DetectLanguagePrefer.php +++ b/app/Http/Middleware/DetectLanguagePrefer.php @@ -2,6 +2,7 @@ namespace App\Http\Middleware; +use Cookie; use Illuminate\Support\Arr; use Illuminate\Http\Request; use Illuminate\Http\Response; @@ -10,13 +11,12 @@ class DetectLanguagePrefer { public function handle($request, \Closure $next) { - $locale = $request->input('lang') ?? session('locale') ?? $request->getPreferredLanguage(); + $locale = $request->input('lang') ?? $request->cookie('locale') ?? $request->getPreferredLanguage(); if (($info = Arr::get(config('locales'), $locale)) && ($alias = Arr::get($info, 'alias'))) { $locale = $alias; } app()->setLocale($locale); - session(['locale' => $locale]); - + Cookie::queue('locale', $locale); return $next($request); } } diff --git a/app/Http/Middleware/EncryptCookies.php b/app/Http/Middleware/EncryptCookies.php new file mode 100644 index 00000000..b46067d5 --- /dev/null +++ b/app/Http/Middleware/EncryptCookies.php @@ -0,0 +1,17 @@ +