Schritt-für-Schritt Laravel Lokalisierung [Leitfaden]

Bringen Sie Ihr Unternehmen mit globaler Expansion auf die nächste Stufe. Unternehmenswachstum und -entwicklung.
Table of Contents

Laravel -Lokalisierung ist ein leistungsstarkes Werkzeug, das Entwicklern ermöglicht, mehrsprachige Websites zu erstellen. Durch die Implementierung von Web-Lokalisierung in Ihren Laravel -Projekten können Sie eine personalisierte Benutzererfahrung für Besucher aus verschiedenen Sprachräumen bieten, wodurch Sie Ihre Reichweite erweitern und das Nutzerengagement verbessern.

Wir begleiten 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?

Ein Mann in einer orangefarbenen Weste hält ein Tablet mit einer Weltkarte. Verschiedene Länderflaggen sind zu sehen.

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 ausweiten. Dadurch können Nutzer aus verschiedenen Ländern und mit unterschiedlichem Sprachhintergrund Ihre Inhalte verstehen und mit ihnen interagieren.
  • Verbessert die Benutzererfahrung: Die Lokalisierung ermöglicht es Nutzern, mit der App in ihrer Muttersprache zu interagieren, was die Benutzererfahrung erheblich verbessert. Dies kann die Engagement-Raten erhöhen, die Absprungraten senken und die Konversionen steigern.
  • Wettbewerbsvorteil: In einem wettbewerbsintensiven globalen Markt kann das Anbieten von Apps in mehreren Sprachen einen erheblichen Vorsprung gegenüber Wettbewerbern bieten. Es zeigt Ihr Engagement für internationale Märkte und kann Ihnen helfen, effektiver in neue Märkte einzutreten.
  • Verbessert SEO: Gut lokalisierte Websites neigen dazu, in Suchmaschinen bei Suchen in einer bestimmten Sprache besser zu ranken. Dies kann Ihren Blog-Traffic erhöhen und die Online-Sichtbarkeit in verschiedenen Märkten durch mehrsprachige Übersetzung verbessern.

Anforderungen an eine mehrsprachige Laravel -Lokalisierung

Zwei Personen arbeiten gemeinsam an einem großen Computerbildschirm mit verschiedenen Apps. Sie scheinen zusammenzuarbeiten.

Bei der Implementierung mehrsprachiger Lokalisierung in Laravelsind einige Anforderungen und Schritte zu beachten.

  • Um die neuesten Lokalisierungsfunktionen zu erhalten, stellen Sie sicher, dass Sie die neueste Version von Laravel verwenden (z. B. Version 10.x).
  • Ein grundlegendes Verständnis von PHP und dem Laravel -Framework ist bei der Implementierung hilfreich.
  • Richten Sie eine lokale Entwicklungsumgebung oder einen Server ein, der Laravelunterstützt, einschließlich eines Webservers und einer Datenbank.
  • Legen Sie von Anfang an fest, welche Sprachen Ihre Anwendung unterstützen soll.

Einfache Laravel -Übersetzungen

Mann arbeitet am Laptop. Web-Browsing auf dem Bildschirm.

Nachdem wir verstanden haben, welche Anforderungen erfüllt sein müssen, bevor eine Laravel -Anwendung oder Website übersetzt wird, geben wir einige Schritte zur einfachen Übersetzung von Laravel .

Öffnen Sie dazu die View-Datei, die Sie lokalisieren möchten, zum Beispiel resources/views/welcome.blade.php. Ersetzen Sie dann das body-Tag durch den folgenden Code.

				
					<body class="antialiased">
    <div class="relative flex items-top justify-center min-h-screen bg-gray-100 sm:items-center py-4 sm:pt-0">
        <div class="max-w-6xl mx-auto sm:px-6 lg:px-8">
            <div class="flex justify-center pt-8 sm:justify-start sm:pt-0">
                Welcome to Linguise website!
            </div>
        </div>
    </div>
</body>
				
			

Wie Sie sehen können, ist der obige Text derzeit direkt im Code geschrieben. Dies ist weniger effizient und erschwert es, Websites in verschiedene Sprachen zu übersetzen (Internationalisierung). 

Wir werden den obigen Text flexibler gestalten, damit er leicht an verschiedene Sprachen angepasst werden kann. Laravel bietet dafür eine sehr hilfreiche Funktion; das Lokalisierungssystem. Ersetzen Sie als ersten Schritt den vorhandenen Text durch den folgenden Code.

				
					{{ __('Welcome to Linguise website!') }}
				
			

Laravel zeigt standardmäßig den obigen Text an und sucht nach der Übersetzung, wenn der Benutzer eine andere Sprache als Englisch auswählt. In diesem Fall wird Englisch als Standardsprache der Anwendung verwendet.

Einrichten von Locales in einem mehrsprachigen Laravel -Web

Zwei Personen arbeiten an Computerbildschirmen. Sie interagieren mit großen Displays.

Doch wie ermittelt Laravel die aktuelle Sprache oder weiß, welche Sprachen in der Anwendung verfügbar sind? Es prüft die Locale-Einstellungen in der Datei config/app.php. Öffnen Sie diese Datei und suchen Sie nach den folgenden zwei Schlüsseln.

				
					/*
|--------------------------------------------------------------------------
| Application Locale Configuration
|--------------------------------------------------------------------------
|
| The application locale determines the default locale that will be used
| by the translation service provider. You are free to set this value
| to any of the locales which will be supported by the application.
|
*/

'locale' => 'en',

/*
|--------------------------------------------------------------------------
| Application Fallback Locale
|--------------------------------------------------------------------------
|
| The fallback locale determines the locale to use when the current one
| is not available. You may change the value to correspond to any of
| the language folders that are provided through your application.
|
*/

'fallback_locale' => 'en',

				
			

Die Erklärung über den Schlüsseln sollte klar sein. Zusammenfassend enthält der Schlüssel locale die Standardsprache für Ihre Anwendung (sofern im Code keine andere Sprache angegeben ist). Die 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 Sprachen bereitzustellen.

				
					/*
|--------------------------------------------------------------------------
| Available locales
|--------------------------------------------------------------------------
|
| List all locales that your application works with
|
*/

'available_locales' => [
  'English' => 'en',
  'Italian' => 'it',
  'French' => 'fr',
],


				
			

An diesem Punkt haben wir Laravel web ausprobiert, um drei Sprachen zu unterstützen, nämlich Englisch, Italienisch und Französisch.

Übersicht der Laravel -Übersetzungsdateien

Eine Frau, die auf einen großen Computerbildschirm zeigt, auf dem verschiedene bunte Symbole zu sehen sind. Der Bildschirm hat einen weißen Hintergrund mit blauen und violetten Symbolen.

In Laravelwerden, wie in vielen anderen Frameworks, Übersetzungen für verschiedene Sprachen in separaten Dateien gespeichert. Zur Organisation dieser Übersetzungsdateien werden zwei Methoden verwendet.

Die ältere Methode speichert Dateien in der folgenden Struktur: resources/lang/{en,fr,it}/{myfile.php}. Die neuere Methode verwendet JSON-Dateien wie resources/lang/{fr.json, it.json}. Dieser Artikel konzentriert sich auf die neuere Methode, wobei die Prinzipien für die ältere Methode ähnlich sind, abgesehen von Unterschieden bei der Benennung und dem Zugriff auf Übersetzungsschlüssel.

Für Sprachen mit regionalen Varianten sollten Sie die Sprachverzeichnisse oder -dateien gemäß dem ISO 15897-Standard benennen. Zum Beispiel würde britisches Englisch als en_GB statt en-gb benannt werden.

allgemeine Informationen

In Laravelwerden, wie in vielen Frameworks, Übersetzungen für verschiedene Sprachen in separaten Dateien gespeichert. Es gibt zwei primäre Methoden zur Organisation von Laravel -Übersetzungsdateien.

  1. Der herkömmliche Ansatz besteht darin, Dateien unter dem Pfad zu speichern: resources/lang/{en,fr,it}/{myfile.php}.
  2. Der moderne Ansatz nutzt die Dateien resources/lang/{fr.json, it.json}.

Dieser Artikel konzentriert sich auf die zweite Methode, obwohl die Prinzipien auf beide anwendbar sind (mit Unterschieden darin, wie Übersetzungsschlüssel benannt und aufgerufen werden).

Bei Sprachen, die je nach Region variieren, wird empfohlen, Sprachverzeichnisse/-dateien gemäß den ISO 15897-Standards zu benennen. Zum Beispiel würde britisches Englisch als en_GB statt en-gb bezeichnet werden.

Laravel -Übersetzungsdateien erstellen

Nachdem wir die Locales für unsere Anwendung konfiguriert haben, können wir unsere Standard-Willkommensnachricht übersetzen.

Beginnen wir damit, neue Lokalisierungsdateien im JSON-Format im Verzeichnis resources/lang zu erstellen. Zuerst erstellen wir eine Datei resources/lang/it.json und füllen sie mit den entsprechenden Übersetzungen.

				
					{
  "Welcome to Linguise website!": "Benvenuti nel sito web di Linguise!"
}

				
			

Fügen Sie als Nächstes eine Datei resources/lang/fr.json hinzu.

				
					{
 "Welcome to Linguise website!": "Bienvenue sur le site de Linguise"
}

				
			

Wie Sie sehen können, verweisen wir durchgängig auf 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 Laravel mehrsprachigen App einrichten

Personen, die mit einer großen E-Mail-Oberfläche interagieren.

Darüber hinaus ist Laravel noch nicht so eingerichtet, dass die lokale Sprache überschrieben werden kann. Deshalb werden wir die Übersetzung vorerst direkt in der Route behandeln. Ändern Sie die Standard-Welcome-Route 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 die aktuelle Locale basierend darauf fest (sofern die angeforderte Locale unterstützt wird).

Jetzt können Sie Ihre Website besuchen und eine der unterstützten Sprachen als erstes Segment in der URL angeben. Wenn Sie beispielsweise zu localhost/it oder localhost/fr navigieren, wird der lokalisierte Inhalt angezeigt. Wenn Sie keine Locale angeben oder eine nicht unterstützte auswählen, verwendet Laravel standardmäßig Englisch (en).

Lokalisierungs-Middleware für Laravel

Die Locale in jede URL aufzunehmen, ist möglicherweise nicht ideal und könnte die visuelle Attraktivität der Website beeinträchtigen. Um dies zu lösen, richten wir einen Sprachumschalter ein und nutzen die Benutzersitzung, um die übersetzten Inhalte anzuzeigen. Du kannst eine neue Middleware in der Datei app/Http/Middleware/Localization.php erstellen oder sie mit dem Befehl artisan make:middleware Localization generieren.

Fügen Sie dann den folgenden Code darin ein.

				
					<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Session;

class Localization
{
    /**
    * Handle an incoming request.
    *
    * @param  \Illuminate\Http\Request  $request
    * @param  \Closure  $next
    * @return mixed
    */
    public function handle(Request $request, Closure $next)
    {
        if (Session::has('locale')) {
            App::setLocale(Session::get('locale'));
        }
        return $next($request);
    }
}


				
			

Diese Middleware weist Laravel an, den vom Benutzer ausgewählten Speicherort zu verwenden, sofern diese Option in der Sitzung vorhanden ist.

Da der Vorgang bei jeder Anfrage ausgeführt werden muss, füge ihn in app/Http/Kernel.php zum Standard-Middleware-Stack für die Web-Middleware-Gruppe hinzu.

				
					/**
* The application's route middleware groups.
*
* @var array<string, array<int, class-string|string>>
*/
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, // <--- add this
],


				
			

Routen anpassen

Definieren Sie als Nächstes eine Route, um die Locale in der Datei routes/web.php zu ändern. Wir verwenden hier eine Closure-Route, aber Sie können denselben Code 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 Sprachumschaltung, die zuvor zur Standard-Willkommensroute hinzugefügt wurde. Ihre Root-Route sollte nun so aussehen.

				
					Route::get('/', function () {
   return view('welcome');
});

				
			

Sobald dies erledigt ist, kann der Benutzer die aktive Sprache nur noch durch den Aufruf von localhost/language/{locale} wechseln. Die ausgewählte Locale wird in der Sitzung gespeichert, und die Benutzer werden auf ihre vorherige Seite zurückgeleitet (wie von der Localization-Middleware gehandhabt). 

Um es zu testen, gehen Sie zu localhost/language/it (vorausgesetzt, das Session-Cookie ist in Ihrem Browser aktiv), und Sie sollten den übersetzten Inhalt sehen. Sie können auf der Website navigieren oder die Seite aktualisieren, und die gewählte Sprache bleibt aktiv.

Implementierung des Sprachumschalters

Jetzt müssen wir dem Benutzer eine anklickbare Option bieten, um den Language Switcher Laravel Web zu ändern, anstatt dass er Gebietsschema-Codes manuell in die URL eingeben muss. Erstellen Sie dazu einen einfachen Language Switcher. Fügen Sie eine neue Datei unter resources/views/partials/language_switcher.blade.php hinzu und fügen Sie den folgenden Code ein.

				
					<div class="flex justify-center pt-8 sm:justify-start sm:pt-0">
    @foreach($available_locales as $locale_name => $available_locale)
        @if($available_locale === $current_locale)
            <span class="ml-2 mr-2 text-gray-700">{{ $locale_name }}</span>
        @else
            <a class="ml-1 underline ml-2 mr-2" href="language/{{ $available_locale }}">
                <span>{{ $locale_name }}</span>
            </a>
        @endif
    @endforeach
</div>


				
			

Um den neu erstellten Sprachumschalter in der „Willkommens“-Ansicht einzubinden, fügen Sie einfach die folgende Zeile in Ihre welcome.blade.php-Datei an der Stelle ein, an der der Umschalter erscheinen soll.

				
					<body class="antialiased">
    <div class="relative flex items-top justify-center min-h-screen bg-gray-100 sm:items-center py-4 sm:pt-0">
        <div class="max-w-6xl mx-auto sm:px-6 lg:px-8">
            @include('partials/language_switcher')

            <div class="flex justify-center pt-8 sm:justify-start sm:pt-0">
                {{ __('Welcome to our website!') }}
            </div>
        </div>
    </div>
</body>


				
			

Öffnen Sie die Datei app/Providers/AppServiceProvider.php und fügen Sie den folgenden Code in der boot()-Methode hinzu, um das aktuelle Gebietsschema für alle Ansichten freizugeben, wenn der Sprachumschalter verwendet wird

				
					* Bootstrap any application services.
 *
 * @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

Illustration von Menschen, die an einem Projekt arbeiten. Ein Team, das zusammenarbeitet.

In dieser Diskussion werden wir dann weitere Lokalisierungskomponenten behandeln, nämlich Datum, Zahl und Währung. Hier sind die Schritte.

Lokalisierte Datumsangaben in Laravel

Der Umgang mit Datums- und Zeitangaben ist im Lokalisierungsprozess entscheidend. Laravel verwendet Carbon, um Datums- und Zeitangaben zu verwalten. So können Sie Carbon verwenden, um ein lokalisiertes Datum anzuzeigen.

				
					<?php
Route::get('/', function () {
    $today = \Carbon\Carbon::now()
        ->settings(
            [
                'locale' => app()->getLocale(),
            ]
        );

    // LL is macro placeholder for MMMM D, YYYY (you could write same as dddd, MMMM D, YYYY)
    $dateMessage = $today->isoFormat('dddd, LL');

    return view('welcome', [
        'date_message' => $dateMessage
    ]);
});


				
			

Dieser Code legt die Carbon-Locale basierend auf der aktuellen Locale der Anwendung fest und formatiert das Datum entsprechend.

So zeigen Sie das lokalisierte Datum in einer Ansicht an:

				
					{{ __('Welcome to our website, :Name', ['name' => ‘Johb’]) }}
<br>
{{ trans_choice('{0} There :form :count apples|{1} There :form just :count apple|[2,19] There :form :count apples', 1, ['form' => 'is']) }}
<br>
{{ $date_message }}


				
			

Formatierung von Zahlen und Währungen

Verschiedene Länder haben unterschiedliche Arten der Zahlenformatierung. 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.

				
					<?php
$num = NumberFormatter::create('en_US', NumberFormatter::DECIMAL);

$num2 = NumberFormatter::create('fr', NumberFormatter::DECIMAL);
				
			

Sie können Zahlen auch in einer bestimmten Sprache ausschreiben.

				
					<?php
$num = NumberFormatter::create('en_US', NumberFormatter::SPELLOUT);

$num2 = NumberFormatter::create('it', NumberFormatter::SPELLOUT);
				
			

Hier sind die Währungen. Für das französische Locale (`fr`) wird die Währung in Euro (€) angezeigt, während sie für das US-Locale (`en_US`) in US-Dollar ($) dargestellt wird.

				
					<?php
$currency1 = NumberFormatter::create('it', NumberFormatter::CURRENCY);

$currency2 = NumberFormatter::create('en_US', NumberFormatter::CURRENCY);
				
			
Break Language Barriers
Verabschieden Sie sich von Sprachbarrieren und sagen Sie Hallo zu grenzenlosem Wachstum! Testen Sie noch heute unseren automatischen Übersetzungsdienst.

Alternative Lösung für die Laravel -Lokalisierung mit Linguise

Ein Team, das gemeinsam an einem digitalen Projekt arbeitet. Es ist von verschiedenen digitalen Werkzeugen und Symbolen umgeben.

Nachdem Sie die Schritte der Laravel -Lokalisierung wie im Artikel beschrieben verstanden haben, umfasst dieser Prozess viele Schritte, die von den Nutzern ein tiefgehendes Verständnis des Laravel -Programmcodes erfordern.

Dies kann für unerfahrene Nutzer, die ihre Anwendungen lokalisieren möchten, sicherlich schwierig sein. Daher ist eine innovativere Lösung erforderlich, die eine schnelle Übersetzung ermöglicht, die Lokalisierung unterstützt und nur wenige einfache Schritte zur Implementierung erfordert.

Eine vielversprechende Lösung ist Linguise. Linguise bietet einen einfacheren und effizienteren Ansatz für die Laravel -Lokalisierung, ohne dass fundierte Programmierkenntnisse erforderlich sind. Zu den Hauptfunktionen 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 zur Installation von Linguise auf Laravel -Websites lassen sich ebenfalls einfach durchführen. Hier ist eine kurze Erklärung.

  1. Erstellen Sie ein Linguise -Konto (nutzen Sie die 30-tägige kostenlose Testversion kostenlos)
  2. Registrieren Sie Ihre Laravel -Webdomain und geben Sie einige Informationen ein. Sie erhalten einen API-Schlüssel.
  3. Laden Sie das Linguise Übersetzungsskript in den von Ihnen erstellten Laravel Ordner hoch und verbinden Sie es.
  4. Richten Sie Sprach-URLs in der htaccess-Datei ein.
  5. Fügen Sie das Sprachumschalter-Skript in den Head Ihrer HTML ein.
  6. Passen Sie den Sprachumschalter nach Bedarf an
  7. Der Sprachumschalter wird auf der Laravel -Webseite angezeigt, und der Inhalt kann automatisch übersetzt werden.

Wie? Mit Linguisemüssen Sie sich nur registrieren und aktivieren, und der Sprachumschalter erscheint. Danach können Sie frei lokalisieren, zum Beispiel über den Live-Editor, Medien, Bilder usw. übersetzen.

Bereit, neue Märkte zu erkunden? Testen Sie unseren automatischen Übersetzungsdienst kostenlos mit unserer 1-monatigen risikofreien Testversion. Keine Kreditkarte erforderlich!

Conclusion

Die Laravel -Lokalisierung ist eine leistungsstarke Funktion, mit der Entwickler mehrsprachige Websites und Anwendungen erstellen können. Wie wir gesehen haben, umfasst der integrierte Laravel -Lokalisierungsprozess 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 sein.

Tools wie Linguise bieten eine innovative Alternative für alle, die einen schlankeren Ansatz suchen. Diese Lösungen bieten schnelle Übersetzungsmöglichkeiten, einfache Integration und benutzerfreundliche Funktionen wie anpassbare Sprachwechsler und Bildübersetzung. Jetzt erstellen Sie Ihr Linguise -Konto und genießen Sie unsere Funktion zur Lokalisierung Ihrer Laravel!

Vielleicht interessiert Sie auch

Nicht verpassen!
Abonniere unseren Newsletter

Erhalten Sie Neuigkeiten über automatische Website-Übersetzung, internationales SEO und mehr!

Invalid email address
Probieren Sie es aus. Einmal im Monat, und Sie können sich jederzeit abmelden.

Verlassen Sie uns nicht, ohne Ihre E-Mail-Adresse zu hinterlassen!

Wir können nicht garantieren, dass Sie im Lotto gewinnen, aber wir können Ihnen interessante Informationsnachrichten rund um Übersetzungen und gelegentliche Rabatte versprechen.

Nicht verpassen!
Invalid email address