Eğer dil prefix'ine göre route'ları dinamik olarak değiştirmek istiyorsan, RouteServiceProvider içinde dili önceden belirlemen gerekebilir:
// app/Providers/RouteServiceProvider.php
public function boot()
{
parent::boot();
// Kullanıcıdan gelen isteğe göre dili tespit et
$locale = $this->detectLocaleFromRequest();
App::setLocale($locale);
}
protected function detectLocaleFromRequest()
{
// Örneğin, URL prefix'inden dil kodunu çıkar
$prefix = request()->segment(1);
// veritabanında prefix'e göre dili bul
$locale = DB::table('languages')->where('prefix', $prefix)->value('code') ?? config('app.locale');
return $locale;
}
Hocam buna benzer ama çok karmaşık bir metod benimki.
- x.com/hello-world
- x.com/en/hello-world
- x.com/en/blog/hello-world
- x.com/blog/hello-world
- x.com/news/hello-world
Örneğin postları yukarıdaki 5 farklı url yapısında bulabiliyor. metodda problem yok aslında dediğim gibi. sadece sıralaması bozuk. routelerin tanımlanmasından önce çalışması lazım.
metod sonradan çalıştığı için şu anda ana dilin verileri geliyor varsayılan olarak.