автоматически подставить local во все url определив язык браузера Laravel

задача поставить local с любого url, переменную записываем в сессию или куку, с этим проблем нет. Сама локализация настроена, выбор языка так же работает, но в ручном режиме. Пробовал сделать midellware, но проблема в том что идет циклическое перенаправление. Нужно как-то грамотно сделать редирект на страницу без зацикливания.

переменную в браузере определяю по функции, это пример моего миделлваре который возвращает зацыкливвание

public function handle(Request $request, Closure $next)
{

    $local = locale_accept_from_http($_SERVER['HTTP_ACCEPT_LANGUAGE']);

    if($local==="ru_RU"){

        $local="ru";
        // можно записать сессию или куку, как пример
        return redirect($request->server($local.'REQUEST_URI'));
    }


    return $next($request);
}

Далее Упрощенный роутер выглядит так

Route::group(
[

    // Get Prefix Language ['en', 'ru']
    'prefix' => Localization::language(),
    'middleware' => ['language.switcher']


],
function () {
    Route::view('/', 'home.index')->name('/');

});

Прошу помочь правильно сделать редирект или указать направление куда думать.


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