Gestione file di linguaggio nelle estensioni per Joomla
Se avete mai scritto o tradotto una estensione per Joomla, saprete come funzionano i file di linguaggio che permettono di rendere fruibile tale estensione in ogni linguaggio.
Vediamo però alcune caratteristiche avanzate che ci permettono di tradurre anche le voci del menù amministrativo e il messaggio di installazione.
Le regole
Partiamo innanzitutto a verificare come funziona.
Per comodità, nel resto dell’articolo immaginiamo di dover creare i file di linguaggio italiani (it-IT) per un ipotetico componente com_contest, che ha sia una parte di backend che una parte di frontend.
1. Joomla 1.5
1.a Traduzione “ordinaria”
I normali file di linguaggio del componente si chiamano entrambi it-IT.com_contest.ini e sono residenti, rispettivamente, in:
- /administrator/language/it-IT
- /language/it-IT
1.b Menu amministrativi
Nel backend, all’interno del menu amministrativo “Componenti“, potrebbero esserci una o più voci di menu relative al nostro componente.
Il file che contiene le traduzioni di tali voci si chiama it-IT.com_contest.menu.ini e deve essere installato in:
- /administrator/language/it-IT
Il vantaggio è che questo file aggiuntivo viene chiamato in causa anche quando siamo all’interno di un diverso componente.
Pertanto, le nostre voci di menu saranno sempre tradotte.
Come informazione aggiuntiva, tali voci di menu sono quelle definire nel file XML di installazione del componente, ad esempio
<administration> <menu link="option=com_contest">COM_CONTEST_MENU</menu> <submenu> <menu link="option=com_contest&...">COM_CONTEST_SUBMENU_1</submenu> <menu link="option=com_contest&...">COM_CONTEST_SUBMENU_2</submenu> </submenu> ...
Attenzione alla sintassi particolare del file di linguaggio: le voci dei sottomenu devono riportare la voce principale.
Ad esempio, per tradurre le voci di menu riportate nell’esempio devo scrivere
COM_CONTEST_MENU=”…”
COM_CONTEST_MENU.COM_CONTEST_SUBMENU_1=”…”
COM_CONTEST_MENU.COM_CONTEST_SUBMENU_2=”…”
1.c Messaggio di installazione
Se si vuole tradurre anche il messaggio che compare subito dopo aver installato l’estensione, possiamo inserire una stringa dentro il normale file di linguaggio descritto qui sopra al punto 1.a.
Ad esempio, nel file XML di installazione inserisco:
<description>COM_COUPONS_XML_DESC</description>
e nel file di linguaggio inserisco la traduzione di tale stringa.
2. Joomla 2.5
Rispetto a Joomal 1.5, in Joomla 2.5 ci sono alcune piccole differenze.
2.a Traduzione ordinaria
Di default, funziona tutto come in Joomla 1.5, ovvero abbiamo i file it-IT.com_contest.ini situati nelle cartelle globali del linguaggio.
In più abbiamo la possibilità anche di spostare i file di linguaggio all’interno della cartella del componente.
Ovvero, anzichè avere il file nella cartella:
- /administrator//language/it-IT/
lo possiamo mettere nella cartella
- /administrator/components/com_contest/language/it-IT/
2.b Menu amministrativi
I file di linguaggio per i menu amministrativi usano il suffisso sys anzichè il suffisso menu.
Quindi il nostro file si chiamerà it-IT.com_contest.sys,ini.
Anche questo file è normalmente collocato in
- /administrator/language/it-IT
ma può essere piazzato anche in
- /administrator/components/com_contest/language/it-IT/
Attenzione: la sintassi particolare della modalità 1.5 non c’è più, quindi non c’è bisogno di anteporre la stringa del menù principale.
Sempre tenendo a riferimento l’XML di esempio riportato sopra, avrò nel file di linguaggio semplicemente:
COM_CONTEST_MENU=”…”
COM_CONTEST_SUBMENU_1=”…”
COM_CONTEST_SUBMENU_2=”…”
2.c. Messaggio di installazione
Se si vuole tradurre il messaggio di installazione, dobbiamo inserirlo necessariamente in un file chiamato it-IT.com_contest.sys.ini che deve risiedere nella cartella del componente.
Ovvero, nel nostro caso:
- /administrator/components/com_contest/language/it-IT/
Riepilogando
In Joomla 1.5 dobbiamo avere tre file per coprire tutte le nostre esigenze:
- /language/it-IT/com_contest.ini
(lato frontend) - /administrator/language/com_contest.ini
(lato backend, e contiene anche il messaggio di installazione) - /administrator/language/com_contest.menu.ini
(per i menu amministrativi)
In Joomla 2.5 ci sarebbe un file in più:
- /language/it-IT/com_contest.ini
(lato frontend) - /administrator/language/com_contest.ini
(lato backend) - /administrator/language/com_contest.sys.ini
(menu amministrativi) - /administrator/components/com_contest/language/it-IT/com_contest.sys.ini
(messaggio di installazione)
Tuttavia possiamo semplificarci la vita unendo il file 3 e 4, dato che quello riservato ai menu amministrativi PUO’ anche stare nella cartella del componente.
Conclusioni
Con questo articolo speriamo di avervi dato una spiegazione chiara e definitiva di come funzionano e dove devono stare i file di linguaggio nelle estensioni per Joomla 1.5 e Joomla 2.5.
Per completare il discorso, andrebbe analizzato a fondo anche come costruire il file XML di installazione, ma riteniamo che questo sia un argomento separato per il quale ci risentiremo presto, sempre su questo blog!