Я реализовал функцию переключения языка, следуя этой записи , и она отлично работает, но только когда вы нажимаете на переключатель языка, хотя я хотел бы изменить locale
и сохранить его в приложении когда страница загружена.
Моя функция немного отличается от той, что была в посте, я добавил else if
только для того, чтобы убедиться, что локаль на приемлемых языках
App/Middleware/Localization.php
public function handle($request, Closure $next)
{
$availableLangs = array('en', 'hu', 'pt', 'ro', 'sv');
$userLangs = substr($request->server('HTTP_ACCEPT_LANGUAGE'), 0, 2);
if (\Session::has('locale'))
{
\App::setlocale(\Session::get('locale'));
}
else if (in_array($userLangs, $availableLangs))
{
\App::setLocale($userLangs);
// Session::push('locale', $userLangs);
}
return $next($request);
}
Как я могу повторно использовать эту функцию или создать новую функцию для достижения того же результата, но при загрузке веб-сайта?
У меня много маршрутов, поэтому я думаю, что мне понадобится функция, чтобы не повторять один и тот же код снова и снова.
Я не использую locale
в URL-адресе и не хочу его использовать, поэтому, пожалуйста, не предлагайте решение, включающее эту опцию.
Пример моих URL (каждый URL можно просмотреть на всех доступных языках)
domain/city1/
domain/city1/dashboard/
domain/city2/
domain/city2/dashboard/
domain/admin/
Я не хочу:
domain/city1/en/...
domain/city1/pt/...