feat: translate remaining Spanish text in AgenticReadinessTab

- Translate "interacciones" and "colas analizadas" in summary footer
- Translate "Click en un skill para ver el detalle" in table footer
- Update red flag actions to use translation keys
- Add translation keys for:
  - Skills with Red Flags section title
  - Queues requiring intervention description
  - View Roadmap tab links
- Update getActionForFlag function to use i18n keys
- All AgenticReadinessTab content now fully bilingual (en/es)

https://claude.ai/code/session_01GNbnkFoESkRcnPr3bLCYDg
This commit is contained in:
Claude
2026-02-08 14:25:19 +00:00
parent 3a6652fdce
commit 8599ffba73
3 changed files with 29 additions and 21 deletions

View File

@@ -1558,10 +1558,10 @@ function AgenticReadinessHeader({
{/* Footer con totales */} {/* Footer con totales */}
<div className="mt-3 pt-3 flex items-center justify-between text-xs" style={{ borderTop: `1px solid ${COLORS.light}`, color: COLORS.medium }}> <div className="mt-3 pt-3 flex items-center justify-between text-xs" style={{ borderTop: `1px solid ${COLORS.light}`, color: COLORS.medium }}>
<span> <span>
Total: <strong style={{ color: COLORS.dark }}>{formatVolume(totalVolume)}</strong> interacciones Total: <strong style={{ color: COLORS.dark }}>{formatVolume(totalVolume)}</strong> {t('agenticReadiness.summary.interactions')}
</span> </span>
<span> <span>
<strong style={{ color: COLORS.dark }}>{totalQueues}</strong> colas analizadas <strong style={{ color: COLORS.dark }}>{totalQueues}</strong> {t('agenticReadiness.summary.queuesAnalyzed')}
</span> </span>
</div> </div>
</div> </div>
@@ -2565,7 +2565,7 @@ function TierQueueSection({
{/* Footer */} {/* Footer */}
<div className="px-5 py-3 bg-gray-50 border-t border-gray-200 text-xs text-gray-500"> <div className="px-5 py-3 bg-gray-50 border-t border-gray-200 text-xs text-gray-500">
Click en un skill para ver el detalle de colas individuales {t('agenticReadiness.table.clickToExpand')}
</div> </div>
</div> </div>
); );
@@ -2618,9 +2618,9 @@ function HumanOnlyByReasonSection({ drilldownData, redFlagConfigs, t }: { drilld
const flagConfig = redFlagConfigs.find(c => c.id === reasonId); const flagConfig = redFlagConfigs.find(c => c.id === reasonId);
return { return {
reasonId, reasonId,
reason: flagConfig?.label || 'Sin Red Flags específicos', reason: flagConfig?.label || t('agenticReadiness.redFlagsActions.noSpecificFlags'),
description: flagConfig?.description || 'Colas que no cumplen criterios de automatización', description: flagConfig?.description || t('agenticReadiness.redFlagsActions.noFlagsDesc'),
action: flagConfig ? getActionForFlag(flagConfig.id) : 'Revisar manualmente', action: flagConfig ? getActionForFlag(flagConfig.id) : t('agenticReadiness.redFlagsActions.reviewManually'),
queues, queues,
totalVolume: queues.reduce((s, q) => s + q.volume, 0), totalVolume: queues.reduce((s, q) => s + q.volume, 0),
queueCount: queues.length queueCount: queues.length
@@ -2643,11 +2643,11 @@ function HumanOnlyByReasonSection({ drilldownData, redFlagConfigs, t }: { drilld
function getActionForFlag(flagId: string): string { function getActionForFlag(flagId: string): string {
switch (flagId) { switch (flagId) {
case 'cv_high': return 'Estandarizar procesos y scripts'; case 'cv_high': return t('agenticReadiness.redFlagsActions.standardizeProcesses');
case 'transfer_high': return 'Simplificar flujo, capacitar agentes'; case 'transfer_high': return t('agenticReadiness.redFlagsActions.simplifyFlow');
case 'volume_low': return 'Consolidar con colas similares'; case 'volume_low': return t('agenticReadiness.redFlagsActions.consolidate');
case 'valid_low': return 'Mejorar captura de datos'; case 'valid_low': return t('agenticReadiness.redFlagsActions.improveDataCapture');
default: return 'Revisar manualmente'; default: return t('agenticReadiness.redFlagsActions.reviewManually');
} }
} }
@@ -3020,16 +3020,16 @@ function HumanOnlyRedFlagsSection({ drilldownData, redFlagConfigs }: { drilldown
let action = ''; let action = '';
switch (config.id) { switch (config.id) {
case 'cv_high': case 'cv_high':
action = 'Estandarizar procesos'; action = t('agenticReadiness.redFlagsActions.standardizeProcesses');
break; break;
case 'transfer_high': case 'transfer_high':
action = 'Simplificar flujo / capacitar'; action = t('agenticReadiness.redFlagsActions.simplifyFlow');
break; break;
case 'volume_low': case 'volume_low':
action = 'Consolidar con similar'; action = t('agenticReadiness.redFlagsActions.consolidate');
break; break;
case 'valid_low': case 'valid_low':
action = 'Mejorar captura datos'; action = t('agenticReadiness.redFlagsActions.improveDataCapture');
break; break;
} }
@@ -3057,10 +3057,10 @@ function HumanOnlyRedFlagsSection({ drilldownData, redFlagConfigs }: { drilldown
<div> <div>
<h3 className="font-semibold text-gray-900 flex items-center gap-2"> <h3 className="font-semibold text-gray-900 flex items-center gap-2">
<AlertOctagon className="w-5 h-5 text-amber-500" /> <AlertOctagon className="w-5 h-5 text-amber-500" />
Skills con Red Flags {t('agenticReadiness.redFlagsActions.skillsWithRedFlags')}
</h3> </h3>
<p className="text-sm text-gray-500 mt-1"> <p className="text-sm text-gray-500 mt-1">
Colas que requieren intervención antes de automatizar {t('agenticReadiness.redFlagsActions.queuesRequireIntervention')}
</p> </p>
</div> </div>
<Badge <Badge
@@ -3654,7 +3654,7 @@ function RoadmapConnectionSection({ drilldownData }: { drilldownData: DrilldownD
<div className="flex items-center gap-2 pt-2"> <div className="flex items-center gap-2 pt-2">
<span className="text-lg">👉</span> <span className="text-lg">👉</span>
<span className="text-sm font-medium" style={{ color: COLORS.primary }}> <span className="text-sm font-medium" style={{ color: COLORS.primary }}>
Ver pestaña Roadmap para plan detallado {t('agenticReadiness.redFlagsActions.viewRoadmapTab')}
</span> </span>
</div> </div>
</div> </div>
@@ -3755,7 +3755,7 @@ export function AgenticReadinessTab({ data, onTabChange }: AgenticReadinessTabPr
onClick={() => onTabChange('roadmap')} onClick={() => onTabChange('roadmap')}
className="text-sm text-blue-600 hover:text-blue-800 hover:underline" className="text-sm text-blue-600 hover:text-blue-800 hover:underline"
> >
Ver pestaña Roadmap para plan detallado {t('agenticReadiness.redFlagsActions.viewRoadmapLink')}
</button> </button>
</div> </div>
)} )}

View File

@@ -1097,7 +1097,11 @@
"standardizeProcesses": "Standardize processes and scripts", "standardizeProcesses": "Standardize processes and scripts",
"simplifyFlow": "Simplify flow, train agents", "simplifyFlow": "Simplify flow, train agents",
"consolidate": "Consolidate with similar queues", "consolidate": "Consolidate with similar queues",
"improveDataCapture": "Improve data capture" "improveDataCapture": "Improve data capture",
"skillsWithRedFlags": "Skills with Red Flags",
"queuesRequireIntervention": "Queues that require intervention before automating",
"viewRoadmapTab": "View Roadmap tab for detailed plan",
"viewRoadmapLink": "View Roadmap tab for detailed plan →"
}, },
"factorsExtended": { "factorsExtended": {
"volumeMethodology": "Score = normalized log10(Volume). >5000 → 10, <100 → 2", "volumeMethodology": "Score = normalized log10(Volume). >5000 → 10, <100 → 2",

View File

@@ -1128,7 +1128,11 @@
"standardizeProcesses": "Estandarizar procesos y scripts", "standardizeProcesses": "Estandarizar procesos y scripts",
"simplifyFlow": "Simplificar flujo, capacitar agentes", "simplifyFlow": "Simplificar flujo, capacitar agentes",
"consolidate": "Consolidar con colas similares", "consolidate": "Consolidar con colas similares",
"improveDataCapture": "Mejorar captura de datos" "improveDataCapture": "Mejorar captura de datos",
"skillsWithRedFlags": "Skills con Red Flags",
"queuesRequireIntervention": "Colas que requieren intervención antes de automatizar",
"viewRoadmapTab": "Ver pestaña Roadmap para plan detallado",
"viewRoadmapLink": "Ver pestaña Roadmap para plan detallado →"
}, },
"factorsExtended": { "factorsExtended": {
"volumeMethodology": "Score = log10(Volumen) normalizado. >5000 → 10, <100 → 2", "volumeMethodology": "Score = log10(Volumen) normalizado. >5000 → 10, <100 → 2",