Detecção de idioma com IA integrada

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

Browser Support

  • Chrome: 138.
  • Edge: not supported.
  • Firefox: not supported.
  • Safari: not supported.

Source

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

Execute a detecção de recursos para saber se o navegador é compatível com a API Language Detector.

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

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.

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.

Política de permissões, iframes e Web Workers

Por padrão, a API Language Detector está disponível apenas para janelas de nível superior e para iframes de mesma origem. O acesso à API pode ser delegado a iframes de origem cruzada usando o atributo allow="" da política de permissões:

<!--
  The hosting site at https://main.example.com can grant a cross-origin iframe
  at https://cross-origin.example.com/ access to the Language Detector API by
  setting the `allow="language-detector"` attribute.
-->
<iframe src="https://cross-origin.example.com/" allow="language-detector"></iframe>

A API Language Detector não está disponível em Web Workers. Isso ocorre devido à complexidade de estabelecer um documento responsável para cada worker a fim de verificar o status da política de permissõ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.