توطين المحتوى - يدويًا وتلقائيًا مع ذكاء Discourse الاصطناعي

في هذا الموضوع، سنأخذك في جولة حول ميزات ترجمة المحتوى وكيفية تفعيلها. تنقسم الميزات إلى جزأين: ما هو متاح افتراضيًا في Discourse؛ وDiscourse AI للترجمات التلقائية.

:warning: للوصول السريع إلى الأقسام ذات الصلة، استخدم عناوين الويكي :backhand_index_pointing_right:t2:

تكييف محتوى مجتمعك

النسخة المحدثة من Discourse (3.5.0.beta7-dev) تمنحك الوصول إلى عدة ميزات محلية متاحة للإعداد في:

  • <your-site-url>/admin/site_settings/category/content_localization
إعدادات ترجمة المحتوى الجديدة في إعدادات الموقع 📸

الحصول على معلومات حول مستخدميك

أولاً، من الجيد الحصول على بعض المعلومات حول مجتمعك. يمكن لاستعلام مستكشف البيانات التالي أن يعطيك فكرة عن عدد المستخدمين الذين قد يكونون قد حددوا لغتهم في /my/preferences/interface.

SELECT locale, count(*) as count
FROM users
WHERE (locale IS NOT null AND locale <> '')
GROUP BY locale
ORDER BY count DESC
نتائج عينة من مستكشف البيانات

تعيين اللغات التي يدعمها مجتمعك

مع المعلومات أعلاه، أصبحنا الآن أكثر دراية باللغات التي يجب أن يدعمها مجتمعك.

في <your-site-url>/admin/site_settings/category/content_localization، يمكنك اختيار اللغات التي تريد دعمها.

  • تفعيل ترجمة المحتوى - يقوم بتشغيل الميزة التي تحل محل محتوى المستخدم الأصلي بمحتوى مترجم. استمر في القراءة لمعرفة أوضاع الترجمة التلقائية واليدوية.
  • اللغات المدعومة لترجمة المحتوى - قائمة اللغات التي يدعمها موقعك
  • معامل الزحف لترجمة المحتوى - موضح في قسم الزوار أدناه
  • مبدل لغة ترجمة المحتوى - موضح أدناه مباشرة
قائمة اللغات في إعدادات الموقع 📸

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

مبدل اللغة في الزاوية العلوية اليمنى من الصفحة

عرض المحتوى المترجم


موضوع ترحيب مترجم على meta.discourse.org

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

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

الترجمات التلقائية مع Discourse AI :sparkles:

يُعد Discourse AI الفيتامينات الأساسية لميزة الترجمة، ويغنيك عن الحاجة إلى إجراء ترجمات يدوية.

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

ميزات Discourse AI في إعدادات المسؤول 📸

انتقل لأسفل في /admin/plugins/discourse-ai/ai-features

لتغطية بعض الإعدادات والتوصيات الهامة:

  • معدل ملء الفجوة للترجمة بالذكاء الاصطناعي كل ساعة - هذا الإعداد الافتراضي هو 50. بافتراض أن المعدل هو 50، سيترجم موقعك 50 منشورًا، و50 موضوعًا، و50 فئة في الساعة، إلى اللغات التي حددتها في اللغات المدعومة لترجمة المحتوى. حافظ على هذا الرقم منخفضًا عند البدء.
  • فئات الهدف للترجمة بالذكاء الاصطناعي - الافتراضي لا يوجد فئات محددة. سيتم ترجمة المحتوى الموجود فقط في الفئات المحددة. يجب إضافة الفئات الفرعية بشكل منفصل. اتركها فارغة لتعطيل ترجمة المواضيع في الفئات.
  • الرسائل الشخصية للترجمة بالذكاء الاصطناعي - الافتراضي none. يتحكم في الرسائل الشخصية التي يتم ترجمتها. ‘none’ يعطل ترجمة الرسائل الخاصة. ‘group’ يترجم رسائل المجموعات فقط. ‘all’ يترجم جميع الرسائل الخاصة.
  • تضمين محتوى الروبوت في الترجمة بالذكاء الاصطناعي - الافتراضي false. عند التفعيل، سيتم أيضًا ترجمة منشورات مستخدمي الروبوت (معرف المستخدم < 0). افتراضيًا، يتم استبعاد محتوى الروبوت من الترجمة.
  • الحد الأقصى لطول المنشور للترجمة بالذكاء الاصطناعي - الافتراضي 10000. هذا إجراء احترازي ويمنع ترجمة المنشورات التي تتجاوز طولًا معينًا.
  • وكيل ترجمة المنشور الخام للترجمة بالذكاء الاصطناعي (ووكلاء آخرون) - في المجتمعات الأكثر رسمية، قد يختار المسؤولون إنشاء وكيل خاص بهم. يتيح لك ذلك تعيين مطالبة أكثر تخصيصًا للغة أو المفردات التي تفضلها.

يمكنك الرجوع إلى AI bot - Agents لمعرفة كيفية إعداد الوكلاء المناسبين وضبط المطالبات لكل وظيفة.

تقدم الترجمة

يمكنك العثور على مزيد من المعلومات حول تقدم الترجمات التلقائية في مخطط تقدم الترجمة في /admin/plugins/discourse-ai/ai-translations

سيظهر هذا المخطط إذا:

  • كان لدى جميع وكلاء الترجمة نموذج لغوي ضخم (LLM) صالح
  • تفعيل ذكاء اصطناعي Discourse :check_mark:
  • تفعيل ترجمة الذكاء الاصطناعي :check_mark:
  • تم ملء اللغات المدعومة لترجمة المحتوى
  • الحد الأقصى لعدد أيام ملء الفجوة للترجمة بالذكاء الاصطناعي أكبر من 0
  • معدل ملء الفجوة للترجمة بالذكاء الاصطناعي كل ساعة أكبر من 0

الترجمة اليدوية

بما أن الترجمة ميزة أساسية في Discourse، فإننا نوفر لك القدرة على إدخال وتعديل الترجمات يدويًا في حال عدم توفر الترجمات التلقائية مع Discourse AI.

افتراضيًا، يتم إعداد المسؤولين والمشرفين لتعديل الترجمات.

المجموعات المسموح لها بالترجمة في إعدادات الموقع 📸


إعداد موقع المسؤول لترجمة المحتوى

حاليًا، لدينا ترجمات لمحتوى المنشور، وعنوان الموضوع، واسم الفئة، ووصف الفئة، والوسوم. ستوضح الأقسام التالية لك كيفية عملها.

ترجمة الفئات

الفئات المترجمة مرئية في المناطق التالية، مع ترجمة اسم الفئة ووصفها:

الأماكن التي يتم فيها ترجمة الفئات 📸
  1. الصفحة الرئيسية، الشريط الجانبي، وقائمة الفئات المنسدلة
  1. صفحة الفئات
  1. فئة محددة مع فئات فرعية

بصفتك مسؤولًا، يجب أن تتمكن من الوصول إلى إعدادات الفئة كالمعتاد، والعثور على عنصر التنقل الجديد “الترجمات” على اليسار.

تعديل ترجمات الفئة في إعدادات الفئة 📸

ترجمة الموضوعات والمنشورات

من لقطات الشاشة أعلاه في ترجمة الفئات، قد تكون قد لاحظت ترجمة عناوين الموضوعات والمقتطفات.

هناك بعض الإعدادات المسبقة:

  • تأكد من أن مستخدمك موجود في المجموعات المسموح لها بالترجمة
  • يتم إضافة زر addTranslation تلقائيًا إلى قائمة المنشورات وعناصر قائمة المنشورات المخفية عند تفعيل تفعيل ترجمة المحتوى. هذا يسمح بظهور :globe_with_meridians: في قائمة المنشورات للمستخدمين الموجودين في المجموعات المسموح لها بالترجمة.
  • السماح لمؤلف المنشور بالترجمة مفعّل افتراضيًا، ويسمح لمؤلفي المنشورات بترجمة محتواهم الخاص باستخدام نفس قائمة المنشورات المذكورة أعلاه.
3 إعدادات للموقع 📸


:backhand_index_pointing_down:t2:

مرة أخرى، قائمة اللغات القابلة للترجمة موجودة في إعداد اللغات المدعومة لترجمة المحتوى المذكور أعلاه.

تعديل منشور مترجم

في حال كان المستخدم يشاهد منشورًا مترجمًا ويريد تعديله، ستظهر نافذة حوار تسأله عن الإصدار الذي يفضل تعديله:

سيظهر المحرر المناسب بعد اتخاذ القرار.

حذف ترجمة منشور للغة معينة

إذا اتبعت التعليمات أعلاه بشأن إعداد قائمة المنشورات بشكل صحيح، فيجب أن تتمكن من القيام بما يلي إذا كنت موجودًا في المجموعات المسموح لها بالترجمة:

الزوار (Crawlers)

يمكنك السماح للزوار برؤية موقعك باللغات المختلفة التي قمت بإعدادها في اللغات المدعومة لترجمة المحتوى. يوجد إعداد الموقع في قسم "ترجمة المحتوىباسممعامل الزحف لترجمة المحتوى`:

النتيجة ستكون أن الزوار يمكنهم رؤية ما يلي، حيث تحتوي كل لغة مدعومة على hreflang المقابل في رأس كل موضوع:

لإثبات إضافي / تحقق

لقد اختبرنا هذه الميزة على نطاق واسع، ويمكننا تأكيد أننا نحصل على فهرسة صحيحة بعد إدخال عدد X من اللغات المدعومة

الأسئلة الشائعة

لقد قمت بإعداد الأشياء، لكن الترجمة التلقائية لا تزال لا تعمل بالنسبة لي
تأكد من إعداد هذه العناصر:

  • يحتوي اللغات المدعومة لترجمة المحتوى على لغة واحدة على الأقل
  • تفعيل ترجمة المحتوى هو :check_mark:
    • السماح بلغة المستخدم هو :check_mark: (مفعل افتراضيًا)
    • تعيين اللغة من الكوكيز هو :check_mark:
  • تفعيل ترجمة الذكاء الاصطناعي هو :check_mark:
  • الحد الأقصى لعدد أيام ملء الفجوة للترجمة بالذكاء الاصطناعي ليس 0
  • معدل ملء الفجوة للترجمة بالذكاء الاصطناعي كل ساعة أكبر من 12
  • يجب أن يكون لديك نموذج لغوي ضخم (LLM) يعمل لكل وكيل ترجمة

إذا فشلت كل شيء، يمكنك تفعيل SiteSetting.ai_translation_verbose_logs.

هل يتم ترجمة كل منشور؟
إذا كان حد الترجمة بالذكاء الاصطناعي للمحتوى العام هو :check_mark:، فسيتم ترجمة جميع المنشورات في الفئات العامة. افتراضيًا، يتم استبعاد منشورات الروبوت (معرف المستخدم < 0) ما لم يتم تفعيل تضمين محتوى الروبوت في الترجمة بالذكاء الاصطناعي.

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

إذا كان المنتدى الخاص بي يدعم الإنجليزية واليابانية (عبر اللغات المدعومة لترجمة المحتوى)، وكتب شخص ما بالإسبانية، هل سيتم ترجمة منشوره؟
نعم. سيتم ترجمة جميع الموضوعات والمنشورات إلى الإنجليزية واليابانية، بغض النظر عن اللغة المكتوبة.

إذا تم تعديل المنشور الأصلي، هل يتم إعادة ترجمته؟
نعم - بحد أقصى مرتين في اليوم. عند تعديل منشور، يتم إرساله لإعادة الترجمة بعد تأخير قدره 5 دقائق على الأقل أو SiteSetting.editing_grace_period لمراعاة التعديلات السريعة. للمستخدمين المصرح لهم في المجموعات المسموح لها بالترجمة خيار إرسال منشور لإعادة الترجمة فورًا.

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


24 إعجابًا
Content Localization and Automatic Translations for Your Community
I can't find discourse AI as a provider in the discourse translator plugin
2 language site
Machine-translate messages so users can read without knowing sender's language
Update or Replace Header Locale Selector for New Discourse Header (widgets-end-of-life) – Is Built-in Support Available?
Anonymous user language selector for Discourse
Übersetzung wie hier auf Meta
Translate Discourse automatically (without a button)
Help which plugin is in the screenshot
About auto translation
Auto Country Translation
How to Add Automatic Multilingual Translation Interface in Discourse?
3.6.0.beta2: Built-in palette editing, live AI translation progress, and better wiki tracking
The usage problem after using AI translation
AI translation backfill not working after all settings configured
AI translation backfill not working after all settings configured
Single post/header only partially translated -issue
Language Switcher Problem, Not Translating Posts
配置好 ai 翻译后,帖子已经被自动翻译,但是在帖子顶部和右侧没有显示语言切换按钮
Feature Request: Allow Users to Localize Only Their Own Topics
How to configure ai translate of `Ai translation backfill hourly rate`?
AI translation of all PMs
Seeking experience: Supporting a multilingual Discourse community
Ongoing translation in threads
I need help to configure LLM DeepSeek R1 0528 - free for Automatic translations with Discourse AI
I need help to configure LLM DeepSeek R1 0528 - free for Automatic translations with Discourse AI
Not sure how to juggle languages while setting up my francophone community
Structuring a multilingual community
Why is Discourse AI translation not working
How to set up Discourse AI for internal-only usage
Single post/header only partially translated -issue
Header Locale Selector
为啥的布署的discourse不支持修改语言
Topic list is shown in a language (DE) but has one (DE) topic not translated
If topic info is too long, tags are cut off and create a blank line
Content Localization and Automatic Translations for Your Community
Images break when the page is auto-translated by a browser translation extension (S3/R2 + CDN is configured correctly)
Bearbeitung von Übersetzen Beiträgen verbessern
Why Is the Discourse AI Translation Icon Not Appearing?
Why are posts in Swedish un-translated to Finnish, default locale?
Discourse AI Translator, Planet Icon Missing
Language switcher and language content
Multilingual user feedback on Automatic Translations
Sharing approaches to using automation to send messages to members

هل هناك أي توصيات للقيام بذلك بشكل جماعي للفئات الموجودة؟ في أسوأ الأحوال، ربما عبر واجهة برمجة التطبيقات؟

إعجابَين (2)

سؤال رائع. سأحرص على تحديث وثائق واجهة برمجة التطبيقات لنقطة نهاية تحديث الفئة. :memo:

4 إعجابات

هل سيكون هناك دعم لمشرف لكل لغة؟ أفكر في الميتا – حيث قد أتطوع لفحص المشاركات بلغة معينة وتحديثها يدويًا. خاصة الوثائق التي قد ترحب ببعض اللمسات البشرية. لكنك تقول أن المشرفين فقط يمكنهم فعل ذلك وهو ما لن أكونه على الأرجح أبدًا.

3 إعجابات

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

3 إعجابات

كيف يمكنني الوصول إليه؟ هل يمكنك تقديم أمر من فضلك؟

هل لدى Sidekiq أي مهمة مرتبطة؟ هل من الممكن تشغيلها يدويًا؟

إعجاب واحد (1)
إعجابَين (2)

لإضافة إلى منشور Moin أعلاه، إنه فقط SiteSetting. ai_translation_backfill_hourly_rate بمجرد وصولك إلى وحدة التحكم. تعمل المهمة كل خمس دقائق وتحد من المعدل وفقًا لذلك.

3 إعجابات

أرى أن التوطين أصبح متاحًا الآن في المستندات. شكرًا @nat!

3 إعجابات

هذا رائع، تهانينا للفريق! أنا أختبره الآن وسأشارك أفكاري وتجربتي العامة.

نحن نفتقد لغة الإسبرانتو في القائمة؛ هل يمكن إضافة هذه اللغة “ببساطة” أم يجب بناؤها أولاً في discourse-languages؟

رائع، أنت متابع جيد – كنت على وشك الإبلاغ عن ذلك هنا. :laughing:

نعم، نوعًا ما. نريد تجربة توطين كاملة حيث يتم ترجمة عناصر التحكم (الأزرار، التسميات، إلخ) بشكل صحيح وكافٍ (70٪ ستكون جيدة حقًا) عبر Crowdin (انظر Translations - Discourse Meta)، ومع ذلك يمكننا تقديم الدعم للغة.

إعجابَين (2)

هل يعمل توطين المحتوى مع فئات الوثائق؟ يبدو لي أن محتوى الشريط الجانبي لا تتم ترجمته على الرغم من أنني أقوم بتوطين موضوع الفهرس.

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

3 إعجابات

يا لها من ملاحظة رائعة، نعم إنها لا تعمل بعد، ولكن هناك شيء سيتتبعه @nat!

أتساءل عما إذا كان هذا محفزًا للتوصل إلى تجريد أفضل / نموذج بيانات لروابط مستندات الشريط الجانبي.

إعجابَين (2)

نعم هذا صحيح – هناك العديد من الأماكن في Discourse التي ستحتاج إلى ترجمة صريحة، لذا أقوم بتسجيلها عند ظهورها. في الآونة الأخيرة، قمنا أيضًا بترجمة الإشعارات لعناوين المواضيع. هذا مثال لموضوع ميزة قمت بإنشائه - Show translated user bios.

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

تعديل: تمت تغطية tvavrda هنا - Translate sidebar documentation links. يرجى إلقاء نظرة ومعرفة ما إذا كان ذلك منطقيًا.

ماذا تقصد بـ “التبديل مرة أخرى”؟

هل تمانع في مشاركة تسجيل فيديو (يتضمن شريط العنوان) في المرة القادمة التي يحدث فيها ذلك؟ :folded_hands:t2: لا تتردد في إرسال رسالة خاصة لي في هذه الحالة إذا كان المحتوى غير مناسب للنشر العام. أيضًا، هل كنت مسجلاً الدخول؟ من الناحية الفنية، يتم تتبع هذه الأشياء بواسطة ملفات تعريف الارتباط لذا فهي محيرة بعض الشيء بالنسبة لي.

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

أرسلت لك مقطع فيديو.

ملاحظة أخرى - لا يمكنني رؤية الفروقات في المحتوى المترجم، صحيح؟ قد يكون ذلك مفيدًا إذا كانت هناك تحديثات له. ليس مهمًا للغاية ولكنه منطقي، على ما أعتقد.

وأخرى - الروابط الخلفية تحت الموضوع لا تعرض اسم موضوع مترجم.

وسؤال: ما الهدف من ترجمة أوصاف الفئات في إعدادات الفئة؟ يجب أن يأتي وصف الفئة من النسخة المترجمة لموضوع “حول”، أليس كذلك؟ النسخة المترجمة لا تدعم تنسيق ماركداون، لذلك لا يمكنني استخدام رابط، وهو ما أود فعله.

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

حسناً… المكون القديم GitHub - discourse/discourse-docs-sidebar يحترم الترجمة بالفعل :slight_smile: لقد تحولت إليه مؤقتًا.

نعم، هذا غير مدعوم حاليًا وسيكون مجهودًا كبيرًا.

لدينا مؤشر صغير ملون بشكل خاص (مشابه لمؤشر تعديلات المنشور بجانبه) عندما قد يكون الترجمة قديمة لأن إصدار المنشور قد تغير.

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

أرى أيضًا محتوى غير مترجم في ملخصات المواضيع المثبتة. لذا أرى قائمة مواضيع باللغة المترجمة ولكن ملخص الموضوع المثبت يظهر الأصلي.

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

هل يمكننا تشغيل عمليات الترجمة يدويًا، ولكن هل يمكننا تشغيل بناء الترجمات يدويًا؟ نوع من المهام عند الطلب.

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

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

هل يتم إجراء تحديد موقع المحتوى مرة واحدة ثم تخزينه في مكان ما، أي ليس عند الطلب؟ إذا كان الأمر كذلك، فهل هناك أي شيء يمنعني من تشغيل Ollama وبعض نماذج LLM مفتوحة المصدر على جهازي المكتبي مثل Llama 3 أو Deepseek 3 والسماح للمهمة بالتشغيل حتى تنتهي؟

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