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": "Открыть ИИ-ассистент",
|
||||
"poweredByMomento": "На базе Momento AI",
|
||||
"poweredByMomento": "На базе Memento AI",
|
||||
"welcomeMsg": "Привет! Я ваш ИИ-ассистент. Чем могу помочь с заметками? Могу уточнить стиль, развернуть мысль или сделать выжимку.",
|
||||
"summaryLast5": "Обзор последних 5 заметок",
|
||||
"analyzingProgress": "Анализ...",
|
||||
@@ -2184,7 +2184,30 @@
|
||||
"importMarkdown": "Импорт Markdown",
|
||||
"markdownExportSuccess": "Заметка экспортирована в Markdown",
|
||||
"markdownExportError": "Не удалось экспортировать заметку",
|
||||
"markdownImportSuccess": "Markdown успешно импортирован"
|
||||
"markdownImportSuccess": "Markdown успешно импортирован",
|
||||
"publishTitle": "Публикация в сети",
|
||||
"publishDesc": "Опубликуйте эту заметку по публичному адресу. Любой, у кого есть ссылка, сможет её прочитать.",
|
||||
"publish": "Опубликовать",
|
||||
"publishSuccess": "Заметка опубликована!",
|
||||
"publishLive": "Опубликовано",
|
||||
"unpublish": "Снять с публикации",
|
||||
"unpublishSuccess": "Публикация отменена",
|
||||
"publishBlocked": "Публикация отклонена",
|
||||
"publishSimple": "Опубликовать как есть",
|
||||
"publishSimpleHint": "Бесплатно — содержимое заметки без изменений",
|
||||
"publishWithAi": "Опубликовать с ИИ",
|
||||
"publishWithAiHint": "Улучшенная вёрстка · осталось {count} кредитов",
|
||||
"publishWithAiLocked": "Доступно в тарифе Pro",
|
||||
"publishWithAiGenerating": "Создание вёрстки…",
|
||||
"publishTemplateMagazine": "Журнальная статья",
|
||||
"publishTemplateBrief": "Экспертная сводка",
|
||||
"publishTemplateEssay": "Эссе",
|
||||
"publishAiSuccess": "Страница с ИИ-улучшением опубликована!",
|
||||
"publishRewriteLabel": "Переписать для интернета",
|
||||
"publishRewriteOnHint": "Структурирует блоки вашего редактора (упражнения, раскрывающиеся секции, рамки) для интернета — ИИ пишет только введение",
|
||||
"publishRewriteOffHint": "Ваш исходный текст сохраняется; ИИ лишь добавляет редакционное оформление",
|
||||
"copyPublicLink": "Копировать ссылку",
|
||||
"openPublicPage": "Открыть публичную страницу"
|
||||
},
|
||||
"brainstorm": {
|
||||
"title": "Waves of Thought",
|
||||
@@ -2492,7 +2515,7 @@
|
||||
"badge": "На базе искусственного интеллекта",
|
||||
"title1": "Ваш второй мозг,",
|
||||
"title2": "наконец усиленный.",
|
||||
"subtitle": "Momento — это больше, чем приложение для заметок. Это интеллектуальная экосистема, которая связывает, анализирует и развивает ваши идеи в реальном времени с 6 типами ИИ-агентов и передовым семантическим поиском.",
|
||||
"subtitle": "Memento — это больше, чем приложение для заметок. Это интеллектуальная экосистема, которая связывает, анализирует и развивает ваши идеи в реальном времени с 6 типами ИИ-агентов и передовым семантическим поиском.",
|
||||
"cta": "Зарегистрироваться",
|
||||
"secondary": "Смотреть возможности",
|
||||
"memoryEcho": "Memory Echo",
|
||||
@@ -2504,7 +2527,7 @@
|
||||
"label": "Возможности ИИ",
|
||||
"title": "Плавный интеллект,",
|
||||
"title2": "в каждом слове.",
|
||||
"desc": "Momento управляет вашими идеями через мультипровайдерную архитектуру.",
|
||||
"desc": "Memento управляет вашими идеями через мультипровайдерную архитектуру.",
|
||||
"f1Title": "Семантический поиск",
|
||||
"f1Desc": "Хватит искать по ключевым словам. Ищите по смыслу. Наш гибридный движок Vector + FTS понимает намерение за вашими заметками.",
|
||||
"f2Title": "Контекстный RAG-чат",
|
||||
@@ -2590,7 +2613,7 @@
|
||||
"popular": "Самый популярный",
|
||||
"basic": {
|
||||
"name": "Basic",
|
||||
"desc": "Откройте магию Momento.",
|
||||
"desc": "Откройте магию Memento.",
|
||||
"cta": "Начать",
|
||||
"feature0": "До 100 заметок",
|
||||
"feature1": "3 блокнота",
|
||||
@@ -2636,7 +2659,7 @@
|
||||
"byok": {
|
||||
"label": "Открытая облачная технология",
|
||||
"title": "Стратегия BYOK",
|
||||
"desc": "Уже есть API-ключи OpenAI, Anthropic или Google? Подключите их напрямую к Momento. Используйте ИИ без навязанных лимитов кредитов, платя только за фактическое потребление у любимого провайдера.",
|
||||
"desc": "Уже есть API-ключи OpenAI, Anthropic или Google? Подключите их напрямую к Memento. Используйте ИИ без навязанных лимитов кредитов, платя только за фактическое потребление у любимого провайдера.",
|
||||
"noLockin": "Без lock-in",
|
||||
"noLockinDesc": "Смените провайдера в 1 клик.",
|
||||
"cost": "Оптимизированные расходы",
|
||||
@@ -2646,8 +2669,8 @@
|
||||
"cta": {
|
||||
"title1": "Готовы раскрыть свой",
|
||||
"title2": "полный потенциал?",
|
||||
"desc": "Присоединяйтесь к тысячам исследователей, дизайнеров и мыслителей, которые уже строят будущее с Momento.",
|
||||
"button": "Запустить Momento"
|
||||
"desc": "Присоединяйтесь к тысячам исследователей, дизайнеров и мыслителей, которые уже строят будущее с Memento.",
|
||||
"button": "Запустить Memento"
|
||||
},
|
||||
"footer": {
|
||||
"desc": "Второй мозг, усиленный ИИ. Создан для творческих умов.",
|
||||
@@ -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": "Активно",
|
||||
"statusInactive": "Не дано",
|
||||
"helpAriaLabel": "Что означает согласие на ИИ?",
|
||||
"helpTooltip": "Momento не продаёт ваши данные. Согласие нужно только при явном запуске функций ИИ (заголовки, теги, чат, переформулировка). Без него остальное приложение работает как обычно.",
|
||||
"helpTooltip": "Memento не продаёт ваши данные. Согласие нужно только при явном запуске функций ИИ (заголовки, теги, чат, переформулировка). Без него остальное приложение работает как обычно.",
|
||||
"whatItMeansTitle": "Что это значит?",
|
||||
"inactiveHint": "Без согласия отключены только функции ИИ. Создавать, редактировать и организовывать заметки можно как обычно.",
|
||||
"noCommercialUse": "Momento не продаёт и не монетизирует ваши персональные данные.",
|
||||
"noCommercialUse": "Memento не продаёт и не монетизирует ваши персональные данные.",
|
||||
"affectedFeatures": "Затронутые функции: предложения заголовков, теги, чат-ассистент, переформулировка, Memory Echo и т.д.",
|
||||
"dataPortabilityHint": "Вы можете экспортировать или удалить все данные в любой момент (Настройки → Данные).",
|
||||
"dataPortabilityLink": "Экспортировать мои данные",
|
||||
@@ -2782,7 +2805,7 @@
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome_title": "Ваша память, усиленная ИИ",
|
||||
"welcome_subtitle": "Momento помнит то, что вы забываете.",
|
||||
"welcome_subtitle": "Memento помнит то, что вы забываете.",
|
||||
"welcome_cta": "Начать",
|
||||
"skip": "Пропустить",
|
||||
"step_notes_title": "Ваши заметки",
|
||||
@@ -2794,7 +2817,7 @@
|
||||
"step_aha_title": "Найдите то, что забыли",
|
||||
"step_aha_subtitle": "Задайте вопрос. Найдите забытую заметку.",
|
||||
"step_aha_placeholder": "заметки о продуктивности...",
|
||||
"step_aha_cta": "Исследовать Momento",
|
||||
"step_aha_cta": "Исследовать Memento",
|
||||
"progress": "{current} из {total}",
|
||||
"creating_demo_notes": "Создание примеров заметок...",
|
||||
"demo_notes_ready": "5 примеров заметок создано!",
|
||||
@@ -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