Plugin Smarty su un sito multilingue con gettext

Costruire un sito web complesso usando PHP richiede un’attenta organizzazione dei vari componenti ed è fondamentale dividere la logica dalla presentazione, in altre parole il sorgente PHP dal codice HTML.

È vero che PHP e HTML possano essere scritti praticamente in simbiosi inframezzando il codice dell’uno e dell’altro, ma oltre ad un certo grado di dimensione e complessità del progetto si raggiungi un livello in cui la manutenzione e lo sviluppo del codice diventano veramente problematici.

La migliore soluzione che ho trovato è l’uso  di un template engine come Smarty che vi permette di scrivere dei template con delle funzionalità ridotte rispetto al PHP, ma con una sintassi differente. In questo modo siete obbligati a mettere la logica in un file e la presentazione in un altro e questa apparente complicazione renderà tutto più semplice. Tra l’altro Smarty vi permette anche di gestire una cache per migliorare le prestazioni del sito.

In realtà non volevo parlare di Smarty, ma del fatto che non abbia supporto nativo per i siti multilingue. Se intendete usare gettext per gestire le traduzioni vi ritroverete con l’impossibilità di farlo. La soluzione sta in un plugin scritto da Sagi Bashari che ho recentemente migliorato e aggiornato e che trovate su GutHub.

Per usarlo basta copiare block.t.php nella cartella plugins dell’installazione di Smarty e poi usare il tag {t} nei vostri template. Veramente semplice.

L’utility tsmarty2c.php serve invece a estrapolare le stringhe da tradurre dai template e creare un file .c che poi potete processare con xgettext che fa parte di gettext.files/files/

2 Commenti per “Plugin Smarty su un sito multilingue con gettext”

Inserito: 16/07/2012 12:15

[…] Costruire un sito web complesso usando PHP richiede un’attenta organizzazione dei vari componenti ed è fondamentale dividere la logica dalla presentazione, in altre parole il sorgente PHP dal codice HTML. È vero che PHP e HTML possano essere scritti praticamente in simbiosi inframezzando il codice dell’uno e dell’altro, ma oltre ad un certo grado di dimensione e complessità del progetto si raggiungi un livello in cui la manutenzione e lo sviluppo del codice diventano veramente problematici. […] Leggi l'articolo completo su Webnology […]

Inserito: 17/07/2012 05:16

[…] Visita il sito saitfainder oppure iscriviti al feed Leggi l'articolo completo su AlterVista […]

Commenta