Skip to content

ADR-006 — Internationalization Is a Platform-Wide Invariant

Status: ACCEPTED / FROZEN — Foundation v1.0

Context

The platform targets international tourism, hospitality, leisure and service businesses. Locale affects public content, product/service descriptions, customer communications, SEO, marketing, channel feeds, Tenant Admin and site delivery. Currency, timezone and market are related but independent concepts.

Treating translation as a Site Engine add-on would allow single-language assumptions to leak into Commerce, CRM, Marketing, Finance, administration and integration contracts and make later localization expensive or inconsistent.

Decision

Internationalization is a platform-wide architectural invariant and a dedicated cross-cutting concern/engine.

Every tenant uses locale-aware contracts even when only one locale is active. Domain engines own canonical entities and declare their translatable surfaces. The Internationalization Engine owns locale configuration/resolution, translation lifecycle primitives, formatting contracts and translation operations.

Language/locale, currency, timezone and market remain independent dimensions.

Standard schema design must not use language-suffixed fields such as title_en/title_es as the platform pattern.

Plans may limit active locale counts or advanced translation workflows, but may not disable the locale-aware architecture itself.

The Tenant Admin application is localized/i18n-aware. The Platform Admin application is i18n-ready even if initially operated only in English.

Consequences

  • APIs must document locale request/fallback semantics.
  • Site Engine must support localized routes, SEO and page content.
  • Commerce/CRM/Marketing/Channel/Finance/Integration engines must declare internationalization contracts.
  • Administrative application strings are handled through localization infrastructure rather than hard-coded single-language assumptions.
  • Location/resource timezone is retained where local wall-clock rules matter.
  • Custom/headless sites use the same locale contracts as Managed Sites.