Terug naar blog
Split-screen flat illustration on a white background. Left side shows a simple document icon labeled “.txt” in muted blue-grey, producing a single output document tagged “EN.” Right side shows a JSON file with visible nested keys, connected to three separate document outputs labeled “EN,” “FR,” and “ES.” The right side uses teal and amber accents. A thin vertical line divides the two halves. Clean geometric style, minimal detail, no people or branding.

PolyLingo vs DeepL API: welke behoudt JSON en Markdown beter?

By Robert M

PolyLingo vs DeepL API: welke behoudt JSON en Markdown beter?

DeepL maakt echt uitstekende vertaalsoftware. De neurale vertaalmotor wordt algemeen beschouwd als een van de beste die beschikbaar zijn, en voor gewone proza is het moeilijk te overtreffen. Als je zinnen, paragrafen of documenten vertaalt die als doorlopende tekst zijn geschreven, is DeepL een sterke keuze.

De vraag die deze post beantwoordt is een specifiekere: hoe presteert de DeepL API wanneer je inhoud structuur heeft? Wanneer je een JSON-locale bestand moet vertalen zonder de sleutels aan te raken, of een Markdown-blogpost zonder de syntaxis te breken, of een HTML-pagina zonder de attributen te beschadigen? En hoe verhoudt het zich tot PolyLingo voor die specifieke use case?


Hoe de DeepL API is opgebouwd

De DeepL tekstvertalings-API accepteert platte tekst. Dat is het native invoerformaat. Elke aanvraag accepteert tot 50 tekststrings en deze worden onafhankelijk vertaald, zonder gedeelde context tussen hen. Er kan slechts één doeltaal per aanvraag worden opgegeven. Als je vijf talen nodig hebt, doe je vijf aanvragen.

DeepL ondersteunt documentvertaling voor formaten zoals PDF, Word, PowerPoint en HTML, maar dat gaat via een aparte documentendpoint met een andere flow: upload het bestand, poll voor voltooiing, download het resultaat. Het is ontworpen voor kantoordocumenten, niet voor geprogrammeerde content pipelines.

Voor HTML specifiek is er een tag_handling parameter die je kunt instellen op html, wat DeepL vertelt om de invoer als HTML te behandelen en te proberen tags te behouden. Dit werkt redelijk goed voor eenvoudige markup, maar het is een optionele vlag die je moet weten in te stellen, en het strekt zich niet uit tot JSON of Markdown.

Voor JSON is er geen native ondersteuning. De tekstendpoint van DeepL weet niet wat een JSON-sleutel is. Als je een geserialiseerd JSON-object stuurt, vertaalt het de inhoud als een string en is er geen garantie dat sleutels, structuur of niet-string waarden intact blijven. De babeldown R-bibliotheek, die DeepL wikkelt voor Markdown-inhoud, heeft gedocumenteerde gevallen waarin DeepL leestekens binnen Markdown-links en opmaak door elkaar haalt, wat een bekende beperking is van het doorgeven van gestructureerde tekst via een platte-tekst vertaalmachine.

Dit is geen kritiek op DeepL. Het is een beschrijving van wat de API is ontworpen om te doen. De kerngebruikscasus van DeepL is hoogwaardige vertaling van menselijk leesbare proza. Daar optimaliseert het voor en het is uitstekend daarin.


Waar het verschil in de praktijk zichtbaar wordt

Het verschil wordt zichtbaar zodra je inhoud geen gewone proza is.

Beschouw een standaard Next.js locale bestand:

{
  "nav": {
    "home": "Home",
    "about": "About us",
    "contact": "Get in touch"
  },
  "hero": {
    "title": "Welcome to our platform",
    "subtitle": "Everything you need in one place"
  }
}

Om dit met de DeepL API in vijf talen te vertalen, moet je:

  1. Elke stringwaarde afzonderlijk extraheren
  2. Een aparte API-aanvraag per taal doen (vijf talen, vijf aanvragen)
  3. De JSON-structuur reconstrueren met de vertaalde waarden op de juiste plaatsen
  4. Omgaan met gevallen waarin de vertaling leestekens heeft veranderd of tekens heeft geïntroduceerd die de JSON-validiteit breken Dat is een niet-triviale hoeveelheid lijmcode. Het is ook fragiel. Elke afwijking in de vertaaluitvoer van wat je parser verwacht, zal een stille fout of een runtime-fout in je applicatie veroorzaken.

Met PolyLingo stuur je het object zoals het is met format: "json" en ontvang je een vertaalde versie van de volledige structuur voor elke doeltaal in één antwoord. Sleutels blijven onaangeroerd. Nesting wordt behouden. Niet-string waarden blijven onaangeroerd. De output gaat direct in je project.

curl -sS -X POST "https://api.usepolylingo.com/v1/translate" \
  -H "Authorization: Bearer $POLYLINGO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "{\"nav\":{\"home\":\"Home\",\"about\":\"About us\"}}",
    "format": "json",
    "targets": ["fr", "de", "es", "ja", "nl"]
  }'

Eén aanvraag. Vijf talen. Structuur intact.


Markdown-inhoud

Hetzelfde patroon geldt voor Markdown. De tekstendpoint van DeepL heeft geen concept van Markdown-syntaxis. Stuur een blogpost en het verwerkt het geheel als een string. Koppen kunnen overleven. Codeblokken waarschijnlijk niet, omdat de inhoud erin waarschijnlijk als vertaalbare tekst wordt behandeld. Link-syntaxis kan beschadigd raken, vooral rond leestekens aan de grenzen van linktekst.

De markdown formatvlag van PolyLingo instrueert het model om Markdown-syntaxis als structureel te behandelen in plaats van vertaalbaar. Koppen blijven koppen. Afgebakende codeblokken blijven letterlijk. Link-URL's worden niet gewijzigd. Alleen de prozatekst verandert.

Voor een documentatiesite of een blog met technische inhoud is het verschil significant. Een beschadigd codeblok in een tutorial is geen klein presentatieprobleem, het is een kapotte tutorial.


Het verschil tussen één aanvraag vs één per taal

Dit is het waard om bij stil te staan omdat de kostenimplicaties reëel zijn.

De API van DeepL accepteert slechts één doeltaal per aanvraag. Om een stuk inhoud in tien talen te vertalen, doe je tien API-aanroepen. Voor een grote site of een CMS met frequente publicaties is dat tien keer de aanvraagoverhead, tien keer de latentie om te beheren, en tien keer de faalpunten.

PolyLingo accepteert een array van doeltaalcodes en retourneert alle vertalingen in één antwoord. Zesendertig talen is één aanvraag, niet zesendertig.

Voor kleine projecten is het verschil beheersbaar. Voor alles op schaal verandert het de architectuur van hoe je je vertaalpijplijn bouwt.


Prijsmodel

DeepL rekent per teken. Het API Free-plan staat tot 500.000 tekens per maand toe, en betaalde plannen factureren op tekenverbruik. Omdat je één aanvraag per taal doet, wordt het tekenaantal voor een stuk inhoud vermenigvuldigd met het aantal doeltalen waarnaar je het stuurt in aparte aanvragen.

PolyLingo rekent per token en telt over de gecombineerde invoer en uitvoer voor alle talen in één aanvraag. De facturering is transparant en voorspelbaar: de gratis laag bevat 50.000 tokens per maand, met betaalde plannen vanaf $9 per maand voor 600.000 tokens.

De twee modellen zijn niet direct vergelijkbaar op kosten per woord omdat ze verschillende eenheden gebruiken, maar de architectuur van PolyLingo met één-aanvraag-alle-talen betekent dat je je aanvraagaantal niet lineair vermenigvuldigt met het aantal doeltalen.


Waar elk van toepassing is

DeepL API is de juiste keuze wanneer:

  • Je inhoud gewone proza is zonder structurele vereisten

  • Vertaalkwaliteit voor menselijk leesbare tekst de primaire zorg is

  • Je vertaalt naar een klein aantal talen en het aanvraagvolume laag is

  • Je al geïnvesteerd bent in het DeepL-ecosysteem en hun woordenlijst of formaliteitsfuncties gebruikt

  • Je ondersteuning nodig hebt voor een taal buiten de huidige 36 van PolyLingo (DeepL ondersteunt meer dan 100 talen) PolyLingo is de juiste keuze wanneer:

  • Je inhoud JSON, Markdown of HTML is en de structuur behouden moet blijven

  • Je naar meerdere talen in één API-aanroep moet vertalen

  • Je een CMS-integratie of i18n-pijplijn bouwt waar aanvraag efficiëntie belangrijk is

  • Je een consistente interface wilt over alle inhoudsformaten zonder formatspecifieke workarounds

  • Je token-gebaseerde facturering wilt met een voorspelbare maandelijkse toekenning


Samenvatting naast elkaar

PolyLingoDeepL API
Native JSON-ondersteuningJaNee
Native Markdown-ondersteuningJaNee
HTML-ondersteuningJaJa (tag_handling vlag)
Alle talen in één aanvraagJaNee, één taal per aanvraag
Detecteert inhoudsformaat automatischJaNee
Ondersteunde talen36100+
Gratis laag50.000 tokens/maand500.000 tekens/maand
FactureringseenheidTokenTeken
No-code webvertalerJaJa (webapp)

DeepL heeft een grotere taalcatalogus en een langere staat van dienst voor proza-vertalingskwaliteit. PolyLingo is speciaal gebouwd voor gestructureerde content workflows waar formatintegriteit niet onderhandelbaar is.

Ze lossen aangrenzende problemen op. De juiste keuze hangt af van hoe je inhoud er daadwerkelijk uitziet.


Probeer PolyLingo

De gratis laag bevat 50.000 tokens per maand. Geen creditcard vereist. Volledige API-documentatie is te vinden op usepolylingo.com/docs.

curl -sS -X POST "https://api.usepolylingo.com/v1/translate" \
  -H "Authorization: Bearer $POLYLINGO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "# Hello\n\nThis is **structured** content.",
    "format": "markdown",
    "targets": ["fr", "de", "es"]
  }'

Haal je API-sleutel op