feat(insights): UX gap closure — i18n, network graph, recalc panel, toasts
Some checks failed
CI / Lint, Unit Tests & Build (push) Failing after 1m6s
CI / Deploy production (on server) (push) Has been skipped

Bugs fixes:
- network-graph.tsx: 2 strings hardcoded FR → props i18n (untitledLabel, resetFocusLabel)
- Panneau recalcul: clés i18n réutilisées avec mauvais sens → nouvelles clés recalcSystem.*
- 13 locales: section insightsView.* complète (67 clés × 13 = 871 traductions)

UX features:
- Hint /insights ≠ /graph (semanticGraphLegend + lien vers /graph)
- Toasts succès/échec/zéro-clusters après analyse (analysisSuccess/Failed/NoClusters)
- État vide différencié: emptyNeedMoreNotes si < 10 notes
- Tips contextuels sections Bridge Notes et Suggestions

Sprint:
- 4 epics marqués done (3,4,5,6 — toutes stories terminées)
- sprint-status.yaml last_updated corrigé
This commit is contained in:
Antigravity
2026-06-28 08:06:05 +00:00
parent 96e7902f01
commit b3fb46fc52
23 changed files with 1301 additions and 23 deletions

View File

@@ -2920,5 +2920,88 @@
"copyRefFailed": "Could not copy block reference",
"copyRefNoNote": "Save the note before copying a block reference",
"copyRefUnsupported": "This block type cannot be referenced yet"
},
"insightsView": {
"title": "Insights semânticos",
"subtitle": "Descobre a arquitetura oculta do teu conhecimento",
"resync": "Ressincronizar rede",
"mapping": "Mapeando…",
"loading": "A carregar notas…",
"mappingTitle": "Mapeando o teu conhecimento…",
"mappingHint": "This can take one to three minutes. You can keep browsing; the page will update when it's done.",
"analyzeNow": "Iniciar análise semântica",
"emptyNeedMoreNotes": "Add {count} more notes to unlock semantic clustering (minimum 10).",
"embeddingsHint": "Apenas {indexed} de {total} notas indexadas para IA.",
"vsGraphHint": "This is not the same as “Link map” (network icon in the sidebar): here, AI groups your notes by theme.",
"openGraphMap": "Abrir mapa de links",
"analysisFailed": "Análise falhou. Verifica as configurações de IA.",
"analysisSuccess": "Análise completa: {count} temas detectados.",
"analysisNoClusters": "Nenhum tema detectado.",
"staleResults": "Resultados da última análise.",
"semanticGraphLegend": "Visão geral de temas (não o mapa de links)",
"fitGraphView": "Ajustar vista",
"graphPreviewHint": "Theme overview: the number is how many notes belong here. Hover a dot for the title, click to open. Full list on the right.",
"graphMoreNotes": "+{count} more in this theme",
"graphNotesLabel": "notas",
"clusterFallback": "Tema {index}",
"unclusteredNotes": "{count} notes not assigned to a theme (hidden from graph).",
"emptyTitle": "Descobre os teus clusters de conhecimento",
"emptyDescription": "Click \"Re-sync network\" to analyze your notes and find hidden connections",
"stats": {
"clusters": "Clusters",
"bridgeNotes": "Notas ponte"
},
"clusters": {
"title": "Semantic clusters",
"notesCount": "{count} notes",
"centralNotes": "Central notes",
"emptyCluster": "No notes in this cluster"
},
"bridgeNotes": {
"title": "Powerful bridge notes",
"score": "Pontuação: {score}%",
"empty": "No significant bridge notes yet. Deepen your research to find new connections."
},
"suggestions": {
"title": "Missing links (AI generated)",
"bridging": "Ligar {clusterA} & {clusterB}",
"emptyTitle": "Sem sugestões",
"emptyDescription": "All your clusters may already be connected!",
"createNote": "Criar nota ponte"
},
"unknownNote": "Sem título",
"viewSplit": "Split",
"viewGraph": "Grafo",
"viewDashboard": "Painel",
"isolatedClusters": {
"title": "Isolated clusters ({count})",
"badge": "Não conectado",
"empty": "Todos os clusters estão interligados!"
},
"focusCluster": {
"title": "Foco de cluster ativo",
"description": "This thematic cluster gathers {count} complementary notes. Click on a note to access it directly:",
"close": "Fechar"
},
"badgeDominant": "Dominant",
"bridgeCount": "ponte(s)",
"echoTitle": "You keep returning to this idea",
"tipClusters": "AI grouped your notes by semantic affinity — regardless of which notebook they're in. Each theme represents a subject your mind keeps returning to.",
"tipClustersAction": "Click a theme to see its notes. Click a note to open it.",
"tipBridgeNotes": "These notes speak to two different themes at once. They reveal where your thinking crosses boundaries — often where the most original ideas hide.",
"tipBridgeNotesAction": "Click a note to open it and understand the connection.",
"tipEcho": "Memory Echo detects two notes written at very different times that cover the same idea. Your mind revisited a thought without realising it.",
"tipEchoAction": "Two notes, same idea, different moments. Click to explore.",
"tipSuggestions": "These themes have no note linking them yet. AI proposes a starting idea. Click 'Create bridge note' to write it and open it in the editor.",
"tipSuggestionsAction": "Click 'Create bridge note' to write the note and open it immediately.",
"tipIsolated": "These themes are isolated: no note connects them to the others. Maybe you're exploring a fragile idea? One synthesis note would be enough to create the link.",
"tipIsolatedAction": "These themes have no note connecting them to the rest of your thinking.",
"recalcSystem": {
"title": "Sistema de recálculo",
"statusSynced": "Sincronizado",
"scheduledCron": "Programado",
"lastSync": "Última sync"
},
"resetFocus": "Repor foco"
}
}