Laravel lokalisering er en kraftfuld funktion, der gør det muligt for udviklere at oprette flersprogede hjemmesider. Ved at implementere web lokalisering i dine Laravel projekter, kan du give en personlig brugeroplevelse for besøgende fra forskellige sproglige baggrunde, hvilket i sidste ende udvider din rækkevidde og forbedrer brugerengagementet.
We’ll walk you through implementing localization in your Laravel application and introduce you to a tool that can simplify and enhance your localization efforts!
Hvorfor skulle du lokalisere Laravel hjemmesiden?

Her er nogle vigtige grunde til, at du bør lokalisere din Laravel hjemmeside.
- Nå en global målgruppe: Ved at lokalisere din Laravel hjemmeside, kan du udvide rækkevidden af din app til et internationalt publikum. Dette giver brugere fra forskellige lande og sprogbakgrunde mulighed for at forstå og interagere med dit indhold.
- Forbedrer brugeroplevelsen:
- Konkurencefordel: På et konkurrencepræget globalt marked kan det at tilbyde apps på flere sprog give en betydelig kant i forhold til konkurrenterne. Det viser din forpligtelse til internationale markeder og kan hjælpe dig med at komme ind på nye markeder mere effektivt.
- Forbedrer SEO: Veltilpassede hjemmesider har en tendens til at rangere bedre i søgemaskiner for søgninger på et bestemt sprog. Dette kan øge din blogtrafik og online synlighed på forskellige markeder med flersproget oversættelse.
Krav til en multilingual Laravel -lokalisering

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

Efter at have forstået, hvilke krav der skal opfyldes, før en Laravel -applikation eller -web oversættes, vil vi give nogle trin til at oversætte Laravel simpelt.
For at gøre dette, åbner du den visningsfil, som du ønsker at lokalisere, for eksempel resources/views/welcome.blade.php. Derefter erstatter du body-tagget 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 svært at oversætte hjemmesider 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; lokaliserings systemet. 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 lokaliteter i et Laravel flersproget web

Men hvordan bestemmer Laravel det nuværende sprog eller ved, hvilke sprog der er tilgængelige i applikationen? Den kontrollerer lokalitetsindstillingerne i config/app.php-filen. Åbn denne fil og se efter 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 skal være klar. Kort sagt indeholder lokalitetsnøglen standardlokaliteten for din applikation (hvis ingen anden lokalitet er specificeret i koden). fallback_locale aktiveres, hvis en ikke-eksisterende lokalitet anmodes om i din applikation.
Tilføj nu en ny nøgle til denne fil for at give en liste over alle understøttede lokaliteter.
/*
|--------------------------------------------------------------------------
| Available locales
|--------------------------------------------------------------------------
|
| List all locales that your application works with
|
*/
'available_locales' => [
'English' => 'en',
'Italian' => 'it',
'French' => 'fr',
],
På dette tidspunkt har vi forsøgt Laravel web til at understøtte tre sprog, nemlig engelsk, italiensk og fransk.
Laravel oversigt over oversættelsesfiler

I Laravel, ligesom i mange andre frameworks, gemmes oversættelser for forskellige sprog i separate filer. To metoder anvendes til organisering af 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 vil fokusere på den nyere metode, selvom principperne er ens for den ældre metode, bortset fra forskelle i, hvordan oversættelsesnøgler navngives og tilgås.
For sprog med regionale variationer skal du navngive sprogmapper eller -filer i henhold til ISO 15897-standarden. For eksempel vil britisk engelsk blive navngivet en_GB i stedet for en-gb.
Generel information
I Laravel, som med mange frameworks, er oversættelser for forskellige sprog gemt i separate filer. Der er to primære metoder til organisering af Laravel oversættelsesfiler.
- Den gamle tilgang indebærer at gemme filer under stien: resources/lang/{en,fr,it}/{myfile.php}.
- Den moderne tilgang anvender filer som resources/lang/{fr.json, it.json}.
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 henhold til ISO 15897-standarder. For eksempel vil britisk engelsk blive betegnet som en_GB snarere end en-gb.
Oprettelse af Laravel oversættelsesfiler
Efter at have konfigureret lokaliteterne for vores applikation, kan vi fortsætte med at oversætte vores standard velkomstmeddelelse.
Lad os begynde med at oprette nye lokaliseringsfiler i JSON-format inden for resources/lang-mappen. Først opretter vi en resources/lang/it.json-fil 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 konstant til standardmeddelelsen fra filen welcome.blade.php ({{ __(‘Velkommen til Linguise hjemmeside!’) }}). Der er ingen grund til at oprette en en.json fil, da Laravel automatisk genkender, at standardmeddelelsene er på engelsk.
Indstilling af sprogskifter i en Laravel flersproget app

Desuden er Laravel endnu ikke konfigureret til at tilsidesætte det lokale sprog, så vi vil håndtere oversættelsen direkte inden for ruten. Rediger standard velkomst-ruten inde i filen routes/web.php som dette.
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 lokalitets-GET-parameter og indstiller den nuværende lokalitet baseret på den (hvis den ønskede lokalitet understøttes).
Nu kan du besøge din hjemmeside 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 lokalitet eller vælger en der ikke er understøttet, vil Laravel som standard være Engelsk (en).
Lokalisering middleware til Laravel
At inkludere lokaliteten i hver URL er måske ikke ideelt og kan forstyrre sidens visuelle appel. For at løse dette vil vi opsætte en sprogskifter og bruge brugersessionen til at vise det oversatte indhold. Du kan oprette en ny middleware i filen app/Http/Middleware/Localization.php eller generere det ved at køre kommandoen artisan make:middleware Localization.
Tilføj derefter følgende kode indeni.
Denne middleware vil dirigere Laravel til at bruge den lokalitet, som brugeren har valgt, hvis denne mulighed er til stede i sessionen.
Da vi behøver, at operationen kører på hver anmodning, tilføjer vi den til standard-middleware-stakken i app/Http/Kernel.php for web-middleware-gruppen.
/**
* 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 lokaliteten i filen routes/web.php. Vi bruger en closure-rute her, men du kan placere den samme kode inde i en controller, hvis du foretrækker det.
Route::get('language/{locale}', function ($locale) {
app()->setLocale($locale);
session()->put('locale', $locale);
return redirect()->back();
});
Fjern desuden den tidligere tilføjede lokalomskifter fra standard velkomst-ruten. Din rod-rute skal 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 lokalitet vil blive gemt i sessionen, og brugerne vil blive omdirigeret tilbage til deres forrige side (som håndteret af Localization-middleware).
For at teste det, gå til localhost/language/it (forudsat at sessions-cookien er aktiv i din browser), og du bør se det oversatte indhold. Du kan navigere på siden eller opdatere 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 lokalitetskode 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 "velkommen"-visningen tilføjer du blot 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 lokalitet 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, nummer og valuta. Her er trinene.
Lokale 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 Carbones lokalitet baseret på applikationens nuværende lokalitet og formaterer datoen derefter.
For at vise 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 imødekomme disse variationer i din Laravel applikation, kan du bruge NumberFormatter.
Du kan også stave tal ud på et bestemt sprog.
Her er valutaerne. For det franske lokalområde (`fr`) vil valutaen blive vist i euro (€), mens det for det amerikanske lokalområde (`en_US`) vil blive vist i amerikanske dollars ($).
Alternativ løsning Laravel lokalisering med Linguise

Efter at have forstået trinene i Laravel lokalisering som beskrevet i artiklen, involverer denne proces mange trin, der kræver, at brugerne forstår Laravel programkoden i dybden.
Det kan helt sikkert gøre det svært for nye brugere, der ønsker at lokalisere deres applikationer. Derfor er der behov for en mere innovativ løsning, der er i stand til hurtig oversættelse, understøtter lokalisering og kun kræver få enkle trin at implementere.
En lovende løsning er Linguise. Linguise tilbyder en nemmere og mere effektiv tilgang til Laravel lokalisering uden behov for dybdegående kodningskendskab. Nøglefunktioner i Linguise inkluderer.
- Nem integration med Laravel
- Tilpas sprogskifter uden kodning
- Billedoversættelse
- Live editor til at tilpasse oversættelser til den lokale kontekst
- Dynamisk oversættelse for dynamisk genereret indhold
- SEO-optimering til flersprogede versioner
Trinene til installation af Linguise på Laravel hjemmesider kan også gøres nemt. Her er en kort forklaring.
- Opret en Linguise konto (brug den 30-dages gratis prøveperiode gratis)
- Registrer dit Laravel webdomæne og indtast nogle oplysninger. Du vil få en API-nøgle.
- Upload og tilslut Linguise oversættelsesscriptet til den Laravel mappe, du har fået.
- Opsæt sprog-URL'er i htaccess-filen.
- Indsæt sprogskifter-scriptet i hovedet 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 er du fri til at lokalisere, f.eks. via live-editoren, oversætte medier, billeder osv.
Konklusion
Laravel lokalisering er en kraftfuld funktion, der gør det muligt for udviklere at oprette flersprogede hjemmesider og applikationer. Som vi har set, involverer den indbyggede Laravel lokaliseringsproces flere trin og kræver en god forståelse af rammen. Det kan være udfordrende for begyndere eller dem, der søger en hurtigere løsning.
Værktøjer som Linguise tilbyder en innovativ alternativ løsning for dem, der søger en mere strømlinet tilgang. Disse løsninger tilbyder hurtige oversættelsesmuligheder, nem integration og brugervenlige funktioner som tilpasselige sprogvælgere og billedoversættelse. Nu, opret din Linguise konto og nyd vores funktion til lokalisering af din Laravel!



