Localizzare le estensioni
- Autore: Lodolo Francesco
- Versione: 1.0
- E-mail: flod[at]extenzilla[dot]org
- Ultimo aggiornamento: 20-11-2005
In questo documento verrà preso in esame il processo di traduzione in lingua italiana (localizzazione) di un'estensione; come esempio, verrà illustrato il processo di traduzione dell'estensione Image Toolbar 0.3.1 di Ben Busson (Cusser).
Per prima cosa è necessario scaricare il file xpi; nonostante l'estensione "xpi", si tratta di un archivio compresso zip, che può quindi essere trattato con un qualsiasi software in grado di gestire questo tipo di file, come ad esempio Zip-Genius o altri.
Per semplificare le operazioni in ambiente Windows, è sufficiente rinominare il file cambiando l'estensione da xpi in zip.
Gli unici strumenti indispensabili per svolgere tutta l'operazione sono:
- un software per la gestione degli archivi zip
- un editor di testi, meglio se in grado di colorare il codice (ad esempio PSPad)
Nel mio caso, tutta l'operazione viene svolta su un sistema Linux Mandrake 10, per cui verrà utilizzato Ark per la gestione degli zip e KWrite come editor di testi.
Per prima cosa bisogna scompattare il file xpi in una cartella, chiamandola image_toolbarXPI.
All'interno di questa cartella si trovano una cartella Chrome, che contiene un file imagetoolbar.jar, e due file: install.js ed install.rdf. Per il momento verrà considerato solo il file imagetoolbar.jar.
Anche il file con estensione JAR è un file zip cammuffato, per cui è possibile scompattarlo in una cartella image_toolbarJAR (non posizionarla all'interno della cartella image_toolbarXPI).
La prima cosa da verificare nella nuova cartella è la presenza di una cartella locale\en-US; se questa cartella non è presente, significa che non è stata prevista dall'autore la possibilità di localizzare le stringhe.
In altre parole, tutte le stringhe inglesi sono nascoste all'interno del codice; in questi casi la cosa migliore è desistere (sono troppi i rischi di compromettere la funzionalità dell'estensione lavorando direttamente nel codice, soprattutto se non si ha l'occhio allenato).
Creare il locale/it-IT
Il primo passo è quello di preparare la strada per la localizzazione in italiano, facendo una copia della cartella en-US all'interno di locale e chiamandola it-IT.
In questo modo si ottiene una "pseudo-localizzazione italiana", dal momento che è solo una copia di quella inglese.
Adesso bisogna entrare nella cartella locale/it-IT/imagetoolbar ed aprire il file contents.rdf con l'editor di testi: fondamentalmente si deve far capire a Firefox che questa non è più la localizzazione inglese ma quella italiana.Per farlo sostituiamo tutte le occorrenze di en-US con it-IT; nell'elenco sottostante sono evidenziate in blu le parti da sostituire:
<?xml version="1.0"?>
<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:chrome="http://www.mozilla.org/rdf/chrome#">
<!-- list all the locales being supplied -->
<RDF:Seq about="urn:mozilla:locale:root">
<RDF:li resource="urn:mozilla:locale:en-US"/>
</RDF:Seq>
<!-- locale information -->
<RDF:Description about="urn:mozilla:locale:en-US"
chrome:displayName="English (US)"
chrome:name="en-US">
<chrome:packages>
<RDF:Seq about="urn:mozilla:locale:en-US:packages">
<RDF:li resource="urn:mozilla:locale:en-US:imagetoolbar"/>
</RDF:Seq>
</chrome:packages>
</RDF:Description>
</RDF:RDF>
Ovviamente bisogna sostituire anche la scritta "English (US)" con "Italiano (IT)"; questa dicitura non è obbligatoria, per cui potrebbe anche non essere presente.
Traduzione dell'estensione
Ora è possibile iniziare il processo di traduzione vero e proprio: in questo caso c'è un solo file da tradurre (imagetoolbar.dtd).
Normalmente, tutti i file che troviamo in questa cartella contengono stringhe da tradurre: si potranno incontrare file con estensione properties, ent, o altro ancora.
Queste sono le prime righe del file imagetoolbar.dtd:
<!ENTITY imagetoolbar.save "Save Image"> <!ENTITY imagetoolbar.copy "Copy Image"> <!ENTITY imagetoolbar.mail "Email Image"> <!ENTITY imagetoolbar.print "Print Image"> <!ENTITY imagetoolbar.folder "Image Folder">
Naturalmente, le parti da tradurre sono solo quelle all'interno delle " ".
Nel processo di traduzione bisogna tenere conto di queste regole:
- non inserire caratteri proibiti, come lettere accentate o "
- cercare di mantenere nella traduzione la stessa lunghezza del testo inglese, per evitare che la stringa in italiano non venga visualizzata completamente
- cercare, per quanto possibile, di mantenere lo stesso stile dell'italiano usato dal browser (fare riferimento a Mozilla Italia per una piccola guida alla traduzione)
Nel caso di file .properties si incontrerebbe una struttura di questo tipo:
INS_AUTHOR = Inserire l'autore del quote:
In questo caso, la parte blu in grassetto non è ovviamente da tradurre.
Ricompattare il file jar
A questo punto bisogna ricompattare il file imagetoolbar.jar contenuto in image_toolbarXPI/chrome (cancellando prima i file già contenuti nel file jar); in questo caso, bisogna porre particolare attenzione al percorso relativo dei file.

Registrazione del locale
Adesso manca solo un passo prima di poter ricompattare il file xpi: registrare il nuovo locale nei file di install:
- install.js è usato dalle vecchie versioni di Firefox (fino alla 0.8)
- install.rdf è usato dalle nuove versioni di Firefox
Per prima cosa bisogna aprire il file install.js con l'editor di testi.
Per comodità si possono cercare le sezioni in cui si parla del locale en-US. Facendo una ricerca si trovano queste righe:
registerChrome(contentFlag, folder, "content/" + name + "/"); registerChrome(localeFlag, folder, "locale/en-US/" + name + "/"); registerChrome(skinFlag, folder, "skin/classic/" + name + "/");
Subito sotto alla registrazione del locale en-US si può aggiungere l'italiano:
registerChrome(contentFlag, folder, "content/" + name + "/"); registerChrome(localeFlag, folder, "locale/en-US/" + name + "/"); registerChrome(localeFlag, folder, "locale/it-IT/" + name + "/"); registerChrome(skinFlag, folder, "skin/classic/" + name + "/");
Adesso bisogna aprire il file install.rdf (la procedura è molto simile): cercando il testo en-US si trova questa sezione:
<Description about="urn:mozilla:extension:file:imagetoolbar.jar"> <em:package>content/imagetoolbar/</em:package> <em:locale>locale/en-US/imagetoolbar/</em:locale>
Procedendo come sopra:
<Description about="urn:mozilla:extension:file:imagetoolbar.jar"> <em:package>content/imagetoolbar/</em:package> <em:locale>locale/en-US/imagetoolbar/</em:locale> <em:locale>locale/it-IT/imagetoolbar/</em:locale>
Ricompattare il file xpi
Ora è possibile ricompattare il file con estensione xpi, ponendo attenzione anche in questo caso al percorso relativo dei file.

Conclusione
Se tutte le operazioni sono state svolte come indicato, è possibile andare ad installare la nuova estensione in italiano.
Nel caso specifico di questa estensione, il processo di localizzazione non è purtroppo completo: l'autore ha mantenuto (almeno in questa versione) alcune stringhe direttamente nel codice Javascript.
Ad esempio:
- il messaggio di errore nel caso in cui non trovi la cartella predefinita per il salvataggio
- il titolo della finestra di dialogo per selezionare alcune cartelle
Non conviene modificare queste stringhe, dal momento che con in caso di aggiornamento, a differenza delle stringhe tradotte nel locale, non potranno essere riutilizzate nel processo di localizzazione.




