35 lines
987 B
Markdown
35 lines
987 B
Markdown
# 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.
|