'Deutsch', 'en' => 'English', //'fr' => 'Français', //'es' => 'Español', ]; public $localeFlags = [ 'de' => '🇩🇪', 'en' => '🇬🇧', ]; public $domainName; public function mount() { Log::info('Mounting TopBar'); $sessionLocale = session('locale'); if ($sessionLocale && array_key_exists($sessionLocale, $this->availableLocales)) { app()->setLocale($sessionLocale); $this->currentLocale = $sessionLocale; } else { $this->currentLocale = app()->getLocale(); } $this->domainName = \App\Helpers\ThemeHelper::getDomainName(); } public function switchLanguage($locale) { Log::info('Switching language to: ' . $locale); if (array_key_exists($locale, $this->availableLocales)) { app()->setLocale($locale); session(['locale' => $locale]); $this->currentLocale = $locale; Log::info('Language switched successfully to: ' . $locale); // Wichtig: In Livewire zeigt request()->url() auf /livewire/update. // Für einen Seiten-Reload müssen wir den Browser-Referer nutzen. $referer = request()->header('Referer') ?? '/'; return redirect()->to($referer); } Log::warning('Invalid locale attempted: ' . $locale); } public function render() { return view('livewire.web.components.ui.top-bar'); } }