المشكلة
يقوم تهيئة المحتوى في Discourse (يدويًا أو تلقائيًا عبر Discourse AI) بعمل رائع في تهيئة عناوين المواضيع، والمشاركات، وأسماء الفئات، ووصوف الفئات. ومع ذلك، لا يمكن تهيئة قوالب المواضيع (categories.topic_template) الخاصة بالفئات. في المجتمعات متعددة اللغات، تظهر دائمًا تعبئة المسودة المسبقة باللغة الافتراضية للموقع — لجميع المستخدمين.
السلوك الحالي
- يخزّن
CategoryLocalization الحقل name وdescription لكل لغة (توفّر الخاصية Localizable دعمًا لـ “أسماء/وصوف متعددة اللغات” للمواضيع/المشاركات/الفئات).
- يستخدم محرر الكتابة دائمًا
topic_template غير المهيّأ، بغض النظر عن لغة واجهة المستخدم.
الحل المقترح
- إضافة
topic_template إلى CategoryLocalization (بما في ذلك واجهة محرر التهيئة في لوحة الإدارة).
- عند فتح عضو للمحرر في فئة معينة، استخدم القالب المطابق للغة واجهته، مع التراجع إلى القالب الافتراضي للفئة إذا لم توجد نسخة مهيّاة.
- ينطبق نفس النقص على قوالب النماذج الأحدث الخاصة بكل فئة: يمكن أن تختلف بين الفئات، لكن لا توجد نسخة مدركة للغة داخل فئة واحدة — سيتعين على الإعدادات متعددة اللغات تقسيم مجتمعهم إلى فئات منفصلة لكل لغة لتجاوز هذه المشكلة.
حالة الاستخدام
ندير مجتمعًا ثنائي اللغة (الألمانية افتراضيًا، والإنجليزية عبر الترجمة التلقائية بالذكاء الاصطناعي). توفر بعض الفئات قوالب كتابة منظمة تحتوي على عناصر قائمة تحقق ومربع [event] لمنتقي التاريخ المدمج. حاليًا، يحصل الأعضاء الناطقون بالإنجليزية على قالب ألماني فقط. حلنا البديل هو قالب ثنائي اللغة واحد (حيث يُكرر كل تسمية كـ “ألماني / إنجليزي” في سطر واحد)، وهو يعمل، لكنه غير مريح لكل من المحررين والأعضاء، ويزيد من محتوى المحرر ضعفًا.
مرتبط
- #32464 (مسار الفئات المهيّاة) — نفس نطاق التهيئة، الفئات.
3 إعجابات
أتابع طلبي الأصلي بمخطط تنفيذي ملموس — ويسعدني المساعدة في تقديم طلب سحب (PR) إذا بدا الاتجاه معقولاً.
المشكلة: قوالب مواضيع الفئات (categories.topic_template) غير قابلة للترجمة. نموذج CategoryLocalization وقلق Localizable يغطيان فقط name وdescription، ويتخطى خط أنابيب الترجمة التلقائية للمحتوى بالذكاء الاصطناعي القوالب وفقاً لذلك. يقوم المحرر دائماً بإدراج قالب اللغة الأساسية، بغض النظر عن لغة المستخدم.
حالة الاستخدام: ندير مجتمعاً ثنائي اللغة (ألماني/إنجليزي) على Discourse مع الترجمة التلقائية للمحتوى بالذكاء الاصطناعي في بيئة الإنتاج. ترجمة المشاركات/المواضيع تعمل بشكل ممتاز، لكن قوالب الفئات للمحتوى المهيكّل — نماذج تقارير الأخطاء مع قوائم التحقق، وتدفقات تأكيد الحضور عبر BBCode [event] — لا يمكن تكرارها لكل لغة، لأن BBCode الوظيفي يجب أن يوجد مرة واحدة بالضبط. الحل الوحيد هو قالب واحد بعلامات ثنائية اللغة غير مريحة (“App-Version / App version:”)، مما يضر بقابلية القراءة للجميع.
الاقتراح:
- إضافة عمود نصي قابل للقيمة الفارغة
topic_template إلى category_localizations
- المحرر: إذا كان هناك ترجمة للغة الحالية للمستخدم، استخدم قالبها؛ وإلا فاعتمد على
category.topic_template
- عرض/حفظ الحقل لكل لغة في واجهة إدارة الفئات (بجانب الاسم/الوصف المحلي)
- تضمين
topic_template في خط أنابيب الترجمة التلقائية للمحتوى بالذكاء الاصطناعي عند ترجمة الفئات (مثل description)
الهجرة بسيطة (add_column :category_localizations, :topic_template, :text)؛ العمل الرئيسي هو منطق اختيار المحرر وواجهة الإدارة.
البدائل التي تم النظر فيها:
- قالب واحد ثنائي اللغة (الحل الحالي) — ينهار مع كتل BBCode الوظيفية
- مكوّن سمة يحقن نصاً لكل لغة — هش، بدون تحقق على مستوى الخادم، يكسر محررات الواجهة البرمجية (API)