Zu erkennen, wie Sprache in Laravel 5

Möchte ich zu erkennen meine client-Sprache, indem Sie immer die empfohlenen browser-Sprache.

Zum Beispiel, wenn Sie öffnen den browser, in Japan wird es mir Ländercode oder Land Namen der aktuellen Benutzer geöffnet, wie "en-jp" oder "japan".

Ich versuche diesen code, aber es scheint, die Sprache, die ich zuvor ausgewählt und ist standardmäßig Englisch.

Ich eine Middleware, und ich muss ausschließen, dass der api-Teil, weil ich einige Router pingen diese Adresse und die router-browser nicht über Sprache Informationen, die Ziegel-system.

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 Sie Hilfe.

InformationsquelleAutor Nans Noel | 2016-05-02

Schreibe einen Kommentar