Comment traduire un module ?

Onglets principaux

La documentation Drupal 6 n'est plus maintenue et en cours de dépublication.

Cette page de livre est destinée à vous présenter la méthode de création des fichiers nécessaires a la traduction de modules de Drupal, elle est une version condensée du guide du traducteur.

Depuis la version 4.5.0, Drupal est doté du module "locale" qui permet d’utiliser des fichier de type GNU gettext pour assurer la traduction en plusieurs langues. On pourra trouver la traduction française et son état d’avancement sur la page des traductions.

1. Traduire la version officielle de Drupal:

Pour cela, il faut tout d’abord récupérer les fichiers .pot, ensuite installer un logiciel comme poedit et enfin s’atteler à la traduction suivant les règles énoncées : Ressources et philosophies de traduction.

2. Traduire les modules hors distribution:

Pour la distribution de Drupal, il n’y a pas de problèmes, les fichiers .po sont créés automatiquement, cependant, pour les modules, généralement ce n’est pas le cas.
Tout d’abord, vérifiez dans le CVS qu’un fichier .pot existe ou non (dans le répertoire du module, il y aura ou non un dossier po). Cependant, il peut être bien de régénérer soi même ce fichier afin d’éviter les lacunes.
Pour ce faire, on utilisera le script extractor.php. Les instructions sont dans le fichier README.txt, sinon il suffit de taper depuis la ligne de commande :

php extractor.php .php includes/.inc modules/.module themes///

C’est un example pour extraire les fichier pot de Drupal. Generalement pour un module, un simple

php extractor.php mon_module.module

suffit.
Un petite note pour les développeurs de modules, n’oubliez pas de d’appeler toutes vos phrase via la fonction t(‘Hello World’) pour que cette chaîne soit traduite.

3.Trucs et astuces :

Statut de traduction :
Malheureusement il ne s’applique que pour la traduction de la distribution de Drupal, néanmoins, il peut être consulté.

Regrouper plusieurs fichier po en un seul:
Mettez-les tous dans un même dossier et cette commande (nix seulement) fera le travail.

$ msgcat --use-first general.po [^g].po | msgattrib --no-fuzzy -o fr.po

Recycler des traductions anciennes:
Afin d’optimiser une traduction en cours, il peut être utile de récuperer une traduction ancienne pour éviter de retraduire des phrases identiques.
Je vous conseilles de vous referer au guide.

Commentaires

Concernant le recyclage des traductions anciennes, le guide précise de faire une concaténation de fichiers po déjà traduits.

Il serait intéressant de disposer de cette concaténation sur le site, afin que l'on ne fasse pas tous la même opération et que l'on ai toujours sous la main une version à jour.