この演習では、TranslationServiceを実装します。これは、有料会員に一定の品質保証を提供するためのものです。
どんな翻訳の_リクエスト_も、それなりの時間でこなしてくれる魔法の翻訳APIを見つけたので、なんとかこれを活用したいと考えています。
この魔法のAPIのインターフェースは、ごく最小限です。
api.fetch(text)はtextの翻訳を取得し、2つの値を返します。
translation: 実際の翻訳quality: 数値で表された品質まだリクエストされていないなど、利用できる翻訳がない場合、APIはエラーを投げます。翻訳できないテキストの場合も同じです。
api.request(text, callback)はtextの翻訳をリクエストし、準備ができると値を返さずにcallbackを呼び出します。
request APIは不安定なので、ときにエラー付きでcallbackが呼ばれることがあります。その場合は、もう一度リクエストしてかまいません。
以前のユーザーが手抜きをして、すでに翻訳済みかどうかを確認もせず、いつも翻訳をリクエストしていたため、APIはすでに翻訳済みのテキストに対してエラーを返し、すべてのアクセスを永久に完全にブロックしてしまいます。
翻訳サービスのストーリーに合うタスクの例を挙げます。
これらは、説明文(スタブのコメントを含む)で繰り返し使われる用語についての推奨であり、規則ではありません。
TranslationService、つまりAPIと呼びますcallbackをエラー付きで呼び出します
翻訳テキストはすべて、クリンゴン語から英語への翻訳です。
'arlogh Qoylu'pu'?の正しい翻訳は、**How many times has it been heard?**です。