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

PolyLingo ondersteunt nu regionale taalcodes: fr-CA, pt-BR, es-MX en meer

By Robert M

PolyLingo ondersteunt nu regionale taalcodes: fr-CA, pt-BR, es-MX en meer

Je kunt nu regionale dialectcodes direct doorgeven als vertaaldoelen in PolyLingo. fr-CA, pt-BR, es-MX, en-GB en verschillende anderen zijn nu geldige waarden in je targets array, naast of in plaats van hun generieke tegenhangers.

Er verandert niets aan hoe je de API aanroept. Dezelfde endpoint, dezelfde requestvorm. Je hebt alleen meer geldige codes om uit te kiezen.


Wat is toegevoegd

Zeven nieuwe regionale codes volgens de BCP-47 standaard:

CodeTaal
en-GBEngels (VK)
fr-CAFrans (Canada)
es-ESSpaans (Spanje)
es-MXSpaans (Mexico)
pt-PTPortugees (Portugal)
pt-BRPortugees (Brazilië)
zh-HKChinees (Hong Kong)

Deze staan naast de bestaande zh-TW (Traditioneel Chinees), die al dezelfde BCP-47 conventie gebruikte. De limiet voor targets is ook verhoogd van 36 naar 50 om teams die meerdere regionale varianten in één oproep gebruiken te accommoderen.


Waarom regionale codes belangrijk zijn

Generieke taalcodes (fr, pt, es) zijn prima als je publiek breed of gemengd is. Maar als je een product naar een specifiek land brengt, is generiek vaak niet voldoende.

Braziliaans Portugees en Europees Portugees verschillen in vocabulaire, spelling en register op manieren die belangrijk zijn voor moedertaalsprekers. Mexicaans Spaans en Castiliaans Spaans lijken genoeg op elkaar dat een generieke vertaling noch vreemd noch perfect natuurlijk klinkt. Canadees Frans heeft zijn eigen conventies die verschillen van Parijzings Frans op manieren die meteen duidelijk zijn voor een Quebecer.

Als je aan een specifieke markt verkoopt, verdient die markt een vertaling die voor hen geschreven is. Regionale codes maken dat mogelijk zonder een aparte API-aanroep of aparte workflow.


Zelfde oproep, meerdere varianten

Generieke en regionale codes kunnen naast elkaar bestaan in dezelfde aanvraag. Elk krijgt zijn eigen sleutel in de respons:

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."
  }
}

Je krijgt vier sleutels terug, één per code. Als fr en fr-CA dezelfde output geven voor een bepaalde string, is dat verwacht — ze zullen verschillen in vocabulaire en register waar het verschil betekenisvol is.


Alleen een specifieke markt targeten

Als je bouwt voor een bekende markt en geen gebruik hebt voor de generieke variant, geef dan gewoon de regionale code door:

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"]
  }'

Een markt-specifieke targetlijst bouwen in 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']) // Mexicaans Spaans
console.log(result.translations['pt-BR']) // Braziliaans Portugees

Eén verzoek dekt zowel Latijns-Amerikaanse als Iberische markten. Geen loops, geen batching per regio.


JSON-bestanden per markt vertalen in 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}")

Ondersteunde codes ontdekken tijdens runtime

Als je een taalkeuzemenu of een dynamische targetlijst bouwt, hoef je niets hard te coderen. GET /languages retourneert de volledige lijst inclusief alle regionale varianten. Filter op codes die een koppelteken bevatten om specifiek dialecten te krijgen:

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 },
// ]

Wanneer generiek vs regionaal gebruiken

Gebruik de generieke code (pt, fr, es) als je publiek geografisch gemengd of onbekend is, als je net begint met een markt en brede dekking wilt, of als de inhoud technisch genoeg is dat regionale verschillen waarschijnlijk niet uitmaken.

Gebruik de regionale code (pt-BR, fr-CA, es-MX) als je naar een specifiek land verzendt, als de productervaring op andere manieren gelokaliseerd is (prijzen, valuta, datumformaten), als je inhoud conversatiegericht of marketinggericht is en het register belangrijk is, of als je weet dat je gebruikers het verschil zullen merken.

De twee benaderingen kunnen naast elkaar bestaan in dezelfde aanvraag. Een veelvoorkomend patroon is om de generieke code als fallback te gebruiken en de regionale code voor de ervaring van een specifieke markt, beide teruggegeven in één respons.


Niets breekt voor bestaande gebruikers

Alle bestaande taalcodes blijven precies werken zoals voorheen. De nieuwe codes zijn aanvullend. Als je nu fr doorgeeft, blijf je dezelfde output krijgen. Als je specifiek Canadees Frans wilt, voeg dan fr-CA toe aan je targets. Beide kunnen naast elkaar bestaan in dezelfde oproep zonder conflicten.


Haal je API-sleutel op op usepolylingo.com — het gratis abonnement bevat 50.000 tokens per maand.