Added
- i18n: full internationalisation system (
public/i18n.js) with German (de) and English (en) support; language auto-detected fromnavigator.language, overridable via Settings - i18n: all user-facing strings moved to locale files (
public/locales/de.json,public/locales/en.json); 489 translation keys covering all modules - i18n: locale switch without page reload — all pages, components and navigation re-render via
locale-changedcustom event - i18n:
oikos-locale-pickerWeb Component in Settings — three options: System (follows browser language), Deutsch, English - i18n: dates and times formatted with
Intl.DateTimeFormatusing the active locale;formatDate()andformatTime()exported fromi18n.js - i18n: fallback chain (active locale → German → key) ensures no untranslated keys are shown even if a future locale file is incomplete
- i18n: adding a new language requires only one JSON file (
public/locales/xx.json) and one line inSUPPORTED_LOCALES