- الحالة
- في انتظار المطور
- النوع
- خطأ برمجي
- تم الإبلاغ عنه لـ
- Complianz | GDPR/CCPA Cookie Consent 7.5.0
- الإضافة/القالب ذو الصلة
- Complianz | GDPR/CCPA Cookie Consent
- وسوم الموضوع
- Compatibility
نظرة عامة على المشكلة
عندما تستخدم Complianz | GDPR/CCPA Cookie Consent على موقع لغته الافتراضية ليست الإنجليزية، تُسجل بعض السلاسل النصية للإضافة في WPML → ترجمة النصوص مع تعيين الإنجليزية كلغة مصدر.
تُسجل Complianz بعض السلاسل النصية للافتة ملفات تعريف الارتباط الخاصة بها بعد أن يترجمها WordPress. في موقع باللغة الإسبانية، تُحفظ السلسلة النصية الافتراضية Accept باسم Aceptar، وتُسجل Complianz Aceptar بدون لغة مصدر. ثم تتعامل WPML مع السلسلة النصية على أنها باللغة الإنجليزية.
يؤثر هذا على السلاسل النصية للافتة ملفات تعريف الارتباط والسلاسل النصية التي تُسجلها Complianz من خلال دالة المساعدة الخاصة بها cmplz_register_translation(). لا تتأثر قاعدة بيانات ملفات تعريف الارتباط الخاصة بالإضافة، لأن هذا الكود يُسجل القيم الإنجليزية.
حل بديل مؤقت
أنشئ نسخة احتياطية كاملة لموقعك قبل المتابعة.
يُغيّر الجزء الأول كود الإضافة، بحيث تُسجل Complianz سلاسلها بلغة الموقع. أرقام الأسطر مأخوذة من Complianz 7.5.5. طبّق التغيير مرة أخرى بعد كل تحديث للإضافة Complianz، حتى تُصدر الإضافة الإصلاح.
- افتح الملف …/wp-content/plugins/complianz-gdpr/cookiebanner/class-cookiebanner.php.
- ابحث عن السطرين 491 و 494.
- استبدل:
icl_register_string( 'complianz', $fieldname . $key, $string ); do_action( 'wpml_register_single_string', 'complianz', $fieldname, $string ); - بـ:
$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 ); - افتح الملف …/wp-content/plugins/complianz-gdpr/functions.php. يُسجّل هذا الملف عناوين المستندات وعناوين URL والإعدادات في الدالة cmplz_register_translation().
- ابحث عن السطرين 2255 و 2258.
- استبدل:
icl_register_string( 'complianz', $fieldname, $string ); do_action( 'wpml_register_single_string', 'complianz', $fieldname, $string ); - بـ:
$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 ); - احفظ اللافتة مرة أخرى في Complianz → Cookie banner، حتى تُسجّل الإضافة السلاسل بلغة الموقع.
يفيد تغيير الكود السلاسل الجديدة فقط. أما السلاسل التي سجلتها Complianz بالفعل فستحتفظ باللغة الإنجليزية كلغتها المصدر، لذا صحّحها يدوياً:
- اذهب إلى WPML → ترجمة النصوص.
- في Select strings within domain، اختر النطاق complianz.
- حدد السلاسل التي تعرض اللغة الخطأ.
- افتح Change the language of selected strings في أسفل الصفحة.
- اختر اللغة الحقيقية للسلاسل، على سبيل المثال الإسبانية، وطبّق التغيير.
- ترجم السلاسل إلى لغاتك الثانوية.