import fr from './locales/fr.json'; type Messages = Record; // Monolingue pour l'instant (français). La structure permet d'ajouter des // locales sans toucher aux appelants. const messages: Messages = fr; export type TranslationKey = keyof typeof fr; /** * Traduit une clé. Les paramètres `{nom}` présents dans le message sont * remplacés par `params.nom`. Aucun texte visible en dur ailleurs dans l'app. */ export function t(key: TranslationKey | string, params?: Record): string { const template = messages[key] ?? key; if (!params) return template; return template.replace(/\{(\w+)\}/g, (_, name: string) => name in params ? String(params[name]) : `{${name}}`, ); }