feat: publication IA (magazine/brief/essay) + fixes critique
Publication IA: - 4 templates (magazine, brief, essay, simple) avec CSS riche - Rewrite IA (article/exercises/tutorial/reference/mixed) - Modération avec timeout 12s + fallback safe - Quotas publish_enhance par tier (basic=2, pro=15, business=100) - Détection contenu stale (hash) - Migration DB publishedContent/publishedTemplate/publishedSourceHash Fixes: - cheerio v1.2: Element -> AnyNode (domhandler), decodeEntities cast - _isShared ajouté au type Note (champ virtuel serveur) - callout colors PDF export: extraction fonction pure testable - admin/published: guard note.userId null - Cmd+S fonctionne en mode dialog (pas seulement fullPage) i18n: - 23 clés publish* traduites dans les 15 locales - Extension Web Clipper: 13 locales mise à jour Tests: - callout-colors.test.ts (6 tests) - note-visible-in-view.test.ts (5 tests) - entitlements.test.ts + byok-entitlements.test.ts: mock usageLog + unstubAllEnvs - 199/199 tests passent Tracker: user-stories.md sync avec sprint-status.yaml
This commit is contained in:
@@ -575,7 +575,7 @@
|
||||
"noNoteId": "No note ID"
|
||||
},
|
||||
"openAssistant": "AI-assistent openen",
|
||||
"poweredByMomento": "Aangedreven door Momento AI",
|
||||
"poweredByMomento": "Aangedreven door Memento AI",
|
||||
"welcomeMsg": "Hallo! Ik ben je AI-assistent. Hoe kan ik je vandaag helpen met je notities? Ik kan de toon verfijnen, berichten uitbreiden of content samenvatten.",
|
||||
"summaryLast5": "Samenvatting van je laatste 5 notities",
|
||||
"analyzingProgress": "Analyseren...",
|
||||
@@ -2184,7 +2184,30 @@
|
||||
"importMarkdown": "Markdown importeren",
|
||||
"markdownExportSuccess": "Notitie geëxporteerd als Markdown",
|
||||
"markdownExportError": "Exporteren van notitie mislukt",
|
||||
"markdownImportSuccess": "Markdown succesvol geïmporteerd"
|
||||
"markdownImportSuccess": "Markdown succesvol geïmporteerd",
|
||||
"publishTitle": "Openbare publicatie",
|
||||
"publishDesc": "Publiceer dit notitie op een openbare URL. Iedereen met de link kan het lezen.",
|
||||
"publish": "Publiceren",
|
||||
"publishSuccess": "Notitie gepubliceerd!",
|
||||
"publishLive": "Live",
|
||||
"unpublish": "Depubliceren",
|
||||
"unpublishSuccess": "Notitie gedepublicerd",
|
||||
"publishBlocked": "Publicatie geweigerd",
|
||||
"publishSimple": "Zo publiceren",
|
||||
"publishSimpleHint": "Gratis — je notitie-inhoud zoals hij is",
|
||||
"publishWithAi": "Met AI publiceren",
|
||||
"publishWithAiHint": "Verbeterde lay-out · {count} credits over",
|
||||
"publishWithAiLocked": "Beschikbaar in Pro-plan",
|
||||
"publishWithAiGenerating": "Lay-out genereren…",
|
||||
"publishTemplateMagazine": "Magazineartikel",
|
||||
"publishTemplateBrief": "Expert-briefing",
|
||||
"publishTemplateEssay": "Essay",
|
||||
"publishAiSuccess": "AI-verrijkte pagina gepubliceerd!",
|
||||
"publishRewriteLabel": "Herschrijven voor het web",
|
||||
"publishRewriteOnHint": "Structureert je editorblokken (oefeningen, uitklapsecties, kaderteksten) voor het web — AI schrijft alleen de introductie",
|
||||
"publishRewriteOffHint": "Je originele tekst blijft behouden; AI voegt alleen redactionele omlijsting toe",
|
||||
"copyPublicLink": "Link kopiëren",
|
||||
"openPublicPage": "Openbare pagina openen"
|
||||
},
|
||||
"brainstorm": {
|
||||
"title": "Waves of Thought",
|
||||
@@ -2492,7 +2515,7 @@
|
||||
"badge": "Aangedreven door kunstmatige intelligentie",
|
||||
"title1": "Uw tweede brein,",
|
||||
"title2": "eindelijk versterkt.",
|
||||
"subtitle": "Momento is meer dan een notitie-app. Het is een intelligent ecosysteem dat uw ideeën in realtime verbindt, analyseert en ontwikkelt met 6 soorten AI-agents en geavanceerde semantische zoekfunctie.",
|
||||
"subtitle": "Memento is meer dan een notitie-app. Het is een intelligent ecosysteem dat uw ideeën in realtime verbindt, analyseert en ontwikkelt met 6 soorten AI-agents en geavanceerde semantische zoekfunctie.",
|
||||
"cta": "Nu registreren",
|
||||
"secondary": "Bekijk functies",
|
||||
"memoryEcho": "Memory Echo",
|
||||
@@ -2504,7 +2527,7 @@
|
||||
"label": "AI-mogelijkheden",
|
||||
"title": "Vloeiende intelligentie,",
|
||||
"title2": "verweven in elk woord.",
|
||||
"desc": "Momento orkestreert uw ideeën via een multi-provider architectuur.",
|
||||
"desc": "Memento orkestreert uw ideeën via een multi-provider architectuur.",
|
||||
"f1Title": "Semantisch zoeken",
|
||||
"f1Desc": "Stop met zoeken op trefwoorden. Vind op concept. Onze hybride Vector + FTS-engine begrijpt de intentie achter uw notities.",
|
||||
"f2Title": "Contextuele RAG-chat",
|
||||
@@ -2590,7 +2613,7 @@
|
||||
"popular": "Meest populair",
|
||||
"basic": {
|
||||
"name": "Basic",
|
||||
"desc": "Ontdek de magie van Momento.",
|
||||
"desc": "Ontdek de magie van Memento.",
|
||||
"cta": "Starten",
|
||||
"feature0": "Max. 100 notities",
|
||||
"feature1": "3 notitieboeken",
|
||||
@@ -2636,7 +2659,7 @@
|
||||
"byok": {
|
||||
"label": "Open cloudtechnologie",
|
||||
"title": "De BYOK-strategie",
|
||||
"desc": "Heeft u al API-sleutels van OpenAI, Anthropic of Google? Koppel ze direct aan Momento. Gebruik AI zonder opgelegde creditlimieten en betaal alleen wat u daadwerkelijk verbruikt bij uw favoriete provider.",
|
||||
"desc": "Heeft u al API-sleutels van OpenAI, Anthropic of Google? Koppel ze direct aan Memento. Gebruik AI zonder opgelegde creditlimieten en betaal alleen wat u daadwerkelijk verbruikt bij uw favoriete provider.",
|
||||
"noLockin": "Geen lock-in",
|
||||
"noLockinDesc": "Wissel provider in 1 klik.",
|
||||
"cost": "Geoptimaliseerde kosten",
|
||||
@@ -2646,8 +2669,8 @@
|
||||
"cta": {
|
||||
"title1": "Klaar om uw",
|
||||
"title2": "volledige potentieel te ontgrendelen?",
|
||||
"desc": "Sluit u aan bij duizenden onderzoekers, ontwerpers en denkers die Momento al gebruiken om hun toekomst te bouwen.",
|
||||
"button": "Momento starten"
|
||||
"desc": "Sluit u aan bij duizenden onderzoekers, ontwerpers en denkers die Memento al gebruiken om hun toekomst te bouwen.",
|
||||
"button": "Memento starten"
|
||||
},
|
||||
"footer": {
|
||||
"desc": "Het AI-versterkte tweede brein. Ontworpen voor creatieve geesten.",
|
||||
@@ -2704,7 +2727,7 @@
|
||||
"necessaryDesc": "These cookies are required to authenticate your session, save your language and theme preferences. They cannot be turned off.",
|
||||
"alwaysOn": "Always On",
|
||||
"analyticsTitle": "Anonymous Analytics",
|
||||
"analyticsDesc": "Help us improve Momento by sending completely anonymous usage statistics. No personal data is ever tracked.",
|
||||
"analyticsDesc": "Help us improve Memento by sending completely anonymous usage statistics. No personal data is ever tracked.",
|
||||
"cancel": "Cancel",
|
||||
"save": "Save Preferences",
|
||||
"saved": "Preferences updated successfully."
|
||||
@@ -2725,10 +2748,10 @@
|
||||
"statusActive": "Actief",
|
||||
"statusInactive": "Niet verleend",
|
||||
"helpAriaLabel": "Wat betekent AI-toestemming?",
|
||||
"helpTooltip": "Momento verkoopt uw gegevens niet. Deze toestemming geldt alleen wanneer u een AI-actie start (titels, tags, chat, herformulering). Zonder toestemming werkt de rest van de app normaal.",
|
||||
"helpTooltip": "Memento verkoopt uw gegevens niet. Deze toestemming geldt alleen wanneer u een AI-actie start (titels, tags, chat, herformulering). Zonder toestemming werkt de rest van de app normaal.",
|
||||
"whatItMeansTitle": "Wat betekent dit?",
|
||||
"inactiveHint": "Zonder toestemming zijn alleen AI-functies uitgeschakeld. U kunt gewoon notities maken, bewerken en organiseren.",
|
||||
"noCommercialUse": "Momento verkoopt of monetariseert uw persoonsgegevens niet.",
|
||||
"noCommercialUse": "Memento verkoopt of monetariseert uw persoonsgegevens niet.",
|
||||
"affectedFeatures": "Betrokken functies: titelsuggesties, tags, chat-assistent, herformulering, Memory Echo, enz.",
|
||||
"dataPortabilityHint": "U kunt al uw gegevens op elk moment exporteren of verwijderen (Instellingen → Gegevens).",
|
||||
"dataPortabilityLink": "Mijn gegevens exporteren",
|
||||
@@ -2782,7 +2805,7 @@
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome_title": "Uw AI-versterkt geheugen",
|
||||
"welcome_subtitle": "Momento onthoudt wat u vergeet.",
|
||||
"welcome_subtitle": "Memento onthoudt wat u vergeet.",
|
||||
"welcome_cta": "Beginnen",
|
||||
"skip": "Overslaan",
|
||||
"step_notes_title": "Uw notities",
|
||||
@@ -2794,7 +2817,7 @@
|
||||
"step_aha_title": "Vind wat u vergeten bent",
|
||||
"step_aha_subtitle": "Stel een vraag. Vind een vergeten notitie.",
|
||||
"step_aha_placeholder": "notities over productiviteit...",
|
||||
"step_aha_cta": "Momento verkennen",
|
||||
"step_aha_cta": "Memento verkennen",
|
||||
"progress": "{current} van {total}",
|
||||
"creating_demo_notes": "Voorbeeldnotities aanmaken...",
|
||||
"demo_notes_ready": "5 voorbeeldnotities aangemaakt!",
|
||||
@@ -2898,4 +2921,4 @@
|
||||
"copyRefNoNote": "Save the note before copying a block reference",
|
||||
"copyRefUnsupported": "This block type cannot be referenced yet"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user