Laravel lokalisatie is een krachtige tool die ontwikkelaars in staat stelt om meertalige websites te maken. Door web lokalisatie te implementeren in uw Laravel projecten, kunt u een gepersonaliseerde gebruikerservaring bieden aan bezoekers met verschillende taalachtergronden, waardoor u uw bereik kunt vergroten en de gebruikersbetrokkenheid kunt verbeteren.
We zullen u door de implementatie van lokalisatie in uw Laravel applicatie leiden en u kennis laten maken met een tool die uw lokalisatie inspanningen kan vereenvoudigen en verbeteren!
Waarom zou u de Laravel website lokaliseren?

Hier zijn enkele belangrijke redenen waarom u uw Laravel website zou moeten lokaliseren.
- Wereldwijd publiek bereiken: Door uw Laravel website te lokaliseren, kunt u het bereik van uw app uitbreiden tot een internationaal publiek. Hierdoor kunnen gebruikers uit verschillende landen en met verschillende talen uw content begrijpen en ermee communiceren.
- Verbetering van de gebruikerservaring: Lokalisatie stelt gebruikers in staat om met de app te communiceren in hun moedertaal, wat de gebruikerservaring aanzienlijk verbetert. Dit kan het aantal betrokken gebruikers verhogen, het bouncepercentage verlagen en de conversie verhogen.
- Concurrentievoordeel: In een concurrerende wereldmarkt kan het aanbieden van apps in meerdere talen een significante voorsprong op concurrenten opleveren. Het toont uw toewijding aan internationale markten en kan u helpen nieuwe markten effectiever te betreden.
- Verbetert SEO: Goed gelokaliseerde websites hebben de neiging om beter te scoren in zoekmachines voor zoekopdrachten in een bepaalde taal. Dit kan uw blogverkeer verhogen en online zichtbaarheid in verschillende markten met meertalige vertaling.
Vereisten voor een meertalige Laravel lokalisatie

Er zijn een aantal vereisten en stappen waarmee u rekening moet houden bij het implementeren van meertalige lokalisatie in Laravel.
- Om de laatste lokalisatiefuncties te krijgen, moet u ervoor zorgen dat u de laatste versie van Laravel gebruikt (bijv. versie 10.x).
- Een basiskennis van PHP en het Laravel -framework is handig tijdens het implementatieproces.
- Stel een lokale ontwikkelomgeving of server in die Laravelondersteunt, inclusief een webserver en database.
- Bepaal de talen die uw applicatie vanaf het begin zal ondersteunen.
Eenvoudige Laravel vertalingen

Na het begrijpen van de vereisten die moeten worden vervuld voordat een Laravel applicatie of web wordt vertaald, zullen we enkele stappen bieden voor het eenvoudig vertalen van Laravel .
Om dit te doen, open het weergavebestand dat u wilt lokaliseren, bijvoorbeeld resources/views/welcome.blade.php. Vervang vervolgens de body-tag met de volgende code.
Welcome to Linguise website!
Zoals je kunt zien, is de tekst hierboven rechtstreeks in de code geschreven. Dit is minder efficiënt en maakt het moeilijk om websites naar verschillende talen te vertalen (internationalisatie).
We gaan de bovenstaande tekst flexibeler maken, zodat deze gemakkelijk kan worden aangepast aan verschillende talen. Laravel biedt een zeer nuttige functie hiervoor; het lokalisatiesysteem. Vervang de bestaande tekst door de volgende code als eerste stap.
{{ __('Welcome to Linguise website!') }}
Laravel zal de bovenstaande tekst standaard weergeven en de vertaling opzoeken als de gebruiker een andere taal dan het Engels selecteert. In dit geval wordt het Engels gebruikt als de standaardtaal van de applicatie.
Lokalisatie instellen in een Laravel meertalige web

Maar hoe bepaalt Laravel de huidige taal of weet welke talen beschikbaar zijn in de applicatie? Het controleert de locale-instellingen in het config/app.php bestand. 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 moet duidelijk zijn. In samenvatting, de locale-sleutel bevat de standaard locale voor uw applicatie (als geen andere locale is gespecificeerd in de code). De fallback_locale wordt geactiveerd als een niet-bestaande locale wordt aangevraagd in uw applicatie.
Laten we nu een nieuwe sleutel toevoegen aan dit bestand om een lijst van alle ondersteunde locales te bieden.
/*
|--------------------------------------------------------------------------
| Available locales
|--------------------------------------------------------------------------
|
| List all locales that your application works with
|
*/
'available_locales' => [
'English' => 'en',
'Italian' => 'it',
'French' => 'fr',
],
Op dit punt hebben we geprobeerd Laravel web te ondersteunen in drie talen, namelijk Engels, Italiaans en Frans.
Laravel overzicht van vertaaldossiers

In Laravelworden vertalingen voor verschillende talen, net als in vele andere frameworks, in afzonderlijke bestanden opgeslagen. Er worden twee methoden gebruikt om deze vertaaldossiers te organiseren.
De oudere methode slaat bestanden op in de volgende structuur: resources/lang/{en,fr,it}/{myfile.php}. De nieuwere methode maakt gebruik van JSON-bestanden, zoals resources/lang/{fr.json, it.json}. Dit artikel zal zich richten op de nieuwere methode, hoewel de principes vergelijkbaar zijn voor de oudere methode, afgezien van de verschillen in hoe vertaalsleutels worden genoemd en geraadpleegd.
Voor talen met regionale variaties moet u de taal directories of bestanden een naam geven volgens de ISO 15897-norm. Brits Engels zou bijvoorbeeld en_GB genoemd worden in plaats van en-gb.
Algemene informatie
In Laravel, zoals bij veel frameworks, worden vertalingen voor verschillende talen in afzonderlijke bestanden opgeslagen. Er zijn twee primaire methoden voor het organiseren van Laravel vertalingsbestanden.
- De legacy-benadering omvat het opslaan van bestanden onder het pad: resources/lang/{en,fr,it}/{myfile.php}.
- De moderne aanpak maakt gebruik van resources/lang/{fr.json, it.json} bestanden.
Dit artikel zal zich concentreren op de tweede methode, hoewel de principes van toepassing zijn op beide (met variaties in hoe vertalingssleutels worden genoemd en benaderd).
Voor talen die per regio variëren, wordt aanbevolen om taalmap-/bestandsnamen te volgen volgens de ISO 15897-standaarden. Brits Engels wordt bijvoorbeeld aangeduid als en_GB in plaats van en-gb.
Vertalingsbestanden maken
Nadat we de landinstellingen voor onze applicatie hebben geconfigureerd, kunnen we onze standaard welkomstboodschap vertalen.
Laten we beginnen met het maken van nieuwe lokalisatiebestanden in JSON-formaat in de map resources/lang. Eerst maken we een resources/lang/it.json-bestand en vullen we het met de juiste vertalingen.
{
"Welcome to Linguise website!": "Benvenuti nel sito web di Linguise!"
}
Voeg vervolgens een resources/lang/fr.json-bestand toe.
{
"Welcome to Linguise website!": "Bienvenue sur le site de Linguise"
}
Zoals je kunt zien, verwijzen we consequent naar het standaardbericht uit het welcome.blade.php-bestand ({{ __(‘Welkom op de Linguise website!’) }}). Er is geen noodzaak om een en.json-bestand te maken, aangezien Laravel automatisch herkent dat de standaardberichten in het Engels zijn.
Taalwisselaar instellen in een Laravel meertalige app

Bovendien is Laravel nog niet ingesteld om de lokale taal te overschrijven, dus voor nu zullen we de vertaling rechtstreeks binnen de route afhandelen. Pas de standaard welkomstroute binnen de routes/web.php bestand aan zoals hier.
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 vangen we een optionele locale GET-parameter op en stellen we de huidige locale in op basis daarvan (als de gevraagde locale wordt ondersteund).
Nu kunt u uw website bezoeken en een van de ondersteunde talen opnemen als het eerste segment in de URL. Als u bijvoorbeeld naar localhost/it of localhost/fr navigeert, wordt de gelokaliseerde inhoud weergegeven. Als u geen locale specificeert of een kiest die niet wordt ondersteund, zal Laravel standaard Engels (en) gebruiken.
Lokalisatiemiddleware voor Laravel
Het opnemen van de locale in elke URL is misschien niet ideaal en kan het visuele uiterlijk van de site verstoren. Om dit aan te pakken, zullen we een taalwisselaar instellen en de gebruikerssessie gebruiken om de vertaalde inhoud weer te geven. U kunt nieuwe middleware maken in het app/Http/Middleware/Localization.php bestand, of het genereren door het uitvoeren van de artisan make:middleware Localization opdracht.
Voeg vervolgens de volgende code toe.
Deze middleware zal Laravel instrueren om de door de gebruiker geselecteerde locatie te gebruiken als deze optie aanwezig is in de sessie.
Omdat we de bewerking op elke aanvraag willen uitvoeren, voegen we het toe aan de standaard middleware-stack in app/Http/Kernel.php voor de web middleware-groep.
/**
* 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 wijzigen
Definieer vervolgens een route om de locale te wijzigen in het routes/web.php bestand. We gebruiken hier een closure route, maar u kunt dezelfde code ook binnen een controller plaatsen als u dat wilt.
Route::get('language/{locale}', function ($locale) {
app()->setLocale($locale);
session()->put('locale', $locale);
return redirect()->back();
});
Verwijder bovendien het locale wisselen dat eerder aan de standaard welkomstroute was toegevoegd. Uw rootroute zou er nu zo uit moeten zien.
Route::get('/', function () {
return view('welcome');
});
Zodra dit is gedaan, kan de gebruiker alleen de actieve taal wijzigen door localhost/language/{locale} te bezoeken. De geselecteerde locale wordt opgeslagen in de sessie en gebruikers worden teruggeleid naar hun vorige pagina (zoals afgehandeld door de Localization middleware).
Om het te testen, ga naar localhost/language/it (ervan uitgaande dat de sessiecookie actief is in uw browser), en u zou de vertaalde inhoud moeten zien. U kunt de site navigeren of de pagina vernieuwen, en de gekozen taal blijft van kracht.
Implementatie van taalwisselaar
Nu moeten we de gebruiker een klikbare optie bieden om de taalwisselaar Laravel web te wijzigen in plaats van hen te vragen landcodes in de URL handmatig in te voeren. Om dit te bereiken, maakt u een eenvoudige taalwisselaar. Voeg een nieuw bestand toe aan resources/views/partials/language_switcher.blade.php en voeg de volgende code in.
@foreach($available_locales as $locale_name => $available_locale)
@if($available_locale === $current_locale)
{{ $locale_name }}
@else
{{ $locale_name }}
@endif
@endforeach
Om de nieuw gecreëerde taalwisselaar op te nemen in de “welcome” weergave, voegt u eenvoudig de volgende regel toe aan uw welcome.blade.php bestand waar u de wisselaar wilt laten verschijnen.
@include('partials/language_switcher')
{{ __('Welcome to our website!') }}
Open het app/Providers/AppServiceProvider.php bestand en voeg de volgende code toe in de boot() methode om de huidige locale te delen met alle views wanneer de taalwisselaar 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 discussie zullen we vervolgens andere lokalisatiecomponenten behandelen, namelijk datum, nummer en valuta. Hier zijn de stappen.
Gelokaliseerde datums in Laravel
Het omgaan met datums en tijden is cruciaal in het lokalisatieproces. Laravel gebruikt Carbon om datums en tijden te beheren. Hier is 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 view 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 }}
Formatteren van nummers en valuta
Verschillende landen hebben verschillende manieren om getallen op te maken. Bijvoorbeeld.
- Frankrijk → 123 123,12
- Duitsland → 123.123,12
- Japan → 123,123
Om deze variaties in uw Laravel toepassing te accommoderen, kunt u NumberFormatter gebruiken.
U kunt ook getallen in een specifieke taal uitspreken.
Hier zijn de valuta's. Voor de Franse landinstelling (`fr`) wordt de valuta weergegeven in euro's (€), terwijl voor de Amerikaanse landinstelling (`en_US`) deze wordt weergegeven in Amerikaanse dollars ($).
Alternatieve oplossing Laravel lokalisatie met Linguise

Na het begrijpen van de stappen van Laravel lokalisatie zoals beschreven in het artikel, omvat dit proces vele stappen die gebruikers vereisen om de Laravel programmacode diepgaand te begrijpen.
Dit kan het zeker moeilijk maken voor onervaren gebruikers die hun applicaties willen lokaliseren. Daarom is een innovatievere oplossing nodig die in staat is tot snelle vertaling, lokalisatie ondersteunt en slechts een paar eenvoudige stappen vereist om te implementeren.
Een veelbelovende oplossing is Linguise. Linguise biedt een eenvoudigere en efficiëntere aanpak voor Laravel lokalisatie zonder diepgaande programmeerkennis. Belangrijkste kenmerken van Linguise zijn.
- Eenvoudige integratie met Laravel
- Taalwisselaar aanpassen zonder coderen
- Afbeeldingsvertaling
- 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 te installeren Linguise op Laravel websites kunnen ook eenvoudig worden uitgevoerd. Hier is een korte uitleg.
- Maak een Linguise -account aan (gebruik de 30-dagen gratis proefperiode gratis)
- Registreer uw Laravel webdomein en voer enkele gegevens in. U ontvangt een API-sleutel.
- Upload en verbind het Linguise vertaalscript met de Laravel map die u heeft ontvangen.
- Taal-URL's instellen in het htaccess-bestand.
- Voeg het taalwisselscript toe in de head van uw HTML.
- Pas de taalwisselaar aan zoals nodig
- De taalwisselaar verschijnt op de Laravel web en de inhoud kan automatisch worden vertaald.
Hoe? Met Linguisehoeft u alleen maar te registreren en activeren, en de taalwisselaar verschijnt. Daarna bent u vrij om te lokaliseren, bijvoorbeeld via de live editor, vertaal media, afbeeldingen, enz.
Conclusie
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.
Hulpmiddelen zoals Linguise bieden een innovatief alternatief voor degenen die op zoek zijn naar een meer gestroomlijnde aanpak. Deze oplossingen bieden snelle vertaalmogelijkheden, gemakkelijke integratie en gebruiksvriendelijke functies zoals aanpasbare taalwisselaars en beeldvertaling. Nu, maak uw Linguise account aan en geniet van onze functie voor het lokaliseren van uw Laravel


