Les points à garder en tête avant de commencer
- Un thème traduisible s’appuie sur des chaînes préparées avec un text domain, pas sur du texte codé en dur.
- Les fichiers
.pot,.poet.mon’ont pas le même rôle, et les confondre complique vite la maintenance. - Je préfère toujours stocker les traductions hors du thème parent quand c’est possible, pour éviter de les perdre lors d’une mise à jour.
- Sur un block theme, il faut aussi vérifier les patterns, les menus et les template parts, pas seulement les libellés classiques.
- La meilleure traduction est celle qui reste courte, lisible et testée dans l’interface réelle, surtout sur mobile.
Ce que le lecteur cherche vraiment derrière la traduction d’un thème WordPress
Dans la plupart des cas, la demande ne porte pas sur le contenu des pages, mais sur tout ce qui encadre l’expérience: menus, boutons, libellés de widgets, footer, messages d’erreur, formulaires, CTA et petits textes d’interface. C’est là que la distinction entre contenu et structure devient importante. WPML le formule très clairement: le texte d’interface fait partie du squelette du site, pas des articles ou des pages.
Je fais toujours cette séparation dès le départ, parce qu’elle évite beaucoup d’allers-retours. Si le texte provient du thème, il faut passer par les chaînes traduisibles; s’il vient d’un article, d’un bloc de contenu ou d’un champ personnalisé, la logique change. Un simple slogan dans l’en-tête, une étiquette de menu ou un message de validation de formulaire peuvent demander des traitements différents selon le thème et le constructeur utilisé.
En pratique, ce que je vérifie d’abord, c’est la surface visible par l’utilisateur: navigation, en-tête, pied de page, sections réutilisables, messages système et éléments d’animation qui affichent du texte. Une traduction peut être grammaticalement juste et pourtant donner une impression bancale si elle casse cette couche d’interface. C’est à partir de là qu’on peut choisir la bonne méthode technique.
La méthode la plus fiable avec les fichiers .po et .mo
Selon la documentation WordPress, les traductions de thème reposent sur des fichiers .po et .mo, chargés via load_theme_textdomain() ou load_child_theme_textdomain(). C’est la base la plus propre quand le thème est correctement internationalisé, c’est-à-dire quand ses chaînes ont été préparées pour être traduites plutôt que figées dans le code.
| Fichier | Rôle | Usage concret |
|---|---|---|
.pot |
Modèle de traduction | Je l’utilise pour extraire toutes les chaînes à traduire avant de créer une langue précise. |
.po |
Fichier éditable | C’est là que je saisis les traductions, phrase par phrase, avec le contexte si nécessaire. |
.mo |
Version compilée | WordPress charge ce fichier côté site pour afficher la langue choisie rapidement. |
Le flux de travail le plus sain ressemble généralement à ceci: j’extrais les chaînes du thème, je crée une base .pot, je traduis dans un .po, puis je compile le .mo et je le place dans un emplacement que WordPress sait lire. Quand le thème est bien fait, les chaînes passent par des fonctions de traduction WordPress et l’ensemble reste maintenable. Quand il est mal fait, on se retrouve à corriger des textes codés en dur, ce qui est toujours plus long que prévu.
- Je vérifie que le thème utilise un text domain unique et cohérent.
- J’extrais les chaînes traduisibles plutôt que de modifier les fichiers du thème à la main.
- Je traduis les libellés dans la langue cible, par exemple
fr_FR. - Je teste le chargement de la traduction après compilation.
- Je contrôle l’affichage réel dans le navigateur, avec cache vidé.
Quand cette base est propre, le reste devient beaucoup plus simple. Et c’est précisément pour gagner du temps sans sacrifier la qualité que les bons outils font la différence.

Les outils qui font gagner du temps sans sacrifier la propreté
La fiche de Loco Translate sur WordPress.org indique qu’il permet d’éditer les traductions directement dans l’admin, d’extraire les chaînes et même d’intégrer des fournisseurs de traduction automatique. C’est pratique, mais je ne traite jamais un outil comme une solution magique: il faut choisir celui qui correspond à la maturité du site, au niveau technique de l’équipe et au type de thème.
| Outil | Pour quoi je l’utilise | Atout principal | Limite à garder en tête |
|---|---|---|---|
| Poedit | Traduction manuelle propre, hors ligne | Très bon contrôle sur les chaînes, les pluriels et le contexte | Demande un peu plus de méthode et de rigueur technique |
| Loco Translate | Traduction directe depuis l’admin WordPress | Rapide pour localiser un thème et garder les fichiers gérables | Il faut bien choisir l’emplacement des fichiers pour éviter les pertes à la mise à jour |
| WPML String Translation | Sites multilingues où l’interface compte autant que le contenu | Gère les textes hors contenu, comme les widgets, slogans ou libellés système | Peut être plus lourd que nécessaire si le besoin reste simple |
| Polylang | Interface multilingue avec menus, blocs et contenu synchronisé | Très utile quand le site repose sur l’éditeur de site et ses éléments réutilisables | Il faut comprendre ce qui relève du bloc, du modèle et du template |
Je vois souvent une erreur de méthode: utiliser la traduction automatique comme version finale. En pratique, elle peut accélérer une première passe, surtout sur des chaînes répétitives, mais je relis toujours les microcopies, les boutons et les messages d’erreur à la main. Une interface réussie ne sonne pas seulement juste, elle doit aussi paraître naturelle dans le contexte du site.
Le bon outil dépend donc moins de sa réputation que de la structure du thème. Et c’est encore plus vrai dès qu’on passe des thèmes classiques aux block themes.
Les thèmes blocs changent la manière de traduire l’interface
Avec un block theme, l’interface ne se limite plus à quelques fichiers PHP et à un pied de page figé. L’en-tête, le pied de page, la navigation, les patterns et les template parts deviennent des éléments centraux de la présentation. Polylang Pro peut traduire des patterns ou des blocs depuis le Site Editor, mais pas les templates eux-mêmes, ce qui change la logique de travail.
Je traite donc les blocs réutilisables comme de vrais composants d’interface. Si un message d’accroche, un lien de menu ou une zone de promotion est intégré dans un pattern, je le vérifie comme je vérifierais un bouton dans un header classique. Le fait qu’un thème soit moderne ne le rend pas automatiquement plus simple à localiser: il déplace simplement les points de contrôle.
Sur ce type de thème, je suis particulièrement attentif à trois choses: la longueur des libellés, la hiérarchie visuelle et la cohérence entre les langues. Un menu qui tient en anglais peut déborder en français, un bouton peut se briser sur deux lignes, et un bloc aligné au pixel près peut perdre son équilibre si la traduction est trop longue. C’est là que la traduction touche directement au design.
- Je vérifie le header et le footer dans chaque langue.
- Je contrôle les patterns réutilisables qui contiennent du texte visible.
- Je teste les menus et les switchers de langue dans le Site Editor.
- Je regarde si les template parts ont bien une version traduite ou un comportement de repli acceptable.
Une fois cette couche comprise, on peut se concentrer sur ce qui compte le plus pour l’utilisateur: une interface qui reste fluide, lisible et cohérente après passage d’une langue à l’autre.
Préserver la lisibilité, le responsive et les nuances de marque
La traduction d’interface échoue rarement sur la grammaire seule. Elle échoue plus souvent parce qu’elle est trop longue, trop littérale ou simplement mal ajustée au gabarit. En français, certaines chaînes s’allongent vite. Un bouton de six caractères en anglais peut devenir une formulation bien plus dense, et cela suffit à casser une ligne, repousser une icône ou désaligner un encart.
Je relis toujours les textes en contexte, jamais seulement dans un fichier de traduction. Un libellé comme Read more devient souvent Lire la suite, mais d’autres cas demandent plus de nuance. Pour un appel à l’action court, je peux préférer Découvrir, Commencer ou Voir l’offre selon la place disponible et le ton de la marque. La bonne traduction n’est pas toujours la plus littérale, c’est souvent la plus utile visuellement.
Je teste aussi les points suivants, parce qu’ils révèlent vite les faiblesses d’une traduction:
- les boutons et leurs états de survol;
- les menus de navigation sur mobile;
- les messages d’erreur et de validation des formulaires;
- les textes de footer et les mentions légales;
- les widgets, badges, compteurs et petites alertes;
- les variations singulier/pluriel, surtout pour les chaînes dynamiques.
Quand le site vise plusieurs langues, je garde aussi un œil sur les cas particuliers: textes très longs, langues à lecture de droite à gauche, ou interfaces qui dépendent beaucoup d’icônes et d’alignements. Un thème peut être techniquement traduit et rester visuellement fragile. C’est pour cela que je regarde maintenant les erreurs les plus coûteuses avant de livrer quoi que ce soit en production.
Les erreurs qui coûtent le plus de temps
La plupart des problèmes que je rencontre en audit ne viennent pas d’un manque de traduction, mais d’un mauvais emplacement, d’une mauvaise logique ou d’un oubli de maintenance. Le premier piège consiste à modifier le thème parent directement. À la prochaine mise à jour, les changements disparaissent. Le deuxième consiste à stocker les fichiers traduits dans un dossier qui n’est pas prévu pour survivre aux mises à jour.
- Modifier le thème parent au lieu d’utiliser une stratégie de traduction durable.
- Ignorer le text domain et traduire un fichier qui n’est pas correctement branché.
- Oublier que certaines chaînes sont codées en dur et ne peuvent pas être traduites proprement sans retouche du code.
- Se fier à une traduction automatique sans relecture des messages UX.
- Ne pas vider le cache du site, du navigateur ou du CDN après modification.
- Tester uniquement en desktop alors que le problème apparaît sur mobile.
Je vois aussi souvent des confusions entre thème et contenu. Si le message est dans un article, la traduction ne passe pas par le même circuit que si le message est dans l’en-tête ou un bloc réutilisable. Cette erreur de diagnostic fait perdre du temps parce qu’on cherche au mauvais endroit. Une fois la cause identifiée, il reste une dernière étape: vérifier que tout tient ensemble avant la mise en ligne.
La dernière vérification qui évite les retours en arrière
Avant de valider une version traduite, je fais une passe rapide mais systématique. L’objectif n’est pas de tout relire comme un correcteur, mais de repérer les endroits où l’interface se fragilise dès qu’on change de langue. C’est souvent là que se jouent les retours client, les tickets de support et les petites incohérences qui donnent une impression de site inachevé.
- Je teste l’en-tête, le pied de page et la navigation dans chaque langue.
- Je vérifie qu’aucune chaîne importante ne reste en anglais.
- Je contrôle les boutons, les titres courts et les messages d’erreur sur mobile.
- Je m’assure que les fichiers de traduction sont bien chargés après mise à jour.
- Je regarde si le langage visuel reste cohérent avec la marque, sans texte coupé ni alignement cassé.
Si je devais résumer ma méthode, je dirais qu’une bonne traduction de thème n’est pas seulement exacte: elle doit rester invisible dans l’usage. Quand l’utilisateur navigue sans friction, trouve les bons libellés au bon endroit et ne remarque aucun décalage entre les langues, le travail est réussi.