Laravel Lokalisierung ist ein leistungsstarkes Tool, das Entwicklern ermöglicht, mehrsprachige Websites zu erstellen. Durch die Implementierung von Web-Lokalisierung in Ihren Laravel
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 sollten Sie die Laravel -Website lokalisieren?

Hier sind einige wichtige Gründe, warum Sie Ihre Laravel -Website lokalisieren sollten.
- Erschließen 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 Sprachhintergründen, Ihre Inhalte zu verstehen und mit ihnen zu interagieren.
- Verbessert die Benutzererfahrung: Die Lokalisierung ermöglicht es den Benutzern, mit der App in ihrer Muttersprache zu interagieren, was die Benutzererfahrung erheblich verbessert. Dies kann die Engagement-Raten erhöhen, die Absprungraten reduzieren und die Konversionen steigern.
- Wettbewerbsvorteil: In einem wettbewerbsorientierten globalen Markt kann das Anbieten von Apps in mehreren Sprachen einen erheblichen Vorteil gegenüber Mitbewerbern bieten. Es zeigt Ihr Engagement für internationale Märkte und kann Ihnen helfen, neue Märkte effektiver zu erschließen.
- Verbessert SEO: Gut lokalisierte Websites neigen dazu, in Suchmaschinen für Suchanfragen in einer bestimmten Sprache besser zu ranken. Dies kann Ihren Blog-Traffic erhöhen und die Online-Sichtbarkeit in verschiedenen Märkten mit mehrsprachiger Übersetzung.
Anforderungen für eine mehrsprachige Laravel -Lokalisierung

Es gibt einige Anforderungen und Schritte zu berücksichtigen, wenn Sie die mehrsprachige Lokalisierung in Laravelimplementieren.
- 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 hilfreich bei der Implementierung.
- Richten Sie eine lokale Entwicklungsumgebung oder einen Server ein, der Laravelunterstützt, einschließlich eines Webservers und einer Datenbank.
- Bestimmen Sie die Sprachen, die Ihre Anwendung von Anfang an unterstützen wird.
Einfache Laravel Übersetzungen

Nachdem wir verstanden haben, welche Anforderungen erfüllt sein müssen, bevor eine Laravel -Anwendung oder ein Web übersetzt wird, werden wir einige Schritte für die einfache Übersetzung von Laravel bereitstellen.
Öffnen Sie dazu die Ansichtsdatei, die Sie lokalisieren möchten, zum Beispiel resources/views/welcome.blade.php. Ersetzen Sie dann das body-Tag durch den folgenden Code.
Welcome to Linguise website!
Wie Sie sehen, ist der obige Text derzeit direkt im Code geschrieben. Dies ist weniger effizient und erschwert die Übersetzung von Websites in verschiedene Sprachen (Internationalisierung).
Wir werden den obigen Text flexibler gestalten, damit er leicht an verschiedene Sprachen angepasst werden kann. Laravel bietet eine sehr hilfreiche Funktion dafür; das Lokalisierungssystem. Ersetzen Sie als ersten Schritt den vorhandenen Text durch den folgenden Code.
{{ __('Welcome to Linguise website!') }}
Laravel zeigt den obigen Text standardmäßig 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 Gebietsschemas in einer Laravel mehrsprachigen Webumgebung

Aber wie bestimmt Laravel die aktuelle Sprache oder weiß, welche Sprachen in der Anwendung verfügbar sind? Es überprüft die Lokalisierungseinstellungen 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 oberhalb der Schlüssel sollte klar sein. Zusammenfassend enthält der Gebietsschema-Schlüssel das Standardschema für Ihre Anwendung (wenn kein anderes Gebietsschema im Code angegeben ist). Das Fallback-Gebietsschema wird aktiviert, wenn ein nicht existentes Gebietsschema in Ihrer Anwendung angefordert wird.
Fügen wir nun diesem File einen neuen Schlüssel hinzu, um eine Liste aller unterstützten Gebietsschemata bereitzustellen.
/*
|--------------------------------------------------------------------------
| Available locales
|--------------------------------------------------------------------------
|
| List all locales that your application works with
|
*/
'available_locales' => [
'English' => 'en',
'Italian' => 'it',
'French' => 'fr',
],
An diesem Punkt haben wir versucht, Laravel Web zu unterstützen, und zwar in drei Sprachen, nämlich Englisch, Italienisch und Französisch.
Laravel Überblick über Übersetzungsdateien

In Laravelwerden, wie in vielen anderen Frameworks, Übersetzungen für verschiedene Sprachen in separaten Dateien gespeichert. Zwei Methoden werden zum Organisieren dieser Übersetzungsdateien 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, obwohl die Prinzipien für die ältere Methode ähnlich sind, abgesehen von den Unterschieden bei der Benennung und dem Zugriff auf Übersetzungsschlüssel.
Für Sprachen mit regionalen Variationen sollten Sie die Sprachverzeichnisse oder -dateien gemäß dem ISO 15897-Standard benennen. Zum Beispiel würde britisches Englisch anstelle von en-gb als en_GB benannt werden.
Allgemeine Informationen
In Laravelwerden wie bei vielen Frameworks Übersetzungen für verschiedene Sprachen in separaten Dateien gespeichert. Es gibt zwei primäre Methoden zur Organisation von Laravel -Übersetzungsdateien.
- Der Legacy-Ansatz beinhaltet das Speichern von Dateien unter dem Pfad: resources/lang/{en,fr,it}/{myfile.php}.
- Der moderne Ansatz verwendet resources/lang/{fr.json, it.json}-Dateien.
Dieser Artikel konzentriert sich auf die zweite Methode, obwohl die Prinzipien für beide anwendbar sind (mit Variationen bei der Benennung und dem Zugriff auf Übersetzungsschlüssel).
Für 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 und nicht als en-gb bezeichnet werden.
Erstellung von Laravel Übersetzungsdateien
Nachdem wir die Gebietsschemata für unsere Anwendung konfiguriert haben, können wir unsere standardmäßige 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 resources/lang/fr.json-Datei hinzu.
{
"Welcome to Linguise website!": "Bienvenue sur le site de Linguise"
}
Wie Sie beobachten können, verweisen wir konsequent auf die Standardnachricht aus der Datei welcome.blade.php ({{ __(‚Willkommen auf der Linguise -Website!‘) }}). Es besteht keine Notwendigkeit, eine en.json-Datei zu erstellen, da Laravel automatisch erkennt, dass die Standardnachrichten auf Englisch sind.
Einrichten des Sprachumschalters in einer Laravel mehrsprachigen App

Darüber hinaus ist Laravel noch nicht eingerichtet, um die lokale Sprache zu überschreiben, daher werden wir für jetzt die Übersetzung direkt innerhalb der Route handhaben. Ändern Sie die standardmäßige Willkommensroute innerhalb 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 GET-Parameter für die Lokalisierung und setzen die aktuelle Lokalisierung basierend darauf (wenn die angeforderte Lokalisierung unterstützt wird).
Jetzt können Sie Ihre Website besuchen und eine der unterstützten Sprachen als erstes Segment in die URL aufnehmen. Wenn Sie beispielsweise zu localhost/it oder localhost/fr navigieren, wird der lokalisierte Inhalt angezeigt. Wenn Sie keine Region angeben oder eine auswählen, die nicht unterstützt wird, wird standardmäßig Englisch (en) verwendet.
Lokalisierungs-Middleware für Laravel
Die Aufnahme der Lokalisierung in jede URL ist möglicherweise nicht ideal und könnte die visuelle Attraktivität der Site beeinträchtigen. Um dies zu beheben, richten wir einen Sprachumschalter ein und nutzen die Benutzersitzung, um den übersetzten Inhalt anzuzeigen. Sie können einen neuen Middleware in der Datei app/Http/Middleware/Localization.php erstellen oder ihn durch Ausführen des Befehls artisan make:middleware Localization generieren.
Fügen Sie dann den folgenden Code ein.
Dieses Middleware wird Laravel anweisen, den vom Benutzer ausgewählten Standort zu verwenden, wenn diese Option in der Sitzung vorhanden ist.
Da wir die Operation bei jeder Anfrage ausführen müssen, fügen Sie sie dem Standard-Middleware-Stack in app/Http/Kernel.php für die Web-Middleware-Gruppe hinzu.
/**
* The application's route middleware groups.
*
* @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, // <--- add this
],
Routen ändern
Definieren Sie als Nächstes eine Route, um die Lokalisierung 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 möchten.
Route::get('language/{locale}', function ($locale) {
app()->setLocale($locale);
session()->put('locale', $locale);
return redirect()->back();
});
Entfernen Sie außerdem das Gebietsschema-Switching, das zuvor zur standardmäßigen Willkommensroute hinzugefügt wurde. Ihre Root-Route sollte jetzt so aussehen.
Route::get('/', function () {
return view('welcome');
});
Sobald dies erledigt ist, kann der Benutzer die aktive Sprache nur umschalten, indem er localhost/language/{locale} besucht. Die ausgewählte Lokalisierung wird in der Sitzung gespeichert und die Benutzer werden auf ihre vorherige Seite zurückgeleitet (wie vom Lokalisierungs-Middleware gehandhabt).
Um es zu testen, gehen Sie zu localhost/language/it (vorausgesetzt, das Sitzungscookie ist in Ihrem Browser aktiv), und Sie sollten den übersetzten Inhalt sehen. Sie können die Seite navigieren oder aktualisieren, und die gewählte Sprache bleibt wirksam.
Implementierung des Sprachumschalters
Jetzt müssen wir dem Benutzer eine anklickbare Option geben, um den Sprachumschalter Laravel Web zu ändern, anstatt von ihnen zu verlangen, Gebietsschemacodes in der URL manuell einzugeben. Um dies zu erreichen, erstellen Sie 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 der „Willkommens“-Ansicht einzubinden, fügen Sie einfach die folgende Zeile in Ihre welcome.blade.php-Datei ein, wo der Umschalter erscheinen soll.
@include('partials/language_switcher')
{{ __('Welcome to our website!') }}
Öffnen Sie die Datei app/Providers/AppServiceProvider.php und fügen Sie den folgenden Code in der boot()-Methode hinzu, um das aktuelle Gebietsschema mit allen Ansichten zu teilen, 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

In dieser Diskussion werden wir dann andere Lokalisierungskomponenten behandeln, nämlich Datum, Zahl und Währung. Hier sind die Schritte.
Lokalisierte Daten in Laravel
Die Handhabung von Datum und Uhrzeit ist entscheidend im Lokalisierungsprozess. Laravel verwendet Carbon, um Datum und Uhrzeit zu verwalten. Hier erfahren Sie, wie Sie Carbon verwenden können, um ein lokalisiertes Datum anzuzeigen.
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 setzt die Carbon-Locale basierend auf der aktuellen Locale der Anwendung und formatiert das Datum entsprechend.
So zeigen Sie das lokalisierte Datum in einer Ansicht an:
{{ __('Welcome to our website, :Name', ['name' => ‘Johb’]) }}
{{ trans_choice('{0} There :form :count apples|{1} There :form just :count apple|[2,19] There :form :count apples', 1, ['form' => 'is']) }}
{{ $date_message }}
Formatierung von Zahlen und Währungen
Verschiedene Länder haben unterschiedliche Möglichkeiten, 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.
Sie können Zahlen auch in einer bestimmten Sprache buchstabieren.
Hier sind die Währungen. Für die französische Lokalisierung (`fr`) wird die Währung in Euro (€) angezeigt, während sie für die US-Lokalisierung (`en_US`) in US-Dollar ($) angezeigt wird.
Alternative Lösung für die Laravel -Lokalisierung mit Linguise

Nachdem Sie die Schritte der Laravel -Lokalisierung wie im Artikel beschrieben verstanden haben, umfasst dieser Prozess viele Schritte, die von den Benutzern verlangen, den Laravel -Programmcode tiefgreifend zu verstehen.
Dies kann es für unerfahrene Benutzer, die ihre Anwendungen lokalisieren möchten, sicherlich schwierig machen. Daher wird eine fortschrittlichere Lösung benötigt, 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 die Notwendigkeit von profundem Coding-Wissen. Zu den Hauptfunktionen von Linguise gehören.
- Einfache Integration mit Laravel
- Sprachumschalter ohne Programmierung anpassen
- Bildübersetzung
- Live-Editor zum Anpassen von Ü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 können ebenfalls einfach durchgeführt werden. Hier ist eine kurze Erklärung.
- Erstellen Sie ein Linguise -Konto (nutzen Sie die 30-Tage-Testversion kostenlos)
- Registrieren Sie Ihre Laravel -Webdomain und geben Sie einige Informationen ein. Sie erhalten einen API-Schlüssel.
- Laden Sie das Linguise -Übersetzungsskript hoch und verbinden Sie es mit dem Laravel -Ordner, den Sie erhalten haben.
- Sprach-URLs in der htaccess-Datei einrichten.
- Fügen Sie das Sprachumschalter-Skript im Kopf Ihres HTML ein.
- Passen Sie den Sprachumschalter nach Bedarf an
- Der Sprachumschalter wird auf der Laravel -Website angezeigt und der Inhalt kann automatisch übersetzt werden.
Wie? Mit Linguisemüssen Sie sich nur registrieren und aktivieren, und der Sprachumschalter wird angezeigt. Danach können Sie frei lokalisieren, zum Beispiel über den Live-Editor, Medien übersetzen, Bilder usw.
Fazit
Laravel Lokalisierung ist eine leistungsstarke Funktion, die Entwicklern ermöglicht, mehrsprachige Websites und Anwendungen zu erstellen. Wie wir gesehen haben, umfasst der integrierte Laravel Lokalisierungsprozess mehrere Schritte und erfordert ein gutes Verständnis des Frameworks. Es kann für Anfänger oder diejenigen, die eine schnellere Lösung suchen, eine Herausforderung darstellen.
Tools wie Linguise bieten eine innovative Alternative für diejenigen, die einen optimierten Ansatz suchen. Diese Lösungen bieten schnelle Übersetzungsmöglichkeiten, einfache Integration und benutzerfreundliche Funktionen wie anpassbare Sprachumschalter und Bildübersetzung. Jetzt erstellen Sie Ihr Linguise-Konto und genießen Sie unsere Funktion zur Lokalisierung Ihrer Laravel



