Laravel Türkiye Discord Kanalı Forumda kod paylaşılırken dikkat edilmesi gerekenler!Birlikte proje geliştirmek ister misiniz?
  • YardımLaravel
  • Laravel Mulitlanguage sistemi Yönlendirme Hatası Alıyorum

Merhabalar laravel 10 ile kendim çok dilli bir sistem yapıyorum ama sayfa yönlendirmesi yapmıyor.
İçerikler değişiyor ama /dilkodu yapmıyor. Yardım ederseniz sevinirim.
Aşağıya kaynak kodları yazıyorum.

Web.php
Route::get('/{lang}', [FrontendController::class, 'changeLanguage'])->name('change.language');

FrontendController

`public function changeLanguage($lang)
{


$availableLanguages = Language::pluck('code')->toArray();


if (!in_array($lang, $availableLanguages)) {
    $lang = 'tr'; 
}


Session::put('locale', $lang);

   
App::setLocale($lang);


return redirect()->back();

}

public function index($lang = 'tr')
{
    
    
    $lang = session('locale', $lang ?: 'tr');
   

    App::setLocale(locale: $lang);
    
   
    $staticContents = StaticContent::all();

  
    $languages = Language::all();

    
    return view('frontend.index', compact('staticContents', 'languages'));
}`

İndex.blade.php
`<div class="top-bar-language tf-cur justify-content-end">


                    <div class="tf-languages">

                        <select name="lang" class="form-select" onchange="changeLanguage(this)">
                            @foreach (\App\Models\Language::all() as $language)
                                <option value="{{ $language->code }}" 
                                    {{ app()->getLocale() == $language->code ? 'selected' : '' }}>
                                    {{ $language->name }}
                                </option>
                            @endforeach
                        </select>
                        
                        <script>
                            function changeLanguage(selectElement) {
                                var selectedLang = selectElement.value;
                                console.log('Selected Language:', selectedLang); 

                                
                                if (selectedLang) {
                                    var newUrl = '/' + selectedLang;
                                    console.log('Redirecting to: ', newUrl);  

                                    
                                    window.location.replace(newUrl);  
                                }
                            }
                        </script>
                        
                        
                    </div>
                </div>`

    Bu şekilde bir middleware yapmıştım ama devam ediyor aynı şekilde hata

    public function handle(Request $request, Closure $next)
        {
            // Session'da dil bilgisini kontrol et
            $lang = Session::get('locale', 'tr'); // Eğer session'da dil yoksa varsayılan dil 'tr'
    
            // Eğer dil mevcutsa, Laravel uygulamasının dilini ayarla
            App::setLocale($lang);
    
            return $next($request);
        }

      ilkerefe Middleware'i nasıl kullandınız? Session kullandığınız için routes/web.php içinde kullanabilirsiniz ve dil olan tüm rotalarınızı kapsamalı.