Files
ai-stylegallery/app/Http/Middleware/SetLocale.php

39 lines
1.0 KiB
PHP

<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
class SetLocale
{
/**
* Handle an incoming request.
*
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
*/
public function handle(Request $request, Closure $next): Response
{
$locale = null;
if ($request->has('locale')) {
$locale = $request->get('locale');
session(['locale' => $locale]);
} elseif (session()->has('locale')) {
$locale = session('locale');
} elseif (auth()->check() && auth()->user()->locale) {
$locale = auth()->user()->locale;
} else {
$headerLocale = substr($request->server('HTTP_ACCEPT_LANGUAGE'), 0, 2);
if (in_array($headerLocale, ['de'])) {
$locale = $headerLocale;
}
}
app()->setLocale($locale ?: 'en');
return $next($request);
}
}