From 6a6c4f56a4b888a7dc7df6d31591c9881d1b3264 Mon Sep 17 00:00:00 2001 From: mjnong Date: Tue, 8 Sep 2026 16:17:40 +0200 Subject: [PATCH] chore(adr): accept the certification i18n key contract decision Ratified by Marcus on 2026-09-08. Status field only; no source changes, no version bump. --- ...one-certification-i18n-key-contract-for-every-dashboard.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.reposkein/decisions/2026-09-08-one-certification-i18n-key-contract-for-every-dashboard.json b/.reposkein/decisions/2026-09-08-one-certification-i18n-key-contract-for-every-dashboard.json index 5377acb..662c0a9 100644 --- a/.reposkein/decisions/2026-09-08-one-certification-i18n-key-contract-for-every-dashboard.json +++ b/.reposkein/decisions/2026-09-08-one-certification-i18n-key-contract-for-every-dashboard.json @@ -9,7 +9,7 @@ "decided_by": "human", "decision": "`src/certifications.ts` is the single owner of the certification id vocabulary and of the i18n key shape both dashboards bind to. The canonical ids are the frozen tuple `CERTIFICATION_TYPES` (`organic`, `fairtrade`, `sustainable`). `certificationLabelKey(id)` returns `{ key: \"certification.\", fallback }` where a canonical id is matched after trim and lower-case and always yields the canonical segment plus the shared English fallback, and an unknown id yields `certification.` with `.` and `:` replaced by `-` (i18next key and namespace separators) and the trimmed raw id echoed as the fallback so a new certification renders readably before its copy exists. The key carries no namespace: each consumer resolves it in its own default namespace (`offers` for producer, `opportunities` for importer) and owns the `certification.*` block in its English locale file. The guard is `isCertification(value: unknown)` and the boundary normaliser is `normalizeAndCheckCertification`, matching the sibling vocabularies (`isCurrency`, `isPackaging`, `isClosure`, `normalizeAndCheckPackaging`).", "paths": [], - "status": "proposed", + "status": "accepted", "supersedes": [], "title": "One certification i18n key contract for every dashboard", "trigger": {