Laravel localization este un instrument puternic care permite dezvoltatorilor să creeze site-uri web multilingve. Prin implementarea localizării web în proiectele dvs. Laravel , puteți oferi o experiență personalizată utilizatorilor din medii lingvistice diferite, extinzându-vă în cele din urmă aria de acoperire și îmbunătățind implicarea utilizatorilor.
Vă vom ghida prin implementarea localizării în aplicația dvs. Laravel și vă vom prezenta un instrument care poate simplifica și îmbunătăți eforturile dvs. de localizare!
De ce ar trebui să localizați site-ul web Laravel ?

Iată câteva motive importante pentru care ar trebui să localizați site-ul dvs. Laravel .
- Atrageți un public global: Prin localizarea site-ului dvs. Laravel , puteți extinde aria de acoperire a aplicației către un public internațional. Astfel, utilizatorii din diferite țări și medii lingvistice pot înțelege și interacționa cu conținutul dvs.
- Îmbunătățește experiența utilizatorului: Localizarea permite utilizatorilor să interacționeze cu aplicația în limba lor nativă, ceea ce îmbunătățește semnificativ experiența utilizatorului. Acest lucru poate crește ratele de implicare, poate reduce rata de respingere și poate crește conversiile.
- Avantaj competitiv: Pe o piață globală competitivă, oferirea aplicațiilor în mai multe limbi vă poate oferi un avantaj semnificativ față de concurenți. Acest lucru demonstrează angajamentul dumneavoastră față de piețele internaționale și vă poate ajuta să pătrundeți mai eficient pe piețe noi.
- Îmbunătățește SEO: Site-urile web bine localizate tind să se claseze mai bine în motoarele de căutare pentru căutările într-o anumită limbă. Acest lucru poate crește traficul blogului dvs. și vizibilitatea online pe diverse piețe prin traducere multilingvă.
Cerințe pentru o localizare Laravel multilingvă

Există câteva cerințe și pași de luat în considerare atunci când implementați localizarea multilingvă în Laravel.
- Pentru a obține cele mai recente funcții de localizare, asigurați-vă că utilizați cea mai recentă versiune de Laravel (de exemplu, versiunea 10.x).
- O înțelegere de bază a PHP și a framework-ului Laravel va fi utilă în procesul de implementare.
- Configurați un mediu de dezvoltare local sau un server care să accepte Laravel, inclusiv un server web și o bază de date.
- Determinați limbile pe care aplicația dvs. le va accepta încă de la început.
Traduceri simple Laravel

După înțelegerea cerințelor care trebuie îndeplinite înainte de a traduce o aplicație Laravel sau un site web, vom oferi câțiva pași pentru a traduce Laravel simplu.
Pentru a face acest lucru, deschideți fișierul view pe care doriți să îl localizați, de exemplu, resources/views/welcome.blade.php. Apoi, înlocuiți eticheta body cu următorul cod.
Welcome to Linguise website!
După cum puteți vedea, textul de mai sus este scris momentan direct în cod. Acest lucru este mai puțin eficient și îngreunează traducerea site-urilor web în diferite limbi (internaționalizare).
Vom face textul de mai sus mai flexibil, astfel încât să poată fi adaptat cu ușurință la diferite limbi. Laravel oferă o funcție foarte utilă pentru aceasta; sistemul de localizare. Ca prim pas, înlocuiți textul existent cu următorul cod.
{{ __('Welcome to Linguise website!') }}
Laravel va afișa textul de mai sus în mod implicit și va căuta traducerea dacă utilizatorul selectează o altă limbă decât engleza. În acest caz, engleza va fi folosită ca limbă implicită a aplicației.
Configurarea localizărilor într-un site web multilingv Laravel

Dar cum determină Laravel limba curentă sau cum știe ce limbi sunt disponibile în aplicație? Verifică setările de localizare din fișierul config/app.php. Deschide acest fișier și caută următoarele două chei.
/*
|--------------------------------------------------------------------------
| 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',
Explicația de deasupra cheilor ar trebui să fie clară. Pe scurt, cheia locale deține localizarea implicită pentru aplicația dvs. (dacă nu este specificată o altă localizare în cod). fallback_locale este activată dacă în aplicația dvs. este solicitată o localizare inexistentă.
Acum, să adăugăm o nouă cheie în acest fișier pentru a furniza o listă cu toate localizările acceptate.
/*
|--------------------------------------------------------------------------
| Available locales
|--------------------------------------------------------------------------
|
| List all locales that your application works with
|
*/
'available_locales' => [
'English' => 'en',
'Italian' => 'it',
'French' => 'fr',
],
În acest moment, am încercat Laravel web pentru a susține trei limbi, și anume engleză, italiană și franceză.
Prezentare generală a fișierelor de traducere Laravel

În Laravel, ca în multe alte framework-uri, traducerile pentru diferite limbi sunt stocate în fișiere separate. Se folosesc două metode pentru organizarea acestor fișiere de traducere.
Metoda mai veche stochează fișierele în următoarea structură: resources/lang/{en,fr,it}/{myfile.php}. Metoda mai nouă folosește fișiere JSON, precum resources/lang/{fr.json, it.json}. Acest articol se va concentra pe metoda mai nouă, deși principiile sunt similare pentru metoda mai veche, cu excepția diferențelor în modul în care sunt denumite și accesate cheile de traducere.
Pentru limbile cu variații regionale, ar trebui să denumiți directoarele sau fișierele de limbă conform standardului ISO 15897. De exemplu, engleza britanică ar fi denumită en_GB în loc de en-gb.
Informații generale
În Laravel, ca în multe framework-uri, traducerile pentru diferite limbi sunt stocate în fișiere separate. Există două metode principale de organizare a fișierelor de traducere Laravel .
- Abordarea tradițională implică stocarea fișierelor în calea: resources/lang/{en,fr,it}/{myfile.php}.
- Abordarea modernă utilizează fișierele resources/lang/{fr.json, it.json}.
Acest articol se va concentra pe a doua metodă, deși principiile sunt aplicabile ambelor (cu variații în modul în care sunt denumite și accesate cheile de traducere).
Pentru limbile care variază în funcție de regiune, se recomandă denumirea directoarelor/fișierelor de limbă conform standardelor ISO 15897. De exemplu, engleza britanică ar fi notată ca en_GB, nu en-gb.
Crearea fișierelor de traducere Laravel
După ce am configurat localizările pentru aplicația noastră, putem proceda la traducerea mesajului nostru de bun venit implicit.
Să începem prin a crea fișiere noi de localizare în format JSON în directorul resources/lang. Mai întâi, vom crea un fișier resources/lang/it.json și îl vom popula cu traducerile corespunzătoare.
{
"Welcome to Linguise website!": "Benvenuti nel sito web di Linguise!"
}
Apoi, adăugați un fișier resources/lang/fr.json.
{
"Welcome to Linguise website!": "Bienvenue sur le site de Linguise"
}
După cum puteți observa, facem referire în mod constant la mesajul implicit din fișierul welcome.blade.php ({{ __(‘Bine ați venit pe site-ul Linguise !’) }}). Nu este nevoie să creați un fișier en.json, deoarece Laravel recunoaște automat că mesajele implicite sunt în engleză.
Setarea comutatorului de limbă într-o aplicație Laravel multilingvă

În plus, Laravel nu este încă configurat pentru a suprascrie limba locală, așa că deocamdată vom gestiona traducerea direct în cadrul rutei. Modificați ruta implicită de bun venit din fișierul routes/web.php astfel.
Route::get('/{locale?}', function ($locale = null) {
if (isset($locale) && in_array($locale, config('app.available_locales'))) {
app()->setLocale($locale);
}
return view('welcome');
});
În acest caz, captăm un parametru GET opțional pentru localizare și setăm localizarea curentă pe baza acestuia (dacă localizarea solicitată este acceptată).
Acum, poți vizita site-ul tău web și include oricare dintre limbile acceptate ca prim segment în URL. De exemplu, navigarea la localhost/it sau localhost/fr va afișa conținutul localizat. Dacă nu specifici o localizare sau alegi una care nu este acceptată, Laravel va folosi implicit engleza (en).
Middleware de localizare pentru Laravel
Includerea localizării în fiecare URL ar putea să nu fie ideală și ar putea afecta aspectul vizual al site-ului. Pentru a rezolva acest lucru, vom configura un comutator de limbă și vom utiliza sesiunea utilizatorului pentru a afișa conținutul tradus. Puteți crea un middleware nou în fișierul app/Http/Middleware/Localization.php sau îl puteți genera rulând comanda artisan make:middleware Localization.
Apoi, adăugați următorul cod în interior.
Acest middleware va direcționa Laravel să utilizeze locația selectată de utilizator dacă această opțiune este prezentă în sesiune.
Deoarece avem nevoie ca operațiunea să ruleze la fiecare cerere, adaugă-o în stiva implicită de middleware din app/Http/Kernel.php pentru grupul de middleware web.
/**
* 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
],
Modificarea rutelor
Apoi, definiți o rută pentru a schimba localizarea în fișierul routes/web.php. Folosim aici o rută de tip closure, dar puteți plasa același cod într-un controller dacă preferați.
Route::get('language/{locale}', function ($locale) {
app()->setLocale($locale);
session()->put('locale', $locale);
return redirect()->back();
});
În plus, eliminați schimbarea localizării care a fost adăugată anterior rutei de bun venit implicite. Ruta dvs. rădăcină ar trebui să arate acum astfel.
Route::get('/', function () {
return view('welcome');
});
Odată ce acest lucru este făcut, utilizatorul poate schimba limba activă doar vizitând localhost/language/{locale}. Localizarea selectată va fi salvată în sesiune, iar utilizatorii vor fi redirecționați înapoi la pagina anterioară (așa cum este gestionat de middleware-ul de Localizare).
Pentru a testa, accesați localhost/language/it (presupunând că cookie-ul de sesiune este activ în browserul dvs.) și ar trebui să vedeți conținutul tradus. Puteți naviga pe site sau reîmprospăta pagina, iar limba aleasă va rămâne în vigoare.
Implementarea comutatorului de limbă
Acum, trebuie să oferim utilizatorului o opțiune pe care să poată da clic pentru a schimba comutatorul de limbă Laravel web în loc să îi cerem să introducă manual codurile de localizare în URL. Pentru a realiza acest lucru, creați un comutator de limbă simplu. Adăugați un fișier nou la resources/views/partials/language_switcher.blade.php și inserați următorul cod.
@foreach($available_locales as $locale_name => $available_locale)
@if($available_locale === $current_locale)
{{ $locale_name }}
@else
{{ $locale_name }}
@endif
@endforeach
Pentru a include noul comutator de limbă creat în vizualizarea “welcome”, pur și simplu adăugați următoarea linie în fișierul dvs. welcome.blade.php acolo unde doriți să apară comutatorul.
@include('partials/language_switcher')
{{ __('Welcome to our website!') }}
Deschideți fișierul app/Providers/AppServiceProvider.php și adăugați următorul cod în metoda boot() pentru a partaja localizarea curentă cu toate vizualizările atunci când este utilizat comutatorul de limbă
* 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'));
});
}
Funcții avansate de traducere în Laravel PHP

În această discuție, vom aborda apoi alte componente de localizare, și anume data, numărul și moneda. Iată pașii.
Date localizate în Laravel
Gestionarea datelor și orelor este crucială în procesul de localizare. Laravel folosește Carbon pentru a gestiona datele și orele. Iată cum puteți folosi Carbon pentru a afișa o dată localizată.
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
]);
});
Acest cod setează localizarea Carbon pe baza localizării curente a aplicației și formatează data în consecință.
Pentru a afișa data localizată într-o vizualizare:
{{ __('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 }}
Formatarea numerelor și a valutelor
Diferite țări au diverse modalități de formatare a numerelor. De exemplu.
- Franța → 123 123,12
- Germania → 123.123,12
- Japonia → 123,123
Pentru a acomoda aceste variații în aplicația dvs. Laravel , puteți utiliza NumberFormatter.
De asemenea, puteți scrie numerele în litere într-o anumită limbă.
Iată valutele. Pentru localizarea franceză (`fr`), valuta va fi afișată în euro (€), în timp ce pentru localizarea americană (`en_US`), va fi afișată în dolari americani ($).
Soluție alternativă de localizare Laravel cu Linguise

După înțelegerea pașilor localizării Laravel așa cum este descris în articol, acest proces implică mulți pași care necesită ca utilizatorii să înțeleagă în profunzime codul programului Laravel .
Acest lucru poate îngreuna cu siguranță utilizarea pentru utilizatorii începători care doresc să-și localizeze aplicațiile. Prin urmare, este necesară o soluție mai inovatoare, capabilă de traducere rapidă, care să accepte localizarea și să necesite doar câțiva pași simpli pentru implementare.
O soluție promițătoare este Linguise. Linguise oferă o abordare mai simplă și mai eficientă pentru localizarea Laravel , fără a fi nevoie de cunoștințe aprofundate de programare. Caracteristicile principale ale Linguise includ.
- Integrare ușoară cu Laravel
- Personalizați comutatorul de limbă fără codare
- Traducere imagini
- Editor live pentru personalizarea traducerilor în contextul local
- Traducere dinamică pentru conținut generat dinamic
- Optimizare SEO pentru versiuni multilingve
Pașii pentru a instala Linguise pe site-urile Laravel pot fi, de asemenea, realizați cu ușurință. Iată o scurtă explicație.
- Creați un cont Linguise (utilizați perioada de probă gratuită de 30 de zile)
- Înregistrați domeniul dvs. web Laravel și introduceți câteva informații. Veți primi o cheie API.
- Încărcați și conectați scriptul de traducere Linguise la folderul Laravel pe care l-ați primit.
- Configurați URL-urile de limbă în fișierul htaccess.
- Inserați scriptul de comutare a limbii în secțiunea head a HTML-ului dvs.
- Personalizați comutatorul de limbă după cum este necesar
- Comutatorul de limbă va apărea pe web Laravel , iar conținutul poate fi tradus automat.
Cum? Cu Linguise, trebuie doar să te înregistrezi și să activezi, iar comutatorul de limbă va apărea. După aceea, ești liber să localizezi, de exemplu, prin editorul live, să traduci media, imagini etc.
Concluzie
Localizarea Laravel este o funcție puternică ce permite dezvoltatorilor să creeze site-uri web și aplicații multilingve. După cum am văzut, procesul de localizare Laravel integrat implică mai mulți pași și necesită o bună înțelegere a framework-ului. Poate fi dificil pentru începători sau pentru cei care caută o soluție mai rapidă.
Instrumente precum Linguise oferă o alternativă inovatoare pentru cei care caută o abordare mai simplificată. Aceste soluții oferă capabilități rapide de traducere, integrare ușoară și funcții ușor de utilizat, cum ar fi comutatoare de limbă personalizabile și traducere de imagini. Acum, creează-ți contul Linguise și bucură-te de funcția noastră de localizare a Laravel!



