Comment traduire Contact Form 7 dans WordPress – Balises de formulaire, messages, modèles d’e-mail
Découvrez comment traduire chaque partie d’un formulaire Contact Form 7 sur votre site WordPress dans toutes les langues parlées par vos visiteurs. Ce guide couvre chaque balise de formulaire, l’intégralité de l’onglet Messages, les deux modèles d’e-mail, le texte d’acceptation, les balises de quiz, les valeurs sélectionnables séparées par des barres verticales et les intégrations de soumission alimentées par Contact Form 7. Il vous accompagne pas à pas dans le flux de travail de Contact Form 7 avec WPML et le module complémentaire WPML Multilingual for CF7.
Avant de commencer
Installez et activez ces extensions :
- Contact Form 7.
- WPML et WPML Traduction de chaînes.
- WPML Multilingual for CF7 (le module complémentaire traité sur cette page).
Créez le formulaire dans Contact Form 7 dans la langue source de votre site (chaque balise de formulaire, les modèles E-mail et E-mail (2), chaque entrée de l’onglet Messages et tous les réglages additionnels) avant d’envoyer le formulaire à la traduction. Vous pourrez modifier le formulaire ultérieurement et le renvoyer à la traduction si quelque chose change.
Tout traduire automatiquement s’en charge pour vous
Si Tout traduire automatiquement est activé sur votre site, vous n’avez pas besoin d’envoyer manuellement le formulaire à la traduction. WPML détecte les formulaires nouveaux et mis à jour en même temps que le reste de votre contenu et les traduit en arrière-plan. L’étape d’insertion de page ci-dessous s’applique toujours, mais l’étape d’envoi du formulaire à la traduction est automatique. Le reste de cette page décrit le processus manuel pour les sites utilisant Traduire une partie : vous choisissez quoi traduire (ou pour les formulaires que vous souhaitez traduire avant la file d’attente automatique).
Envoyez le formulaire à la traduction
- Accédez à WPML > Traductions > Tableau de bord.
- Développez la section Formulaires de contact.
- Cochez le formulaire que vous souhaitez traduire.
- Choisissez une méthode de traduction : PTC (recommandé), votre traducteur ou Traduire moi-même.
- Cliquez sur Traduire.
Le modèle de formulaire, E-mail et E-mail (2), ainsi que l’onglet Messages sont tous inclus dans la même tâche de traduction. Les traducteurs les voient sous forme de lignes libellées dans l’Éditeur de traduction avancé.
Insérez le formulaire dans vos pages traduites
Contact Form 7 s’intègre dans une page ou un article via le shortcode [contact-form-7], habituellement généré par l’écran d’administration Contact sous la forme [contact-form-7 id="123" title="My Form"]. La règle d’insertion multilingue :
Utilisez le même shortcode sur chaque version linguistique de la page. Ne créez pas un formulaire distinct par langue.
Le flux de travail :
- Créez le formulaire une seule fois dans votre langue source.
- Envoyez le formulaire à la traduction (ou laissez Tout traduire automatiquement s’en charger).
- Insérez le shortcode sur la page dans la langue source.
- Traduisez la page via WPML > Traductions > Tableau de bord de la même manière que vous traduiriez n’importe quelle autre page. Le shortcode est conservé sur la page traduite.
- Lorsqu’un visiteur ouvre la page traduite, WPML Multilingual for CF7 affiche automatiquement le formulaire dans la langue du visiteur – même shortcode, contenu traduit.
Vous n’avez pas besoin d’un ID de formulaire différent par langue. La traduction est liée au formulaire source ; l’extension de liaison résout la version dans la bonne langue au moment de l’affichage en fonction de la langue de la page.
Les shortcodes basés sur l’ID et sur le titre fonctionnent tous les deux. [contact-form-7 id="123" title="Contact form 1"] fonctionne en multilingue sans configuration supplémentaire. [contact-form-7 title="Contact form 1"] (titre uniquement, sans ID) se résout également dans la bonne langue. La résolution basée uniquement sur le titre a été introduite dans la version 1.1.0 (juin 2021). Les deux formes sont sans risque.
L’exception – lorsque vous souhaitez réellement des formulaires différents par langue. Si vous avez besoin de formulaires structurellement différents par langue (balises de formulaire différentes, modèles d’e-mail différents, contenu de l’onglet Messages différent), créez des formulaires Contact Form 7 distincts et insérez le shortcode de chacun d’eux sur la version linguistique correspondante de la page à l’aide de l’éditeur WordPress pour cette traduction. C’est la seule situation où les shortcodes diffèrent selon les langues.
Piège lié aux constructeurs de pages
Si votre page est conçue avec Divi, Elementor ou un autre constructeur de pages dont le module de texte enveloppe le shortcode, ce dernier peut ne pas toujours survivre correctement à la traduction. Si la page traduite affiche le formulaire dans la langue source, ouvrez la page traduite dans le constructeur de pages et réinsérez-y le shortcode [contact-form-7]. L’éditeur de blocs natif de WordPress et l’éditeur classique ne présentent pas ce problème.
Libellés des balises de formulaire et chaînes de texte visibles par les visiteurs
Pour chaque balise de formulaire, le contenu visible par les visiteurs se traduit : les libellés (le texte en dehors de la balise entre crochets), les libellés des boutons (la valeur dans [submit "Send"]), les espaces réservés définis via l’option placeholder et les valeurs d’option à l’intérieur des balises [checkbox], [radio] et [select].
Le type et le nom de la balise de formulaire ne se traduisent pas. Ce sont des identifiants. Les valeurs de la balise de formulaire (les choix visibles par les visiteurs) se traduisent. Exemple :
[select your-country "China" "India" "San Marino"]
Dans la traduction française, "China" devient "Chine" tandis que your-country (le nom de la balise de formulaire) et select (le type) restent identiques. La substitution de la balise d’e-mail fonctionne toujours car la traduction préserve la position de chaque valeur.
Valeurs séparées par des barres verticales – traduisez le libellé, gardez la valeur stable
La syntaxe avec barre verticale vous permet de dissocier le libellé visible par le visiteur de la valeur envoyée dans l’e-mail :
[select your-country
"Chinese|CN"
"Indian|IN"
"Sammarinese|SM"]
Lorsque vous traduisez ce formulaire, seuls les libellés (Chinese, Indian, Sammarinese) se traduisent. Les valeurs (CN, IN, SM) restent canoniques. Un visiteur français voit Chinois, Indien, Saint-Marinais ; le corps de l’e-mail et tout gestionnaire back-end reçoivent toujours CN, IN, SM. Utilisez la syntaxe avec barre verticale chaque fois que vous avez besoin que la valeur soumise reste stable d’une langue à l’autre : correspondances CRM, SKU de paiement, codes géographiques.
Balises d’acceptation et de quiz
La case à cocher Acceptation contient le texte de consentement et généralement un ou plusieurs liens intégrés vers les pages de confidentialité et de conditions générales. Traduisez le texte sous la forme d’une seule ligne dans la tâche de traduction ; pour les cibles des liens, modifiez la ligne traduite pour qu’elle pointe vers les pages de confidentialité et de conditions générales propres à chaque langue.
Les balises de Quiz permettent de traduire à la fois la question et la réponse. Utilisez la syntaxe avec barre verticale pour les réponses au quiz afin que la logique de réponse acceptée reste prévisible d’une langue à l’autre :
[quiz captcha
"1+1=?|2"
"2+3=?|5"]
L’onglet Messages
L’onglet Messages de Contact Form 7 contient environ 16 chaînes de validation modifiables – celles que les visiteurs voient lors de la soumission et en cas d’erreur. Chacune d’elles se traduit dans la même tâche :
- Thank you for your message. It has been sent.
- One or more fields have an error. Please check and try again.
- There was an error trying to send your message. Please try again later.
- This field is required.
- This e-mail address is invalid.
- The telephone number is invalid.
- The URL is invalid.
- The number is smaller than the minimum allowed.
- The number is larger than the maximum allowed.
- The date format is incorrect.
- The file is too big.
- The file is not supported.
- The Acceptance checkbox is required.
- The answer to the quiz is incorrect.
- (plus les messages par défaut restants fournis par CF7).
Si votre onglet Messages utilise des balises d’e-mail pour interpoler la saisie (Thanks [your-name], your message has been sent!), la balise d’e-mail se résout toujours correctement après la traduction.
E-mail et E-mail (2)
Les deux modèles d’e-mails sortants de Contact Form 7, E-mail (notification à l’administrateur) et E-mail (2) (réponse facultative ou répondeur automatique au visiteur), se traduisent indépendamment. Pour, De, Objet, En-têtes additionnels, Corps du message et les descriptions de Pièces jointes se trouvent tous dans la tâche de traduction. Les balises d’e-mail à l’intérieur des corps traduits ([your-name], [your-message], [your-email]) se résolvent correctement.
Pour E-mail (2), c’est dans le corps du répondeur automatique, visible par le visiteur, que la traduction importe le plus. C’est le message qui arrive dans la boîte de réception du visiteur. Envoyez une soumission de test à partir d’une page traduite et confirmez que le répondeur automatique arrive dans la langue du visiteur.
Intégrations de soumission
Contact Form 7 dispose d’un ensemble restreint mais important d’intégrations. Chacune d’elles préserve la langue du visiteur lorsque la traduction est configurée :
- Flamingo. Le module complémentaire de gestion des soumissions, créé par l’auteur de Contact Form 7. Les soumissions arrivent dans Contact > Messages entrants avec l’objet et le corps traduits intacts.
- Constant Contact. L’intégration officielle de CF7 pour le marketing par e-mail. Les saisies des visiteurs sont transmises à vos listes Constant Contact dans la langue du visiteur.
- Stripe. Les champs de la balise de formulaire
[stripe]de Contact Form 7 et le texte du message de reçu apparaissent tous deux dans la tâche de traduction. - Akismet. Les messages de protection contre le spam se traduisent via WPML Traduction de chaînes (et non dans la tâche de traduction du formulaire).
- reCAPTCHA. Le message d’erreur visible par les visiteurs se traduit via WPML Traduction de chaînes.
Pièges courants
- L’acceptation avec lien intégré pointe vers la page de confidentialité de la mauvaise langue. Modifiez la traduction de l’acceptation dans l’Éditeur de traduction avancé et définissez des cibles de lien par langue.
- Incompatibilité de hachage du shortcode sur CF7 6.0+. Résolu dans WPML Multilingual for CF7 1.3.2 (nov. 2024). Mettez à jour si vous rencontrez ce problème.
- Les traductions de l’onglet Messages n’apparaissent pas. Confirmez que WPML Traduction de chaînes est actif et que le formulaire a été renvoyé à la traduction après la modification de l’onglet Messages.
- Les balises d’e-mail à l’intérieur des traductions se résolvent en chaînes vides. Vérifiez que le nom de la balise de formulaire dans la balise d’e-mail (par exemple,
[your-name]) correspond à une balise de formulaire dans le formulaire. La traduction ne rompt jamais la résolution de la balise d’e-mail, mais renommer une balise de formulaire après la traduction la rompra.
Écrit par Amir · Dernière mise à jour le 2 juillet 2026
Écrit par Amir · Dernière mise à jour 2 juillet 2026