Merhaba,
2 dilli bir sistemde aşağıdaki Route yapısında dil değiştirdiğim halde sadece tr olanı alıyor. en olunca ilgili bölümü aldıramadım.
nerede hata var yardımcı olurmusunuz?
web.php
Route::group(['prefix' => '{locale}', 'middleware' => 'localize', 'namespace' => 'site', 'as' => 'site.'], function () {
Route::get('/', [SiteController::class, 'index'])->name('index');
// kategoriler - categories
Route::group(['namespace' => 'category', 'as' => 'category.'], function () {
Route::get('/' . Lang::get('site.category_slug') . '/{slug}', [CategoryController::class, 'index'])->name('index');
});
});
birde Localize adında middleware dosyası mevcut:
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\URL;
use Symfony\Component\HttpFoundation\Response;
class Localize
{
public function handle(Request $request, Closure $next): Response
{
if (!in_array($request->locale, SUPPORT_LANG)) {
$base = url()->to('');
$segments = $request->segments();
return redirect()->to($base . '/' . config('app.locale') . '/' . implode('/', $segments));
}
app()->setLocale($request->locale);
URL::defaults(['locale' => $request->locale]);
return $next($request);
}
}
sabitler
const SUPPORT_LANG = ['tr', 'en'];