In questo esercizio fornirai un TranslationService grazie al quale i membri paganti ottengono una qualche garanzia di qualità.
Hai trovato un'API di traduzione magica capace di soddisfare qualsiasi richiesta di traduzione in un tempo ragionevole, e vuoi trarne vantaggio.
L'API magica ha un'interfaccia molto essenziale:
api.fetch(text) recupera la traduzione di text e restituisce due valori:
translation: la traduzione vera e propriaquality: la qualità espressa come numeroSe non c'è una traduzione disponibile (perché non è ancora stata richiesta), l'API lancia un errore. Questo succede anche se un testo non è traducibile.
api.request(text, callback) richiede la traduzione di text e chiama il callback quando è pronta, senza alcun valore.
L'API request è instabile: a volte può capitare che chiami il callback con un errore. Se succede, va bene richiedere di nuovo.
Dato che alcuni utenti precedenti, per pigrizia, richiedevano sempre una traduzione senza nemmeno controllare se il testo era già stato tradotto, l'API restituisce un errore se il testo è già stato tradotto e blocca ogni accesso in modo completo, per sempre.
Questi sono esempi di attività che si adattano alla storia del servizio di traduzione:
Queste sono raccomandazioni, non regole, per la terminologia ricorrente nelle istruzioni (incluso il commento negli stub)
TranslationService, o APIcallback con un errore
Tutti i testi da tradurre vanno dal klingon all'inglese.
La traduzione corretta di 'arlogh Qoylu'pu'? è How many times has it been heard?.