Vier talen, één CMS: hoe we i18n niet-vervelend maken
Nederlandse klanten die Spaanse prospects willen bereiken, Duitse B2B-bedrijven die de Benelux willen openen: we zien dezelfde vraag in verschillende vormen. Antwoord is meestal "drie of vier talen". Antwoord is zelden "hoe houden we dat niet saai voor de contentredacteur".
Drie principes houden viertalige sites leefbaar. Eerste: één set keys, niet één set bestanden per taal dat uit sync gaat. next-intl’s JSON-bestanden per locale met identieke key-structuur geven een diff-baar validation-target. We valideren automatisch in CI dat alle keys in alle talen bestaan.
Tweede: content in de CMS, niet in code. Voor Frosthaven.co zelf gebruiken we JSON-bestanden omdat het een kleine site is met stabiele copy. Voor klantensites met ~100 pagina’s wordt Storyblok de single source of truth. Niet vanwege de functionaliteit (die kan ook Sanity/Payload) maar vanwege de meertalig-by-design UI die redacteurs direct begrijpen.
Derde: validatie op vertaling-compleetheid. Een Spaanse paragraaf die er niet is maakt een halve pagina stuk. We gebruiken een pre-deploy-check die faalt als een taal onvolledig is en de productie-URL valt terug op de default-locale met een waarschuwing.
SEO: hreflang-tags per locale pair, canonicals per locale, en sitemap.xml met xhtml:link-alternates. Google honors dit pas na enkele weken crawling — plan het voor de launch, niet erna.
Het moeilijkste deel blijft één ding: tone-of-voice per taal. Een letterlijk-vertaalde website voelt algoritmisch. Voor Frosthaven schrijven we de Engelse kopij het meest direct, het Spaans iets warmer, het Duits formeler en het Nederlands scherper. Je hoort het aan de ritmes.