Laravel lokalisering er en kraftfuld, der gør det muligt for udviklere at skabe flersprogede websteder. Ved at implementere weblokalisering 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 guider dig gennem implementering af lokalisering i din Laravel -applikation og introducerer dig til et værktøj, der kan forenkle og forbedre din lokaliseringsindsats!
Hvorfor skal du lokalisere Laravel -webstedet?
Her er nogle vigtige grunde til, hvorfor du bør lokalisere dit Laravel -websted.
- Nå ud til et globalt publikum: Ved at lokalisere dit Laravel -websted kan du udvide rækkevidden af din app til et internationalt publikum. Dette giver brugere fra forskellige lande og sproglige baggrunde 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 forbedrer brugeroplevelsen markant. Dette kan øge engagementsraterne, reducere afvisningsprocenterne og øge antallet af konverteringer.
- Konkurrencefordel: 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 ind på nye markeder mere effektivt.
- Forbedrer SEO: Vellokaliserede websteder har en tendens til at rangere bedre i søgemaskinerne 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 et par krav og trin at overveje, når du implementerer flersproget lokalisering i Laravel .
- For at få de seneste lokaliseringsfunktioner skal du sørge for, at du bruger den seneste version af Laravel (f.eks. version 10.x).
- En grundlæggende forståelse af PHP og Laravel -rammen vil være nyttig i implementeringsprocessen.
- Konfigurer 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 være opfyldt, før vi oversætter en Laravel -applikation eller et web, vil vi give nogle trin til simpel oversættelse af Laravel .
For at gøre dette skal du åbne den view-fil, som du vil lokalisere, for eksempel resources/views/welcome.blade.php. Udskift derefter body-tagget med følgende kode.
Welcome to Linguise website!
Som du kan se, er ovenstående tekst 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 let kan tilpasses til forskellige sprog. Laravel giver en meget nyttig funktion til dette; lokaliseringssystemet. Som et første trin 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 på et Laravel flersproget web
Men hvordan bestemmer Laravel det aktuelle sprog eller ved, hvilke sprog der er tilgængelige i applikationen? Den kontrollerer 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 over tasterne skal være klar. Sammenfattende indeholder lokalitetsnø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 lokaliteter.
/*
|--------------------------------------------------------------------------
| 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 for at understøtte tre sprog, nemlig engelsk, italiensk og fransk.
Laravel oversættelsesfiler oversigt
I Laravel , som i mange andre rammer, er oversættelser til forskellige sprog gemt i separate filer. To metoder bruges 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 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 sprogbibliotekerne eller -filerne i henhold til ISO 15897-standarden. For eksempel ville britisk engelsk blive navngivet en_GB i stedet for en-gb.
Generel information
I Laravel , som med mange frameworks, er oversættelser til forskellige sprog gemt i separate filer. Der er to primære metoder til at organisere Laravel -oversættelsesfiler.
- Den ældre tilgang involverer lagring af filer under stien: resources/lang/{en,fr,it}/{myfile.php}.
- Den moderne tilgang bruger ressourcer/lang/{fr.json, it.json}-filer.
Denne artikel vil koncentrere sig om den anden metode, selvom principperne gælder for begge (med variationer i, hvordan oversættelsesnøgler navngives og tilgås).
For sprog, der varierer efter region, anbefales det at navngive sprogbiblioteker/filer i henhold til ISO 15897-standarder. For eksempel vil britisk engelsk blive betegnet som en_GB i stedet for en-gb.
Oprettelse af Laravel -oversættelsesfiler
Efter at have konfigureret lokaliteterne 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 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 filen welcome.blade.php ({{ __('Velkommen til Linguise -webstedet!') }}). 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 sat op til at tilsidesætte det lokale sprog, så indtil videre vil vi håndtere oversættelsen direkte på ruten. Rediger standardvelkomstruten inde i routes/web.php-filen på denne måde.
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 indfanger vi en valgfri landestandard GET-parameter og indstiller den aktuelle lokalitet baseret på den (hvis den anmodede lokalitet understøttes).
Nu kan du besøge dit websted og inkludere et hvilket som helst 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 (da).
Lokaliserings-middleware til Laravel
Det er måske ikke ideelt at inkludere lokaliteten i hver URL 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 indeni.
Denne middleware vil lede Laravel til at bruge den placering, som brugeren har valgt, hvis denne mulighed er til stede i sessionen.
Da vi har brug for handlingen til at køre på hver anmodning, skal du tilføje 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
Dernæst skal du definere en rute for at ændre lokaliteten i filen routes/web.php. Vi bruger en lukningsrute 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 lokale skift, der tidligere blev tilføjet til standardvelkomstruten. Din rodrute skulle 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 brugere vil blive omdirigeret tilbage til deres forrige side (som håndteret af lokaliserings-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 opdatere siden, og det valgte sprog forbliver i kraft.
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 lokale koder i URL'en manuelt. 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, skal du blot tilføje følgende linje til din welcome.blade.php-fil, hvor du gerne vil have, 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 så 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. Sådan kan du 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 landestandard og formaterer datoen i overensstemmelse hermed.
Sådan får du vist 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 på et bestemt sprog.
Her er valutaerne. For den franske lokalitet (`fr`) vil valutaen blive vist i euro (€), mens den for den amerikanske landestandard (`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.
Dette kan helt sikkert gøre det svært for nybegyndere, 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.
En lovende løsning er Linguise . Linguise tilbyder en lettere og mere effektiv tilgang til Laravel lokalisering uden behov for dybdegående kodningsviden. 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 til dynamisk genereret indhold
- SEO-optimering til flersprogede versioner
Trinnene 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 gratis)
- Registrer dit Laravel webdomæne og indtast nogle oplysninger. Du får en API-nøgle.
- Upload og tilslut Linguise oversættelsesscriptet til Laravel -mappen, du har.
- Indstil sprog-URL'er i htaccess-filen.
- Indsæt sprogskifter-scriptet i hovedet på din HTML.
- Tilpas sprogskifteren efter behov
- Sprogskifteren vises på Laravel -nettet, og indholdet kan oversættes automatisk.
Hvordan? Med Linguise skal du kun registrere og aktivere, og sprogskifteren vises. Herefter er du fri til at lokalisere fx gennem live-editoren, oversætte medier, billeder mv.
Konklusion
Laravel -lokalisering er en kraftfuld funktion, der gør det muligt for udviklere at oprette flersprogede websteder og applikationer. Som vi har set, involverer den indbyggede Laravel -lokaliseringsproces flere trin og kræver en god forståelse af rammerne. 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 hurtige oversættelsesmuligheder, nem integration og brugervenlige funktioner som sprogskiftere, der kan tilpasses og billedoversættelse. nu din Linguise konto og nyd vores funktion til at lokalisere din Laravel !