Sauter la navigation

Ce sujet est résolu. Voici une description du problème et de la solution.

Problème:
C'est un cas très particulier ici car le client utilisé un code personnalisé pour changer de langue.

$sitepress->switch_lang('en');

Solution:
La solution est spécifique à ce cas. J'ai offert au client un code pour retourner sur la langue actuelle après avoir basculer (voir documentation plus bas). Cependant le client a préféré utiliser un conditionnel avec la fonction is_admin() pour n'appliquer le code que dans le backend admin car cela correspondait mieux à sa situation.

Documentation:
https://wpml.org/fr/forums/topic/les-formulaires-gravityform-affiche-la-langue-dorigine-apres-la-soumissions/#post-13528499

Il s'agit du forum d'assistance technique de WPML, le plug-in multilingue pour WordPress.

Il est accessible à tous, toutefois seuls les clients de WPML peuvent y publier leurs messages. L'équipe du WPML répond sur le forum 6 jours par semaine, 22 heures par jour.

Marqué : 

Ce sujet contient 4 réponses, a 2 voix.

Dernière mise à jour par Nicolas V. Il y a 1 année et 11 mois.

Assisté par: Nicolas V..

Auteur Articles
Avril 21, 2023 at 7:24 am #13515431

sylvainC-8

Bonjour,
j'ai un soucis vraiment étrange sur un site.

Si je soumet un formulaire gravityform dans la langue traduite et qu'il y a une erreur, l'ajax re-affiche les champs dans la langue d'origine... Alors que le formulaire est bien traduit.
Et c'est uniquement les champs dans le formulaire. Le message d'erreur lui est bien affiché traduit...

Je n'arrive pas à comprendre d'où vient le soucis alors que ma configuration (plugins, site) est semblable à bon nombre d'autres projets...

Merci d'avance pour votre retour.

Avril 21, 2023 at 4:54 pm #13519257

Nicolas V.
Supporter

Les langues: Anglais (English ) Français (Français )

Fuseau horaire: America/Lima (GMT-05:00)

Bonjour,

Bienvenue sur le support de WPML.

Votre configuration semble correcte.

Pourriez vous me donner un peu plus de détails svp? Comme le site est en maintenance je n'ai pas pu tester le frontend.

- Nous parlons bien des messages d'erreur AJAX qui apparaissent lors du remplissage du formulaire (du genre "email invalide" ou "champ obligatoire")?

- Vous dites que lorsqu'un de ces messages apparait il est bien traduit mais le label du champ lui passe dans la langue par défaut?

- S'agit-il du label du champ ou du "placeholder"?
Exemple:
- Label du champ: Email
- Placeholder: votre_email@gmail.com

Enfin, n'hésitez pas à me donner un accès admin pour que je puisse regarder cela de plus près.

J'ai activé un champ privé pour votre prochaine réponse où vous pourrez partager ces informations de manière confidentielle avec notre support. Ne partagez pas votre propre compte admin, créez un nouveau compte que vous pourrez éliminer une fois l'assistance terminée.

IMPORTANT: Avant de continuer, faites un backup complet de votre site et base de données.

Nico

Avril 24, 2023 at 3:05 pm #13528499

Nicolas V.
Supporter

Les langues: Anglais (English ) Français (Français )

Fuseau horaire: America/Lima (GMT-05:00)

Bonjour,

Je n'ai pas pu regarder le code de votre thème car l'edition des fichiers du thème dans la backoffice est désactivée. De plus, cela semble être un code personnalisé et malheureusement cela va au dela de notre politique de support.

Cependant je pense que vous pouvez essayer de "retourner" à la langue actuelle de cette manière:

global $sitepress;
// Backup the current language
$current_lang = $sitepress->get_current_language(); 

// Switch to another language. E.g. English = 'en'
$sitepress->switch_lang('en');

// Whatever you have to do with add_rewrite_rule
...

// Back to the original language to not interfere
$sitepress->switch_lang( $current_lang );

Veuillez tester ce code sur un site dev ou avoir un backup comme point de restauration.

Dites moi si cela vous aide.
Nico

Avril 25, 2023 at 7:39 am #13531237

sylvainC-8

Bonjour Nicolas,
merci pour votre retour. Entre temps j'ai trouvé comment résoudre le souci.
J'utilisais bien le code que vous m'avez transmis pour générer les add_rewrite_rules, mais il fallait simplement englober la fonction dans un is_admin() pour éviter d'intérférer sur le front...

Merci à vous !

Avril 25, 2023 at 6:02 pm #13536023

Nicolas V.
Supporter

Les langues: Anglais (English ) Français (Français )

Fuseau horaire: America/Lima (GMT-05:00)

Bonjour,

Je suis content que vous ayez trouvé une solution! Je ferme donc ce ticket.

N'hésitez pas à nous contacter si vous avez de nouvelles questions, nous serons heureux de vous aider.

Bonne fin de journée 🙂