JSON vertaling

Vertaal JSON-locale-bestanden zonder je sleutels aan te raken.

Sleutels blijven sleutels. Nesting blijft intact. Alleen de stringwaarden worden vertaald — en alleen de stringwaarden. Elk ander eigenschapstype blijft exact zoals verzonden.

Sleutels
altijd behouden
Genest
objecten recursief verwerkt
36
uitvoertalen per aanvraag
100K
gratis tokens / maand

Standaard vertaaltools begrijpen JSON niet.

Generieke vertaal-API's zien je JSON als een muur van tekst. Ze vertalen sleutelnamen samen met waarden. Ze plakken geneste objecten plat. Ze concatenëren strings die ze niet zouden moeten samenvoegen. Wat terugkomt is structureel kapotte JSON die handmatig gecorrigeerd moet worden voordat het gebruikt kan worden. Als je locale-bestanden onderhoudt voor een productieapplicatie, weet je dat het invoeren ervan in een standaard vertaal-API meer werk oplevert dan het bespaart.

Het probleem gaat dieper dan alleen sleutelnamen. Standaard vertaal-API's verstoren ook interpolatievariabelen. Een string als "Hello {name}, you have {count} messages" komt terug met de variabelnamen vertaald — "Hola {nombre}, tienes {cuenta} mensajes" — wat elke runtime breekt die de originele variabelnaam verwachtte. Uren debuggen volgen.

Voor teams die locale-bestanden onderhouden in meerdere talen voor een productieapplicatie is dit geen theoretische zorg. Het is al gebeurd. De vraag is hoe lang het handmatige herstelproces elke keer duurt.

PolyLingo doorloopt je JSON voordat het vertaalt.

PolyLingo begrijpt JSON-structuur. Het doorloopt je object recursief, identificeert stringwaarden die vertaalbare tekst bevatten, en stuurt alleen die waarden naar het vertaalmodel. Sleutelnamen worden nooit aangepast. Nummers, booleans, null-waarden en niet-string types worden onveranderd doorgegeven. De output is geldige JSON met een identieke structuur — alleen met vertaalde stringwaarden.

Interpolatievariabelen — {name}, {{count}}, %s, en vergelijkbare patronen — worden geïdentificeerd en behouden tijdens het vertaalproces. Ze worden vervangen door tijdelijke aanduidingen vóór vertaling, en in hun originele vorm hersteld in de output. Het vertaalmodel ziet ze nooit als vertaalbare tekst.

Arrays worden correct verwerkt: elk stringelement wordt vertaald, terwijl numerieke indices en arraystructuur onveranderd blijven. Gemengde arrays met zowel strings als niet-strings (nummers, objecten) worden correct doorlopen waarbij niet-string types onveranderd worden doorgegeven.

Invoer — vlakke JSON locale (Engels)
{
  "nav_home": "Home",
  "nav_pricing": "Pricing",
  "hero_title": "Grow your audience globally",
  "hero_cta": "Get started for free",
  "footer_rights": "All rights reserved."
}
Uitvoer — Frans (sleutels identiek)
{
  "nav_home": "Accueil",
  "nav_pricing": "Tarifs",
  "hero_title": "Développez votre audience mondiale",
  "hero_cta": "Commencer gratuitement",
  "footer_rights": "Tous droits réservés."
}
Invoer — geneste JSON locale (Engels)
{
  "nav": {
    "home": "Home",
    "pricing": "Pricing",
    "blog": "Blog"
  },
  "hero": {
    "title": "Grow your audience globally",
    "subtitle": "Translate in seconds.",
    "cta": "Get started for free"
  },
  "errors": {
    "notFound": "Page not found",
    "serverError": "Something went wrong"
  }
}
Uitvoer — Spaans (structuur intact)
{
  "nav": {
    "home": "Inicio",
    "pricing": "Precios",
    "blog": "Blog"
  },
  "hero": {
    "title": "Expande tu audiencia globalmente",
    "subtitle": "Traduce en segundos.",
    "cta": "Comienza gratis"
  },
  "errors": {
    "notFound": "Página no encontrada",
    "serverError": "Algo salió mal"
  }
}
API-aanvraag — vertaal naar 5 talen in één oproep
curl -X POST https://api.usepolylingo.com/v1/translate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "{\"nav_home\": \"Home\", \"hero_title\": \"Get started\"}",
    "format": "json",
    "targets": ["es", "fr", "de", "ja", "zh"],
    "model": "standard"
  }'

# Response:
# {
#   "translations": {
#     "es": "{\"nav_home\": \"Inicio\", \"hero_title\": \"Empezar\"}",
#     "fr": "{\"nav_home\": \"Accueil\", \"hero_title\": \"Commencer\"}",
#     ...
#   }
# }

Wat PolyLingo garandeert voor elke JSON-vertaling

  • Sleutelnamen worden nooit aangepast
  • Geneste objecten en arrays worden recursief verwerkt
  • Nummers, booleans, null-waarden worden onveranderd doorgegeven
  • Alle 36 talen in één enkele aanvraag
  • Automatisch gedetecteerd als JSON — geen formaatvlag nodig
  • Werkt met vlakke en diep geneste locale-bestanden
  • Interpolatievariabelen ({name}, {{count}}, %s) exact behouden
  • Output is geldige JSON — parseerbaar zonder aanpassing

Drie stappen naar vertaalde locale-bestanden

1

Plak je JSON of roep de API aan

Gebruik de no-code vertaler voor eenmalige vertalingen: plak je JSON, kies je talen, download de vertaalde bestanden. Voor automatisering, roep POST /v1/translate aan met je JSON-inhoud en doeltaalcodes.

2

Ontvang alle talen in één antwoord

De API retourneert een JSON-object met één invoer per doeltaal, elk met het volledig vertaalde locale-bestand met identieke structuur. Geen per-taal oproepen. Geen loops. Eén aanvraag voor alle uitvoer.

3

Plaats de uitvoer in je messages-map

Schrijf elk vertaald bestand naar messages/es.json, messages/fr.json, messages/de.json — of waar je i18n-bibliotheek ze ook verwacht. De structuur is identiek aan je bronbestand, dus verdere verwerking is niet nodig.

Waar JSON-vertaling het meest telt

🌐

App i18n met next-intl of i18next

Vertaal je messages/*.json of locales/*.json bestanden direct. Sleutels blijven intact, nesting wordt behouden, en interpolatievariabelen blijven ongewijzigd. Plaats de bestanden in je messages-map en deploy.

🗄️

CMS content exports

Headless CMS-platforms exporteren vaak gestructureerde content als JSON. PolyLingo vertaalt de stringwaarden terwijl veldnamen, geneste contenttypes en niet-string waarden zoals datums, booleans en ID's behouden blijven.

⚙️

API-responses en configuratiebestanden

Elke JSON-structuur met vertaalbare stringwaarden — productbeschrijvingen, notificatiesjablonen, in-app teksten via API — kan vertaald worden zonder de structuur te wijzigen waarop je applicatie vertrouwt.

Veelgestelde vragen over JSON-vertaling

Worden interpolatievariabelen zoals {name} of {{count}} behouden?

Ja. PolyLingo herkent veelvoorkomende interpolatiepatronen zoals {variable}, {{variable}}, %(variable)s, en %s vóór vertaling. Deze worden vervangen door stabiele tijdelijke aanduidingen, de omliggende tekst wordt vertaald, en de originele variabelnamen worden hersteld in de output. Het vertaalmodel ziet de variabelnamen nooit als vertaalbare inhoud.

Wat gebeurt er met niet-string waarden — nummers, booleans, null?

Niet-string waarden worden volledig onveranderd doorgegeven. PolyLingo vertaalt alleen stringwaarden die natuurlijke taal bevatten. Nummers, booleans, null-waarden en arrays van niet-strings blijven exact zoals ze in de bron staan.

Kan PolyLingo diep geneste JSON-structuren aan?

Ja. PolyLingo doorloopt recursief objecten van elke nestingsdiepte. De vertaling wordt toegepast op alle stringwaarden door de hele structuur, ongeacht hoe diep ze genest zijn.

Wat als sommige sleutels niet-vertalbare inhoud bevatten zoals slugs of codes?

PolyLingo vertaalt standaard alle stringwaarden. Als je stringvelden hebt die niet vertaald moeten worden — slugs, taalcodes, technische identifiers — is de aanbevolen aanpak ze uit de JSON die je verzendt te verwijderen, of het expliciete format-parameter te gebruiken en velden op te geven om over te slaan (binnenkort beschikbaar). Voor de meeste locale-bestanden zijn alle stringwaarden bedoeld om vertaald te worden.

Werkt het met JSON5 of JSONC (JSON met opmerkingen)?

Momenteel verwerkt PolyLingo standaard JSON. JSON5 en JSONC (met opmerkingen) moeten vooraf worden verwerkt om opmerkingen te verwijderen en omgezet naar standaard JSON voordat ze worden verzonden. Dit is een gebruikelijke stap in build-pijplijnen en voegt minimale overhead toe.

Hoeveel talen kan ik in één aanvraag targeten?

Tot alle 36 ondersteunde talen in één enkele aanvraag. De respons bevat één vertaald JSON-object per taalcode. Rate limits verschillen per plan — de gratis laag staat 10 aanvragen per minuut toe, terwijl Growth- en Scale-plannen 200–600 aanvragen per minuut toestaan.

Vertaal je locale-bestanden in enkele seconden.

Plak je JSON, kies je talen, ontvang geldige locale-bestanden voor elke doeltaal.

Begin gratis met vertalen

Plak je locale JSON en zie de output — gratis, geen account nodig.

Vertaal JSON-locale-bestanden zonder je sleutels aan te raken — PolyLingo | PolyLingo