Créer un fichier de traduction .po sous WordPress

Les thèmes et les plugins WordPress sont développés en anglais et doivent faire l’objet d’une traduction française pour être compréhensible du plus grand nombre. Ce tutoriel abordera 2 cas : quand un fichier .po existe déjà et quand il est absent alors même que le thème ou le plugin dispose de chaînes traduisibles.

Cas n°1 – Un fichier .po est présent

C’est le cas le plus courant et le plus simple. Le thème ou le plugins dispose d’un fichier .po généralement situé à la racine du dossier ou dans un sous-dossier /languages ou /lang.

Capture d'écran - Présence d'un fichier .mo / .po
Poedit est LE logiciel de traduction .po qui générera vos .mo

Pour procéder à la traduction, vous devez éditer ce catalogue de chaînes de traduction à l’aide Poedit. Ce logiciel multiplateforme vous permettra de générer un fichier compilé .mo qui servira à afficher les données traduites sur votre site.

Pour en savoir plus, reportez-vous au tutoriel dédié à Poedit.

Il est important de renommer votre fichier .po / .mo en fonction du préfixe de langue. Par exemple, pour le français on indiquera fr_FR.mo et fr_FR.po sinon impossible de faire fonctionner la traduction.

Cas n°2 – Aucun fichier .po existant

Ce cas est le plus complexe car il requiert des étapes de configurations supplémentaires dans Poedit. Dans cette situation, il n’existe aucun fichier de traduction pré-configuré mais le thème ou le plugin est annoncé comme étant prêt à traduire.

Notez que cette manipulation vaut aussi bien pour les fichiers .pot à la seule différence qu’un fichier .pot n’est autre qu’un modèle qui nous servira à créer un .po.

Étape n°1 – Récupération des sources de traduction

Rapatriez dans un premier temps le dossier de votre thème ou du plugins à traduire sur votre bureau. Ce sera plus simple par la suite.

Étape n°2 – Création d’un nouveau catalogue

Lancez ensuite Poedit puis faites FichierNouveau catalogue.

Remplissez les différents champs qui viennent d’apparaître dont :

  • Nom et version du projet : par exemple, Mon Thème 1.0 ;
  • Equipe de traduction : indispensable de spécifier l’auteur pour conserver une trace si le projet est mis à disposition de tous (logique open-source) ;
  • Adresse électronique de l’équipe : idem que précédemment, utile pour prendre contact et poser des questions au traducteur ;
  • Langue : la langue de traduction, ici le français ;
  • Jeu de caractères : toujours sur UTF-8 tout comme WordPress ;
  • Jeu de caractères du code source : idem ;
  • Formes plurielles : indiquez nplurals=2; plural=(n > 1) ;
Capture d'écran - Création d'un catalogue sous Poedit
Création d’un catalogue sous Poedit

Passez donc à présent sur l’onglet Chemins de sources. C’est ici que nous allons indiquer où se trouve le dossier du thème ou du plugin à traduire.

Cliquez donc sur le second bouton pour créer un nouvel emplacement. Dans le champ relatif au chemin, indiquez le répertoire de votre dossier. Par exemple :

/Volumes/DATA/Desktop/twentyeleven

Capture d'écran - Poedit, emplacement des sources
Le chemin des fichiers à traduire sous Poedit

Continuez maintenant sur le dernier onglet Mots-clés source.

Il faut savoir qu’une chaine de traduction est facilement identifiable dans le code PHP d’un thème ou d’un plugin WordPress. En effet, elle est précédée d’un mot-clé comme __ ou _e ce qui nous donne à titre d’exemple :

<h1><?php _e('Hello World' , 'twentyeleven'); ?></h1>
<h1><?php echo __('Hello World' , 'twentyeleven'); ?></h1>

La fonction est formée d’une part de la chaine à traduire et d’autres part du domaine du thème ou du plugin. Ce domaine permet de regrouper les chaines issus d’un même projet – utilisé notamment par des plugins comme WPML qui gère les sites multilingues.

Dans la première ligne, le _e ajoute automatiquement le echo et affiche donc la traduction. Le second avec __ ne le fait pas.

Pour aller plus loin et comprendre comment gérer les variables dans les chaînes de traduction, reportez-vous à I18n – Internationalisation pour WordPress. Vous y apprendrez que la gestion des langues sous WordPress respecte les standards PHP et repose sur la librairie Gettext.

Mais poursuivons en ajoutant  les mots-clés suivants : _e__ (double underscore, le tiret sous le 8), _x et _n.

Capture d'écran - Poedit, ajout des mots-clés à traduire
Ces mots-clés nous serviront à détecter les chaînes à traduire

Validez le tout en cliquant sur OK. Votre catalogue est fin prêt… mais il ne contient toujours pas les chaînes à traduire !

Étape n°3 – Récupération des chaînes de traduction

Nous allons demander à Poedit de scanner l’intégralité du dossier pour rechercher les chaînes à traduire en fonction des mots-clés spécifiés.

Pour ce faire, cliquez sur Mettre à jour.

Capture d'écran - Mise à jour des sources via Poedit
La mise à jour des sources est utile à chaque nouvelle version d’un thème ou d’un plugin pour ajouter les nouvelles chaines – ce qui n’est pas toujours fait par les auteurs

Bingo ! Toutes les traductions sont apparues… ou du moins les chaînes à traduire car maintenant c’est à vous de travailler.

Et n’oubliez pas de transférer les fichiers .mo à l’aide d’un client FTP dans le dossier du thème ou du plugin concerné.

Cas n°3 – Le thème ou le plugin n’est pas translation-ready

C’est le cas le plus rare… premièrement, contactez le développeur pour qu’il fasse un effort ! Deuxièmement, pour gagner du temps ou si la réponse est négative, créez vous mêmes les chaînes à traduire en rajoutant les mots-clés… cela demande de bonnes compétences en matière d’internationalisation.

Dans tous les cas, rappelez-vous d’une chose concernant la gestion des traductions : ne jamais effectuer une traduction directement dans le code, jamais !