Wie kann ich in Laravel mehrsprachige, übersetzte Routen erstellen, ohne auf Cookies oder Sitzungen angewiesen zu sein?

Patricia Arquette
Freigeben: 2024-11-03 15:24:30
Original
625 Leute haben es durchsucht

How can I create multilingual, translated routes in Laravel without relying on cookies or sessions?

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'
    );
    Nach dem Login kopieren
  • app/lang/en/routes.php:

    return array(
      'contact' => 'contact',
      'about'   => 'about-us'
    );
    Nach dem Login kopieren

2. Konfiguration:

App/config/app.php aktualisieren:

  • Standardsprache festlegen (z. B. Polnisch):

    'locale' => 'pl',
    Nach dem Login kopieren
  • Listen Sie die alternativen Sprachen auf (Englisch und Französisch):

    'alt_langs' => array ('en', 'fr'),
    Nach dem Login kopieren
  • Definieren Sie das Gebietsschema-Präfix:

    'locale_prefix' => '', // Will be dynamically updated at runtime
    Nach dem Login kopieren

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();
        }
    );
});
...
Nach dem Login kopieren

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);
});
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage