gestire le traduzioni in laravel

Come gestire le traduzioni in Laravel

La gestione della lingua è un problema molto comune quando si sviluppa un sito web o un’applicazione. Laravel viene in nostro aiuto con il suo modulo localization che non ci pentiamo di definire semplice e versatile.

Traduzioni in Laravel: ecco come gestirle al meglio

Le varie traduzioni per i testi, messaggi di conferma o di errore, finestre di dialogo, ecc … sono contenuti e organizzati per lingua nella cartella /resources/lang, come mostrato di seguito:

Ogni file .php contenuto nella cartella restituirà un array associativo contenente le traduzioni come mostrato di seguito:

Perciò questi file conterranno le traduzioni di ogni testo contenuto nell’applicazione.

Apriamo ora il file config/app.php. Questo file contiene tutti i settaggi generali dell’applicazione e tra questi la lingua di default:

Questa impostazione sostanzialmente indica la lingua in cui l’applicazione verrà eseguita salvo diversa indicazione. Nota che il valore di questa impostazione è uguale al nome della cartella in cui sono contenuti i relativi file di traduzione.
Un altro imporante valore in questo file è quello di fallback_locale:

Questo attributo sostanzialmente determina la lingua di default in cui cercare la traduzione se questa non viene trovata nella lingua corrente.

Ok, ma come fare per cambiare la lingua corrente?

Per definire la lingua è possibile utilizzare il metodo setLocale() della facade App di Laravel. E’ possibile utilizzare questo metodo in un middleware, in un controller, o dove meglio ritenete. Questo è un esempio di utilizzo (molto teorico) preso dalla documentazione ufficiale:

Per ottenere il valore della lingua corrente useremo invece il metodo App::getLocale().
Per mostrare un testo possiamo utilizzare l’helper Laravel __() oppure l’helper @lang() di blade come mostrato di seguito:

Supponiamo adesso di voler aggiungere una variabile in mezzo alla traduzione. E’ molto semplice: nel file di traduzione diamo un’etichetta al valore che vogliamo includere all’interno del testo e quando utilizziamo l’helper per recuperare la traduzione, passiamo il valore tramite un array associativo.

Pluralizzazione

Altro importante tool è quello della pluralizzazione. E’ possibile indicare le varianti per singolare / plurale:

O addirittura indicare dei range precisi:

Questa volta per mostrare la traduzione dobbiamo usare l’helper trans_choice indicando il numero di elementi:

 

Leave a reply