Neste exercício, você vai fornecer um TranslationService em que membros pagos têm alguma garantia de qualidade.
Você encontrou uma API mágica de tradução capaz de atender qualquer solicitação de tradução em um tempo razoável, e quer tirar proveito disso.
A API mágica tem uma interface bem minimalista:
api.fetch(text) busca a tradução de text e retorna dois valores:
translation: a tradução em siquality: a qualidade expressa como um númeroSe não houver tradução disponível (porque ela ainda não foi solicitada), a API lança um erro. Isso também acontece se um trecho de texto for intraduzível.
api.request(text, callback) solicita a tradução de text e chama o callback quando ela estiver pronta, sem nenhum valor.
A API request é instável, o que significa que às vezes a API vai chamar o callback com um erro. Se isso acontecer, não tem problema solicitar de novo.
Alguns usuários anteriores foram preguiçosos na hora de programar: sempre solicitavam uma tradução sem nem conferir se o texto já havia sido traduzido. Por causa disso, a API retorna um erro se o texto já tiver sido traduzido e bloqueia todo o acesso por completo, para sempre.
Estes são exemplos de tarefas que se encaixam na história do serviço de tradução:
Estas são recomendações, não regras, para a terminologia recorrente nas instruções (incluindo comentários do stub)
TranslationService, ou APIcallback com um erro
Todos os textos a traduzir são de klingon para inglês.
A tradução correta de 'arlogh Qoylu'pu'? é How many times has it been heard?.