WPML
الحالة
في انتظار المطور
النوع
خطأ برمجي
تم الإبلاغ عنه لـ
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 في أسفل الصفحة.
  • اختر اللغة الحقيقية للسلاسل، على سبيل المثال الإسبانية، وطبّق التغيير.
  • ترجم السلاسل إلى لغاتك الثانوية.

جميع المشكلات المعروفة →