DEV Community

Paulo Cesar Jr
Paulo Cesar Jr

Posted on

APIs de tradução em nuvem estão com os dias contados

A primeira vez que precisei usar uma API de tradução foi durante o desenvolvimento de um sistema que traduzia sinopses de filmes. Eu consultava uma API pública chamada OMDb, que retornava todas as informações exclusivamente em inglês. A solução mais prática era integrar meu front-end com um serviço de tradução, e naquela época optei pelo Amazon Translate.

Felizmente, tudo funcionou muito bem. Porém, como acontece com a maioria das APIs de tradução, o custo por volume de textos traduzidos era alto e acabei deixando de lado aquela aplicação, que era apenas mais um hobby.

Curiosamente, alguns anos depois, estou aqui escrevendo que o fim das APIs tradicionais de tradução está mais próximo do que imaginamos. E o responsável por isso? A boa e nem tão velha assim inteligência artificial.

Tradução client-side

Se pararmos para pensar, uma API de tradução nada mais é do que um grande dicionário que, dado um input no idioma X, retorna um output no idioma Y. Entretanto, o custo desse tipo de aplicação tende a ser elevado pelo número de caracteres do conteúdo a ser traduzido e pela complexidade de tradução entre diferentes idiomas.

Com a evolução das LLMs (Large Language Models), hoje você pode pedir facilmente para qualquer agente de IA traduzir um texto para praticamente qualquer idioma. Por que então não usar esse potencial diretamente nos browsers para facilitar a vida dos desenvolvedores web? Esse momento chegou.

A Translator é a nova API JavaScript disponível no Google Chrome a partir da versão 138. Ela permite traduzir textos diretamente no client-side, sem precisar consultar APIs de terceiros ou serviços em nuvem. Isso reduz custos e processamento, já que o desenvolvedor precisa apenas configurar o dicionário com o idioma de origem e o idioma de destino para realizar a tradução.

Translator do Google

Por se tratar de uma funcionalidade bem recente do Chrome, o primeiro passo para testarmos esse recurso é verificar sua compatibilidade via JavaScript:

if ('Translator' in self) {
  // A Translator API é suportado.
}
Enter fullscreen mode Exit fullscreen mode

Em seguida, é necessário fazer o download do modelo de IA responsável por realizar as traduções. Esse download acontece apenas na primeira vez que o site solicita o recurso, o que otimiza o carregamento e reduz consideravelmente o tempo de execução nas próximas chamadas.

Para baixar o modelo, precisamos informar o idioma de origem e o idioma de destino nos campos sourceLanguage e targetLanguage:

const translatorCapabilities = await Translator.availability({
  sourceLanguage: 'en',
  targetLanguage: 'pt',
});
// 'available'
Enter fullscreen mode Exit fullscreen mode

Após criado, podemos usar a função .translate() para traduzir qualquer string. A API se encarrega de retornar o conteúdo no idioma configurado:

// Cria um tradutor do idioma Inglês para Português do Brasil
const translator = await Translator.create({
  sourceLanguage: 'en',
  targetLanguage: 'pt',
});
Enter fullscreen mode Exit fullscreen mode

Ao executar a função .translate() passando uma string para tradução, a API se responsabiliza por traduzir o conteúdo para o idioma configurado:

await translator.translate('I love listening to Kiss while I'm programming!');
// "Eu adoro ouvir Kiss enquanto programo!"
Enter fullscreen mode Exit fullscreen mode

O fim das APIs de tradução na nuvem?

Me arrisco a dizer que as APIs de tradução em nuvem não serão extintas, mas certamente sua popularidade deve cair. A possibilidade de traduzir textos diretamente no client-side usando LLMs é significativa, reduzindo custo computacional e evitando despesas extras no projeto.

Obviamente, tudo depende da adesão dos outros grandes navegadores do mercado, como Safari, Edge e Firefox. Mas, como acontece com qualquer bom recurso JavaScript, é apenas uma questão de tempo até que ele possa ser usado em praticamente qualquer lugar.

Top comments (0)