Wie finde ich die aktuelle Sprache in einem Laravel-Ansicht?
Ich bin mit dem Laravel Lang Klasse für die Lokalisierung von meiner web-app. Ich habe zwei Sprachen das Sprachen-array in application/config/application.php
. Dies ändert die Standard-Sprache, die Sie verwendet für die Lokalisierung zu, was den ersten Teil der URI angibt (z.B. bla.com/en/bla und bla.com/co/bla). Jetzt muss ich in der Lage sein zu überprüfen, was der aktuelle Standard-Sprache ist in meiner Sicht. Jedoch, die Lang-Klasse bietet keine Möglichkeit, zu überprüfen, so weit ich habe in der Lage, herauszufinden, wie die Lang::$language
variable geschützt ist. Gibt es irgendeine Möglichkeit, zu überprüfen, dies abgesehen von manuell Parsen der URI?
InformationsquelleAutor BenjaminRH | 2012-10-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
BenjaminRH die Antwort ist sehr gut, und seine vorgeschlagene Ansatz funktioniert perfekt. Ich habe verbessert das snippet ein wenig. Nun, es erkennt die browser-Sprache, und überprüft, ob diese Sprache unterstützt wird-je nach Anwendung-config-Datei.
Es ist ein schneller hack, aber es funktioniert auf meinem app. Beachten Sie, dass die Sprache der Anwendung ist auch jetzt festgelegt. Fühlen Sie sich frei zu verwenden, Erz zu verbessern.
Request::server('http_accept_language')
statt den direkten Zugriff auf $_SERVER.Ich vertraue dir auf dieser, verändert das snippet 🙂
Ich mag, was Sie mit ihm Tat. Akzeptiert.
Ich habe eine nicht Behandelte Ausnahme Fehlermeldung, mit Ihrem snippet (
Can't use function return value in write context
für die Linieelseif(isset(Request::server('http_accept_language')))
) mit PHP 5.3.5 und Laravel 3.2.14, ich habe bearbeitet Ihre AntwortMeine änderung wurde abgelehnt von Menschen, die wollen nur zum sammeln von Ruf für diesen Grund : "Das Bearbeiten ändert sich zu viel in die original-Beitrag; die ursprüngliche Bedeutung oder die Absicht der post verloren gehen würde.". Vielen Dank.
InformationsquelleAutor aebersold
Der sauberste Weg, um zu wissen, die die aktuelle Sprache Ihrer website in Laravel zu sein scheint :
http://laravel.com/api/5.1/Illuminate/Translation/Translator.html#method_locale
Ist es anders, als diesem Befehl, wird wieder die Standard-Sprache Ihrer website :
InformationsquelleAutor Erwan
In der neueren Laravel-Versionen, können Sie die aktuelle Sprache mit:
InformationsquelleAutor Pedro Moreira
Ich habe herausgefunden, eine Lösung für das Sprachen-problem (Dank nickstr auf den IRC und die akzeptierte Antwort auf diese Frage). Es beinhaltet das speichern der aktuellen Sprache als session-variable, die aktualisiert wird, wenn die Sprache uri-segment geändert wird.
InformationsquelleAutor BenjaminRH
Dies könnte helfen.
Config::get('application.Sprache')
InformationsquelleAutor Johny Salas
Dieser würde funktionieren
InformationsquelleAutor NIRAJ KUMAR
Können Sie
Laravel-Lokalisierung verwendet die URL für die Anfrage. Um diesen Zweck erreichen, sollte eine Gruppe Hinzugefügt werden, in die routes.php Datei. Es filtert alle Seiten, die müssen lokalisiert werden.
Einmal diese Gruppe wird Hinzugefügt, um die Routen-Datei, ein Nutzer kann den Zugang zu allen Sprachen Hinzugefügt in der 'languagesAllowed' ('en' und 'es' für Standard, Blick auf die config-Abschnitt zu ändern, dass die option). Zum Beispiel, ein Benutzer kann nun der Zugang zu zwei verschiedenen Sprachen, unter den folgenden Adressen:
http://laravel.com/en
http://laravel.com/es
http://laravel.com
InformationsquelleAutor Sangar82
Benutze ich
App::getLocale()
das ist wahrscheinlich die am meisten unterstützten Weise wie dieApp::setLocale('EN')
Methode wird in der Dokumentation.Diese Methode können Sie überall. Wenn es Durchfall ist ein Fehler irgendwo, die Sie verwenden können
\App::...
machen, damit es funktioniert.Bin ich mit Laravel 5.0.
InformationsquelleAutor Thomas Venturini
Eine alternative, etwas kürzere Weg sein könnte, mit so etwas wie dieses:
Den Vorteil, dass IDEs wie PHPStorm erkennt diese Funktion und kann Ihnen helfen, sich viel schneller entwickeln.
InformationsquelleAutor ThatMSG
Den
Lang
Klasse ist speziell für die Ausgabe die richtige Sprache und, wie Sie sagen, schafft es die Sprache intern.Suche durch die API gibt es keine Methode, um Ihnen helfen, direkt mit diesem und dem Parsen der URI um die Sprache scheint die geeignete Vorgehensweise.
Können Sie immer nur zum abrufen der Sprache-string im URI:
Die Prüfung Laravel Anfragen
InformationsquelleAutor David Barker