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