Démarrer votre site WordPress en quelques minutes

Comment traduire les formulaires Gravity Forms

Dernière mise à jour le 21 janvier 2022 Publié le 14 novembre 2013
Comment trouver les ID des formulaires Gravity Forms

La traduction de formulaire GravityForms est parfois une tâche fastidieuse. Auparavant, j’utilisais une technique qui consiste à utiliser l’extension WPML pour traduire les formulaires. Malheureusement, je me suis heurté à plusieurs problèmes avec cette méthode et j’ai souhaité trouver une technique alternative.

Création d’un deuxième formulaire

Il ne s’agit pas vraiment d’une traduction, car vous devrez créer 2 formulaires, un pour chaque langue. Par exemple, un formulaire « Nous joindre » et un formulaire « Contact US ».

Création d’un modèle

Vous devrez créer obligatoirement un modèle. Pour créer le modèle, commencer par copier le fichier « page.php » et renommer cette copie par « template-nous-joindre.php »

Ajoutez ensuite le nom du modèle au début du fichier.

<?php /* Template name: Nous Joindre */ ?>

Vous avez maintenant le modèle « Nous Joindre », disponible dans l’administration WordPress.

Ajoutez ensuite dans votre nouveau modèle, à l’endroit désiré, le code ci-dessus. Remplacez simplement les ID par les ID de vos deux formulaires.

Note: Il est à noter que nous utilisons ici WPML pour détecter la langue en cours. La technique présentée ci-dessous fonctionne néanmoins avec toutes autres extensions de gestion de langues. Si tel est le cas, il vous suffit de changer cette variable globaleICL_LANGUAGE_CODE pour ce que vous voulez.

<?php
// Just change the form ID for your form ID
if( ICL_LANGUAGE_CODE == 'fr'){
	gravity_form(5, $display_title=true, $display_description=true, $display_inactive=false, $field_values=null, $ajax=true, $tabindex);
}else{
	ob_start();
	gravity_form(6, $display_title=true, $display_description=true, $display_inactive=false, $field_values=null, $ajax=false, $tabindex);
	$ob_content = ob_get_contents();
	ob_end_clean();
	echo str_replace(
		array(
			'Ce champ est requis',
		),
		array(
			'This field is required',
		),
		$ob_content
	);
}
?>

Pour trouver les ID de vos formulaires Gravity Forms, vous devez vous rendre dans la section « Formulaires » de l’administration WordPress.

Comment trouver les ID des formulaires Gravity Forms

Activer votre modèle

Rendez-vous dans la page voulue et activez le modèle créé à l’étape précédente.

choisir-un-modèle

Directive et Astuce supplémentaire

Ajouter des chaînes à traduire

Si vous devez traduire d’autres chaînes, ajouter simplement une valeur au tableau comme ceci:

array(
	'Ce champ est requis',
	'Chaîne à traduire',
),
array(
	'This field is required',
	'String to translate',
),

Traduire le message d’erreur

Il est également possible que le message d’erreur des formulaires soit toujours dans la langue par défaut. Vous pouvez changer cela en ajoutant ceci dans votre fichier « functions.php ».

// change validation message error in english
if( ICL_LANGUAGE_CODE == 'en' ){
	add_filter("gform_validation_message", "change_message", 10, 2);
}
function change_message($message, $form){
  return 'The form does not appear correctly filled. Errors have been highlighted below.';
}