Traducción con IA integrada

Fecha de publicación: 13 de noviembre de 2024; última actualización: 20 de mayo de 2025

Browser Support

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

Usa la API de Translator en Chrome para traducir texto con los modelos de IA que se proporcionan en el navegador.

Es posible que tu sitio web ya ofrezca contenido en varios idiomas. Con la API de Translator, los usuarios pueden escribir en su idioma principal. Por ejemplo, los usuarios pueden participar en chats de asistencia en su idioma principal, y tu sitio puede traducir sus mensajes al idioma principal de tus agentes de asistencia antes de que el mensaje salga del dispositivo del usuario. Esto crea una experiencia fluida, rápida y accesible para todos los usuarios.

Por lo general, la traducción de contenido web requiere el uso de un servicio en la nube. Primero, el contenido de origen se sube a un servidor que ejecuta la traducción a un idioma de destino. Luego, se descarga el texto resultante y se devuelve al usuario. Cuando el contenido es efímero y no justifica guardarlo en una base de datos, la traducción del cliente ahorra tiempo y costos en comparación con un servicio de traducción alojado.

Comenzar

Revisa los requisitos de hardware

Existen los siguientes requisitos para los desarrolladores y los usuarios que operan funciones con estas APIs en Chrome. Es posible que otros navegadores tengan requisitos de funcionamiento diferentes.

Las APIs de Language Detector y Translator funcionan en Chrome para computadoras de escritorio. Estas APIs no funcionan en dispositivos móviles.

Las APIs de Prompt, Summarizer, Writer, Rewriter y Proofreader funcionan en Chrome cuando se cumplen las siguientes condiciones:

  • Sistema operativo: Windows 10 o 11; macOS 13 o versiones posteriores (Ventura y versiones posteriores); Linux; o ChromeOS (desde la plataforma 16389.0.0 y versiones posteriores) en dispositivos Chromebook Plus Las APIs que usan Gemini Nano aún no son compatibles con Chrome para Android, iOS y ChromeOS en dispositivos que no son Chromebook Plus.
  • Almacenamiento: Al menos 22 GB de espacio libre en el volumen que contiene tu perfil de Chrome
  • GPU o CPU: Los modelos integrados se pueden ejecutar con GPU o CPU.
    • GPU: Estrictamente más de 4 GB de VRAM
    • CPU: 16 GB de RAM o más y 4 núcleos de CPU o más
    • Nota: La API de Prompt con entrada de audio requiere una GPU.
  • Red: Datos ilimitados o una conexión no medida

El tamaño exacto de Gemini Nano puede variar a medida que el navegador actualiza el modelo. Para determinar el tamaño actual, visita chrome://on-device-internals.

Ejecuta la detección de funciones para ver si el navegador admite la API de Translator.

if ('Translator' in self) {
  // The Translator API is supported.
}

Si bien siempre conoces el idioma de destino de las traducciones, es posible que no siempre conozcas el idioma de origen. En esos casos, puedes usar la API de Language Detector.

Descarga de modelos

La API de Translator usa un modelo experto entrenado para generar traducciones de alta calidad. La API está integrada en Chrome, y el modelo se descarga la primera vez que un sitio web usa esta API.

Para determinar si el modelo está listo para usarse, llama a la función asíncrona Translator.availability(). Si la respuesta a availability() es downloadable, escucha el progreso de la descarga para informar al usuario sobre su progreso, ya que puede tardar.

Cómo verificar la compatibilidad de un par de idiomas

La traducción se administra con paquetes de idiomas que se descargan a pedido. Un paquete de idioma es como un diccionario para un idioma determinado.

  • sourceLanguage: Es el idioma actual del texto.
  • targetLanguage: Es el idioma final al que se debe traducir el texto.

Usa códigos cortos de idioma BCP 47 como cadenas. Por ejemplo, 'es' para español o 'fr' para francés.

const translatorCapabilities = await Translator.availability({
  sourceLanguage: 'es',
  targetLanguage: 'fr',
});
// 'available'

Detecta el progreso de la descarga del modelo con el evento downloadprogress:

const translator = await Translator.create({
  sourceLanguage: 'es',
  targetLanguage: 'fr',
  monitor(m) {
    m.addEventListener('downloadprogress', (e) => {
      console.log(`Downloaded ${e.loaded * 100}%`);
    });
  },
});

Si falla la descarga, se detienen los eventos downloadprogress y se rechaza la promesa ready.

Crea y ejecuta el traductor

Para crear un traductor, verifica la activación del usuario y llama a la función asíncrona create(). La función create() de Translator requiere un parámetro de opciones con dos campos, uno para sourceLanguage y otro para targetLanguage.

// Create a translator that translates from English to French.
const translator = await Translator.create({
  sourceLanguage: 'en',
  targetLanguage: 'fr',
});

Una vez que tengas un traductor, llama a translate() así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, si necesitas trabajar con textos más largos, también puedes usar la versión de transmisión de la API y llamar a translateStreaming().

const stream = translator.translateStreaming(longText);
for await (const chunk of stream) {
  console.log(chunk);
}

Traducciones secuenciales

Las traducciones se procesan de forma secuencial. Si envías grandes cantidades de texto para traducir, las traducciones posteriores se bloquearán hasta que se completen las anteriores.

Para obtener la mejor respuesta a tus solicitudes, agrúpalas y agrega una interfaz de carga, como un spinner, para indicar que la traducción está en curso.

Idiomas admitidos

La implementación de la API de Translator de Chrome admite los siguientes idiomas.

Código Idioma
ar Árabe
bg Búlgaro
bn Bengalí
cs Checo
da Danés
de Alemán
el Griego
en Inglés
es Español
fi Finlandés
fr Francés
hi Hindú
hr Croata
hu Húngaro
id Indonesio
it Italiano
iw Hebreo
ja Japonés
kn Canarés
ko Coreano
lt Lituano
mr Marathi
nl Holandés
no Noruego
pl Polaco
pt Portugués
ro Rumano
ru Ruso
sk Eslovaco
sl Esloveno
sv Sueco
ta Tamil
te Telugu
th Tailandés
tr Turco
uk Ucraniano
vi Vietnamita
zh Chino
zh-Hant Chino (tradicional)

Demostración

Puedes ver la API de Translator, que se usa en combinación con la API de Language Detector, en el playground de la API de Translator y Language Detector.

Política de permisos, elementos iframe y Web Workers

De forma predeterminada, la API de Translator solo está disponible para las ventanas de nivel superior y los elementos iframe del mismo origen. Se puede delegar el acceso a la API a iframes de origen cruzado con el atributo allow="" de la Política de permisos:

<!--
  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>

La API de Translator no está disponible en los Web Workers debido a la complejidad de establecer un documento responsable para cada trabajador, con el objetivo de verificar el estado de la Política de permisos.

Enviar comentarios

Queremos ver lo que estás creando. Comparte tus sitios web y aplicaciones web con nosotros en X, YouTube y LinkedIn.

Para enviar comentarios sobre la implementación de Chrome, informa un error o envía una solicitud de función.