خدمة الترجمة الكلينغونية


القصة

في هذا التمرين ستقدّم TranslationService، وهي خدمة يحصل فيها الأعضاء المدفوعون على قدرٍ من ضمان الجودة.

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

تتسم API السحرية بواجهة بالغة البساطة:

جلب ترجمة

api.fetch(text) يجلب ترجمة text، ويُرجع قيمتين:

  • translation: الترجمة الفعلية
  • quality: الجودة معبَّرًا عنها بعدد

إذا لم تكن هناك ترجمة متاحة (لأنها لم تُطلب بعد)، فإن API تُصدر خطأً. ويحدث هذا أيضًا إذا كان نصٌّ ما غير قابل للترجمة.

طلب ترجمة

api.request(text, callback) يطلب ترجمة text، ويستدعي callback بمجرد أن تصبح جاهزة، من دون قيمة.

إن واجهة request غير مستقرة، ما يعني أن API قد تستدعي callback أحيانًا مع خطأ. وإذا حدث ذلك، فلا بأس من إعادة الطلب.

⚠ تحذير! ⚠

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

المهام

هذه أمثلة على مهام تناسب قصة خدمة الترجمة:

  • جلب ترجمة، مع تجاهل الجودة
  • جلب دفعة من الترجمات، الكل أو لا شيء
  • طلب ترجمة، مع إعادة المحاولة مرتين على الأكثر
  • جلب ترجمة، وفحص الجودة، أو طلبها

المصطلحات

هذه توصيات، لا قواعد، بشأن المصطلحات المتكررة في التعليمات (بما في ذلك تعليقات ملف البداية)

  • التبعية المحقونة تُسمى TranslationService، أو API
  • الخدمة غير متزامنة، لكن لا يُذكر ذلك أبدًا
  • الفشل في Future يعني أن تُصدر API خطأً
  • الفشل في Callback يعني أن تستدعي API ‏callback مع خطأ

كل نصوص الترجمة من الكلينغونية إلى الإنجليزية.

التنفيذات

المرجع

ملاحظة

الترجمة الصحيحة لـ 'arlogh Qoylu'pu'? هي How many times has it been heard?.