Internationalization
next-intl setup, eight shipped locales, RTL, language switcher, and locale-aware pricing display.
Locales
Simulacrum ships en, es, fr, de, pt, zh, ja, ar with Arabic RTL support. Message files are namespaced (common.json, auth.json, and so on).
Language switcher
Add the <LanguageSwitcher> component to the header. It updates the locale cookie and refreshes routed content.
Browser detection
Middleware detects preferred languages and redirects on first visit when no cookie is set.
Currency
Format Stripe prices with Intl.NumberFormat using the active locale. Map currency codes per market where you sell.
Keep translation keys stable; use descriptions for translators in your TMS export if you use one.