Comment traduire un module : l10n, poEdit ?

Introduction à l'éditeur PoEdit (site de PoEdit)

Traduire Drupal ou un de ses modules c’est mettre en Français des phrases qui sont en Anglais. Pour cela nous allons utiliser l'éditeur PoEdit.

PoEdit est un éditeur de catalogues textuels (fichiers ayant l'extension .po). C'est une assistance précieuse à la traduction. Pour démarrer une traduction à partir de zéro, nous avons besoin d’ouvrir un fichier pot qui contient toutes les chaînes de caractère à traduire, et créer un fichier fr.po dans lequel nous ferons la traduction.

Qu'est-ce qu'un fichier pot

Le fichier pot (PO Template) est un modèle de fichier po. Le format d'un fichier pot est semblable à celui d'un fichier po, mais il n'y a que le texte Anglais d'origine et aucune information sur la langue ou les traductions. Les fichiers po sont créés à partir des fichiers pot.

Qu'est-ce qu'un fichier po ?

Toutes les chaines de caractères qui doivent être traduites sont stockées dans des fichiers .po qui contiennent des informations sur la langue, sur l'identité des traducteurs et les phrases originales et traduites. Il en existe deux types :

1) ceux qui utilisent

msgid ""
msgstr ""

Les phrases originales commencent par msgid et sont suivies de leur traduction qui commence par msgstr. Les informations concernant la langue et les traducteurs se trouvent au début du fichier po. Si aucune traduction n'est disponible, la partie msgstr reste vide. Le signe # signifie que la ligne est un commentaire.

2) et ceux qui utilisent :

msgctxt "Comment(klettres.desktop)"
msgid " a KDE program to learn the alphabet"
msgstr "Un programme KDE pour apprendre l'alphabet"

Le principe est le même sauf que le champ msgctxt "" contient des informations qui permettent de reconnaître quelle est la chaîne de caractère à traduire.

Si vous ouvrez un fichier po avec un éditeur tel que « Writer » d'Open Office, vous pourrez voir les chaînes telles qu'elles sont décrites ci-dessus.

Pour le traducteur utilisant un logiciel de traduction tel que poEdit ou Lokalize, cela sera transparent.

Comment traduire les fichiers po ?

Théoriquement, la seule chose nécessaire pour traduire un po est un éditeur de texte. Vous ouvrez le fichier PO avec et vous complétez toutes les msgstr vides par une traduction. Cela devient vite difficile à gérer, on a du mal à voir quelles sont les chaînes traduites, brouillons ou non traduites. Attention, cette méthode est vivement déconseillée !

Le mieux est d'utiliser un logiciel spécialisé, simple d'utilisation et comportant éventuellement un correcteur d'orthographe et un traducteur automatique permettant de réutiliser les traductions qui ont déjà été faites. Ce logiciel est PoEdit.

Les variables

Au sein d'un fichier po les variables sont représentées par un % suivi d'une lettre ou d'un nombre ou par &<nom_de_variable>;.

Exemple :

msgid "Insert boot disk %u."
msgstr "Insérer le disque d'amorçage %u."
msgid "&productname; Documentation"
msgstr "Documentation de &productname;"

Si une chaîne de caractères comporte une variable, il faut qu'elle figure aussi dans la chaîne traduite. On procède généralement par copier/coller de la chaîne à traduire vers la chaîne en cours de traduction. Vous pouvez également utiliser l'onglet « édition » /  « copier l'original vers la traduction » ou « Alt-C » de l'éditeur Poedit.

Chaînes de formats

Dans chaque fichier po on peut utiliser plusieurs chaînes de formats. La plupart d'entre elles sont identiques à des balises HTML. Toutes ces chaînes sont obligatoires dans votre traduction. Si l'on omet un chaîne, la traduction ne franchira pas le contrôle de syntaxe.

   

\n

nouvelle ligne

Si toutes les lignes, excepté la dernière, se terminent avec \n dans la chaîne originale, dans la traduction on peut seulement avoir la dernière sans \n même si le nombre de lignes varie en plus ou en moins par rapport à la chaîne originale. Toutes les autres lignes doivent se terminer par \n.

<b>un_texte</b>

texte gras

 

<i>un_texte</i>

texte italique

 

<qt>un_texte</qt>

  

Pluriels

PoEdit affiche des onglets dans la zone de traduction (en bas de l'écran) pour traduire les différentes formes au pluriel et au singulier. Attention : il arrive parfois qu'il y ait confusion entre pluriel et singulier. Bien s'assurer que l'on est sur le singulier quand on effectue une traduction au singulier (idem pour le pluriel).

Vérifier la syntaxe

Avant de soumettre un fichier PO il faut vérifier sa syntaxe. PoEdit le fait pour vous lors de la sauvegarde.

Installer PoEdit : ici.

Configurer PoEdit

« Personnaliser » : lors du premier lancement de PoEdit, vous devez renseigner deux champs avec votre Nom et votre adresse courriel. Ces informations servent à identifier le dernier traducteur dans le fichier traduit.

Onglet « Fichier/Préférences/Editeur » : vous décochez la première option pour éviter que le PoEdit ne compile le fichier mo correspondant au ficher sur lequel vous êtes en train de travailler. Les fichiers mo sont utilisés pour les logiciels compilés (ceux écrit en C, C++...) ; Drupal ne sait pas gérer ce format.

Onglet « Mémoire de traduction ». À quoi sert-elle ? Imaginons que vous ayez traduit le module image version 4.6. Le travail effectué est distribué. Puis l'auteur du module propose la version 4.7. Vous vous remettez à la tâche et reprenez à zéro bien que la majorité des expressions soient traduites dans la version 4.6. La "Mémoire de traduction" permet d'enregistrer toutes les traductions faites précédemment ; ainsi, lorsque vous commencerez une nouvelle traduction, vous pourrez utiliser l'option "Traduction automatique avec TM" pour traduire toutes les expressions rencontrées auparavant.

Pour obtenir la totalité des traductions disponibles sur votre site, ajoutez le fichier fr.po : l'extraction se fait via le « menu administration », « traduction de l'interface », « exporter », sous « exporter une traduction » cliquez sur « exporter », puis sauvegarder dans votre répertoire traductions PoEdit.

Pour créer la base de données, cliquez sur le bouton "Ajouter" et choisissez "fr", puis sur le bouton "Construire la base de données". Choisissez les répertoires dans lesquels sont stockées vos traductions. Cliquez sur Fin. Poedit analyse tous les fichiers po qui sont dans les répertoires que vous avez sélectionnés et construit sa base de données.

La configuration de PoEdit est terminée. Vous pouvez désormais attaquer la traduction d'un module.

Démarrer une traduction

Les démarches à suivre

Avant de vous lancer dans la traduction d'un module, vous devez vous assurer que celui-ci n'a pas déjà été traduit (en partie ou en totalité).

Récupérer un fichier .po

Deux possibilités :

  • soit vous avez besoin du module à traduire pour votre site, vous l'installez, et Drupal se charge de rapatrier le fichier textuel correspondant. Dans ce cas, aller sur le menu administrateur, construction du site, traduction de l'interface, extraire. Attention : toujours travailler avec la dernière version du fichier à traduire.

    Déplier « Répertoire "sites/all/modules », puis « Répertoire "sites/all/modules/contrib » rechercher le module et le sélectionner, en bas de page choisir « Fichier gabarit pour les traductions en Français » et « Inclure les traductions », cliquez sur extraire, sauvegarder puis ouvrir le fichier avec Poedit. 

  • Soit vous faites un export ou un téléchargement à partir de Localize : ici. Sélectionnez la langue (french) puis le module et enfin la version qui vous intéresse.

Traduire

Toujours se référer au glossaire : ici et au glossaire interprojet : ici.

Cliquez sur le nom du fichier à traiter puis demander à Poedit de faire une pré-traduction (souvent approximative) à l'aide de ce qu'il possède déjà dans la base de données des traductions. Cliquez sur l'onglet «Catalogue/Traduire automatiquement avec TM». Les chaînes traduites apparaissent en marron/jaune. Voici quelques exemples de traductions automatiques :

list -> liste
 add gallery -> Ajouter une langue
 Directory to scan -> répondre à ce commentaire

Dans ces 3 exemples, le premier donne la bonne traduction. Il faut alors lui enlever sa marque «approximatif» an faisant Alt+U ou en allant dans «Edition/La traduction est approximative». De cette manière, le message est considéré comme traduit et affiché sur fond blanc.

La seconde traduction est fausse, mais la traduction donnée est proche de ce qu’elle sera. Reste à le modifier puis valider la traduction via Alt+U.

La troisième est complètement fausse et il nous faut la refaire.

Il ne nous reste plus qu’à traduire tout ce qui ne l’a pas été.

Ne pas oublier de mettre à jour votre base de données Poedit de façon à inclure les nouvelles traductions via « Préférences, Mémoire de traduction, Construire la base de données, Suivant » puis en complétant la liste des fichiers.

Source documentaire : opensuse