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
- Participe do teste de origem da API Translator, que está sendo executado no Chrome 131 a 137. Os testes de origem ativam o recurso para todos os usuários na sua origem no Chrome.
- Siga nossa implementação no ChromeStatus.
- A proposta da API Translator está aberta para discussão.
- Participe do programa de prévia antecipada para conferir as novas APIs de IA integradas e participar da discussão na nossa lista de e-mails.
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:
- Confirme que você leu e aceitou a Política de uso proibido da IA generativa do Google.
- Acesse o teste de origem da API Translator.
- 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
.
- No campo Origem da Web, informe o ID da
origem
ou da extensão,
- Para enviar, clique em Registrar.
- 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.
- Se você estiver criando uma extensão, siga as instruções do teste de origem de extensões.
- 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:
- Abra o Chrome em uma destas plataformas: Windows, Mac ou Linux.
- Acesse
chrome://flags/#translation-api
. - Selecione Ativado.
- Se você quiser testar vários pares de idiomas, selecione Ativado sem limite de pacote de idiomas.
- 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
)
- Inglês (
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.
- Para enviar feedback sobre a implementação do Chrome, envie um relatório de bug ou uma solicitação de recurso.
- Discuta o design da API Translator no GitHub comentando em um problema existente ou abrindo um novo.
- Participe do esforço de padronização entrando no grupo da comunidade do Web Incubator.