Detecção de idioma com IA integrada

AI_USAGE=false

Publicado em 24 de setembro de 2024. Última atualização: 20 de maio de 2025

Explicação Web Extensões Status do Chrome Intenção
MDN Chrome 138 Chrome 138 Ver Intenção de envio

Antes de traduzir um texto de um idioma para outro, determine qual idioma é usado no texto. Antes, era necessário fazer upload do texto para um serviço de nuvem, realizar a tradução no servidor e baixar os resultados.

A API Language Detector funciona do lado do cliente, o que significa que você pode proteger a privacidade do usuário. Embora seja possível enviar uma biblioteca específica que faça isso, ela exigiria recursos adicionais para download.

Quando usar a detecção de idioma

A API Language Detector é útil principalmente nos seguintes cenários:

  • Determinar o idioma do texto de entrada para que ele possa ser traduzido.
  • Determinar o idioma do texto de entrada para que o modelo correto possa ser carregado para tarefas específicas do idioma, como detecção de toxicidade.
  • Determinar o idioma do texto de entrada para que ele possa ser rotulado corretamente, por exemplo, em sites de redes sociais on-line.
  • Determinar o idioma do texto de entrada para que a interface de um app possa ser ajustada de acordo. Por exemplo, em um site belga, para mostrar apenas a interface relevante para usuários que falam francês.

Primeiros passos

A API Language Detector está disponível a partir da versão estável do Chrome 138. Execute a detecção de recursos para ver se o navegador é compatível com a API Language Detector.

if ('LanguageDetector' in self) {
  // The Language Detector API is available.
}

Revisar os requisitos de hardware

Os desenvolvedores e usuários que operam recursos usando essas APIs no Chrome precisam atender aos seguintes requisitos. Outros navegadores podem ter requisitos operacionais diferentes.

As APIs Language Detector e Translator funcionam no Chrome em computadores. Essas APIs não funcionam em dispositivos móveis. As APIs Prompt, Summarizer, Writer e Rewriter 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 posteriores) ou Linux. O Chrome para Android, iOS e ChromeOS 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: mais de 4 GB de VRAM.
  • Rede: dados ilimitados ou uma conexão ilimitada.

O tamanho exato do Gemini Nano pode variar conforme o navegador atualiza o modelo. Para determinar o tamanho atual, acesse chrome://on-device-internals e clique em Status do modelo. Abra o Caminho do arquivo listado para determinar o tamanho do modelo.

Download do modelo

A detecção de idioma depende de um modelo ajustado para a tarefa específica de detectar idiomas. Embora a API seja criada no navegador, o modelo é baixado sob demanda na primeira vez que um site tenta usar a API. No Chrome, esse modelo é muito pequeno em comparação com outros. Ele já pode estar presente, já que esse modelo é usado por outros recursos do Chrome.

Para determinar se o modelo está pronto para uso, chame a função assíncrona LanguageDetector.availability(). Se a resposta a availability() for downloadable, aguarde o progresso do download e informe o usuário, já que o download pode levar tempo.

const availability = await LanguageDetector.availability();

Para acionar o download e instanciar o detector de idioma, verifique a ativação do usuário. Em seguida, chame a função assíncrona LanguageDetector.create().

const detector = await LanguageDetector.create({
  monitor(m) {
    m.addEventListener('downloadprogress', (e) => {
      console.log(`Downloaded ${e.loaded * 100}%`);
    });
  },
});

Executar o detector de idioma

A API Language Detector usa um modelo de classificação para determinar qual idioma é mais provável em um determinado texto. Ranking é um tipo de aprendizado de máquina em que o objetivo é ordenar uma lista de itens. Neste caso, a API Language Detector classifica os idiomas da maior para a menor probabilidade.

A função detect() pode retornar o primeiro resultado, a resposta mais provável ou iterar pelos candidatos classificados com o nível de confiança. Isso é retornado como uma lista de objetos {detectedLanguage, confidence}. O nível de confidence é expresso como um valor entre 0.0 (menor confiança) e 1.0 (maior confiança).

const someUserText = 'Hallo und herzlich willkommen!';
const results = await detector.detect(someUserText);
for (const result of results) {
  // Show the full list of potential languages with their likelihood, ranked
  // from most likely to least likely. In practice, one would pick the top
  // language(s) that cross a high enough threshold.
  console.log(result.detectedLanguage, result.confidence);
}
// (Output truncated):
// de 0.9993835687637329
// en 0.00038279531872831285
// nl 0.00010798392031574622
// ...

Playground de API

Teste a API Language Detector no nosso playground de APIs. Insira o texto escrito em idiomas diferentes na área de texto.

Esforço de padronização

Estamos trabalhando para padronizar a API Language Detector para compatibilidade entre navegadores.

A API Language Detector e a API Translator foram adotadas pelo W3C WebML Working Group (em inglês). Pedimos à Mozilla e ao WebKit as posições deles sobre padrões.

Envie feedback

Queremos saber o que você está criando com a API Language Detector. Compartilhe seus sites e aplicativos da Web com a gente no X, YouTube e LinkedIn.

Se você tiver feedback sobre a implementação do Chrome, registre um bug do Chromium.