Was ist Lokalisierung?
Die Lokalisierung von Laravel stellt einen bequemen Mechanismus bereit, um Übersetzungen für unterschiedliche Sprachen abzurufen. Sie unterstützt mehrsprachige Anwendungen. Es gibt zwei Wege, Übersetzungen zu verwalten:Neue Laravel-Anwendungen enthalten kein Verzeichnis
lang. Um es anzulegen, veröffentlichen Sie es mit dem Artisan-Befehl lang:publish.Locale konfigurieren
Standard-Locale
Die Standardsprache legen Sie inconfig/app.php über locale fest.
Üblich ist die Steuerung per Umgebungsvariable APP_LOCALE in der .env.
fallback_locale ist die Ausweichsprache, falls keine Übersetzung für die aktuelle Sprache existiert.
Locale zur Laufzeit ändern
MitApp::setLocale() können Sie die Locale pro Request ändern.
Aktuelle Locale abfragen
Sprachdateien anlegen
PHP-Datei
Legen Sie PHP-Dateien im Verzeichnislang/{Sprachcode}/ an. Sie liefern ein Schlüssel-Wert-Array zurück.
JSON-Datei
Bei vielen Übersetzungen empfiehlt sich das JSON-Format. Legen Sie im Verzeichnislang/ eine JSON-Datei pro Sprachcode an.
Wann welches Format?
Wann sich PHP-Dateien eignen
Wann sich PHP-Dateien eignen
- Wenn Sie Nachrichten z. B. für Validierungsfehler nach Feature strukturieren möchten
- Wenn Sie Laravels eingebaute Übersetzungen (
validation.php,auth.phpusw.) überschreiben - Wenn Sie eine hierarchische Schlüsselverwaltung benötigen
Wann sich JSON eignet
Wann sich JSON eignet
- Wenn viele UI-Texte vorkommen und das Ausdenken von Schlüsseln lästig wird
- Wenn Sie Templates direkt auf Englisch schreiben und andere Sprachen per Übersetzungsdatei ergänzen
- Wenn Sie Internationalisierung nachträglich einführen
Übersetzungen abrufen
Helper __()
Am gebräuchlichsten. Bei PHP-Dateien schreiben Sie „Dateiname.Schlüssel”.
Verwendung in Blade-Templates
In Blade-Templates verwenden Sie{{ __() }}.
Platzhalter
In Übersetzungen können Sie Platzhalter im Format:name verwenden.
__() enthält die Ersetzungswerte.
Pluralformen
Die Pluralregeln unterscheiden sich je nach Sprache. In Laravel trennen Sie Singular und Plural mit|.
Einfacher Plural
trans_choice() übergeben Sie die Anzahl.
Pluralformen mit Bereich
Detailliertere Bereichsangaben sind möglich.Platzhalter in Pluralformen
Mit:count geben Sie die Anzahl aus. Zusätzliche Werte übergeben Sie im dritten Argument.
Sprachdateien von Paketen überschreiben
Für Sprachdateien von Drittanbieter-Paketen können Sie inlang/vendor/{Paketname}/{Sprachcode}/ gleichnamige Dateien ablegen, um Übersetzungen zu überschreiben.
Beispiel: englische Nachrichten des Pakets skyrim/hearthfire anpassen.
Praxisbeispiel: Locale-Umschaltung per Middleware
Beispiel einer Middleware, die die Locale anhand von URL, Session oder Nutzerpräferenz umschaltet.1
Middleware erzeugen
2
Middleware implementieren
3
Middleware registrieren
Registrieren Sie die Middleware in
bootstrap/app.php.4
Route zum Umschalten der Locale
5
Buttons im Blade-Template
Beispielhafter Aufbau der Sprachdateien
Zusammenfassung
Wie werden Übersetzungen definiert?
Wie werden Übersetzungen definiert?
Häufig genutzte Funktionen und Facades
Häufig genutzte Funktionen und Facades
Verwendung in Blade
Verwendung in Blade