¿Qué es la API Translator integrada de Chrome?

La API Translator es una función experimental de plataforma web que permite que una página web traduzca texto directamente en el navegador, utilizando un modelo de IA agrupado localmente y administrado por el agente de usuario. En lugar de enviar texto a un servicio de traducción remoto, el navegador expone una interfaz JavaScript (window.Translator) que crea sesiones de traductor de corta duración para un par de idiomas de origen/destino determinado y devuelve cadenas traducidas de forma asincrónica.

La API Language Detector complementaria (window.LanguageDetector) inspecciona una cadena y devuelve una lista clasificada de etiquetas de idioma BCP-47 probables con puntuaciones de confianza. Juntas, las dos APIs permiten que una página detecte el idioma de entrada arbitraria y luego la traduzca sin ningún viaje de red después de la descarga inicial del modelo.

Debido a que el modelo se ejecuta en el dispositivo del usuario, las traducciones funcionan sin conexión una vez descargadas, el texto sensible nunca abandona la máquina y no hay costos de API por solicitud. La compensación es que la disponibilidad depende del navegador, del sistema operativo y de si se ha descargado el par de idiomas solicitado.

Descripción de la herramienta

Este área de pruebas es un entorno práctico para probar las APIs Translator y Language Detector en tu navegador. Conecta un área de entrada, un selector de idioma de destino y un área de salida a las llamadas Translator.create() / translate() subyacentes, y muestra el estado de disponibilidad del modelo y el progreso de descarga mientras experimentas.

El idioma de origen tiene como valor predeterminado "Detectar automáticamente", que enruta la entrada a través de LanguageDetector primero y luego reenvía el idioma detectado al traductor. También puedes fijar el idioma de origen explícitamente para omitir la detección.

Ejemplos

Origen (detectado automáticamente) Destino Salida
Bonjour, comment ça va ? Inglés Hello, how are you?
Guten Morgen, wie geht es dir? Español Buenos días, ¿cómo estás?
今日は良い天気ですね。 Inglés The weather is nice today.

Características

  • Detección automática de idioma — utiliza la API Language Detector para identificar el idioma de origen antes de traducir.
  • Selector de idioma bidireccional — intercambia origen y destino con un solo clic y vuelve a traducir.
  • Estado de disponibilidad en vivo — muestra si el modelo solicitado está available, downloadable, downloading o unavailable.
  • Barra de progreso de descarga — transmite eventos downloadprogress desde el traductor/detector mientras se obtiene el modelo.
  • Traducción en el dispositivo sin conexión — una vez descargado el modelo, no se realizan solicitudes de red para traducir.

Casos de uso

  • Vista previa de copias localizadas — pega una cadena y ve instantáneamente cómo se lee en otro idioma mientras redactas texto de interfaz de usuario.
  • Verificación de compatibilidad del navegador — comprueba si un par de origen/destino específico está disponible antes de enviar una función que dependa de la API Translator.
  • Traducción rápida sin conexión — traduce fragmentos mientras estás desconectado, después de que se haya descargado el paquete de idioma relevante.

Requisitos

  • Un navegador que implemente las APIs Translator y Language Detector. En el momento de escribir, esto es Chrome 138+ y navegadores basados en Chromium (por ejemplo, Opera 122+) en escritorio. Edge, Firefox y Safari aún no son compatibles.
  • Un contexto seguro (HTTPS o localhost).
  • Activación de usuario transitoria — las APIs solo permiten create() después de un gesto de usuario reciente, por lo que la traducción se ejecuta en la entrada en lugar de en la carga de página.
  • Espacio en disco y ancho de banda suficientes para la descarga inicial del modelo de lenguaje. Las traducciones posteriores reutilizan el modelo en caché.

Cómo funciona

  1. Al montar, la herramienta verifica window.Translator y window.LanguageDetector. Si falta alguno, se muestra una advertencia y la entrada se desactiva.
  2. Cuando escribes, la entrada se desactiva y se resuelve el par de origen/destino (ejecutando LanguageDetector.detect() primero si el origen es auto).
  3. Se llama a Translator.availability({ sourceLanguage, targetLanguage }) para consultar el estado del modelo para ese par.
  4. Se invoca Translator.create() con una devolución de llamada monitor que escucha eventos downloadprogress y actualiza la barra de progreso.
  5. translator.translate(text) devuelve la cadena traducida, que se representa en el área de salida.
  6. Las instancias del traductor y detector se liberan a través de destroy() después de cada llamada para liberar recursos.

Idiomas compatibles

El selector expone una lista seleccionada de etiquetas de idioma BCP-47 comunes que el modelo agrupado de Chrome admite o prueba comúnmente, incluyendo:

en, es, fr, de, it, pt, nl, pl, ru, uk, tr, ar, hi, bn, ja, ko, zh, zh-Hant, vi, th, id, sv, no, fi, da, el, he, cs, ro, hu.

El conjunto real de pares utilizables depende de lo que el modelo del navegador subyacente haya descargado o pueda descargar. Los pares reportados como unavailable no se pueden traducir en tu navegador actual.

Limitaciones

  • Las APIs son experimentales y la superficie puede cambiar entre versiones del navegador.
  • La calidad de la traducción está determinada por el modelo proporcionado por el navegador y no se garantiza que coincida con los servicios de traducción en la nube dedicados.
  • Algunos pares de idiomas pueden requerir un pivote intermedio a través del inglés o simplemente pueden no estar disponibles.
  • La primera traducción para un nuevo par de idiomas puede ser lenta debido a la descarga del modelo.
  • Las APIs no se exponen actualmente a web workers y pueden estar restringidas detrás de una Política de permisos (translator, language-detector) en iframes de origen cruzado.

Preguntas frecuentes

¿Por qué la salida permanece vacía? La API Translator probablemente no esté implementada en tu navegador. Abre la página en Chrome 138+ en escritorio y recarga.

¿Por qué se muestra "Descargando modelo…"? La primera vez que usas un par de idiomas, el navegador descarga un paquete de modelo. La barra de progreso refleja los eventos downloadprogress emitidos por Translator.create().

¿Mi texto abandona el dispositivo? No. Después de descargar el modelo, la traducción ocurre completamente en el dispositivo. La herramienta en sí no envía tu entrada a ningún lugar.

¿Por qué "Detectar automáticamente" a veces falla? Si la entrada es demasiado corta, ambigua o en un script que el detector no ha visto, LanguageDetector.detect() puede devolver und (indeterminado). En ese caso, elige el idioma de origen manualmente.