# i18n key manifest + drift check Issue: #240 This repo keeps shared lobby keyspaces in two files: - Contract source: `shared/i18n/lobby.json` - Key manifest: `shared/i18n/key-manifest.json` The manifest is intentionally small and explicit. It lists: - Supported locales (`locales`) - Frontend error key set (`frontend_error_keys`) - Backend error code set (`backend_error_codes`) - Backend translation key set (`backend_error_keys`) - Optional contract-only aliases (`allowed_contract_only_backend_codes`) ## Local check Run the read-only drift checker from repo root: ```bash python3 scripts/check_i18n_drift.py ``` The script returns non-zero when it detects drift, including: - key set mismatch between manifest and shared catalog - missing backend→frontend mapping coverage - mapping to unknown frontend keys - mappings for unknown backend codes - missing/empty locale translations (`en`/`da`) No CI gating changes are included in this task; this is a local guardrail.