Как определить языковые предпочтения в 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 */

Спасибо за помощь.