feat(notes): liens internes, onglet Réseau, living blocks et consentement IA
Some checks failed
CI / Lint, Test & Build (push) Failing after 1m19s
CI / Deploy production (on server) (push) Has been skipped

Rend les liens entre notes visibles et persistants (sync NoteLink au save, auto-save, graphe réseau rafraîchi), ajoute living blocks, Memory Echo, recherche globale, consentement IA explicite et consolide les prototypes design en architectural-grid.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Antigravity
2026-05-24 14:27:29 +00:00
parent 077e665dfc
commit e2672cd2c2
323 changed files with 20670 additions and 42431 deletions

View File

@@ -65,6 +65,7 @@
"freezePinnedNotebook": "Pin notebook sidebar order",
"unfreezePinnedNotebook": "Unpin notebook sidebar order",
"newSubNotebook": "New sub-notebook",
"notebookEmpty": "Empty",
"renameNotebook": "Rename",
"sharedNotebookBadge": "· Shared",
"sortManual": "Custom order",
@@ -139,6 +140,22 @@
"share": "Share",
"showCollaborators": "Show collaborators",
"pinned": "Pinned",
"viewNotes": "Notes",
"viewTasks": "Tasks",
"layoutGridTitle": "Card / grid view",
"layoutListTitle": "Editorial list view",
"layoutTableTitle": "Structured table view",
"tasksHeader": "Notebook tasks",
"tasksSummary": "{count} tasks · {completed} completed",
"tasksEmptyTitle": "No tasks in this notebook",
"tasksEmptyHint": "Add lines like « - [ ] My task » in your notes to see them here.",
"taskFromNote": "Note: {title}",
"openSourceNote": "Open source note",
"tableTitle": "Title",
"tableNotebook": "Notebook",
"tableLabels": "Labels",
"tableTasks": "Tasks",
"tableModified": "Modified",
"others": "Others",
"noNotes": "No notes",
"noNotesFound": "No notes found",
@@ -193,6 +210,7 @@
"loading": "Loading...",
"exportPDF": "Export PDF",
"savedStatus": "Saved",
"saved": "Note saved",
"dirtyStatus": "Modified",
"completedLabel": "Completed",
"notes.emptyNotebook": "Empty notebook",
@@ -274,7 +292,16 @@
"noteDeletedToast": "Note deleted.",
"deleteNoteFailedToast": "Could not delete.",
"documentInfoAria": "Document information",
"noModification": "No changes"
"noModification": "No changes",
"uploading": "Uploading...",
"open": "Open",
"illustrationGenerated": "Illustration generated",
"attachments": "Attachments",
"search": "Search",
"generateIllustration": "Generate illustration",
"saveFailed": "Failed to save",
"createFirst": "Create your first note",
"unarchived": "Unarchived"
},
"pagination": {
"previous": "←",
@@ -314,7 +341,9 @@
"count": "{count} labels",
"noLabels": "No labels",
"confirmDeleteShort": "Confirm?",
"labelRemoved": "Label \"{label}\" removed"
"labelRemoved": "Label \"{label}\" removed",
"filterByTags": "Filter by tags",
"searchTags": "Search tags"
},
"search": {
"placeholder": "Search",
@@ -431,7 +460,10 @@
"create": "Create",
"creating": "Creating labels...",
"notesCount": "{count} notes",
"typeForSuggestions": "Type content to get label suggestions..."
"typeForSuggestions": "Type content to get label suggestions...",
"noNotebook": "No notebook selected",
"noSuggestions": "No suggestions",
"regenerate": "Regenerate"
},
"batchOrganization": {
"title": "Organize with AI",
@@ -446,7 +478,10 @@
"noNotesSelected": "No notes selected",
"applyFailed": "Failed to apply organization plan",
"selectAllIn": "Select all notes in {notebook}",
"selectNote": "Select note: {title}"
"selectNote": "Select note: {title}",
"notesToOrganize": "Notes to organize",
"selected": "Selected",
"unorganized": "Unorganized"
},
"notebookSummary": {
"regenerate": "Regenerate Summary",
@@ -527,7 +562,9 @@
"fixGrammar": "Fix Grammar",
"translate": "Translate",
"explain": "Explain",
"toRichText": "Convert to rich text"
"toRichText": "Convert to rich text",
"generateChart": "Generate chart",
"customLang": "Custom language"
},
"generate": {
"slides": "Generate Slides",
@@ -568,7 +605,8 @@
"insertDiagramInNote": "Embed PNG in current note",
"diagramImageAlt": "AI Generated Diagram",
"insertedInNote": "Diagram inserted in note",
"insertExportError": "Error exporting/uploading diagram"
"insertExportError": "Error exporting/uploading diagram",
"noNoteId": "No note ID"
},
"openAssistant": "Open AI Note",
"poweredByMomento": "Powered by Momento AI",
@@ -666,7 +704,16 @@
"inlineSummaryMarkdown": "**Summary:**",
"networkErrorShort": "Network error.",
"featureLocked": "This feature requires the PRO plan or higher.",
"quotaExceeded": "Monthly limit reached. Resets next month."
"quotaExceeded": "Monthly limit reached. Resets next month.",
"noHistory": "No history",
"webSearchDisabled": "Web search disabled",
"webSearchEnabled": "Web search enabled",
"result": {
"apply": "Apply",
"original": "Original",
"preview": "Preview",
"suggestion": "Suggestion"
}
},
"titleSuggestions": {
"available": "Title suggestions",
@@ -718,24 +765,54 @@
"error": "Failed to load connections"
},
"comparison": {
"title": "💡 Note Comparison",
"title": "Side-by-side comparison",
"subtitle": "Review linked notes to decide what to keep or merge.",
"similarityInfo": "These notes are connected by {similarity}% similarity",
"highSimilarityInsight": "These notes deal with the same topic with a high degree of similarity. They could be merged or consolidated.",
"stayOnCurrentNote": "You stay on your current note. Close this window to keep writing.",
"untitled": "Untitled",
"clickToView": "Click to view note",
"helpfulQuestion": "Is this comparison helpful?",
"helpful": "Helpful",
"notHelpful": "Not Helpful"
},
"preview": {
"subtitle": "Preview of the linked note — you stay on the one you're editing.",
"loadError": "Could not load this note's content."
},
"editorSection": {
"title": "Connected Notes ({count})",
"loading": "Loading...",
"title": "Connected notes ({count})",
"loading": "Loading",
"view": "View",
"viewLinkedNote": "View linked note",
"compare": "Compare",
"merge": "Merge",
"compareAll": "Compare all",
"mergeAll": "Merge all",
"close": "Close"
"close": "Close",
"backToNote": "Back to my note",
"openInEditor": "Open in editor",
"badgeLabel": "Memory Echo",
"affinityBadge": "{percentage}% semantic affinity",
"intro": "Momento found another note on the same topic. Preview it, insert a citation, or merge — without leaving this one.",
"detectedIn": "Passage found in: {title}",
"helpToggle": "How does this work?",
"helpTitle": "What can you do with this connection?",
"helpView": "Shows the other note in a window. You stay on your current note.",
"helpCite": "Inserts a passage from the other note here, with a link to the source.",
"helpCompare": "Shows both notes side by side in a window.",
"helpMerge": "Combines both notes into one.",
"embedPassage": "Citation",
"embedding": "Inserting…",
"embedSuccess": "Citation inserted in your note",
"citationSuccess": "Citation inserted with link to source",
"embedFallback": "Open the source note, make a small edit, then try again.",
"embedFailed": "Could not insert the citation right now",
"showAll": "View all connections ({count})",
"hideAll": "Hide extra connections ({count})",
"retroTitle": "Notes that cite this content",
"retroDescription": "This passage is quoted in {count} other note(s):",
"consentRequired": "Enable AI processing in Settings → AI to see semantic connections for this note."
},
"fusion": {
"title": "🔗 Intelligent Fusion",
@@ -784,7 +861,8 @@
"brainstormInvite": "Brainstorm",
"brainstormJoined": "Brainstorm",
"systemNotification": "System",
"downloadFailed": "Download failed"
"downloadFailed": "Download failed",
"brainstormShared": "Brainstorm shared"
},
"nav": {
"home": "Home",
@@ -984,7 +1062,8 @@
"testConnection": "Test Connection",
"clean": "Clean",
"indexAll": "Index All",
"preview": "Preview"
"preview": "Preview",
"delete": "Delete"
},
"colors": {
"default": "Default",
@@ -1004,7 +1083,8 @@
"reminderDate": "Reminder date",
"reminderTime": "Reminder time",
"save": "Set reminder",
"cancel": "Cancel"
"cancel": "Cancel",
"changeReminder": "Change reminder"
},
"reminders": {
"title": "Reminders",
@@ -1056,7 +1136,14 @@
"createSubnotebook": "Add sub-notebook",
"createSubNotebook": "Add sub-notebook",
"rename": "Rename",
"confirmRename": "Rename"
"confirmRename": "Rename",
"moveToTrash": "Move to trash",
"noParent": "No parent",
"parentNotebook": "Parent notebook",
"under": "Under",
"trashCascadeWarning": "This will also delete all notes and sub-notebooks.",
"trashConfirm": "Move this notebook to trash?",
"trashTitle": "Move to trash"
},
"notebookSuggestion": {
"title": "Move to {name}?",
@@ -1065,7 +1152,8 @@
"dismiss": "Dismiss",
"dismissIn": "Dismiss (closes in {timeLeft}s)",
"moveToNotebook": "Move to notebook",
"generalNotes": "General Notes"
"generalNotes": "General Notes",
"movedToNotebook": "Moved to notebook"
},
"admin": {
"title": "Admin Dashboard",
@@ -1475,8 +1563,17 @@
"title": "Cleanup Orphaned Data",
"description": "Remove labels and connections that reference deleted notes.",
"button": "Cleanup",
"failed": "Error during cleanup"
}
"failed": "Error during cleanup",
"success": "Cleanup successful"
},
"zipExport": {
"title": "GDPR Workspace Export (ZIP)",
"description": "Download all notes, attachments, and brainstorm canvases as standard Markdown in a ZIP archive.",
"button": "Export ZIP",
"success": "Workspace exported successfully",
"failed": "Export failed"
},
"zipExporting": "Exporting..."
},
"appearance": {
"title": "Appearance",
@@ -1486,6 +1583,7 @@
"notesViewTabs": "Tabs (OneNote-style)",
"notesViewMasonry": "Cards (grid)",
"notesViewList": "List (magazine)",
"notesViewTable": "Structured table",
"selectTheme": "Choose your preferred theme",
"fontFamilyLabel": "Font",
"fontFamilyDescription": "Choose the application's font",
@@ -1500,6 +1598,9 @@
},
"usageMeter": {
"packName": "AI Discovery Pack",
"packPro": "Pro Pack",
"packBusiness": "Business Pack",
"packEnterprise": "Enterprise Pack",
"featureSearch": "Search",
"featureTags": "Tags",
"featureTitles": "Titles",
@@ -1519,6 +1620,8 @@
"featureReformulate": "Reformulations",
"featureChat": "AI Messages",
"featureBrainstormCreate": "Brainstorm creations",
"featureBrainstormSessions": "Brainstorm sessions",
"featureCharts": "AI Charts",
"featureBrainstormExpand": "Brainstorm expansions",
"featureBrainstormEnrich": "Brainstorm enrichments"
},
@@ -1573,7 +1676,8 @@
"daysRemaining": "DAYS LEFT",
"notebookContentPreserved": "Notebook content preserved",
"notebookRestoreHint": "Restoring a notebook also restores all its notes.",
"filterAll": "All"
"filterAll": "All",
"autoDelete30": "Auto-delete after 30 days"
},
"footer": {
"privacy": "Privacy",
@@ -1633,14 +1737,19 @@
"documentInfo": {
"tabInfo": "Info",
"tabVersions": "Versions",
"tabNetwork": "Network",
"wordsLabel": "Words",
"charactersLabel": "Characters",
"linesLabel": "Lines",
"equationsLabel": "Equations",
"imagesLabel": "Images",
"notebookLabel": "Notebook",
"typeLabel": "Type",
"createdLabel": "Created",
"modifiedLabel": "Updated",
"labelsSection": "Labels",
"idLabel": "ID",
"copyId": "Copy note ID",
"historyDisabled": "History is not enabled for this note.",
"enableHistory": "Enable history",
"savedVersions": "Saved versions",
@@ -1654,7 +1763,53 @@
"comparisonMode": "Comparison mode",
"comparisonSubtitle": "Compare versions side by side",
"deleteVersionConfirm": "Delete this version?",
"latestBadge": "Latest"
"latestBadge": "Latest",
"network": {
"graphTitle": "Links around this note",
"intro": "See what connects this note to others: similar notes (AI), links you created yourself, or citations elsewhere.",
"helpToggle": "Understand this panel",
"helpTitle": "How to read this panel",
"helpGraph": "Center: the open note. Around it: linked notes. Violet dots closer to the center are more similar in content. Drag to rearrange, click to open.",
"helpSemantic": "Similar notes: the AI only keeps matches above a threshold. The percentage and distance are scaled from that threshold (0%) to a strongest match (100%).",
"helpWiki": "Links you create: type [[ in a note, pick another note, or write [[Exact title]] then save.",
"helpEmbed": "Citations: other notes quote a passage from this one as a synced citation.",
"empty": "No links yet. Write [[Note title]] in the text to link notes, or let the AI find similar ones.",
"consentHint": "Enable AI consent in settings to show similar notes detected by the AI.",
"dragHint": "Hover for details. Drag to reposition. Click to open the note.",
"clickToOpen": "Open in a new tab",
"legendCenter": "This note",
"legendSemantic": "Similar (AI)",
"legendWiki": "Link to a note",
"semanticShort": "Similar",
"inboundShort": "Inbound",
"outboundShort": "Outbound",
"embedShort": "Citation",
"mentionShort": "Mention",
"affinityLine": "Similarity: {percentage}%",
"semanticListTitle": "Similar notes",
"semanticListHelp": "These notes cover related topics. The percentage is relative proximity (0% = minimum detection threshold, 100% = very strong match).",
"showMoreSemantic": "Show {count} more similar note(s)",
"showLess": "Show less",
"embedListTitle": "Notes citing this content",
"embedSnippetOne": "Quotes a passage from this note",
"wikiSectionTitle": "Links to other notes",
"inboundHelp": "Notes that link to this one using [[…]] in their text.",
"outboundHelp": "Notes this one links to using [[…]] in its text.",
"unlinkedListTitle": "Unlinked mentions",
"unlinkedHelp": "[[Bracketed]] text found here, but with no matching note or saved link.",
"noWikiYet": "No links to other notes yet.",
"unknownNotebook": "Notebook",
"untitled": "Untitled",
"unlinkedLabel": "Unlinked",
"moreNodes": "+{count} on map",
"inboundList": "To this note ({count})",
"outboundList": "From this note ({count})",
"unlinkedList": "Unlinked mentions ({count})",
"noInbound": "No inbound wiki links point to this note.",
"noOutbound": "This note does not link to other notes yet.",
"refBadge": "In",
"toBadge": "Out"
}
},
"languages": {
"targets": {
@@ -2058,7 +2213,8 @@
"slideTheme": "Choose a color palette for the presentation. Automatic lets the AI decide.",
"slideStyle": "Visual style affects corner radius, spacing, and information density."
}
}
},
"intelligenceOS": "Intelligence OS"
},
"chat": {
"title": "AI Chat",
@@ -2175,6 +2331,12 @@
"imageModalInvalidUrl": "Please enter a valid URL",
"imageModalLoadFailed": "Failed to load image",
"linkPlaceholder": "Paste or type a link...",
"noteLinkPickerTitle": "Link to another note",
"noteLinkPickerHint": "Pick a note. Momento inserts [[Title]] in the text and creates the link when you save.",
"noteLinkPickerSearch": "Search notes…",
"noteLinkPickerEmpty": "No notes found. Check the title or create the target note first.",
"slashNoteLink": "Link to a note",
"slashNoteLinkDesc": "Create a link to another note ([[…]])",
"bold": "Bold",
"italic": "Italic",
"underline": "Underline",
@@ -2448,7 +2610,28 @@
"enterpriseFeature2": "SSO / SAML",
"enterpriseFeature3": "Dedicated support",
"enterpriseFeature4": "Custom invoicing",
"enterpriseFeature5": "Guaranteed SLA"
"enterpriseFeature5": "Guaranteed SLA",
"subtitle": "Choose the plan that suits you",
"freeDescription": "To discover Memento",
"freeF1": "30 semantic searches",
"freeF2": "15 auto tags",
"freeF3": "5 auto titles",
"freeF4": "100 notes",
"freeF5": "3 notebooks",
"freePlanDesc": "Perfect to discover Memento",
"freePrice": "Free",
"proDescription": "For consultants and freelancers",
"proFeature5": "50 reformulations/month",
"proFeature6": "50 AI messages/month",
"proCta": "Upgrade to Pro",
"businessFeature5": "500 reformulations/month",
"businessFeature6": "500 AI messages/month",
"businessCta": "Upgrade to Business",
"recommended": "Recommended",
"instantActivation": "Instant activation",
"secureDesc": "Secure payments by Stripe",
"secureTransactions": "Secure transactions",
"satisfactionGuarantee": "30-day satisfaction guarantee"
},
"landing": {
"nav": {
@@ -2602,7 +2785,8 @@
"feature3": "Audit Logs & SLA",
"feature4": "Dedicated support",
"feature5": "Live onboarding"
}
},
"basicPrice": "Free"
},
"byok": {
"label": "Open Cloud Technology",
@@ -2702,6 +2886,34 @@
"cancel": "Cancel",
"save": "Save Preferences",
"saved": "Preferences updated successfully."
},
"ai": {
"modalTitle": "AI Processing Consent Required",
"modalDescription": "To analyze your notes, PDFs, or brainstorm sessions, Memento securely transmits this data to third-party AI APIs (OpenAI, Gemini, DeepSeek). We enforce a strict zero-data-retention policy. By accepting, you authorize this processing.",
"zeroRetentionTitle": "Zero Data Retention",
"zeroRetentionDesc": "All outbound requests enforce zero-data-retention flags to safeguard your intellectual property.",
"rememberMe": "Remember my choice (do not ask again)",
"acceptButton": "Approve and continue",
"rejectButton": "Reject",
"aborted": "AI processing cancelled (consent rejected).",
"revocationTitle": "GDPR AI Processing Consent",
"revocationDescription": "Optional permission to send note content to third-party AI providers when you explicitly use AI features.",
"revokeButton": "Revoke Consent",
"grantButton": "Grant consent",
"statusActive": "Active",
"statusInactive": "Not granted",
"helpAriaLabel": "What does AI consent mean?",
"helpTooltip": "Momento does not sell your data. This consent only applies when you trigger an AI action (titles, tags, chat, reformulation). Without it, the rest of the app works normally.",
"whatItMeansTitle": "What does this mean?",
"inactiveHint": "Without consent, only AI-powered features are disabled. You can still create, edit, and organize notes as usual.",
"noCommercialUse": "Momento does not sell or monetize your personal data.",
"affectedFeatures": "AI features affected: title suggestions, tags, assistant chat, reformulation, Memory Echo, and similar tools.",
"dataPortabilityHint": "You can export or delete all your data at any time (Settings → Data).",
"dataPortabilityLink": "Export my data",
"revoked": "Consent not granted",
"revokedToast": "AI processing consent successfully revoked.",
"complianceBadge": "GDPR compliance",
"auditFailed": "Could not record your consent. Please try again."
}
},
"account": {
@@ -2726,5 +2938,24 @@
"successRedirect": "Your account has been successfully deleted.",
"errorFailed": "Deletion failed. Please try again."
}
},
"attachments": {
"title": "Attachments",
"addToNote": "Add to note",
"analyzing": "Analyzing...",
"askPlaceholder": "Ask a question about this document...",
"askQuestions": "Ask questions",
"deleted": "Attachment deleted",
"docExpert": "Document expert",
"docQaWelcome": "Ask questions about this document",
"maxSize": "Max size",
"onlyPdf": "PDF only",
"processingFailed": "Processing failed",
"remove": "Remove",
"thinking": "Thinking...",
"uploaded": "Uploaded",
"uploadError": "Upload error",
"uploadFailed": "Upload failed",
"uploading": "Uploading..."
}
}
}