Les extensions de Mozilla (la suite, Firefox, Thunderbird) permettent d'ajouter des fonctionnalités supplémentaires et personnalisées aux applications. Vous en trouvez une multitude sur le site officiel mais elles ne sont la plupart du temps disponibles qu'en anglais.
Dans un premier temps, je vous renvoie vers les sites officiels concernant la traduction dans Mozilla, la traduction en général et les usages de la langue française dans le domaine de l'informatique :
Lisez attentivement ces documents si vous n'y connaissez rien à la traduction en général, ou à la traduction de Mozilla en particulier. Le but étant de produire des traductions de qualité plutôt qu'en quantité, et d'avoir une homogénéité maximale entre les extensions, mais aussi avec le programme lui-même.
Ce tutoriel est orienté pour le système d'exploitation Windows XP, celui-ci étant le plus couramment utilisé. Cependant, les utilisateurs d'autres systèmes pouront procéder d'une manière très semblable à celle-ci sans trop d'ennuis. Par exemple, sous Linux, tous les outils dont nous avons besoin (compression et édition de texte) sont intégrés en standard.
Ce tutoriel vous indique comment configurer les outils nécessaires et apprend à s'en servir correctement. Il indique également quels fichiers traduire et comment le faire. Même si cet aspect est indissociable, son but n'est pas de vous apprendre à traduire, mais uniquement de vous transmettre les techniques pour le faire. Pour les règles, les usages et tous les autres aspects littéraires de traduction, visitez les références citées plus haut !
La traduction des extensions est relativement abordable, même pour des non-initiés dans les langages de programmation. Il suffit de quelques informations et outils pour se lancer dans ce genre de travail. Ce tutoriel est abordable pour tous ceux qui savent manipuler les fichiers (copier, coller, renommer, ouvrir) dans leur système d'exploitation et qui n'ont pas peur de passer quelques heures à configurer leurs outils et leur système. La plus grande partie de ce tutoriel concerne l'installation, la configuration et la bonne utilisation des outils nécessaires.
Je vous propose dans un premier temps de télécharger les deux outils que j'utilise pour mes traductions. Ils ne sont pas obligatoires, vous pouvez en trouver d'autres, mais pour une compréhension plus aisée de la procédure à suivre, je vous conseille de les télécharger et de les installer. Ils sont tous les deux libres et très performants. Il nous faut donc :
Si vous utilisez d'autres outils équivalents, que vous les connaissez suffisamment bien et qu'ils sont bien configurés, vous n'avez pas besoin d'utiliser ceux-ci. Pour un débutant, il est tout de même conseillé de suivre cette procédure pour éviter les ennuis (et les outils mal configurés)
jEdit est maintenant disponible en français. Vous pouvez tout de même lire le tutoriel jEdit de Damien Letard si vous voulez le configurer selon vos préférences, par exemple le plugin BufferTabs est très utile, mais rien n'est réellement nécessaire.

Attention, vous devrez avoir installé la Machine Virtuelle Java de Sun pour pouvoir exécuter jEdit. Si vous ne l'avez pas fait, jEdit ne démarrera pas (l'installeur non plus). Dans ce cas, il est encore temps d'installer cet environnement d'exécution utilisé par de très nombreux programmes. C'est très simple, si les fichiers jar s'exécutent, c'est que la machine est installée, sinon suivez la procédure indiquée sur plugindoc, il s'agit du même environnement que le plugin pour Mozilla.
Commencez par installer jEdit. C'est un fichier jar, qui devrait s'exécuter automatiquement et s'installer sous tous les systèmes d'exploitations. Installez-le si possible dans le répertoire C:\Program Files\jEdit\ (pas besoin de mettre le numéro de version dans le nom du répertoire ; si vous le faites, adaptez en conséquence tous les chemins qui seront donnés plus loin dans ce tutoriel). Ensuite, téléchargez la traduction de jEdit en français et décompressez-la dans le répertoire properties du répertoire d'installation de jEdit.
Ensuite il faudra configurer les fichiers XUL, DTD, RDF, JS et PROPERTIES pour s'ouvrir dans jEdit. Ouvrez l'explorateur Windows, et dans le menu Outils > Options des dossiers sous l'onglet Types de fichiers trouvez la ligne des fichiers XUL (ou créez-la). Remarque : dans Windows XP, il suffit de taper rapidement l'extension sur votre clavier pour la voir directement apparaître.
Cliquez sur Avancé puis Nouveau. Comme action, mettez jEdit ou Ouvrir avec jEdit par exemple. Dans la deuxième ligne, pointez Java vers le fichier jar de jEdit grâce à la ligne suivante javaw.exe -jar C:\Progra~1\jEdit\jedit.jar "%1"
Vérifiez que l'action est bien définie comme action par défaut (elle doit apparaître en gras). Répétez l'opération pour les fichiers DTD, RDF, JS et PROPERTIES. À partir de maintenant, ces fichier devraient s'ouvrir automatiquement avec jEdit.
Pour les fichiers Javascript, vous aurez besoin de la macro suivante : Chars_to_unicode_Entities.bsh. Enregistrez la dans le dossiers de macros de jEdit (par défaut : C:\Documents and Settings\VotreNomD'UtilisateurWindows\.jedit\macros\).

Pour terminer la configuration de jEdit, il faut que les fichiers s'ouvrent dans l'encodage UTF-8. Allez donc dans le menu Utilities > Global Options puis jEdit > General et mettez la ligne Default character encoding (la deuxième depuis le haut dans le panneau de droite) sur UTF-8 si ce n'est pas déjà fait.
Les étapes suivantes de la configuration de jEdit ne sont pas indispensables, cependant elles pourront vous aider grandement dans son utilisation courante.
Pour installer un plugin, allez simplement dans le menu Plugins > Plugin Manager.... Choisissez l'onglet Install et attendez que la liste se charge (ce qui peut prendre un moment). Cochez les plugins voulus et cliquez sur le bouton Install juste en dessous. Vous devrez probablement redémarrer jEdit avant qu'ils ne soient actifs. Nous allons maintenant étudier plus en détails certains plugins utiles.

Les onglets, dans jEdit, sont appelés buffers. Leur gestion n'est pas conventionnelle, ils sont présentés sous forme de liste déroulante. Si vous voulez avoir de vrais onglets, installez le plugin BufferTabs. Voyez le paragraphe précédent pour savoir comment installer un plugin et redémarrez jEdit. Allez dans le menu Utilities > Global Options puis jEdit > View et décochez la case Show buffers switcher pour masquer la liste déroulante. Cliquez sur OK, puis allez dans le menu Plugins > Plugins options puis Plugins > BufferTabs et cochez la case Enable BufferTabs by default. Trois lignes en-dessous, choisissez où vous voulez voir apparaître la barre d'onglets. Par défaut, elle est en bas (bottom), mais vous pouvez la mettre en haut (top), à gauche ou à droite (left ou right respectivement).
Je vous recommande vivement d'installer les plugins de gestion et de validation du XML. Pour cela, vous devrez installer la totalité des plugins suivant : Error List, SideKick et XML. Redémarrez jEdit et rendez-vous dans le menu Plugins > Plugins options puis Plugins > Error List et Cochez la case Automatically display on errors. À partir de maintenant, vous serez automatiquement avertis, à l'enregistrement des fichiers XML (DTD, XUL et RDF en particulier), des erreurs que vous auriez pu faire. Attention toutefois, les messages d'erreurs ne sont pas forcément très clairs. Ils vous indiquent qu'il y a une erreur, mais il n'est pas forcément évident de la trouver. Notez également que vous ne serez pas averti des erreurs sur les fichiers JS. Si vous avez une astuce, merci de me la faire savoir.
Si vous utilisez jEdit depuis maintenant un moment, vous aurez remarqué qu'il crée des fichiers. Il s'agit en fait de sauvegardes (backups). Si c'est une bonne chose de faire des sauvegardes, les faire au milieu des autres fichiers n'en est pas une, car vous devrez soit les supprimer manuellement, soit ils seront inclus dans les extensions, utilisant inutilement de la place. Pour régler cela, allez dans le menu Utilities > Global Options puis jEdit > Autosave & Backup et, dans le champ Backup directory, mettez un chemin comme par exemple c:\Documents and Settings\<NomD'UtilisateurWindows>\.jedit\Backups (le dossier n'a pas besoin d'exister et sera créé automatiquement).
La coloration syntaxique par défaut de jEdit est affreuse, en tous cas pour le XML. Vous pouvez améliorer ça en allant dans le menu Utilities > Global Options puis jEdit > Syntax Highlighting. Pour ma part, cherchant à imiter au maximum la coloration du visualiseur de code source de Mozilla, j'ai réglé les choses de la manière suivante :

Si vous avez installé le plugin Editor Scheme, vous pouvez également aller dans le menu Plugin > Editor Scheme > Scheme Selector et sélectionner la coloration que vous préférez.
JEdit permet d'ouvrir rapidement des fichiers grâce au File System Browser (remarque : il ne s'agit pas d'un plugin cette fois, il est inclus d'office dans jEdit). Dans le menu Utilities > Global Options puis jEdit > Docking, dans la ligne File System Browser choisissez où vous voulez qu'il apparaisse. Vous pourrez ainsi ouvrir facilement plusieurs fichiers du même dossier ou de dossiers différents.
Dans le menu Utilities > Global Options > Text Area décochez Wrap guide pour supprimer la ligne verticale au milieu de l'écran et End of line markers pour supprimer les points à la fin des lignes. Dans le menu Utilities > Global Options > General décochez Restore previously open files on startup pour que les derniers fichiers ne soient pas rouverts au démarrage (ce qui créerait des messages d'erreurs vu que vous allez en supprimer certains).
Nous voilà arrivé presque au bout de notre configuration de jEdit. La dernière chose que vous pouvez faire, c'est réorganiser la barre d'outils pour ne laisser que ce que vous utilisez. Allez dans Global Options puis Toolbar et supprimez tous les boutons inutiles. Les boutons que vous allez garder dépendent de vous. Si vous n'utilisez que les raccourcis clavier, vous pouvez le bouton Show tool bar. Vous pouvez également ajouter des boutons vers la macro Chars_to_unicode_Entities.bsh en cliquant sur Add... (bouton "+"), en cochant Command or macro et dans la liste déroulante en sélectionnant Macros puis la macro désirée. Vous pouvez choisir un bouton préconfiguré ou bien une image personnalisée. Vous pouvez aussi personnaliser les autres boutons.
Installez 7-zip.
Associez le avec les fichiers XPI. Pour cela, vous pouvez soit suivre la méthode décrite plus haut pour les fichiers XUL en pointant cette fois vers le gestionnaire de fichiers de 7-zip (7zFMn.exe), soit cliquer droit sur le fichier XPI et choisir dans le menu déroulant Ouvrir avec..., puis trouvez le fichier 7zFMn.exe. Cochez la case Toujours utiliser ce programme pour ouvrir ce type de fichiers pour que les xpi s'ouvrent automatiquement avec 7-zip.

Pour télécharger le fichier xpi de l'extension que vous souhaitez traduire, cliquez droit sur le lien d'installation et clic sur Enregistrer la cible du lien sous.... Les fichiers xpi sont utilisés pour installer les extensions de Mozilla. Ce ne sont en fait que des archives (fichiers compressés au format ZIP) contenant les éléments qui seront extraits du *.xpi ajoutés dans le dossier d'installation de votre application ou plus souvent de votre profil. Vous aurez compris que pour trouver les fichiers à traduire il va falloir les extraire de cette archive. Pour cela, nous allons utiliser 7-Zip : clic droit sur le fichier xpi et choisissez sur Extraire ici. Vous verrez alors apparaître plusieurs fichiers et dossiers.
Les fichiers install.rdf ne sont présent que dans les extensions pour Firefox, Thunderbird et Nvu. Le fichier install.js n'est pas toujours présent. En fait il n'est là que si l'extension est prévue pour la Suite Mozilla. Ces deux fichiers peuvent être présent les deux (c'est le cas la plupart du temps), ou bien en un seul exemplaire au minimum. Souvent, les extensions pour Mozilla contiennent aussi un fichier install.rdf pour que l'extension ne s'installe pas dans Firefox ou Thunderbird.
Et voici le résultat :
Il y a au minimum : un fichier nommé install.rdf qui contient les informations d'installation pour Firefox, Nvu et Thunderbird ; un fichier install.js qui contient le script d'installation pour la Suite Mozilla ; un dossier chrome contenant lui-même un fichier jar (aussi une archive !)
Depuis Firefox 1.5 et Thunderbird 1.5, il est fréquent de voir un fichier chrome.manifest qui indique les emplacements des fichiers de l'extension.
Il est fréquent qu'il y ait d'autres fichiers dans le xpi. En général il ne faut pas les toucher. Ne les oubliez pas, il faudra les recompresser dans l'archive le moment venu.

Deuxième étape, extraction des fichiers contenus dans le *.jar. Pour ce faire, ouvrez le dossier chrome et faites comme pour le xpi avec le jar (clic droit et Extraire ici). Trois dossiers sont extraits normalement : content, locale, skin. Sachez qu'en temps normal, tous les fichiers à traduire se trouveront dans le dossier "locale", mais il peut arriver que certains fichiers (ou partie de fichiers) du dossier "content" doivent être traduits, ou même que le dossier locale n'existe pas, il faudra alors rechercher les fragments à traduire dans chaque fichier du dossier "content" (autant vous dire que ce n'est pas de la rigolade, surtout si vous commencez à traduire des choses qu'il ne fallait pas traduire ! ). Voilà, vous êtes prêts à commencer , mais avant cela, un peu de théorie sur les fichiers que vous allez manipuler...
Tout est maintenant extrait. Voici la structure de l'extension :
Note : depuis les versions 1.5 de Firefox et Thunderbird, le fichier *.jar n'est plus nécessaire. Les dossiers normalement contenus dans l'archive jar sont alors dans un dossier nommé généralement chromeFiles.
Quoiqu'il arrive, gardez toujours la structure originale de l'extension, ne cherchez pas à recréer une archive jar si celle-ci n'était pas présente à l'origine.

XUL, DTD et RDFCe sont des fichiers XML de divers types. Vous devrez faire attention de bien les enregistrer au format utf-8. Faites attention à la syntaxe qu'il ne faut pas modifier (les guillemets en particulier, n'entrez pas de guillemets doubles si la chaîne est délimitée par des guillemets doubles). Comme vous travaillez en utf-8, ne vous inquiétez pas à propos des caractères accentués et saisissez-les tels quels (surtout pas d'entités HTML !)
JSCes fichiers ne sont pas des fichiers XML. Là aussi, faites très attention à la syntaxe qu'il ne faut pas modifier. Si vous devez entrer une apostrophe, protégez là avec un backslash (\), par exemple : 'L\'extension n\'est pas configurée correctement'. Deux guillemets entourent la chaîne, les autres sont dis échappés ou protégés par le backslash. Si vous ne le faites pas, la coloration syntaxique se modifiera et vous pourrez le détecter. Sinon vous aurez des erreurs lors de l'exécution.
Pour les caractères accentués et spéciaux, il convient de les entrer sous forme d'entités unicode échappées. Rassurez vous, derrière ce nom barbare se cache quelque chose d'assez simple. Plutôt que d'écrire é (un e accent aigu), vous entrerez \u00e9 (un backslash, un u et le code hexadécimal du caractère). Les lettres normales peuvent elles aussi être encodées, mais ce n'est pas nécessaire. Pour vous éviter de devoir apprendre par coeur ces codes, la macro Chars to unicode entities définie plus haut vous sera très utile. Exécutez-la simplement avant d'enregistrer, et le tour est joué ! Si vous oubliez de le faire, vous obtiendrez des caractères bizarres à la place.
PROPERTIESIls peuvent être encodés en utf-8. L'unicode échappé est également supporté mais n'est pas l'encodage recommandé pour ces fichiers.
MANIFESTLe fichier chrome.manifest est un fichier texte encodé en US-ASCII. Ne vous souciez pas de l'encodage, tant l'iso-8859-1 et l'utf-8 sont compatibles avec l'US-ASCII. Chaque ligne est simplement une déclaration d'emplacement où Mozilla doit aller chercher les fichiers.
locale

En extrayant le jar, vous avez normalement extrait un dossier nommé locale. Dans celui-ci, se trouvent les différentes langues. En général, il y a un dossier en-US. Faites-en une copie et renommez-le en fr-FR (Attention, les majuscules sont importantes !) Gardez le sous-répertoire interne s'il existe.
Tous les fichiers sont à traduire. Les fichiers DTD se présentent sous la forme suivante :
<!ENTITY previewColour.label "Aperçu :"> <!ENTITY dialog.title "Choix d'une couleur"> <!ENTITY background.label "Couleur de fond du tableau :"> <!ENTITY background.accessKey "f"> <!ENTITY alignCenter.tooltip "Centrer">
Vous devrez traduire uniquement ce qui se trouve entre les guillemets. Dans les fichiers PROPERTIES, traduisez uniquement ce qui est à droite du signe = (égal).
N'oubliez pas non plus de traduire le fichier content.rdf. Remplacez simplement les en-US par des fr-FR et vérifiez qu'il n'y a rien d'autre à traduire.
contentNormalement il n'y a rien à traduire dans ce dossier, car toutes les chaînes se trouvent dans le répertoire locale. Cependant, il arrive que certaines extensions ne contiennent pas de dossier locale. Vous devrez alors traduire ce qui se trouve dans ce répertoire. Ces extensions sont les plus difficiles à traduire. En effet, les textes à traduire se trouvent emmêlés dans le reste du code, et il n'est pas toujours facile de savoir ce qu'il faut traduire et ce qu'il ne faut pas.
En règle générale, dans les fichiers XUL, les chaînes contenues dans les attributs ou les éléments label sont tout ce qu'il faut traduire. Dans les fichiers JS, c'est beaucoup plus compliqué, et il faudra trouver vous-même quelles chaînes doivent être traduites et lesquelles ne le doivent pas sous peine de rendre l'extension non fonctionnelle.
La traduction d'extensions sans dossier locale n'est pas conseillée si vous n'avez pas d'expérience dans la traduction d'extensions. Il est donc recommandé de toujours vérifier que l'extension contient bien un dossier locale avant d'en commencer la traduction.
install.rdf)Commençons par le fichier install.rdf. Ce fichier décrit tout le contenu de l'extension. Il permet d'enregistrer ses diverses parties. Tout doit être renseigné. Si ce n'est pas le cas, une partie des fichiers sera tout simplement ignorée. Si au contraire le fichier pointe vers des ressources inexistantes, des erreurs de parsing se produiront.
Si l'extension contenait un dossier locale, vous devrez rajouter la ligne suivante :
<em:locale>locale/fr-FR/</em:locale>
Cela se fait en général juste en dessous de la ligne correspondante pour le en-US. N'oubliez pas de supprimer les autres lignes si vous les avez supprimées de l'extension. En fait, à chaque ligne doit correspondre un dossier portant le même nom dans le jar. Si le dossier fr-FR contient un sous-dossier contenant les fichiers, vous devrez indiquer celui-ci avec la ligne suivante (qui remplace la ligne donnée plus haut) :
<em:locale>locale/fr-FR/extension/</em:locale>
Autrement dit, chaque ligne doit pointer vers un répertoire du jar. Basez-vous sur ce qui est utilisé dans la ligne en-US, faites un copier-coller de cette ligne et modifiez simplement en fr-FR.
Les autres lignes à traduire sont la description (<em:description>) et si vous le souhaitez aussi le nom de l'extension (<em:name>, attention à rester cohérent dans tout le reste de la traduction).
Pour signer votre contribution à l'extension, vous pouvez mettre la ligne suivante si vous le souhaitez :
<em:contributor>Gérard Dupond (French translation)</em:contributor>
Ceci n'est bien entendu pas obligatoire.
Enfin, vous devriez aussi modifier (ou ajouter) la ligne <em:updateURL> qui définit où le programme ira chercher les mises à jour pour cette extension. Faites-le par exemple pointer vers Extensions.geckozone.org :
<em:updateURL>http://extensions.geckozone.org/updates/NomDeLExtension.rdf</em:updateURL>
chrome.manifest)Depuis la version 1.5 de Firefox, les auteurs d'extensions n'ont plus besoin d'enregistrer manuellement chaque répertoire à l'aide d'un fichier content.rdf, procédure longue et fastidieuse. Tout est maintenant regroupé dans le fichier chrome.manifest. Celui-ci doit déclarer tout le contenu de l'extension. Vous devrez donc ajouter une référence à votre traduction dans ce fichier.
Pour cela, trouvez la ligne référençant la localisation anglaise, par exemple :
locale longtitle en-US jar:chrome/extension.jar!/locale/en-US/extension/
Faites-en un copier coller et modifiez une des deux lignes en :
locale longtitle fr-FR jar:chrome/extension.jar!/locale/fr-FR/extension/
(Il suffit de changer les deux en-US en fr-FR). Notez que vous pourriez enregistrer votre localisation française dans un répertoire ne contenant pas fr-FR. Cela est toutefois déconseillé pour d'évidentes raisons de compréhension (comment savoir que la localisation française est dans un répertoire zxhjiq par exemple ?)
install.js)Cette traduction est probablement la plus délicate. Il n'y a pas de structure générale constante pour ce fichier. Certains sont extrêmement simples et se réduisent au strict minimum (voir par exemple le script d'installation de Tab Clicking Options), d'autres au contraires sont très longs, posant de nombreuses questions et proposant de nombreux choix à l'utilisateur (voir par exemple le script d'installation d'Adblock). Traduisez toutes les chaînes assez longues qui vous semblent devoir être traduite, et essayez de déduire celles qu'il faut traduire. Une des chaînes les plus souvent présentes propose le choix d'installer l'extension dans le profil ou le dossier d'installation. Vous devrez la traduire, en sachant que souvent le nom de l'extension est exprimé par la constante APP_DISPLAY_NAME qu'il faudra caser au bon endroit.
Plus important, si l'extension contient un dossier locale dans le fichier jar, il faut l'enregistrer. Si l'extension ne contient pas de dossier locale, il est évident que vous ne devrez pas l'enregistrer et sauter cette étape. Souvent, c'est une ligne du type :
registerChrome(LOCALE | PROFILE_CHROME, getFolder(chromeDir,"extension.jar"), "locale/fr-FR/extension/");
Mais il n'y a pas de règles, c'est à vous de voir. Parfois toutes les langues se trouvent sur une ligne, parfois pas. En général, vous devez trouver la ligne contenant en-US, la copier sur la ligne juste en-dessous et dans cette nouvelle ligne placer fr-FR à la place. Si vous n'avez pas gardé le dossier en-US, ou d'autres langues dans le dossier locale du jar, ne laisser pas la ligne correspondante dans le script d'installation, car cela risquerait de poser des problèmes chez les utilisateurs de cette langue.
jar
Commencez par compiler le jar. Pour cela, il suffit de rezipper les dossiers précédemment extraits. Procédez de la manière suivante : sélectionnez les dossiers à compresser, faites un clic droit sur l'un d'eux et choisissez Ajouter à l'archive.... Ensuite, dans le champ Archive: mettez le nom du fichier jar (exact, tel qu'il était dans l'extension originale). Vérifiez que le format de l'archive est bien ZIP et appliquez le taux de compression que vous voulez.

Une fois que l'archive est compressée, supprimez les dossiers content, locale et skin (ou déplacez-les) afin de ne pas les avoir en double dans l'archive finale. Le dossier chrome ne doit contenir plus que l'archive jar.
xpi
Remontez d'un cran dans l'arborescence, et procédez de la même manière pour recompiler l'extension elle-même. Entrez directement le nom final. Donnez une extension de fichier en xpi pour que Firefox sache que c'est une extension, et ajoutez la mention de la langue française pour savoir que ce fichier est traduit.
Donnez un nom représentatif à ce fichier, le nom de l'extension complet et le numéro de version sont un minimum (même si beaucoup d'auteurs utilisent des noms raccourcis et ne mentionnent pas le numéro de version, ici nous travaillons avec de nombreuses extensions et il est nécessaire que le nom permette de retrouver l'extension).

Commencez par installer l'extension et vérifiez qu'elle fonctionne correctement. Testez tout à fond, ne laissez rien au hasard. Ceci permet de repérer d'éventuelles chaînes non traduites.
Il faut ensuite tester l'extension dans tous les logiciels qu'on prétend supporter. Par exemple si l'extension est pour Mozilla et Firefox, il faut tester le fonctionnement pas seulement dans Firefox mais aussi dans Mozilla, car on oublie trop souvent de modifier le script install.js pour Mozilla, et ça ne fonctionne pas. Cela évitera que des débutants ne puissent pas utiliser une extension. Ce point est particulièrement important, c'est ce qui fait la qualité d'une traduction. Cependant, il n'y a pas besoin de faire un test à fond, les chaînes de traductions étant les même, il est juste question de vérifier le bon fonctionnement de l'extension.
Si vous êtes traducteur, vous devriez vraiment installer Mozilla même si d'habitude vous n'utilisez que Firefox et que vous avez traduit une extension pour Firefox et Mozilla. Par respect pour les utilisateurs d'autres Mozillas que vous, ne supprimez pas simplement le support de Mozilla. Si vous ne voulez (ou ne pouvez) absolument pas l'installer, alors demandez à quelqu'un de tester pour vous.
Il ne faut pas non plus oublier de contacter les auteurs ! Nous ne voulons pas qu'il y ait de problèmes avec un auteur qui ne serait pas au courant que son extension est traduite et disponible ici. De plus, il est avantageux de faire inclure la traduction dans l'extension originale, ce qui n'est pas possible si les auteurs n'ont pas connaissance de la traduction. C'est donc une étape importante.
Pour publier une extension sur ce site, il faut y être inscrit. Contactez un administrateur pour savoir comment faire. Toutes les étapes (peu nombreuses rassurez-vous) vous seront communiquées, et vous pourrez rapidement voir votre extension publiée. Vous pouvez également laisser un message sur le forum Applications spécial Gecko du forum de Geckozone pour annoncer une nouvelle traduction.
Quelques petites remarques, astuces et mise en garde d'ordre général pour terminer.
utf-8Certains éditeurs de textes vous proposeront d'enregistrer vos fichiers utf-8 précédés d'une signature ou d'un cookie (selon les logiciels). Cet encodage ajoute en fait une petite signature de quelques octets (FE FF) qui marquent le fait qu'il s'agit d'un fichier encodé en utf-8, et indique également l'ordre d'encodage (high-endian ou low-endian). Sans cela, à l'ouverture, un éditeur ne peut pas savoir de quel type d'encodage il s'agit. Pour en savoir plus sur les encodages, je vous recommande la lecutre de l'article de Joël Spolsky : Le minimum absolu que tout développeur doit absolument, positivement savoir sur Unicode et les jeux de caractères
Cependant, Mozilla et ses dérivés ne supportent pas cette signature. Cela provoque des erreurs de parsing difficiles à localiser. Vous devez donc utiliser uniquement l'utf-8 "normal". Dans jEdit, il s'agit de UTF-8. La version signée à ne pas utiliser est UTF-8Y.
xpiSi vous avez associé les fichiers xpi avec le gestionnaire de fichiers de 7-zip, un simple double-clic sur l'extension l'ouvre dans 7-zip. Vous pouvez y naviguer et vérifier que tous les fichiers sont présents et que l'arborescence est bonne. Vous pourrez même vous balader dans le jar.
Plus intéressant encore, vous pouvez modifier des fichiers directement sans devoir les extraire. Double-cliquez dessus pour les ouvrir dans l'éditeur de texte associé. Vous pouvez alors les modifier à la volée et très rapidement. Sauvegardez et quittez l'éditeur. Revenez à 7-zip et acceptez la modification. Attention cependant, aucun autre fichier ne doit être ouvert dans l'éditeur de texte, sans quoi l'enregistrement ne fonctionne pas (pour une raison qui me reste inconnue). Ce mode de fonctionnement peut s'avérer plus fastidieux dans jEdit que dans certains autres éditeurs de texte, mais jEdit a d'autres moyens de procéder tout aussi efficaces.
xpiPour obtenir des fichiers xpi de taille la plus petite possible, il est recommandé d'archiver le fichier jar sans aucune compression (taux 1:1) et de compresser le xpi avec la compression maximale (certains logiciels sont plus efficaces que d'autres. 7-zip à une bonne réputation à ce niveau).
L'avantage est d'économiser la bande passante du serveur. L'économie peut s'avérer substantielle et en tous les cas est non négligeable. L'avantage pour la vitesse de démarrage reste, elle, à démontrer.
Il vous arrivera très certainement de devoir mettre à jour une de vos traductions. Vous aimeriez certainement reprendre votre ancienne traduction, mais l'auteur a ajouté de nouvelles entités un peu partout, ce qui rend le travail fastidieux et pénible.
Heureusement, il existe un petit script perl qui se chargera de générer pour vous le fichier de locale. Il prend le fichier original de la version courante et votre ancienne traduction. Son fonctionnement est très simple et très bien expliqué. Vous n'aurez plus qu'à traduire les nouvelles entités.
Comme vous pouvez le constater, traduire une extension n'est généralement pas très compliqué. Cela demande surtout un peu de rigueur et surtout des outils bien configurés et bien utilisés. J'espère que cette méthode de traduction vous permettra d'y arriver et vous souhaite une bonne chance pour vos traduction.
Si vous avez des questions à propos de ce tutoriel, des remarques, des commentaires ou des critiques (si possible constructives), que quelque chose n'est pas clair ou vous choque, que vous avez trouvé une erreur, un défaut ou un problème, n'hésitez pas, contactez Calimo. Ne soyez pas timide, vos remarques pourront m'aider à améliorer ce tutoriel et donc aider les futurs traducteurs.
Ce tutoriel est basé sur celui proposé par Jojaba. De nombreuses parties sont reprises à l'identique ou presque. Les principales modifications concernent l'utilisation de jEdit (à la place de PSPad). Il a d'ailleurs été réalisé à l'aide de ce logiciel.
Goofy propose quelques éléments supplémentaires :