amélioration de la détection de langue souhaitée
This commit is contained in:
parent
6e81ab0840
commit
d9ad721862
2 changed files with 24 additions and 4 deletions
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -97,9 +97,9 @@
|
|||
|
||||
<span class="secondmenu">
|
||||
<ul class="traduction">
|
||||
<li class="current"><a href="">fr</a></li>
|
||||
<li><a href="">en</a></li>
|
||||
<li><a href="">es</a></li>
|
||||
<li class="@if(App::getLocale() == 'fr') current @endif"><a href="?lang=FR">fr</a></li>
|
||||
<li class="@if(App::getLocale() == 'en') current @endif"><a href="?lang=EN">en</a></li>
|
||||
<li class="@if(App::getLocale() == 'es') current @endif"><a href="?lang=ES">es</a></li>
|
||||
</ul>
|
||||
<button id="search">
|
||||
<svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 28 28">
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue