Die Laravel-Lokalisierung ist ein leistungsstarkes Werkzeug, mit dem Entwickler mehrsprachige Websites erstellen können. Durch die Implementierung der Weblokalisierung in Ihren Laravel-Projekten bieten Sie Besuchern mit unterschiedlichem sprachlichen Hintergrund ein personalisiertes Nutzererlebnis und erweitern so Ihre Reichweite und verbessern die Nutzerbindung.
Wir führen Sie durch die Implementierung der Lokalisierung in Ihrer Laravel-Anwendung und stellen Ihnen ein Tool vor, das Ihre Lokalisierungsbemühungen vereinfachen und verbessern kann!
Warum sollte man die Laravel-Website lokalisieren?
Hier sind einige wichtige Gründe, warum Sie Ihre Laravel-Website lokalisieren sollten.
- Erreichen Sie ein globales Publikum: Durch die Lokalisierung Ihrer Laravel-Website können Sie die Reichweite Ihrer App auf ein internationales Publikum ausdehnen. Dies ermöglicht es Nutzern aus verschiedenen Ländern und mit unterschiedlichem Sprachhintergrund, Ihre Inhalte zu verstehen und mit ihnen zu interagieren.
- Verbessert die Nutzererfahrung: Durch die Lokalisierung können Nutzer in ihrer Muttersprache mit der App interagieren, was die Nutzererfahrung deutlich verbessert. Dies kann die Interaktionsraten erhöhen, die Absprungraten senken und die Konversionsraten steigern.
- Wettbewerbsvorteil: In einem wettbewerbsintensiven globalen Markt kann das Angebot von Apps in mehreren Sprachen einen entscheidenden Vorsprung gegenüber Mitbewerbern verschaffen. Es unterstreicht Ihr Engagement auf internationalen Märkten und kann Ihnen den effektiveren Markteintritt erleichtern.
- Verbessert die Suchmaschinenoptimierung: Gut lokalisierte Websites erzielen in Suchmaschinen bei Suchanfragen in der jeweiligen Sprache tendenziell bessere Platzierungen. Dies kann Ihren Blog-Traffic und Ihre Online-Sichtbarkeit in verschiedenen Märkten durch mehrsprachige Übersetzungen steigern.
Anforderungen an eine mehrsprachige Laravel-Lokalisierung
Bei der Implementierung mehrsprachiger Lokalisierung in Laravel sind einige Anforderungen und Schritte zu beachten.
- Um die neuesten Lokalisierungsfunktionen nutzen zu können, stellen Sie sicher, dass Sie die neueste Version von Laravel verwenden (z. B. Version 10.x).
- Grundlegende Kenntnisse von PHP und des Laravel-Frameworks sind für die Umsetzung hilfreich.
- Richten Sie eine lokale Entwicklungsumgebung oder einen Server ein, der Laravel unterstützt, einschließlich eines Webservers und einer Datenbank.
- Legen Sie von Anfang an fest, welche Sprachen Ihre Anwendung unterstützen soll.
Einfache Laravel-Übersetzungen
Nachdem wir verstanden haben, welche Anforderungen vor der Übersetzung einer Laravel-Anwendung oder eines Webauftritts erfüllt sein müssen, werden wir einige Schritte zur einfachen Übersetzung von Laravel vorstellen.
Öffnen Sie dazu die Ansichtsdatei, die Sie lokalisieren möchten, beispielsweise resources/views/welcome.blade.php. Ersetzen Sie anschließend den body-Tag durch den folgenden Code.
Willkommen auf der Linguise-Website!
Wie Sie sehen, ist der obige Text derzeit direkt im Quellcode geschrieben. Dies ist weniger effizient und erschwert die Übersetzung von Webseiten in verschiedene Sprachen (Internationalisierung).
Wir werden den obigen Text flexibler gestalten, damit er sich leicht an verschiedene Sprachen anpassen lässt. Laravel bietet hierfür eine sehr hilfreiche Funktion: das Lokalisierungssystem. Ersetzen Sie als ersten Schritt den vorhandenen Text durch den folgenden Code.
{{ __('Willkommen auf der Linguise-Website!') }}
Laravel zeigt standardmäßig den obigen Text an und ruft die Übersetzung ab, wenn der Benutzer eine andere Sprache als Englisch auswählt. In diesem Fall wird Englisch als Standardsprache der Anwendung verwendet.
Einrichten von Gebietsschemata in einer mehrsprachigen Laravel-Website
Aber wie ermittelt Laravel die aktuelle Sprache bzw. welche Sprachen in der Anwendung verfügbar sind? Es prüft die Gebietsschemaeinstellungen in der Datei `config/app.php`. Öffnen Sie diese Datei und suchen Sie nach den folgenden beiden Schlüsseln.
/* |-------------------------------------------------------------------------- | Anwendungsgebietsschema-Konfiguration |-------------------------------------------------------------------------- | | Das Anwendungsgebietsschema bestimmt das Standardgebietsschema, das vom Übersetzungsdienstanbieter verwendet wird. | Sie können diesen Wert auf jedes der von der Anwendung unterstützten Gebiete festlegen. | */ 'locale' => 'en', /* |-------------------------------------------------------------------------- | Ausweichgebietsschema der Anwendung |-------------------------------------------------------------------------- | | Das Ausweichgebietsschema bestimmt das Gebietsschema, das verwendet wird, wenn das aktuelle nicht verfügbar ist. | Sie können den Wert an jeden der von Ihrer Anwendung bereitgestellten Sprachordner anpassen. | */ 'fallback_locale' => 'en',
Die Erläuterungen zu den Schlüsseln sollten selbsterklärend sein. Zusammenfassend enthält der Schlüssel `locale` die Standardsprache Ihrer Anwendung (sofern im Code keine andere Sprache angegeben ist). Die Option `fallback_locale` wird aktiviert, wenn in Ihrer Anwendung eine nicht vorhandene Sprache angefordert wird.
Fügen wir nun einen neuen Schlüssel zu dieser Datei hinzu, um eine Liste aller unterstützten Gebietsschemas bereitzustellen.
/* |-------------------------------------------------------------------------- | Verfügbare Gebietsschemas |-------------------------------------------------------------------------- | | Listet alle Gebietsschemas auf, mit denen Ihre Anwendung arbeitet | */ 'available_locales' => [ 'English' => 'en', 'Italian' => 'it', 'French' => 'fr', ],
Bisher haben wir Laravel Web so getestet, dass es drei Sprachen unterstützt, nämlich Englisch, Italienisch und Französisch.
Übersicht der Laravel-Übersetzungsdateien
In Laravel, wie in vielen anderen Frameworks, werden Übersetzungen für verschiedene Sprachen in separaten Dateien gespeichert. Für die Organisation dieser Übersetzungsdateien werden zwei Methoden verwendet.
Die ältere Methode speichert Dateien in folgender Struktur: resources/lang/{en,fr,it}/{myfile.php}. Die neuere Methode verwendet JSON-Dateien, z. B. resources/lang/{fr.json, it.json}. Dieser Artikel konzentriert sich auf die neuere Methode, obwohl die Prinzipien – abgesehen von den Unterschieden in der Benennung und dem Zugriff auf die Übersetzungsschlüssel – ähnlich sind.
Bei Sprachen mit regionalen Unterschieden sollten Sie die Sprachverzeichnisse oder -dateien gemäß dem ISO-15897-Standard benennen. Beispielsweise würde britisches Englisch „en_GB“ statt „en-gb“ heißen.
allgemeine Informationen
In Laravel, wie in vielen Frameworks, werden Übersetzungen für verschiedene Sprachen in separaten Dateien gespeichert. Es gibt zwei Hauptmethoden zur Organisation von Laravel-Übersetzungsdateien.
- Bei der herkömmlichen Methode werden die Dateien unter folgendem Pfad gespeichert: resources/lang/{en,fr,it}/{myfile.php}.
- Der moderne Ansatz verwendet Dateien aus dem Verzeichnis resources/lang/{fr.json, it.json}.
Dieser Artikel konzentriert sich auf die zweite Methode, obwohl die Prinzipien auf beide anwendbar sind (mit Unterschieden in der Benennung und dem Zugriff auf Übersetzungsschlüssel).
Bei Sprachen, die regional variieren, empfiehlt es sich, Sprachverzeichnisse/-dateien gemäß ISO 15897 zu benennen. Beispielsweise würde britisches Englisch als en_GB und nicht als en-gb bezeichnet.
Erstellung von Laravel-Übersetzungsdateien
Nachdem wir die Gebietsschemas für unsere Anwendung konfiguriert haben, können wir mit der Übersetzung unserer Standard-Willkommensnachricht fortfahren.
Beginnen wir mit dem Erstellen neuer Lokalisierungsdateien im JSON-Format im Verzeichnis resources/lang. Zuerst erstellen wir eine Datei namens resources/lang/it.json und fügen die entsprechenden Übersetzungen hinzu.
{ „Willkommen auf der Website von Linguise!“: „Auf der Website von Linguise!“ }
Als Nächstes fügen Sie eine Datei resources/lang/fr.json hinzu.
{ „Willkommen auf der Linguise-Website!“: „Bienvenue sur le site de Linguise“ }
Wie Sie sehen, verwenden wir durchgehend die Standardnachricht aus der Datei welcome.blade.php ({{ __('Willkommen auf der Linguise-Website!') }}). Es ist nicht nötig, eine en.json-Datei zu erstellen, da Laravel automatisch erkennt, dass die Standardnachrichten auf Englisch sind.
Sprachumschalter in einer mehrsprachigen Laravel-App einrichten
Da Laravel die lokale Sprache noch nicht überschreibt, werden wir die Übersetzung vorerst direkt in der Route vornehmen. Ändern Sie die Standard-Willkommensroute in der Datei routes/web.php wie folgt.
Route::get('/{locale?}', function ($locale = null) { if (isset($locale) && in_array($locale, config('app.available_locales'))) { app()->setLocale($locale); } return view('welcome'); });
In diesem Fall erfassen wir einen optionalen Locale-GET-Parameter und legen basierend darauf das aktuelle Locale fest (sofern das angeforderte Locale unterstützt wird).
Sie können Ihre Website nun besuchen und eine der unterstützten Sprachen als ersten Teil der URL angeben. Wenn Sie beispielsweise localhost/it oder localhost/fr aufrufen, wird der lokalisierte Inhalt angezeigt. Falls Sie keine Sprache angeben oder eine nicht unterstützte auswählen, verwendet Laravel standardmäßig Englisch (en).
Lokalisierungs-Middleware für Laravel
Die Einbindung der Sprache in jede URL ist möglicherweise nicht optimal und könnte die visuelle Darstellung der Website beeinträchtigen. Um dies zu beheben, richten wir einen Sprachumschalter ein und nutzen die Benutzersitzung, um die übersetzten Inhalte anzuzeigen. Sie können neue Middleware in der Datei `app/Http/Middleware/Localization.php` erstellen oder sie mit dem Befehl `artisan make:middleware Localization` generieren.
Fügen Sie anschließend den folgenden Code ein.
Diese Middleware weist Laravel an, den vom Benutzer ausgewählten Speicherort zu verwenden, sofern diese Option in der Sitzung vorhanden ist.
Da die Operation bei jeder Anfrage ausgeführt werden muss, fügen Sie sie dem Standard-Middleware-Stack in app/Http/Kernel.php für die Web-Middleware-Gruppe hinzu.
/** * Die Routen-Middleware-Gruppen der Anwendung. * * @var array > */ protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, \App\Http\Middleware\VerifyCsrfToken::class, \Illuminate\Routing\Middleware\SubstituteBindings::class, \App\Http\Middleware\Localization::class, // <--- dies hinzufügen ],
Routen ändern
Definieren Sie als Nächstes eine Route zum Ändern des Gebietsschemas in der Datei routes/web.php. Wir verwenden hier eine Closure-Route, Sie können den gleichen Code aber auch in einem Controller platzieren, wenn Sie das bevorzugen.
Route::get('language/{locale}', function ($locale) { app()->setLocale($locale); session()->put('locale', $locale); return redirect()->back(); });
Entfernen Sie außerdem die zuvor der Standard-Willkommensroute hinzugefügte Gebietsschemaumschaltung. Ihre Stammroute sollte nun wie folgt aussehen.
Route::get('/', function () { return view('welcome'); });
Sobald dies abgeschlossen ist, kann der Benutzer die aktive Sprache nur noch über localhost/language/{locale} ändern. Die ausgewählte Sprache wird in der Sitzung gespeichert, und die Benutzer werden (wie von der Lokalisierungs-Middleware verarbeitet) auf ihre vorherige Seite zurückgeleitet.
Um dies zu testen, rufen Sie localhost/language/it auf (vorausgesetzt, der Session-Cookie ist in Ihrem Browser aktiv). Dort sollten Sie den übersetzten Inhalt sehen. Sie können auf der Website navigieren oder die Seite aktualisieren; die gewählte Sprache bleibt erhalten.
Implementierung des Sprachumschalters
Wir benötigen nun eine anklickbare Option, um dem Benutzer die Sprache in der Laravel-Webanwendung , anstatt ihn die Sprachcodes manuell in die URL eingeben zu lassen. Erstellen Sie dazu einen einfachen Sprachumschalter. Fügen Sie eine neue Datei unter resources/views/partials/language_switcher.blade.php hinzu und fügen Sie den folgenden Code ein.
@foreach($available_locales as $locale_name => $available_locale) @if($available_locale === $current_locale) {{ $locale_name }} @else {{ $locale_name }} @endif @endforeach
Um den neu erstellten Sprachumschalter in die „Willkommensansicht“ einzubinden, fügen Sie einfach die folgende Zeile in Ihre welcome.blade.php-Datei an der Stelle ein, an der der Umschalter erscheinen soll.
@include('partials/language_switcher') {{ __('Willkommen auf unserer Website!') }}
Öffnen Sie die Datei app/Providers/AppServiceProvider.php und fügen Sie den folgenden Code in die Methode boot() ein, um die aktuelle Sprache mit allen Ansichten zu teilen, wenn der Sprachumschalter verwendet wird
* Startet beliebige Anwendungsdienste. * * @return void */ public function boot() { view()->composer('partials.language_switcher', function ($view) { $view->with('current_locale', app()->getLocale()); $view->with('available_locales', config('app.available_locales')); }); }
Erweiterte Übersetzungsfunktionen in Laravel PHP
In dieser Diskussion behandeln wir weitere Lokalisierungskomponenten, nämlich Datum, Zahl und Währung. Hier sind die einzelnen Schritte.
Lokalisierte Datumsangaben in Laravel
Die korrekte Verarbeitung von Datum und Uhrzeit ist im Lokalisierungsprozess unerlässlich. Laravel verwendet Carbon zur Verwaltung von Datum und Uhrzeit. Hier erfahren Sie, wie Sie Carbon zur Anzeige eines lokalisierten Datums nutzen können.
settings( [ 'locale' => app()->getLocale(), ] ); // LL ist ein Makro-Platzhalter für MMMM D, YYYY (Sie könnten auch dddd, MMMM D, YYYY schreiben) $dateMessage = $today->isoFormat('dddd, LL'); return view('welcome', [ 'date_message' => $dateMessage ]); });
Dieser Code legt das Carbon-Gebietsschema basierend auf dem aktuellen Gebietsschema der Anwendung fest und formatiert das Datum entsprechend.
So zeigen Sie das lokalisierte Datum in einer Ansicht an:
{{ __('Willkommen auf unserer Website, :Name', ['name' => 'Johb']) }}
{{ trans_choice('{0} Dort :form :count apples|{1} Dort :form just :count apple|[2,19] Dort :form :count apples', 1, ['form' => 'is']) }}
{{ $date_message }}
Formatierung von Zahlen und Währungen
In verschiedenen Ländern gibt es unterschiedliche Arten, Zahlen zu formatieren. Zum Beispiel.
- Frankreich → 123 123,12
- Deutschland → 123.123,12
- Japan → 123.123
Um diese Variationen in Ihrer Laravel-Anwendung zu berücksichtigen, können Sie NumberFormatter verwenden.
Man kann Zahlen auch in einer bestimmten Sprache ausschreiben.
Hier sind die Währungen. Für die französische Lokalisierung („fr“) wird die Währung in Euro (€) angezeigt, für die US-amerikanische Lokalisierung („en_US“) in US-Dollar ($).
Alternative Lösung: Laravel-Lokalisierung mit Linguise
Nachdem man die im Artikel beschriebenen Schritte der Laravel-Lokalisierung verstanden hat, wird deutlich, dass dieser Prozess viele Schritte umfasst, die ein tiefes Verständnis des Laravel-Programmcodes erfordern.
Dies kann es unerfahrenen Nutzern, die ihre Anwendungen lokalisieren möchten, sicherlich erschweren. Daher ist eine innovativere Lösung erforderlich, die eine schnelle Übersetzung ermöglicht, die Lokalisierung unterstützt und sich mit wenigen einfachen Schritten implementieren lässt.
Eine vielversprechende Lösung ist Linguise. Linguise bietet einen einfacheren und effizienteren Ansatz zur Lokalisierung von Laravel-Anwendungen, ohne dass tiefgreifende Programmierkenntnisse erforderlich sind. Zu den wichtigsten Funktionen von Linguise gehören:.
- Einfache Integration mit Laravel
- Sprachumschalter ohne Programmierung anpassen
- Bildübersetzung
- Live-Editor zur Anpassung der Übersetzungen an den lokalen Kontext
- Dynamische Übersetzung für dynamisch generierte Inhalte
- SEO-Optimierung für mehrsprachige Versionen
Die Schritte zum Installieren von Linguise auf Laravel-Websites können ebenfalls leicht durchgeführt werden. Hier’s eine kurze Erklärung.
- Erstellen Sie ein Linguise-Konto (nutzen Sie die 30-tägige kostenlose Testversion)
- Registrieren Sie Ihre Laravel-Webdomain und geben Sie einige Informationen ein. Sie erhalten dann einen API-Schlüssel.
- Laden Sie das Linguise-Übersetzungsskript in den von Ihnen erstellten Laravel-Ordner hoch und verbinden Sie es.
- Sprach-URLs in der .htaccess-Datei einrichten.
- Fügen Sie das Skript zum Umschalten der Sprache im Head-Bereich Ihres HTML-Codes ein.
- Passen Sie den Sprachumschalter nach Bedarf an
- Der Sprachumschalter wird auf der Laravel-Webseite angezeigt, und die Inhalte können automatisch übersetzt werden.
Wie? Bei Linguise müssen Sie sich lediglich registrieren und aktivieren, dann erscheint der Sprachumschalter. Anschließend können Sie Ihre Inhalte lokalisieren, beispielsweise über den Live-Editor, Medien, Bilder usw. übersetzen.
Abschluss
Die Lokalisierung in Laravel ist eine leistungsstarke Funktion, mit der Entwickler mehrsprachige Websites und Anwendungen erstellen können. Wie wir gesehen haben, umfasst der integrierte Lokalisierungsprozess von Laravel mehrere Schritte und erfordert ein gutes Verständnis des Frameworks. Für Anfänger oder diejenigen, die eine schnellere Lösung suchen, kann dies eine Herausforderung darstellen.
Tools wie Linguise bieten eine innovative Alternative für alle, die einen effizienteren Ansatz suchen. Diese Lösungen ermöglichen schnelle Übersetzungen, einfache Integration und benutzerfreundliche Funktionen wie anpassbare Sprachumschalter und Bildübersetzung. Erstellen Sie jetzt Ihr Linguise-Konto und nutzen Sie unsere Funktion zur Lokalisierung Ihres Laravel-Projekts!


