// Package i18n is the controller's message bundle: one flat key → text map per language, embedded in // the binary, Hungarian first and authoritative. // // Design: felhom.eu/documentation/architecture/10-localisation.md. The three rules that matter here: // // 1. HUNGARIAN IS THE SOURCE. hu.json holds every key. A key missing from hu is a build error (the // template set refuses to load, TestBundleKeysUsedExistInHungarian fails) — never a runtime blank. // 2. FALLBACK. A key missing from another language shows the Hungarian text, and is COUNTED // (MissingKeys). A missing line never shows a key or an empty box. // 3. TEMPLATES ARE EXPANDED, NOT CALLED. A `{{T "key"}}` marker in a dashboard template is replaced by // the bundle text BEFORE html/template parses the file (Expand). The Hungarian template set is // therefore parsed from exactly the bytes the template carried before it was converted, in the same // escaping contexts — which is what makes byte-identical Hungarian output achievable at all. // A runtime T func would route every string through the contextual escaper (`+`, `'`, `"` change // bytes) and would force per-context handling inside