Como detectar a preferência de idioma no Laravel 5

Quero detectar o idioma do meu cliente, obtendo o idioma recomendado pelo navegador.

Por exemplo, se você abrir o navegador no Japão, ele fornecerá o código do país ou o nome do país que o usuário atual abriu como "en-jp" ou "japan".

Eu tento esse código, mas parece exibir o idioma que eu selecionei anteriormente e, por padrão, é o inglês.,

Defino um Middleware e preciso excluir a parte da API, porque tenho alguns roteadores que fazem ping no endereço e o navegador do roteador não possui informações de idioma que bloqueiam o sistema.

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 */

Obrigado pela ajuda.

questionAnswers(4)

yourAnswerToTheQuestion