La localizzazione di Laravel offre un meccanismo comodo per ottenere stringhe tradotte in più lingue.
La usi per supportare più lingue nella tua applicazione.Ci sono due modi per gestire le stringhe di traduzione.
Modalità
Caratteristiche
File PHP
Array chiave-valore in lang/it/messages.php. Adatto per organizzare i messaggi per funzionalità (es. errori di validazione)
File JSON
Stringhe definite come chiave in lang/it.json. Consigliato per applicazioni con molte traduzioni
Le applicazioni Laravel predefinite non includono la directory lang. Per personalizzare pubblicala con lang:publish.
Con molte stringhe da tradurre è consigliato il JSON.
Crea file JSON con il nome della lingua in lang/.
/lang en.json it.json
Le stringhe predefinite (di norma in inglese) diventano le chiavi.
{ "Welcome to our application!": "Benvenuto nell'applicazione!", "I love programming.": "Adoro programmare.", "Logout": "Esci", "Dashboard": "Cruscotto"}
Nel formato JSON, il testo inglese è la chiave: la visualizzazione predefinita in inglese funziona automaticamente. Nelle lingue senza file di traduzione viene mostrata la chiave stessa (l’originale).
Quando vuoi organizzare per funzionalità (es. messaggi di validazione)
Quando sovrascrivi traduzioni integrate di Laravel (validation.php, auth.php, ecc.)
Quando serve una gestione gerarchica delle chiavi
// lang/it/validation.phpreturn [ 'required' => 'Il campo :attribute è obbligatorio.', 'email' => 'Il campo :attribute deve essere un\'email valida.',];
Quando conviene JSON
Molte stringhe di UI, chiavi laboriose da pensare
Vuoi scrivere l’inglese direttamente nei template e tradurre solo le altre lingue
Internazionalizzazione aggiunta a posteriori
{{-- Scrivi l'inglese direttamente in Blade --}}{{ __('Welcome to our application!') }}
Se un pacchetto di terze parti ha propri file di traduzione, puoi sovrascriverlo posizionando file con lo stesso nome in lang/vendor/{nome-pacchetto}/{codice}/.Ad esempio per personalizzare i messaggi inglesi di skyrim/hearthfire:
// lang/vendor/hearthfire/en/messages.phpreturn [ 'welcome' => 'Messaggio personalizzato', // Definisci solo le chiavi che vuoi sovrascrivere. Le altre restano dal file originale.];