Laravel -lokalisering er et kraftfuldt værktøj, der gør det muligt for udviklere at skabe flersprogede websites. Ved at implementere web-lokalisering i dine Laravel -projekter kan du give en personlig brugeroplevelse til besøgende med forskellige sproglige baggrunde, hvilket i sidste ende udvider din rækkevidde og forbedrer brugerengagementet.
Vi guider dig gennem implementeringen af lokalisering i din Laravel -applikation og introducerer dig til et værktøj, der kan forenkle og forbedre dine lokaliseringsindsatser!
Hvorfor bør du lokalisere Laravel -webstedet?

Her er nogle vigtige grunde til, at du bør lokalisere dit Laravel -websted.
- Nå et globalt publikum: Ved at lokalisere dit Laravel -website kan du udvide rækkevidden af din app til et internationalt publikum. Dette gør det muligt for brugere fra forskellige lande og sproglige baggrunde at forstå og interagere med dit indhold.
- Forbedrer brugeroplevelsen: Lokalisering giver brugerne mulighed for at interagere med appen på deres modersmål, hvilket i høj grad forbedrer brugeroplevelsen. Dette kan øge engagementraten, reducere afvisningsprocenten og øge konverteringerne.
- Konkurrencemæssig fordel: På et konkurrencepræget globalt marked kan tilbud om apps på flere sprog give en betydelig fordel i forhold til konkurrenterne. Det viser dit engagement i internationale markeder og kan hjælpe dig med at komme mere effektivt ind på nye markeder.
- Forbedrer SEO: Vel-lokaliserede websites har en tendens til at rangere bedre i søgemaskiner ved søgninger på et bestemt sprog. Dette kan øge din blogtrafik og online synlighed på forskellige markeder med flersproget oversættelse.
Krav til en flersproget Laravel -lokalisering

Der er et par krav og trin, du skal overveje, når du implementerer flersproget lokalisering i Laravel.
- For at få de nyeste lokaliseringsfunktioner skal du sørge for at bruge den nyeste version af Laravel (f.eks. version 10.x).
- En grundlæggende forståelse af PHP og Laravel -frameworket vil være nyttig i implementeringsprocessen.
- Opsæt et lokalt udviklingsmiljø eller en server, der understøtter Laravel, inklusive en webserver og database.
- Bestem hvilke sprog din applikation skal understøtte fra starten.
Enkle Laravel -oversættelser

Efter at have forstået, hvilke krav der skal opfyldes, før man oversætter en Laravel -applikation eller et website, vil vi give nogle trin til nemt at oversætte Laravel .
For at gøre dette skal du åbne den visningsfil, du vil lokalisere, for eksempel resources/views/welcome.blade.php. Erstat derefter body-taggen med følgende kode.
Welcome to Linguise website!
Som du kan se, er teksten ovenfor i øjeblikket skrevet direkte i koden. Dette er mindre effektivt og gør det vanskeligt at oversætte websteder til forskellige sprog (internationalisering).
Vi vil gøre ovenstående tekst mere fleksibel, så den nemt kan tilpasses forskellige sprog. Laravel tilbyder en meget nyttig funktion til dette; lokaliseringssystemet. Som et første skridt skal du erstatte den eksisterende tekst med følgende kode.
{{ __('Welcome to Linguise website!') }}
Laravel vil som standard vise ovenstående tekst og slå oversættelsen op, hvis brugeren vælger et andet sprog end engelsk. I dette tilfælde vil engelsk blive brugt som applikationens standardsprog.
Opsætning af locales i et Laravel -flersproget web

Men hvordan bestemmer Laravel det aktuelle sprog, eller hvordan ved det, hvilke sprog der er tilgængelige i applikationen? Det tjekker lokalitetsindstillingerne i filen config/app.php. Åbn denne fil, og se efter de følgende to nøgler.
/*
|--------------------------------------------------------------------------
| 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',
Forklaringen oven over nøglerne bør være klar. Kort sagt indeholder locale-nøglen standardlokaliteten for din applikation (hvis ingen anden lokalitet er angivet i koden). fallback_locale aktiveres, hvis der anmodes om en ikke-eksisterende lokalitet i din applikation.
Lad os nu tilføje en ny nøgle til denne fil for at give en liste over alle understøttede locales.
/*
|--------------------------------------------------------------------------
| Available locales
|--------------------------------------------------------------------------
|
| List all locales that your application works with
|
*/
'available_locales' => [
'English' => 'en',
'Italian' => 'it',
'French' => 'fr',
],
På dette tidspunkt har vi prøvet Laravel web til at understøtte tre sprog, nemlig engelsk, italiensk og fransk.
Oversigt over Laravel -oversættelsesfiler

I Laravel, som i mange andre frameworks, gemmes oversættelser til forskellige sprog i separate filer. Der bruges to metoder til at organisere disse oversættelsesfiler.
Den ældre metode gemmer filer i følgende struktur: resources/lang/{en,fr,it}/{myfile.php}. Den nyere metode bruger JSON-filer, såsom resources/lang/{fr.json, it.json}. Denne artikel fokuserer på den nyere metode, selvom principperne er de samme for den ældre metode, bortset fra forskelle i, hvordan oversættelsesnøgler navngives og tilgås.
For sprog med regionale variationer bør du navngive sprogmapperne eller -filerne i overensstemmelse med ISO 15897-standarden. For eksempel ville britisk engelsk blive navngivet en_GB i stedet for en-gb.
Generelle oplysninger
I Laravel, som med mange frameworks, gemmes oversættelser til forskellige sprog i separate filer. Der er to primære metoder til at organisere Laravel -oversættelsesfiler.
- Den ældre fremgangsmåde indebærer at gemme filer under stien: resources/lang/{en,fr,it}/{myfile.php}.
- Den moderne tilgang bruger resources/lang/{fr.json, it.json}-filer.
Denne artikel vil fokusere på den anden metode, selvom principperne kan anvendes på begge (med variationer i, hvordan oversættelsesnøgler navngives og tilgås).
For sprog, der varierer efter region, anbefales det at navngive sprogmapper/filer i overensstemmelse med ISO 15897-standarderne. For eksempel vil britisk engelsk blive betegnet som en_GB i stedet for en-gb.
Oprettelse af Laravel -oversættelsesfiler
Når vi har konfigureret locales for vores applikation, kan vi fortsætte med at oversætte vores standardvelkomstbesked.
Lad os begynde med at oprette nye lokaliseringsfiler i JSON-format i mappen resources/lang. Først opretter vi en filen resources/lang/it.json og udfylder den med de relevante oversættelser.
{
"Welcome to Linguise website!": "Benvenuti nel sito web di Linguise!"
}
Tilføj derefter en resources/lang/fr.json-fil.
{
"Welcome to Linguise website!": "Bienvenue sur le site de Linguise"
}
Som du kan se, refererer vi konsekvent til standardmeddelelsen fra filen welcome.blade.php ({{ __(‘Velkommen til Linguise website!’) }}). Der er ingen grund til at oprette en en.json-fil, da Laravel automatisk genkender, at standardmeddelelserne er på engelsk.
Opsætning af sprogskifter i en Laravel flersproget app

Desuden er Laravel endnu ikke konfigureret til at tilsidesætte det lokale sprog, så indtil videre håndterer vi oversættelsen direkte i ruten. Rediger standardvelkomstruten i filen routes/web.php sådan her.
Route::get('/{locale?}', function ($locale = null) {
if (isset($locale) && in_array($locale, config('app.available_locales'))) {
app()->setLocale($locale);
}
return view('welcome');
});
I dette tilfælde fanger vi en valgfri locale GET-parameter og indstiller den aktuelle locale baseret på den (hvis den ønskede locale understøttes).
Nu kan du besøge dit website og inkludere et af de understøttede sprog som det første segment i URL'en. For eksempel vil navigation til localhost/it eller localhost/fr vise det lokaliserede indhold. Hvis du ikke angiver en locale eller vælger en, der ikke er understøttet, vil Laravel som standard bruge engelsk (en).
Localization-middleware til Laravel
At inkludere locale i hver URL er måske ikke ideelt og kan forstyrre webstedets visuelle appel. For at løse dette opsætter vi en sprogskifter og bruger brugersessionen til at vise det oversatte indhold. Du kan oprette ny middleware i filen app/Http/Middleware/Localization.php eller generere den ved at køre kommandoen artisan make:middleware Localization.
Tilføj derefter følgende kode.
Denne middleware vil instruere Laravel i at bruge den placering, som brugeren har valgt, hvis denne indstilling findes i sessionen.
Da vi har brug for, at handlingen kører ved hver anmodning, skal du føje den til den standard middleware-stak i app/Http/Kernel.php for web-middlewaregruppen.
/**
* 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
],
Ændring af ruter
Definer derefter en rute til at ændre locale i filen routes/web.php. Vi bruger en closure-rute her, men du kan placere den samme kode i en controller, hvis du foretrækker det.
Route::get('language/{locale}', function ($locale) {
app()->setLocale($locale);
session()->put('locale', $locale);
return redirect()->back();
});
Derudover skal du fjerne det lokale skift, der tidligere blev tilføjet til standardvelkomstruten. Din rodrute bør nu se sådan ud.
Route::get('/', function () {
return view('welcome');
});
Når dette er gjort, kan brugeren kun skifte det aktive sprog ved at besøge localhost/language/{locale}. Den valgte locale gemmes i sessionen, og brugerne omdirigeres tilbage til deres forrige side (håndteret af Localization-middlewaren).
For at teste det, gå til localhost/language/it (forudsat at sessionscookien er aktiv i din browser), og du bør se det oversatte indhold. Du kan navigere på webstedet eller genindlæse siden, og det valgte sprog vil forblive aktivt.
Implementering af sprogskifter
Nu skal vi give brugeren en klikbar mulighed for at ændre sprogskifteren Laravel web i stedet for at kræve, at de manuelt indtaster lokalekoder i URL'en. For at opnå dette skal du oprette en simpel sprogskifter. Tilføj en ny fil på resources/views/partials/language_switcher.blade.php og indsæt følgende kode.
@foreach($available_locales as $locale_name => $available_locale)
@if($available_locale === $current_locale)
{{ $locale_name }}
@else
{{ $locale_name }}
@endif
@endforeach
For at inkludere den nyoprettede sprogskifter i "welcome"-visningen skal du blot tilføje følgende linje til din welcome.blade.php-fil, hvor du ønsker, at skifteren skal vises.
@include('partials/language_switcher')
{{ __('Welcome to our website!') }}
Åbn filen app/Providers/AppServiceProvider.php, og tilføj følgende kode i boot()-metoden for at dele den aktuelle landestandard med alle visninger, når sprogskifteren bruges
* 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'));
});
}
Avancerede oversættelsesfunktioner i Laravel PHP

I denne diskussion vil vi derefter håndtere andre lokaliseringskomponenter, nemlig dato, tal og valuta. Her er trinnene.
Lokaliserede datoer i Laravel
Håndtering af datoer og tidspunkter er afgørende i lokaliseringsprocessen. Laravel bruger Carbon til at håndtere datoer og tidspunkter. Her er, hvordan du kan bruge Carbon til at vise en lokaliseret dato.
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
]);
});
Denne kode indstiller Carbon-lokaliteten baseret på applikationens aktuelle lokalitet og formaterer datoen i overensstemmelse hermed.
Sådan vises den lokaliserede dato i en visning:
{{ __('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 }}
Formatering af tal og valutaer
Forskellige lande har forskellige måder at formatere tal på. For eksempel.
- Frankrig → 123 123,12
- Tyskland → 123.123,12
- Japan → 123.123
For at håndtere disse variationer i din Laravel -applikation kan du bruge NumberFormatter.
Du kan også stave tal i et bestemt sprog.
Her er valutaerne. For den franske lokalitet (`fr`) vises valutaen i euro (€), mens den for den amerikanske lokalitet (`en_US`) vises i amerikanske dollars ($).
Alternativ løsning til Laravel -lokalisering med Linguise

Efter at have forstået trinnene i Laravel -lokalisering som beskrevet i artiklen, involverer denne proces mange trin, der kræver, at brugere forstår Laravel -programkoden i dybden.
Det kan bestemt gøre det svært for nybegyndere, der ønsker at lokalisere deres applikationer. Derfor er der brug for en mere innovativ løsning, der kan oversætte hurtigt, understøtter lokalisering og kun kræver et par enkle trin at implementere.
En lovende løsning er Linguise. Linguise tilbyder en nemmere og mere effektiv tilgang til Laravel -lokalisering uden behov for indgående kodningsviden. Nøglefunktioner i Linguise omfatter.
- Nem integration med Laravel
- Tilpas sprogskifteren uden kodning
- Billedoversættelse
- Live-editor til at tilpasse oversættelser til den lokale kontekst
- Dynamisk oversættelse til dynamisk genereret indhold
- SEO-optimering til flersprogede versioner
Trinene til at installere Linguise på Laravel -websteder kan også udføres nemt. Her er en kort forklaring.
- Opret en Linguise konto (brug den 30-dages gratis prøveperiode)
- Registrer dit Laravel -webdomæne, og indtast nogle oplysninger. Du får en API-nøgle.
- Upload og forbind Linguise -oversættelsesscriptet til den Laravel -mappe, du har fået.
- Opsæt sprog-URL'er i htaccess-filen.
- Indsæt sprogskifter-scriptet i head på din HTML.
- Tilpas sprogskifteren efter behov
- Sprogvælgeren vises på Laravel -webstedet, og indholdet kan oversættes automatisk.
Hvordan? Med Linguisebehøver du kun at registrere og aktivere, og sprogskifteren vises. Derefter kan du frit lokalisere, for eksempel via live-editoren, oversætte medier, billeder osv.
Conclusion
Laravel -lokalisering er en kraftfuld funktion, der gør det muligt for udviklere at skabe flersprogede websites og applikationer. Som vi har set, involverer den indbyggede Laravel -lokaliseringsproces flere trin og kræver en god forståelse af frameworket. Det kan være udfordrende for begyndere eller dem, der leder efter en hurtigere løsning.
Værktøjer som Linguise giver et innovativt alternativ til dem, der søger en mere strømlinet tilgang. Disse løsninger tilbyder hurtig oversættelse, nem integration og brugervenlige funktioner som tilpassede sprogskiftere og billedoversættelse. Nu kan du oprette din Linguise -konto og nyde vores funktion til at lokalisere din Laravel!



