2016-06-16 3 views
0

Ich möchte die aktuellen locale in meinem HTML-Tag ein Echo mit Klinge Echo:Wie Browser locale in Laravel 5.2

<html lang="{{ $locale }}"></html> 

Ich bin neu in Laravel 5 und ich frage mich, wie dies zu erreichen.

+0

Wenn Sie das Gebietsschema des Benutzers ermitteln möchten, finden Sie weitere Informationen unter http://php.net/manual/en/locale.acceptfromhttp.php. Du musst wissen, dass du dich nicht immer darauf verlassen kannst. – jszobody

+0

meinst du das Gebietsschema in deiner Laravel-Anwendung? –

+0

Für jetzt möchte ich nur das Browser-Gebietsschema wissen, aber jetzt denke ich, es wäre auch praktisch, die Laravel-Anwendung zu kennen –

Antwort

1

aussehen könnte, wenn Sie für locale fragen in Client-Browser eingestellt haben, können Sie request()->server('HTTP_ACCEPT_LANGUAGE') verwenden diejenigen zu bekommen.

Und wenn Sie für locale fragen gesetzt in Ihrer Laravel Anwendung, können Sie es wie folgt erhalten: config()->get('locale')

Und wenn Sie Template-Namen in Ihrer Laravel Klinge erhalten möchten, verwenden Sie einfach wie folgt aus:

// allow $view_name in views 
View::composer('*', function ($view) { 

    View::share('view_name', $view->getName()); 

}); 
+0

Danke! Aber was ist die beste Klasse, um den Code zu setzen? AppServiceProvider -> boot? Oder gibt es eine bessere Klasse in Laravel? –

+0

Gemäß Laravel-Dokumentation können Sie View-Composer unter Verwendung eines separaten Service-Providers registrieren. Weitere Details: https://laravel.com/docs/5.2/views#view-composers –

0

Obenauf, was @jszobody gerade oben gesagt hat, könnten Sie auch Javascript und die jstz package verwenden, um ihr Gebietsschema zu finden. Angenommen, Sie haben jQuery installiert, Ihr Code wie folgt

<script> 
    $(function() { 
     $('html').attr('lang', jstz.determine().locale()); 
    } 
</script>