From d9ad721862ccaa9079fbb81e3361dc73027acf4f Mon Sep 17 00:00:00 2001 From: Olivier Legat Date: Mon, 24 Jan 2022 16:42:51 +0100 Subject: [PATCH] =?UTF-8?q?am=C3=A9lioration=20de=20la=20d=C3=A9tection=20?= =?UTF-8?q?de=20langue=20souhait=C3=A9e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Middleware/LangCheck.php | 22 ++++++++++++++++++- .../layouts/frontend/app-header.blade.php | 6 ++--- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/app/Http/Middleware/LangCheck.php b/app/Http/Middleware/LangCheck.php index 62b5545..241da0e 100644 --- a/app/Http/Middleware/LangCheck.php +++ b/app/Http/Middleware/LangCheck.php @@ -4,6 +4,7 @@ namespace App\Http\Middleware; use Closure; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Cookie; class LangCheck { @@ -16,12 +17,31 @@ class LangCheck */ public function handle(Request $request, Closure $next) { - //if lang provided then set it + //if lang provided un request then set it if($request->lang) { + //Set cookie + Cookie::queue(Cookie::forever('language', $request->lang)); + //set session $request->session()->put('lang',strtolower($request->lang)); //bonus remove lang parameter from query return redirect()->to($request->fullUrlWithoutQuery('lang')); + } else { + //do we have session ? + if(!$request->session()->has('lang')) { + $fromC = Cookie::get('language'); + if (is_null($fromC) || empty($fromC)) { + //pas de cookie, recherche sur le navigateur + $fromC = substr(Request::server('HTTP_ACCEPT_LANGUAGE'), 0, 2); + if (!in_array($fromC, ['fr', 'en', 'es'])) { + //default other languages to en + $fromC = 'en'; + } + } + //set session + $request->session()->put('lang',strtolower($fromC)); + } } + $sess_lang = $request->session()->get('lang', config('app.locale')); app()->setLocale($sess_lang); return $next($request); diff --git a/resources/views/layouts/frontend/app-header.blade.php b/resources/views/layouts/frontend/app-header.blade.php index 9230b34..f39ffdc 100644 --- a/resources/views/layouts/frontend/app-header.blade.php +++ b/resources/views/layouts/frontend/app-header.blade.php @@ -97,9 +97,9 @@