Umbraco meertalig opzetten zonder chaos: het speelboek
Meertalig kan elke CMS. Het verschil zit in vier strategische besluiten die je vooraan neemt: site-structuur, fallback, culture-codes en vertaalworkflow. Hier is hoe je ze maakt.
Het korte antwoord
Umbraco kan meertalig. Vrijwel elke andere CMS-leverancier zegt dat ook. Het verschil zit niet in of het kan, maar in hoe je het opzet voordat je vijf talen diep zit en die ene Belgische editor begint te klagen dat haar Vlaamse versie ineens op de Engelse fallback staat.
De meeste meertalig-projecten gaan niet kapot op techniek. Ze gaan kapot op besluiten die in week één in een tien-minuten-meeting genomen werden en zes maanden later voor twintig uur opruimwerk zorgen. Domeinstructuur, fallback-gedrag, hoe je vertalers aanlevert, wat er gebeurt als een redacteur per ongeluk een variant leeghaalt — allemaal vragen die je liever vooraan beantwoordt dan op kantoor om 17:43.
In dit speelboek loop ik de patronen langs die we als Umbraco-developers in de praktijk telkens weer effectief zien werken. Geen Umbraco-handleiding — die staat op de docs-site — maar wel de keuzes die het verschil maken tussen "klaar in drie weken" en "we hebben nog open ticket-22".
De drie meertalig-structuren — kies bewust
Voordat je ook maar één taal toevoegt aan je Umbraco-installatie wil je weten welke site-structuur je gaat hanteren. Er zijn drie varianten en ze hebben elk hun eigen gevolgen voor URL's, hosting, SEO en de hoeveelheid werk per vertaalronde.
1. Eén site, content per culture (variants). Eén home-node, één tree, en elke pagina krijgt per geactiveerde taal een eigen variant. URL's worden /nl/over-ons/ en /en/about-us/. Onderhoud is laag: één boomstructuur betekent één plek waar je nieuwe pagina's, blocks en redirects beheert. Voor de meeste corporate sites is dit de standaard die je wilt.
2. Aparte site per culture (root-per-taal). Voor elke taal een eigen root-node onder dezelfde Umbraco-installatie. Goed wanneer talen heel verschillende content hebben — een Duitse en Engelse markt met andere productlines bijvoorbeeld — of wanneer je per markt aparte redactieteams hebt die elkaars werk niet hoeven zien.
3. Eén site, per culture een eigen hostname. De variant-aanpak, maar gecombineerd met domeinen zoals codebrouwerij.nl en codebrouwerij.be. Hosting wordt iets ingewikkelder, maar je hebt internationale SEO-voordelen via ccTLD's. Niet altijd nodig, wel vaak gevraagd.
Voorkom de fout om dit besluit "later wel" te nemen. Een mid-project switch van variants naar root-per-taal kost typisch een week werk en levert ten minste twee dagen 301-redirect-werk op. Beslis vooraan.
Talen opzetten — zonder later spijt
In de Umbraco-backoffice voeg je talen toe onder Settings → Languages. Klinkt simpel, want het is simpel. Wat onderschat wordt zijn de drie checkboxes onder elke taal: mandatory, default, en fallback language.
Mandatory dwingt af dat een pagina niet gepubliceerd kan worden zonder een variant in die taal. Voor je hoofdtalen wil je dit aan. Voor side-talen meestal niet, want één Hongaars-vertaler op vakantie betekent anders dat de hele site stilstaat.
Default bepaalt welke taal getoond wordt als bezoekers op een URL zonder culture-prefix landen. Maar één keer kiezen.
Fallback language is het stuk dat zo vaak verkeerd gaat. Stel: een Nederlandse pagina is nog niet vertaald naar Duits. Wat moet er gebeuren? Een 404? De Nederlandse content tonen met een waarschuwing? De Engelse versie als noodverband? Umbraco laat je per taal een fallback kiezen, en daar wil je een team-besluit over voordat je live gaat. Geen besluit = de redacteur ziet over twee maanden in haar mailbox "waarom staat er Duits op de Nederlandse pagina".
Onder de motorkap zet Umbraco talen om in cultures (zoals nl-NL, en-GB, de-DE). Die culture-code zit overal: in URL's, in API-responses via de Delivery API, in cookie-flow en in je IPublishedContent-queries. Goed nadenken over of je nl-NL of nl-BE kiest scheelt later veel renaming-werk.
De volgende stap is hostnames toewijzen aan elke taal-root. Onder een document-node klik je op "Culture and Hostnames" en koppel je per culture een domein. Vergeet hier niet de hostname zonder culture-prefix te configureren: zonder die mapping krijgen bezoekers op de root-URL een 404 in plaats van de default-taal.
Voor SEO koppel je per variant hreflang-tags. Umbraco heeft daar geen knop voor — het komt in je layout-template, gevoed door node.Cultures. Reken op een halve dag de eerste keer, daarna is het kopiëren.
Eenmaal gekozen, blijven culture-codes plakken. Een latere switch van nl-BE naar nl-NL betekent: alle content opnieuw exposen, alle variant-keys bijhouden in een migratie-script en hopen dat geen package elders die code hardcoded heeft staan. Beslis dit besluit mét je marketing-team, niet alleen met development.
De vertaalworkflow — waar de meeste projecten scheef gaan
Techniek is voorspelbaar. Vertaalworkflows zijn dat niet. De keuze die je nu maakt bepaalt of vertaalrondes drie uur of drie weken duren.
De vier modellen die we in de praktijk zien:
Inline in de backoffice. Redacteuren openen de pagina, schakelen tussen variants in de variant-picker en typen de vertaling direct in. Goed voor kleine sites met talen die door eigen redactie worden onderhouden. Slecht zodra je vertalingen extern uitbesteedt.
Export/import via XLIFF. Daar zijn packages voor (Vertejas, of de aloude Translation Provider). Je exporteert een pagina als XLIFF, stuurt 'm naar je vertaalbureau en importeert het resultaat terug. Werkt, maar elke ronde voelt als een kleine deploy.
Translation memory via een TMS. Tools zoals Smartling, Phrase of memoQ koppelen via API aan Umbraco. Je redacteur klikt "vraag vertaling" en de TMS doet de rest, inclusief vertaalgeheugen, terminologie-checks en review-loops. Hogere setup, veel lagere doorlooptijd per ronde.
AI-eerste vertaling met menselijke review. Een groeiende categorie. DeepL Pro of een Claude-flow voor de eerste pass, redacteur reviewt en publiceert. We koppelen dit type flow steeds vaker, met name voor side-talen waarin je de drempel om überhaupt te vertalen wilt verlagen.
De praktische keuze: hoofdtalen via TMS of inline, side-talen via AI met review. Dat is bijna nooit een verkeerd antwoord.
Hierna komt de fasering. Drie fases om van leeg naar een werkende meertalige site te gaan:
-
Talen kiezen, culture-codes vastleggen, fallback-strategie bepalen, hostname-mapping uitzoeken. Geen Umbraco-werk, wel het meeste denkwerk. Hier wordt 80 procent van de latere problemen voorkomen — vooral als marketing, redactie en development hier samen aan tafel zitten.
-
Talen activeren in Umbraco, hostnames koppelen, hreflang in templates, fallback-rendering implementeren, URL-prefixes testen, Delivery API per culture verifiëren. Tegelijk: vertaalworkflow opzetten en met één pilot-pagina volledig door de keten heen halen.
-
Bestaande content vertalen, redacteuren trainen op het variant-model, vertaalbureau onboarden of TMS koppelen. Hier zit de meeste doorlooptijd, en daar is weinig aan te versnellen — vertalingen kosten gewoon tijd. Tip: begin met de drie meest bezochte pagina's, daarna pas de rest.
Valkuilen die we regelmatig terugzien
Fallback per pagina niet vastleggen. Een fallback op taal-niveau is iets anders dan een fallback per node. Soms wil je dat pagina A wel terugvalt en pagina B juist een 404 geeft als de vertaling ontbreekt. Plan dit in je document-types met een truefalse-property of een expliciete "fallback toegestaan"-flag.
Media die per taal verschillen, niet variant-aware modelleren. Een hero-afbeelding met Nederlandse tekst erin werkt slecht in de Duitse versie. Zet relevante media-properties op "Vary by culture" en plan vooraf welke beelden taal-specifiek zijn.
SEO-meta-properties niet als variant markeren. Meta-title, meta-description, canonical — allemaal variant-properties. Vaak vergeten in oudere installaties, met als gevolg dat de Engelse pagina nog steeds een Nederlandse meta-title heeft.
Test-content blijven hangen. Vertaalbureaus leveren regelmatig draft-content terug die door slordigheid gepubliceerd wordt. Zet workflow-stappen op: vertaling → review → publish, niet vertaling → live.
URL-aliasing onderschatten. Talen hebben taal-specifieke voorkeuren voor URL-structuren. Duits houdt van langere woorden, Engels van kortere. Forceer geen 1-op-1 vertaalde URL's — dat geeft slechte SEO én onhandige slugs.
Conclusie
Umbraco meertalig is geen feature die je aanzet — het is een ontwerpkeuze die door je hele site loopt. Drie of vier strategische besluiten in week één bepalen of het project rolt of stokt: site-structuur, fallback-strategie, culture-codes en vertaalworkflow.
Als je twijfelt over een van die vier, is het tijd om iemand met ervaring mee te laten kijken. Wij doen meertalige Umbraco-implementaties al jaren, en de helft van ons werk is bestaande sites die ergens een keer een verkeerde keuze hebben gemaakt en daar nu mee zitten. Plan je nieuwe meertalige site in één keer goed, of neem contact op als je een bestaand meertalig-fundament wilt laten reviewen — een uur intake levert vaak een lijst quick fixes op die je redacteuren direct ademruimte geeft.