ترجمات الوسوم التي أنشأتها الذكاء الاصطناعي لا تعمل بشكل مثالي

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

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

الجزء الممتع أولاً

قبل الدخول في المشكلات العملية، بعض الترجمات مسلية ببساطة:

  • composer → “Komponist” - هذا هو الشخص الذي يكتب الموسيقى
  • auto-bump → “automatische-erhöhung” - “الزيادة التلقائية”
  • fully-theme → “vollständig-thematisiert” - “تم معالجته بالكامل” (بمعنى معالجة موضوع، وليس سمة)
  • raspberry-pi → “Himbeere-pi” (“raspberry” كما في الفاكهة)
  • post-voting → “nach-der-Abstimmung” - “بعد التصويت” (تم قراءة “post” كبادئة لاتينية، وليس كمشاركة في المنتدى)
  • tablet → “Tablette” - “حبة دواء” (الدواء، وليس الجهاز)

نفس الترجمة لوسوم مختلفة

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

  • year-in-review & yearly-review → “Jahresrückblick” - يبدو أن اسم الإضافة حالياً غير قابل للترجمة (أرى الاسم الإنجليزي في الشريط الجانبي للإدارة وفي قائمة الإضافات المثبتة)، لذلك من المرجح أنك ستستخدم المصطلح الإنجليزي للإشارة إلى اسم الإضافة. على الرغم من أنني آمل أن تحصل جميع الإضافات يوماً ما على أسماء مترجمة، لذا أعتقد أنني سأضيف “Metas” إلى الوسوم التي تجمع مواضيع المراجعة السنوية هنا لفصلها، لتصبح “Metas-Jahresrückblick” (مراجعة Discourse السنوية)
  • surveys & polls → “Umfragen” - أعتقد أن ترجمات كلتا الإضافتين متطابقة أيضاً ولم يلاحظ أحد ذلك حتى الآن. أحتاج إلى التفكير أكثر في حل جيد لهذه المسألة لأنها يمكن أن تتعارض بسهولة مع “التصويت” :exploding_head:
  • docs & documentation → “Dokumentation” - تماماً مثل yearly-review، لم تُترجم الوثائق إلى الألمانية لذا لن أقوم بترجمة الوسم (في هذه الحالة، يبدو أن الترجمة مستبعدة جداً في المستقبل)
  • how-to & tutorial → “Anleitung” - تم إصلاح هذا بالفعل. وجدت ترجمة لهذا لـ https://diataxis.fr/ واقترحت المصطلح[1] المستخدم هناك)

الأسماء العلمية وأسماء المنتجات التي لا ينبغي ترجمتها

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

  • raspberry-pi → “Himbeere-pi” (“raspberry” كما في الفاكهة)
  • mermaid → “Meerjungfrau” (“mermaid” كما في المخلوق الأسطوري، وليس أداة رسم المخططات)
  • ember → “Glut” (جمر متوهج من النار)
  • vanilla → “Vanille” (النكهة)
  • onebox → “einzige-box” - “الصندوق الوحيد”
  • intercom → “Gegensprechanlage” (جهاز اتصال داخلي كما في جرس الباب - على الرغم من أن intercom-widget تم ترجمته بشكل جيد)
  • passkey → “Passwort” - “كلمة المرور” (مفتاح المرور ليس تحديداً كلمة مرور)
  • perspective-api → “Perspektiven-api”
  • backups → “Sicherungen”
  • design-experiment → “Experimententwurf” - يمكن أن يكون “تجربة تصميم” ولكن أيضاً “تجربة مسودة”، أعتقد أنني سأفكر في الأخيرة لأن الأولى كنت سأحتفظ فيها بـ “design” والتحدث عن المسودات أمر شائع جداً في Discourse.

ترجمات “Discourse”

تمت ترجمة معظم الوسوم التي تشير إلى “Discourse” بحيث لم تعد تتضمن اسم البرنامج. استثناء واحد هو discourse-hub .

ترجمة “Theme” بشكل منهجي خاطئ إلى “Thema” (موضوع)

هذه مشكلة منهجية عبر جميع الوسوم المتعلقة بالسمة (Theme). في الألمانية، كل من “theme” و “topic” تترجم إلى Thema، ولكن في سياق Discourse، هذان شيآن مختلفان جداً. هذا يجعل وسوم السمة تبدو وكأنها تتناول مواضيع نقاش محددة.

  • theme-welcome → “Willkommens-Thema” (يُقرأ كـ “موضوع ترحيب”، كما في خيط الترحيب المثبت الافتراضي)
  • theme-creator → “Themenersteller” - “منشئ الموضوع”
  • horizon-theme → “Horizont-Thema”
  • meta-theme-feedback → “Meta-Themen-Feedback”
  • foundation-theme → نفس النمط
  • fully-theme → “vollständig-thematisiert” - “تم معالجته بالكامل”

هذا يؤثر على جميع الوسوم في مجموعة Official Themes.

ترجمات فقد فيها السياق

  • composer → “Komponist” - هذا هو الشخص الذي يكتب الموسيقى، مقارنة بحقل الإدخال الذي نسميه عادةً “Editor” في الألمانية.
  • tablet → “Tablette” - “حبة دواء” أو “جهاز لوحي”.
  • copy-post → "kopierbeitrag” - “رسوم النسخ” (المشكلة هي تركيب الكلمات. “Beitrag” للمشاركة صحيح، ولكن لأن “copy” لم تُترجم كفعل، يبدو أن Beitrag تُستخدم هنا بمعنى الرسوم)

اسم أو فعل

تم ترجمة بعض الميزات كأفعال بدلاً من أسماء

  • chat → “plaudern” - “الدردشة”
  • search → “suchen” - “البحث”

قراءة “post” كبادئة لاتينية، وليس كمشاركة في المنتدى

  • post-voting → “nach-der-Abstimmung” - “بعد التصويت”
  • post-badges → “nach-Abzeichen” - “بعد-شارات”

نتائج وسوم إنجليزية غير واضحة تماماً

  • hosted-support → “gehosteter-support” (يبدو هذا وكأن الدعم مستضاف بدلاً من الدعم لعملاء الخدمات المستضافة)

الاختصارات

  • pm-dropdown (نفس الشيء في الألمانية) بدون سياق لم يتم استبدال m (message) بـ n (Nachricht)

ترجمات لا تتطابق مع مصطلحات واجهة Discourse الخاصة به

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

  • impersonate → “nachahmen” - “التقليد” (ولكن الواجهة تستخدم Nutzersicht أو Nutzerrolle)
  • staged-users → “Staging-Benutzer” (ولكن الواجهة تقول vorbereitete Benutzer)
  • advertising → “Werbung” (ولكن الواجهة تشير إلى Anzeigen)
  • assign → “zuweisen” (ولكن ترجمة الإضافة تستخدم zuordnen)
  • hot-topics → “Top-Themen” (تم ترجمتها كـ “أعلى المواضيع”، وهو في الواقع قائمة مختلفة في Discourse)
  • read-only → “nur lesbar”
  • bootstrap-mode → “Bootstrap-Modus” (ولكن المترجمون اختاروا في الأصل Starthilfemodus)
  • post-notices → “Nachrichten” - “رسائل/أخبار” (يمكن أن يكون مضللاً لأن الرسائل ميزة مختلفة، “الإعلان الرسمي” يستخدم Mitteilung في الواجهة)
  • about-page → “über-Seite” (هذه ترجمة حرفية. ولكن عادةً ما تكون الترجمة الألمانية شيئاً مثل “صفحة من نحن”. Über لا تعني فقط “حول” ولكن أيضاً “فوق”.)
  • auto-bump → “automatische-erhöhung” - “الزيادة التلقائية”
  • tags → “Etiketten” (ولكن tag-groups ومعظم الوسوم التي تحتوي على tag تستخدم “tag”، والمصطلح المستخدم في Crowdin هو Schlagwort)

ترجمات مقطوعة

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

  • content-security-policy → “inhalts-sicherheitsrichtl” (مقطوعة، يجب أن تكون inhalts-sicherheitsrichtlinie)
  • ai-custom-prompt → “ai-benutzerdefinierte-auf” (مقطوعة في منتصف الكلمة، يجب أن تكون ai-benutzerdefinierte-aufforderung)
  • custom-category-boxes → “benutzerdefinierte-katego” (مقطوعة في منتصف الكلمة، يجب أن تكون benutzerdefinierte-kategorie-boxen، في هذه الحالة تم حذف box بالكامل من الترجمة)

الوسوم التي تحتوي على “custom” يسهل أن تصبح طويلة جداً لأن “benutzerdefiniert” كلمة طويلة نسبياً.

more examples

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


@nat (بناءً على طلب شخصي)


  1. Lernunterlagen ↩︎

8 إعجابات

شكرًا لك @Moin، سأقوم بالتحقق من هذا وتحسين نصوصنا :smiling_face:

أيضًا، لطيف جدًا :grinning_face_with_smiling_eyes:

شكرًا على الضحك :hugs:

5 إعجابات

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

سيكون ذلك مكلفًا جدًا للمشاركات، ولكنه رخيص نسبيًا ويزيد من الجودة عبر جميع النماذج لمرة واحدة مثل الوسوم والفئات.

4 إعجابات

حسناً، هذه فكرة جيدة @falco.

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

4 إعجابات

قد يكون الوصول إلى قائمة المصطلحات في كراودين مفيدًا جدًا للروبوت الذي يقوم بالترجمة (ليس لجميع المواقع، ولكن بشكل خاص لـ Meta). إذا تم الإشارة هناك إلى أننا نترجم “composer” إلى “المحرر”، ومع معرفة الذكاء الاصطناعي بذلك، فيمكنه استخدام هذه المعلومة في الوسوم، وكذلك في عناوين المواضيع والمنشورات.

لقد قمتُ مرة بإصلاح مصطلح “composer” في Introducing our new composer, making writing on Discourse easier than ever مما أدى إلى تقديمي لملاحظات حول تعديل الترجمات هنا: Feedback on the composer when translating a post to German لكن الموضوع تم تعديله بعد أن قمت بذلك، ولا يبدو أن الترجمة السابقة تُستخدم كسياق، لذا فإن المنشور يذكر “composer” مرة أخرى. (عادةً لا يظهر مؤلف الموسيقى في المنشورات؛ بل تظهر نصوص قصيرة مثل عناوين المواضيع والوسوم فقط.)

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

فكرة رائعة، لنفعل الأمرين معًا!

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

سيكون الحصول على ترجمة مثالية في Meta أمرًا في غاية السهولة ببساطة باستخدام نموذج لغوي كبير (LLM) الأكثر تكلفة ومنحه إمكانية الوصول إلى أدوات مثل الوصول إلى الكود المصدري والبحث عبر الويب.

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

لا أعتقد أن أي نموذج سيختار نفس الترجمات التي اختارها المترجمون الألمان لواجهة Discourse. فكلمة “Mitarbeiter” هي ترجمة مثالية لكلمة “staff”. إن حقيقة أن بعض المترجمين قرروا قبل سنوات أن هذا المصطلح لا يناسب منتديات الهواة الصغيرة — حيث تشير كلمة “staff” إلى الموظفين المدفوعين الأجر — وبالتالي اختاروا كلمة “Team”، هو أمر لا يمكن لأي ذكاء اصطناعي تخمينه، لأنه ببساطة ليس الترجمة الصحيحة. وهذا بالضبط المكان الذي يمكن أن يساعد فيه قاموس Crowdin: فبدونه، لن تتطابق المصطلحات المولدة بالذكاء الاصطناعي أبدًا مع ما يراه المسؤولون فعليًا في الواجهة — ليس لأن الذكاء الاصطناعي غير قادر على الترجمة، بل لأنه لا يتخذ نفس قرارات التوطين التي اتخذها المترجمون البشريون. إنه الفرق بين الترجمة والتوطين.
وهذا ينطبق أيضًا على مصطلحات أخرى مثل “bootstrap mode” أو “impersonation”.

سيختارها، لأنه سيكون لديه إمكانية الوصول إلى نفس الخيار تمامًا في ملفات config/locales/**/*.yml كمرجع.

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

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

إذن، ربما يجب عليك تعطيل الترجمة بالذكاء الاصطناعي لـ Documentation و News and Events > Announcements :wink: لا أعتقد أنه من الممكن ضمان فائدة هذه الترجمات، خاصةً لأن التعديلات المقترحة لا ترفع الموضوع، لذا لا توجد طريقة سهلة لملاحظة تحديث موضوع ما.

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

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

هذا يشبه إلى حد ما إخراج الطفل مع ماء الاستحمام، أليس كذلك؟

لقد تحققت للتو من الرابط Calendar subscription URLs for external calendar apps في اللغة البرتغالية (البرازيل)، ويبدو أن الترجمة ممتازة، وهي أفضل بكثير من عدم وجود ترجمة على الإطلاق.

سيكون هناك دائمًا مجال للتحسين في سير عمل الترجمة الآلية غير الخاضعة للإشراف، وقد قام @nat بالفعل بتحسينه اليوم بفضل ملاحظاتك!

لا يتوقع أحد أن تكون الترجمة مثالية، وMeta هي المكان الذي يمكننا فيه تبني الميزات مبكرًا وإظهار ما هو ممكن في Discourse لمستخدمينا وعملائنا.

مرحبًا بالفريق،

كيف يمكنني تعطيل الوسوم المحددة التي تولدها ترجمات الذكاء الاصطناعي في Discourse؟

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

شكرًا لكم.

في الوقت الحالي، لا تُوجَّه ترجمات الذكاء الاصطناعي حسب نوع النموذج، بل تفعيلها يُفعّله للمواضيع والمنشورات والفئات والوسوم.

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

بدلاً من ذلك، يمكنك أيضًا تحديث النافذة المستخدمة من قبل وكيل مترجم النصوص القصيرة.

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

هل يمكنك مساعدتي في تحديد ترجمات الوسوم التي تحسنت منذ أن كتبت هذا الموضوع؟

يجب الآن معالجة الوسوم المذكورة في المنشور الأصلي (وبعض أخرى) على الموقع الفرعي للميتا. شكرًا لك على القائمة الشاملة جدًا، فقد سهّلت الأمر عليّ، وكان ينبغي لي القيام بذلك في وقت سابق :blush:

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

إعجابَين (2)