Publicado em 13 de novembro de 2024 e atualizado pela última vez em 20 de maio de 2025
Browser Support
Use a API Translator no Chrome para traduzir textos com modelos de IA fornecidos no navegador.
Seu site já pode oferecer conteúdo em vários idiomas. Com a API Translator, os usuários podem escrever no idioma materno. Por exemplo, os usuários podem participar de chats de suporte no idioma materno, e seu site pode traduzir a mensagem para o idioma materno dos agentes de suporte, antes que a mensagem saia do dispositivo do usuário. Isso cria uma experiência tranquila, rápida e inclusiva para todos os usuários.
A tradução de conteúdo da Web geralmente exige o uso de um serviço de 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 é baixado e retornado ao usuário. Quando o conteúdo é temporário e não justifica o salvamento em um banco de dados, a tradução do lado do cliente economiza tempo e custo em relação a um serviço de tradução hospedado.
Primeiros passos
Analisar os requisitos de hardware
Os requisitos a seguir existem para desenvolvedores e usuários que operam recursos usando estas APIs no Chrome. Outros navegadores podem ter requisitos operacionais diferentes.
As APIs Language Detector e Translator funcionam no Chrome para computadores. Essas APIs não funcionam em dispositivos móveis.
As APIs Prompt, Summarizer, Writer, Rewriter e Proofreader funcionam no Chrome quando as seguintes condições são atendidas:
- Sistema operacional: Windows 10 ou 11; macOS 13 ou mais recente (Ventura e versões mais recentes); Linux; ou ChromeOS (da plataforma 16389.0.0 e versões mais recentes) em Chromebook Plus dispositivos. O Google Chrome para Android, iOS e ChromeOS em dispositivos não Chromebook Plus ainda não é compatível com as APIs que usam o Gemini Nano.
- Armazenamento: pelo menos 22 GB de espaço livre no volume que contém seu perfil do Chrome.
- GPU ou CPU: os modelos integrados podem ser executados com GPU ou CPU.
- GPU: estritamente mais de 4 GB de VRAM.
- CPU: 16 GB de RAM ou mais e 4 núcleos de CPU ou mais.
- Observação: a API Prompt com entrada de áudio requer uma GPU.
- Rede: dados ilimitados ou uma conexão não limitada.
O tamanho exato do Gemini Nano pode variar à medida que o navegador atualiza o modelo. Para determinar o tamanho atual, acesse chrome://on-device-internals.
Execute a detecção de recursos para saber se o navegador oferece suporte à API Translator.
if ('Translator' in self) {
// The Translator API is supported.
}
Embora você sempre saiba o idioma de destino das traduções, nem sempre é possível saber o idioma de origem. Nesses casos, use a API Language Detector.
Download do modelo
A API Translator usa um modelo de especialista treinado para gerar traduções de alta qualidade. A API é integrada ao Chrome, e o modelo é baixado na primeira vez que um site usa essa API.
Para determinar se o modelo está pronto para uso, chame a função assíncrona
Translator.availability().
Se a resposta a availability() for downloadable, detecte o progresso do download para informar o usuário sobre o progresso, já que isso pode levar algum tempo.
Verificar o suporte a pares de idiomas
A tradução é gerenciada com pacotes de idiomas, baixados sob demanda. Um pacote de idiomas é como um dicionário para um determinado idioma.
sourceLanguage: o idioma atual do texto.targetLanguage: o idioma final para o qual o texto precisa ser traduzido.
Use códigos curtos de idioma BCP 47 como
strings. Por exemplo, 'es' para espanhol ou 'fr' para francês.
const translatorCapabilities = await Translator.availability({
sourceLanguage: 'es',
targetLanguage: 'fr',
});
// 'available'
Detecte o progresso do download do modelo com o evento downloadprogress:
const translator = await Translator.create({
sourceLanguage: 'es',
targetLanguage: 'fr',
monitor(m) {
m.addEventListener('downloadprogress', (e) => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
},
});
Se o download falhar, os eventos downloadprogress serão interrompidos e a promessa ready será rejeitada.
Criar e executar o tradutor
Para criar um tradutor, verifique a
ativação do usuário
e chame a função assíncrona create(). A função create() do Translator requer 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 Translator.create({
sourceLanguage: 'en',
targetLanguage: 'fr',
});
Depois de ter um tradutor, chame o translate() assíncrono.
await translator.translate('Where is the next bus stop, please?');
// "Où est le prochain arrêt de bus, s'il vous plaît ?"
Como alternativa, se você precisar lidar com textos mais longos, também poderá usar a versão de streaming da API e chamar translateStreaming().
const stream = translator.translateStreaming(longText);
for await (const chunk of stream) {
console.log(chunk);
}
Traduções sequenciais
As traduções são processadas sequencialmente. Se você enviar grandes quantidades de texto para tradução, as traduções subsequentes serão bloqueadas até que as anteriores sejam concluídas.
Para a melhor resposta às suas solicitações, agrupe-as e adicione uma interface de carregamento, como um spinner, para indicar que a tradução está em andamento.
Idiomas compatíveis
Os idiomas a seguir são compatíveis com a implementação da API Translator do Chrome.
| Código | Idioma |
|---|---|
ar |
Árabe |
bg |
Búlgaro |
bn |
Bengali |
cs |
Tcheco |
da |
Dinamarquês |
de |
Alemão |
el |
Grego |
en |
Inglês |
es |
Espanhol |
fi |
Finlandês |
fr |
Francês |
hi |
Hindi |
hr |
Croata |
hu |
Húngaro |
id |
Indonésio |
it |
Italiano |
iw |
Hebraico |
ja |
Japonês |
kn |
Canarês |
ko |
Coreano |
lt |
Lituano |
mr |
Marati |
nl |
Holandês |
no |
Norueguês |
pl |
Polonês |
pt |
Português |
ro |
Romeno |
ru |
Russo |
sk |
Eslovaco |
sl |
Esloveno |
sv |
Sueco |
ta |
Tâmil |
te |
Télugo |
th |
Tailandês |
tr |
Turco |
uk |
Ucraniano |
vi |
Vietnamita |
zh |
Chinês |
zh-Hant |
Chinês (tradicional) |
Demonstração
Você pode conferir a API Translator, usada em combinação com a API Language Detector, no playground da API Translator e Language Detector.
Política de permissões, iframes e Web Workers
Por padrão, a API Translator só está disponível para janelas de nível superior e iframes de mesma origem. O acesso à API pode ser delegado a iframes de origem cruzada
usando o atributo Política de Permissões
allow="":
<!--
The host site https://main.example.com can grant a cross-origin iframe
at https://cross-origin.example.com/ access to the Translator API by
setting the `allow="translator"` attribute.
-->
<iframe src="https://cross-origin.example.com/" allow="translator"></iframe>
A API Translator não está disponível em Web Workers devido à complexidade de estabelecer um documento responsável para cada worker, a fim de verificar o status da política de permissões.
Compartilhar feedback
Queremos saber o que você está criando. Compartilhe seus sites e aplicativos da Web conosco no X, YouTube, e LinkedIn.
Para feedback sobre a implementação do Chrome, registre um relatório de bugs ou uma solicitação de recurso.