Skip to content
Lever elke weekUI and contentinternationalization

Spreek hun taal

Je site onthoudt de taal van elke bezoeker en toont die overal, vanaf dag één.

Je site onthoudt de taal van elke bezoeker en toont die overal, vanaf dag één.

  • 2 complete languages out of the box
  • 0 translation downloads at first load
  • 1 checked cookie that remembers the choice

Hoe het werkt

Het mechanisme van begin tot eind, zoals het in de repository is geïmplementeerd.

  1. 1

    The URL decides first

    A /nl prefix means Dutch. Without one, the app falls back to the account preference, then a validated cookie, then the default.

  2. 2

    Pages render from built-in catalogs

    All copy reads from typed catalogs compiled into the app, so the server and the first client render already speak the right language.

  3. 3

    Switching keeps your place

    The language switcher rewrites the current URL, keeping the path, query, and hash, and updates the page language immediately.

  4. 4

    The choice sticks

    The pick is saved in a checked cookie and, for signed-in users, on the account, so the next visit opens in the same language.

Interactief voorbeeld

Bekijk het in werking

Deze rondleiding toont het geïmplementeerde backendcontract zonder account, credentials of providercalls.

Interactief voorbeeld

Explore the implemented decisions

Kies een voorbeeldstatus
Start building

Alleen deterministische voorbeelddata. De interactie gebruikt geen account-, provider- of netwerkverbinding.

Het probleem dat dit oplost

Zonder een gedeelde basis bouwt elk team deze randgevallen opnieuw — en anders.

The raw key on your live site

You add a label in English and forget the Dutch file. Nothing complains. A Dutch customer finds nav.settings.title on your settings page. Here, that gap fails the build, not the demo.

The shared link that switches languages

A Dutch reader shares your pricing page. Their colleague opens it and lands on the English version, because the language only lived in a cookie. Here, the language is in the URL, so it travels with the link.

The flash of the wrong language

Provider-based i18n loads translations after the page. Every first visit flickers from keys or English to the real text. Here, translations are compiled in, so there's nothing to wait for.

Kernpunten

Waarom dit belangrijk is

The build catches missing lines

Both languages live side by side in one file. Add a phrase in one and forget the other, and the build fails instead of shipping a gap.

The language travels with the link

Dutch pages live under /nl, so a shared link opens in the same language the sender saw.

No loading flicker

Translations are compiled into the app, not fetched at runtime, so the first paint is already in the right language.

Technische garanties

Wat dit wel en niet belooft

Veiligheidsgrens

Achter de schermen houden autorisatie, tenantgrenzen en foutafhandeling één duidelijke eigenaar. Zo blijft de snelle ervaring voor gebruikers gekoppeld aan veilig herstel als het misgaat.

Implementatiebewijs

De grens hierboven is geen claim maar code. Deze bestanden dragen het contract:

  • src/modules/i18n/messages.ts
  • src/modules/i18n/locale-navigation.ts
  • src/modules/i18n/MODULE.md
Vragen

Veelgestelde vragen

Bouw verder op Spreek hun taal

De documentatie beschrijft dezelfde contracten die deze pagina demonstreert.