O que é a API Translator integrada do Chrome?

A API Translator é um recurso experimental da plataforma web que permite que uma página traduza texto diretamente no navegador, usando um modelo de IA agrupado localmente e gerenciado pelo agente do usuário. Em vez de enviar texto para um serviço de tradução remoto, o navegador expõe uma interface JavaScript (window.Translator) que cria sessões de tradutor de curta duração para um par de idiomas de origem/destino e retorna strings traduzidas de forma assíncrona.

A API Language Detector complementar (window.LanguageDetector) inspeciona uma string e retorna uma lista classificada de prováveis tags de idioma BCP-47 com pontuações de confiança. Juntas, as duas APIs permitem que uma página detecte o idioma de entrada arbitrária e a traduza sem qualquer ida e volta de rede após o download inicial do modelo.

Como o modelo é executado no dispositivo do usuário, as traduções funcionam offline após o download, o texto sensível nunca sai da máquina e não há custos de API por solicitação. A compensação é que a disponibilidade depende do navegador, do sistema operacional e se o par de idiomas solicitado foi baixado.

Descrição da ferramenta

Este playground é um ambiente prático para testar as APIs Translator e Language Detector no seu próprio navegador. Ele conecta uma área de entrada, um seletor de idioma de destino e uma área de saída às chamadas Translator.create() / translate() subjacentes, e exibe o estado de disponibilidade do modelo e o progresso do download enquanto você experimenta.

O idioma de origem é padronizado como "Detectar automaticamente", que roteia a entrada através do LanguageDetector primeiro e depois encaminha o idioma detectado para o tradutor. Você também pode fixar o idioma de origem explicitamente para pular a detecção.

Exemplos

Origem (detectada automaticamente) Destino Saída
Bonjour, comment ça va ? English Hello, how are you?
Guten Morgen, wie geht es dir? Spanish Buenos días, ¿cómo estás?
今日は良い天気ですね。 English The weather is nice today.

Recursos

  • Detecção automática de idioma — usa a API Language Detector para identificar o idioma de origem antes de traduzir.
  • Seletor de idioma bidirecional — troque origem e destino com um único clique e retraduz.
  • Estado de disponibilidade em tempo real — mostra se o modelo solicitado está available, downloadable, downloading ou unavailable.
  • Barra de progresso de download — transmite eventos downloadprogress do tradutor/detector enquanto o modelo é buscado.
  • Tradução offline no dispositivo — após o download do modelo, nenhuma solicitação de rede é feita para traduzir.

Casos de uso

  • Visualização de cópia localizada — cole uma string e veja instantaneamente como ela fica em outro idioma ao redigir texto da interface.
  • Verificação de suporte do navegador — verifique se um par de origem/destino específico está disponível antes de enviar um recurso que depende da API Translator.
  • Tradução offline rápida — traduza trechos enquanto desconectado, após o pacote de idioma relevante ter sido baixado.

Requisitos

  • Um navegador que implemente as APIs Translator e Language Detector. No momento da redação, este é Chrome 138+ e navegadores baseados em Chromium (por exemplo, Opera 122+) no desktop. Edge, Firefox e Safari ainda não são suportados.
  • Um contexto seguro (HTTPS ou localhost).
  • Ativação de usuário transitória — as APIs só permitem create() após um gesto de usuário recente, é por isso que a tradução é executada na entrada em vez do carregamento da página.
  • Espaço em disco e largura de banda suficientes para o download inicial do modelo de linguagem. As traduções subsequentes reutilizam o modelo em cache.

Como funciona

  1. Na montagem, a ferramenta verifica window.Translator e window.LanguageDetector. Se algum estiver ausente, um aviso é exibido e a entrada é desativada.
  2. Quando você digita, a entrada é debounced e o par de origem/destino é resolvido (executando LanguageDetector.detect() primeiro se a origem for auto).
  3. Translator.availability({ sourceLanguage, targetLanguage }) é chamado para consultar o estado do modelo para esse par.
  4. Translator.create() é invocado com um callback monitor que escuta eventos downloadprogress e atualiza a barra de progresso.
  5. translator.translate(text) retorna a string traduzida, que é renderizada na área de saída.
  6. As instâncias de tradutor e detector são liberadas via destroy() após cada chamada para liberar recursos.

Idiomas suportados

O seletor expõe uma lista curada de tags de idioma BCP-47 comuns que o modelo agrupado do Chrome suporta ou testa comumente, incluindo:

en, es, fr, de, it, pt, nl, pl, ru, uk, tr, ar, hi, bn, ja, ko, zh, zh-Hant, vi, th, id, sv, no, fi, da, el, he, cs, ro, hu.

O conjunto real de pares utilizáveis depende do que o modelo do navegador subjacente baixou ou pode baixar. Pares relatados como unavailable não podem ser traduzidos no seu navegador atual.

Limitações

  • As APIs são experimentais e a superfície pode mudar entre versões do navegador.
  • A qualidade da tradução é determinada pelo modelo fornecido pelo navegador e não é garantida que corresponda aos serviços de tradução em nuvem dedicados.
  • Alguns pares de idiomas podem exigir um pivô intermediário através do inglês ou podem simplesmente estar indisponíveis.
  • A primeira tradução para um novo par de idiomas pode ser lenta devido ao download do modelo.
  • As APIs não estão atualmente expostas aos web workers e podem ser bloqueadas por uma Permissions Policy (translator, language-detector) em iframes de origem cruzada.

Perguntas frequentes

Por que a saída fica vazia? A API Translator provavelmente não está implementada no seu navegador. Abra a página no Chrome 138+ no desktop e recarregue.

Por que "Baixando modelo…" é mostrado? Na primeira vez que você usa um par de idiomas, o navegador baixa um pacote de modelo. A barra de progresso reflete os eventos downloadprogress emitidos por Translator.create().

Meu texto sai do dispositivo? Não. Após o download do modelo, a tradução acontece inteiramente no dispositivo. A ferramenta em si não envia sua entrada para lugar nenhum.

Por que "Detectar automaticamente" às vezes falha? Se a entrada for muito curta, ambígua ou em um script que o detector não viu, LanguageDetector.detect() pode retornar und (indeterminado). Escolha o idioma de origem manualmente nesse caso.