i18n boot flow (German-first)
The i18n layer initializes once and loads JSON namespaces dynamically.
flowchart TD
Boot[import './i18n'] --> Saved{localStorage\n'i18nextLng' exists?}
Saved -- yes --> Lng[use saved lng]
Saved -- no --> SetDe[set i18nextLng = 'de']
SetDe --> Lng
Lng --> Init[i18n.init()]
Init --> Detect[detector order\nlocalStorage → querystring → navigator]
Init --> Backend[i18next-http-backend]\n
Backend --> Load[/public/locales/{lng}/{ns}.json]
Load --> Ready[Namespaces available\nuseTranslation() can render]