Comment Traduire un Thème ou Plugin WordPress

La traduction d’un thème ou plugin WordPress est pour beaucoup de gens une procédure compliquée, longue, très technique, uniquement pour les développeurs.

Pour faciliter cette tâche à ces personnes-là et surmonter ces difficultés, nous allons voir à travers ce tutoriel comment parvenir à traduire tout seul son joli thème (ou plugin) qui a peut-être pu nous coûter une petite somme d’argent.

Petit hors sujet pas très HS. Récemment, j’ai publié un tutoriel sur la création d’une Job Board avec WordPress. Dans ce tutoriel, j’ai utilisé le plugin WP Job Manager qui a l’avantage d’être traduit en Français. Or, malheureusement, comme je l’avais indiqué dans l’article, la traduction n’était pas assez fidèle au sens des mots ou alors parfois on y trouvait des fautes de frappe (une seule faute repérée a priori).

Il y a quelque temps, un des lecteurs du blog s’est arrêté devant ces erreurs de traduction et avait besoin de les corriger. En effet, en tant que détenteur d’un site d’offre d’emploi sérieux, on ne peut pas se permettre de présenter à ses visiteurs internautes une Job Board avec du texte insensé. Le plugin présente également des erreurs de traduction dans la partie administration, ce qui peut porter à confusion l’administrateur.

La question qui se pose alors est : Comment corriger ces erreurs de traduction et plus généralement comment traduire son thème ou plugin WordPress si ça n’a pas déjà été fait par quelqu’un d’autre ?

On commencera tout d’abord par voir comment traduire un thème ou plugin de manière générale, puis une fois ceci acquis, la modification d’une traduction se fera d’une manière quasi similaire.

Traduire un Thème ou Plugin WordPress avec Poedit

Dans la suite du tutoriel je parlerai de la traduction du thème, mais ça reste exactement le même processus à suivre pour le plugin.

Selon votre thème, la traduction de celui-ci peut-être assez rapide à faire. Ceci est dans le cas où le thème est déjà prêt à être traduit. Comment savoir cela ?

Dans le dossier de votre thème, vérifiez s’il existe au moins deux fichiers possédant les extensions .po et .mo. Ceux-ci se trouvent généralement dans un répertoire intitulé « languages » ou « lang ». Ils peuvent aussi se trouver à la racine de votre thème. Si aucune traduction n’a été faite au thème, vous trouverez uniquement le fichier .po.

Si vous ne trouvez ces fichiers nulle part dans votre thème, alors cela signifie que le concepteur de votre thème n’a pas pris le temps de mettre en place un thème qui soit prêt à la traduction. Mais rien n’est perdu, nous verrons dans la seconde partie du tutoriel comment résoudre ce problème et faire de votre thème un support prêt à la traduction.

Commençons par le premier cas où votre thème possède bien les fichiers .po et .mo.

Le premier fichier .po contient toute la liste des mots et phrases à traduire avec leur position (numéro de la ligne) dans les fichiers où ils se situent dans le thème. Voici un exemple de phrase à traduire qu’on retrouve dans le fichier .po :

Fichier po traduction theme WordPress

Dans « msgid » on retrouve la phrase à traduire et en dessous dans « msgstr » la phrase traduite (ici le champ est vide car le thème n’a pas encore été traduit). Enfin, on retrouve plus haut le(s) fichier(s) dans le(s)quel(s) se trouve cette phrase avec le numéro de la ligne.

Le second fichier .mo est un fichier binaire généré automatiquement après la traduction du thème.

Afin de procéder à la traduction de notre thème, nous allons utiliser le logiciel Poedit qui est assez simple à utiliser. Une fois installé, cliquez sur « Ouvrir » puis retrouvez le fichier .po de votre thème :

Fichier po de traduction de thème WordPress

Le fichier s’intitule ici « default.po ». On retrouve souvent ce nom lorsque aucune traduction n’a été faite pour le thème. Ce fichier contient la langue de base qui est l’anglais. On retrouve souvent aussi les noms en_GB.po et en_US.po comme fichiers de base.

Voici le tableau affichant toutes les lignes de chaînes de caractères à traduire dans la colonne de gauche « Texte original » et les traductions dans la colonne de droite « Traduction » qui est vide pour l’instant.

Fichier po non traduit Poedit

Tout en bas de l’écran on a deux champs : le premier contient la phrase sélectionnée dans le tableau du haut, et le second pour saisir la traduction. Celle-ci sera affichée de manière instantanée dans la colonne de droite du tableau devant la phrase d’origine correspondante. Rien de bien compliqué. Voici un exemple de traduction :

Thème WordPress Traduit avec Poedit

Vous remarquez que dans certaines chaînes de caractères il y a du code HTML. Il faut donc traduire uniquement ce qu’il y a à l’intérieur des balises. Par exemple :

There is a new version of %1$s available. <a href="%2$s" class="thickbox" title="%1$s">View version %3$s Details</a> or <a href="%4$s" >upgrade automatically</a>.

en :

Il y a une nouvelle version de %1$s disponible. <a href="%2$s" class="thickbox" title="%1$s">Voir les détails de la version %3$s</a> or <a href="%4$s" >mettre à jour automatiquement</a>.

Voilà, il faut traduire ligne par ligne ce fichier .po et une fois que tout est traduit il faut enregistrer-sous le fichier et le nommer en suivant la convention (i.e fr_FR.po). Un fichier fr_FR.mo sera automatiquement créé.

Placez ces deux fichiers dans le dossier « langue » de votre thème (même endroit que le fichier .po d’origine) si ce n’est pas déjà fait.

Modifier la traduction d’un thème ou plugin WordPress

Revenons à notre plugin mal traduit. Maintenant que nous avons appris à traduire un thème ou plugin WordPress, la modification de cette traduction est encore plus facile.

Dans notre plugin WP Job Manager, qui permet de créer une job board avec WordPress, ouvrez avec Poedit le fichier « job_manager-fr_FR.po » qui est situé dans le dossier plugins/wp-job-manager/languages. Voici deux exemples d’erreur de traduction à corriger :

Modification de la traduction du plugin WP Job Manager

Une fois toutes les erreurs corrigées, enregistrez le fichier. Le fichier .mo sera automatiquement mis à jour. Pareil, si vous travaillez sur un site en ligne n’oubliez d’uploader vos deux fichiers au bon endroit.

Traduire un Thème ou Plugin WordPress qui ne possède pas de fichier .po

Ici les choses se compliquent un peu plus vu que le concepteur du thème n’a pas fait l’effort de nous mettre à disposition un thème prêt à la traduction. Il faut donc faire ce travail à sa place et générer le bon fichier de traduction. Pour ce faire, il va falloir parcourir tous les fichiers de votre thème et traduire les phrases écrites en dur dans le code.

Prenons cet exemple d’extrait de fichier non traduit tiré d’un thème :

Extrait de fichier d'un thème WordPress avant traduction

Nous allons utiliser le Framework GNU Gettext qui utilise les méthodes __(),  _e(), _n() ainsi que d’autres fonctions permettant de récupérer le texte passé en paramètre, puis vont chercher au bon endroit la traduction correspondante pour les renvoyer par la suite.

Voici ce que devient notre code :

Extrait de fichier d'un thème WordPress après traduction

La fonction _n() à la ligne 27 permet de prendre en compte les traductions plurielles.

La fonction _e() à la ligne 42 permet d’afficher directement sur la page la traduction du message contenu dans le paramètre de cette fonction.

La fonction __() à ligne 43 permet de traduire le message lorsqu’il est utilisé en tant que paramètre d’une autre fonction.

Les caractères spéciaux &larr; et &rarr; aux lignes 43 et 44 représentent respectivement une flèche droite et une flèche gauche.

Vous remarquez que dans les paramètres de chacune de ces fonctions, nous avons utilisé un même argument à la fin, qui est « MonThemeWP ». Cet argument s’appelle le Domaine, ou Contexte pour être plus parlant. Notre domaine ici est le thème ou plugin qu’on est en train de traduire. Cela permet de traduire uniquement les chaînes de caractères traduisibles qui se trouvent dans ce thème-là. Vous adapterez donc ce domaine à votre propre thème ou plugin.

Voilà, il faut continuer ce même travail de mise en place d’un thème traduisible sur tous les autres fichiers du thème qui contiennent des phrases écrites en dur.

Edit : Vous pourrez retrouver ce tutoriel complet vous apprenant à mieux maîtriser gettext pour rendre votre thème ou plugin WP traduisible. Article rédigé par Julio Potier.

La prochaine étape est la création d’un répertoire à la racine de votre thème, intitulé « languages » ou « lang » ou tout autre nom qui va dans ce sens-là.

Enfin, avant de commencer à créer notre de dictionnaire de traduction, nous allons dire à WordPress qu’il doit prendre en compte cette traduction avec le domaine et répertoire donnés. C’est une ligne de code qu’il faut ajouter comme suit dans le fichier functions.php :

load_theme_textdomain('MonThemeWP', get_template_directory() . '/languages');

 Création du dictionnaire de traduction avec Poedit

Avec le logiciel Poedit, créez un nouveau catalogue dans Fichier > Nouveau catalogue. Voici la configuration à faire pour créer notre dictionnaire :

Configuration du catalogue Poedit

Pour la langue française, la forme plurielle est nplurals=2; plural=n>1;

Dans « Chemins des sources », il faut indiquer un chemin relatif du répertoire « languages » créé plus haut. Il suffit juste de mettre deux points « .. » et on sélectionnera le répertoire par la suite lorsqu’on cliquera sur « Accepter ».

Chemins catalogue Poedit

Dans « Mots-clés source », on ajoute les fonctions __(), _e() et _n().

Mots-clés catalogue Poedit

Cliquez ensuite sur « Accepter » et sélectionnez le répertoire « languages » dans lequel vos deux fichiers .po et .mo seront créés. Ce dernier sera généré automatiquement.

Le fichier aura le nom « default.po » par défaut. Vous pouvez le renommer directement « fr_FR.po », mais je vous conseille de laisser le nom par défaut et de faire dessus votre traduction vers le Français et puis d’enregistrer-sous et nommer un nouveau fichier en l’intitulant « fr_FR.po » comme nous l’avons fait dans la première partie du tutoriel pour la traduction d’un thème possédant déjà un fichier .po. En faisant de cette manière, vous permettrez aux personnes qui utiliseront votre thème de travailler sur le fichier par défaut pour créer un nouveau fichier .po sous une autre langue. Ainsi, le fichier « default.po » sera le fichier de base en Anglais et compréhensible par tout le monde.

Une fois tout ça mis en place, vous aurez un fichier .po qui contient toute la liste des mots et phrases à traduire avec leur position (numéro de la ligne) dans les fichiers où ils se situent dans le thème. C’est exactement comme ce que l’on avait dans la première partie du tutoriel. Pour ne pas me répéter, il suffit désormais de suivre l’explication faite dans ce début de tuto.

Dernière chose, il vous arrivera peut-être d’ajouter de nouvelles phrases dans votre thème, en utilisant bien sûr les fonctions gettext vues plus haut. Dans ce cas, il suffit de mettre à jour votre catalogue sur Poedit (voir l’image suivante) et les nouvelles phrases ajoutées apparaîtront dans votre liste de texte à traduire.

Mettre à jour le catalogue Poedit

N’oubliez pas d’enregistrer ensuite votre traduction et d’envoyer vos deux fichiers .po et .mo vers votre serveur en ligne si vous travaillez en ligne.

Conclusion

Pour conclure, nous avons vu dans ce tutoriel plusieurs cas de traduction possibles.

Le premier cas qui est le plus courant, c’est la traduction d’un thème WordPress qui possède déjà un support de traduction avec le fichier .po existant. Un nouveau fichier est alors créé avec la nouvelle traduction.

Le second cas permettait de résoudre notre problème avec le plugin présentant quelques erreurs de traduction; c’est donc la retraduction d’un plugin à partir d’une traduction déjà existante. Aucun nouveau fichier n’est créé.

Le dernier cas est celui du thème qui n’a pas du tout été conçu pour être traduit. La procédure à suivre dans ce cas était beaucoup plus longue puisqu’il fallait ouvrir tous les fichiers du thème un à un et ajouter les règles de traduction. Aujourd’hui, il existe heureusement de moins en moins de thèmes WordPress qui ne possèdent pas de fichiers de traduction.

Enfin, si vous rencontrez un problème dans la traduction de votre thème ou plugin WordPress alors n’hésitez pas à poster un commentaire plus bas dans la page.

Cet article vous a plu?

Abonnez-vous alors à notre newsletter pour recevoir des trucs utiles pour votre site WordPress.

19 Commentaires

  1. cosa 19 mars 2014
  2. Jenni 18 octobre 2014
    • Anouar Fourti 18 octobre 2014
      • Patrick 23 novembre 2015
  3. Jenni 21 octobre 2014
    • Kika-Gaga 13 novembre 2014
  4. Akasha48 4 février 2015
    • Anouar Fourti 5 février 2015
      • Akasha48 8 février 2015
        • Augustin 10 novembre 2015
  5. ailand 25 février 2015
    • Anouar Fourti 26 février 2015
  6. mimi1312 24 avril 2015
    • Anouar Fourti 30 avril 2015
  7. Fred 23 juillet 2015
  8. darknote 6 septembre 2015
  9. Augustin 6 novembre 2015
  10. Seb 16 mars 2016
    • Anouar Fourti 16 mars 2016

Laisser un Commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Créer et Gérer sa Newsletter avec Mailchimp & l’Intégrer à WordPressSuivre le tutoriel
+ +

Recevez du contenu
WordPress exclusif

Abonnez-vous à notre newsletter et recevez des trucs utiles pour mieux utiliser votre site WordPress!