In un sito multilingua i contenuti sono traducibili grazie al selettore della lingua (language switcher).
Molte guide in rete ti mostrano come installare e configurare Joomla multilingua. Più difficilmente trovi indicazioni su come funziona.
Capire la logica seguita dal processo di traduzione ti sarà molto utile per strutturare e collegare tra loro gli elementi del sito che gestiscono i contenuti nelle varie lingue.
L’obiettivo di questa guida è quello di racchiudere in un solo articolo le cose essenziali che devi conoscere per creare un sito multilingua con Joomla…
Al termine della lettura saprai:
- come attivare e configurare il multilingua
- come organizzare a associare i contenuti multingua
- come funziona la logica di traduzione
Cronostoria del multilingua in Joomla
Con le prime versioni di Joomla, per realizzare un sito multilingua era necessario utilizzare un’estensione, come JoomFish. Dalla versione 1.7 è stata introdotta nel CMS la logica di associazione tra elementi di lingue diverse, inizialmente supportata solo dalle voci di menù e poi estesa ad articoli e categorie di articoli con la versione 3.0.2. Per il futuro l’intento è quello di estendere la stessa logica a tutti i componenti (contatti, banner, feeds, … e relative categorie).
Attivare e configurare il multilingua in Joomla
In un CMS l’impostazione di un sito multilingua comprende:
- la traduzione dell’interfaccia di amministrazione del CMS
- la traduzione dei contenuti del sito
Per tradurre l’interfaccia di Joomla devi scaricare e installare appositi file (lodevolmente gestiti dal team di traduzione Italiano di Joomla) che contengono la traduzione delle varie stringhe (etichette di testo per caselle, pulsanti, menù, messaggi di errore, tips di aiuto, ecc.).
In merito, invece, ai contenuti del sito, il tuo lavoro non riguarda tanto la stesura dei testi e delle relative traduzioni (generalmente realizzati dal committente o da professionisti specializzati) quanto la predisposizione di una struttura (menù, articoli, moduli) adatta ad associare tra loro i contenuti tradotti, in modo che Joomla li carichi correttamente in base alla lingua selezionata.
Focalizziamo intanto le azioni da compiere.
- tradurre l’interfaccia di Joomla:
- scaricare e installare i file di traduzione dell’interfaccia
- impostare la configurazione di base del multilingua:
- creare le lingue dei contenuti (content languages)
- attivare e configurare i plugin che gestiscono il multilingua
- strutturare i contenuti del sito:
- creare un menù principale per ogni lingua
- creare e associare tra loro gli elementi del sito (voci di menù, articoli, categorie di articoli, moduli)
Il processo di installazione di Joomla permette di eseguire queste operazioni in modo automatico, seguendo le indicazioni mostrate al termine del processo di configurazione iniziale e scegliendo di installare anche i contenuti di esempio.
Di seguito ti mostro, passo per passo, come eseguire manualmente queste operazioni, in modo che tu possa configurare il multilingua anche in fasi successive all’installazione.
Traduzione dell’Interfaccia di Joomla
Devi semplicemente installare i file con le traduzioni per le lingue diverse dall’Inglese (default in Joomla).
Da Extensions > Language(s) > Installed:
- clicca sul pulsante Install languages
- seleziona le lingue che vuoi installare
- clicca sul pulsante Install
Finito.
Configurazione base del multilingua in Joomla
Lingue dei Contenuti (Content Languages)
Le lingue dei contenuti (content languages) sono quelle che ritroverai nella casella Lingua dei vari elementi di Joomla e nel selettore della lingua (language switcher). Devi quindi creare una lingua dei contenuti per ogni lingua in cui intendi tradurre il tuo sito.
Da Extensions > Language(s) > Content Languages:
- clicca sul pulsante New e inserisci i dati richiesti (vedi come esempio quelli inseriti nella lingua Inglese)
Plugin di gestione del multilingua
Per far si che il multilingua entri in funzione (e quindi attivare i meccanismo per cui il cambio della lingua selezionata nel language switcher comporta il caricamento dei contenuti tradotti) devi abilitare il relativo plugin.
Da Extensions > Plugins:
- per comodità, filtra i plugin il cui nome contiene la stringa lang
- abilita e configura il plugin System – Language Filter
- facoltativo (ma consigliato): abilita il plugin System – Language Code

filtra i plugin il cui nome contiene la stringa lang

abilita e configura il plugin System – Language Filter
Strutturare e associare i contenuti multilingua in Joomla
In Joomla è possibile associare tra loro gli elementi che rappresentano la traduzione di un contenuto in lingue diverse. Ti mostro come.
Creazione dei Menù Principali per le lingue
Per ogni lingua dei contenuti devi:
- creare un main menù
- creare una voce di menù e impostarla come Pagina di Default (Default page)
Quindi, da Menus > Manage:
- clicca sul pulsante New e inserisci i dati richiesti (vedi come esempio quelli inseriti nel menù Main Menu)
Nel menù appena creato inserisci ora una voce di menù e impostala come Default page, facendola così diventare la homepage per la lingua in questione. Per semplicità ti consiglio è di clonare la homepage principale del sito.
Da Menus > Mani Menu (quello contrassegnato con l’icona di una casa):
- edita la voce di menù Home e clonala cliccando sul pulsante Save as Copy
- in relazione alla nuova voce di menù ottenuta dalla clonazione:
- correggi nome e alias
- imposta la lingua
- imposta il main menù relativo alla lingua
- impostala come Pagina di Default
- pubblicala
Una volta pubblicata, vedrai comparire, sia in corrispondenza della voce di menù che affianco al relativo main menù, l’icona della bandiera corrispondente alla lingua.
Strutturazione degli elementi (menù/categorie/articoli/moduli) di un sito multilingua in Joomla
Non credo sia necessario che ti spieghi come si crea un menù, un articolo, una categoria o un modulo, né tanto meno come si può associare ognuno di questi elementi ad una lingua (anche se più avanti ti mostro come fare ;)).
Credo invece sia più interessante farti osservare come Joomla struttura e associa tra loro i contenuti di esempio se, in fase di installazione, scegli di configurare automaticamente il multilingua.
Partiamo dagli screenshot:

Dati di esempio multilingua – Menù

Dati di esempio multilingua – Categorie di articoli

Dati di esempio multilingua – Moduli
Ti sottolineo l’importanza di impostare adeguatamente la lingua degli elementi di un sito multilingua. Se non sei abituato a preoccuparti di impostare la lingua, potresti ritrovarti a perdere del tempo chiedendoti perché un elemento non compare dove dovrebbe….
Associazione di voci di menù, articoli e categorie di articoli
Negli screenshot che mostrano i dati multilingua di esempio puoi notare che le voci di menù, gli articoli e le categorie di articoli presentano la colonna Associazione (Association). Questo significa che ognuno di questi elementi può essere associato ad un altro elemento in una lingua diversa. In buona sostanza: ogni elemento può essere associato ad altri elementi che ne costituiscono la traduzione.
Associare tra loro degli elementi è semplicissimo: basta editarne uno e, dalla scheda Associazioni, selezionare i corrispondenti nelle altre lingue.
Ovviamente se crei l’associazione tra un articolo in Italiano e uno in Inglese ottieni automaticamente anche l’associazione inversa, tra l’articolo in Inglese e quello in Italiano.
Multilingua per i moduli
Se editi un modulo non trovi la scheda Associazioni, perché il caricamento di un modulo dipende (principalmente) dal menù a cui è assegnato (scheda Menu Assignment). Ti basta quindi assegnare i moduli relativi ad una lingua a delle voci di menù della stessa lingua.
Se un modulo è assegnato a tutte le pagine ti basta creare tanti suoi cloni quante sono le lingue dei contenuti e Joomla caricherà solo quello con l’impostazione della lingua corrispondente a quella selezionata nello language switcher. Ovviamente le impostazioni di questi moduli dovranno essere identiche, al netto di eventuali traduzioni dei testi.
Come funziona la logica di traduzione in Joomla
Capito come strutturare e collegare i vari elementi del sito, non ci resta che approfondire la logica con cui Joomla gestisce il caricamento dei contenuti associati quando un visitatore del sito sceglie una lingua nel modulo Language Switcher.
Comportamento di Joomla in configurazione multilingua
Quando un visitatore arriva nel sito, Joomla:
- in base a quanto impostato nel plugin System – Language Filter (parametro Language Selector for new Visitor) carica:
- la homepage della lingua impostata come predefinita per il sito
- la homepage della lingua impostata come preferita nel browser del visitatore
- la homepage della lingua impostata come predefinita per il sito
Quando il visitatore cambia lingua:
- se esiste, carica l’elemento associato a quello visualizzato
- altrimenti, carica la homepage della lingua appena scelta
Precedenza delle associazioni in un sito multilingua di Joomla
Ricordando che la logica delle associazioni vale per menù, categorie ed articoli ma non per i moduli, la precedenza con cui Joomla verifica la associazioni è questa:
- Articolo
- Categoria
- Menù
Cosa significa questo?
Supponi di avere:
- gli articoli:
- “I nostri prodotti” in Italiano
- “Our products” e “Our services” in Inglese
- le voci di menù associate tra loro:
- “Catalogo” che visualizza l’articolo “I nostri prodotti“
- “Catalog” che visualizza l’articolo “Our products“
Considera i due casi in cui l’articolo “I nostri prodotti“:
- non è associato ad alcun articolo
- è associato all’articolo “Our services“
Ecco cosa succede, nei due casi, se mentre stai navigando il menù “Catalogo” imposti l’Inglese nel selettore della lingua:
- Joomla carica il menù “Catalog” e quindi visualizza l’articolo “Our products“
- Joomla carica l’articolo “Our services“
Lo stesso comportamento si verifica se cambi lingua mentre stai navigando un menù che mostra l’elenco delle categorie: un eventuale associazione tra categorie prevale su un”associazione tra le voci di menù.
Perché devo associare anche gli articoli e le categorie? Non basta associare i menù?
- Rispondo con una domanda: come fai a tradurre un articolo non direttamente collegato ad un menù (per esempio un articolo raggiunto da un link presente in un News Feed o in un modulo che visualizza gli articoli più letti)?
- Supponi che le homepage delle lingue mostrino gli articoli In evidenza. Supponi di cliccare in uno degli articoli in evidenza e poi di cambiare lingua. Se l’articolo che stavi visualizzando non è associato ad un articolo nella lingua selezionata, allora Joomla non può far altro che caricare la homepage della nuova lingua.
- Stessa cosa per le categorie. Supponi di aver associato i menù “Hobby” Italiano e Inglese, che mostrano rispettivamente le sotto-categorie delle categorie “Passatempo” e “Hobbies”. Se mentre stai navigando la sotto-categoria “Libri” imposti la lingua inglese, non puoi aspettarti che Joomla sappia di dover caricare gli articoli appartenenti alla categoria “Books” a meno che tu non abbia esplicitamente associato tra loro le due sotto-categorie.
Note e suggerimenti
Se devi realizzare un sito multilingua con Joomla, il mio consiglio è di procedere – in linea di massima – in questo modo:
- imposta il sito per il multilingua
- termina l’intero sito concentrandoti esclusivamente sulla tua lingua: se hai già realizzato qualche lavoro sai bene che in corso d’opera tu o il tuo cliente cambierete idea sulla struttura o sui contenuti inizialmente concordati…
- clona i contenuti per creare quelli nelle altre lingue, sistema le impostazioni (associazione della lingua, categoria, …) e poi traduci i testi
- ricorda che per clonare i contenuti hai a disposizione oltre al pulsante Salva come copia la preziosissima funzione Azioni multiple (batch)
Anche se ti sembreranno scontate, mi permetto di sottolineare un altro paio di cose:
- quando crei un modulo/articolo/menù… ricordati di impostare correttamente la sua lingua
- se modifichi le impostazioni di un elemento (es. la categoria di articoli visualizzata da un menù) ricordati di modificare di conseguenza anche gli elementi associati nelle altre lingue
Alcuni template framework introducono funzioni aggiuntive (es. i Mega Menù) che possono influenzare la gestione standard del multilingua di Joomla. Se usi questi strumenti dovrai consultare anche la relativa documentazione.
Conclusioni
L’argomento multilingua è vasto e ci potremmo dilungare su diverse questioni come gli Overrides o la traduzione delle estensioni di Joomla, ma l’obbiettivo di questo articolo è mettere a fuoco i concetti e le operazioni di base, necessarie per impostare un sito tradotto in più lingue. Spero di essere riuscito nell’intento, ma se trovi delle parti poco chiare o che ritieni sarebbe bene approfondire, fammelo sapere nei commenti.
Lascia un commento