У меня есть приложение на laravel, и теперь мне нужно разместить его на нескольких языках.
В пользовательской таблице я добавляю столбец lang
, который говорит мне язык по умолчанию для каждого пользователя.Поэтому после входа в систему я создаю переменную session
для хранения этого значения:
protected function authenticated(Request $request, $user)
{
session(['locale' => $user->lang]);
}
Далее я создаю и регистрирую middleware
, чтобы установить язык для каждого маршрута:
public function handle($request, Closure $next)
{
if(session()->has('locale'))
{
app()->setLocale(session('locale'));
}
else
{
app()->setLocale(config('app.locale'));
}
return $next($request);
}
Если я повторяю сеанс, он дает мне правильный язык на основе зарегистрированного пользователя.
Но это не работает, всегда устанавливает язык по умолчанию, установленный в конфигурационном файле laravel.
Как я могу решитьэто?
Спасибо