ক্লিংগন অনুবাদ সেবা


গল্প

এই অনুশীলনীতে আপনি একটি TranslationService বানাবেন, যেখানে পেইড মেম্বারদের জন্য কিছুটা কোয়ালিটি নিশ্চিত করা হয়।

আপনি একটি জাদুকরী অনুবাদ API খুঁজে পেয়েছেন, যা যেকোনো অনুবাদ রিকোয়েস্ট যুক্তিসঙ্গত সময়ের মধ্যে পূরণ করতে পারে, আর আপনি এর সুবিধা নিতে চান।

জাদুকরী API-টির ইন্টারফেস খুবই সরল:

একটি অনুবাদ ফেচ করা

api.fetch(text) কল করলে text-এর অনুবাদ পাওয়া যায় এবং তা দুটি মান রিটার্ন করে:

  • translation: আসল অনুবাদ
  • quality: কোয়ালিটি, একটি সংখ্যা হিসেবে প্রকাশ করা

কোনো অনুবাদ পাওয়া না গেলে (কারণ তখনো সেটি রিকোয়েস্ট করা হয়নি), API একটি এরর থ্রো করে। কোনো টেক্সটের অনুবাদ করা সম্ভব না হলেও একই ঘটনা ঘটে।

একটি অনুবাদ রিকোয়েস্ট করা

api.request(text, callback) হলো text-এর অনুবাদ রিকোয়েস্ট করে, আর সেটি প্রস্তুত হয়ে গেলে callback-কে কল করে, তবে কোনো মান ছাড়াই।

request API-টি অস্থির, অর্থাৎ মাঝে মাঝে API callback-কে একটি এরর দিয়ে কল করবে। এমন হলে আবার রিকোয়েস্ট করা ঠিক আছে।

⚠ সাবধান! ⚠

আগের কিছু ইউজার প্রোগ্রামিং করার সময় অলস ছিলেন। তাঁরা টেক্সট আগেই অনুবাদ হয়ে গেছে কি না তা একবারও না দেখে সব সময় অনুবাদ রিকোয়েস্ট করতেন। এর ফলে টেক্সট আগেই অনুবাদ হয়ে থাকলে API একটি এরর রিটার্ন করে এবং সব অ্যাক্সেস চিরতরে পুরোপুরি ব্লক করে দেয়।

কাজ

এগুলো এমন কিছু কাজের উদাহরণ, যা অনুবাদ সার্ভিসের গল্পের সাথে মানানসই:

  • কোয়ালিটি না দেখে একটি অনুবাদ ফেচ করা
  • একগুচ্ছ অনুবাদ ফেচ করা, সব নয়তো কিছুই না
  • একটি অনুবাদ রিকোয়েস্ট করা, সর্বোচ্চ ২ বার আবার চেষ্টা করা
  • একটি অনুবাদ ফেচ করা, কোয়ালিটি দেখা, কিংবা সেটি রিকোয়েস্ট করা

পরিভাষা

নির্দেশনার ভেতরে বারবার আসা পরিভাষার জন্য এগুলো সুপারিশ, নিয়ম নয় (স্টাব কমেন্টসহ):

  • ইনজেক্টেড ডিপেন্ডেন্সি-টির নাম TranslationService, বা API
  • সার্ভিসটি অ্যাসিঙ্ক, কিন্তু এ কথা কোথাও বলা হয় না
  • Future-এ কোনো ব্যর্থতা মানে API একটি এরর থ্রো করে
  • Callback-এ কোনো ব্যর্থতা মানে API callback-কে একটি এরর দিয়ে কল করবে

সব অনুবাদ টেক্সট ক্লিংগন থেকে ইংরেজিতে হয়।

ইমপ্লিমেন্টেশন

রেফারেন্স

দ্রষ্টব্য

'arlogh Qoylu'pu'?-এর সঠিক অনুবাদ হলো How many times has it been heard?।