From 52c05e6d472aa7a370e3f2c133e03183485b0ba7 Mon Sep 17 00:00:00 2001 From: HolgerHatGarKeineNode Date: Tue, 9 Dec 2025 23:41:44 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9A=99=EF=B8=8F=20Preserve=20user=20language?= =?UTF-8?q?=20preference=20in=20DomainMiddleware=20and=20adjust=20locale?= =?UTF-8?q?=E2=80=91setting=20logic=20to=20avoid=20overwriting=20existing?= =?UTF-8?q?=20session=20values=20while=20still=20configuring=20domain?= =?UTF-8?q?=E2=80=91specific=20app=20settings.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Middleware/DomainMiddleware.php | 29 +++++++++++++++++------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/app/Http/Middleware/DomainMiddleware.php b/app/Http/Middleware/DomainMiddleware.php index 031ab0e..0974891 100644 --- a/app/Http/Middleware/DomainMiddleware.php +++ b/app/Http/Middleware/DomainMiddleware.php @@ -49,16 +49,29 @@ class DomainMiddleware ]; // App-Locale dynamisch setzen - if (isset($domainArray[$domain]['locale'])) { - session([ - 'lang_country' => $domainArray[$domain]['lang_country'], - 'locale' => $domainArray[$domain]['locale'], - ]); + if (isset($domainArray[$domain])) { + $domainConfig = $domainArray[$domain]; + + // Only set session values if they are not already set (first visit) + // This allows user language preferences to persist + if (! session()->has('lang_country')) { + session(['lang_country' => $domainConfig['lang_country']]); + } + + if (! session()->has('locale')) { + session(['locale' => $domainConfig['locale']]); + } + + // Always set config values for the domain config([ - 'app.name' => $domainArray[$domain]['app_name'], - 'app.domain_country' => $domainArray[$domain]['locale'], + 'app.name' => $domainConfig['app_name'], + 'app.domain_country' => $domainConfig['locale'], ]); - App::setLocale($domainArray[$domain]['locale']); + + // Set app locale based on user's current lang_country preference + $currentLangCountry = session('lang_country', $domainConfig['lang_country']); + $currentLocale = explode('-', $currentLangCountry)[0]; + App::setLocale($currentLocale); } return $next($request);