Ga naar hoofdinhoud

Internationalisatie

De app gebruikt next-intl voor internationalisatie met twee talen:

TaalCode
Nederlands (standaard)nl
Engelsen

Routering

Elke URL wordt voorafgegaan door de taalcode (localePrefix: "always"), waardoor routes er als volgt uitzien:

  • /nl/vms, Nederlandse VM-lijst
  • /en/vms, Engelse VM-lijst
  • /nl/auth/signin, Nederlandse aanmeldpagina

Taaldetectie respecteert cookies, browserheaders en valt terug op nl.

Vertaalbestanden

Berichten worden opgeslagen in messages/{locale}.json met sleutels georganiseerd per domein:

common — Gedeelde UI-teksten
nav — Navigatielabels
breadcrumbs — Broodkruimellabels
vm.list — VM-lijstpagina
vm.detail — VM-detailpagina
vm.create — VM-aanmaakformulier
vm.actions — VM-acties
vm.share — VM-delen
vm.errors - VM-foutmeldingen
admin.users — Gebruikersbeheer
admin.vms — VM-beheer
admin.edit_user
admin.errors
profile — Gebruikersprofiel
auth — Authenticatiepagina
email — E-mailsjablonen
locale — Taalkiezer

Gebruik

Server-componenten gebruiken getTranslations:

import { getTranslations } from "next-intl/server";

const t = await getTranslations("vm.list");
return <h1>{t("title")}</h1>;

Client-componenten gebruiken useTranslations:

import { useTranslations } from "next-intl";
const t = useTranslations("common");

Navigatie-helpers van src/i18n/navigation.ts wrappen next-intl:

import { Link, useRouter, redirect, usePathname } from "@/i18n/navigation";