Erstellen mehrsprachiger übersetzter Routen in Laravel
Dieser Leitfaden bietet eine umfassende Lösung zum Erstellen mehrsprachiger übersetzter Routen in Laravel und stellt sicher, dass die aktuelle Sprache vorhanden ist wird ausschließlich durch die URL bestimmt, anstatt sich auf Cookies oder Sitzungen zu verlassen.
Implementierung:
1. Übersetzungsdateien:
Erstellen Sie Übersetzungsdateien für die gewünschten Routen im Verzeichnis app/lang/[LANGUAGE]/routes.php. Zum Beispiel für Polnisch (pl), Englisch (en) und Französisch (fr):
app/lang/pl/routes.php:
return array( 'contact' => 'kontakt', 'about' => 'o-nas' );
app/lang/en/routes.php:
return array( 'contact' => 'contact', 'about' => 'about-us' );
2. Konfiguration:
App/config/app.php aktualisieren:
Standardsprache festlegen (z. B. Polnisch):
'locale' => 'pl',
Listen Sie die alternativen Sprachen auf (Englisch und Französisch):
'alt_langs' => array ('en', 'fr'),
Definieren Sie das Gebietsschema-Präfix:
'locale_prefix' => '', // Will be dynamically updated at runtime
3. Routen:
app/routes.php bearbeiten:
... // Set locale and locale_prefix if an alternative language is selected if (in_array(Request::segment(1), Config::get('app.alt_langs'))) { App::setLocale(Request::segment(1)); Config::set('app.locale_prefix', Request::segment(1)); } // Set route patterns based on the translated routes foreach(Lang::get('routes') as $k => $v) { Route::pattern($k, $v); } Route::group(array('prefix' => Config::get('app.locale_prefix')), function() { Route::get( '/', function () { return "main page - ".App::getLocale(); } ); Route::get( '/{contact}/', function () { return "contact page ".App::getLocale(); } ); Route::get( '/{about}/', function () { return "about page ".App::getLocale(); } ); }); ...
Diese Konfiguration aktualisiert dynamisch das Gebietsschema und das Gebietsschema-Präfix basierend auf dem ersten URL-Segment (sofern es mit einer alternativen Sprache übereinstimmt). und legt Routenmuster gemäß den übersetzten Routen fest.
4. Umleitung (optional):
Bei unbekannten URLs leiten Sie zum aktuellen Sprachpräfix (z. B. /en) statt zur Standardsprache (/) weiter:
// app/start/global.php App::missing(function() { return Redirect::to(Config::get('app.locale_prefix'),301); });
Das obige ist der detaillierte Inhalt vonWie kann ich in Laravel mehrsprachige, übersetzte Routen erstellen, ohne auf Cookies oder Sitzungen angewiesen zu sein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!