Каким образом сделать префикс RU локали по умолчанию, чтобы не отображалась в строке поиска?

Роут, который принимает префикс. Допустим, у нас это могут быть языки RU, EN.

Route::group(['prefix' => '{locale?}', 'middleware' => SetLocale::class], function () {
    Route::get('/', [PageController::class, 'home'])->name('home');

    Route::get('/contacts', [PageController::class, 'contacts'])->name('contacts'); });

Далее middleware, который устанавливает локаль.

    $locale = $request->segment(1);

    if ($locale == 'ru' || $locale == 'en')
    {
        App::setLocale($locale);
    } else {
        \abort(404);
    }

    URL::defaults(['locale' => '']);

    return $next($request);

Если перейти по роуту ru/contacts; en/contacts - все хорошо работает. Но не нужно, например, чтобы RU локаль была в строке. То есть ru/contacts => /contacts. А en/contacts => en/contacts всегда.

И здесь у меня на уме только появляется вариант редиректа с локали RU, и дублирования списка роутов без префикса для RU.

Кто-нибудь делал что-то подобное?


Ответы (0 шт):