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": "Apri assistente IA",
|
||||
"poweredByMomento": "Offerto da Momento AI",
|
||||
"poweredByMomento": "Offerto da Memento AI",
|
||||
"welcomeMsg": "Ciao! Sono il tuo assistente IA. Come posso aiutarti oggi con le tue note? Posso affinare il tono, espandere i messaggi o riassumere i contenuti.",
|
||||
"summaryLast5": "Riepilogo delle ultime 5 note",
|
||||
"analyzingProgress": "Analisi in corso...",
|
||||
@@ -2184,7 +2184,30 @@
|
||||
"importMarkdown": "Importa Markdown",
|
||||
"markdownExportSuccess": "Nota esportata come Markdown",
|
||||
"markdownExportError": "Esportazione nota fallita",
|
||||
"markdownImportSuccess": "Markdown importato con successo"
|
||||
"markdownImportSuccess": "Markdown importato con successo",
|
||||
"publishTitle": "Pubblicazione pubblica",
|
||||
"publishDesc": "Pubblica questa nota su un URL pubblico. Chiunque con il link potrà leggerla.",
|
||||
"publish": "Pubblica",
|
||||
"publishSuccess": "Nota pubblicata!",
|
||||
"publishLive": "Online",
|
||||
"unpublish": "Annulla pubblicazione",
|
||||
"unpublishSuccess": "Nota non pubblicata",
|
||||
"publishBlocked": "Pubblicazione rifiutata",
|
||||
"publishSimple": "Pubblica così come è",
|
||||
"publishSimpleHint": "Gratis — contenuto della nota invariato",
|
||||
"publishWithAi": "Pubblica con IA",
|
||||
"publishWithAiHint": "Layout migliorato · {count} crediti rimasti",
|
||||
"publishWithAiLocked": "Disponibile nel piano Pro",
|
||||
"publishWithAiGenerating": "Generazione layout…",
|
||||
"publishTemplateMagazine": "Articolo magazine",
|
||||
"publishTemplateBrief": "Briefing esperto",
|
||||
"publishTemplateEssay": "Saggio",
|
||||
"publishAiSuccess": "Pagina migliorata con IA pubblicata!",
|
||||
"publishRewriteLabel": "Riscrivi per il web",
|
||||
"publishRewriteOnHint": "Struttura i tuoi blocchi dell'editor (esercizi, sezioni espandibili, riquadri) per il web — l'IA scrive solo l'introduzione",
|
||||
"publishRewriteOffHint": "Il tuo testo originale viene mantenuto; l'IA aggiunge solo inquadratura editoriale",
|
||||
"copyPublicLink": "Copia link",
|
||||
"openPublicPage": "Apri pagina pubblica"
|
||||
},
|
||||
"brainstorm": {
|
||||
"title": "Waves of Thought",
|
||||
@@ -2492,7 +2515,7 @@
|
||||
"badge": "Potenziato dall'intelligenza artificiale",
|
||||
"title1": "Il tuo secondo cervello,",
|
||||
"title2": "finalmente amplificato.",
|
||||
"subtitle": "Momento è più di un'app per appunti. È un ecosistema intelligente che collega, analizza e sviluppa le tue idee in tempo reale con 6 tipi di agenti IA e ricerca semantica all'avanguardia.",
|
||||
"subtitle": "Memento è più di un'app per appunti. È un ecosistema intelligente che collega, analizza e sviluppa le tue idee in tempo reale con 6 tipi di agenti IA e ricerca semantica all'avanguardia.",
|
||||
"cta": "Registrati ora",
|
||||
"secondary": "Scopri le funzionalità",
|
||||
"memoryEcho": "Memory Echo",
|
||||
@@ -2504,7 +2527,7 @@
|
||||
"label": "Capacità IA",
|
||||
"title": "Intelligenza fluida,",
|
||||
"title2": "intrecciata in ogni parola.",
|
||||
"desc": "Momento orchestra le tue idee attraverso un'architettura multi-provider.",
|
||||
"desc": "Memento orchestra le tue idee attraverso un'architettura multi-provider.",
|
||||
"f1Title": "Ricerca semantica",
|
||||
"f1Desc": "Smetti di cercare per parole chiave. Trova per concetto. Il nostro motore ibrido Vector + FTS comprende l'intento dietro le tue note.",
|
||||
"f2Title": "Chat RAG contestuale",
|
||||
@@ -2590,7 +2613,7 @@
|
||||
"popular": "Più popolare",
|
||||
"basic": {
|
||||
"name": "Basic",
|
||||
"desc": "Scopri la magia di Momento.",
|
||||
"desc": "Scopri la magia di Memento.",
|
||||
"cta": "Inizia",
|
||||
"feature0": "100 note max",
|
||||
"feature1": "3 quaderni",
|
||||
@@ -2636,7 +2659,7 @@
|
||||
"byok": {
|
||||
"label": "Tecnologia cloud aperta",
|
||||
"title": "La strategia BYOK",
|
||||
"desc": "Hai già chiavi API OpenAI, Anthropic o Google? Collegale direttamente a Momento. Usa l'IA senza limiti di credito imposti, pagando solo ciò che consumi dal tuo provider preferito.",
|
||||
"desc": "Hai già chiavi API OpenAI, Anthropic o Google? Collegale direttamente a Memento. Usa l'IA senza limiti di credito imposti, pagando solo ciò che consumi dal tuo provider preferito.",
|
||||
"noLockin": "Nessun lock-in",
|
||||
"noLockinDesc": "Cambia provider in 1 clic.",
|
||||
"cost": "Costi ottimizzati",
|
||||
@@ -2646,8 +2669,8 @@
|
||||
"cta": {
|
||||
"title1": "Pronto a liberare il tuo",
|
||||
"title2": "pieno potenziale?",
|
||||
"desc": "Unisciti a migliaia di ricercatori, designer e pensatori che usano già Momento per costruire il loro futuro.",
|
||||
"button": "Avvia Momento"
|
||||
"desc": "Unisciti a migliaia di ricercatori, designer e pensatori che usano già Memento per costruire il loro futuro.",
|
||||
"button": "Avvia Memento"
|
||||
},
|
||||
"footer": {
|
||||
"desc": "Il secondo cervello amplificato dall'IA. Pensato per menti creative.",
|
||||
@@ -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": "Attivo",
|
||||
"statusInactive": "Non concesso",
|
||||
"helpAriaLabel": "Cosa significa il consenso IA?",
|
||||
"helpTooltip": "Momento non vende i tuoi dati. Questo consenso si applica solo quando attivi un'azione IA (titoli, tag, chat, riformulazione). Senza di esso, il resto dell'app funziona normalmente.",
|
||||
"helpTooltip": "Memento non vende i tuoi dati. Questo consenso si applica solo quando attivi un'azione IA (titoli, tag, chat, riformulazione). Senza di esso, il resto dell'app funziona normalmente.",
|
||||
"whatItMeansTitle": "Cosa significa?",
|
||||
"inactiveHint": "Senza consenso, sono disabilitate solo le funzioni IA. Puoi continuare a creare, modificare e organizzare le note come sempre.",
|
||||
"noCommercialUse": "Momento non vende né monetizza i tuoi dati personali.",
|
||||
"noCommercialUse": "Memento non vende né monetizza i tuoi dati personali.",
|
||||
"affectedFeatures": "Funzioni interessate: suggerimenti titoli, tag, chat assistente, riformulazione, Memory Echo, ecc.",
|
||||
"dataPortabilityHint": "Puoi esportare o eliminare tutti i dati in qualsiasi momento (Impostazioni → Dati).",
|
||||
"dataPortabilityLink": "Esporta i miei dati",
|
||||
@@ -2782,7 +2805,7 @@
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome_title": "La tua memoria potenziata dall'IA",
|
||||
"welcome_subtitle": "Momento ricorda ciò che dimentichi.",
|
||||
"welcome_subtitle": "Memento ricorda ciò che dimentichi.",
|
||||
"welcome_cta": "Inizia",
|
||||
"skip": "Salta",
|
||||
"step_notes_title": "Le tue note",
|
||||
@@ -2794,7 +2817,7 @@
|
||||
"step_aha_title": "Trova ciò che hai dimenticato",
|
||||
"step_aha_subtitle": "Fai una domanda. Trova una nota dimenticata.",
|
||||
"step_aha_placeholder": "note sulla produttività...",
|
||||
"step_aha_cta": "Esplora Momento",
|
||||
"step_aha_cta": "Esplora Memento",
|
||||
"progress": "{current} di {total}",
|
||||
"creating_demo_notes": "Creazione note di esempio...",
|
||||
"demo_notes_ready": "5 note di esempio create!",
|
||||
@@ -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