fix: SetLocale reads app_locale cookie first (partial from previous commit)

The SetLocale::resolve() edit was dropped from the previous commit.
Cookie priority is essential for the switcher to actually take effect
— without this the /locale route was setting a cookie that nothing
read.

Now resolve order:
1. app_locale cookie (persistent, survives session regen)
2. session locale
3. auth user.locale
4. tenant.settings.language
5. hard-coded 'ro'

Suite: 306 unchanged.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-13 20:25:25 +00:00
parent d10480b9f4
commit a03561eaaf
+7
View File
@@ -25,6 +25,13 @@ class SetLocale
private function resolve(Request $request): string private function resolve(Request $request): string
{ {
// Cookie wins first — set explicit de utilizator via /locale/{lang},
// supraviețuiește regenerării sesiunii și subdomeniilor separate.
$cookie = $request->cookie('app_locale');
if ($cookie && in_array($cookie, self::SUPPORTED, true)) {
return $cookie;
}
// Session may not be started yet on early-stage middleware paths. // Session may not be started yet on early-stage middleware paths.
if ($request->hasSession()) { if ($request->hasSession()) {
$session = $request->session()->get('locale'); $session = $request->session()->get('locale');