Tilbage til bloggen
Four regional language code badges — fr-CA, pt-BR, es-MX, en-GB — connecting to a single API endpoint.

PolyLingo understøtter nu regionale sprogkoder: fr-CA, pt-BR, es-MX og flere

By Robert M

PolyLingo understøtter nu regionale sprogkoder: fr-CA, pt-BR, es-MX og flere

Du kan nu angive regionale dialektkoder direkte som oversættelsesmål i PolyLingo. fr-CA, pt-BR, es-MX, en-GB og flere andre er nu gyldige værdier i dit targets array, sammen med eller i stedet for deres generiske modstykker.

Der ændres ikke noget i, hvordan du kalder API'et. Samme endpoint, samme anmodningsformat. Du har bare flere gyldige koder at vælge imellem.


Hvad der er tilføjet

Syv nye regionale koder efter BCP-47-standarden:

KodeSprog
en-GBEngelsk (UK)
fr-CAFransk (Canada)
es-ESSpansk (Spanien)
es-MXSpansk (Mexico)
pt-PTPortugisisk (Portugal)
pt-BRPortugisisk (Brasilien)
zh-HKKinesisk (Hongkong)

Disse sidder sammen med den eksisterende zh-TW (traditionelt kinesisk), som allerede brugte samme BCP-47-konvention. Måltal er også hævet fra 36 til 50 for at rumme teams, der rammer flere regionale varianter i et enkelt kald.


Hvorfor regionale koder betyder noget

Generiske sprogkoder (fr, pt, es) er fine, når dit publikum er bredt eller blandet. Men når du leverer et produkt til et specifikt land, er generiske koder ofte ikke gode nok.

Brasiliansk portugisisk og europæisk portugisisk adskiller sig i ordforråd, stavning og register på måder, der betyder noget for modersmålstalere. Mexicansk spansk og kastiliansk spansk er så ens, at en generisk oversættelse hverken lyder fremmed eller helt naturlig for nogen af dem. Canadisk fransk har sine egne konventioner, der adskiller sig fra pariserfransk på måder, der straks er åbenlyse for en quebecer.

Hvis du sælger til et specifikt marked, fortjener det marked en oversættelse skrevet til dem. Regionale koder gør det muligt uden at skulle lave et separat API-kald eller en separat arbejdsgang.


Samme kald, flere varianter

Generiske og regionale koder kan eksistere i samme anmodning. Hver får sin egen nøgle i svaret:

curl -sS -X POST "https://api.usepolylingo.com/v1/translate" \
  -H "Authorization: Bearer $POLYLINGO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Din ordre er bekræftet.",
    "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."
  }
}

Du får fire nøgler tilbage, én per kode. Hvis fr og fr-CA producerer samme output for en given streng, er det forventet — de vil afvige i ordforråd og register, hvor forskellen er meningsfuld.


Målret kun et specifikt marked

Hvis du bygger til et kendt marked og ikke har brug for den generiske variant, skal du bare angive den regionale kode:

curl -sS -X POST "https://api.usepolylingo.com/v1/translate" \
  -H "Authorization: Bearer $POLYLINGO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Log ind på din konto.",
    "targets": ["en-GB", "es-MX", "pt-BR", "zh-HK"]
  }'

Byg en markeds-specifik mål-liste i Node.js

import { PolyLingo } from '@polylingo/node'

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

const result = await client.translate({
  content: 'Gratis fragt på ordrer over $50.',
  targets: ['es', 'es-MX', 'es-ES', 'pt', 'pt-BR', 'pt-PT'],
})

console.log(result.translations['es-MX']) // Mexicansk spansk
console.log(result.translations['pt-BR']) // Brasiliansk portugisisk

En enkelt anmodning dækker både latinamerikanske og iberiske markeder. Ingen løkker, ingen batch-behandling efter region.


Oversæt JSON-filer pr. marked i 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 din gratis prøveperiode"}'

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

Opdag understøttede koder ved kørsel

Hvis du bygger en sprogvælger eller en dynamisk mål-liste, behøver du ikke hardkode noget. GET /languages returnerer hele listen inklusive alle regionale varianter. Filtrer efter koder, der indeholder bindestreg, for at få dialekter specifikt:

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

Hvornår skal man bruge generisk vs. regional

Brug den generiske kode (pt, fr, es), når dit publikum er geografisk blandet eller ukendt, når du lige er startet på et marked og ønsker bred dækning, eller når indholdet er teknisk nok til, at regionale forskelle sandsynligvis ikke betyder noget.

Brug den regionale kode (pt-BR, fr-CA, es-MX), når du leverer til et specifikt land, når produktopplevelsen er lokaliseret på andre måder (pris, valuta, datoformater), når dit indhold er samtale- eller marketingdrevet og register betyder noget, eller når du ved, at dine brugere vil bemærke forskellen.

De to tilgange kan eksistere i samme anmodning. Et almindeligt mønster er at bruge den generiske kode som fallback og den regionale kode for en specifik markedsoplevelse, begge returneret i ét svar.


Intet går i stykker for eksisterende brugere

Alle eksisterende sprogkoder fortsætter med at fungere præcis som før. De nye koder er additive. Hvis du i øjeblikket sender fr, vil du fortsat få samme output. Hvis du specifikt ønsker canadisk fransk, tilføj fr-CA til dine mål. De to kan eksistere i samme kald uden konflikter.


Få din API-nøgle på usepolylingo.com — den gratis plan inkluderer 50.000 tokens pr. måned.