Я занимаюсь разработкой многоязычного веб-приложения с использованием фреймворка Laravel. Так что в этом приложении у меня есть специальное условие, чтобы сделать многоязычную функцию, как показано ниже.
- пользователь может выбрать один из флагов и изменить язык вручную.
Он меняет его URL на / {lang} .. так, например, webapp.com/cs - так он увидит все, что на чешском языке. webapp.com/en - все на английском.
- Выбранная локализация должна быть постоянной, поэтому она не исчезнет при изменении страницы пользователя или чего-то еще - она всегда должна быть в URL.
Я создал маршрут для установки локали в сеансе следующим образом.
Route::get('/{locale}', function ($locale) {
session()->put('locale', $locale);
return back();
});
И создал промежуточное ПО и добавил его в $ middlewareGroups в http \ Kernel.
Ниже мое промежуточное ПО.
public function handle($request, Closure $next)
{
if (session()->has('locale')) {
app()->setLocale(session('locale'));
}
return $next($request);
}
Локализация идет хорошо, и она дает правильные переводы и все. Но мне нужно показать в URL, что это за язык. как пример webapp.com/cs,webapp.com/en. Было бы здорово, если бы кто-нибудь помог мне с этой проблемой.
Спасибо.