Tradução com IA integrada

Publicado em 13 de novembro de 2024

Use a API Translator no Chrome para traduzir textos no navegador usando modelos de IA locais.

Talvez seu site já ofereça conteúdo em vários idiomas para que seja acessível a um público global. Com a API Translator, os usuários podem contribuir no idioma materno deles. Por exemplo, os usuários podem participar de chats de suporte no idioma materno deles, e seu site pode traduzir para o idioma usado pelos agentes de suporte antes de sair do dispositivo do usuário. Isso cria uma experiência suave, rápida e inclusiva para todos os usuários.

A tradução de conteúdo na Web geralmente exige o uso de um serviço em nuvem. Primeiro, o conteúdo de origem é enviado para um servidor, que executa a tradução para um idioma de destino. Em seguida, o texto resultante é transferido por download e retornado ao usuário. Ao executar a tradução no cliente, você economiza o tempo necessário para as viagens do servidor e o custo de hospedagem do serviço de tradução.

Disponibilidade

Embora o idioma de destino selecionado seja sempre conhecido, em algumas situações, o idioma de origem pode ser desconhecido, por exemplo, com conteúdo gerado pelo usuário. Nesses casos, a proposta da API Translator inclui a API Translator e a API Language Detector, também disponível em um teste de origem. Inscreva-se nos dois testes de origem para usar essas APIs juntas.

Inscrever-se no teste de origem

Para começar a usar a API Translator, siga estas etapas:

  1. Confirme que você leu e aceitou a Política de uso proibido da IA generativa do Google.
  2. Acesse o teste de origem da API Translator.
  3. Clique em Registrar e preencha o formulário.
    • No campo Origem da Web, informe o ID da origem ou da extensão, chrome-extension://YOUR_EXTENSION_ID.
  4. Para enviar, clique em Registrar.
  5. Copie o token fornecido e adicione-o a todas as páginas da Web na origem ou no arquivo da extensão em que você quer ativar o teste.
  6. Comece a usar a API Translator.

Saiba mais sobre como começar a usar os testes de origem.

Adicionar suporte ao localhost

Para acessar a API Translator no localhost durante o teste de origem, é necessário atualizar o Chrome para a versão mais recente. Em seguida, siga estas etapas:

  1. Abra o Chrome em uma destas plataformas: Windows, Mac ou Linux.
  2. Acesse chrome://flags/#translation-api.
  3. Selecione Ativado.
    • Se você quiser testar vários pares de idiomas, selecione Ativado sem limite de pacote de idiomas.
  4. Clique em Reiniciar ou reinicie o Chrome.

Usar a API Translator

Para determinar se a API Translator oferece suporte, execute o seguinte snippet de detecção de recursos.

if ('translation' in self && 'createTranslator' in self.translation) {
  // The Translator API is supported.
}

Verificar o suporte a pares de idiomas

A tradução é gerenciada com pacotes de idiomas, que são baixados sob demanda. Um pacote de idiomas é como um dicionário para um determinado idioma. Esses pacotes são pareados com a função assíncrona canTranslate(), que permite determinar se um par de idiomas é compatível.

A função canTranslate() exige um parâmetro options com dois campos:

  • sourceLanguage: o idioma atual do texto.
  • targetLanguage: o idioma final para o qual o texto será traduzido.

Use códigos curtos de idioma BCP 47 como strings. Por exemplo, 'es' para espanhol ou 'fr' para francês.

await translation.canTranslate({
  sourceLanguage: 'en',
  targetLanguage: 'fr',
});
// 'readily'

A função canTranslate() pode retornar qualquer um dos seguintes resultados:

  • no: não é possível que esse navegador faça a tradução solicitada.
  • readily: o navegador pode traduzir conforme solicitado.
  • after-download: o navegador pode realizar a tradução, mas somente depois de fazer o download do modelo ou dos pacotes de idiomas relevantes.

É possível detectar o progresso do download usando o evento downloadprogress:

translator.ondownloadprogress = progressEvent => {
  updateDownloadProgressBar(progressEvent.loaded, progressEvent.total);
};

Se o download falhar, os eventos downloadprogress vão parar de ser emitidos, e a promessa ready será rejeitada.

Criar e executar o tradutor

Para criar um tradutor, chame a função translation.createTranslator() assíncrona. Assim como canTranslate(), ele exige um parâmetro de opções com dois campos, um para sourceLanguage e outro para targetLanguage.

// Create a translator that translates from English to French.
const translator = await self.translation.createTranslator({
  sourceLanguage: 'en',
  targetLanguage: 'fr',
});

Depois de ter um tradutor, chame a função translate() assíncrona para traduzir o texto.

await translator.translate('Where is the next bus stop, please?');
// "Où est le prochain arrêt de bus, s'il vous plaît ?"

Limitações no teste de origem

As limitações a seguir se aplicam durante o teste de origem.

Pares de idiomas compatíveis

No momento, é possível fazer o download de até três pacotes de idiomas para tradução. Temos o compromisso de ampliar a variedade de idiomas compatíveis em versões futuras, mantendo altos padrões de privacidade do usuário. É possível confirmar se o par de idiomas necessário tem suporte com a função canTranslate().

É possível que alguns pares de idiomas menos usados sejam usados para impressão digital. Por exemplo, é mais comum traduzir entre inglês e espanhol do que entre idiomas menos comuns, como gaélico e catalão. Um par de idiomas menos comum pode ser considerado um ponto de dados para a identificação do usuário.

Durante o teste de origem, estamos limitando os possíveis pares de idiomas traduzíveis para proteger a privacidade do usuário. Os pares de idiomas precisam atender aos seguintes critérios:

  • O idioma de origem e o de destino são definidos como idiomas preferidos no Chrome.
  • Ou uma das línguas está definida como preferida no Chrome, e a outra está entre as seguintes línguas populares:
    • Inglês (en)
    • Chinês mandarim (zh; simplificado) ou mandarim de Taiwan (zh-Hant; tradicional)
    • Japonês (ja)
    • Português (pt)
    • Russo (ru)
    • Espanhol (es)
    • Turco (tr)
    • Hindi (hi)
    • Vietnamita (vi)
    • Bengalês (bn)

Ignorar restrições de idioma para testes locais

Para prototipagem local, é possível ignorar essas verificações executando o Chrome com a opção de linha de comando --disable-features=TranslationAPIAcceptLanguagesCheck. Como alternativa, defina chrome://flags/#translation-api como Ativar sem limite de pacote de idioma.

Acesse chrome://on-device-translation-internals/ para instalar e desinstalar pacotes de idiomas manualmente.

Traduções sequenciais

As traduções são processadas sequencialmente. Se você enviar grandes quantidades de texto para tradução, as traduções seguintes serão bloqueadas até que as anteriores sejam concluídas.

Para melhorar a capacidade de resposta das suas solicitações de tradução, divida-as e considere mostrar uma interface de carregamento, como um ícone de carregamento, para indicar que uma tradução está em andamento.

Disponibilidade de workers da Web

Durante o teste de origem, a API Translator só tem suporte na linha de execução principal. Pretendemos oferecer suporte a ela em workers da Web assim que a API estiver disponível para todos.

Demonstração

Você pode conferir a API Translator, usada em combinação com a API Language Detector, no espaço de jogo da API Translator e Language Detector.

Esforço de padronização

Estamos trabalhando para padronizar a API Translator e garantir a compatibilidade entre navegadores.

Nossa proposta de API recebeu apoio da comunidade e foi transferida para o Grupo da comunidade do Incubator da Web do W3C para mais discussões. A equipe do Chrome solicitou feedback do W3C Technical Architecture Group e pediu a Mozilla e ao WebKit as posições dos padrões.

Participar e compartilhar feedback

Comece a testar a API Translator agora mesmo participando do teste de origem e compartilhando seu feedback. Sua contribuição pode afetar diretamente a forma como criamos e implementamos versões futuras dessa API e de todas as APIs de IA integradas.