diff --git a/src/context/i18n-context.tsx b/src/context/i18n-context.tsx index 59a54ff..5135b47 100644 --- a/src/context/i18n-context.tsx +++ b/src/context/i18n-context.tsx @@ -12,7 +12,7 @@ interface I18nContextType { const I18nContext = createContext(undefined); -const translations: { [key: string]: any } = { +const translations: { [key: string]: { [key: string]: string } } = { en, de, }; @@ -21,21 +21,13 @@ export function I18nProvider({ children }: { children: ReactNode }) { const [language, setLanguage] = useState('en'); const t = (key: string, params?: { [key: string]: string | number }) => { - const translation = key.split('.').reduce((acc, currentKey) => { - if (acc && typeof acc === 'object' && currentKey in acc) { - return acc[currentKey]; - } - return undefined; - }, translations[language]); - - let result = (typeof translation === 'string' ? translation : key); - + let translation = translations[language]?.[key] || key; if (params) { Object.keys(params).forEach(paramKey => { - result = result.replace(`{${paramKey}}`, String(params[paramKey])); + translation = translation.replace(`{${paramKey}}`, String(params[paramKey])); }); } - return result; + return translation; }; return (