क्लिंगन अनुवाद सेवा


कहानी

इस अभ्यास में आपको एक TranslationService बनाना है, जो भुगतान करने वाले सदस्यों के लिए गुणवत्ता की जाँच करती है।

आपको एक जादुई अनुवाद API मिला है, जो किसी भी अनुवाद रिक्वेस्ट को उचित समय के अंदर पूरा कर सकता है। आप इसका पूरा फायदा उठाना चाहते हैं।

इस जादुई API का इंटरफेस बहुत छोटा है:

अनुवाद लाना

api.fetch(text) text का अनुवाद लाता है और दो वैल्यू लौटाता है:

  • translation: वास्तविक अनुवाद
  • quality: संख्या के रूप में बताई गई गुणवत्ता

अगर कोई अनुवाद उपलब्ध नहीं है (क्योंकि अभी उसके लिए रिक्वेस्ट नहीं की गई है), तो API एक एरर फेंकता है। ऐसा तब भी होता है जब किसी टेक्स्ट का अनुवाद न हो सके।

अनुवाद की रिक्वेस्ट करना

api.request(text, callback) text के अनुवाद की रिक्वेस्ट करता है और अनुवाद तैयार होते ही callback को कॉल करता है, बिना कोई वैल्यू दिए।

request API अस्थिर है, यानी कभी-कभी API callback को एरर के साथ कॉल करता है। ऐसा होने पर दोबारा रिक्वेस्ट करना ठीक है।

⚠ चेतावनी! ⚠

पहले के कुछ उपयोगकर्ता प्रोग्रामिंग करते समय आलसी थे और बिना यह जाँचे कि टेक्स्ट का अनुवाद हो चुका है या नहीं, हर बार उसकी रिक्वेस्ट कर देते थे। इसी वजह से अगर किसी टेक्स्ट का अनुवाद पहले ही हो चुका है, तो API एक एरर लौटाता है और उस तक की सारी पहुँच हमेशा के लिए पूरी तरह बंद कर देता है।

कार्य

यहाँ कुछ ऐसे कार्यों के उदाहरण दिए गए हैं जो अनुवाद सेवा की कहानी से मेल खाते हैं:

  • अनुवाद लाना, बिना गुणवत्ता देखे
  • एक बैच में कई अनुवाद लाना, या तो सब, या कुछ भी नहीं
  • अनुवाद की रिक्वेस्ट करना और ज़्यादा से ज़्यादा 2 बार दोबारा कोशिश करना
  • अनुवाद लाना, उसकी गुणवत्ता जाँचना, या उसकी रिक्वेस्ट करना

शब्दावली

निर्देशों में बार-बार आने वाली शब्दावली के लिए ये सिफारिशें हैं, नियम नहीं (स्टब कमेंट्री सहित):

  • बाहर से दी जाने वाली डिपेंडेंसी को TranslationService, या API कहते हैं
  • सेवा async है, पर इसका कहीं ज़िक्र नहीं होता
  • Future फेल होने का मतलब है API एक एरर फेंकता है
  • Callback फेल होने का मतलब है API callback को एरर के साथ कॉल करेगा

सभी अनुवाद टेक्स्ट क्लिंगन से अंग्रेज़ी में हैं।

इम्प्लीमेंटेशन

संदर्भ

ध्यान दें

'arlogh Qoylu'pu'? का सही अनुवाद How many times has it been heard? है।