Disclaimer: as you may have already noticed, this post is written in Italian. If you need an English version, just ask and I’ll provide one (comments inside the scripts are already in English) 😉

Come avrete sicuramente notato dal post precedente, in questi giorni ho la possibilità fare un po’ di test con un Nokia N810: per questo devo ringraziare Luca, che come sempre si è dimostrato gentilissimo – alla faccia del ferragosto e del periodo vacanziero – e mi ha messo in contatto con le persone giuste (un sentito grazie anche a loro e a Nokia Italia per la disponibilità).

Il punto di partenza è il post del team francese con le indicazioni per la localizzazione di Fennec 0.4. L’idea è quella di semplificare ulteriormente la procedura creando alcuni script, nella speranza che il post possa essere utile anche ad altri team l10n. Tutte le operazioni devono essere eseguite su una macchina debian-based (io uso una VM con Ubuntu su Parallels-OS X); dal momento che scrivere script non è esattamente il mio lavoro, sono sicuro che esistano ampi margini di miglioramento 😉

I pacchetti da localizzare sono due: Fennec e XulRunner. Per prima cosa è necessario scaricare i file dal server Mozilla.

Localizzazione di XulRunner

Partiamo dal pacchetto più semplice, in quanto non sono richiesti interventi manuali.

Per procedere bisogna inserire in una cartella:

  • lo script setup_xulrunner.sh
  • il file it.jar recuperato dal language pack italiano (attenzione: per xulrunner 1.9.1a2pre serve quello per Firefox 3.1)
  • il pacchetto fennec_0.6_armel.deb

Descrizione dello script:

  • imposto delle variabili con nome del pacchetto, nome del file .deb e il locale (utilizzate per semplificare il riutilizzo dello script)
  • estraggo il contenuto del pacchetto .deb in ./xulrunner, quello del file it.jar nella cartella ./locale_xulrunner
  • attraverso sed sostituisco il nome di una variabile in xpinstallConfirm.dtd (ancora mi chiedo il perché di questa differenza tra Firefox e XulRunner…)
  • ricreo il file it.jar (in realtà si tratta di un file zip con estensione .jar), sistemo il chrome.manifest sostituendo en-us con it (sempre usando sed)
  • elimino i file en-US e ricreo il pacchetto .deb con la localizzazione

setup_xulrunner.sh

#!/bin/sh
# Create an empty folder and place inside this directory:
# * this script (setup_xulrunner.sh)
# * the xulrunner .deb package
# * the ab-CD.jar file taken from your localized Firefox (for 1.9.1a2pre you need a Fx 3.1 language pack!)
#
# Change the package_name variable according to the the xulrunner package,
# language_code according to your locale
package_name="xulrunner_1.9.1a2pre-2008080410_armel"
language_code="it"
product_name="xulrunner"
# Create directories
mkdir ${product_name}
mkdir locale_${product_name}
# Extract deb package
cd ${product_name}
dpkg-deb -e ../${package_name}.deb
dpkg-deb -x ../${package_name}.deb .
# Extract locale files
cp ../${language_code}.jar ../locale_${product_name}
cd ../locale_${product_name}
unzip ${language_code}.jar
rm ${language_code}.jar
# Adapt Firefox localization to xulrunner
# - Remove reporter files
rm -r ./locale/${language_code}/reporter
# - Change variable name
sed -i 's/warningMain.label/warningPrimary.label/' ./locale/${language_code}/mozapps/xpinstall/xpinstallConfirm.dtd
# Create ab-CD.jar with localized files
cd locale_${product_name}
zip -r ${language_code}.jar *
# Move ab-CD.jar to package directory
mv ${language_code}.jar ../${product_name}/usr/local/${product_name}/chrome
# Change en-US.manifest and save as ab-CD.manifest
sed 's/en-US/'${language_code}'/g' ../${product_name}/usr/local/${product_name}/chrome/en-US.manifest > ../${product_name}/usr/local/${product_name}/chrome/${language_code}.manifest
# Remove en-US files (jar and manifest)
rm ../${product_name}/usr/local/${product_name}/chrome/en-US.jar
rm ../${product_name}/usr/local/${product_name}/chrome/en-US.manifest
cd ../${product_name}
# Create localized .deb package
dpkg-deb -b . ../${package_name}.${language_code}.deb

Localizzazione di Fennec

A differenza di XulRunner, la localizzazione avviene in due fasi:

  • nella prima fase (setup_fennec.sh) estraggo il contenuto del pacchetto .deb in ./fennec e creo la cartella ./locale_fennec
  • nella seconda fase (repackage_fennec.sh) ricreo il pacchetto .deb

Le due fasi sono necessarie in quanto bisogna localizzare a mano le stringhe presenti in ./locale_fennec: come riferimento è consigliabile utilizzare gli analoghi file del language pack di Firefox (molte stringhe sono simili o identiche).

setup_fennec.sh

#!/bin/sh
# Create an empty folder and place inside this directory:
# * this script (setup_fennec.sh)
# * the fennec .deb package
#
# Change the package_name variable according to the the fennec package,
# language_code according to your locale
#
# After the script is run, you should find a locale_fennec folder with the files to localize
fennec_package="fennec_0.6_armel"
# Create directories
mkdir fennec
mkdir locale_fennec
cd fennec
# Extract deb package
dpkg-deb -e ../${fennec_package}.deb
dpkg-deb -x ../${fennec_package}.deb .
# Extract locale files
cp ./usr/local/fennec/chrome/en-US.jar ../locale_fennec
cd ../locale_fennec
unzip en-US.jar
rm en-US.jar

repackage_fennec.sh

#!/bin/sh
# Change the package_name variable according to the the fennec package,
# language_code according to your locale
#
# Inside ./locale_fennec you should have the localized files
#
# Don't run this script twice: since the first execution deletes the en-US.manifest, the second one
# creates an empty ab-CD.manifest file (and a broken .deb package)
fennec_package="fennec_0.6_armel"
language_code="it"
product_name="fennec"
# Create ab-CD.jar with localized files
cd locale_${product_name}
zip -r ${language_code}.jar *
# Move ab-CD.jar to package directory
mv ${language_code}.jar ../${product_name}/usr/local/${product_name}/chrome
# Change en-US.manifest and save as ab-CD.manifest
sed 's/en-US/'${language_code}'/g' ../${product_name}/usr/local/${product_name}/chrome/en-US.manifest > ../${product_name}/usr/local/${product_name}/chrome/${language_code}.manifest
# Remove en-US files (jar and manifest)
rm ../${product_name}/usr/local/${product_name}/chrome/en-US.jar
rm ../${product_name}/usr/local/${product_name}/chrome/en-US.manifest
cd ../${product_name}
# Create localized .deb package
dpkg-deb -b . ../${fennec_package}.${language_code}.deb

Per installare i due pacchetti è sufficiente copiare i file sul dispositivo ed eseguirli: Fennec risulterà disponibile nella scheda Extra del menu (vedi screenshot) 😉

Tag Technorati: ,

Un commento/trackback a “Localizzare Fennec in italiano”

Trackback e pingback

  1. pseudotecnico:blog » Fennec 0.7 (M7) in italiano
    [...] Poche le novità dal punto di vista della localizzazione: [...]

Non è possibile inserire nuovi commenti. I commenti vengono disattivati automaticamente dopo 60 giorni.