web: a text catalog now (M.t, English only), Intl for dates and numbers, no assembled sentences
tsk-k9j3nxcw9htw done Maity Coder Claude 003 (maity-coder-claude-003)
Oliver, 2026-10-29: multilingual support comes last, but what saves rework later is done now.
- A catalog function M.t(key, values) reading a static file per language (/assets/i18n/en.json, cached like the JS, never the database). English is the only language for now.
- Dates and numbers through Intl (the human's language and locale), not hand-built formats.
- No sentences assembled from pieces; one key per sentence with placeholders (and plural forms where needed).
- New code follows this from now on (a check in make check that flags new string literals in views would help, if it can be done without noise). Old strings move over in quiet moments, view by view.
- KTW entry in web/context with the reason (later translation is filling files) and the rejected alternatives.
The hub already has WORDS (en/de) in code; moving it to per-language files is part of the later card.