NB : les plus pressés peuvent commencer leur lecture au point III
Participer à la traduction française d'Ubuntu
I. Une courte introduction au processus d'internationalisation et de localisation
Une des grandes forces du logiciel libre est sa capacité à l'internationalisation (i18n pour les intimes). C'est ce qui permet d'avoir des logiciels en breton, catalan, xhosa, wolof ou autres langues qui peuvent sembler exotiques mais qui sont un facteur d'adoption important des logiciels libres.
La plupart des projets libres utilisent un outil appelé gettext1 pour extraire les chaînes (bouts de texte) à traduire du code source. Ces chaînes sont regroupées dans un fichier *.po qui est un simple fichier texte contenant des chaînes à traduire (msgid) et des chaînes traduites (msgstr). La localisation (l10n pour les intimes) consiste à modifier ce fichier .po pour traduire les messages de l'anglais vers sa propre langue. Bien que l'on puisse modifier un fichier .po avec n'importe quel éditeur de texte (vi, nano, gedit, emacs, etc.), il existe des logiciels spécialisés, comme Kbabel2 (KDE3), lokalize3 (KDE4), gtranslator4 (GNOME), et autres, permettant une bien meilleure gestion des traductions. Il existe également des outils de traduction avec une interface Web comme Pootle5 (logiciel libre) ou Launchpad (non libre pour l'instant), présentant les textes à traduire ligne par ligne.
Ces fichiers .po offrant une manière souple et puissante d'effectuer des traductions, des outils ont été développés par diverses équipes pour les utiliser également pour traduire les documentations. Les documentations sont publiées sous divers formats : pages de manuel, pages info, pages au format XML Docbook, etc. Les traduire directement exigerait que le traducteur maîtrise les spécifications techniques de ces différents formats. Heureusement grâce à ces outils, le traducteur n'a que de simples fichiers .po à gérer sans vraiment se soucier du format final de publication.
Une fois traduits, partiellement ou totalement, les fichiers .po sont intégrés dans les sources du projet. Lorsque le projet est compilé pour fournir à l'utilisateur final un paquet directement installable, ces fichiers sont compilés en fichiers .mo. Sous Ubuntu vous retrouverez ceux-ci principalement dans /usr/share/locale-langpack/fr/LC_MESSAGES. Votre système étant réglé pour utiliser une langue par défaut, probablement le français dans votre cas, il saura où aller chercher les messages traduits pour que vos applications et votre documentation apparaissent dans la langue de votre choix.
II. Comment le processus de localisation est-il géré en pratique ?
Pour de petits projets, il n'y a parfois qu'un seul traducteur qui se charge d'envoyer son travail au responsable du projet. Les paquets logiciels issus de ce type de projet contiennent en général directement un ensemble de traductions dans diverses langues.
Pour de plus gros projets, comme GNOME, KDE ou XFCE, il existe des équipes de traducteurs expérimentés. Le travail est réparti et coordonné au sein de ces équipes par un ou plusieurs responsables ; des outils et des processus, notamment de relecture, y sont développés pour assurer la qualité des traductions. Voici une liste non exhaustive d'équipes de traducteurs francophones auxquelles vous pouvez proposer votre participation :
Dans la pratique, le travail au sein de ces équipe fonctionne toujours à peu près de manière identique : chaque traducteur est en charge d'un ou plusieurs fichiers .po ; lorsqu'il a terminé et vérifié son travail il renvoie ses fichiers au responsable ; après relecture le fichier est « commité »,, c.-à-d. copié dans les sources du projet.
III. Et pour Ubuntu ?
Ubuntu utilise un système très particulier pour gérer la localisation : Launchpad Translations, connu aussi sous le doux nom de Rosetta. Il s'agit en fait d'une interface Web pour traduire les fichiers .po. Les traducteurs au lieu d'avoir à télécharger, modifier un fichier .po avec un éditeur de texte ou un outil dédié, puis de renvoyer ce fichier, peuvent grâce à un simple navigateur Web proposer leurs traductions. Rosetta présente au traducteur pour chaque application ou documentation un formulaire avec les chaînes à traduire, les suggestions de traductions déjà effectuées, et un champ de texte pour proposer une traduction.
Ce système semble très simple et très efficace, cependant il pose un certain nombre de problèmes majeurs.
Tout d'abord Launchpad Translations propose toutes les applications et documentations présentes dans le dépôt logiciel principal (main) d'Ubuntu, à la traduction. Pour cela il récupère avant chaque nouvelle version majeure les fichiers .po présents dans les sources des différents projets. Or quasiment toutes ces traductions sont déjà prises en charge par une équipe de traduction en amont7; celle de GNOME, de KDE, le TP, etc. Si l'on utilise Launchpad pour compléter ou modifier ces traductions, ce travail sera effectué inutilement en doublon et ne sera pas retransmis aux équipes en amont8.
De plus, alors que les applications spécialisées pour modifier des fichiers .po proposent de nombreuses fonctionnalités permettant d'être plus productif (rechercher/remplacer, mémoire de traductions, dictionnaires à intégrer, etc.) et d'assurer la qualité et la cohérence des traductions (vérificateurs de syntaxe, d'orthographe, etc.), Launchpad ne dispose d'aucun de ces mécanismes et ne permet pas, ou difficilement, de voir l'intégralité d'un fichier .po.
Enfin, chacun pouvant intervenir sur n'importe quel bout de traduction, il est très difficile de mettre en place un mode de fonctionnement analogue à celui des équipes en amont (mode qui a largement prouvé son efficacité), c'est à dire assigner à chaque traducteur la responsabilité de certaines applications ou documentations et mettre en place un processus de relecture.
Pour résumer, Launchpad Translation a pour énorme avantage sa simplicité et sa facilité d'accès. Cependant c'est également un inconvénient, et cet outil est actuellement peu adapté pour assurer une bonne qualité des traductions.
IV. L'équipe de traduction d'Ubuntu en français : ubuntu-l10n-fr
Pour les raisons invoquées plus haut et pour assurer une qualité et une efficacité optimale des traductions pour Ubuntu, nous avons, à l'instar de nombreuses autres équipes, la politique suivante :
- nous ne traduisons que les applications, et documentations, spécifiques à Ubuntu et ses dérivées et nous encourageons les contributeurs à proposer leur participation directement aux équipes en amont ;
- seuls les traducteurs expérimentés, membres de l'équipe, peuvent valider les traductions effectuées sur Launchpad ; les contributeurs ne peuvent que faire des suggestions. Bien entendu, les contributeurs motivés pourront devenir membres « officiels » de l'équipe ;
- tous les volontaires doivent, après avoir créé un compte sur Launchpad et signé le code de conduite, s'inscrire sur notre liste de diffusion : https://lists.ubuntu.com/mailman/listinfo/ubuntu-fr-l10n. Cette liste permet de coordonner le travail des contributeurs. C'est aussi un lieu d'entraide et d'échanges conviviaux entre contributeurs ;
- tous les volontaires doivent lire et utiliser la documentation mise à leur disposition sur le Wiki francophone. Ils y trouveront notamment la liste des traductions à effectuer, des aides à la traduction, un glossaire, etc.
L'équipe a toujours besoin de traducteurs et de relecteurs et toutes les bonnes volontés sont les bienvenues.
(Ce texte est sous
WTFPL v2)