Laravel Lokalisierung ist eine leistungsstarke Lösung, mit der Entwickler mehrsprachige Websites erstellen können. Durch die Implementierung der Weblokalisierung in Ihren Laravel -Projekten können Sie Besuchern mit unterschiedlichem Sprachhintergrund ein personalisiertes Benutzererlebnis bieten und so letztendlich Ihre Reichweite vergrößern und das Benutzerengagement 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 sollten Sie 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 erweitern. Dadurch können Benutzer aus verschiedenen Ländern und mit unterschiedlichem Sprachhintergrund Ihre Inhalte verstehen und mit ihnen interagieren.
- Verbessert das Benutzererlebnis: Durch die Lokalisierung können Benutzer mit der App in ihrer Muttersprache interagieren, was das Benutzererlebnis erheblich verbessert. Dies kann die Engagement-Raten erhöhen, die Absprungraten senken und die Conversions steigern.
- Wettbewerbsvorteil: In einem wettbewerbsintensiven globalen Markt kann das Anbieten von Apps in mehreren Sprachen einen erheblichen Vorteil gegenüber der Konkurrenz darstellen. Es zeigt Ihr Engagement für internationale Märkte und kann Ihnen dabei helfen, neue Märkte effektiver zu erschließen.
- Verbessert SEO: Gut lokalisierte Websites erzielen bei Suchanfragen in einer bestimmten Sprache tendenziell ein besseres Ranking in Suchmaschinen. Dies kann Ihren Blog-Verkehr und Ihre Online-Sichtbarkeit in verschiedenen Märkten durch mehrsprachige Übersetzungen erhöhen.
Voraussetzungen für eine mehrsprachige Laravel Lokalisierung
Bei der Implementierung der mehrsprachigen Lokalisierung in Laravel sind einige Anforderungen und Schritte zu berücksichtigen.
- 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 wird bei der Implementierung hilfreich sein.
- Richten Sie eine lokale Entwicklungsumgebung oder einen Server ein, der Laravel unterstützt, einschließlich eines Webservers und einer Datenbank.
- Bestimmen Sie von Anfang an die Sprachen, die Ihre Anwendung unterstützen soll.
Einfache Laravel Übersetzungen
Nachdem wir verstanden haben, welche Anforderungen vor der Übersetzung einer Laravel -Anwendung oder eines Laravel-Webs erfüllt sein müssen, stellen wir Ihnen einige Schritte zur einfachen Übersetzung Laravel vor.
Ö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 können, 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 hierfü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 Gebietsschemas in einem mehrsprachigen Laravel Web
Aber wie ermittelt Laravel die aktuelle Sprache bzw. weiß, welche Sprachen in der Anwendung verfügbar sind? Es überprüft die Gebietsschemaeinstellungen 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 Tasten sollte klar sein. Zusammenfassend enthält der Gebietsschemaschlüssel das Standardgebietsschema für Ihre Anwendung (sofern im Code kein anderes Gebietsschema angegeben ist). Das fallback_locale wird aktiviert, wenn in Ihrer Anwendung ein nicht vorhandenes Gebietsschema angefordert wird.
Fügen wir dieser Datei nun einen neuen Schlüssel hinzu, um eine Liste aller unterstützten Gebietsschemas bereitzustellen.
/*
|--------------------------------------------------------------------------
| Available locales
|--------------------------------------------------------------------------
|
| List all locales that your application works with
|
*/
'available_locales' => [
'English' => 'en',
'Italian' => 'it',
'French' => 'fr',
],
Zu diesem Zeitpunkt haben wir versucht, Laravel Web drei Sprachen zu unterstützen, nämlich Englisch, Italienisch und Französisch.
Übersicht über Laravel Übersetzungsdateien
In Laravel werden, wie in vielen anderen Frameworks auch, Übersetzungen für verschiedene Sprachen in separaten Dateien gespeichert. Zum Organisieren 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, obwohl die Prinzipien für die ältere Methode ähnlich sind, abgesehen von Unterschieden bei der Benennung und dem Zugriff auf Übersetzungsschlüssel.
Bei Sprachen mit regionalen Variationen sollten Sie die Sprachverzeichnisse oder Dateien nach dem ISO 15897-Standard benennen. Beispielsweise würde britisches Englisch en_GB statt en-gb heißen.
Allgemeine Information
In Laravel werden, wie bei vielen Frameworks, Übersetzungen für verschiedene Sprachen in separaten Dateien gespeichert. Es gibt zwei Hauptmethoden zum Organisieren Laravel Übersetzungsdateien.
- Der Legacy-Ansatz beinhaltet das Speichern von Dateien unter dem Pfad: resources/lang/{en,fr,it}/{myfile.php}.
- Der moderne Ansatz nutzt 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. Britisches Englisch würde beispielsweise als en_GB und nicht als en-gb bezeichnet.
Erstellen 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 der Erstellung neuer Lokalisierungsdateien im JSON-Format im Verzeichnis resources/lang. 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 durchgehend auf die Standardnachricht aus der Datei „welcome.blade.php“ ({{ __('Willkommen auf Linguise Website!') }}). Es ist nicht erforderlich, eine en.json-Datei zu erstellen, da Laravel automatisch erkennt, dass die Standardnachrichten auf Englisch sind.
Einstellen des Sprachumschalters in einer mehrsprachigen Laravel -App
Darüber hinaus ist Laravel noch nicht so eingerichtet, dass es die lokale Sprache überschreibt, daher werden wir die Übersetzung vorerst direkt innerhalb der Route übernehmen. Ä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 GET-Parameter für das Gebietsschema und legen darauf basierend das aktuelle Gebietsschema fest (sofern das angeforderte Gebietsschema unterstützt wird).
Jetzt können Sie Ihre Website besuchen und eine der unterstützten Sprachen als erstes Segment in die 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 auswählen, das nicht unterstützt wird, verwendet Laravel standardmäßig Englisch (en).
Lokalisierungs-Middleware für Laravel
Die Einbeziehung des Gebietsschemas in jede URL ist möglicherweise nicht ideal und könnte die visuelle Attraktivität der Website beeinträchtigen. Um dieses Problem zu beheben, richten wir einen Sprachumschalter ein und nutzen die Benutzersitzung, um den übersetzten Inhalt anzuzeigen. Sie können neue Middleware in der Datei app/Http/Middleware/Localization.php erstellen oder sie generieren, indem Sie den Befehl artisan make:middleware Localization ausführen.
Fügen Sie dann den folgenden Code hinzu.
Diese Middleware weist Laravel an, den vom Benutzer ausgewählten Speicherort zu verwenden, wenn diese Option in der Sitzung vorhanden ist.
Da der Vorgang bei jeder Anfrage ausgeführt werden muss, fügen Sie ihn 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 zum Ändern des Gebietsschemas in der Datei „routes/web.php“. Wir verwenden hier eine Abschlussroute, aber Sie können den gleichen Code auch in einen Controller einfügen, wenn Sie möchten.
Route::get('language/{locale}', function ($locale) {
app()->setLocale($locale);
session()->put('locale', $locale);
return redirect()->back();
});
Entfernen Sie außerdem die Gebietsschemaumschaltung, 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 wechseln, indem er localhost/sprache/{locale} aufruft. Das ausgewählte Gebietsschema wird in der Sitzung gespeichert und Benutzer werden zu ihrer vorherigen Seite zurückgeleitet (wie von der 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 auf der Website navigieren oder die Seite aktualisieren, die gewählte Sprache bleibt jedoch erhalten.
Implementierung des Sprachumschalters
Jetzt müssen wir dem Benutzer eine anklickbare Option bieten, um den Sprachumschalter Laravel Web , anstatt von ihm die manuelle Eingabe von Gebietsschemacodes in die URL zu verlangen. 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 „Willkommen“-Ansicht einzuschließen, fügen Sie einfach die folgende Zeile zu Ihrer Datei „welcome.blade.php“ hinzu, wo der Umschalter angezeigt werden 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 die boot()-Methode ein, 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
In dieser Diskussion werden wir uns dann mit anderen Lokalisierungskomponenten befassen, nämlich Datum, Zahl und Währung. Hier sind die Schritte.
Lokalisierte Daten in Laravel
Der Umgang mit Datum und Uhrzeit ist im Lokalisierungsprozess von entscheidender Bedeutung. Laravel verwendet Carbon zur Verwaltung von Datum und Uhrzeit. So können Sie mit Carbon ein lokalisiertes Datum anzeigen.
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 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:
{{ __('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 }}
Zahlen und Währungen formatieren
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 das französische Gebietsschema („fr“) wird die Währung in Euro (€) angezeigt, während sie für das US-Gebietsschema („en_US“) in US-Dollar ($) angezeigt wird.
Alternative Lösung Laravel -Lokalisierung mit Linguise
Nachdem Sie die im Artikel beschriebenen Schritte der Laravel Lokalisierung verstanden haben, umfasst dieser Prozess viele Schritte, die von den Benutzern ein gründliches Verständnis des Laravel -Programmcodes erfordern.
Dies kann es für unerfahrene Benutzer, die ihre Anwendungen lokalisieren möchten, sicherlich schwierig machen. 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 zur Laravel Lokalisierung, ohne dass tiefgreifende Programmierkenntnisse erforderlich sind. Zu den Hauptfunktionen von Linguise gehören:
- Einfache Integration mit Laravel
- Passen Sie den Sprachumschalter ohne Codierung an
- 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 Linguise auf Laravel -Websites können ebenfalls problemlos durchgeführt werden. Hier eine kurze Erklärung.
- Erstellen Sie ein Linguise Konto (nutzen Sie die 30-tägige kostenlose Testversion kostenlos)
- Registrieren Sie Ihre Laravel Webdomäne 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.
- Richten Sie Sprach-URLs in der htaccess-Datei ein.
- Fügen Sie das Sprachumschalter-Skript in den Kopf Ihres HTML-Codes ein.
- Passen Sie den Sprachumschalter nach Bedarf an
- Der Sprachumschalter wird im Laravel -Web angezeigt und der Inhalt kann automatisch übersetzt werden.
Wie? Bei Linguise müssen Sie sich nur registrieren und aktivieren, schon erscheint der Sprachumschalter. Danach können Sie beispielsweise über den Live-Editor lokalisieren, Medien, Bilder usw. übersetzen.
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. Für Anfänger oder diejenigen, die eine schnellere Lösung suchen, kann es eine Herausforderung sein.
Tools wie Linguise bieten eine innovative Alternative für diejenigen, die einen schlankeren Ansatz suchen. Diese Lösungen bieten schnelle Übersetzungsfunktionen, einfache Integration und benutzerfreundliche Funktionen wie anpassbare Sprachumschalter und Bildübersetzung. jetzt Ihr Linguise Konto und genießen Sie unsere Funktion zur Lokalisierung Ihres Laravel !