Personal tools

Nov 21, 2012

Internazionalizzazione e javascript a braccetto in Plone

Javascript & i18n? Plone ti da una mano!

Internazionalizzazione e javascript a braccetto in Plone

Filed Under:

Ci sono un italiano, uno spagnolo, un francese e un inglese che... vogliono visitare il nostro sito multilingua in Plone. Come trattiamo le traduzioni se c'è tanto javascript?

Capita di dover sviluppare siti che sfruttano javascript per presentare dati e testi. Se il sito è multilingua, anche questi dati e questi testi dovranno essere tradotti coerentemente con la lingua in cui si sta visualizzando il sito.

Se le parole e le frasi da tradurre sono poche, questo compito può essere portato a termine tramite un dizionario. Supponiamo infatti di dover aprire un alert con un messaggio. Sarà sufficiente avere qualcosa di questo tipo:

// Tramite jQuery si prende la lingua corrente dall'attributo del tag html
var lang = jq('html').attr('lang');

// si dichiara il vocabolario con le traduzioni nelle varie lingue var messages = {'it': 'Benvenuti',
'en': 'Wellcome',
'es': 'Bienvenido',
'fr': 'Bienvenue'};

// apriamo l'alert scegliendo la traduzione opportuna. alert(messages[lang]);

Se la pagina web che stiamo creando ha molte parti caricate via javascript, e quindi molti testi e parole da presentare tradotte, questo approccio è scomodo; innanzitutto perché si rischia di dover mantere molto codice solo per le traduzioni.
Se siamo in un caso come questo, il sito sviluppato probabilmente è già multilingua e i dati verranno presentati correttamente. Per quanto riguarda i testi da mostrare in javascript, è meglio sfruttare un motore di traduzioni, e in Plone, grazie alla community, un'utility di questo tipo esiste già: jarn.jsi18n. Grazie a questo prodotto, infatti, è possibile sfruttare appieno il message factory di plone e tutti i suoi file di traduzioni.

read more