Wie erkenne ich die bevorzugte Sprache in Laravel 5?

ch möchte meine Client-Sprache erkennen, indem ich die vom Browser empfohlene Sprache erhalt

Zum Beispiel, wenn Sie den Browser in Japan öffnen, wird mir der Ländercode oder der Ländername des aktuellen Benutzers wie "en-jp" oder "japan" angezeigt.

Ich probiere diesen Code aus, aber es scheint die Sprache anzuzeigen, die ich zuvor ausgewählt habe, und standardmäßig ist es Englisch.,

Ich habe eine Middleware festgelegt und muss den API-Teil ausschließen, da einige Router diese Adresse anpingen und der Router-Browser keine Sprachinformationen hat, die das System blockieren.

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

Danke für deine Hilfe

Antworten auf die Frage(8)

Ihre Antwort auf die Frage