sito multilingua con joomla

In questo articolo svelerò come ho risolto una problematica relativa alla creazione di un listino multilingua, la soluzione adottata si presta anche a molto altro, quindi non solo listini, ma tuo ciò che ha bisogno di una gestione semplificata delle traduzioni di contenuti.

Avendo avuto bisogno di realizzare un listino in varie lingue mi sono chiesto se utilizzare il sistema multi lingua nativo di Joomla fosse la strada migliore. Già in passato lo avevo fatto, creando una pagina per ogni lingua ed inserendo il listino in questione.

La soluzione tecnicamente non fa una piega, ma come più volte mi sono sentito dire da chi poi gestirà il listino, è incomprensibile il motivo per cui per sostituire un prezzo debba modificare il listino lingua per lingua.

Se c'è una soluzione che in informatica ti fa guadagnare tempo è risorse è quello di utilizzare lo stesso oggetto in più punti del codice del progetto senza doverlo riscrivire ogni volta.

L'idea

Un listino è composto da un serie di indicazioni, la parte variabile, e da una serie di prezzi, la parte fissa. Quindi se avessi un listino di accessori, avrei il nome dell'accessorio che andrebbe riprodotto tradotto per ogni lingua ed il prezzo scritto in euro uguale per tutte le altre lingue o almeno per le lingue dei paesi europei che usano come valuta l'euro.

Nel mio caso ho dei nomi degli appartamenti che non verranno tradotti, ma ho una serie di parole che varieranno secondo la lingua del listino.

Semplifico un esempio per capire meglio di cosa parlo:

  • Appartamento "il Gelso" 3 notti 100,00 euro
  • Appartamento "il Gelso" 1 settimana 200,00 euro
  • Appartamento "il Gelso" 1 mese 600,00 euro
  • Appartamento "il Gelso" Natale e Capodanno 200,00euro
  • Appartamento "il Gelso" mesi di luglio e Agosto 400,00 euro a settimana

Nell'esempio proposto sopra (un esempio molto semplice rispetto alla realtà) abbiamo una serie di parole che vanno tradotte ed altre che restano come sono. Quindi abbiamo il nome dell'appartamento ed il prezzo che non verranno mai tradotti, ma alcune parole che verranno tradotte come: appartamento, 3 notti, 1 settimana, 1 mese, natale e capodanno, mesi di luglio e agosto.

La soluzione

Joomla integra un sistema multilingua molto efficiente realizzato con costanti e variabili. La costante è la stringa fissa che identifica la frase, scritta sempre in maiuscolo e senza spazi, ad esempio: COSTANTE_TRADUZIONE, mentre la variabile è la parola con cui vogliamo sia tradotta quella stringa, una per ogni lingua.

IMPORTANTE: Andremo a scrivere il nostro listino su un modulo personalizzato impostato su tutte le lingue ed inserito nell'articolo con la tecnica del LOADPOSITION, questo ci garantirà che il modulo erediti la lingua impostata dalla pagina.

Nel nostro caso COSTANTE_TRADUZIONE diventa "costante traduzione" in Italiano e "constant translation" in Inglese.

Per prima cosa ho installato un plug in che mi permettesse di scrivere codice PHP nella text area dell'articolo o del modulo senza che questo fosse commentato automaticamente e di fatti reso illeggibile. Il plug in si chiama DirectPHP scaricabile qui https://extensions.joomla.org/extension/directphp/

Installato e abilitato il plug-in ho configuratoi il mio editor in maniera che potesse accettare codici PHP. Per fare ciò dovrete portarvi nelle impostazioni del vostro editor, sia che utiliziate quello di default di joomla Tiny MCE o altri come JCE editor. Per la configurazione specifica cercate nella documentazione dell'editor o in rete, l'argomento è molto trattato.

Arrivati fin qui portatevi nel modulo dove volete inserire il vostro listino, attivate la visualizzazione dell'HTML e sostituite le parole che dovranno diventare costanti con una stringa come questa:

  
  <?php echo JText::_("TUA_COSTANTE"); ?>

Dopo che avrete salvato il vostro listino portatevi in estensioni>>lingue>>override lingua>> selezionate la lingua da abbinare alla vostra traduzione e cliccate su nuovo.

Per ogni costante inserite un nuovo override inserendo nel campo "costante lingua" la vostra costante e nel campo "testo" la vostra variabile o traduzione.

L'operazione andrà ripetuta per ogni costante e per ogni lingua con cui il vostro Joomla site è configurato.

Questa guida su come realizzare un listino multilingua nel nostro sito joomla termina qui, se avete dubbi postate sui commenti. Se volete potete offrirmi un caffè cliccando nel pulsante sottostante, oppure cliccate su uno dei banner pubblicitari.

offrimi un caffè