Localizzazione dei file javascript

Scritto da Maurizio Pelizzone il 9 marzo 2010

Per la validazione di alcuni form ho avuto la necessità di localizzare le stringhe di errore gestite all’interno di un file Javascript.
Volevo un sistema che non fosse eccessivamente invasivo, simile al gettext che uso con php ma che fosse indipendante da codice serverside e che mi permettesse di caricare e cambiare il file con le riserse localizzate anche a runtime.

Quello che ne è uscito mi piace molto e penso che sia anche sufficentemente scalabile pur avendo come limite il fatto di lavorare su array di stringhe un oggetto json piuttosto che su file compilati.

In pratica dopo aver dichiarato l’oggetto in cui “cercare” le traduzioni, ho preparato una funzione che verifica la presenza della stringa localizzata e nel caso non venga trovata mi restituisse quella “non localizzata”.

var Localization = {};
function _e( s ){
if(Localization && (v=Localization[s]) ) return v;
return s;
}

Usando questa funzione all’interno dei miei file js sono in grado di separare (ed eventualmente rimandare) le problematiche relatavie alla localizzazione rimanendo concentrato sul codice.
Nell’esempio qui sotto viene visualizzato un alert con un bel “ciao” sino a quando non viene caricata una risorsa in lingua

alert( _e(“ciao”) );

Per caricare il file con le risorse localizzate includo lo script a runtime con “getScript” (magari dopo aver letto un cookies…)

function LoadLocale( locale ){
/* es. LoadLoacale(“en_EN”); */
var Localization_path = “languages/”;
Localization = {};
try {
jQuery.getScript( Localization_path + locale + “.js”);
} catch(e) {}
}

Questa la struttura del file di risorse (en_EN.js) che nel momento in cui viene richiamata ridefinisce completamente l’oggetto “Localization”

// en_EN – javascript localization file
var Localization = {
“errore” : “error”,
“ciao” : “hello”,
“nome” : “name”,
“sito web” : “website”
}

Uno dei vantaggi di questo sistema è che andrò a localizzare solo ciò che mi serve con un approccio non intrusivo.
In atre parole se la stringa o il file non vengono trovati viene restituita la stringa non localizzata.
Ancora una nota per chi volesse usarlo: dentro LoadLocale c’è una chiamata a jQuery che quindi va considerato tra i requisiti necessari.

Per migliore le performance, indipendentamente dalla dimensione del file della localizzazione, sarebbe consigliabile minimizzare i file javascript con strumenti tipo questo.

Questi alcuni link da cui ho preso ispirazione.

Ottimizzare un sito web per i motori di ricerca

Eccomi sul treno mentre torno a torino. Sono decisamente stanco ma avevo piacere di pubblicare questo post prima di arrivare a casa.
Nonostante siano tante le cose che si sarebbero potute fare meglio penso sia stata una bella giornata e considerando il tutto come una “prima prova sul campo” posso ritenermi più che soddisfatto.
Non vi anticipo [...]

Taggato con: , ,
Archiviato sotto: web e tecnologia

Go!WebDesign: Milano, 6 Febbraio 2010

Mancano ormai pochi giorni ma sembra che sia quasi tutto pronto.
Per chi ancora non lo sapesse sto parlando di Go!WebDesign, il primo Workshop Italiano dedicato al WebDesign 2.0.
Mi rendo conto che parlavi di un Workshop in cui sono uno dei relatori può sembrare “di parte” ma rimane il fatto che il programma è sicuramente [...]

Taggato con: , ,
Archiviato sotto: segnalazioni, web e tecnologia

Wired ed il rinnovo dell’abbonamento

Gentile Servizio Abbonamenti Wired,
Sono sinceramente un po’ stufo di ricevere i vostri insistenti inviti a rinnovare.

ho fatto un abbonamento per due anni e non essendone passato neanche uno non vedo il motivo di rinnovarlo adesso
ho pagato il primo abbonamento meno di 19 euro e sinceramente non riesco a giustificare un aumento del il 47%.
ma tra [...]

Taggato con: Archiviato sotto: pensieri ... e parole

I 10 progressi tecnologici più importanti del 2009

discalimer: Il seguente post è sponsorizzato.
È stato un anno importante per quanto riguarda la tecnologia online. Diamo un’occhiata ai 10 progressi tecnologici più significativi a cui abbiamo assistito nel corso del 2009.

Twitter: se all’inizio dell’anno aveste chiesto a chiunque se era su Twitter, vi avrebbe probabilmente rivolto uno sguardo interrogativo. Ora è completamente diverso. [...]

Taggato con: Archiviato sotto: nofeed, web e tecnologia

less is more – bellisiti#1

Mi piace molto lo stile essenziale di questo sito.

Trovo molto d’impatto la grossa immagine laterale che inserita come semplice sfondo riesce a dare carattere mettendo in evidenza quello che possiamo forse definire il “logo”.
Le sezioni interne si sviluppano orizzontalmente senza mai superare la dimensione verticale dello sfondo.
Anche il codice è essenziale gestito con delle semplici [...]

Taggato con: Archiviato sotto: segnalazioni, web e tecnologia

BlogMagazine: il primo numero è online

Sento parlare di BlogMagazine dai primi giorni di gennaio e, in meno di due mesi, ho visto qualcosa di molto interessante prendere forma.
Sabato scorso sono anche stato invitato alla sua presentazione presso la Fnac di torino e ho avuto modo sfogliare il “prodotto” stampato.

Se vi chiedete quali sono i motivi per cui una semplice [...]

Taggato con: , ,
Archiviato sotto: blogopalla, pensieri ... e parole