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.
Vi vil guide dig gennem implementeringen af lokalisering i din Laravel applikation og introducere dig til et værktøj, der kan forenkle og forbedre dine lokaliseringsindsatser!
Hvorfor skal du lokalisere Laravel hjemmesiden?

Her er nogle vigtige grunde til, hvorfor du bør lokalisere din Laravel hjemmeside.
- Nå en global målgruppe: Ved at lokalisere din Laravel hjemmeside kan du udvide din apps rækkevidde til et internationalt publikum. Dette giver brugere fra forskellige lande og sprogbakgrunde mulighed for at forstå og interagere med dit indhold.
- Forbedrer brugeroplevelsen: Lokalisering giver brugerne mulighed for at interagere med appen på deres modersmål, hvilket markant forbedrer brugeroplevelsen. Dette kan øge engagementet, 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 din forpligtelse over for internationale markeder og kan hjælpe dig med at trænge ind på nye markeder mere effektivt.
- Forbedrer SEO: Godt lokaliserede hjemmesider har 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 flersproget Laravel lokalisering

Der er nogle krav og trin, du skal 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 -rammeværket vil være nyttig 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 enkelt.
For at gøre dette skal du åbne den visningsfil, som du vil lokalisere, for eksempel resources/views/welcome.blade.php. Erstat derefter 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 skal gøre teksten ovenfor 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 vise teksten ovenfor som standard 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 på en Laravel flersproget hjemmeside

Men hvordan bestemmer Laravel det nuværende sprog eller ved, hvilke sprog der er tilgængelige i applikationen? Den tjekker 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 burde 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.
Nu tilføjer vi 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.
Oversigt over Laravel oversættelsesfiler

I Laravel, som i mange andre rammer, gemmes oversættelser til 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 bør 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 rammer, gemmes oversættelser til forskellige sprog i separate filer. Der er to primære metoder til organisering af Laravel -oversættelsesfiler.
- Den ældre tilgang indebærer at gemme filer under stien: resources/lang/{en,fr,it}/{myfile.php}.
- Den moderne tilgang anvender resources/lang/{fr.json, it.json}-filer.
Denne artikel vil koncentrere sig om den anden metode, selvom principperne er anvendelige på begge (med variationer i, hvordan oversættelsesnøgler navngives og tilgås).
For sprog, der varierer alt 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.
Opretter Laravel oversættelsesfiler
Efter at have konfigureret lokaliteterne for vores applikation, kan vi fortsætte med at oversætte vores standard velkomstbesked.
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, henviser vi konsekvent til standardmeddelelsen fra welcome.blade.php-filen ({{ __(‘Velkommen til Linguise hjemmeside!’) }}). Der er ingen grund til at oprette en en.json-fil, da Laravel automatisk genkender, at standardmeddelelserne 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å indtil videre vil vi håndtere oversættelsen direkte inden for ruten. Rediger standard velkomst-ruten inde i filen routes/web.php som følger.
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 lokal GET-parameter og indstiller den aktuelle 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 navigering til localhost/it eller localhost/fr vise det lokaliserede indhold. Hvis du ikke angiver en lokalitet eller vælger en, der ikke understøttes, 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, opsætter vi en sprogskifter og benytter brugersessionen til at vise det oversatte indhold. Du kan oprette en ny middleware i app/Http/Middleware/Localization.php-filen eller generere det ved at køre artisan-kommandoen 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 indstilling er til stede i sessionen.
Da vi behøver, at operationen kører på hver anmodning, tilføjer vi det 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
Derefter skal du definere 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 lokalitetsskiftet, der tidligere blev tilføjet til standardvelkomst-ruten. Din rodrute 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 gemmes 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 indtaster lokalekoder i URL'en manuelt. For at opnå dette, opret 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 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 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.
Lokaliserede datoer i Laravel
Håndtering af datoer og tidspunkter er afgørende i lokaliseringsprocessen. Laravel bruger Carbon til at administrere 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å programmets aktuelle 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 numre 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 den 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, indebærer 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 et par enkle trin at implementere.
One promising solution is Linguise. Linguise offers an easier and more efficient approach to Laravel localization without the need for in-depth coding knowledge. Key features of Linguise include.
- 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ætning af sprog-URLs i htaccess-filen.
- Indsæt sprogskifter-scriptet i hovedet på din HTML.
- Tilpas sprogskifteren efter behov
- Sprogskifteren 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
Lokalisering er en kraftfuld funktion, der gør det muligt for udviklere at oprette flersprogede hjemmesider og applikationer. Som vi har set, indebærer den indbyggede 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 tilbyder et innovativt alternativ for dem, der søger en mere strømlinet tilgang. Disse løsninger tilbyder hurtige oversættelsesfunktioner, nem integration og brugervenlige funktioner som tilpasselige sprogskiftere og billedoversættelse. Nu, opret din konto og nyd vores funktion til lokalisering af din



