Heim > PHP-Framework > Laravel > So verwenden Sie Middleware für die Mehrsprachenunterstützung in Laravel

So verwenden Sie Middleware für die Mehrsprachenunterstützung in Laravel

王林
Freigeben: 2023-11-03 13:07:57
Original
1291 Leute haben es durchsucht

So verwenden Sie Middleware für die Mehrsprachenunterstützung in Laravel

Laravel ist ein weit verbreitetes PHP-Framework, das viele praktische Funktionen und Tools bietet, einschließlich Middleware, die mehrere Sprachen unterstützt. In diesem Artikel werden wir detailliert beschreiben, wie Sie Middleware verwenden, um die Mehrsprachenunterstützung von Laravel zu implementieren, und einige spezifische Codebeispiele bereitstellen.

  1. Sprachpaket konfigurieren

Zuerst müssen wir das Sprachpaket von Laravel so konfigurieren, dass es mehrere Sprachen unterstützen kann. In Laravel werden Sprachpakete normalerweise im Verzeichnis resources/lang abgelegt, wo jede Sprache ein entsprechendes Unterverzeichnis hat. Wenn wir beispielsweise Englisch und Französisch unterstützen möchten, müssen wir zwei Unterverzeichnisse en und fr im Verzeichnis resources/lang erstellen.

Dann müssen wir in jedem Unterverzeichnis eine Datei „messages.php“ erstellen, die alle Zeichenfolgen enthält, die wir übersetzen möchten. Erstellen Sie beispielsweise die Datei „messages.php“ im Verzeichnis „en“ wie folgt:

return [
    'welcome' => 'Welcome to my website!',
    'about' => 'About us',
    'contact' => 'Contact us',
];
Nach dem Login kopieren

Als nächstes erstellen Sie die Datei „messages.php“ im Verzeichnis „fr“ wie folgt:

return [
    'welcome' => 'Bienvenue sur mon site web!',
    'about' => 'À propos de nous',
    'contact' => 'Contactez-nous',
];
Nach dem Login kopieren

Auf diese Weise haben wir das Sprachpaket konfiguriert. Als nächstes müssen wir Middleware schreiben, um die Unterstützung mehrerer Sprachen zu implementieren.

  1. Middleware erstellen

In Laravel können wir Middleware verwenden, um Anfragen zu bearbeiten. Daher können wir eine Middleware erstellen, die die Spracheinstellungen des Benutzers überprüft und das entsprechende Sprachpaket basierend auf seinen Einstellungen lädt. Hier ist ein einfaches Middleware-Beispiel:

<?php

namespace AppHttpMiddleware;

use Closure;
use IlluminateHttpRequest;

class SetLanguage
{
    public function handle(Request $request, Closure $next)
    {
        // 检查请求中是否设置了语言参数
        $language = $request->input('lang', 'en');

        // 检查语言包是否存在
        if (!in_array($language, ['en', 'fr'])) {
            abort(400, 'Invalid language');
        }

        // 设置当前语言
        app()->setLocale($language);

        // 继续处理请求
        return $next($request);
    }
}
Nach dem Login kopieren

Diese Middleware liest den lang-Parameter in der Anfrage und legt die aktuelle Sprache basierend auf seinem Wert fest. Wenn die Anfrage keinen lang-Parameter enthält, wird standardmäßig Englisch verwendet. Wenn in der Anfrage eine ungültige Sprache angegeben wird, wird ein HTTP 400-Fehler zurückgegeben.

Wir können diese Middleware wie folgt in der Datei app/Http/Kernel.php registrieren:

protected $middlewareGroups = [
    'web' => [
        AppHttpMiddlewareSetLanguage::class,
        // ...
    ],
    // ...
];
Nach dem Login kopieren

Auf diese Weise durchläuft jede Anfrage diese Middleware und legt die aktuelle Sprache fest.

  1. Verwendung mehrsprachiger Zeichenfolgen

Da wir nun das Sprachpaket und die Middleware konfiguriert haben, können wir mehrsprachige Zeichenfolgen in unserem Code verwenden. Laravel bietet eine Übersetzungsfunktion trans(), die die entsprechende Zeichenfolge entsprechend der aktuellen Sprache auswählen kann. Wir können es zum Beispiel in einer Ansicht verwenden:

<h1>{{ trans('messages.welcome') }}</h1>
Nach dem Login kopieren

In diesem Beispiel wählt die Funktion trans() die entsprechende „Willkommen“-Zeichenfolge basierend auf der aktuellen Sprache aus. Wenn die aktuelle Sprache Englisch ist, gibt sie „Willkommen bei“ zurück meine Website!“, und auf Französisch wird „Bienvenue sur mon site web!“ zurückgegeben.

Zusätzlich zu Ansichten können wir die Funktion trans() auch überall in Controllern, Formularvalidatoren, E-Mail-Vorlagen usw. verwenden.

Zusammenfassung

In diesem Artikel haben wir vorgestellt, wie man die Middleware von Laravel verwendet, um mehrsprachige Unterstützung zu erreichen, und einige spezifische Codebeispiele bereitgestellt. Mit diesem Ansatz können wir unserer Anwendung problemlos mehrsprachige Funktionen hinzufügen.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Middleware für die Mehrsprachenunterstützung in Laravel. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage