alaag قمت بتنصيب اضافة WPSchoolpress وتعريبها ولكن عند اخال البيانات تظهر اشارات استفهام كما هو موضح في الصورة عما بان القالب عربي وترميز اللغة utf-8
مرحبا أخي العزيز،
إضافة WPSchoolPress للأسف لا تدعم أي لغة أخرى غير اللغة الإنجليزية، لكن رغم هذا يمكننا حل المشكلة ببساطة.
توضيح ما قبل المشكلة
لتعرف المشكلة التي تجعل النصوص العربية تظهر كأنها علامات استفهام، يجب أن تعرف أولًا الطريقة التي تعمل بها الإضافة وسأبسطها قدر الإمكان في النقاط التالية بدون الخوض في تفاصيل برمجية.
- عندما قمت بتثبيت الإضافة أول مرة > تم إنشاء مجموعة جداول في قاعدة البيانات تابعة لهذه الإضافة، فإذا حاولت مثلا إضافة بيانات معلم جديد، سيقوم كود الإضافة بإرسال هذه البيانات إلى جدول البيانات المحدد في قاعدة البيانات.
- لتفهم قاعدة بيانات الموقع البيانات المرسلة لها، فإنها تعتمد على عدة أمور منها الترميز والـ Collation. الترميز (يمثل WHAT) أو الرموز والأحرف التي سيتم تخزينها في قاعدة البيانات والـ Collation (يمثل HOW) أو طريقة التعامل مع هذه الرموز.
المشكلة
في حالتنا، الإضافة أنشأت مجموعة جداول بيانات تبدأ بالاسم wp_wpsp، لكنها أنشأتها على الترميز latin1_swedish_ci. هذا الترميز يدعم الأحرف اللاتينية الغربية ولا يدعم الأحرف العربية.
وبالتالي عندما تستقبل قاعدة البيانات التابعة لموقعك البيانات العربية الواردة من الإضافة وتحاول تخزينها لديها فإنها لا تتعرف بشكل صحيح على الحروف ولذلك تضع مكان كل حرف علامة استفهام (؟) للإشارة أنها لم تفهم ما هذا الرمز.
قد تمتد المشكلة إلى احتمالية أن يكون المرسل (الإضافة) لا تتأكد من حفظ البيانات بعد الإرسال بالشكل الصحيح، وحينها سنحتاج إلى تصحيح كود الحفظ.
الحل
المشكلة الأكبر لدينا والتي يجب حلها أولا، هي في ترميز جداول البيانات التي تم إنشائها باستخدام الترميز latin1_swedish_ci الذي لا يدعم ولا يفهم اللغة العربية. وإذن الحل هو تغيير الترميز إلى آخر يدعم اللغة العربية وأقترح التغيير إلى utf8mb4_unicode_ci لأن هذا الترميز يدعم تعدد اللغات ومنها اللغة العربية؛ حيث أنه يدعم وبشكل كامل مجموعة Unicode بما فيها الحروف التي تتكون من 4 بايت (مثل الرموز التعبيرية emojis).
طريقة تحويل الترميز
هناك العديد من الطرق التي يمكنك الاعتماد عليها، لكن قبل البدء في تنفيذ أي طريقة منهم يجب أولا أخذ نسخة احتياطية من قاعدة البيانات ويفضل من كامل الموقع.
أبسط طريقة تحويل هي باستخدام إضافة Database Collation Fix. بعد تثبيت الإضافة ستجد تاب باسم Collation Fix في الأدوات. حدد الخيار Force Collation Algorithm to وتأكد أنك اخترت الترميز المطلوب ثم أضغط على Fix Database Collation وانتظر حتى انتهاء تحميل الصفحة.
الآن جرب إضافة تعديل البيانات القديمة لديك أو إضافة بيانات معلم جديد وستضاف لديك بشكل صحيح.
وإذا استمرت المشكلة فيجب التأكد أولا أن الترميز المستخدم لجداول الإضافة هو الصحيح (نتأكد أن إضافة Database Collation Fix أتمت عملها بشكل صحيح)، ثم بعدها نفكر في تعديل كود الإضافة المسؤول عن حفظ البيانات.