Le WordPress d'aujourd'hui, décodé pour les développeurs

Thèmes

TranslatePress dans un thème multi-marques, une traduction par variation

Un même thème sert plusieurs marques dont le contenu change selon la variation affichée. Adapter TranslatePress pour traduire sans dupliquer les chaînes.

Par Clément Hadrot • 26 octobre 2025 • 4 min de lecture • Aucun commentaire
TranslatePress dans un thème multi-marques, une traduction par variation

get_option('marque_active') renvoie une valeur différente selon le sous-domaine visité, et c’est justement ce qui complique la traduction. Le thème sert quatre marques d’un même groupe, chacune avec sa propre charte de couleurs et ses propres textes d’accroche, mais un seul et même thème et un seul jeu de gabarits PHP. TranslatePress devait traduire le site en anglais, sans que les quatre marques ne se retrouvent avec des chaînes mélangées.

Le piège classique avec TranslatePress sur ce type de projet est de traiter la marque comme s’il s’agissait d’une langue supplémentaire. Ce n’est pas le cas : une marque garde son propre texte source en français, et ce texte doit ensuite être traduit en anglais indépendamment pour chacune des quatre marques, sans qu’une traduction validée pour la marque A n’écrase par erreur celle de la marque B pour une phrase similaire.

Étape 1 : distinguer marque et langue dans les gabarits

Le thème charge le contenu de chaque marque depuis un tableau PHP retourné par une fonction wpm_contenu_marque(), appelée dans les gabarits avec la marque active en paramètre. TranslatePress traduit le rendu final envoyé au navigateur ; il fallait donc s’assurer que chaque chaîne de ce tableau passe bien par une fonction de traduction native WordPress, comme esc_html__, avant l’affichage, pour que TranslatePress puisse l’intercepter correctement au moment du rendu.

function wpm_texte_accroche( $marque ) {
    $textes = array(
        'nord'  => 'Des solutions pensées pour durer',
        'sud'   => 'Le confort sans compromis',
        'est'   => 'L'exigence au quotidien',
        'ouest' => 'Simplicité assumée',
    );
    return isset( $textes[ $marque ] ) ? esc_html( $textes[ $marque ] ) : '';
}

Étape 2 : configurer la détection de langue sans toucher au sous-domaine de marque

L'essentiel à retenir : Une variation de marque n'est pas une langue, il ne faut pas les confondre ; Filtrer le contenu traduisible par contexte de marque ; Éviter la duplication de chaînes entre marques identiques

Chaque marque possède déjà son propre sous-domaine (nord.exemple.fr, sud.exemple.fr, et ainsi de suite). TranslatePress propose par défaut une détection de langue par sous-dossier ou par paramètre d’URL ; il fallait vérifier, dans ses réglages, que la langue anglaise s’ajoute en sous-dossier après le sous-domaine de marque, sans interférer avec le routage déjà en place pour distinguer les quatre marques.

Sur ce projet, le réglage retenu ajoute /en/ après le domaine de chaque marque, ce qui donne par exemple nord.exemple.fr/en/. TranslatePress gère cette structure nativement dès lors que l’option de sous-dossier de langue est activée dans son panneau de réglages, sans configuration supplémentaire côté serveur.

Étape 3 : traduire chaque marque indépendamment

  1. Ouvrir l’éditeur visuel de traduction de TranslatePress sur le site de la première marque
  2. Traduire les chaînes spécifiques à cette marque, en laissant de côté les éléments communs déjà traduits ailleurs
  3. Répéter l’opération pour chaque marque, en vérifiant que TranslatePress associe bien chaque traduction à la chaîne source exacte affichée sur ce sous-domaine
  4. Contrôler qu’une phrase identique entre deux marques (mentions légales, formulaire de contact) n’a besoin d’être traduite qu’une seule fois

Ce qui a évité la duplication

Les blocs réellement partagés entre les quatre marques — le formulaire de contact, le pied de page, les mentions légales communes au groupe — restent des chaînes identiques dans le code source. TranslatePress les reconnaît comme une seule et même chaîne source, quelle que soit la marque sur laquelle on se trouve, et une traduction validée sur l’une s’applique automatiquement aux trois autres. Seuls les textes réellement propres à chaque marque, comme l’accroche de la page d’accueil, sont traduits marque par marque.

Ne jamais dupliquer un texte identique juste pour distinguer des marques : la duplication complique la traduction sans apporter aucun bénéfice éditorial.

En résumé

TranslatePress ne fait pas la différence entre une marque et une langue de lui-même : c’est au thème de présenter un contenu source cohérent, marque par marque, pour que l’éditeur de traduction fonctionne sans confusion. Une fois cette séparation posée dans les gabarits, la traduction anglaise des quatre marques a représenté moins d’une journée de travail par marque, sans aucune chaîne dupliquée inutilement dans la base de données.

Partager :

À propos de l'auteur

Clément Hadrot

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi