Areas — custom delivery (fetch + DI)
Locale selects the delivery area (eu) via partitionForLocale. Artifacts live under Next public/i18n/translations and load through an injected fetchImpl (disk on RSC, HTTP on the client).
Server component
Welcome Server!
You have 2 invoices
createI18n({ fetchImpl: areasFetchArtifact }).load({ namespaces: ["default", "billing"], locale: "en" }) → area "eu"Client component
Welcome Client!
You have 2 invoices
I18nRoot fetchImpl · locale "en" · area "eu" · GET /i18n/translations/*