Ich möchte meine Clientsprache erkennen, indem ich die vom Browser empfohlene Sprache erhalte.So erkennen Sie die Spracheinstellungen in Laravel 5
Zum Beispiel, wenn Sie den Browser in Japan öffnen, gibt es mir Ländercode oder Ländername aktuellen Benutzer geöffnet wie "en-jp" oder "Japan".
Ich versuche diesen Code, aber es scheint die Sprache anzuzeigen, die ich zuvor ausgewählt habe und standardmäßig ist es Englisch.
Ich setze eine Middleware und ich muss den API-Teil ausschließen, weil ich einige Router habe, die diese Adresse anpingen und Router-Browser keine Sprachinformation hat, die das System brick.
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 */
Vielen Dank für Ihre Hilfe.