Areas — custom delivery (fetch + DI)
Locale selects the delivery area (amer) 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-US" }) → area "amer"Client component
Welcome Client!
You have 2 invoices
I18nRoot fetchImpl · locale "en-US" · area "amer" · GET /i18n/translations/*