| 1234567891011121314151617181920212223242526272829303132 |
- <?php
- namespace App\Http\Middleware;
- use Closure;
- use Illuminate\Http\Request;
- use Symfony\Component\HttpFoundation\Response;
- use Illuminate\Support\Facades\App;
- use App\DTO\UserLanguageDTO;
- use App\Enums\UserLanguageSource;
- use Illuminate\Support\Facades\Log;
- class SetUserLanguage
- {
- /**
- * Handle an incoming request.
- *
- * @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
- */
- public function handle(Request $request, Closure $next): Response
- {
- $language = substr($request->header('Accept-Language'), 0, 2);
- try {
- $language = UserLanguageDTO::fromString($language)->language;
- App::setLocale($language);
- } catch (\InvalidArgumentException $e) {
- Log::error("message: {$e->getMessage()}");
- $language = UserLanguageSource::English;
- }
- return $next($request);
- }
- }
|