WPML

Avant de commencer

Installez et activez ces extensions :

  • Ninja Forms.
  • WPML et WPML Traduction de chaînes.
  • Ninja Forms Multilingual (le module complémentaire couvert par cette page).

Créez le formulaire dans Ninja Forms dans la langue source de votre site, y compris toute structure à plusieurs étapes, logique conditionnelle, texte de validation et les Actions dont vous avez besoin (message de succès, redirection après soumission, e-mail, Actions d’intégration). Envoyez le formulaire pour traduction une fois qu’il est fonctionnellement terminé.

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 pour traduction. WPML détecte les formulaires nouveaux et mis à jour avec le reste de votre contenu et les traduit en arrière-plan. L’étape d’insertion dans la page ci-dessous s’applique toujours, mais l’étape d’envoi du formulaire pour 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 pour traduction

  1. Accédez à WPML > Traductions > Tableau de bord.
  2. Développez la section Ninja Forms.
  3. Cochez le formulaire que vous souhaitez traduire.
  4. Choisissez une méthode de traduction : PTC (recommandé), votre traducteur ou Traduire moi-même.
  5. Cliquez sur Traduire.

Les champs, les options, les Actions (message de succès, e-mail, redirection après soumission, intégrations) et les messages de validation par champ sont tous regroupés dans la même tâche de traduction.

Insérez le formulaire dans vos pages traduites

Ninja Forms s’intègre dans une page ou un article, généralement via le bloc Ninja Forms ou le shortcode [ninja_form id="X"]. La règle d’insertion multilingue est la suivante :

Utilisez le même bloc ou shortcode sur chaque version linguistique de la page. Ne créez pas un formulaire distinct par langue.

Le processus :

  1. Créez le formulaire une fois dans votre langue source.
  2. Envoyez le formulaire pour traduction (ou laissez Tout traduire automatiquement s’en charger).
  3. Insérez le formulaire sur la page dans la langue source à l’aide du bloc Ninja Forms ou du shortcode [ninja_form].
  4. Traduisez la page via WPML > Traductions > Tableau de bord de la même manière que vous traduiriez n’importe quelle autre page. L’intégration du formulaire est conservée sur la page traduite.
  5. Lorsqu’un visiteur ouvre la page traduite, Ninja Forms Multilingual affiche automatiquement le formulaire dans la langue du visiteur – même ID de formulaire, 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 ; Ninja Forms Multilingual détermine la version dans la bonne langue au moment de l’affichage.

L’exception – lorsque vous souhaitez vraiment des formulaires différents par langue. Si vous avez besoin de formulaires structurellement différents par langue (champs différents, Actions différentes, logique différente), créez des formulaires Ninja Forms distincts (un par langue) et insérez le shortcode de chacun 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 avec les constructeurs de pages

Si votre page est construite avec Divi, Elementor ou un autre constructeur de pages qui enveloppe les shortcodes dans son propre module de texte, le shortcode peut ne pas toujours survivre proprement à 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 bloc ou le shortcode du formulaire. L’éditeur de blocs natif de WordPress et l'éditeur classique ne présentent pas ce problème.

Étiquettes et types de champs

Chaque étiquette de champ, espace réservé et option de Ninja Forms apparaît dans la tâche de traduction. Le catalogue complet des champs est traduit : texte, paragraphe, nom, e-mail, adresse, téléphone, liste (sélection, radio, case à cocher, sélection multiple), nombre, date/heure, téléchargement de fichier, soumission.

Les champs répéteurs (Repeater Fields) se traduisent au niveau de la ligne : l’étiquette du bouton d’ajout de ligne et chaque étiquette de champ par ligne se trouvent dans la tâche de traduction. Les traducteurs voient la structure du répéteur intacte, l’étiquette de chaque sous-champ constituant une ligne traduisible.

Champs de sélection d’image

Les champs de sélection d’image associent une miniature à une étiquette textuelle. Ninja Forms Multilingual traduit l’étiquette pour chaque langue, tandis que l’image reste partagée. Les sélecteurs basés sur des images fonctionnent de manière identique dans toutes les langues ; seules les légendes sont traduites.

Formulaires à plusieurs étapes

Pour les formulaires à plusieurs étapes, chaque titre d’étape et les boutons de navigation par étape (Précédent, Suivant, Soumettre) sont traduits sur leurs propres lignes. La logique conditionnelle par étape survit à la traduction. La carte des valeurs maintient l’alignement des valeurs de choix sous-jacentes entre les langues.

Après la traduction, parcourez le flux à plusieurs étapes dans chaque langue pour confirmer que la navigation est naturelle et que les branchements conditionnels se déclenchent toujours aux bonnes étapes.

Mise en page et styles

Les résultats du concepteur de mise en page et de styles de Ninja Forms se traduisent sans perdre la mise en page. La grille, les colonnes et le style visuel sont conservés ; seul le contenu des chaînes de texte change selon la langue. Aucune étape spéciale n’est requise : traduisez le formulaire et la mise en page suit.

Enregistrement de la progression

Pour les formulaires où l’enregistrement de la progression (Save Progress) est activé, les invites côté visiteur sont traduites :

  • L’étiquette du bouton Enregistrer la progression.
  • L’objet et le corps de l’e-mail contenant le lien de reprise.
  • Le message de succès après l’enregistrement.

Ces trois éléments se trouvent dans la tâche de traduction. Après la traduction, faites un test en enregistrant en cours de route un formulaire dans chaque langue et en confirmant que l’e-mail de reprise arrive dans la bonne langue.

Messages de validation par champ

Chaque champ possède son propre texte de validation : erreur de champ obligatoire, erreur de format, message de validation personnalisé. Chacun d’eux apparaît dans la tâche de traduction. Le texte de l’anti-spam et du pot de miel (Honeypot) se traduit via WPML Traduction de chaînes (et non dans la tâche de traduction du formulaire).

Action de message de succès et Action de redirection après soumission

Le texte de remerciement en ligne de l’Action de message de succès se traduit par langue. L’URL de l’Action de redirection après soumission est également traduisible. Définissez une URL de remerciement différente pour chaque langue afin que les visiteurs atterrissent sur une page correspondant à leur langue après la soumission.

Action d’e-mail

Chaque Action d’e-mail sur le formulaire se traduit indépendamment. À, Nom de l'expéditeur, Objet et Message de l'e-mail apparaissent tous dans la tâche de traduction. Pour les formulaires comportant plusieurs Actions d’e-mail (notification à l’administrateur + confirmation au visiteur, par exemple), chaque Action est traduite séparément afin que le texte par langue soit indépendant.

Une limite connue

Les balises de fusion (merge tags) à l’intérieur des modèles d’Action d’e-mail ne se traduisent pas par langue. L’insertion de la balise de fusion utilise le modèle de la langue source, de sorte que les données du formulaire sont substituées, mais les phrases environnantes restent dans la langue source. Ce problème est suivi sur la page des anomalies connues. Solution de contournement : construisez les phrases environnantes sans balises de fusion partout où la différence de langue a de l’importance, ou acceptez la limite pour les textes à faible enjeu.

Actions d’intégration

L’architecture des Actions de Ninja Forms signifie que chaque intégration est une étape du flux de travail par formulaire. Le texte visible par le visiteur de chaque Action se traduit :

  • Actions Webhook. Le corps de la requête et toutes les étiquettes visibles par le visiteur se traduisent ; les valeurs des champs restent canoniques afin de ne pas perturber les points de terminaison de réception.
  • Mailchimp / AWeber / Constant Contact / ActiveCampaign / Campaign Monitor / CleverReach / Drip / EmailOctopus / Emma / Kit / MailerLite / MailPoet. Les étiquettes de liste / segment / tag se traduisent si elles existent en tant que chaînes de texte au niveau du formulaire.
  • HubSpot / Salesforce / ZohoCRM. Les étiquettes de pipeline / étape / formulaire se traduisent.
  • Zapier / Slack / Trello. Les chaînes de texte des canaux, des étiquettes et du nom de formulaire du webhook se traduisent.

Pour les intégrations de paiement (Stripe, Authorize.net, Elavon, PayPal), les descriptions d’achat et les étiquettes des boutons visibles par le visiteur se traduisent. Effectuez une transaction de test dans chaque langue en utilisant le mode test du processeur de paiement et confirmez que le texte du reçu s’affiche correctement.

Une limite connue – Soumission de formulaire PDF

Le module complémentaire Ninja Forms PDF Form Submission ne génère pas de PDF lorsque Ninja Forms Multilingual est activé sur des formulaires pour lesquels des traductions sont configurées. Ce problème est suivi sur un fil de discussion sur le forum. Solution de contournement : désactivez le module complémentaire PDF pour les formulaires traduits jusqu’à ce que la compatibilité soit résolue.

Pièges courants

  • Le corps de l’Action d’e-mail contient des éléments non traduits autour des balises de fusion. Limite connue (voir ci-dessus). Restructurez le corps de l’e-mail pour placer le texte traduit en dehors des insertions de balises de fusion, ou acceptez cette limite.
  • Les e-mails de notification à l’administrateur arrivent dans la langue source. Confirmez que l’Action d’e-mail que vous testez a été renvoyée pour traduction après votre dernière modification. Si le problème persiste, consultez le fil de discussion récurrent sur le forum pour connaître l'état de la situation.
  • La logique conditionnelle cesse de se déclencher dans les formulaires traduits. Une étiquette de choix a été modifiée dans la langue source après la traduction. Renvoyez le formulaire pour traduction afin d’actualiser la carte des valeurs.
  • La soumission de formulaire PDF cesse de fonctionner. Désactivez le module complémentaire ou supprimez la traduction en attendant la résolution du problème de compatibilité.

Écrit par Amir · Dernière mise à jour le 2 juillet 2026

Écrit par Amir · Dernière mise à jour 2 juillet 2026