Neste exercício vais fornecer um TranslationService onde os membros pagantes têm alguma garantia de qualidade.
Encontraste uma API mágica de tradução capaz de satisfazer qualquer pedido de tradução num período de tempo razoável, e queres tirar partido disso.
A API mágica tem uma interface muito minimalista:
api.fetch(text) obtém a tradução de text e devolve dois valores:
translation: a tradução propriamente ditaquality: a qualidade expressa como um númeroSe não houver tradução disponível (porque ainda não foi pedida), a API lança um erro. Isto também acontece se um texto não puder ser traduzido.
api.request(text, callback) pede a tradução de text e chama o callback assim que esta estiver pronta, sem qualquer valor.
A API request é instável, o que significa que, por vezes, a API chama o callback com um erro. Se isso acontecer, não há problema em voltar a pedir.
Como alguns utilizadores anteriores eram preguiçosos a programar e pediam sempre uma tradução, sem sequer verificar se o texto já estava traduzido, a API devolve 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 enquadram 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 os comentários do stub)
TranslationService, ou APIcallback com um erro
Todos os textos de tradução são de Klingon para inglês.
A tradução correta de 'arlogh Qoylu'pu'? é How many times has it been heard?.