منشور متعدد اللغات في ديسكورد

discourse-multilingual-post

إضافة Discourse تتيح إصدارات محلية متعددة لمحتوى المنشور.

هذه الإضافة هي دليل على المفهوم: فبدون إمكانية ترجمة عناوين المواضيع، لا تكون مفيدة كثيرًا.

كيفية الاستخدام

في المنشور، استخدم كتل [lang=xx]:

[lang=en]
Hello World!
[/lang]
[lang=fr]
Bonjour monde !
[/lang]
[lang=de]
Hallo Welt !
[/lang]

النتيجة:

Hallo Welt !

يجب أن تكون أكواد الدول مكونة من حرفين (لا تدعم المناطق).

كيفية عملها

عند عرض المنشور، تبحث الإضافة عن كتلة [lang=xx] واحدة لعرضها. ستتوقف عن البحث بمجرد العثور على:

  1. الكتلة المحددة لـ لغة المستخدم (كما تم تحديدها بواسطة Discourse)
  2. الكتلة المحددة لـ اللغة الافتراضية لمثيل Discourse
  3. الكتلة الأولى

المستودع

https://github.com/sylque/discourse-multilingual-post

13 إعجابًا

فريق Discourse، هل لديكم أي فكرة عن كيفية ترجمة عناوين المواضيع؟

ما أود فعله هو التالي:

  • تحديد ترتيب للغات، على سبيل المثال “en,fr,de”
  • السماح للمستخدمين بكتابة عناوين المواضيع بهذه الطريقة: Hello World#Bonjour monde#Hallo Welt
  • عند عرض عنوان موضوع في Discourse، تعديله ليحتفظ فقط باللغة الصحيحة

ومع ذلك، لم أجد أي خطاف (hook) على جانب العميل لتعديل العنوان. هل لديكم أي فكرة؟

6 إعجابات

هل فكرت في معالجة العناوين في Rails؟ اللغة الافتراضية هي اللغة الحالية، بينما العناوين الإضافية هي حقول موضوع مخصصة. بعد ذلك، قم بتعديل المُسلسلات لإرسال العنوان المختار باللغة المطلوبة في الحمولة.

8 إعجابات

عمل رائع!

أؤيد هذا الرأي تمامًا. أعتقد أن معالجة العناوين من جانب الخادم هي الخيار الأفضل.

في الواقع، أنا بصدد بناء إضافة (plugin) متعددة اللغات (تقريبًا مكتملة) تتيح ترجمة:

  1. الوسوم (Tags)
  2. أسماء الفئات
  3. وصف الفئات

بالإضافة إلى لوحة تحكم لإدارة اللغات والإعدادات المحلية (locales) والعديد من الأمور الأخرى مثل فلاتر محتوى اللغة الخاصة بكل مستخدم.

قد يكون هناك مجال لدمج الجهود هنا.

14 إعجابًا

مرحبًا! أنا أحب هذا الملحق وبساطته، وأعتقد أنه سيكون أكثر فائدة إذا كان يدعم تزيين صفحات discourse (الأسئلة الشائعة/القواعد، شروط الخدمة، سياسة الخصوصية) نظرًا لأن العناوين تُترجم على أي حال. لقد حاولت إنشاء نسخة منه وتطويرها بنفسي، ولكن بصراحة أنا مبتدئ تمامًا. رغم أنني أشعر بأنه يحتاج إلى إعادة كتابة حول decorateWidget() بدلاً من decorateCooked().

إعجاب واحد (1)

إضافة زخرفة لصفحة ثابتة في Discourse (مثل الأسئلة الشائعة/المبادئ التوجيهية، وشروط الخدمة، وسياسة الخصوصية) ستكون ميزة رائعة. ومع ذلك، لست متأكدًا مما إذا كانت decorateWidget تحتوي على خطاف للصفحات الثابتة. هل لدى أحد أي تلميح حول هذا؟