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>`