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

@@ -0,0 +1,142 @@
---
name: find-skills
description: Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
---
# Find Skills
This skill helps you discover and install skills from the open agent skills ecosystem.
## When to Use This Skill
Use this skill when the user:
- Asks "how do I do X" where X might be a common task with an existing skill
- Says "find a skill for X" or "is there a skill for X"
- Asks "can you do X" where X is a specialized capability
- Expresses interest in extending agent capabilities
- Wants to search for tools, templates, or workflows
- Mentions they wish they had help with a specific domain (design, testing, deployment, etc.)
## What is the Skills CLI?
The Skills CLI (`npx skills`) is the package manager for the open agent skills ecosystem. Skills are modular packages that extend agent capabilities with specialized knowledge, workflows, and tools.
**Key commands:**
- `npx skills find [query] [--owner <owner>]` - Search for skills interactively or by keyword, optionally scoped to a GitHub owner
- `npx skills add <package>` - Install a skill from GitHub or other sources
- `npx skills check` - Check for skill updates
- `npx skills update` - Update all installed skills
**Browse skills at:** https://skills.sh/
## How to Help Users Find Skills
### Step 1: Understand What They Need
When a user asks for help with something, identify:
1. The domain (e.g., React, testing, design, deployment)
2. The specific task (e.g., writing tests, creating animations, reviewing PRs)
3. Whether this is a common enough task that a skill likely exists
### Step 2: Check the Leaderboard First
Before running a CLI search, check the [skills.sh leaderboard](https://skills.sh/) to see if a well-known skill already exists for the domain. The leaderboard ranks skills by total installs, surfacing the most popular and battle-tested options.
For example, top skills for web development include:
- `vercel-labs/agent-skills` — React, Next.js, web design (100K+ installs each)
- `anthropics/skills` — Frontend design, document processing (100K+ installs)
### Step 3: Search for Skills
If the leaderboard doesn't cover the user's need, run the find command:
```bash
npx skills find [query] [--owner <owner>]
```
For example:
- User asks "how do I make my React app faster?" → `npx skills find react performance`
- User asks "can you help me with PR reviews?" → `npx skills find pr review`
- User asks "I need to create a changelog" → `npx skills find changelog`
### Step 4: Verify Quality Before Recommending
**Do not recommend a skill based solely on search results.** Always verify:
1. **Install count** — Prefer skills with 1K+ installs. Be cautious with anything under 100.
2. **Source reputation** — Official sources (`vercel-labs`, `anthropics`, `microsoft`) are more trustworthy than unknown authors.
3. **GitHub stars** — Check the source repository. A skill from a repo with <100 stars should be treated with skepticism.
### Step 5: Present Options to the User
When you find relevant skills, present them to the user with:
1. The skill name and what it does
2. The install count and source
3. The install command they can run
4. A link to learn more at skills.sh
Example response:
```
I found a skill that might help! The "react-best-practices" skill provides
React and Next.js performance optimization guidelines from Vercel Engineering.
(185K installs)
To install it:
npx skills add vercel-labs/agent-skills@react-best-practices
Learn more: https://skills.sh/vercel-labs/agent-skills/react-best-practices
```
### Step 6: Offer to Install
If the user wants to proceed, you can install the skill for them:
```bash
npx skills add <owner/repo@skill> -g -y
```
The `-g` flag installs globally (user-level) and `-y` skips confirmation prompts.
## Common Skill Categories
When searching, consider these common categories:
| Category | Example Queries |
| --------------- | ---------------------------------------- |
| Web Development | react, nextjs, typescript, css, tailwind |
| Testing | testing, jest, playwright, e2e |
| DevOps | deploy, docker, kubernetes, ci-cd |
| Documentation | docs, readme, changelog, api-docs |
| Code Quality | review, lint, refactor, best-practices |
| Design | ui, ux, design-system, accessibility |
| Productivity | workflow, automation, git |
## Tips for Effective Searches
1. **Use specific keywords**: "react testing" is better than just "testing"
2. **Try alternative terms**: If "deploy" doesn't work, try "deployment" or "ci-cd"
3. **Check popular sources**: Many skills come from `vercel-labs/agent-skills` or `ComposioHQ/awesome-claude-skills`
## When No Skills Are Found
If no relevant skills exist:
1. Acknowledge that no existing skill was found
2. Offer to help with the task directly using your general capabilities
3. Suggest the user could create their own skill with `npx skills init`
Example:
```
I searched for skills related to "xyz" but didn't find any matches.
I can still help you with this task directly! Would you like me to proceed?
If this is something you do often, you could create your own skill:
npx skills init my-xyz-skill
```

View File

@@ -59,11 +59,13 @@
"/home/devparsa/.cursor/projects/home-devparsa-dev-Momento/agent-transcripts/ea18d177-228d-4e44-8e79-8957e6f2da39/subagents/375b2e07-202f-4e8e-9e80-718bbdf88005.jsonl": 1781973640324,
"/home/devparsa/.cursor/projects/home-devparsa-dev-Momento/agent-transcripts/ea18d177-228d-4e44-8e79-8957e6f2da39/subagents/6cba0291-51b3-42d9-939c-2e95d01128f8.jsonl": 1781975383642,
"/home/devparsa/.cursor/projects/home-devparsa-dev-Momento/agent-transcripts/ea18d177-228d-4e44-8e79-8957e6f2da39/subagents/d6546245-4e3f-47dd-bc3e-39e1af726138.jsonl": 1781973598054,
"/home/devparsa/.cursor/projects/home-devparsa-dev-Momento/agent-transcripts/ec2b194c-c67e-4089-a434-6daff69ca69d/ec2b194c-c67e-4089-a434-6daff69ca69d.jsonl": 1782057901186,
"/home/devparsa/.cursor/projects/home-devparsa-dev-Momento/agent-transcripts/ec2b194c-c67e-4089-a434-6daff69ca69d/ec2b194c-c67e-4089-a434-6daff69ca69d.jsonl": 1782633068860,
"/home/devparsa/.cursor/projects/home-devparsa-dev-Momento/agent-transcripts/ec2b194c-c67e-4089-a434-6daff69ca69d/subagents/99e20a50-1e7b-4ed8-931a-5c4c7a65ea4d.jsonl": 1782037965469,
"/home/devparsa/.cursor/projects/home-devparsa-dev-Momento/agent-transcripts/f0ad176d-04d7-4d9a-82b8-65273acd313a/subagents/96507ccc-6150-4260-a55c-94abd2b57441.jsonl": 1778946698447,
"/home/devparsa/.cursor/projects/home-devparsa-dev-Momento/agent-transcripts/fb7fd15f-b9ef-490b-a1de-8238ea026e53/fb7fd15f-b9ef-490b-a1de-8238ea026e53.jsonl": 1780001507987,
"/home/devparsa/.cursor/projects/home-devparsa-dev-Momento/agent-transcripts/fb7fd15f-b9ef-490b-a1de-8238ea026e53/subagents/a5601ff1-7934-4872-acd8-266e416c3680.jsonl": 1779998536313,
"/home/devparsa/.cursor/projects/home-devparsa-dev-Momento/agent-transcripts/ec2b194c-c67e-4089-a434-6daff69ca69d/subagents/993325c9-a748-4183-9b2d-866cc0d73338.jsonl": 1782056882673,
"/home/devparsa/.cursor/projects/home-devparsa-dev-Momento/agent-transcripts/ec2b194c-c67e-4089-a434-6daff69ca69d/subagents/e483aeb3-3b38-4f7f-9ad8-d79f362c102d.jsonl": 1782057932702
"/home/devparsa/.cursor/projects/home-devparsa-dev-Momento/agent-transcripts/ec2b194c-c67e-4089-a434-6daff69ca69d/subagents/e483aeb3-3b38-4f7f-9ad8-d79f362c102d.jsonl": 1782058095940,
"/home/devparsa/.cursor/projects/home-devparsa-dev-Momento/agent-transcripts/ec2b194c-c67e-4089-a434-6daff69ca69d/subagents/372b1e4e-cc60-4117-b3c1-48af0dbc38d9.jsonl": 1782059598659,
"/home/devparsa/.cursor/projects/home-devparsa-dev-Momento/agent-transcripts/ec2b194c-c67e-4089-a434-6daff69ca69d/subagents/8ad24313-529f-41f7-96b3-dc6314e94c72.jsonl": 1782633077601
}

View File

@@ -1,8 +1,8 @@
{
"version": 1,
"lastRunAtMs": 1782057894900,
"turnsSinceLastRun": 15,
"lastTranscriptMtimeMs": 1782057894796.2778,
"lastProcessedGenerationId": "3c5517c8-a954-41c8-ba2d-9a8578c05e67",
"lastRunAtMs": 1782633053032,
"turnsSinceLastRun": 1,
"lastTranscriptMtimeMs": 1782633052959.9294,
"lastProcessedGenerationId": "17310ec7-5a0e-406b-a1a4-75a7c0439ee3",
"trialStartedAtMs": null
}

View File

@@ -27,5 +27,5 @@
- CI/CD Gitea : `.gitea/workflows/ci.yaml` — CI sur `ubuntu-24.04`, deploy sur runner **`docker-host`** (sur le serveur) ; deploy manuel via `.gitea/workflows/deploy.yaml` ou `bash scripts/deploy-prod.sh`.
- Migrations prebuilt + vérif deploy : `docker compose exec memento-note node ./node_modules/prisma/build/index.js migrate deploy` (pas `npx prisma`) ; helper `scripts/migrate-docker.sh` ; `GET /api/build-info` (SHA Git) ; comparer `127.0.0.1:3000` et domaine Cloudflare — purger cache si versions divergent ; 403 `/api/manifest` côté domaine = souvent Cloudflare.
- Éditeur riche : `rich-text-editor.tsx``immediatelyRender: false` ; activer **`shouldRerenderOnTransaction: false`** (quick win perf TipTap 2.5) ; **drag handle / menu bloc** via **`@tiptap/extension-drag-handle-react`** (spec officielle — pas de double plugin `DragHandleExtension` + composant React, pas de repositionnement maison) ; poignée dans **colonne gutter fixe** du wrapper (padding + `getReferencedVirtualElement`), pas sur le bord des listes/numéros ; CSS : **pas `opacity:0` sur `.drag-handle`** (visibilité gérée par le plugin) ; config/callbacks **stables hors composant** ; fondation blocs : `tiptap-unique-id-extension.ts` / **`data-id` persisté à la sauvegarde** (références « Copier la référence ») ; **Smart Paste** : `lib/editor/smart-paste-extension.ts` ; **peek split** note source : `lib/note-peek-sync.ts` + `note-editor-split-peek.tsx` ; **US-4 `structuredViewBlock`** (`tiptap-structured-view-block-extension.tsx`, `structured-view-block-embed.tsx`) : **dual-mode** — base locale autonome par défaut (`/database`, `/vue`, `isLocal: true`) + option « Lier à un carnet » (Structured Views) ; i18n `structuredViewBlock.*` ; **rejeté** : ancien `databaseBlock` « Auteurs & Œuvres » et spec embed-only `docs/story-nextgen-editor-us4-redesign.md` ; epic active `docs/story-nextgen-editor.md` — priorité **PERF > NEXTGEN > UX > MOBILE > MARKDOWN**.
- Sync mutations notes entre composants : `memento-note/lib/note-change-sync.ts` (`emitNoteChange`, événement `NOTE_CHANGE_EVENT`).
- Roadmap / écart prototype vs prod : Web Clipper — **`ClipperSimulator.tsx` = référence design uniquement** (pas de simulateur en prod) ; extension **`memento-note/extension/`** v0.3 **Side Panel** (clip page/sélection/lien ; popup Chrome se ferme au clic page — Side Panel pour la sélection) ; i18n extension **15 langues** (`_locales/`, détection locale navigateur ; script `extension/i18n/generate-translations.cjs`) ; **`host_permissions`** incl. LAN ; **URL serveur configurable en dev**, adresse prod figée en release ; cookies/session alignés avec l'instance cible ; **Flashcards IA SM-2 livrées** : `/revision`, `/api/flashcards/*`, génération depuis l'éditeur (GraduationCap) — réf. prototype `RevisionView.tsx` ; **Structured Views partiellement livrées** : schéma par carnet, Table/Kanban, champs partagés et valeurs par note (`/home` + toolbar carnet) — **suivi de tâches par carnet via Kanban structuré** (pas de vue agrégée Notes/Tâches sur la home ; cases à cocher inline dans les notes) ; **Living Blocks partiellement livrées** : `data-id`, Smart Paste, nœud `liveBlock`, détacher/supprimer, peek split — **US-NEXTGEN-EDITOR** en cours (`docs/story-nextgen-editor.md`, **US-TEMPORAL reporté**) ; encore en gap : transclusion bidirectionnelle complète, graphe knowledge enrichi (`GraphKnowledgeMap.tsx`), **insights sémantiques** (`InsightsView.tsx`, **`/insights``/graph`**) ; publication **Chrome Web Store** : icônes 16/48/128, privacy policy, `host_permissions` prod restreints vs build dev ; **Wizards** : `NotebookOrganizerDialog` (tags/doublons) branché via bouton "Tags IA" dans `home-client.tsx``StructuredViewsWizard` encore **orphelin** (pas de point d'entrée UI) ; **Publication web** (`note-editor-toolbar.tsx`) : deux modes — simple (copie directe) + IA (2-3 templates, reformulation adaptée au contenu, KaTeX pour équations, images incluses) — quota IA consommé uniquement sur publication IA.
- Sync mutations notes entre composants : `memento-note/lib/note-change-sync.ts` (`emitNoteChange`, événement `NOTE_CHANGE_EVENT`) ; tracking quotas IA : événement `ai-usage-changed` (window) — doit être dispatché depuis **tous** les points d'appel IA (recherche sémantique, auto-tag, auto-title, chat, reformulation, analyse carnet, etc.) ; UI quotas : `usage-meter.tsx` (polling 5s + écoute événement).
- Roadmap / écart prototype vs prod : Web Clipper — **`ClipperSimulator.tsx` = référence design uniquement** (pas de simulateur en prod) ; extension **`memento-note/extension/`** v0.3 **Side Panel** (clip page/sélection/lien ; popup Chrome se ferme au clic page — Side Panel pour la sélection) ; i18n extension **15 langues** (`_locales/`, détection locale navigateur ; script `extension/i18n/generate-translations.cjs`) ; **`host_permissions`** incl. LAN ; **URL serveur configurable en dev**, adresse prod figée en release ; cookies/session alignés avec l'instance cible ; **Flashcards IA SM-2 livrées** : `/revision`, `/api/flashcards/*`, génération depuis l'éditeur (GraduationCap) — réf. prototype `RevisionView.tsx` ; **Structured Views partiellement livrées** : schéma par carnet, Table/Kanban, champs partagés et valeurs par note (`/home` + toolbar carnet) — **suivi de tâches par carnet via Kanban structuré** (pas de vue agrégée Notes/Tâches sur la home ; cases à cocher inline dans les notes) ; **Living Blocks partiellement livrées** : `data-id`, Smart Paste, nœud `liveBlock`, détacher/supprimer, peek split — **US-NEXTGEN-EDITOR** en cours (`docs/story-nextgen-editor.md`, **US-TEMPORAL reporté**) ; encore en gap : transclusion bidirectionnelle complète, graphe knowledge enrichi (`GraphKnowledgeMap.tsx`), **insights sémantiques** (`InsightsView.tsx`, **`/insights``/graph`**) ; publication **Chrome Web Store** : icônes 16/48/128, privacy policy, `host_permissions` prod restreints vs build dev ; **Wizards** : `NotebookOrganizerDialog` (tags/doublons) branché via bouton "Tags IA" dans `home-client.tsx``StructuredViewsWizard` encore **orphelin** (pas de point d'entrée UI) ; **Publication web** (`note-editor-toolbar.tsx`) : deux modes — simple (copie directe) + IA (2-3 templates, reformulation adaptée au contenu, KaTeX pour équations, images incluses) — quota IA consommé uniquement sur publication IA ; **champs DB publication** sur modèle `Note` : `publicSlug` (pas `publishedSlug`), `publishedContent` (pas `publishedHtml`) — `publishMode` est paramètre API uniquement (`mode: 'simple' | 'ai'`), **pas** un champ en base.

View File

@@ -35,14 +35,14 @@
# - Dev moves story to 'review', then runs code-review (fresh context, different LLM recommended)
generated: 2026-05-14T16:06:50Z
last_updated: 2026-05-23T20:03:48Z
last_updated: 2026-06-28T16:45:00Z
project: Memento
project_key: NOKEY
tracking_system: file-system
story_location: docs
development_status:
epic-3: in-progress
epic-3: done
3-1-freemium-quota-tracking: done
3-2-custom-llm-router: done
3-3-smart-routing-fallback: done
@@ -50,7 +50,7 @@ development_status:
3-5-secure-byok-management: done
3-6-stripe-subscription-tiers: done
epic-3-retrospective: optional
epic-4: in-progress
epic-4: done
4-1-gdpr-cookie-consent: done
4-2-gdpr-right-to-be-forgotten: done
4-3-data-portability: done
@@ -58,11 +58,12 @@ development_status:
4-5-eu-data-residency: done
4-6-sso-saml-audit-logging: done
epic-4-retrospective: optional
epic-5: in-progress
epic-5: done
5-1-nextgen-editor: done
epic-5-retrospective: optional
# Epic 6 — Croissance & Activation (PLG) — ajouté 2026-05-29
epic-6: in-progress
epic-6: done
6-1-onboarding-activation: done # story-onboarding-activation.md
6-2-markdown-roundtrip: done # brief-markdown-roundtrip.md
6-3-brainstorm-canvas-finalize: done # story: 6-3-brainstorm-canvas-finalize.md

View File

@@ -18,7 +18,10 @@ import {
AlertCircle,
ChevronRight,
Database,
ArrowRight,
} from 'lucide-react'
import { toast } from 'sonner'
import Link from 'next/link'
interface Note {
id: string
@@ -199,6 +202,12 @@ export default function InsightsPage() {
if (res.ok) {
const data = await res.json()
const clusterCount = data.clusters?.length || 0
if (clusterCount === 0) {
toast.info(t('insightsView.analysisNoClusters'))
} else {
toast.success(t('insightsView.analysisSuccess', { count: clusterCount }))
}
const clustersWithColors = (data.clusters || []).map((c: Cluster, i: number) => ({
...c,
id: c.clusterId.toString(),
@@ -225,6 +234,7 @@ export default function InsightsPage() {
}
} catch (error) {
console.error('Error running analysis:', error)
toast.error(t('insightsView.analysisFailed'))
} finally {
setIsCalculating(false)
}
@@ -253,6 +263,12 @@ export default function InsightsPage() {
<p className="text-[10px] text-concrete tracking-[0.25em] uppercase font-bold">
{t('insightsView.subtitle')}
</p>
<div className="flex items-center gap-1.5 mt-1.5 text-[10px] text-concrete">
<span>{t('insightsView.semanticGraphLegend')}</span>
<Link href="/graph" className="inline-flex items-center gap-0.5 text-ochre hover:underline font-medium">
{t('insightsView.openGraphMap')} <ArrowRight size={9} />
</Link>
</div>
</div>
<div className="flex items-center justify-between sm:justify-end gap-3">
@@ -324,7 +340,9 @@ export default function InsightsPage() {
{t('insightsView.emptyTitle')}
</h3>
<p className="text-sm text-concrete leading-relaxed mb-6">
{t('insightsView.emptyDescription')}
{embeddingStats && embeddingStats.total < 10
? t('insightsView.emptyNeedMoreNotes', { count: 10 - embeddingStats.total })
: t('insightsView.emptyDescription')}
</p>
<button
onClick={performAnalysis}
@@ -378,6 +396,9 @@ export default function InsightsPage() {
onNoteSelect={handleNoteClick}
selectedClusterId={selectedClusterId}
onClusterSelect={setSelectedClusterId}
untitledLabel={t('insightsView.unknownNote')}
resetFocusLabel={t('insightsView.resetFocus')}
fitViewLabel={t('insightsView.fitGraphView')}
/>
</div>
@@ -508,22 +529,22 @@ export default function InsightsPage() {
<div className="flex items-center gap-2">
<Sliders size={15} className="text-ochre" />
<h4 className="text-[11px] font-black uppercase tracking-[0.2em] text-ink dark:text-dark-ink">
{t('insightsView.clusters.title')}
{t('insightsView.recalcSystem.title')}
</h4>
</div>
<span className="flex items-center gap-1 text-[9.5px] font-bold text-emerald-500 uppercase">
<CheckCircle2 size={11} /> {t('insightsView.resync')}
<CheckCircle2 size={11} /> {t('insightsView.recalcSystem.statusSynced')}
</span>
</div>
<div className="grid grid-cols-2 gap-4 pt-1">
<div className="space-y-1">
<span className="text-[9px] text-concrete block">{t('insightsView.mapping')}</span>
<span className="text-[9px] text-concrete block">{t('insightsView.recalcSystem.scheduledCron')}</span>
<p className="text-xs text-ink dark:text-dark-ink font-semibold flex items-center gap-1.5">
<Clock size={12} className="opacity-50" /> 04:00
</p>
</div>
<div className="space-y-1">
<span className="text-[9px] text-concrete block">{t('insightsView.resync')}</span>
<span className="text-[9px] text-concrete block">{t('insightsView.recalcSystem.lastSync')}</span>
<p className="text-xs text-ink dark:text-dark-ink font-bold font-mono">
{lastSyncTime || '—'}
</p>
@@ -613,6 +634,7 @@ export default function InsightsPage() {
{t('insightsView.bridgeNotes.title')}
</h3>
</div>
<p className="text-[10px] text-concrete italic px-1 -mt-2 leading-relaxed">{t('insightsView.tipBridgeNotes')}</p>
<div className="space-y-3">
{bridgeList.map(bridge => (
<motion.div
@@ -672,6 +694,7 @@ export default function InsightsPage() {
{t('insightsView.suggestions.title')}
</h3>
</div>
<p className="text-[10px] text-concrete italic px-1 -mt-2 leading-relaxed">{t('insightsView.tipSuggestions')}</p>
<div className="space-y-4">
{suggestions.map(s => (
<div

View File

@@ -31,6 +31,9 @@ interface NetworkGraphProps {
onNoteSelect: (id: string) => void
selectedClusterId?: string | null
onClusterSelect?: (id: string | null) => void
untitledLabel?: string
resetFocusLabel?: string
fitViewLabel?: string
}
export function NetworkGraph({
@@ -39,7 +42,10 @@ export function NetworkGraph({
bridgeNotes,
onNoteSelect,
selectedClusterId = null,
onClusterSelect
onClusterSelect,
untitledLabel = 'Untitled',
resetFocusLabel = 'Reset focus',
fitViewLabel = 'Fit view',
}: NetworkGraphProps) {
const svgRef = useRef<SVGSVGElement>(null)
const containerRef = useRef<HTMLDivElement>(null)
@@ -268,7 +274,7 @@ export function NetworkGraph({
.attr('fill', '#4b5563')
.attr('class', 'dark:fill-zinc-300 font-sans pointer-events-none')
.text(d => {
const title = d.title || 'Sans titre'
const title = d.title || untitledLabel
return title.length > 20 ? title.substring(0, 18) + '...' : title
})
@@ -368,7 +374,7 @@ export function NetworkGraph({
onClick={() => onClusterSelect?.(null)}
className="px-3 py-1.5 rounded-full border border-rose-200 bg-rose-50 dark:bg-rose-950/20 dark:border-rose-900/40 text-rose-500 text-[9px] font-bold uppercase tracking-wider hover:bg-rose-100 dark:hover:bg-rose-950/30 transition-all shadow-sm"
>
Réinitialiser focus
{resetFocusLabel}
</button>
)}
</div>

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": "رؤى دلالية",
"subtitle": "اكتشف البنية المخفية لمعرفتك",
"resync": "إعادة مزامنة الشبكة",
"mapping": "جاري الربط…",
"loading": "جاري تحميل الملاحظات…",
"mappingTitle": "جاري رسم خريطة معرفتك…",
"mappingHint": "This can take one to three minutes. You can keep browsing; the page will update when it's done.",
"analyzeNow": "بدء التحليل الدلالي",
"emptyNeedMoreNotes": "Add {count} more notes to unlock semantic clustering (minimum 10).",
"embeddingsHint": "فقط {indexed} من أصل {total} ملاحظة مفهرسة للذكاء الاصطناعي.",
"vsGraphHint": "This is not the same as “Link map” (network icon in the sidebar): here, AI groups your notes by theme.",
"openGraphMap": "فتح خريطة الروابط",
"analysisFailed": "فشل التحليل. تحقق من إعدادات الذكاء الاصطناعي.",
"analysisSuccess": "اكتمل التحليل: تم اكتشاف {count} موضوع.",
"analysisNoClusters": "لم يتم اكتشاف موضوعات بعد.",
"staleResults": "عرض نتائج آخر تحليل.",
"semanticGraphLegend": "نظرة عامة على الموضوعات (وليست خريطة الروابط)",
"fitGraphView": "ملاءمة العرض",
"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": "ملاحظات",
"clusterFallback": "موضوع {index}",
"unclusteredNotes": "{count} notes not assigned to a theme (hidden from graph).",
"emptyTitle": "اكتشف مجموعات معرفتك",
"emptyDescription": "Click \"Re-sync network\" to analyze your notes and find hidden connections",
"stats": {
"clusters": "المجموعات",
"bridgeNotes": "ملاحظات جسر"
},
"clusters": {
"title": "Semantic clusters",
"notesCount": "{count} notes",
"centralNotes": "Central notes",
"emptyCluster": "No notes in this cluster"
},
"bridgeNotes": {
"title": "Powerful bridge notes",
"score": "النتيجة: {score}%",
"empty": "No significant bridge notes yet. Deepen your research to find new connections."
},
"suggestions": {
"title": "Missing links (AI generated)",
"bridging": "ربط {clusterA} و {clusterB}",
"emptyTitle": "لا توجد اقتراحات",
"emptyDescription": "All your clusters may already be connected!",
"createNote": "إنشاء ملاحظة جسر"
},
"unknownNote": "بدون عنوان",
"viewSplit": "Split",
"viewGraph": "الرسم البياني",
"viewDashboard": "لوحة التحكم",
"isolatedClusters": {
"title": "Isolated clusters ({count})",
"badge": "غير متصل",
"empty": "جميع المجموعات مترابطة!"
},
"focusCluster": {
"title": "تركيز على المجموعة",
"description": "This thematic cluster gathers {count} complementary notes. Click on a note to access it directly:",
"close": "إغلاق"
},
"badgeDominant": "Dominant",
"bridgeCount": "جسر/جسور",
"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": "نظام إعادة الحساب",
"statusSynced": "متزامن",
"scheduledCron": "مجدول",
"lastSync": "آخر مزامنة"
},
"resetFocus": "إعادة ضبط التركيز"
}
}

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": "Semantische Einblicke",
"subtitle": "Entdecke die verborgene Architektur deines Wissens",
"resync": "Netzwerk neu syncen",
"mapping": "Kartierung…",
"loading": "Deine Notizen werden geladen…",
"mappingTitle": "Dein Wissen wird kartiert…",
"mappingHint": "This can take one to three minutes. You can keep browsing; the page will update when it's done.",
"analyzeNow": "Semantische Analyse starten",
"emptyNeedMoreNotes": "Add {count} more notes to unlock semantic clustering (minimum 10).",
"embeddingsHint": "Nur {indexed} von {total} Notizen sind für KI indiziert.",
"vsGraphHint": "This is not the same as “Link map” (network icon in the sidebar): here, AI groups your notes by theme.",
"openGraphMap": "Link-Map öffnen",
"analysisFailed": "Analyse fehlgeschlagen. Überprüfe deine KI-Einstellungen.",
"analysisSuccess": "Analyse abgeschlossen: {count} Themen erkannt.",
"analysisNoClusters": "Noch keine Themen erkannt.",
"staleResults": "Zeigt Ergebnisse der letzten Analyse.",
"semanticGraphLegend": "Themenüberblick (nicht die Link-Map)",
"fitGraphView": "Ansicht anpassen",
"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": "Notizen",
"clusterFallback": "Thema {index}",
"unclusteredNotes": "{count} notes not assigned to a theme (hidden from graph).",
"emptyTitle": "Entdecke deine Wissenscluster",
"emptyDescription": "Click \"Re-sync network\" to analyze your notes and find hidden connections",
"stats": {
"clusters": "Cluster",
"bridgeNotes": "Brücken-Notizen"
},
"clusters": {
"title": "Semantic clusters",
"notesCount": "{count} notes",
"centralNotes": "Central notes",
"emptyCluster": "No notes in this cluster"
},
"bridgeNotes": {
"title": "Powerful bridge notes",
"score": "Score: {score}%",
"empty": "No significant bridge notes yet. Deepen your research to find new connections."
},
"suggestions": {
"title": "Missing links (AI generated)",
"bridging": "Verbindet {clusterA} & {clusterB}",
"emptyTitle": "Keine Verbindungsvorschläge",
"emptyDescription": "All your clusters may already be connected!",
"createNote": "Brücken-Notiz erstellen"
},
"unknownNote": "Ohne Titel",
"viewSplit": "Split",
"viewGraph": "Graph",
"viewDashboard": "Dashboard",
"isolatedClusters": {
"title": "Isolated clusters ({count})",
"badge": "Nicht verbunden",
"empty": "Alle Cluster sind verbunden!"
},
"focusCluster": {
"title": "Cluster-Fokus aktiv",
"description": "This thematic cluster gathers {count} complementary notes. Click on a note to access it directly:",
"close": "Schließen"
},
"badgeDominant": "Dominant",
"bridgeCount": "Brücke(n)",
"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": "Neuberechnungssystem",
"statusSynced": "Synchronisiert",
"scheduledCron": "Geplant",
"lastSync": "Letzte Sync"
},
"resetFocus": "Fokus zurücksetzen"
}
}

View File

@@ -3525,7 +3525,14 @@
"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."
"tipIsolatedAction": "These themes have no note connecting them to the rest of your thinking.",
"recalcSystem": {
"title": "Recalculation system",
"statusSynced": "Synced",
"scheduledCron": "Scheduled",
"lastSync": "Last sync"
},
"resetFocus": "Reset focus"
},
"consent": {
"banner": {

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": "Descubre la arquitectura oculta de tu conocimiento",
"resync": "Resincronizar red",
"mapping": "Mapeando…",
"loading": "Cargando tus notas…",
"mappingTitle": "Mapeando tu conocimiento…",
"mappingHint": "This can take one to three minutes. You can keep browsing; the page will update when it's done.",
"analyzeNow": "Iniciar análisis semántico",
"emptyNeedMoreNotes": "Add {count} more notes to unlock semantic clustering (minimum 10).",
"embeddingsHint": "Solo {indexed} de {total} notas están 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 enlaces",
"analysisFailed": "Análisis fallido. Revisa tu configuración de IA.",
"analysisSuccess": "Análisis completo: {count} temas detectados.",
"analysisNoClusters": "Aún no se detectaron temas.",
"staleResults": "Mostrando resultados del último análisis.",
"semanticGraphLegend": "Vista general de temas (no el mapa de enlaces)",
"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": "Descubre tus clústeres de conocimiento",
"emptyDescription": "Click \"Re-sync network\" to analyze your notes and find hidden connections",
"stats": {
"clusters": "Clústeres",
"bridgeNotes": "Notas puente"
},
"clusters": {
"title": "Semantic clusters",
"notesCount": "{count} notes",
"centralNotes": "Central notes",
"emptyCluster": "No notes in this cluster"
},
"bridgeNotes": {
"title": "Powerful bridge notes",
"score": "Puntaje: {score}%",
"empty": "No significant bridge notes yet. Deepen your research to find new connections."
},
"suggestions": {
"title": "Missing links (AI generated)",
"bridging": "Conectando {clusterA} & {clusterB}",
"emptyTitle": "Sin sugerencias de conexión",
"emptyDescription": "All your clusters may already be connected!",
"createNote": "Crear nota puente"
},
"unknownNote": "Sin título",
"viewSplit": "Split",
"viewGraph": "Grafo",
"viewDashboard": "Panel",
"isolatedClusters": {
"title": "Isolated clusters ({count})",
"badge": "No conectado",
"empty": "¡Todos tus clústeres están interconectados!"
},
"focusCluster": {
"title": "Foco de clúster activo",
"description": "This thematic cluster gathers {count} complementary notes. Click on a note to access it directly:",
"close": "Cerrar"
},
"badgeDominant": "Dominant",
"bridgeCount": "puente(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": "Restablecer enfoque"
}
}

View File

@@ -2959,5 +2959,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": "بینش‌های معنایی",
"subtitle": "معماری پنهان دانش خود را کشف کنید",
"resync": "همگام‌سازی مجدد شبکه",
"mapping": "در حال نقشه‌برداری…",
"loading": "در حال بارگذاری یادداشت‌ها…",
"mappingTitle": "در حال نقشه‌برداری دانش شما…",
"mappingHint": "This can take one to three minutes. You can keep browsing; the page will update when it's done.",
"analyzeNow": "شروع تحلیل معنایی",
"emptyNeedMoreNotes": "Add {count} more notes to unlock semantic clustering (minimum 10).",
"embeddingsHint": "فقط {indexed} از {total} یادداشت برای هوش مصنوعی نمایه‌سازی شده‌اند.",
"vsGraphHint": "This is not the same as “Link map” (network icon in the sidebar): here, AI groups your notes by theme.",
"openGraphMap": "باز کردن نقشه پیوندها",
"analysisFailed": "تحلیل ناموفق. تنظیمات هوش مصنوعی را بررسی کنید.",
"analysisSuccess": "تحلیل کامل شد: {count} موضوع شناسایی شد.",
"analysisNoClusters": "هنوز موضوعی شناسایی نشده است.",
"staleResults": "نمایش نتایج آخرین تحلیل.",
"semanticGraphLegend": "نمای کلی موضوعات (نه نقشه پیوندها)",
"fitGraphView": "تنظیم نما",
"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": "یادداشت",
"clusterFallback": "موضوع {index}",
"unclusteredNotes": "{count} notes not assigned to a theme (hidden from graph).",
"emptyTitle": "کلاسترهای دانش خود را کشف کنید",
"emptyDescription": "Click \"Re-sync network\" to analyze your notes and find hidden connections",
"stats": {
"clusters": "کلاسترها",
"bridgeNotes": "یادداشت‌های پل"
},
"clusters": {
"title": "Semantic clusters",
"notesCount": "{count} notes",
"centralNotes": "Central notes",
"emptyCluster": "No notes in this cluster"
},
"bridgeNotes": {
"title": "Powerful bridge notes",
"score": "امتیاز: {score}%",
"empty": "No significant bridge notes yet. Deepen your research to find new connections."
},
"suggestions": {
"title": "Missing links (AI generated)",
"bridging": "اتصال {clusterA} و {clusterB}",
"emptyTitle": "بدون پیشنهاد",
"emptyDescription": "All your clusters may already be connected!",
"createNote": "ایجاد یادداشت پل"
},
"unknownNote": "بدون عنوان",
"viewSplit": "Split",
"viewGraph": "گراف",
"viewDashboard": "داشبورد",
"isolatedClusters": {
"title": "Isolated clusters ({count})",
"badge": "متصل نیست",
"empty": "همه کلاسترها به هم متصل‌اند!"
},
"focusCluster": {
"title": "تمرکز روی کلاستر فعال",
"description": "This thematic cluster gathers {count} complementary notes. Click on a note to access it directly:",
"close": "بستن"
},
"badgeDominant": "Dominant",
"bridgeCount": "پل",
"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": "سیستم محاسبه مجدد",
"statusSynced": "همگام‌شده",
"scheduledCron": "برنامه‌ریزی‌شده",
"lastSync": "آخرین همگام‌سازی"
},
"resetFocus": "بازنشانی تمرکز"
}
}

View File

@@ -3529,7 +3529,14 @@
"tipSuggestions": "Ces thèmes n'ont pas encore de note qui les relie. L'IA te propose une idée de départ. Clique sur « Créer la note pont » pour la rédiger et l'ouvrir dans l'éditeur.",
"tipSuggestionsAction": "Clique sur « Créer la note pont » pour créer la note et l'ouvrir immédiatement.",
"tipIsolated": "Ces thèmes sont isolés : aucune note ne les relie aux autres. Peut-être explores-tu une idée encore fragile ? Une note de synthèse suffirait à créer le lien.",
"tipIsolatedAction": "Ces thèmes n'ont aucune note qui les relie au reste de ta réflexion."
"tipIsolatedAction": "Ces thèmes n'ont aucune note qui les relie au reste de ta réflexion.",
"recalcSystem": {
"title": "Système de recalcul",
"statusSynced": "Synchronisé",
"scheduledCron": "CRON planifié",
"lastSync": "Dernière synchro"
},
"resetFocus": "Réinitialiser focus"
},
"consent": {
"banner": {

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": "सिमेंटिक इनसाइट्स",
"subtitle": "अपने ज्ञान की छिपी संरचना खोजें",
"resync": "नेटवर्क पुनः सिंक करें",
"mapping": "मैपिंग…",
"loading": "नोट लोड हो रहे हैं…",
"mappingTitle": "आपका ज्ञान मैप किया जा रहा है…",
"mappingHint": "This can take one to three minutes. You can keep browsing; the page will update when it's done.",
"analyzeNow": "सिमेंटिक विश्लेषण शुरू करें",
"emptyNeedMoreNotes": "Add {count} more notes to unlock semantic clustering (minimum 10).",
"embeddingsHint": "केवल {indexed}/{total} नोट्स AI के लिए अनुक्रमित हैं।",
"vsGraphHint": "This is not the same as “Link map” (network icon in the sidebar): here, AI groups your notes by theme.",
"openGraphMap": "लिंक मानचित्र खोलें",
"analysisFailed": "विश्लेषण विफल। AI सेटिंग्स जांचें।",
"analysisSuccess": "विश्लेषण पूर्ण: {count} विषय मिले।",
"analysisNoClusters": "अभी कोई विषय नहीं मिला।",
"staleResults": "पिछले विश्लेषण के परिणाम दिख रहे हैं।",
"semanticGraphLegend": "विषय अवलोकन (लिंक मानचित्र नहीं)",
"fitGraphView": "दृश्य फिट करें",
"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": "नोट्स",
"clusterFallback": "विषय {index}",
"unclusteredNotes": "{count} notes not assigned to a theme (hidden from graph).",
"emptyTitle": "अपने ज्ञान क्लस्टर खोजें",
"emptyDescription": "Click \"Re-sync network\" to analyze your notes and find hidden connections",
"stats": {
"clusters": "क्लस्टर",
"bridgeNotes": "ब्रिज नोट्स"
},
"clusters": {
"title": "Semantic clusters",
"notesCount": "{count} notes",
"centralNotes": "Central notes",
"emptyCluster": "No notes in this cluster"
},
"bridgeNotes": {
"title": "Powerful bridge notes",
"score": "स्कोर: {score}%",
"empty": "No significant bridge notes yet. Deepen your research to find new connections."
},
"suggestions": {
"title": "Missing links (AI generated)",
"bridging": "{clusterA} और {clusterB} जोड़ें",
"emptyTitle": "कोई सुझाव नहीं",
"emptyDescription": "All your clusters may already be connected!",
"createNote": "ब्रिज नोट बनाएं"
},
"unknownNote": "बिना शीर्षक",
"viewSplit": "Split",
"viewGraph": "ग्राफ",
"viewDashboard": "डैशबोर्ड",
"isolatedClusters": {
"title": "Isolated clusters ({count})",
"badge": "कनेक्टेड नहीं",
"empty": "सभी क्लस्टर जुड़े हुए हैं!"
},
"focusCluster": {
"title": "क्लस्टर फोकस सक्रिय",
"description": "This thematic cluster gathers {count} complementary notes. Click on a note to access it directly:",
"close": "बंद करें"
},
"badgeDominant": "Dominant",
"bridgeCount": "ब्रिज",
"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": "पुनर्गणना प्रणाली",
"statusSynced": "सिंक्रनाइज़्ड",
"scheduledCron": "अनुसूचित",
"lastSync": "अंतिम सिंक"
},
"resetFocus": "फोकस रीसेट करें"
}
}

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 semantici",
"subtitle": "Scopri l'architettura nascosta della tua conoscenza",
"resync": "Risincronizza rete",
"mapping": "Mappatura…",
"loading": "Caricamento delle note…",
"mappingTitle": "Mappatura della tua conoscenza…",
"mappingHint": "This can take one to three minutes. You can keep browsing; the page will update when it's done.",
"analyzeNow": "Avvia analisi semantica",
"emptyNeedMoreNotes": "Add {count} more notes to unlock semantic clustering (minimum 10).",
"embeddingsHint": "Solo {indexed} di {total} note indicizzate per IA.",
"vsGraphHint": "This is not the same as “Link map” (network icon in the sidebar): here, AI groups your notes by theme.",
"openGraphMap": "Apri mappa link",
"analysisFailed": "Analisi fallita. Controlla le impostazioni IA.",
"analysisSuccess": "Analisi completata: {count} temi rilevati.",
"analysisNoClusters": "Nessun tema rilevato.",
"staleResults": "Risultati dell'ultima analisi.",
"semanticGraphLegend": "Panoramica temi (non la mappa link)",
"fitGraphView": "Adatta 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": "note",
"clusterFallback": "Tema {index}",
"unclusteredNotes": "{count} notes not assigned to a theme (hidden from graph).",
"emptyTitle": "Scopri i tuoi cluster di conoscenza",
"emptyDescription": "Click \"Re-sync network\" to analyze your notes and find hidden connections",
"stats": {
"clusters": "Cluster",
"bridgeNotes": "Note ponte"
},
"clusters": {
"title": "Semantic clusters",
"notesCount": "{count} notes",
"centralNotes": "Central notes",
"emptyCluster": "No notes in this cluster"
},
"bridgeNotes": {
"title": "Powerful bridge notes",
"score": "Punteggio: {score}%",
"empty": "No significant bridge notes yet. Deepen your research to find new connections."
},
"suggestions": {
"title": "Missing links (AI generated)",
"bridging": "Collega {clusterA} & {clusterB}",
"emptyTitle": "Nessun suggerimento",
"emptyDescription": "All your clusters may already be connected!",
"createNote": "Crea nota ponte"
},
"unknownNote": "Senza titolo",
"viewSplit": "Split",
"viewGraph": "Grafo",
"viewDashboard": "Pannello",
"isolatedClusters": {
"title": "Isolated clusters ({count})",
"badge": "Non connesso",
"empty": "Tutti i cluster sono interconnessi!"
},
"focusCluster": {
"title": "Focus cluster attivo",
"description": "This thematic cluster gathers {count} complementary notes. Click on a note to access it directly:",
"close": "Chiudi"
},
"badgeDominant": "Dominant",
"bridgeCount": "ponte/i",
"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 di ricalcolo",
"statusSynced": "Sincronizzato",
"scheduledCron": "Programmato",
"lastSync": "Ultima sync"
},
"resetFocus": "Reimposta focus"
}
}

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": "セマンティックインサイト",
"subtitle": "知識の隠された構造を発見",
"resync": "ネットワークを再同期",
"mapping": "マッピング中…",
"loading": "ノート読み込み中…",
"mappingTitle": "知識をマッピング中…",
"mappingHint": "This can take one to three minutes. You can keep browsing; the page will update when it's done.",
"analyzeNow": "セマンティック分析を開始",
"emptyNeedMoreNotes": "Add {count} more notes to unlock semantic clustering (minimum 10).",
"embeddingsHint": "AI索引付き{indexed}/{total}ノートのみ。",
"vsGraphHint": "This is not the same as “Link map” (network icon in the sidebar): here, AI groups your notes by theme.",
"openGraphMap": "リンクマップを開く",
"analysisFailed": "分析失敗。AI設定を確認。",
"analysisSuccess": "分析完了:{count}テーマ検出。",
"analysisNoClusters": "テーマ未検出。",
"staleResults": "前回分析の結果を表示。",
"semanticGraphLegend": "テーマ概覧(リンクマップではない)",
"fitGraphView": "全体表示",
"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": "ノート",
"clusterFallback": "テーマ {index}",
"unclusteredNotes": "{count} notes not assigned to a theme (hidden from graph).",
"emptyTitle": "知識クラスターを発見",
"emptyDescription": "Click \"Re-sync network\" to analyze your notes and find hidden connections",
"stats": {
"clusters": "クラスター",
"bridgeNotes": "ブリッジノート"
},
"clusters": {
"title": "Semantic clusters",
"notesCount": "{count} notes",
"centralNotes": "Central notes",
"emptyCluster": "No notes in this cluster"
},
"bridgeNotes": {
"title": "Powerful bridge notes",
"score": "スコア:{score}%",
"empty": "No significant bridge notes yet. Deepen your research to find new connections."
},
"suggestions": {
"title": "Missing links (AI generated)",
"bridging": "{clusterA}と{clusterB}を接続",
"emptyTitle": "提案なし",
"emptyDescription": "All your clusters may already be connected!",
"createNote": "ブリッジノート作成"
},
"unknownNote": "無題",
"viewSplit": "Split",
"viewGraph": "グラフ",
"viewDashboard": "ダッシュボード",
"isolatedClusters": {
"title": "Isolated clusters ({count})",
"badge": "未接続",
"empty": "全クラスター接続済み!"
},
"focusCluster": {
"title": "クラスターフォーカス中",
"description": "This thematic cluster gathers {count} complementary notes. Click on a note to access it directly:",
"close": "閉じる"
},
"badgeDominant": "Dominant",
"bridgeCount": "ブリッジ",
"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": "再計算システム",
"statusSynced": "同期済み",
"scheduledCron": "予定済み",
"lastSync": "前回同期"
},
"resetFocus": "フォーカス解除"
}
}

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": "시맨틱 인사이트",
"subtitle": "지식의 숨겨진 구조 발견",
"resync": "네트워크 재동기화",
"mapping": "매핑 중…",
"loading": "노트 로딩 중…",
"mappingTitle": "지식 매핑 중…",
"mappingHint": "This can take one to three minutes. You can keep browsing; the page will update when it's done.",
"analyzeNow": "시맨틱 분석 시작",
"emptyNeedMoreNotes": "Add {count} more notes to unlock semantic clustering (minimum 10).",
"embeddingsHint": "AI 인덱싱: {indexed}/{total}노트만.",
"vsGraphHint": "This is not the same as “Link map” (network icon in the sidebar): here, AI groups your notes by theme.",
"openGraphMap": "링크 맵 열기",
"analysisFailed": "분석 실패. AI 설정을 확인하세요.",
"analysisSuccess": "분석 완료: {count}개 테마 감지.",
"analysisNoClusters": "아직 테마가 없습니다.",
"staleResults": "마지막 분석 결과 표시 중.",
"semanticGraphLegend": "테마 개요 (링크 맵 아님)",
"fitGraphView": "화면에 맞춤",
"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": "노트",
"clusterFallback": "테마 {index}",
"unclusteredNotes": "{count} notes not assigned to a theme (hidden from graph).",
"emptyTitle": "지식 클러스터 발견",
"emptyDescription": "Click \"Re-sync network\" to analyze your notes and find hidden connections",
"stats": {
"clusters": "클러스터",
"bridgeNotes": "브리지 노트"
},
"clusters": {
"title": "Semantic clusters",
"notesCount": "{count} notes",
"centralNotes": "Central notes",
"emptyCluster": "No notes in this cluster"
},
"bridgeNotes": {
"title": "Powerful bridge notes",
"score": "점수: {score}%",
"empty": "No significant bridge notes yet. Deepen your research to find new connections."
},
"suggestions": {
"title": "Missing links (AI generated)",
"bridging": "{clusterA}와 {clusterB} 연결",
"emptyTitle": "제안 없음",
"emptyDescription": "All your clusters may already be connected!",
"createNote": "브리지 노트 만들기"
},
"unknownNote": "제목 없음",
"viewSplit": "Split",
"viewGraph": "그래프",
"viewDashboard": "대시보드",
"isolatedClusters": {
"title": "Isolated clusters ({count})",
"badge": "연결 안 됨",
"empty": "모든 클러스터 연결됨!"
},
"focusCluster": {
"title": "클러스터 포커스 활성",
"description": "This thematic cluster gathers {count} complementary notes. Click on a note to access it directly:",
"close": "닫기"
},
"badgeDominant": "Dominant",
"bridgeCount": "브리지",
"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": "재계산 시스템",
"statusSynced": "동기화됨",
"scheduledCron": "예약됨",
"lastSync": "마지막 동기화"
},
"resetFocus": "포커스 해제"
}
}

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": "Semantische inzichten",
"subtitle": "Ontdek de verborgen architectuur van je kennis",
"resync": "Netwerk hersynchroniseren",
"mapping": "In kaart brengen…",
"loading": "Notizen laden…",
"mappingTitle": "Je kennis in kaart brengen…",
"mappingHint": "This can take one to three minutes. You can keep browsing; the page will update when it's done.",
"analyzeNow": "Semantische analyse starten",
"emptyNeedMoreNotes": "Add {count} more notes to unlock semantic clustering (minimum 10).",
"embeddingsHint": "Slechts {indexed} van {total} notities geïndexeerd voor AI.",
"vsGraphHint": "This is not the same as “Link map” (network icon in the sidebar): here, AI groups your notes by theme.",
"openGraphMap": "Linkkaart openen",
"analysisFailed": "Analyse mislukt. Controleer je AI-instellingen.",
"analysisSuccess": "Analyse voltooid: {count} thema's gevonden.",
"analysisNoClusters": "Nog geen thema's gedetecteerd.",
"staleResults": "Resultaten van de laatste analyse.",
"semanticGraphLegend": "Themoverzicht (niet de linkkaart)",
"fitGraphView": "Weergave aanpassen",
"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": "notities",
"clusterFallback": "Thema {index}",
"unclusteredNotes": "{count} notes not assigned to a theme (hidden from graph).",
"emptyTitle": "Ontdek je kennisclusters",
"emptyDescription": "Click \"Re-sync network\" to analyze your notes and find hidden connections",
"stats": {
"clusters": "Clusters",
"bridgeNotes": "Brugnotities"
},
"clusters": {
"title": "Semantic clusters",
"notesCount": "{count} notes",
"centralNotes": "Central notes",
"emptyCluster": "No notes in this cluster"
},
"bridgeNotes": {
"title": "Powerful bridge notes",
"score": "Score: {score}%",
"empty": "No significant bridge notes yet. Deepen your research to find new connections."
},
"suggestions": {
"title": "Missing links (AI generated)",
"bridging": "Verbindt {clusterA} & {clusterB}",
"emptyTitle": "Geen suggesties",
"emptyDescription": "All your clusters may already be connected!",
"createNote": "Brugnotitie maken"
},
"unknownNote": "Zonder titel",
"viewSplit": "Split",
"viewGraph": "Graaf",
"viewDashboard": "Dashboard",
"isolatedClusters": {
"title": "Isolated clusters ({count})",
"badge": "Niet verbonden",
"empty": "Alle clusters zijn verbonden!"
},
"focusCluster": {
"title": "Clusterfocus actief",
"description": "This thematic cluster gathers {count} complementary notes. Click on a note to access it directly:",
"close": "Sluiten"
},
"badgeDominant": "Dominant",
"bridgeCount": "brug(en)",
"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": "Herberekeningssysteem",
"statusSynced": "Gesynchroniseerd",
"scheduledCron": "Gepland",
"lastSync": "Laatste sync"
},
"resetFocus": "Focus resetten"
}
}

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": "Insighty semantyczne",
"subtitle": "Odkryj ukrytą architekturę swojej wiedzy",
"resync": "Ponowna synchronizacja",
"mapping": "Mapowanie…",
"loading": "Ładowanie notatek…",
"mappingTitle": "Mapowanie Twojej wiedzy…",
"mappingHint": "This can take one to three minutes. You can keep browsing; the page will update when it's done.",
"analyzeNow": "Rozpocznij analizę semantyczną",
"emptyNeedMoreNotes": "Add {count} more notes to unlock semantic clustering (minimum 10).",
"embeddingsHint": "Tylko {indexed} z {total} notatek zaindeksowanych dla AI.",
"vsGraphHint": "This is not the same as “Link map” (network icon in the sidebar): here, AI groups your notes by theme.",
"openGraphMap": "Otwórz mapę linków",
"analysisFailed": "Analiza nieudana. Sprawdź ustawienia AI.",
"analysisSuccess": "Analiza zakończona: wykryto {count} tematów.",
"analysisNoClusters": "Nie wykryto jeszcze tematów.",
"staleResults": "Wyniki ostatniej analizy.",
"semanticGraphLegend": "Przegląd tematów (nie mapa linków)",
"fitGraphView": "Dopasuj widok",
"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": "notatki",
"clusterFallback": "Temat {index}",
"unclusteredNotes": "{count} notes not assigned to a theme (hidden from graph).",
"emptyTitle": "Odkryj swoje klastry wiedzy",
"emptyDescription": "Click \"Re-sync network\" to analyze your notes and find hidden connections",
"stats": {
"clusters": "Klastry",
"bridgeNotes": "Notatki-pomosty"
},
"clusters": {
"title": "Semantic clusters",
"notesCount": "{count} notes",
"centralNotes": "Central notes",
"emptyCluster": "No notes in this cluster"
},
"bridgeNotes": {
"title": "Powerful bridge notes",
"score": "Wynik: {score}%",
"empty": "No significant bridge notes yet. Deepen your research to find new connections."
},
"suggestions": {
"title": "Missing links (AI generated)",
"bridging": "Łączy {clusterA} & {clusterB}",
"emptyTitle": "Brak sugestii",
"emptyDescription": "All your clusters may already be connected!",
"createNote": "Utwórz notatkę-pomost"
},
"unknownNote": "Bez tytułu",
"viewSplit": "Split",
"viewGraph": "Graf",
"viewDashboard": "Panel",
"isolatedClusters": {
"title": "Isolated clusters ({count})",
"badge": "Niepowiązany",
"empty": "Wszystkie klastry są połączone!"
},
"focusCluster": {
"title": "Fokus klastra aktywny",
"description": "This thematic cluster gathers {count} complementary notes. Click on a note to access it directly:",
"close": "Zamknij"
},
"badgeDominant": "Dominant",
"bridgeCount": "most(ów)",
"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": "System przeliczania",
"statusSynced": "Zsynchronizowano",
"scheduledCron": "Zaplanowano",
"lastSync": "Ostatnia sync"
},
"resetFocus": "Resetuj fokus"
}
}

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"
}
}

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": "Семантические инсайты",
"subtitle": "Откройте скрытую архитектуру вашего знания",
"resync": "Пересинхронизировать",
"mapping": "Картирование…",
"loading": "Загрузка заметок…",
"mappingTitle": "Картирование вашего знания…",
"mappingHint": "This can take one to three minutes. You can keep browsing; the page will update when it's done.",
"analyzeNow": "Запустить семантический анализ",
"emptyNeedMoreNotes": "Add {count} more notes to unlock semantic clustering (minimum 10).",
"embeddingsHint": "Только {indexed} из {total} заметок индексированы для ИИ.",
"vsGraphHint": "This is not the same as “Link map” (network icon in the sidebar): here, AI groups your notes by theme.",
"openGraphMap": "Открыть карту связей",
"analysisFailed": "Анализ не удался. Проверьте настройки ИИ.",
"analysisSuccess": "Анализ завершён: обнаружено {count} тем.",
"analysisNoClusters": "Темы пока не обнаружены.",
"staleResults": "Результаты последнего анализа.",
"semanticGraphLegend": "Обзор тем (не карта связей)",
"fitGraphView": "Уместить в экран",
"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": "заметки",
"clusterFallback": "Тема {index}",
"unclusteredNotes": "{count} notes not assigned to a theme (hidden from graph).",
"emptyTitle": "Откройте свои кластеры знания",
"emptyDescription": "Click \"Re-sync network\" to analyze your notes and find hidden connections",
"stats": {
"clusters": "Кластеры",
"bridgeNotes": "Мосты-заметки"
},
"clusters": {
"title": "Semantic clusters",
"notesCount": "{count} notes",
"centralNotes": "Central notes",
"emptyCluster": "No notes in this cluster"
},
"bridgeNotes": {
"title": "Powerful bridge notes",
"score": "Оценка: {score}%",
"empty": "No significant bridge notes yet. Deepen your research to find new connections."
},
"suggestions": {
"title": "Missing links (AI generated)",
"bridging": "Связать {clusterA} & {clusterB}",
"emptyTitle": "Нет предложений",
"emptyDescription": "All your clusters may already be connected!",
"createNote": "Создать мост-заметку"
},
"unknownNote": "Без названия",
"viewSplit": "Split",
"viewGraph": "Граф",
"viewDashboard": "Панель",
"isolatedClusters": {
"title": "Isolated clusters ({count})",
"badge": "Не связан",
"empty": "Все кластеры связаны!"
},
"focusCluster": {
"title": "Фокус на кластере",
"description": "This thematic cluster gathers {count} complementary notes. Click on a note to access it directly:",
"close": "Закрыть"
},
"badgeDominant": "Dominant",
"bridgeCount": "мост(ов)",
"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": "Система пересчёта",
"statusSynced": "Синхронизировано",
"scheduledCron": "Запланировано",
"lastSync": "Последняя sync"
},
"resetFocus": "Сбросить фокус"
}
}

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": "语义洞察",
"subtitle": "发现知识背后的隐藏架构",
"resync": "重新同步网络",
"mapping": "映射中…",
"loading": "加载笔记中…",
"mappingTitle": "正在映射您的知识…",
"mappingHint": "This can take one to three minutes. You can keep browsing; the page will update when it's done.",
"analyzeNow": "开始语义分析",
"emptyNeedMoreNotes": "Add {count} more notes to unlock semantic clustering (minimum 10).",
"embeddingsHint": "仅{indexed}/{total}笔记被AI索引。",
"vsGraphHint": "This is not the same as “Link map” (network icon in the sidebar): here, AI groups your notes by theme.",
"openGraphMap": "打开链接地图",
"analysisFailed": "分析失败。请检查AI设置。",
"analysisSuccess": "分析完成:检测到{count}个主题。",
"analysisNoClusters": "尚未检测到主题。",
"staleResults": "显示上次分析的结果。",
"semanticGraphLegend": "主题概览(非链接地图)",
"fitGraphView": "适应视图",
"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": "笔记",
"clusterFallback": "主题 {index}",
"unclusteredNotes": "{count} notes not assigned to a theme (hidden from graph).",
"emptyTitle": "发现您的知识集群",
"emptyDescription": "Click \"Re-sync network\" to analyze your notes and find hidden connections",
"stats": {
"clusters": "集群",
"bridgeNotes": "桥梁笔记"
},
"clusters": {
"title": "Semantic clusters",
"notesCount": "{count} notes",
"centralNotes": "Central notes",
"emptyCluster": "No notes in this cluster"
},
"bridgeNotes": {
"title": "Powerful bridge notes",
"score": "分数:{score}%",
"empty": "No significant bridge notes yet. Deepen your research to find new connections."
},
"suggestions": {
"title": "Missing links (AI generated)",
"bridging": "连接 {clusterA} 和 {clusterB}",
"emptyTitle": "暂无建议",
"emptyDescription": "All your clusters may already be connected!",
"createNote": "创建桥梁笔记"
},
"unknownNote": "无标题",
"viewSplit": "Split",
"viewGraph": "图谱",
"viewDashboard": "仪表板",
"isolatedClusters": {
"title": "Isolated clusters ({count})",
"badge": "未连接",
"empty": "所有集群已互联!"
},
"focusCluster": {
"title": "集群焦点已激活",
"description": "This thematic cluster gathers {count} complementary notes. Click on a note to access it directly:",
"close": "关闭"
},
"badgeDominant": "Dominant",
"bridgeCount": "桥梁",
"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": "重算系统",
"statusSynced": "已同步",
"scheduledCron": "已计划",
"lastSync": "上次同步"
},
"resetFocus": "重置焦点"
}
}

11
skills-lock.json Normal file
View File

@@ -0,0 +1,11 @@
{
"version": 1,
"skills": {
"find-skills": {
"source": "vercel-labs/skills",
"sourceType": "github",
"skillPath": "skills/find-skills/SKILL.md",
"computedHash": "781bd6d3f9b19f8c9af6b53d8d0e4876d0183841b565db34ca7092ffa412d111"
}
}
}