ADR-0020: Internationalization (Content Language, Time Zones, Formatting)¶
- Status: accepted
- Date: 2026-06-18
- Deciders: Nicolas Burri
- Relates to: ADR-0003, ADR-0004, ADR-0007, ADR-0014; GAP-11
Context¶
UI-text translation and per-user language are handled (REQ-UI-002), and catalog entries carry translations (ADR-0004). i18n completeness still needs: unambiguous timestamps across time zones (a regulated-record concern), locale-aware formatting, and a model for multi-language document content across Swiss regions (DE/FR/IT) and possibly the EU.
Decision¶
- Time zones: all timestamps are stored in UTC and displayed in the user's time zone. Signature and audit timestamps are recorded and manifested unambiguously (UTC or with an explicit offset) — satisfying Part 11/Annex 11 "date/time" unambiguity (ADR-0014).
- Locale formatting: dates, times, and numbers are formatted per the user's locale on display; stored values remain canonical/locale-independent.
- Document content language — per-document attribute with linked translations:
- Each document has a content language.
- A translation is a separate, independently controlled document — its own
review/approval/signatures/effective date — linked to its source via a
translation-ofrelationship. One document may be designated the authoritative-language source. - Rationale: a translated controlled document must be reviewed and approved in its own
language; it cannot ride on the source's approval. This keeps every language version a
controlled document in its own right. (The general document-relationship mechanism is
GAP-17;
translation-ofis one relationship type.) - Search indexing is language-aware (per-language text analysis); multilingual retrieval quality is refined with search quality (GAP-18).
Options Considered¶
- Multi-language content within one version (rejected): entangles review/approval and effectivity per language and makes "which content is released" ambiguous.
- Content language out of scope (rejected): leaves no controlled DE/FR/IT versions of the actual SOPs, which the Swiss-region use case needs.
Consequences¶
- The domain model gains a
languageattribute on documents and atranslation-ofrelationship (a self-reference on document); the general relationship model is GAP-17. - Time-zone handling is a crosscutting concern: store UTC, render local, manifest unambiguously.
- Translations multiply the controlled-document set (each is reviewed/approved/effective independently) — accepted; it is the regulated-correct behaviour.
Requirements¶
Introduces STR-024 and the REQ-I18N group (pending requirements baseline v1.2).