asset 1
asset 2
asset 3
asset 2
asset 21

WordPress : comment fonctionne la traduction ?

20 août 2025

J’ai écrit un tutoriel sur la manière de traduire des extensions WordPress. Mais peut-être, voulez-vous comprendre comment fonctionne la traduction dans ce CMS ? Je vais vous l’expliquer dans cet article et je vais en profiter pour vous montrer qu’il existe diverses manières de traduire et quelle option choisir selon les cas.

Les fichiers .po et .mo dans WordPress. Qu’est-ce que c’est ?

Traduire un thème, une extension ou l’interface de WordPress repose sur deux types de fichiers : les .po et .mo. Ils sont utilisés pour les traductions.

  • .po = (Portable Object). C’est le fichier texte lisible, où l’on écrit/édite les traductions.
  • .mo = (Machine Object). C’est version compilée et binaire du .po, lue par WordPress en production.

Dans le fichier .po, on va trouver des msgid et des msgstr : le msgid est la chaîne originale et le msgstr est la chaîne traduite.

msgid "Read more"
msgstr "Lire la suite"

Il existe un troisième fichier, le .pot, soit le template, c’est-à-dire le modèle, qui comporte uniquement les chaînes originales et donc aucune traduction. Il sert de base pour créer le .po pour chaque langue.

Où sont rangées les traductions ?

  • Les fichiers de traduction du Cœur de WordPress se trouvent dans : wp-content/languages
  • Les fichiers de traduction du thème se trouvent dans : wp-content/languages/themes/
  • Les fichiers de traduction des extensions se trouvent dans : wp-content/languages/plugins/
liste de tous les fichiers wordpress et emplacement fichiers traduction

Pour que WordPress trouve la bonne traduction, les thèmes et les extensions doivent utiliser un text domain, autrement dit un identifiant, et doivent suivre un nommage bien précis pour que les traductions s’affichent. Voici le nommage utilisé :

<text-domain>-<locale>.po
et
<text-domain>-<locale>.mo
Ce qui donne par exemple : redirection-fr_FR.mo

Donc, on a :

  1. le text domain (exemple : redirection)
  2. la langue du site, la locale : fr_FR (Français de France, ici)
  3. le type de fichier : .mo

D’ailleurs, pour qu’une extension ou un thème soit traduisible, la personne qui a fait le développement doit avoir préparé le code pour cela.

Les différentes manières de traduire une extension ou un thème WordPress

  1. Installer l’extension Loco Translate. Elle vous permet de traduire vos chaînes directement depuis le tableau de bord de votre site (donc sans passer par le FTP). Les fichiers cités plus hauts, sont créés automatiquement et stockés au bon endroit et elle gère les textes côté JavaScript.
    Cette solution est utile pour traduire quelques chaînes en utilisant votre propre vocabulaire, ou que ces chaînes ne sont pas encore traduites « officiellement ». Donc en attendant vous utilisez cette alternative.
    Ces chaînes ne seront traduites que sur votre site.
  2. Vous pouvez utiliser le logiciel Poedit qui existe en version gratuite et payante. Avec Poedit, vous ne travaillerez pas en ligne. Vous travaillerez directement sur le fichier .po, le logiciel vous permettra de faire la compilation pour générer le fichier .mo. Vous devrez envoyer le .po et le .mo sur le site via FTP. Cette manière de faire est utile si vous avez pas mal de chaînes à traduire. Par exemple si vous avez développé votre propre extension, ou si l’extension que vous voulez traduire n’est pas « i18n-ready » (prêt pour l’internationalisation). C’est aussi une façon d’éviter d’ajouter une autre extension à votre site WordPress.
  3. Enfin, la troisième façon de traduire vos thèmes est et extensions est de passer par la plateforme officielle translate.wordpress.org. Les traductions seront alors publiques pour tous les thèmes et les extensions hébergées sur WordPress.org. Après validation, les sites reçoivent automatiquement les mises à jour. C’est une bonne manière de contribuer à la communauté et de bénéficier de packs de langue automatiques.
interface loco translate
Interface Loco Translate
interface poedit
Interface PoEdit

Si rien ne se traduit, il peut y avoir plusieurs raisons à cela.

  • Vous avez peut-être choisi la mauvaise langue sur votre site : par exemple, fr_CA (Canada) vs fr_FR (France)
  • Le fichier de trad est au mauvais endroit.
  • Le Nom du fichier ne correspond pas au text domain.
  • Vous devez vider le Cache.
  • Le projet n’a pas de text domain déclaré ou mélange plusieurs text domains.
    Dans ces cas, n’hésitez pas à contacter la personne qui a développé le thème ou l’extension pour qu’il rende le projet « i18n-ready » (prêt pour l’internationalisation).

Problèmes pouvant être rencontrés

Si la traduction est prise en compte pour certaines phrases seulement, il est possible que :

  • Le texte d’origine a légèrement changé (ponctuation, espace), il suffit alors de mettre à jour les fichiers en les synchronisant.
  • La phrase vient de l’éditeur de blocs (JS), préférez dans ce cas Loco Translate, ou générez les fichiers JS adéquats.

Vos fichiers .mo sont bien en place, mais les textes restent en anglais.

Le projet n’a pas de text domain déclaré ou mélange plusieurs text domains.
Dans ces cas, demandez au développeur de rendre le projet “i18n-ready” (prêt pour l’internationalisation). Une fois ces bases en place, vos traductions via Loco, Poedit ou la plateforme officielle s’appliqueront immédiatement.

Pour résumer :

  • Le fichier.po est le fichier texte à éditer ;
  • Le fichier.mo est la version lue par WordPress.
  • Pour corriger/adapter rapidment les traductions sur votre site, préférez Loco Translate.
  • Pour projets structurés/hors ligne, Poedit sera votre ami(et prévoyez l’étape JS si besoin).
  • Enfin, pour que la traduction profite à tous et toutes, ce sera grâce à translate.wordpress.org.

Laisser un commentaire

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