composer require goodcat/laravel-l10n
Laravel L10n
Un package Laravel con le idee chiare sulla localizzazione delle applicazioni. Definisci route localizzate, traduci URI e domini, genera URL in qualsiasi lingua e rileva il locale preferito dall'utente.
In breve
Aggiungi lang() a una route ed elenca le lingue in cui deve essere disponibile. Se vuoi, traduci il suo URI nei file di lingua:
Route::get('/products/{product}', [ProductController::class, 'show'])
->lang(['es', 'it'])
->name('products.show');
return [
'products/{product}' => 'productos/{product}',
];
La tua applicazione ora serve la stessa pagina in tre lingue, ognuna con il proprio URL e il proprio locale dell'applicazione:
/products/42in inglese/es/productos/42in spagnolo/it/products/42in italiano
I link continuano a funzionare come prima e seguono la lingua della pagina che l'utente sta leggendo:
route('products.show', $product); // current language
route('products.show', [$product, 'lang' => 'es']); // "/es/productos/42"
Costruito su Laravel
laravel-l10n aggiunge un solo metodo alle tue route e per tutto il resto si affida a quello che Laravel offre già:
- il fallback locale di
config/app.phpè la lingua delle tue route originali; - i file di lingua in
lang/contengono gli URI tradotti, accanto alle altre traduzioni; - gli helper
route()eaction(), i redirect e gli URL firmati generano URL localizzati senza nuove API; - cache delle route, middleware, route model binding e gruppi di route funzionano come sempre sulle route tradotte;
- l'interfaccia
HasLocalePreference, già usata da notifiche e mailable, fornisce la lingua preferita dall'utente.
Se conosci il routing di Laravel, conosci già buona parte di laravel-l10n.