Dans cet exercice, tu vas fournir un TranslationService qui offre une assurance qualité aux membres payants.
Tu as trouvé une API de traduction magique capable de répondre à n'importe quelle requête de traduction en un temps raisonnable, et tu veux en tirer profit.
Cette API magique propose une interface très minimaliste :
api.fetch(text) récupère la traduction de text et renvoie deux valeurs :
translation : la traduction proprement ditequality : la qualité, exprimée sous forme de nombreSi aucune traduction n'est disponible (parce qu'elle n'a pas encore été demandée), l'API lève une erreur. C'est également le cas si un texte est intraduisible.
api.request(text, callback) demande la traduction de text et appelle le callback une fois celle-ci prête, sans lui passer de valeur.
L'API request est instable, ce qui signifie que parfois l'API appellera le callback avec une erreur. Si cela se produit, tu peux refaire la demande.
Parce que certains utilisateurs précédents ont été paresseux en programmant, demandant toujours une traduction sans même vérifier si le texte avait déjà été traduit, l'API renvoie une erreur si le texte a déjà été traduit et bloque tout accès, complètement, pour toujours.
Voici des exemples de tâches qui collent à l'histoire du service de traduction :
Ce sont des recommandations, et non des règles, concernant la terminologie récurrente des instructions (y compris les commentaires du stub)
TranslationService, ou l'APIcallback avec une erreur
Tous les textes traduits vont du klingon vers l'anglais.
La traduction correcte de 'arlogh Qoylu'pu'? est How many times has it been heard?.