From c5295f0fee7e371a547fa295d424e3d6aa8c045f Mon Sep 17 00:00:00 2001 From: decoder Date: Wed, 13 Mar 2024 10:31:30 +0500 Subject: [PATCH] add locale middleware --- app/Http/Kernel.php | 1 + app/Http/Middleware/LocaleMiddleware.php | 41 ++++++++++++++++++++++++ routes/web.php | 2 +- 3 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 app/Http/Middleware/LocaleMiddleware.php diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 7e78f26..12c681a 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -64,5 +64,6 @@ class Kernel extends HttpKernel 'bootstrap' => \App\Http\Middleware\Callbacks::class, 'setDefaultConfig' => \App\Http\Middleware\SetDefaultConfigForUser::class, 'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class, + 'locale' => \App\Http\Middleware\LocaleMiddleware::class, ]; } diff --git a/app/Http/Middleware/LocaleMiddleware.php b/app/Http/Middleware/LocaleMiddleware.php new file mode 100644 index 0000000..884256a --- /dev/null +++ b/app/Http/Middleware/LocaleMiddleware.php @@ -0,0 +1,41 @@ +user()->id)->first(); + + $locale = 'en'; + if (! in_array($userSetting->language, ['en', 'ru', 'est'])) { + $locale = $userSetting->language; + } + Session::put('locale', $locale); + + app()->setLocale($locale); + + if (!empty($userSetting)) { + $userSetting->update([ + 'language' => $locale + ]); + } + } + + return $next($request); + } +} diff --git a/routes/web.php b/routes/web.php index 2232ed6..f50a1b8 100644 --- a/routes/web.php +++ b/routes/web.php @@ -42,7 +42,7 @@ Route::middleware(['IsInstalled'])->group(function () { Route::post('registration', [RegistrationController::class, 'store']); }); -Route::middleware(['IsInstalled', 'auth', 'bootstrap', 'setDefaultConfig'])->group(function () { +Route::middleware(['locale', 'IsInstalled', 'auth', 'bootstrap', 'setDefaultConfig'])->group(function () { Route::get('/home', [HomeController::class, 'index'])->name('home'); Route::get('/home-template', [HomeController::class, 'getTemplate']); Route::get('/home-assigned-forms', [HomeController::class, 'getAssignedForms']);