Comment traduire les 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.
Activer votre modèle
Rendez-vous dans la page voulue et activez le modèle créé à l’étape précédente.
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.';
}