Certified/app/Http/Middleware/SetLocale.php
Joël van de Wouw ac340d125c
Some checks failed
linter / quality (push) Failing after 13s
tests / ci (8.3) (push) Failing after 2s
tests / ci (8.4) (push) Failing after 2s
tests / ci (8.5) (push) Failing after 3s
Initial commit
Certificate manager built on Laravel 13, Livewire 4, and Flux.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-12 14:44:58 +02:00

31 lines
857 B
PHP

<?php
namespace App\Http\Middleware;
use App\Enums\Locale;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Auth;
use Symfony\Component\HttpFoundation\Response;
class SetLocale
{
/**
* Resolve the locale to use for this request, preferring (in order) the
* authenticated user's saved preference, a locale switched to earlier in
* the session, and finally the browser's Accept-Language header.
*/
public function handle(Request $request, Closure $next): Response
{
$locale = Auth::check()
? Auth::user()->locale
: session('locale') ?? $request->getPreferredLanguage(Locale::values());
if (in_array($locale, Locale::values(), true)) {
App::setLocale($locale);
}
return $next($request);
}
}