CRITICAL FIX: Translation keys showing instead of translated text
The Bug:
--------
Dashboard components were using useTranslation('reasoning') but the
'reasoning' namespace was NOT loaded into i18n configuration.
Result: i18n couldn't find translations and returned keys literally:
- "jtbd.health_status.last_updated" instead of "Last updated" / "Última actualización"
- "jtbd.action_queue.all_caught_up" instead of "All caught up!" / "¡Todo al día!"
- "jtbd.production_timeline.no_production" instead of translations
- etc.
Why It Happened:
----------------
locales/index.ts was missing:
1. Import statements for reasoning.json (all 3 languages)
2. 'reasoning' property in resources object (es/en/eu)
3. 'reasoning' in namespaces array
The Fix:
--------
Added to frontend/src/locales/index.ts:
1. Imports:
import reasoningEs from './es/reasoning.json';
import reasoningEn from './en/reasoning.json';
import reasoningEu from './eu/reasoning.json';
2. Resources object:
es: { ..., reasoning: reasoningEs }
en: { ..., reasoning: reasoningEn }
eu: { ..., reasoning: reasoningEu }
3. Namespaces array:
export const namespaces = [..., 'reasoning'] as const;
4. Exports:
export { ..., reasoningEs };
Now:
----
✅ t('jtbd.health_status.last_updated') returns "Last updated" (en) or "Última actualización" (es)
✅ All dashboard translations work in all 3 languages (es, en, eu)
✅ Language switching works properly