mozilla

Creare un installer per Windows di SeaMonkey

Gli attrezzi del mestiere

Premessa: non tutti i programmi elencati sotto sono strettamente necessari. Alcuni semplicemente sono quelli che io uso perché mi ci trovo bene, mentre altri sono script che ho creato per velocizzare il lavoro. Potete in ogni caso scegliere il programma che vi piace di più per svolgere certe operazioni, come potete non sfruttare gli script e scrivere ogni volta i comandi a mano. La scelta è vostra!

  • Installer di SeaMonkey in italiano (la versione più recente disponibile)
  • Installer di SeaMonkey in inglese (la versione di cui si vuole creare l'installer nuovo)
  • Langpack italiano applicabile all'installer inglese (deve essere la stessa versione, o almeno una compatibile)
  • WinMerge (per il confronto dei file vecchi e nuovi)
  • 7-zip (gestisce tutti gli archivi e serve per la costruzione finale dell'installer)
  • Pacchetto per la costruzione dell'installer (contiene dei file necessari per creare l'installer e gli script per l'automazione del processo)
  • Script per l'automazione completa della creazione dell'installer (contiene dei file necessari per creare l'installer)

Per comodità, posizionate il file mozip.exe presente nel "Pacchetto" nella cartella di Windows, in modo da poterlo usare attraverso il prompt dei comandi senza dover inserire ogni volta il suo percorso.

Prima di iniziare, un piccolo elenco di convenzioni usate nella guida:

  • [nv] - numero di versione di SeaMonkey
  • [path] - sostituisce l'indicazione di un percorso qualsiasi
  • Scriverò i nomi dei file in minuscolo per comodità, tuttavia i file che sono in maiuscolo dovrebbero rimanere tali
  • Per console intendo il prompt di DOS. In Windows 98/Me è accessibile dal menu Start; per le versioni successive basta digitare "cmd" nella finestra di Esegui

Primi passi

Per iniziare, bisogna creare le cartelle che dovranno ospitare i file. Personalmente (e questa scelta si ripercuote sui file batch) creo la cartella C:\sm che dovrà contenere tre cartelle: {{ mediawiki.external('nv') }}eng che conterrà i file in inglese della versione da tradurre; {{ mediawiki.external('nv') }}ita che conterrà i file in italiano dell'ultima versione disponibile e {{ mediawiki.external('nv') }} che conterrà i file in italiano della versione di cui vogliamo creare l'installer. Per creare quest'ultima cartella, inizialmente, bisognerà copiare la cartella con i file in inglese e rinominarla.

Per riempire la cartella in inglese con i file necessari, bisogna mettere l'installer in inglese nella cartella [nv]eng, aprire una console e digitare:

mozip -x [nv]eng\seamonkey-[nv].en-US.win32.installer.exe

Una volta estratti i file, è possibile cancellare l'installer.
Per scompattare l'installer italiano, è sufficiente mettere il file nella relativa cartella, fare clic col tasto destro e dalle opzioni di 7-zip selezionare Estrai qui.

Tradurre i file di testo

Iniziamo col tradurre i due file di testo presenti tra i file estratti: install.ini e config.ini

Il primo è la traduzione dell'interfaccia dell'installer e quindi, dato che per ora questo resta uguale nel tempo, al 99.99% non dovrete fare altro che copiare il vecchio file in italiano. Ad ogni modo, per andare sul sicuro, controllate che almeno il numero di righe corrisponda.

Il secondo file invece contiene la configurazione dell'installer per quella particolare versione di SeaMonkey, ed è un po' più delicato da tradurre. Aprite WinMerge e mettete a confronto il vecchio file in italiano e il nuovo file in inglese: il programma evidenzierà automaticamente tutte le righe diverse.
Non tutte le stringhe però andranno tradotte: dovrete concentrarvi solamente su quelle che riportano nella riga precedente la scritta "localize me". Noterete che alcune stringhe non sono state tradotte, nonostante sopra venga riportata la dicitura per localizzarle: non è una dimenticanza, ma se si traducono quelle stringhe l'installer non funzionerà. Oltre a queste, dovrete cambiare tutti i riferimenti di en-US e US rispettivamente in it-IT e IT; sicuramente saprete riconoscerli quando li vedrete. WinMerge vi viene in aiuto in questo compito: basta selezionare il testo in italiano in una delle semi-finestre ed incollarlo nell'altra, al posto del testo inglese.

ATTENZIONE: alla riga 191, che fa parte di quelle da tradurre, c'è l'indicazione del numero di versione esatto della build che state costruendo. Fate attenzione, nel copia-incolla, a non sovrascrivere il numero.

Dopo aver modificato correttamente i file di testo, possiamo passare ai vari componenti del programma, rappresentati dai vari file xpi. Per il lavoro che dobbiamo fare, questi file possono essere uniti in piccoli gruppi e per ogni gruppo andrà effettuata una serie di operazioni uguali per tutti. Perciò, invece di trattare ogni pacchetto singolarmente, descriverò le azioni da compiere per ogni gruppo.

Il file langenus.xpi

Prima di tutto bisogna scompattare il file: nel menu contestuale tra le opzioni di 7-zip selezionate Estrai in "[path]", che creerà una cartella di nome langenus.

Modificate l'install.js nella sezione indicata "Localize me" ed inserite i codici italiani it-IT dove richiesto. Potete utilizzare il file della vecchia versione italiana e WinMerge per vedere rapidamente cosa modificare.

Scorrere il file fino in fondo, dove vengono registrati i locale chrome del langpack: tipicamente nelle versioni in inglese i locale chrome di Inspector, della guida e di quant'altro l'installer contenga di opzionale, sono contenuti nei relativi pacchetti. Le traduzioni italiane invece sono contenute tutte nel jar principale, quindi dovremo aggiungere le registrazioni necessarie qui. Anche in questo caso, quasi sicuramente sarà sufficiente copiare le stringhe in più dal vecchio file italiano in quello nuovo ancora in inglese con WinMerge.
Completate quindi con la sostituzione dei file jar contenuti nella cartella bin/chrome (in questo caso i file en-*.jar vanno sostituiti con i gli equivalenti it-*.jar).

Al termine di tutto riportatevi nella cartella contenente l'install.js e selezionate detto file assieme alla cartella bin, quindi dal menu contestuale selezionate "Aggiungi all'archivio..." e nella finestra che vi appare selezionate Zip come formato dell'archivio e Nessuna come livello di compressione. Se volete velocizzare il lavoro, nel campo archivio inserite "../langitit.xpi" che provvederà a creare il file xpi in italiano direttamente nella cartella principale, altrimenti dovrete spostare il nuovo file a mano in {{ mediawiki.external('nv') }}.

ATTENZIONE: quando si creano gli xpi e i jar contenuti nell'installer, il livello di compressione va assolutamente impostato su Nessuna, per due motivi:

  1. per non rallentare l'esecuzione dell'installer prima, e l'avvio dell'applicazione installata dopo.
  2. perché le dimensioni dell'installer saranno molto più ridotte se non sono stati compressi.

Una volta fatto tutto, cancellate il file langenus.xpi e la relativa cartella dalla cartella principale.

Il file regus.xpi

Anche in questo caso, come in tutti quelli successivi, create la cartella relativa. Successivamente, modificate il file install.js nelle stringhe che si trovano sotto LOCALIZATION NOTE; anche in questo caso WinMerge vi sarà d'aiuto. Nella cartella bin/chrome sostituite US.jar con IT.jar preso dal langpack italiano. Aggiungete i searchplugins del langpack italiano in bin/searchplugins e sostituite i file in bin/defaults con gli equivalenti presi sempre dal langpack, rinominando la cartella US in IT. Tornate nella cartella che contiene bin ed install.js e create il file xpi chiamandolo regit.xpi. Ricordatevi poi di cancellare il file regus.xpi e la sua cartella.

Il file deflenus.xpi

Modificate il file install.js nelle stringhe che si trovano sotto LOCALIZATION NOTE e sostituite i file in bin/defaults con gli equivalenti presi dal langpack italiano. Tornate nella cartella padre che contiene bin ed install.js e create l'archivio xpi chiamandolo deflitit.xpi. Ancora, ricordatevi di cancellare il file deflenus e la cartella relativa.

Il primo gruppo di file

La procedura che spiegherò ora si applica ai file venkman, chatzilla, inspector, sroaming, reporter.

Come già detto in precedenza, mentre nel langpack inglese la traduzione dei componenti opzionali si trova nei pacchetti dei programmi stessi, nel caso della lingua italiana tutte le traduzioni si trovano nel jar principale. L'operazione da compiere ora è quindi quella di eliminare le traduzioni dai singoli pacchetti.

Nel file install.js dovete eliminare la registrazione del locale. Per fare questo basta commentare la riga relativa (aggiungendo // all'inizio) oppure cancellarla. Per esempio, nel pacchetto venkman:

// registerChrome(LOCALE | DELAYED_CHROME, getFolder("Chrome","venkman.jar"), "locale/en-US/venkman/");

Nella cartella bin/chrome invece bisogna aprire il file jar con 7-zip ed eliminare la cartella locale. Una volta fatto questo dovrete ricreare lo xpi.

ATTENZIONE: mentre prima si cambiavano i nomi ai file, ora il nome del file xpi prima e dopo le operazioni resta lo stesso. Quando perciò avete creato lo xpi e tornate nella cartella principale, ricordatevi di cancellare solamente la cartella relativa al file e non anche il file xpi stesso, altrimenti cancellerete il vostro lavoro. Questo ovviamente vale solamente se in 7-zip avete sfruttato il trucchetto di digitare "../pacchetto.xpi" come nome del file, e resta valido di qui fino alla fine.

Il secondo gruppo di file

La procedura che spiegherò ora si applica ai file browser, mail, xpcom, spellcheck, talkback e al file zip seamonkeyuninstall.

Questi file non vengono toccati dalla traduzione, perciò non c'è da modificare niente. Tuttavia, per diminuire le dimensioni finali dell'installer, andranno scompattati e poi risalvati, questa volta però senza compressione. Vi dovrete perciò limitare a scompattare il pacchetto in una cartella, selezionare tutti i file presenti, e ricreare il file xpi (o zip a seconda dei casi) senza compressione.

Il file gre-win32-installer.zip

Questo pacchetto contiene l'installer di GRE (Gecko Runtime Environment) e si comporta proprio come un installer a sé stante. Dopo aver creato la cartella di questo pacchetto, quindi, dovrete di nuovo lanciare il comando "mozip -x" per estrarne i file contenuti, dopodiché potete anche cancellare l'installer. A partire da SeaMonkey 1.0.2 l'installer italiano viene creato con la procedura descritta sotto, perciò per scompattare quello italiano per il confronto tra i file basterà usare il menu contestuale e selezionare l'opzione di estrazione di 7-zip.

Come per l'installer di SeaMonkey, dovete tradurre i due file install.ini e config.ini, per i quali valgono le stesse considerazioni dette all'inizio di questa guida. Allo stesso modo, dovrete scompattare tutti i file zip e xpi e ricompattarli senza compressione.

A questo punto, dobbiamo creare l'installer di GRE. Se volete fare in fretta e non darvi troppa pena vi basterà usare lo script grebuild.bat che ho creato, una volta modificati i percorsi delle cartelle per adattarli al vostro caso (i file bat si aprono con un semplice editor di testi). Ci sono solo pochi passaggi da fare a mano: copiare nella cartella i file app.tag e 7zSD.sfx, poi aprire il primo con un editor di testi e nel campo "Title" inserire "GRE".

Se invece siete masochisti e volete fare tutto a mano, qui di seguito spiego i passaggi da effettuare: per creare l'installer dovete prima di tutto riunire tutti i suoi file in un unico archivio. Aprite quindi una console, spostatevi nella cartella che contiene i file dell'installer di GRE e digitate:

[path]\7z a app.7z -t7z *.* -mx0

In questo modo si creerà il file app.7z che contiene tutti i file che erano presenti nella cartella, e che ora potete eliminare. A questo punto copiate nella cartella anche i file app.tag e 7zSD.sfx; editate il file app.tag come già descritto sopra, poi lanciate questo comando:

copy /b 7zSD.sfx+app.tag+app.7z gre-win32-installer.exe

Ora che avete creato nuovamente l'installer, cancellate tutti gli altri file presenti.

Qualunque strada abbiate scelto, a questo punto dovreste avere nella cartella solamente il file che contiene l'installer. Ora non vi resta che rimetterlo nel suo file zip come per tutti gli altri pacchetti e poi proseguire.

E ora, creiamo l'installer!

Una volta finito di impacchettare l'installer di GRE, abbiamo finito i file da modificare, e possiamo passare alla creazione dell'installer di SeaMonkey.
Anche in questo caso, potete decidere se usare il mio script o se eseguire tutto a mano. In entrambi i casi, la prima (e ultima per chi usa lo script) cosa da fare è mettere nella cartella C:\sm i file app.tag e 7zSD.sfx e modificare il primo inserendo nel campo Title la stringa "SeaMonkey [nv]".
A questo punto potete lanciare lo script smbuild e aspettare che venga creato l'installer (sempre dopo aver modificato i nomi delle cartelle), oppure aprire una console e digitare, dopo esservi spostati nella cartella {{ mediawiki.external('nv') }}, il seguente comando:

[path]\7z a -t7z ..\app.7z *.* -mx -m0=BCJ2 -m1=LZMA:d24 -m2=LZMA:d19 -m3=LZMA:d19 -mb0:1 -mb0s1:2 -mb0s2:3

Una volta terminata la compressione, risalire nella cartella superiore e digitare:

copy /b 7zSD.sfx+app.tag+app.7z mozilla-[nv].it-IT.win32.installer.exe

et voilà, il vostro installer è pronto!

Tips, tricks & script

In questo paragrafo spiegherò le funzioni di tutti gli script che non ho citato finora, e tenterò di dare qualche consiglio dettato dall'esperienza.

  • gremozip.bat: questo script serve per effettuare il comando mozip per estrarre i file dall'installer di GRE in inglese. Non so voi, ma per me è una palla dover tutte le volte inserire i nomi delle cartelle e dei file per eseguire i comandi, anche perché di solito i nomi sono lunghissimi. Con questo script invece l'unica cosa che dovrete fare è quella di mettere il giusto percorso al file, che corrisponde ad un semplice copia-incolla su Windows, cosa che invece non è possibile fare in DOS.
  • smmozip.bat: lo stesso del precedente, però serve per estrarre i file dell'installer in inglese all'inizio.
  • Quando potete, usate sempre programmi come WinMerge per modificare i file: vi aiuteranno a non sbagliare, e inoltre potrete fare un copia-incolla tra il file italiano e quello inglese direttamente dalla stessa finestra, in più il programma ha la cortesia di lasciare spazi bianchi quando un file contiene righe in più rispetto ad un altro, perciò sarà facile anche trovare il punto dove incollare il testo.
  • Tenete sempre aperte sia la cartella del vecchio installer in italiano, sia quella del nuovo a cui state lavorando. Spacchettate sempre i file di entrambe le cartelle, in alcuni casi vi basterà fare un copia-incolla dei file da una cartella all'altra e il gioco è fatto. Inoltre, quando avete finito di lavorare ad un pacchetto, eliminate il corrispettivo del vecchio installer italiano: quando non ci saranno più file da cancellare, avrete finito. Inoltre aiuta a ricordarsi quali file sono già stati fatti.

Automatizzare le operazioni

La guida spiega tutti i passaggi da eseguire per creare un installer in italiano di SeaMonkey. Sebbene l'esecuzione di questi passaggi renda consapevoli di ciò che si sta facendo, lo svolgimento delle operazioni richede molto tempo.

Una volta capiti i passaggi necessari, è possibile utilizzare degli script per velocizzare il processo di creazione dell'installer. Gli script necessari possono essere scaricati dalla lista del materiale all'inizio di questa pagina. Per farli funzionare, basta configurare correttamente il file config.bat (maggiori informazioni sono contenute all'interno del pacchetto).
Gli script si basano su questa guida, e assumono che la cartella dove si lavora sia C:\sm e che la sotto-cartella degli script sia \tools.

Una volta lanciato, lo script si fermerà solamente per permettere all'utente di tradurre i file .ini e .js necessari, aprendoli con WinMerge. Per questi file, valgono le stesse considerazioni fatte sopra: alcuni vanno semplicemente copiati, per altri bisogna fare attenzione.

Ringraziamenti

Michele Dal Corso: per aver scritto la prima versione testuale della guida.

Giacomo Magnini: per aver scritto la prima guida per Mozilla Suite e per avermi aiutato a risolvere tutti i problemi che ho incontrato inizialmente durante la costruzione degli installer. Ah! Ovviamente anche per aver spulciato questa seconda guida alla ricerca di errori.

Francesco Lodolo: per aver controllato la prima guida di Giacomo, e di conseguenza indirettamente anche questa.

Fabio Baroni: per aver effettuato il controllo finale della guida di Francesco Lodolo.

Domenico Zanella: per aver creato gli script per l'automazione del processo di creazione dell'installer.

Etichette del documento e nomi di chi ha collaborato alla sua stesura

Etichette: 
Contributors to this page: teoli, Iacchi, Fabiothebest89
Ultima modifica di: teoli,