Как определить языковые предпочтения в Laravel 5
Я хочу определить язык своего клиента, получив рекомендованный браузером язык.
Например, если вы откроете браузер в Японии, он выдаст мне код страны или название страны, открытые текущим пользователем, например, «en-jp» или «japan».
Я пробую этот код, но он, кажется, отображает язык, который я ранее выбрал, и по умолчанию это английский.,
Я установил Middleware, и мне нужно исключить API-часть, потому что у меня есть несколько маршрутизаторов, проверяющих этот адрес, и у браузера маршрутизатора нет информации о языке, которая блокирует систему.
class BeforeMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
protected $except_urls = [
'api/*'
];
public function handle($request, Closure $next)
{
$langArr = array("en", "fr");
if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
$languages = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
} else {
$languages[0] = "en";
}
if (Session::has('locale')) {
App::setLocale(Session::get('locale'));
} else {
if (in_array($languages[0], $langArr))
App::setLocale($languages[0]);
}
return $next($request);
}
} /* end class */
Спасибо за помощь.