- Statut
- En attente de l’auteur
- Type
- Bug
- Signalée pour
- Complianz | GDPR/CCPA Cookie Consent 7.5.0
- Extension/thème associé
- Complianz | GDPR/CCPA Cookie Consent
- Étiquettes de sujet
- Compatibility
Aperçu de l’anomalie
Lorsque vous utilisez Complianz | GDPR/CCPA Cookie Consent sur un site dont la langue par défaut n’est pas l’anglais, certaines chaînes de l’extension sont enregistrées dans WPML → Traduction de chaînes avec l’anglais comme langue source.
Complianz enregistre certaines des chaînes de sa bannière de cookies après leur traduction par WordPress. Sur un site en espagnol, la chaîne par défaut Accept est enregistrée sous Aceptar, et Complianz enregistre Aceptar sans langue source. WPML traite alors la chaîne comme de l’anglais.
Cela affecte les chaînes de la bannière de cookies et les chaînes que Complianz enregistre via sa propre fonction d’aide cmplz_register_translation(). La base de données de cookies de l’extension n’est pas affectée, car ce code enregistre les valeurs en anglais.
Solution de contournement
Faites une sauvegarde complète de votre site avant de continuer.
La première partie modifie le code de l’extension, afin que Complianz enregistre ses chaînes de texte avec la langue du site. Les numéros de ligne correspondent à Complianz 7.5.5. Appliquez à nouveau la modification après chaque mise à jour de Complianz, jusqu’à ce que l’extension intègre le correctif.
- Ouvrez le fichier …/wp-content/plugins/complianz-gdpr/cookiebanner/class-cookiebanner.php.
- Cherchez les lignes 491 et 494.
- Remplacez :
icl_register_string( 'complianz', $fieldname . $key, $string ); do_action( 'wpml_register_single_string', 'complianz', $fieldname, $string ); - Par :
$lang = apply_filters( 'wpml_default_language', null ); icl_register_string( 'complianz', $fieldname . $key, $string, false, $lang ); do_action( 'wpml_register_single_string', 'complianz', $fieldname . $key, $string, false, $lang ); - Ouvrez le fichier …/wp-content/plugins/complianz-gdpr/functions.php. Il enregistre les titres de documents, les URL et les paramètres dans la fonction cmplz_register_translation().
- Cherchez les lignes 2255 et 2258.
- Remplacez :
icl_register_string( 'complianz', $fieldname, $string ); do_action( 'wpml_register_single_string', 'complianz', $fieldname, $string ); - Par :
$lang = apply_filters( 'wpml_default_language', null ); icl_register_string( 'complianz', $fieldname, $string, false, $lang ); do_action( 'wpml_register_single_string', 'complianz', $fieldname, $string, false, $lang ); - Enregistrez à nouveau la bannière dans Complianz → Cookie banner, afin que l’extension enregistre les chaînes de texte avec la langue du site.
La modification du code ne s’applique qu’aux nouvelles chaînes de texte. Les chaînes de texte que Complianz a déjà enregistrées conservent l’anglais comme langue source, corrigez-les donc manuellement :
- Allez dans WPML → Traduction de chaînes.
- Dans Sélectionner les chaînes dans le domaine, choisissez le domaine complianz.
- Sélectionnez les chaînes qui affichent la mauvaise langue.
- Ouvrez Changer la langue des chaînes sélectionnées au bas de la page.
- Choisissez la vraie langue des chaînes, par exemple l’espagnol, et appliquez la modification.
- Traduisez les chaînes dans vos langues secondaires.