Comment localiser les chaînes d'une extension pour Firefox bandiera inglese  german flag  bandiera italiana  spanish flag

Il arrive que les extensions que nous traduisons soient dépourvues de dossier locale, il faut donc aller chercher
les chaînes de caractères un peu partout... Ou bien on peut réaliser soi-même un dossier "locale" qui sera bien
pratique pour internationaliser l'extension...
Nous prenons ici pour exemple l'extension anidisable d'Harry Patsis
 1 

Ouvrons anidisable.xpi 
ouverture xpi
avec Izarc ou 7-Zip par exemple
 2

Le dossier chrome contient un autre fichier compressé que nous ouvrons aussi...
ouverture du chrome
 3 

Déception ! Il  ne contient pas de dossier "locale" ...
ouverture jar
 4

Eh bien...
nous en créons un !
créer un dossier locale
avec le bouton droit "Nouveau dossier" puis renommer
 5

Et  nous lui donnons le contenu suivant : un sous-dossier en-US  (pour une locale en anglais, bien sûr) qui contiendra deux fichiers :
- anidisable.dtd
- contents.rdf
contenu locale
avec le bouton droit "Nouveau document texte" puis renommer

 6

Regardons maintenant dans le fichier content/anidisable.xul, nous y découvrons des mots à localiser. Ce sont ces mots qui apparaîtront en clair à l'utilisateur.
 Remarque : nous laisserons de côté le mot "Anidisable"  car il s'agit du nom de l'extension tel qu'il apparaîtra, il est préférable de ne pas le traduire.
Ouvrir avec un éditeur de texte comme Pspad ou Jedit

chaînes à localiser

... et à part ceux des "label", quels textes peut-on localiser ? Voyez ici des indices

 7

C'est le moment important. !
Nous allons remplacer maintenant les messages entre guillemets par le signe  suivi d'un nom de variable suffisamment explicite, le tout terminé par un  ; 
chaînes localisées

 8

Allons maintenant dans la locale en-US, dans le fichier anidisable.dtd

En respectant la syntaxe (exemple ci-contre), nous reportons ici les noms de variables et leur "équivalent" en anglais .
transfert dans la locale

 9

Retournons maintenant dans le fichier anidisable.xul, et dès la deuxième ligne ajoutons cette ligne  qui permet à l'extension d'avoir l'adresse précise où trouver les éléments localisés...
ligne de doctype

 10

Nous reproduisons la même opération de substitution par des variables pour les chaînes du fichier
 
anidisablesettings.xul
en suivant les étapes
 7   8   9
encoder en utf8
...et on n'oublie pas l'encodage en UTF-8 !

 11

Voici maintenant le contenu du fichier contents.rdf de la locale.
C'est le même pour toutes les extensions, sauf bien sûr le nom de l'extension elle-même 
Pour vous éviter de le saisir entièrement, vous pouvez le récupérer dans ce fichier en texte brut....
contents
 12

Une autre chose importante :  pour que l'extension prenne en compte les éléments localisés à la bonne adresse, il faut lui ajouter
cette ligne (en jaune)
dans le fichier install.rdf
ligne de locale
Et voilà ! il ne nous reste plus qu'à :

  • re-compresser pour avoir un nouveau .xpi
  • tester le fonctionnement de l'extension
  • envoyer à l'auteur notre proposition de localisation
* Si vous voulez comparer et vous exercer, voici anidisable version originale / version localisée
Dans cette dernière version, la description initiale est également localisée. Un autre minituto est ici si vous voulez savoir comment faire.
Et si vous voulez localiser des chaînes contenues dans un fichier javascript (*.js), regardez ici.


Quels sont les textes que l'on peut localiser ?
Ceux qui suivent ces balises :
  • "label"
  • "title"
  • "tooltip" 
  • "value" 
  • "accesskey"
mon avatar

Document fait avec Nvu