Cómo traducir texto con Azure AI Translator en Python
Traducir texto automáticamente es una de las tareas más comunes en las aplicaciones modernas —desde chatbots hasta plataformas de e-commerce— y Azure AI Translator la resuelve con apenas unas líneas de código. Esta guía muestra, paso a paso, cómo traducir texto con Azure AI Translator en Python, desde la creación del recurso en Azure hasta la primera llamada correcta a la REST API v3.0.
Requisitos previos
- Una suscripción de Azure activa (el nivel gratuito F0 de Translator es suficiente para probar).
- Python 3.9 o superior instalado en tu equipo.
- La biblioteca
requests, que instalamos a continuación. - Conocimientos básicos de línea de comandos.
Paso 1: Crear el recurso Translator en el portal de Azure
Empieza por crear el servicio. En el portal de Azure, busca "Translator" y crea un nuevo recurso. Elige un grupo de recursos, una región cercana a tus usuarios (por ejemplo, West Europe) y el nivel de precios F0, que es gratuito e ideal para aprender. Cuando el recurso esté listo, abre la sección Keys and Endpoint y copia dos valores esenciales: la clave y la región (el campo Location/Region). Usarás ambos en el código del paso 3.
Guarda la clave en un lugar seguro. Nunca la escribas directamente en código que compartas ni la subas a repositorios públicos.
Paso 2: Preparar el entorno de Python
Crea una carpeta para el proyecto e instala la única dependencia necesaria, la biblioteca requests, que se encarga de las peticiones HTTP por ti:
pip install requests
Para no dejar la clave escrita en el código (una mala práctica de seguridad), guárdala en una variable de entorno. En Windows y en macOS/Linux, respectivamente:
# Windows (PowerShell)
$env:TRANSLATOR_KEY = "YOUR_TRANSLATOR_KEY"
$env:TRANSLATOR_REGION = "westeurope"
# macOS / Linux
export TRANSLATOR_KEY="YOUR_TRANSLATOR_KEY"
export TRANSLATOR_REGION="westeurope"
Paso 3: Hacer la primera petición de traducción
Azure AI Translator ofrece el endpoint global https://api.cognitive.microsofttranslator.com. Para traducir, envías una petición POST a la ruta /translate, con el parámetro api-version=3.0 y el idioma de destino en to. El texto que se va a traducir va en el cuerpo de la petición, en formato JSON. El siguiente ejemplo traduce una frase del portugués (from=pt) al inglés (to=en):
import os
import requests
key = os.environ["TRANSLATOR_KEY"]
region = os.environ["TRANSLATOR_REGION"]
endpoint = "https://api.cognitive.microsofttranslator.com"
params = {"api-version": "3.0", "from": "pt", "to": ["en"]}
headers = {
"Ocp-Apim-Subscription-Key": key,
"Ocp-Apim-Subscription-Region": region,
"Content-Type": "application/json",
}
body = [{"Text": "Olá, bem-vindo ao Azure AI Translator!"}]
response = requests.post(endpoint + "/translate", params=params, headers=headers, json=body)
result = response.json()
print(result[0]["translations"][0]["text"])
Si todo es correcto, la consola muestra Hello, welcome to Azure AI Translator!. El encabezado Ocp-Apim-Subscription-Region es obligatorio cuando usas un recurso regional; incluirlo evita el error de autenticación más común, el 401000.
Paso 4: Traducir a varios idiomas a la vez
Una gran ventaja de la API es traducir a varios idiomas en una sola petición: basta con indicar más de un valor en to. También puedes omitir from para que el servicio detecte automáticamente el idioma de origen:
params = {"api-version": "3.0", "to": ["en", "es", "fr"]}
body = [{"Text": "A tradução automática poupa muito tempo."}]
response = requests.post(endpoint + "/translate", params=params, headers=headers, json=body)
for t in response.json()[0]["translations"]:
print(t["to"], "->", t["text"])
El servicio devuelve una traducción por cada idioma solicitado y, cuando no indicas from, añade un campo detectedLanguage con el idioma identificado y su grado de confianza.
Verificar el resultado
Para confirmar que todo funciona, comprueba tres señales. Primero, el código de estado de la respuesta debe ser 200 (puedes imprimir response.status_code). Segundo, el JSON devuelto contiene una lista translations con el texto ya traducido. Tercero, al omitir from, aparece también el campo detectedLanguage. Si recibes un error 401 o 403, revisa la clave y la región; si es un 400, comprueba el formato del cuerpo: debe ser una lista de objetos, cada uno con la propiedad Text.
Conclusión
Con un recurso de Azure y menos de veinte líneas de Python, ya puedes traducir texto a decenas de idiomas mediante Azure AI Translator. A partir de aquí, prueba a integrar la función en una API web con Flask, traducir archivos por lotes o entrenar tu propio glosario con Custom Translator para respetar la terminología de tu empresa. ¿Cuál será el primer idioma al que traduzcas tu contenido?