Introduzione alla gestione multilingua con Joomla: sistema
E’ sempre più probabile che ci sia la necessità di realizzare siti multilingua, e fortunatamente con Joomla abbiamo già tutti gli strumenti necessari. Bisogna solo sapere dove mettere le mani. Come dice il titolo, questa sarà una introduzione rapida: verranno forniti i concetti fondamentali, lasciandovi poi liberi di sperimentare direttamente sui vostri siti. Magari non quelli in produzione 🙂
Innanzitutto distinguiamo tra la gestione multilingua del Sistema e quella dei Contenuti. In questo articolo affronteremo solo la prima, mentre la seconda sarà oggetto di un articolo successivo.
File di linguaggio
Parliamo della gestione dei messaggi di avviso o di errore, delle etichette dei campi, della paginazione automatica; ad esempio, il fatto di far vedere “Registrati” e “Password dimenticata?” piuttosto che “Create an account” e “Forgot your password?” nella mascherina di login a seconda che il sito sia visualizzato in italiano o in inglese.
Questo tipo di gestione in Joomla esiste già senza bisogno di nessun componente aggiuntivo: è sufficiente avere un file di linguaggio apposito. Esiste un file di linguaggio per ciascun componente, modulo, plugin: si trovano tutti nella cartella /language, nella sottocartella dedicata alla lingua specifica. Questi file contengono una serie di “variabili” e le relative traduzioni.
Per continuare l’esempio di prima, avremo un file:
/language/it-IT/it-IT.mod_login.ini
che contiene tra le altre le righe:
REGISTER=Registrati FORGOT_YOUR_PASSWORD=Password dimenticata?
e un file
/language/en-GB/en-GB.mod_login.ini
che contiene invece
REGISTER=Create an account FORGOT_YOUR_PASSWORD=Forgot your password?
Viene da sè che se vogliamo cambiare questo tipo di messaggio, per esempio se volessimo che la scritta per registrarsi diventi “Registrati al nostro sito” e quella per la password “Clicca qui se hai dimenticato la tua password”, non dobbiamo fare altro che modificare a mano il file di linguaggio relativo.
Creare un file di linguaggio
La maggior parte delle estensioni, e sicuramente quelle incluse nell’installazione base di Joomla, rendono già disponibili i file di linguaggio per le varie lingue. Notare che, ad esempio, quando installate Joomla scaricato da Joomla Italia piuttosto che dal sito originale, sono già inclusi tutti i file di linguaggio italiani. E’ sempre possibile installare pacchetti lingua aggiuntivi per il sistema base di Joomla, o file di linguaggio aggiuntivi per specifiche estensioni.
Se però doveste installare una estensione che non ha il file di linguaggio italiano, nessun problema: potete copiare quello inglese (che dovrebbe sempre esserci), rinominandolo da “en-GB…” a “it-IT…” e spostandolo nella cartella del linguaggio italiano; dopodichè potete creare la traduzione modificando il contenuto del file.
Uso del file di linguaggio
Se siete programmatori o comunque vi capita di dare un’occhiata al codice PHP di Joomla, ecco una curiosità aggiuntiva. All’interno del codice delle estensioni che supportano l’uso del file di linguaggio, troverete codice di questo tipo:
JText::_( 'REGISTER')
Il metodo in questione sta dicendo a Joomla “vai a prendere il file di linguaggio relativo alla lingua attualmente attiva sul sito, e cerca la stringa che corrisponde alla variabile “REGISTER”. Quindi se vogliamo creare o modificare una estensione, aggiungendo una “variabile” che possa essere facilmente tradotta, non dobbiamo far altro che specificarla in questo modo.
Ad esempio, invece di scrivere un messaggio di errore del tipo:
echo "Errore durante il salvataggio dei dati";
scriverete
echo JText::_( 'ERROR_SAVE_DATA' );
e poi andrete nei vari file di linguaggio a creare le varie traduzioni per la variabile “ERROR_SAVE_DATA”, che funge solo da segnaposto. Il nome della variabile è a vostra discrezione, ma non deve contenere senza spazi e per convenzione si mette sempre tutto maiuscolo.
Scelta della lingua
Per scoprire qual è la lingua attiva sul sito, Joomla si affida a due configurazioni: quella generale del sito, e quella specifica dell’utente.
La prima si definisce in “Estensioni” -> “Gestione lingua”, impostando quello che è il linguaggio predefinito (può essere diverso tra il lato pubblico e quello amministrativo). Se non specifichiamo nient’altro, verrà usato sempre questo linguaggio.
Per ogni utente registrato, è possibile sovrascrivere questa opzione e scegliere una specifica opzione per il lato pubblico. In questo modo, quando quell’utente sarà collegato al sito, vedrà i messaggi nel proprio linguaggio.
Gli utenti anonimi vedranno sempre il sito nel linguaggio predefinito.
Contenuti
Come giù detto, quanto riportato finora non si applica ad articoli, voci di menù, contatti… insomma, non si applica ai contenuti inseriti da noi, ma solo ai messaggi di sistema di Joomla e delle nostre estensioni. Per la gestione multilingua dei nostri contenuti dobbiamo infatti affidarci a una estensione aggiuntiva chiamata JoomFish, della quale parleremo in un prossimo articolo.