يحتاج Discourse Assign إلى دعم لأسماء مجموعات Unicode

تبدو مشكلة دعم Discourse-Assign الضعيف للأحرف غير الإنجليزية مما يؤدي إلى خطأ 500 موضوعًا شائعًا، لذلك سنناقش هنا مشكلة تنشأ في تركيبة محرجة إلى حد ما من الظروف:

يحتوي Discourse على ميزة مساعدة مفيدة - فهي تستبدل السلاسل النصية على الصفحة بأسماء مُوطَّنة في كل مرة تقوم فيها بتشغيل Jobs::EnsureDbConsistency. يجب الإشادة بهذه الميزة على أنها ميزة سهلة الاستخدام للغاية، ولكن في هذه الحالة، يمكن أن تسبب ضررًا أكثر من نفعها: بأخذ اللغة الصينية المبسطة كمثال، نقوم أولاً بضبط اللغة الافتراضية على هذه اللغة غير الإنجليزية، ثم نقوم بتشغيل Jobs::EnsureDbConsistency. بعد ذلك، سيؤدي ذلك إلى تغيير أسماء المجموعات التلقائية (Automatic groups)، وبعد ذلك عندما يفتح المستخدمون صفحة “مُعيَّن” (Assigned) لتلك المجموعة، فإنه يؤدي إلى تشغيل خطأ 500.


باختصار، لاستخدام Discourse-Assign بشكل طبيعي في هذه اللغات، تحتاج أولاً إلى تعيين اللغة الافتراضية على الإنجليزية وتشغيل Jobs::EnsureDbConsistency حتى تكون أسماء المجموعات باللغة الإنجليزية، ثم تعديل اللغة الافتراضية مرة أخرى إلى اللغة المستهدفة لجعل الاسم الكامل (Full Name) باللغة الصينية.


ومع ذلك، نظرًا لأن Jobs::EnsureDbConsistency يتم تشغيله بشكل دوري في الظروف العادية، ففي المرة التالية التي يتم فيها تشغيله، ستعود أسماء المجموعات التلقائية إلى اللغة المستهدفة، مما يتسبب مرة أخرى في تشغيل صفحة “مُعيَّن” (Assigned) لخطأ 500. :upside_down_face:

إعجابَين (2)