@neil آسف على التأخير في الرد، لكنني استفدت من عملك هنا في إضافة جديدة أقوم ببنائها لتطبيق مجموعة الميزات التي حددتها أعلى. تستخدم هذه الإضافة نسخة معدلة من الهيكلية التي أضفتها، والتي تُلزم جميع المواضيع بحمل وسم لغة إذا تم تفعيل إعداد الموقع. لذا، شكرًا لك!
مزيد من الملاحظات حول إضافة 'تعدد اللغات' (قيد التطوير) إذا كان أي شخص مهتمًا.
أرجو أن تكون واجهة المستخدم واضحة إلى حد ما، لكن إليك بعض الملاحظات حول التسمية والسلوك الحالي:
يُقصد بنوع “الأساس” أن اللغة جزء من “قائمة الأساس” للغات. حاليًا، قائمة الأساس هي القائمة الكاملة للغات في قاعدة كود Discourse، وتحديدًا هذه القائمة: discourse/config/locales/names.yml at main · discourse/discourse · GitHub. تم بناء الإضافة بطريقة تسمح بتغيير قائمة الأساس في وقت لاحق إذا لزم الأمر (رغم الحاجة لبعض التعديلات البسيطة في الكود).
ستلاحظ أن عددًا من لغات قائمة “الأساس” مُدرجة على أنها “بدون ترجمات”. وهذا يعكس حقيقة أن قائمة اللغات المدعومة في Discourse هي مجموعة فرعية من قائمة اللغات في names.yml. بلا شك، الهدف هو إضافة المزيد من اللغات المدعومة بمرور الوقت، لكن هذا يعتمد على ترجمة Discourse إلى لغات مختلفة (يتم إدارتها عبر Transifex).
يمكنك إضافة لغات جديدة برفع ملف بصيغة .yml بالتنسيق التالي:
iso_code: الاسم الأصلي
iso_code: الاسم الأصلي
...
يمكنك تضمين عدد غير محدود من اللغات في الملف. تقوم برفع الملف بالضغط على “رفع اللغات” واختيار ملف .yml. سيتم تحديث القائمة تلقائيًا بإضافة اللغة الجديدة. اللغات المضافة بهذه الطريقة ستظهر كنوع “مخصص”.
يمكنك ترتيب القائمة حسب أي من العناوين (باستثناء “الإجراءات”) بالنقر على العنوان. يمكنك أيضًا تصفية القائمة باستخدام حقل التصفية في الزاوية العلوية اليسرى (مشكلة صغيرة هنا هي أن القائمة تُحدّث مع كل حرف يُضاف؛ سأصلح هذا لاحقًا).
تشير مربعات الاختيار في عمودي المحتوى واللغة إلى ما إذا كان يجب استخدام اللغة كمرشح للمحتوى و/أو كإعداد للغة المحلية. وظيفة إدارة اللغة المحلية غير مكتملة بعد، لذا لن تعمل مربعات الاختيار في هذا العمود بشكل صحيح (وستظهر مربع اختيار للغات المخصصة التي لا تملك ترجمات للغة المحلية بدلاً من “بدون ترجمات”).
ستؤدي مربعات الاختيار في عمود المحتوى إلى تغيير توافر لغات المحتوى للمستخدمين، أي إذا تم تعطيل هذا المربع:
لن يكون هناك وسم لغة محتوى لتلك اللغة مدرجًا في محدد لغة المحتوى في المحرر.
لن يتمكن المستخدم من تحديد لغة المحتوى في ملفه الشخصي.
لاحظ أيضًا أن محددات لغة المستخدم ولغته المحلية مجمعة في أعلى إعدادات واجهته.
لاحظ أيضًا أن إعداد الموقع multilingual require language tag يحدد ما إذا كان وسم اللغة مطلوبًا. له ثلاث قيم محتملة: no (غير مطلوب من أي شخص)، yes (مطلوب من الجميع)، non-staff (مطلوب من غير الموظفين).
مرحبًا، لقد ألقيت نظرة، فما هي الطريقة للحصول على هذا النوع من الهيكلية؟
هل أفهم أن ‘اللغات الأخرى’ هي فئة، واللغات المختلفة هي فئات فرعية؟
هل هذا صحيح؟
هل ينشر المساهمون هنا وفقًا للغاتهم الخاصة؟
هل يمكنهم نشر جميع المواضيع دون أي موضوع محدد؟
شكرًا لك