Laravel lokalisatie is een krachtige tool waarmee ontwikkelaars meertalige websites kunnen creëren. Door weblokalisatie in je Laravel projecten te implementeren, kun je bezoekers met verschillende taalkundige achtergronden een gepersonaliseerde gebruikerservaring bieden, waardoor je uiteindelijk je bereik vergroot en de gebruikersbetrokkenheid verbetert.
We begeleiden je bij het implementeren van lokalisatie in je Laravel -applicatie en laten je kennismaken met een tool die je lokalisatie-inspanningen kan vereenvoudigen en verbeteren!
Waarom zou je een Laravel website lokaliseren?

Hieronder volgen enkele belangrijke redenen waarom u uw Laravel website zou moeten lokaliseren.
- Bereik een wereldwijd publiek: Door uw Laravel website te lokaliseren, kunt u het bereik van uw app uitbreiden naar een internationaal publiek. Hierdoor kunnen gebruikers uit verschillende landen en met verschillende taalachtergronden uw content begrijpen en ermee interageren.
- Verbetert de gebruikerservaring: Lokalisatie stelt gebruikers in staat om in hun eigen taal met de app te communiceren, wat de gebruikerservaring aanzienlijk verbetert. Dit kan leiden tot een hogere betrokkenheid, een lager bouncepercentage en meer conversies.
- Concurrentievoordeel: In een concurrerende wereldmarkt kan het aanbieden van apps in meerdere talen een aanzienlijk voordeel opleveren ten opzichte van concurrenten. Het toont uw betrokkenheid bij internationale markten en kan u helpen om effectiever nieuwe markten te betreden.
- Verbetert SEO: Goed gelokaliseerde websites scoren doorgaans beter in zoekmachines voor zoekopdrachten in een specifieke taal. Dit kan het verkeer naar uw blog en uw online zichtbaarheid in verschillende markten vergroten dankzij meertalige vertalingen.
Vereisten voor een meertalige Laravel lokalisatie

Bij het implementeren van meertalige lokalisatie in Laravelzijn er een aantal vereisten en stappen waarmee rekening moet worden gehouden.
- Om de nieuwste lokalisatiefuncties te kunnen gebruiken, moet u ervoor zorgen dat u de nieuwste versie van Laravel gebruikt (bijvoorbeeld versie 10.x).
- Basiskennis van PHP en het Laravel -framework is nuttig bij de implementatie.
- Zet een lokale ontwikkelomgeving of server op die Laravelondersteunt, inclusief een webserver en database.
- Bepaal van meet af aan welke talen uw applicatie zal ondersteunen.
Eenvoudige Laravel vertalingen

Nadat we hebben begrepen aan welke vereisten moet worden voldaan voordat een Laravel applicatie of -webapplicatie kan worden vertaald, zullen we enkele stappen beschrijven om Laravel op een eenvoudige manier te vertalen.
Om dit te doen, open je het view-bestand dat je wilt lokaliseren, bijvoorbeeld resources/views/welcome.blade.php. Vervang vervolgens de <body>-tag door de volgende code.
Welcome to Linguise website!
Zoals je ziet, staat de bovenstaande tekst momenteel direct in de code. Dit is minder efficiënt en maakt het lastig om websites naar verschillende talen te vertalen (internationalisering).
We gaan de bovenstaande tekst flexibeler maken, zodat deze gemakkelijk aan verschillende talen kan worden aangepast. Laravel biedt hiervoor een zeer handige functie: het lokalisatiesysteem. Vervang als eerste stap de bestaande tekst door de volgende code.
{{ __('Welcome to Linguise website!') }}
Laravel zal standaard de bovenstaande tekst weergeven en de vertaling opzoeken als de gebruiker een andere taal dan Engels selecteert. In dat geval wordt Engels als standaardtaal van de applicatie gebruikt.
Het instellen van lokalisaties in een meertalige Laravel webapplicatie

Maar hoe bepaalt Laravel de huidige taal of welke talen beschikbaar zijn in de applicatie? Het controleert de locale-instellingen in het bestand config/app.php. Open dit bestand en zoek naar de volgende twee sleutels.
/*
|--------------------------------------------------------------------------
| 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',
De uitleg boven de sleutels zou duidelijk moeten zijn. Kort samengevat bevat de sleutel `locale` de standaardtaal voor uw toepassing (als er geen andere taal in de code is gespecificeerd). De sleutel `fallback_locale` wordt geactiveerd als er in uw toepassing een niet-bestaande taal wordt aangevraagd.
Laten we nu een nieuwe sleutel aan dit bestand toevoegen om een lijst van alle ondersteunde talen op te geven.
/*
|--------------------------------------------------------------------------
| Available locales
|--------------------------------------------------------------------------
|
| List all locales that your application works with
|
*/
'available_locales' => [
'English' => 'en',
'Italian' => 'it',
'French' => 'fr',
],
Tot nu toe hebben we Laravel Web getest met ondersteuning voor drie talen: Engels, Italiaans en Frans.
Overzicht Laravel -vertalingsbestanden

In Laravel, net als in veel andere frameworks, worden vertalingen voor verschillende talen in aparte bestanden opgeslagen. Er worden twee methoden gebruikt om deze vertaalbestanden te organiseren.
De oudere methode slaat bestanden op in de volgende structuur: resources/lang/{en,fr,it}/{myfile.php}. De nieuwere methode gebruikt JSON-bestanden, zoals resources/lang/{fr.json, it.json}. Dit artikel richt zich op de nieuwere methode, hoewel de principes vergelijkbaar zijn met die van de oudere methode, afgezien van de verschillen in de naamgeving en de toegang tot vertaalsleutels.
Voor talen met regionale varianten moet u de taalmappen of -bestanden benoemen volgens de ISO 15897-standaard. Brits Engels zou bijvoorbeeld en_GB heten in plaats van en-gb.
Algemene informatie
Net als bij veel andere frameworks worden in Laravelvertalingen voor verschillende talen in aparte bestanden opgeslagen. Er zijn twee belangrijke methoden om Laravel vertalingsbestanden te organiseren.
- De traditionele methode houdt in dat bestanden worden opgeslagen onder het pad: resources/lang/{en,fr,it}/{myfile.php}.
- De moderne aanpak maakt gebruik van de bestanden resources/lang/{fr.json, it.json}.
Dit artikel concentreert zich op de tweede methode, hoewel de principes op beide van toepassing zijn (met verschillen in de manier waarop vertaalsleutels worden benoemd en benaderd).
Voor talen die per regio verschillen, is het aan te raden om taalmappen/bestanden te benoemen volgens de ISO 15897-standaard. Brits Engels zou bijvoorbeeld worden aangeduid als en_GB in plaats van en-gb.
Laravel vertalingsbestanden maken
Nadat we de landinstellingen voor onze applicatie hebben geconfigureerd, kunnen we verdergaan met het vertalen van ons standaard welkomstbericht.
Laten we beginnen met het aanmaken van nieuwe lokalisatiebestanden in JSON-formaat in de map resources/lang. Eerst maken we een bestand resources/lang/it.json aan en vullen dit met de juiste vertalingen.
{
"Welcome to Linguise website!": "Benvenuti nel sito web di Linguise!"
}
Voeg vervolgens een bestand resources/lang/fr.json toe.
{
"Welcome to Linguise website!": "Bienvenue sur le site de Linguise"
}
Zoals je kunt zien, verwijzen we consequent naar het standaardbericht uit het bestand welcome.blade.php ({{ __('Welkom op de Linguise website!') }}). Het is niet nodig om een en.json-bestand aan te maken, omdat Laravel automatisch herkent dat de standaardberichten in het Engels zijn.
Het instellen van een taalschakelaar in een meertalige Laravel app

Bovendien is Laravel nog niet zo ingesteld dat de lokale taal wordt overschreven, dus voorlopig zullen we de vertaling rechtstreeks in de route afhandelen. Wijzig de standaard welkomstroute in het bestand routes/web.php als volgt.
Route::get('/{locale?}', function ($locale = null) {
if (isset($locale) && in_array($locale, config('app.available_locales'))) {
app()->setLocale($locale);
}
return view('welcome');
});
In dit geval onderscheppen we een optionele GET-parameter voor de landinstelling en stellen we de huidige landinstelling in op basis daarvan (indien de gevraagde landinstelling wordt ondersteund).
Nu kunt u uw website bezoeken en een van de ondersteunde talen als eerste deel van de URL opnemen. Als u bijvoorbeeld naar localhost/it of localhost/fr navigeert, wordt de gelokaliseerde inhoud weergegeven. Als u geen taal opgeeft of een taal kiest die niet wordt ondersteund, zal Laravel standaard Engels (en) gebruiken.
Lokalisatiemiddleware voor Laravel
Het opnemen van de landinstelling in elke URL is mogelijk niet ideaal en kan de visuele aantrekkingskracht van de site verstoren. Om dit op te lossen, implementeren we een taalschakelaar en gebruiken we de gebruikerssessie om de vertaalde inhoud weer te geven. Je kunt nieuwe middleware aanmaken in het bestand app/Http/Middleware/Localization.php, of deze genereren met het commando artisan make:middleware Localization.
Voeg vervolgens de volgende code toe.
Deze middleware zorgt ervoor dat Laravel de door de gebruiker geselecteerde locatie gebruikt, indien deze optie in de sessie aanwezig is.
Omdat we de bewerking bij elk verzoek moeten uitvoeren, voegen we deze toe aan de standaard middleware-stack in app/Http/Kernel.php voor de webmiddlewaregroep.
/**
* 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
],
Routes aanpassen
Vervolgens definieer je een route om de landinstelling te wijzigen in het bestand routes/web.php. We gebruiken hier een closure route, maar je kunt dezelfde code ook in een controller plaatsen als je dat prettiger vindt.
Route::get('language/{locale}', function ($locale) {
app()->setLocale($locale);
session()->put('locale', $locale);
return redirect()->back();
});
Verwijder bovendien de taalschakelaar die eerder aan de standaard welkomstroute was toegevoegd. Je hoofdroute zou er nu als volgt uit moeten zien.
Route::get('/', function () {
return view('welcome');
});
Zodra dit is gedaan, kan de gebruiker de actieve taal alleen wijzigen door naar localhost/language/{locale} te gaan. De geselecteerde taal wordt opgeslagen in de sessie en gebruikers worden teruggeleid naar hun vorige pagina (zoals afgehandeld door de lokalisatiemiddleware).
Om het te testen, ga naar localhost/language/it (ervan uitgaande dat de sessiecookie actief is in je browser) en je zou de vertaalde inhoud moeten zien. Je kunt door de site navigeren of de pagina vernieuwen, en de gekozen taal blijft behouden.
implementatie van de taalschakelaar
Nu moeten we de gebruiker een klikbare optie bieden om de taal in Laravel webbrowser , in plaats van dat ze handmatig landcodes in de URL moeten invoeren. Om dit te bereiken, maken we een eenvoudige taalschakelaar. Voeg een nieuw bestand toe in resources/views/partials/language_switcher.blade.php en voeg de volgende code toe.
@foreach($available_locales as $locale_name => $available_locale)
@if($available_locale === $current_locale)
{{ $locale_name }}
@else
{{ $locale_name }}
@endif
@endforeach
Om de zojuist gemaakte taalschakelaar in de welkomstpagina op te nemen, voegt u eenvoudig de volgende regel toe aan uw welcome.blade.php-bestand op de plek waar u de schakelaar wilt laten verschijnen.
@include('partials/language_switcher')
{{ __('Welcome to our website!') }}
Open het bestand app/Providers/AppServiceProvider.php en voeg de volgende code toe aan de boot()-methode om de huidige landinstelling te delen met alle weergaven wanneer de taalschakelaar wordt gebruikt
* 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'));
});
}
Geavanceerde vertaalfuncties in Laravel PHP

In deze bespreking gaan we vervolgens in op andere lokalisatiecomponenten, namelijk datum, getal en valuta. Dit zijn de stappen.
Gelokaliseerde datums in Laravel
Het correct verwerken van datums en tijden is cruciaal in het lokalisatieproces. Laravel gebruikt Carbon om datums en tijden te beheren. Hier lees je hoe je Carbon kunt gebruiken om een gelokaliseerde datum weer te geven.
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
]);
});
Deze code stelt de Carbon-locale in op basis van de huidige locale van de applicatie en formatteert de datum dienovereenkomstig.
Om de gelokaliseerde datum in een weergave weer te geven:
{{ __('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 }}
Getallen en valuta formatteren
Verschillende landen hanteren verschillende manieren om getallen te noteren. Bijvoorbeeld:.
- Frankrijk → 123 123,12
- Duitsland → 123.123,12
- Japan → 123.123
Om deze variaties in je Laravel applicatie te verwerken, kun je NumberFormatter gebruiken.
Je kunt getallen ook in een specifieke taal uitschrijven.
Hieronder staan de valuta's. Voor de Franse taalinstelling (`fr`) wordt de valuta weergegeven in euro's (€), terwijl voor de Amerikaanse taalinstelling (`en_US`) de valuta in Amerikaanse dollars ($) wordt weergegeven.
Alternatieve oplossing voor Laravel -lokalisatie met Linguise

Na het begrijpen van de stappen voor Laravel lokalisatie zoals beschreven in het artikel, omvat dit proces vele stappen die een grondige kennis van de Laravel -programmacode vereisen.
Dit kan het zeker lastig maken voor beginnende gebruikers die hun applicaties willen lokaliseren. Daarom is er behoefte aan een innovatievere oplossing die snel kan vertalen, lokalisatie ondersteunt en slechts een paar eenvoudige stappen vereist om te implementeren.
Een veelbelovende oplossing is Linguise. Linguise biedt een eenvoudigere en efficiëntere manier om Laravel lokalisatie te implementeren zonder dat diepgaande programmeerkennis vereist is. Belangrijke kenmerken van Linguise zijn onder andere:.
- Eenvoudige integratie met Laravel
- Pas de taalschakelaar aan zonder te programmeren
- Beeldvertaling
- Live-editor om vertalingen aan te passen aan de lokale context
- Dynamische vertaling voor dynamisch gegenereerde inhoud
- SEO-optimalisatie voor meertalige versies
De stappen om Linguise op Laravel -websites te installeren zijn ook eenvoudig. Hier volgt een korte uitleg.
- Maak een Linguise account aan (gebruik de gratis proefperiode van 30 dagen)
- Registreer je Laravel webdomein en vul wat gegevens in. Je ontvangt dan een API-sleutel.
- Upload en verbind het Linguise vertalingsscript met de Laravel map die je hebt aangemaakt.
- Stel taal-URL's in via het .htaccess-bestand.
- Voeg het script voor de taalschakelaar in de <head> van je HTML-code in.
- Pas de taalschakelaar naar wens aan
- De taalschakelaar verschijnt op de Laravel website en de inhoud kan automatisch worden vertaald.
Hoe? Met Linguisehoef je je alleen maar te registreren en te activeren, waarna de taalschakelaar verschijnt. Vervolgens kun je aan de slag met lokalisatie, bijvoorbeeld via de live-editor, het vertalen van media, afbeeldingen, enzovoort.
Gevolgtrekking
Laravel lokalisatie is een krachtige functie waarmee ontwikkelaars meertalige websites en applicaties kunnen maken. Zoals we hebben gezien, omvat het ingebouwde Laravel lokalisatieproces meerdere stappen en vereist het een goed begrip van het framework. Het kan een uitdaging zijn voor beginners of voor degenen die op zoek zijn naar een snellere oplossing.
Tools zoals Linguise bieden een innovatief alternatief voor wie een gestroomlijndere aanpak zoekt. Deze oplossingen bieden snelle vertaalmogelijkheden, eenvoudige integratie en gebruiksvriendelijke functies zoals aanpasbare taalschakelaars en beeldvertaling. Maak nu een Linguise account en profiteer van onze functie voor het lokaliseren van uw Laravel !



