إضافة متعددة اللغات :کرہ مع خطوط الطول والعرض:

يتيح ملحق متعدد اللغات لمسؤولي المنتديات متعددة اللغات إنشاء بيئة غنية وواضحة لجميع المستخدمين والضيوف، حتى لو لم يتحدثوا اللغة الافتراضية أو اللغة السائدة في المنتدى.

:page_facing_up: احصل على الكود

:book: اقرأ التوثيق


نظرة عامة على الميزات

يمد ملحق متعدد اللغات نظام اللغة الحالي في Discourse ليمنحك:

  1. واجهة إدارية لجميع اللغات المستخدمة في منتداك؛

  2. نظام لغة المحتوى الذي يتيح لك وللمستخدمين تصفية المحتوى في منتداك حسب اللغة؛

  3. تكامل مع ملحق مترجم Discourse، الذي يؤتمت جوانب من نظام لغة المحتوى؛

  4. القدرة على ترجمة أسماء التصنيفات والوسوم والنصوص شبه الثابتة الأخرى في منتداك؛

  5. القدرة على تعطيل استخدام لغات الواجهة الحالية في منتداك؛

  6. القدرة على إضافة لغات واجهة مخصصة (“محليات”) مباشرة إلى منتداك؛

  7. ميزات لغة ضيوف محسّنة تشمل مبدّل لغة واجهة الضيف (“المحلية”) (كشريط تذييل أو قائمة)؛ و

  8. حقول اختيار لغة الواجهة ولغة المحتوى عند التسجيل (قريبًا).


:point_right: يرجى الانتباه

تعمل جميع الميزات المذكورة أعلاه فوق نظام اللغة الحالي في Discourse، وتعمل بالتزامن مع جميع ميزات هذا النظام (انظر التفسير الأطول هنا).

إذا كنت ترغب في إضافة لغات واجهة (“محليات”) إلى Discourse، فإن أفضل طريقة للقيام بذلك هي اتباع الخطوات الموضحة هنا: How to add a new language. يمكنك أيضًا إضافة محلية عبر ملحق، كما هو موضح هنا.

يجب اعتبار إمكانية القيام بذلك عبر واجهة المسؤول في هذا الملحق فقط بعد استنفاد الطرق المدعومة من Discourse. ستكون أي لغات تُضاف إلى Discourse عبر الطرق المدعومة من Discourse متاحة تلقائيًا لجميع ميزات هذا الملحق.


لقطات شاشة توضيحية

واجهة الإدارة

ترجمات النصوص شبه الثابتة (ومبدّل محلية الضيف)

نظام لغة المحتوى

Screen Shot 2020-02-25 at 2.24.51 PM

تكامل نظام لغة المحتوى مع ملحق المترجم


الشكر والامتنان

تم جعل هذا الملحق ممكنًا بفضل دعم مؤسسة ويكيميديا، مع دعم خاص من @Elena_Lappen و@icaria36، اللذين قدما مدخلات كبيرة في تصميم مجموعة الميزات.

لمزيد من النقاش حول الفكرة الكامنة وراء هذا الملحق، راجع:

Structuring a multilingual community

68 إعجابًا

واو! لقد كنت مشغولاً. :slight_smile: عمل رائع، @angus! أتطلع لرؤية أمثلة على هذا في الواقع. أخبرني إذا كنت بحاجة إلى شخص مثلي لمراجعتها وإعطاء ملاحظات.

كان أحد الفجوات هو عدم وجود ميزة تتيح للموظفين تحسين ترجمات المنشورات المقدمة من خلال إضافة الترجمة - هل سيكون ذلك جزءًا من هذا الجهد؟

10 إعجابات

حسناً. لا أستبعد ذلك، لكن هذا الأمر يقع على الأرجح ضمن نطاق مكون الترجمة الإضافي.

هناك ميزة ذات صلة إلى حد ما قمت ببنائها في وقت سابق لغرض آخر، وهي أيقونة عداد صغيرة تظهر للمستخدمين عندما يعود النظام إلى اللغة الافتراضية بسبب عدم وجود ترجمة. عند النقر على الأيقونة، يظهر ما يلي:

“توجد ترجمات مفقودة لصفحة هذه. ساعدنا في ترجمتها هنا: (رابط إلى منصة Transifex الخاصة بـ Discourse).”

7 إعجابات

عمل رائع كما هو معتاد يا أنغوس! لقد قمت باختباره على موقعي ولديّ بعض المشكلات الصغيرة وبعض الأسئلة.

المشكلات

  1. عند تعديل موضوع موجود، لا يتبع نص القائمة المنسدلة ألوان السمة:

  1. إعداد لغة المحتوى يصبح صعب الاستخدام جدًا بعد بضع لغات بسبب السطر الواحد

الأسئلة

  1. يبدو أن العديد من مواضيعنا القديمة تحصل على علامة اللغة بشكل رجعي، وهو أمر مرغوب فيه، ولكن فقط عدد قليل منها حتى الآن. هل سيعمل مهمة لتطبيق العلامة على جميع المنشورات الموجودة في النهاية؟ إذا لم يكن كذلك، هل هناك طريقة لتطبيق علامة لغة على جميع المنشورات الموجودة؟ كان موقعنا باللغة الإنجليزية فقط حتى هذه النقطة، لذا أريد أن يكون لجميع المنشورات الموجودة علامة en.
  2. عند تعيين لغات متعددة تحت لغات المحتوى، هل يجب أن تتمكن من التصفية حسب لغة معينة؟ حاليًا، عند النقر على إحدى اللغات في القائمة المنسدلة، لا يحدث شيء.
إعجابَين (2)

شكرًا لك على الملاحظات، ديفيد، وعلى تجربتك للميزة. لقد دفعتُ عددًا من التحديثات التي، من بين أمور أخرى، تحل المشكلتين اللتين أشرت إليهما أعلاه.

ليس بعد. حاليًا، فقط المنشورات التي تُترجم بواسطة إضافة المترجم ستحصل تلقائيًا على وسم المحتوى بشكل رجعي (في حال كانت إضافة المترجم مفعلة وميزة المزامنة مفعلة).

يمكنني إضافة مثل هذه المهمة، لكنها ستحتاج إلى أخذ لغة محددة كمعلمة والتشغيل ضمن نطاق محدد. بالإضافة إلى نطاق ‘على مستوى الموقع بالكامل’، يمكنني تنفيذها على أساس كل فئة، أو على أساس كل وسم (غير محتوى) (أي تطبيق وسم المحتوى هذا على جميع المواضيع في هذه الفئة أو التي تحمل هذا الوسم الآخر). ما الذي يناسبك؟

لا، القائمة مصممة فقط لإظهار اللغات التي تم تعيينها حاليًا كلغات محتوى. هل يمكنك إرشادي خطوة بخطوة إلى كيفية تتوقع (أو تود) أن تتصرف هذه الميزة؟

إعجابَين (2)

شكرًا لك يا أنغوس، لقد حلّ هذا مشاكلي.

في مثالي، أود تطبيق وسم en على جميع المنشورات الموجودة التي لا تحمل وسم لغة. هل هذا واسع جدًا؟ المشكلة هي أنه إذا قام المستخدم بضبط لغته المفضلة على الإنجليزية والإسبانية مثلًا، فسيرى فقط المنشورات التي تحمل وسم اللغة، ولن يرى آلاف المنشورات التي لا تحمل أي وسم.

نظرًا لوجود قائمة وتظليل العناصر عند تمرير المؤشر، فإن ذلك يوحي بأنها قابلة للنقر. وتوقعي في هذه الحالة هو أنه عند النقر على أحدها، سيتم تصفية منشوراتك حسب تلك اللغة. أعتقد أن هذه يمكن أن تكون ميزة مفيدة للفرز حسب اللغة، لكنها ليست شيئًا أطمح إليه بشدة.

من ناحية أخرى؛ أود حقًا الحصول على خيار نقل زر اللغة. لدي بالفعل العديد من العناصر في شريط التنقل الخاص بي، ويبدأ بالازدحام. كما أن الزر المظلل يبدو خارج السياق فوق زر “موضوع جديد”، مما يجبر زر “موضوع جديد” على النزول للأسفل. أفترض أنه لا يمكن نقله إلى بداية شريط التنقل، مثلاً قبل الأحدث؟ أو يمكن أن يكون عائمًا في زاوية كما هو الحال في الصفحة الرئيسية الخاصة بي على ووردبريس https://naturephotographers.network ، أو يمكن وضعه في الرأس مشابهًا للخيار المتوفر في إضافة الترجمة.

أتفهم منطقك في وضعه في شريط التنقل، لأنك تقوم بالفرز بطريقة مشابهة للأزرار الأخرى، لكن الأمر هو أنك ستضبط هذا مرة واحدة فقط ثم تنساه. الأمر ليس كما لو أنك ستقوم بالفرز بانتظام حسب لغات مختلفة.

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

3 إعجابات

بالنسبة لي، هذا هو السلوك المطلوب. يجب ألا يرى المستخدمون منشورات بلغات أجنبية. وإذا لم يكن هناك منشور بلغتهم، فيجب ألا يظهر أي منشور.

ومع ذلك، كخيار، سيكون من الجميل وجود ميزة “الوسم الجماعي”.

إعجابَين (2)

أتفق، الحل الذي اقترحته في Pavilion هو أنه إذا تطابقت اللغة الافتراضية مع إحدى اللغات المحددة للموضوع، فسيتم عرض جميع المنشورات بدون وسوم. لكن الوسم الجماعي سيكون الخيار الأفضل.

@angus، لست متأكدًا بنسبة 100% مما إذا كان هذا مرتبطًا بإضافتك أم بتغيير في النواة، لكن قد يكون هناك خطأ واجهته. عند تحرير منشور موجود، إجراء بعض التغييرات ومحاولة الحفظ، أحصل على هذه الرسالة: لا يمكن استخدام أي من الوسوم التي اخترتها. لا توجد وسوم محددة باستثناء وسم en، و"الحد الأدنى لعدد الوسوم المطلوبة في موضوع" مضبوط على 0. هل لديك أي أفكار؟

إعجابَين (2)

لقد واجهت مشكلة أخرى اليوم يا أنغوس، فقد كان لدي سابقًا وسم ig (اختصار لـ Instagram) تم حذفه بواسطة الإضافة لإفساح المجال للغة الإيجبو. أفترض أنه لا توجد طريقة لاستعادته؟ حاولت إيقاف الإضافة على أمل أن يكون لا يزال موجودًا، ولكن للأسف يبدو أنه قد رحل منذ زمن. أعرف أن هذا من المخاطر التي تتحملها عند تجربة الإضافات. ربما ترغب في إضافة تحذير بأنها ستحذف أي وسوم تحمل نفس الاسم.

3 إعجابات

سأراسلك عبر الرسائل الخاصة بخصوص ذلك (من غير المرجح أن يكون قد ضاع).

أما الاقتراحات والملاحظات المفيدة الأخرى، فسأراجعها غدًا.

3 إعجابات

يا إلهي! أنت رائع!
أعني، أنا حقًا أقدرك. وفي الوقت نفسه، أتمنى ألا يحول هذا المنشور انتباه الناس عن عملك الرائع.

7 إعجابات

ملاحظة فقط: لقد حللنا هذه المشكلة مع ديفيد واستعدنا وسوم ig الموجودة مسبقًا.

إذا كان هناك تعارض بين وسم موجود مسبقًا ووسم لغة محتوى، فلن تكون اللغة متاحة كلغة محتوى حتى يتم حل التعارض. ستلاحظ ذلك في لوحة إدارة اللغات لديك.

سأعالج أي مشاكل أخرى وطلبات ميزات خلال الأسبوع القادم.

9 إعجابات

عزيزي أنغوس، هل من الممكن استخدام مفاتيح تبديل اللغة للضيوف فقط؟
لا أحتاج إلى استخدام جميع وظائف هذا النظام، بل أحتاج فقط إلى تمكين الضيف من تغيير لغة الواجهة.

إعجابَين (2)

تعمل كل ميزة من ميزات الإضافة بشكل مستقل.

قم بتثبيت الإضافة وقم فقط بتفعيل محوّل اللغات: Pavilion.

نحن نستخدم هذه الإضافة لهذا الغرض حاليًا على موقع thepavilion.io.

4 إعجابات

عمل رائع يا @angus!

قمنا بتثبيت الإضافة، لكن الآن لم يعد أي محتوى مرئيًا للمستخدمين، حتى لموظفي الدعم. ومع ذلك، عند تعديل فئة ما ومحاولة حذفها، تظهر لنا التحذير التالي:

الطريقة الوحيدة للوصول إلى موضوع هي اتباع الرابط الموجود في رسالة التحذير أو معرفة عنوان URL للموضوع. إذا قمنا بالوصول إلى الموضوع (RIO Paris) ثم أضفنا علامة لغة محتوى، مثل “english”، فسيصبح مرئيًا كما هو متوقع. نفترض أن إضافة متعددة اللغات تعمل بشكل صحيح، حيث يتم عرض المحتوى المرتبط بعلامة فقط. ومع ذلك، نجد ذلك مضللًا ومحيرًا عندما لا يتمكن الأشخاص من رؤية جميع المواضيع ذات الصلة دون ربط علامة لغة بها. لدينا آلاف المواضيع المنشورة سابقًا وهي غير مرئية. هل هناك حل لتعيين علامة لغة لها بسرعة، حيث لا يمكننا رؤية قائمة بها حاليًا؟

نرجو التوجيه.

تعديل: قمت بحل مشكلة الرؤية عن طريق وضع علامة على جميع مواضيع فئات معينة وفقًا للغتين المفترض استخدامها، في Rails:

  1. cd /var/discourse ثم ./launcher enter app
  2. الحصول على معرفات الفئات باستخدام rake categories:list
  3. إذا كانت الفئة التي يجب أن تحتوي فقط على مواضيع باللغة الألمانية هي 245، فاستخدم rake tags:bulk_tag_category["de",245]
إعجاب واحد (1)

أحصل على صفحة فارغة بعد تنفيذ الأمر
./launcher rebuild app

اكتشفت أن هذه الإضافة هي السبب. لا يمكنني فتح الموقع أو لوحة الإدارة.
لقد قمت بتفعيل المحتوى متعدد اللغات فقط، لكنني لم أملأ البيانات.

كيف يمكنني إعادة تعيين إعدادات هذه الإضافة في قاعدة البيانات؟

هل يعمل your.website.com/safe-mode؟

لقد قمت بتعطيل هذا الإضافة الآن. بدأت المشاكل مع اختفاء قائمة الإضافات في لوحة الإدارة. بعد ذلك، حاولت إعادة بناء التطبيق. لكن بعد إعادة البناء، لم يفتح الموقع. الآن يفتح، لكن مع تعطيل هذه الإضافة.

@angus، هل يمكنك فحص إضافة الخاص بك مع أحدث إصدار من Discourse؟

في الوضع الآمن بدون الإضافات غير الرسمية، أرى هذه الصفحة بدون قائمة الإضافات:

الوضع الآمن بدون جميع الإضافات:

هل من الممكن إعادة تعيين إعدادات هذه الإضافة من قاعدة البيانات؟

في ذلك الوقت، لم يكن أي وضع قادرًا على حل المشكلة (آمن، بدون برامج غير رسمية، بدون الكل) - في جميع الأوضاع، لم أر قائمة الإضافات المثبتة في النظام.

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