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": "Abrir assistente IA",
|
||||
"poweredByMomento": "Desenvolvido por Momento AI",
|
||||
"poweredByMomento": "Desenvolvido por Memento AI",
|
||||
"welcomeMsg": "Olá! Sou seu assistente de IA. Como posso ajudá-lo com suas notas hoje? Posso refinar o tom, expandir mensagens ou resumir conteúdo.",
|
||||
"summaryLast5": "Resumo das últimas 5 notas",
|
||||
"analyzingProgress": "Analisando...",
|
||||
@@ -2184,7 +2184,30 @@
|
||||
"importMarkdown": "Importar Markdown",
|
||||
"markdownExportSuccess": "Nota exportada como Markdown",
|
||||
"markdownExportError": "Falha ao exportar a nota",
|
||||
"markdownImportSuccess": "Markdown importado com sucesso"
|
||||
"markdownImportSuccess": "Markdown importado com sucesso",
|
||||
"publishTitle": "Publicação pública",
|
||||
"publishDesc": "Publica esta nota num URL público. Qualquer pessoa com o link poderá lê-la.",
|
||||
"publish": "Publicar",
|
||||
"publishSuccess": "Nota publicada!",
|
||||
"publishLive": "No ar",
|
||||
"unpublish": "Cancelar publicação",
|
||||
"unpublishSuccess": "Nota despublicada",
|
||||
"publishBlocked": "Publicação recusada",
|
||||
"publishSimple": "Publicar como está",
|
||||
"publishSimpleHint": "Grátis — conteúdo da nota tal como está",
|
||||
"publishWithAi": "Publicar com IA",
|
||||
"publishWithAiHint": "Layout melhorado · {count} créditos restantes",
|
||||
"publishWithAiLocked": "Disponível no plano Pro",
|
||||
"publishWithAiGenerating": "A gerar layout…",
|
||||
"publishTemplateMagazine": "Artigo de revista",
|
||||
"publishTemplateBrief": "Briefing especialista",
|
||||
"publishTemplateEssay": "Ensaio",
|
||||
"publishAiSuccess": "Página melhorada com IA publicada!",
|
||||
"publishRewriteLabel": "Reescrever para a web",
|
||||
"publishRewriteOnHint": "Estrutura os teus blocos do editor (exercícios, secções expansíveis, quadros) para a web — a IA escreve apenas a introdução",
|
||||
"publishRewriteOffHint": "O teu texto original é mantido; a IA apenas adiciona moldura editorial",
|
||||
"copyPublicLink": "Copiar link",
|
||||
"openPublicPage": "Abrir página pública"
|
||||
},
|
||||
"brainstorm": {
|
||||
"title": "Waves of Thought",
|
||||
@@ -2492,7 +2515,7 @@
|
||||
"badge": "Impulsionado por inteligência artificial",
|
||||
"title1": "O seu segundo cérebro,",
|
||||
"title2": "finalmente amplificado.",
|
||||
"subtitle": "O Momento é mais do que uma app de notas. É um ecossistema inteligente que liga, analisa e desenvolve as suas ideias em tempo real com 6 tipos de agentes IA e pesquisa semântica de ponta.",
|
||||
"subtitle": "O Memento é mais do que uma app de notas. É um ecossistema inteligente que liga, analisa e desenvolve as suas ideias em tempo real com 6 tipos de agentes IA e pesquisa semântica de ponta.",
|
||||
"cta": "Registe-se agora",
|
||||
"secondary": "Ver funcionalidades",
|
||||
"memoryEcho": "Memory Echo",
|
||||
@@ -2504,7 +2527,7 @@
|
||||
"label": "Capacidades IA",
|
||||
"title": "Inteligência fluida,",
|
||||
"title2": "entrelaçada em cada palavra.",
|
||||
"desc": "O Momento orquestra as suas ideias através de uma arquitetura multi-fornecedor.",
|
||||
"desc": "O Memento orquestra as suas ideias através de uma arquitetura multi-fornecedor.",
|
||||
"f1Title": "Pesquisa semântica",
|
||||
"f1Desc": "Deixe de pesquisar por palavras-chave. Encontre por conceito. O nosso motor híbrido Vector + FTS compreende a intenção por trás das suas notas.",
|
||||
"f2Title": "Chat RAG contextual",
|
||||
@@ -2590,7 +2613,7 @@
|
||||
"popular": "Mais popular",
|
||||
"basic": {
|
||||
"name": "Basic",
|
||||
"desc": "Descubra a magia do Momento.",
|
||||
"desc": "Descubra a magia do Memento.",
|
||||
"cta": "Começar",
|
||||
"feature0": "100 notas máx.",
|
||||
"feature1": "3 cadernos",
|
||||
@@ -2636,7 +2659,7 @@
|
||||
"byok": {
|
||||
"label": "Tecnologia cloud aberta",
|
||||
"title": "A estratégia BYOK",
|
||||
"desc": "Já tem chaves API OpenAI, Anthropic ou Google? Ligue-as diretamente ao Momento. Use IA sem limites de crédito impostos, pagando apenas o que consome no seu fornecedor favorito.",
|
||||
"desc": "Já tem chaves API OpenAI, Anthropic ou Google? Ligue-as diretamente ao Memento. Use IA sem limites de crédito impostos, pagando apenas o que consome no seu fornecedor favorito.",
|
||||
"noLockin": "Sem lock-in",
|
||||
"noLockinDesc": "Mude de fornecedor em 1 clique.",
|
||||
"cost": "Custos otimizados",
|
||||
@@ -2646,8 +2669,8 @@
|
||||
"cta": {
|
||||
"title1": "Pronto para libertar o seu",
|
||||
"title2": "pleno potencial?",
|
||||
"desc": "Junte-se a milhares de investigadores, designers e pensadores que já usam o Momento para construir o futuro.",
|
||||
"button": "Lançar Momento"
|
||||
"desc": "Junte-se a milhares de investigadores, designers e pensadores que já usam o Memento para construir o futuro.",
|
||||
"button": "Lançar Memento"
|
||||
},
|
||||
"footer": {
|
||||
"desc": "O segundo cérebro amplificado por IA. Feito para mentes criativas.",
|
||||
@@ -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."
|
||||
@@ -2782,7 +2805,7 @@
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome_title": "Sua memória aumentada por IA",
|
||||
"welcome_subtitle": "Momento lembra o que você esquece.",
|
||||
"welcome_subtitle": "Memento lembra o que você esquece.",
|
||||
"welcome_cta": "Começar",
|
||||
"skip": "Pular",
|
||||
"step_notes_title": "Suas notas",
|
||||
@@ -2794,7 +2817,7 @@
|
||||
"step_aha_title": "Encontre o que você esqueceu",
|
||||
"step_aha_subtitle": "Faça uma pergunta. Encontre uma nota esquecida.",
|
||||
"step_aha_placeholder": "notas sobre produtividade...",
|
||||
"step_aha_cta": "Explorar Momento",
|
||||
"step_aha_cta": "Explorar Memento",
|
||||
"progress": "{current} de {total}",
|
||||
"creating_demo_notes": "Criando notas de exemplo...",
|
||||
"demo_notes_ready": "5 notas de exemplo criadas!",
|
||||
@@ -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