Laravel Lokalisierung ist ein leistungsstarkes Tool, 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 sprachlichen Hintergründen bieten und letztendlich Ihre Reichweite erweitern und die Benutzerbindung verbessern.
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 Benutzern aus verschiedenen Ländern und Sprachhintergründen, Ihre Inhalte zu verstehen und mit ihnen zu interagieren.
- Verbessert die Benutzererfahrung: Die Lokalisierung ermöglicht es 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 Konversionsraten steigern.
- Wettbewerbsvorteil: In einem wettbewerbsintensiven 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 verbessern.
Anforderungen für eine mehrsprachige Laravel -Lokalisierung

Es gibt einige Anforderungen und Schritte zu beachten, wenn Sie eine 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 im Implementierungsprozess.
- Richten Sie eine lokale Entwicklungsumgebung oder einen Server ein, der Laravelunterstützt, einschließlich eines Webservers und einer Datenbank.
- Legen Sie die Sprachen fest, die Ihre Anwendung von Anfang an unterstützen wird.
Einfache Laravel Übersetzungen

Nachdem wir verstanden haben, welche Anforderungen vor der Übersetzung einer Laravel -Anwendung oder eines Laravel -Webs erfüllt sein müssen, werden wir einige einfache Schritte für die Übersetzung von Laravel bereitstellen.
Öffnen Sie dazu die Ansicht-Datei, die Sie lokalisieren möchten, zum Beispiel resources/views/welcome.blade.php. Ersetzen Sie dann den 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 die Übersetzung, wenn der Benutzer eine andere Sprache als Englisch auswählt. In diesem Fall wird Englisch als Standardsprache der Anwendung verwendet.
Einrichten von Gebietsschemata in einem Laravel mehrsprachigen Web

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 über den Schlüsseln sollte klar sein. Zusammenfassend enthält der Lokalisierungsschlüssel die standardmäßige Lokalisierung für Ihre Anwendung (wenn keine andere Lokalisierung im Code angegeben ist). Die fallback_locale wird aktiviert, wenn eine nicht existierende Lokalisierung 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 auf drei Sprachen zu unterstützen, nämlich Englisch, Italienisch und Französisch.
Übersichtsdateien für Laravel

In Laravelwerden, wie in vielen anderen Frameworks, Übersetzungen für verschiedene Sprachen in separaten Dateien gespeichert. Zwei Methoden werden verwendet, um diese Übersetzungsdateien zu organisieren.
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 wird sich auf die neuere Methode konzentrieren, 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, um die Laravel -Übersetzungsdateien zu organisieren.
- 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 auf 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.
Erstellung von Laravel Übersetzungsdateien
Nachdem wir die Gebietsschemata für unsere Anwendung konfiguriert haben, können wir mit der Übersetzung unserer standardmäßigen Willkommensnachricht fortfahren.
Beginnen wir damit, neue Lokalisierungsdateien im JSON-Format im Verzeichnis resources/lang zu erstellen. Zuerst erstellen wir eine resources/lang/it.json-Datei 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 sehen können, beziehen wir uns konsequent auf die Standardnachricht aus der welcome.blade.php-Datei ({{ __(‘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.
Einstellung des Sprachumschalters in einer mehrsprachigen Laravel -App

Darüber hinaus ist Laravel noch nicht so eingerichtet, dass die lokale Sprache überschrieben wird, 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 Gebietsschema und setzen das aktuelle Gebietsschema darauf basierend (wenn das angeforderte Gebietsschema unterstützt wird).
Jetzt können Sie Ihre Website besuchen und eine der unterstützten Sprachen als erstes Segment in der URL einfügen. Wenn Sie beispielsweise zu localhost/it oder localhost/fr navigieren, wird der lokalisierte Inhalt angezeigt. Wenn Sie kein Gebietsschema angeben oder eines wählen, das nicht unterstützt wird, wird Laravel auf Englisch (en) zurückgreifen.
Lokalisierungs-Middleware für Laravel
Die Aufnahme der Lokalisierung in jede URL ist möglicherweise nicht ideal und könnte das visuelle Erscheinungsbild der Seite stören. Um dies zu beheben, richten wir einen Sprachumschalter ein und nutzen die Benutzersitzung, um den übersetzten Inhalt anzuzeigen. Sie können eine neue Middleware in der Datei app/Http/Middleware/Localization.php erstellen oder sie durch Ausführen des Befehls 'artisan make:middleware Localization' generieren.
Fügen Sie dann den folgenden Code ein.
Diese Middleware weist Laravel an, 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 zum standardmäßigen 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 Abschlussroute, 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 Locale-Switching, das zuvor zur standardmäßigen Willkommensroute hinzugefügt wurde. Ihre Root-Route sollte jetzt wie folgt aussehen.
Route::get('/', function () {
return view('welcome');
});
Sobald dies geschehen ist, kann der Benutzer die aktive Sprache nur noch 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 zum Ändern des Sprachumschalters Laravel Web anbieten, anstatt dass sie manuell Gebietsschemacodes in der URL eingeben müssen. 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 „Willkommen“-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 die 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 mit Carbon ein lokalisiertes Datum anzeigen können.
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.
Um das lokalisierte Datum in einer Ansicht anzuzeigen:
{{ __('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 Locale (`fr`) wird die Währung in Euro (€) angezeigt, während sie für die US-Locale (`en_US`) in US-Dollar ($) angezeigt wird.
Alternative Lösung 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 zur Laravel -Lokalisierung ohne die Notwendigkeit tiefgreifender Programmierkenntnisse. Zu den Hauptfunktionen von Linguise gehören.
- Einfache Integration mit Laravel
- Anpassung des Sprachumschalters ohne Programmierung
- Bildübersetzung
- Live-Editor zur Anpassung 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 auch 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 -Web-Domain 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 Ihrer HTML-Datei ein.
- Passen Sie den Sprachumschalter nach Bedarf an
- 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 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 es 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 nach einer schnelleren 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!



