Volver al blog
Four regional language code badges — fr-CA, pt-BR, es-MX, en-GB — connecting to a single API endpoint.

PolyLingo ahora admite códigos de idiomas regionales: fr-CA, pt-BR, es-MX y más

By Robert M

PolyLingo ahora soporta códigos de idioma regionales: fr-CA, pt-BR, es-MX y más

Ahora puedes pasar códigos de dialectos regionales directamente como objetivos de traducción en PolyLingo. fr-CA, pt-BR, es-MX, en-GB y varios otros son ahora valores válidos en tu arreglo targets, junto con o en lugar de sus contrapartes genéricas.

Nada cambia en cómo llamas a la API. El mismo endpoint, la misma estructura de solicitud. Simplemente tienes más códigos válidos para elegir.


Qué se añadió

Siete nuevos códigos regionales siguiendo el estándar BCP-47:

CódigoIdioma
en-GBInglés (Reino Unido)
fr-CAFrancés (Canadá)
es-ESEspañol (España)
es-MXEspañol (México)
pt-PTPortugués (Portugal)
pt-BRPortugués (Brasil)
zh-HKChino (Hong Kong)

Estos se suman al existente zh-TW (Chino Tradicional), que ya usaba la misma convención BCP-47. El límite de objetivos también se ha elevado de 36 a 50 para acomodar a equipos que usan múltiples variantes regionales en una sola llamada.


Por qué importan los códigos regionales

Los códigos genéricos de idioma (fr, pt, es) están bien cuando tu audiencia es amplia o mixta. Pero cuando envías un producto a un país específico, lo genérico a menudo no es suficiente.

El portugués brasileño y el portugués europeo difieren en vocabulario, ortografía y registro de formas que importan a los hablantes nativos. El español mexicano y el español castellano son lo suficientemente similares como para que una traducción genérica no suene extranjera para ninguno, pero tampoco perfectamente natural para ninguno. El francés canadiense tiene sus propias convenciones que difieren del francés parisino de formas que son inmediatamente obvias para un quebequense.

Si vendes a un mercado específico, ese mercado merece una traducción escrita para ellos. Los códigos regionales hacen eso posible sin necesidad de una llamada API separada o un flujo de trabajo separado.


Mismo llamado, múltiples variantes

Los códigos genéricos y regionales pueden coexistir en la misma solicitud. Cada uno obtiene su propia clave en la respuesta:

curl -sS -X POST "https://api.usepolylingo.com/v1/translate" \
  -H "Authorization: Bearer $POLYLINGO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Your order has been confirmed.",
    "targets": ["fr", "fr-CA", "pt", "pt-BR"]
  }'
{
  "translations": {
    "fr":    "Votre commande a été confirmée.",
    "fr-CA": "Votre commande a été confirmée.",
    "pt":    "O seu pedido foi confirmado.",
    "pt-BR": "O seu pedido foi confirmado."
  }
}

Recibes cuatro claves de vuelta, una por código. Si fr y fr-CA producen la misma salida para una cadena dada, eso es esperado — divergirán en vocabulario y registro donde la diferencia sea significativa.


Apuntar solo a un mercado específico

Si estás construyendo para un mercado conocido y no necesitas la variante genérica, simplemente pasa el código regional:

curl -sS -X POST "https://api.usepolylingo.com/v1/translate" \
  -H "Authorization: Bearer $POLYLINGO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Sign in to your account.",
    "targets": ["en-GB", "es-MX", "pt-BR", "zh-HK"]
  }'

Construir una lista de objetivos específica de mercado en Node.js

import { PolyLingo } from '@polylingo/node'

const client = new PolyLingo(process.env.POLYLINGO_API_KEY)

const result = await client.translate({
  content: 'Free shipping on orders over $50.',
  targets: ['es', 'es-MX', 'es-ES', 'pt', 'pt-BR', 'pt-PT'],
})

console.log(result.translations['es-MX']) // Español mexicano
console.log(result.translations['pt-BR']) // Portugués brasileño

Una solicitud cubre tanto los mercados latinoamericanos como los ibéricos. Sin bucles, sin agrupación por región.


Traducir archivos JSON por mercado en Python

import os, requests

client = requests.Session()
client.headers['Authorization'] = f"Bearer {os.environ['POLYLINGO_API_KEY']}"

markets = {
    'latam':  ['es-MX', 'pt-BR'],
    'europe': ['en-GB', 'fr', 'es-ES', 'pt-PT', 'de', 'it'],
    'asia':   ['zh-HK', 'zh-TW', 'zh', 'ja', 'ko'],
}

content = '{"cta": "Start your free trial"}'

for region, targets in markets.items():
    r = client.post(
        'https://api.usepolylingo.com/v1/translate',
        json={'content': content, 'format': 'json', 'targets': targets},
        timeout=120,
    )
    r.raise_for_status()
    print(f"\n{region.upper()}")
    for code, text in r.json()['translations'].items():
        print(f"  {code}: {text}")

Descubrir códigos soportados en tiempo de ejecución

Si estás construyendo un selector de idioma o una lista dinámica de objetivos, no necesitas codificar nada manualmente. GET /languages devuelve la lista completa incluyendo todas las variantes regionales. Filtra por códigos que contengan un guion para obtener específicamente dialectos:

const res = await fetch('https://api.usepolylingo.com/v1/languages')
const { languages } = await res.json()

const dialects = languages.filter(l => l.code.includes('-'))
console.log(dialects)
// [
//   { code: 'en-GB', name: 'English (UK)',           rtl: false },
//   { code: 'fr-CA', name: 'French (Canada)',         rtl: false },
//   { code: 'es-ES', name: 'Spanish (Spain)',         rtl: false },
//   { code: 'es-MX', name: 'Spanish (Mexico)',        rtl: false },
//   { code: 'pt-PT', name: 'Portuguese (Portugal)',   rtl: false },
//   { code: 'pt-BR', name: 'Portuguese (Brazil)',     rtl: false },
//   { code: 'zh-TW', name: 'Chinese (Traditional)',  rtl: false },
//   { code: 'zh-HK', name: 'Chinese (Hong Kong)',     rtl: false },
// ]

Cuándo usar genérico vs regional

Usa el código genérico (pt, fr, es) cuando tu audiencia es geográficamente mixta o desconocida, cuando recién comienzas con un mercado y quieres cobertura amplia, o cuando el contenido es lo suficientemente técnico como para que las diferencias regionales probablemente no importen.

Usa el código regional (pt-BR, fr-CA, es-MX) cuando envías a un país específico, cuando la experiencia del producto está localizada de otras maneras (precios, moneda, formatos de fecha), cuando tu contenido es conversacional o dirigido al marketing y el registro importa, o cuando sabes que tus usuarios notarán la diferencia.

Los dos enfoques pueden coexistir en la misma solicitud. Un patrón común es usar el código genérico como respaldo y el código regional para la experiencia de un mercado específico, ambos devueltos en una sola respuesta.


Nada cambia para los usuarios existentes

Todos los códigos de idioma existentes continúan funcionando exactamente como antes. Los nuevos códigos son aditivos. Si actualmente pasas fr seguirás obteniendo la misma salida. Si quieres francés canadiense específicamente, añade fr-CA a tus objetivos. Ambos pueden coexistir en la misma llamada sin conflictos.


Obtén tu clave API en usepolylingo.com — el nivel gratuito incluye 50,000 tokens por mes.