diff --git a/public/i18n.js b/public/i18n.js index 5c45e41..49981e0 100644 --- a/public/i18n.js +++ b/public/i18n.js @@ -64,9 +64,14 @@ export async function setLocale(locale) { window.dispatchEvent(new CustomEvent('locale-changed', { detail: { locale } })); } +/** Hilfsfunktion: Dot-Notation in verschachteltem Objekt auflösen */ +function resolve(obj, key) { + return key.split('.').reduce((o, k) => (o != null ? o[k] : undefined), obj); +} + /** Übersetzungsfunktion mit Platzhalter-Unterstützung {{variable}} */ export function t(key, params = {}) { - let str = translations[key] ?? fallbackTranslations[key] ?? key; + let str = resolve(translations, key) ?? resolve(fallbackTranslations, key) ?? key; for (const [k, v] of Object.entries(params)) { str = str.replaceAll(`{{${k}}}`, String(v)); }