Vorige maand hebben we een project opgeleverd dat tussen de $150.000 en $300.000 zou hebben gekost via een traditioneel vertaalbedrijf. We hebben het gedaan voor $660 totaal. Dat is 118 pagina's vertaald naar 30 talen voor ruwweg $22 per taal. Nee, dit is geen typefout. En nee, de kwaliteit was niet waardeloos.

Ik wil je precies uitleggen hoe we dit hebben gerealiseerd -- de architectuur, de tooling, de prompt engineering, het kwaliteitsborgingsproces, en de eerlijke afwegingen. Want goedkoop hoeft niet slecht te zijn, maar het betekent wel dat je slim moet omgaan met waar je je inspanningen investeert.

Inhoudsopgave

De projectomvang

De klant was een B2B SaaS-bedrijf dat expandeerde naar Europese, Aziatische en Latijns-Amerikaanse markten. Hun marketingsite had 118 pagina's: landingspagina's, featurepagina's, blogberichten, juridische pagina's en documentatie. De inhoud was oorspronkelijk in het Engels.

De doeltalen waren de gebruikelijke verdachten -- Spaans, Frans, Duits, Japans, Koreaans, Mandarijn Chinees -- plus enkele die moeilijker zijn om vertalers voor te vinden, zoals Estisch, Lets, Litouws en Sloveens. Dertig talen in totaal.

Een snelle berekening van de inhoudshoeveelheid:

Metriek Aantal
Totaal pagina's 118
Gemiddeld woorden per pagina ~620
Totaal Engelse woorden ~73.160
Totaal vertaalde woorden ~2.194.800 (73.160 × 30)
Talen 30
Totale kosten ~$660
Kosten per taal ~$22
Kosten per woord (vertaald) $0.0003

Voor context: professionele menselijke vertaling kost gewoonlijk $0,10 tot $0,30 per woord, afhankelijk van het taalpaar. Op het middelpunt van $0,20 per woord zouden we kijken naar $14.632 per taal of $438.960 totaal. Zelfs budgetbedrijven die machinevertaling gebruiken met lichte menselijke review rekenen $0,05-0,08 per woord.

Waarom traditionele vertaling zo duur is

Ik wil de vertaalindustrie niet afkraken. Menselijke vertalers doen ongelooflijk goed werk, en voor bepaalde inhoudstypen is er geen alternatief. Maar hier is wat de kosten drijft:

Per-woord-prijsmodellen waren ontworpen voor een wereld waarin elk woord menselijke cognitieve inspanning vereiste. Een vertaler verwerkt misschien 2.000-3.000 woorden per dag voor technische inhoud. Bij 73.160 woorden zijn dat 24-36 vertalerdagen per taal. Vermenigvuldig met 30 talen en je kijkt naar 720-1.080 persoonsdagen werk.

Zeldzame taalparen kosten meer. Een kwaliteits-Engelse-naar-Letse technische vertaler vinden is niet makkelijk. Vraag en aanbod speelt een rol.

Projectmanagement-overhead is reëel. Vertaalbedrijven hebben projectmanagers die coördineren tussen vertalers, reviewers en klanten. Die overhead wordt ingebakken in het per-woord tarief.

Context switching kost tijd. Een vertaler die aan je marketingcopy werkt moet je merkidentiteit, je productterminologie en je doelgroep begrijpen. Die inwerktijd wordt verdeeld over het project, maar het is reëel.

Niets hiervan is verspilling -- het is gewoon duur. En voor een bedrijf dat nieuwe markten test, $400K aan vertaling uitgeven voordat je product-marktfit in die regio's hebt geverifieerd is moeilijk te verteren.

Onze AI-vertaalarchitectuur

Hier is het systeem dat we hebben gebouwd. Het is niet één API-aanroep -- het is een pijplijn.

Stap 1: Inhoudsextractie en segmentatie

De site was gebouwd met Next.js, wat ons werk gemakkelijker maakte. Alle inhoud bevond zich in gestructureerde gegevensbestanden (MDX voor blogberichten, JSON voor UI-strings, en gestructureerde inhoud van een headless CMS).

We schreven een script dat alle inhoudbronnen doorliep en een genormaliseerd tussenformat produceerde:

interface TranslationUnit {
  id: string;           // unieke sleutel zoals "homepage.hero.title"
  source: string;       // Engelse tekst
  context: string;      // waar dit verschijnt (pagina, sectie)
  type: 'heading' | 'paragraph' | 'ui-string' | 'legal' | 'meta';
  maxLength?: number;   // voor UI-strings met ruimtebeperkingen
  glossaryTerms: string[]; // productspecifieke termen gevonden in deze eenheid
}

Dit is kritiek. Je wilt niet hele pagina's naar een LLM gooien en hopen op het beste. Het segmenteren van inhoud in vertalingseenheden geeft je controle over context, stelt je in staat om verschillende inhoudstypen anders af te handelen, en maakt incrementele updates mogelijk later.

Stap 2: Woordenlijst en stijlgids genereren

Voordat we een woord hebben vertaald, hebben we een woordenlijst gebouwd. Dit includeerde:

  • Productnamen (vertaal deze nooit)
  • Technische termen met aanbevolen vertalingen
  • Merkspecifieke uitdrukkingen
  • Toonrichtlijnen per inhoudstype

We hebben eigenlijk Claude gebruikt om de initiële woordenlijst te helpen bouwen door de Engelse inhoud te analyseren en termen te identificeren die consistente vertaling nodig zouden hebben. Vervolgens lieten we de klant deze beoordelen en goedkeuren.

Stap 3: Batchvertaling met Claude API

We gebruikten de Claude 3.5 Sonnet API (nu Claude 4 Sonnet beschikbaar en nog beter voor dit) voor de daadwerkelijke vertaling. Waarom Claude boven GPT-4o of Gemini? Om enkele redenen:

  • Beter in het consistent volgen van complexe systeemaanwijzingen
  • Natuurlijkere output in Romance en Germaanse talen in onze tests
  • Het 200K-contextsvenster stelde ons in staat volledige woordenlijsten en stijlgidsen in elk verzoek op te nemen
  • De prijzen waren competitief voor ons use case

We batchten vertalingseenheden in groepen van 20-30, georganiseerd op pagina en inhoudstype. Elke batch includeerde de woordenlijst, stijlgids en context over waar de tekst verscheen.

import anthropic
import json

client = anthropic.Anthropic()

def translate_batch(units: list[dict], target_lang: str, glossary: dict, style_guide: str) -> list[dict]:
    system_prompt = f"""You are a professional translator specializing in {target_lang} 
    localization for B2B software companies.
    
    GLOSSARY (use these exact translations):
    {json.dumps(glossary[target_lang], indent=2, ensure_ascii=False)}
    
    STYLE GUIDE:
    {style_guide}
    
    RULES:
    - Preserve all markdown formatting
    - Never translate product names listed in the glossary
    - Adapt idioms naturally -- don't translate literally
    - For UI strings with maxLength, stay within the character limit
    - Output valid JSON matching the input structure"""
    
    user_prompt = f"""Translate the following translation units to {target_lang}.
    Return JSON array with same structure, replacing 'source' with 'translation'.
    
    {json.dumps(units, indent=2, ensure_ascii=False)}"""
    
    response = client.messages.create(
        model="claude-sonnet-4-20250514",
        max_tokens=8192,
        system=system_prompt,
        messages=[{"role": "user", "content": user_prompt}]
    )
    
    return json.loads(response.content[0].text)

Stap 4: Geautomatiseerde kwaliteitschecks

Na vertaling liep elke eenheid door geautomatiseerde checks:

  • Formaatbehoud: Hebben markdown, HTML-tags en variabelen het overleefd?
  • Lengtevalidatie: Vallen UI-strings binnen hun maximale lengte?
  • Woordenlijstnalevingcompliance: Zijn productnamen onvertaald gebleven?
  • Aanduiding-integriteit: Zijn {variable}-aanduidingen intact?
  • Terugvertalings-sampling: Vertaal 10% van de output terug naar het Engels en vergelijk semantische gelijkenis

Ongeveer 3-4% van de vertalingseenheden mislukte één of meer checks en ging door een tweede doorgang met specifieke correctie-instructies.

Stap 5: Samenstelling en integratie

Vertaalde eenheden werden terugsamengesteld in het format dat de Next.js-app verwachtte -- JSON-localebestanden, vertaalde MDX en CMS-vermeldingen. We gebruikten next-intl voor de routing- en localebeheer.

De prompt engineering die echt uitmaakt

Ik heb gezien dat mensen tekst naar ChatGPT gooien en het "AI-vertaling" noemen. Dat geeft je misschien 70% kwaliteit. De kloof tussen 70% en 95% zit helemaal in hoe je prompt.

Hier is wat het verschil maakte:

Context is alles

Het model vertellen "vertaal dit naar het Frans" geeft je generieke output. Het vertellen "vertaal deze herokop voor een B2B SaaS-landingspagina gericht op IT-directeuren in Frankrijk, met behoud van een zelfverzekerde maar niet agressieve toon" geeft je iets bruikaars.

We includeerden het paginatype, het doelpubliek en het doel van elk inhoudsblok in elk verzoek.

Few-shot-voorbeelden per taal

Voor elke taal maakten we 5-10 voorbeelden van vertalingen die de gewenste toon vastlegden. Deze gingen in de systeem-prompt. Voor talen waar we een moedertaalspreker in het team of ons netwerk hadden (ongeveer 8 van de 30), liet ik hen deze voorbeelden schrijven. Voor de rest genereerden we ze en refineerden ze vervolgens via terugvertalingsvergelijking.

Woordenlijstafdwinging

Dit klinkt voor de hand liggend, maar het is het meest impactvolle wat je kunt doen. Zonder woordenlijst vertaalt het model je productnaam "CloudSync" naar het equivalent van "cloudsynchronisatie" in sommige talen. Het zal verschillende termen voor dezelfde functie gebruiken op verschillende pagina's. Inconsistentie schaadt vertrouwen.

Chunkingstrategie

We ontdekten dat vertaling van 500-800 woorden tegelijk, gegroepeerd op paginavak, de beste resultaten gaf. Te klein (individuele zinnen) en je verliest context. Te groot (hele pagina's) en de kwaliteit neemt af naar het einde van de output.

Kostenopbouw: waar de $22 heengaat

Laten we concreet over het geld spreken.

Kostenpost Per taal Totaal (30 talen)
Claude API (vertaling) $16,40 $492,00
Claude API (QA/terugvertaling) $3,20 $96,00
Claude API (woordenlijstgenerering) $0,80 $24,00
Diverse API-aanroepen (herhalingen, correcties) $1,60 $48,00
Totale API-kosten $22,00 $660,00

Dit bevat niet de engineeringtijd om de pijplijn te bouwen, wat ongeveer 40 uur was. Maar die pijplijn is nu herbruikbaar. Wanneer de klant een nieuw blogbericht toevoegt, kost het vertalen ervan naar alle 30 talen ongeveer $2-4 in API-kosten en draait het automatisch in hun CI/CD-pijplijn.

De Claude API-prijzen op het moment van ons project (met Claude 3.5 Sonnet) waren $3 per miljoen invoertokens en $15 per miljoen uitvoertokens. Met Claude 4 Sonnet zijn de prijzen vergelijkbaar, maar krijg je betere kwaliteit, wat minder herhalingen betekent.

Kwaliteitsborgstelling zonder moedertaalsprekers

Dit is het onderdeel waarover mensen het meest skeptisch zijn, en eerlijk gezegd, dat zouden ze moeten zijn. Dit is ons werkelijke QA-proces:

Geautomatiseerde checks (vangen ~60% van de problemen)

De controles op formaatbehoud, lengte en woordenlijstnalevingcompliance die ik noemde. Deze zijn deterministisch en vangen de meest gênante fouten -- verbroken HTML, ontbrekende variabelen, vertaalde merknamen.

Terugvertalingsvergelijking (vangen ~25% van de resterende problemen)

We vertaalden een willekeurige 10%-steekproef van elke taal terug naar het Engels met een ander model (GPT-4o) en vergeleken semantische gelijkenis met het origineel. Als de terugvertaling significant afweek, markeerden we het voor beoordeling.

Moedertaalspreker-steekproeven (vangen nuanceproblemen)

Voor de 8 talen waar we toegang hadden tot moedertaalsprekers (Spaans, Frans, Duits, Portugees, Japans, Koreaans, Mandarijn, Nederlands), beoordeelden we er elk 15-20 pagina's. Hun feedback was verlicht:

  • Algemene kwaliteit: 8-9/10 voor informatieve inhoud
  • Marketingkoppen: 6-7/10 (hadden meer creatieve aanpassing nodig)
  • Technische documentatie: 9/10
  • Juridische pagina's: 7/10 (aanvaardbaar maar niet perfect)

Op basis van hun feedback deden we een tweede doorgang over marketingkoppen met meer creatief prompting, wat die tot 8/10 bracht.

Feedbacklus van de gemeenschap

De klant voegde een kleine "Stel een betere vertaling voor" link op elke pagina. In de eerste maand na lancering ontvingen ze ongeveer 140 suggesties in alle talen -- ruwweg 0,04% van alle vertaalde inhoud. De meeste suggesties waren stilistische voorkeursen in plaats van fouten.

Technische implementatie in Next.js

De site gebruikt Next.js App Router met next-intl voor internationalisatie. Hier is de high-level-setup:

// middleware.ts
import createMiddleware from 'next-intl/middleware';

export default createMiddleware({
  locales: ['en', 'es', 'fr', 'de', 'ja', 'ko', 'zh', /* ... 23 more */],
  defaultLocale: 'en',
  localePrefix: 'as-needed'
});

Voor de headless CMS-integratie, wordt vertaalde inhoud opgeslagen als localevariant. Blogberichten in MDX krijgen afzonderlijke bestanden per locale. UI-strings bevinden zich in JSON-berichtbestanden.

De build genereert statische pagina's voor alle locale/pagina-combinaties. Dat is 118 × 31 (inclusief Engels) = 3.658 pagina's. Met ISR (Incremental Static Regeneration) is dit volkomen beheersbaar.

Iets wat het vermelden waard is: we hebben hreflang-tags programmatisch geïmplementeerd voor SEO. Elke pagina linkt naar al zijn taalvarianten. Dit is cruciaal voor Google om je meertalige sitestructuur te begrijpen.

// app/[locale]/layout.tsx
export function generateMetadata({ params: { locale } }) {
  const alternates = {
    languages: Object.fromEntries(
      locales.map(l => [l, `/${l}${pathname}`])
    )
  };
  return { alternates };
}

Wat AI-vertaling fout doet

Ik zou oneerlijk zijn als ik zei dat AI-vertaling perfect is. Hier is waar het consistent moeite mee heeft:

Marketingwordplay en woordspelingen. Als je kop slim is in het Engels, zal de AI het letterlijk vertalen (het slimheid verliezen) of proberen een doeltaal-woordspeling te maken die niet helemaal aanslaat. We hebben ongeveer 15% van marketingkoppen handmatig herschreven met creatieve richting.

Culturele aanpassing. Vertaling en lokalisatie zijn niet hetzelfde. De AI weet niet dat je Amerikaanse casestudy over een "401(k)-provider" niets betekent in Japan. Het zal je dollartekens niet voor lokale valuta in voorbeelden ruilen. Het zal niet weten dat rood geluk betekent in China maar gevaar in het Westen. Dit vereist menselijk denken.

Juridische precisie. Voor servicevoorwaarden en privacybeleid brengt AI-vertaling je 90% erover. Maar juridische taal moet nauwkeurig zijn, en in sommige rechtsgebieden heb je juridisch gecertificeerde vertalingen nodig. We markeerden juridische pagina's voor professionele beoordeling in de 12 markten waar de klant werkelijk zaken deed (in tegenstelling tot de andere 18, wat verkennend was).

Honorifieksystemen. Japans, Koreaans en Thais hebben complexe systemen van formaliteit. De AI mengde soms formele en informele registers op dezelfde pagina. Onze woordenlijst en stijlgids hielpen, maar steekproeven vingen enkele inconsistenties.

Genderovereenkomst in gendergespecificeerde talen. Frans, Spaans, Duits, Arabisch -- wanneer de bron-Engels genderneutraal is, moet de AI keuzes maken. Soms is het inconsistent. Onze geautomatiseerde checks vingen de meeste ervan door gendermarkeringen tussen gerelateerde vertalingseenheden te vergelijken.

Wanneer je nog steeds voor menselijke vertaling moet betalen

AI-vertaling op $22 per taal is de juiste keuze wanneer:

  • Je testen nieuwe markten en hebt snelheid boven perfectie nodig
  • Je inhoud is vooral informatief of technisch
  • Je 10+ doeltalen moet vertalen (de per-taal-besparingen samenstellen)
  • Je frequent moet vertalen (blogberichten, changelogs, docs)

Betaal voor menselijke vertaling wanneer:

  • Juridische aansprakelijkheid betrokken is (contracten, compliancedocs)
  • Merkidentiteit is kritiek (taglines, campagnes)
  • Je in een gereglementeerde industrie zit (medisch, financieel)
  • Je 1-3 doeltalen hebt en het budget ervoor hebt
  • Culturele aanpassing even belangrijk is als taalkundige nauwkeurigheid

De sweet spot die we voor de meeste klanten hebben gevonden? AI-vertaling voor het gros, menselijke beoordeling voor de kritieke 10-20%. Dat brengt gewoonlijk de totale kosten tot $50-100 per taal in plaats van $22, maar met bijna menselijke kwaliteit in alle inhoudstypen.

Als je overweegt een meertalige website te bouwen, neem contact met ons op -- we hebben deze pijplijn over meerdere projecten geverfd en kunnen het aanpassen aan je stack, of dat nu Next.js, Astro of een ander framework is. Bekijk onze prijspagina voor hoe we internationaliseringsprojecten scoperen.

Veelgestelde vragen

Hoe verhoudt zich AI-vertaalkwaliteit tot menselijke vertaling in 2025?

Voor informatieve en technische inhoud is de kloof dramatisch gekrompen. In verblinde tests beoordelen moedertaalsprekers Claude- en GPT-4o-vertalingen op 85-92% van menselijke vertalingskwaliteit voor de meeste Europese en Oost-Aziatische talen. De kloof is groter voor creatieve marketingcopy (70-80%) en juridische tekst (75-85%). Voor minder gebruikelijke talen zoals Lets of Estisch is AI-kwaliteit eigenlijk vergelijkbaar met wat je zou krijgen van budgetmenselijke vertalingsbedrijven, die toch vaak machinevertaling gebruiken met lichte bewerking.

Wat is de goedkoopste manier om een website in 2025 te vertalen?

De goedkoopste benadering is directe API-toegang tot modellen zoals Claude of GPT-4o, wat ongeveer $0,0002-0,0005 per woord kost. Services zoals Weglot ($15-50/maand) of Lokalise zijn duurder per woord, maar behandelen de infrastructuur voor je. Google Translate API is goedkoper per woord (~$20 per miljoen tekens), maar de kwaliteit is merkbaar lager dan frontier-LLM's. Onze pijpijnbenadering met Claude kostte ons ongeveer $0,0003 per vertaald woord inclusief QA-doorgang.

Werkt AI-vertaling voor talen die van links naar rechts gaan, zoals Arabisch en Hebreeuws?

Ja, maar je moet de technische implementatie voorzichtig afhandelen. De vertalingskwaliteit voor Arabisch en Hebreeuws van Claude is goed -- onze Arabische steekproef scoorde 8/10. Het moeilijkere deel is de RTL-lay-outimplementatie in je frontend. CSS logische eigenschappen (margin-inline-start in plaats van margin-left) en juiste dir="rtl"-attributen zijn essentieel. Plan voor UI-elementen die gespiegeld moeten worden.

Hoe handelen jullie SEO af voor een website vertaald in 30 talen?

Drie dingen zijn het belangrijkst: juiste hreflang-tags op elke pagina, locale-specifieke URL's (submappen zoals /fr/ of /de/ werken goed) en vertaalde metadata (titels, beschrijvingen, Open Graph-tags). We genereren al dit programmatisch. Vergeet niet locale-specifieke sitemaps in te dienen bij Google Search Console. Drie maanden na lancering van de site in 30 talen zag de klant organisch verkeer van niet-Engelse zoekopdrachten met 340% stijgen.

Kan AI website-inhoud vertalen die technische jargon bevat?

Dit is eigenlijk waar AI-vertaling blinkt. Technische jargon is meestal consistent en goed gedefinieerd, wat tot sterke punten van het model speelt. De sleutel is het bouwen van een woordenlijst van je specifieke termen met goedgekeurde vertalingen. Zonder woordenlijst zou het model "deployment pipeline" misschien op drie verschillende manieren vertalen in je site. Met een, is het rotsvast consistent.

Hoe lang duurt het om een hele website met AI te vertalen?

Onze pijplijn vertaalde alle 118 pagina's in alle 30 talen in ongeveer 6 uur computertijd, met parallelle API-verzoeken met ratelimiting. De engineeringtijd om de pijplijn te bouwen was ongeveer 40 uur voor het eerste project. Volgende projecten met dezelfde pijplijn vergen 8-15 uur engineeringtijd voor setup en aanpassing, plus de computertijd.

Wat gebeurt er wanneer je inhoud op een vertaalde site moet bijwerken?

Dit is waar de benadering van gesegmenteerde vertalingseenheden massief terugverdient. Wanneer een pagina verandert, diff'en we de vertalingseenheden tegen de vorige versie. Alleen gewijzigde of nieuwe eenheden worden opnieuw vertaald. Het bijwerken van een blogbericht in alle 30 talen kost centjes en gebeurt automatisch in CI/CD. We tracken vertalingseenheid-hashes om precies te weten wat oud is.

Is $22 per taal realistisch voor elke website, of alleen bepaalde typen?

Het $22-getal is specifiek voor onze projectinhoudsvolume (~73K woorden) en inhoudstype (B2B SaaS marketing en docs). Je waarden kunnen verschillen. Een inhoudsrijke site met 500K woorden zou $100-150 per taal kunnen kosten. Een eenvoudige 10-pagina marketingsite zou $3-5 per taal kunnen kosten. De kosten schalen lineair met woordaantal en enigszins met complexiteit. De vaste kosten zijn de engineeringtijd om de pijplijn te bouwen of configureren.