From 45534be05e862f72045bf701c42e8f4130113df5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=9Cmit=20Tun=C3=A7?= Date: Tue, 4 Nov 2025 15:28:24 -0300 Subject: [PATCH] Add language switch functionality: Implemented a new route for switching languages, allowing users to change the application language dynamically. Introduced a language selector component in the navbar for improved user experience, ensuring proper localization support. Updated the switch_language helper function to streamline locale management. --- app/Helpers/translation_helpers.php | 5 +-- .../custom/language-selector.blade.php | 36 +++++++++++++++++++ routes/web.php | 14 ++++++++ 3 files changed, 51 insertions(+), 4 deletions(-) create mode 100644 resources/views/components/custom/language-selector.blade.php diff --git a/app/Helpers/translation_helpers.php b/app/Helpers/translation_helpers.php index d71464b..02dee5d 100644 --- a/app/Helpers/translation_helpers.php +++ b/app/Helpers/translation_helpers.php @@ -181,10 +181,7 @@ if (!function_exists('switch_language')) { } app()->setLocale($languageCode); - - if (auth()->check()) { - session(['locale' => $languageCode]); - } + session(['locale' => $languageCode]); return true; } diff --git a/resources/views/components/custom/language-selector.blade.php b/resources/views/components/custom/language-selector.blade.php new file mode 100644 index 0000000..2f6883b --- /dev/null +++ b/resources/views/components/custom/language-selector.blade.php @@ -0,0 +1,36 @@ +@php + $languages = available_languages(); + $currentLang = current_language_code(); +@endphp + + \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 2766a28..69f1e62 100644 --- a/routes/web.php +++ b/routes/web.php @@ -54,6 +54,20 @@ Route::get('/debug-homepage', function () { ]); }); +// Language Switch +Route::get('/lang/{locale}', function ($locale) { + if (function_exists('switch_language')) { + switch_language($locale); + } else { + $language = \App\Models\Language::findByCode($locale); + if ($language && $language->is_active) { + app()->setLocale($locale); + session(['locale' => $locale]); + } + } + return redirect()->back(); +})->name('language.switch'); + // Homepage -> admin panelinde "is_homepage" olarak işaretli sayfa dinamik olarak gösterilir Route::get('/', [PageController::class, 'index'])->name('homepage');