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": "Otwórz asystenta AI",
|
||||
"poweredByMomento": "Napędzany przez Momento AI",
|
||||
"poweredByMomento": "Napędzany przez Memento AI",
|
||||
"welcomeMsg": "Cześć! Jestem twoim asystentem AI. Jak mogę ci dzisiaj pomóc z notatkami? Mogę doprecyzować ton, rozwinąć treść lub podsumować.",
|
||||
"summaryLast5": "Podsumowanie ostatnich 5 notatek",
|
||||
"analyzingProgress": "Analizowanie...",
|
||||
@@ -2184,7 +2184,30 @@
|
||||
"importMarkdown": "Importuj Markdown",
|
||||
"markdownExportSuccess": "Notatka wyeksportowana jako Markdown",
|
||||
"markdownExportError": "Eksport notatki nie powiódł się",
|
||||
"markdownImportSuccess": "Markdown zaimportowany pomyślnie"
|
||||
"markdownImportSuccess": "Markdown zaimportowany pomyślnie",
|
||||
"publishTitle": "Publikacja publiczna",
|
||||
"publishDesc": "Publikuj tę notatkę pod publicznym adresem URL. Każdy, kto ma link, może ją przeczytać.",
|
||||
"publish": "Publikuj",
|
||||
"publishSuccess": "Notatka opublikowana!",
|
||||
"publishLive": "Online",
|
||||
"unpublish": "Cofnij publikację",
|
||||
"unpublishSuccess": "Publikacja wycofana",
|
||||
"publishBlocked": "Publikacja odrzucona",
|
||||
"publishSimple": "Publikuj bez zmian",
|
||||
"publishSimpleHint": "Bezpłatnie — treść notatki bez zmian",
|
||||
"publishWithAi": "Publikuj z AI",
|
||||
"publishWithAiHint": "Ulepszony układ · {count} kreditów pozostało",
|
||||
"publishWithAiLocked": "Dostępne w planie Pro",
|
||||
"publishWithAiGenerating": "Generowanie układu…",
|
||||
"publishTemplateMagazine": "Artykuł magazynowy",
|
||||
"publishTemplateBrief": "Briefing eksperta",
|
||||
"publishTemplateEssay": "Esej",
|
||||
"publishAiSuccess": "Strona wzbogacona o AI opublikowana!",
|
||||
"publishRewriteLabel": "Przepisz na potrzeby sieci",
|
||||
"publishRewriteOnHint": "Strukturyzuje twoje bloki edytora (ćwiczenia, rozwijane sekcje, ramki) na potrzeby internetu — AI pisze tylko wprowadzenie",
|
||||
"publishRewriteOffHint": "Twój oryginalny tekst jest zachowany; AI dodaje tylko ramę redakcyjną",
|
||||
"copyPublicLink": "Kopiuj link",
|
||||
"openPublicPage": "Otwórz stronę publiczną"
|
||||
},
|
||||
"brainstorm": {
|
||||
"title": "Waves of Thought",
|
||||
@@ -2492,7 +2515,7 @@
|
||||
"badge": "Napędzane sztuczną inteligencją",
|
||||
"title1": "Twój drugi mózg,",
|
||||
"title2": "wreszcie wzmocniony.",
|
||||
"subtitle": "Momento to coś więcej niż aplikacja do notatek. To inteligentny ekosystem, który łączy, analizuje i rozwija Twoje pomysły w czasie rzeczywistym dzięki 6 typom agentów AI i zaawansowanemu wyszukiwaniu semantycznemu.",
|
||||
"subtitle": "Memento to coś więcej niż aplikacja do notatek. To inteligentny ekosystem, który łączy, analizuje i rozwija Twoje pomysły w czasie rzeczywistym dzięki 6 typom agentów AI i zaawansowanemu wyszukiwaniu semantycznemu.",
|
||||
"cta": "Zarejestruj się teraz",
|
||||
"secondary": "Zobacz funkcje",
|
||||
"memoryEcho": "Memory Echo",
|
||||
@@ -2504,7 +2527,7 @@
|
||||
"label": "Możliwości AI",
|
||||
"title": "Płynna inteligencja,",
|
||||
"title2": "wpleciona w każde słowo.",
|
||||
"desc": "Momento orkiestruje Twoje pomysły dzięki architekturze multi-provider.",
|
||||
"desc": "Memento orkiestruje Twoje pomysły dzięki architekturze multi-provider.",
|
||||
"f1Title": "Wyszukiwanie semantyczne",
|
||||
"f1Desc": "Koniec z wyszukiwaniem po słowach kluczowych. Szukaj po pojęciu. Nasz hybrydowy silnik Vector + FTS rozumie intencję za Twoimi notatkami.",
|
||||
"f2Title": "Kontekstowy czat RAG",
|
||||
@@ -2590,7 +2613,7 @@
|
||||
"popular": "Najpopularniejszy",
|
||||
"basic": {
|
||||
"name": "Basic",
|
||||
"desc": "Odkryj magię Momento.",
|
||||
"desc": "Odkryj magię Memento.",
|
||||
"cta": "Zacznij",
|
||||
"feature0": "Maks. 100 notatek",
|
||||
"feature1": "3 zeszyty",
|
||||
@@ -2636,7 +2659,7 @@
|
||||
"byok": {
|
||||
"label": "Otwarta technologia chmurowa",
|
||||
"title": "Strategia BYOK",
|
||||
"desc": "Masz już klucze API OpenAI, Anthropic lub Google? Podłącz je bezpośrednio do Momento. Korzystaj z AI bez narzuconych limitów kredytów, płacąc tylko za faktyczne zużycie u ulubionego dostawcy.",
|
||||
"desc": "Masz już klucze API OpenAI, Anthropic lub Google? Podłącz je bezpośrednio do Memento. Korzystaj z AI bez narzuconych limitów kredytów, płacąc tylko za faktyczne zużycie u ulubionego dostawcy.",
|
||||
"noLockin": "Bez lock-in",
|
||||
"noLockinDesc": "Zmień dostawcę jednym kliknięciem.",
|
||||
"cost": "Zoptymalizowane koszty",
|
||||
@@ -2646,8 +2669,8 @@
|
||||
"cta": {
|
||||
"title1": "Gotowy, by uwolnić swój",
|
||||
"title2": "pełny potencjał?",
|
||||
"desc": "Dołącz do tysięcy badaczy, designerów i myślicieli, którzy już budują przyszłość z Momento.",
|
||||
"button": "Uruchom Momento"
|
||||
"desc": "Dołącz do tysięcy badaczy, designerów i myślicieli, którzy już budują przyszłość z Memento.",
|
||||
"button": "Uruchom Memento"
|
||||
},
|
||||
"footer": {
|
||||
"desc": "Drugie mózg wzmocnione przez AI. Stworzone dla kreatywnych umysłów.",
|
||||
@@ -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": "Aktywna",
|
||||
"statusInactive": "Nie udzielona",
|
||||
"helpAriaLabel": "Co oznacza zgoda na AI?",
|
||||
"helpTooltip": "Momento nie sprzedaje Twoich danych. Zgoda dotyczy tylko działań AI, które sam uruchamiasz (tytuły, tagi, czat, reformulacja). Bez niej reszta aplikacji działa normalnie.",
|
||||
"helpTooltip": "Memento nie sprzedaje Twoich danych. Zgoda dotyczy tylko działań AI, które sam uruchamiasz (tytuły, tagi, czat, reformulacja). Bez niej reszta aplikacji działa normalnie.",
|
||||
"whatItMeansTitle": "Co to oznacza?",
|
||||
"inactiveHint": "Bez zgody wyłączone są tylko funkcje AI. Nadal możesz tworzyć, edytować i organizować notatki.",
|
||||
"noCommercialUse": "Momento nie sprzedaje ani nie monetyzuje Twoich danych osobowych.",
|
||||
"noCommercialUse": "Memento nie sprzedaje ani nie monetyzuje Twoich danych osobowych.",
|
||||
"affectedFeatures": "Dotyczy: sugestie tytułów, tagi, czat asystenta, reformulacja, Memory Echo itd.",
|
||||
"dataPortabilityHint": "Możesz w każdej chwili wyeksportować lub usunąć wszystkie dane (Ustawienia → Dane).",
|
||||
"dataPortabilityLink": "Eksportuj moje dane",
|
||||
@@ -2782,7 +2805,7 @@
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome_title": "Twoja pamięć wspomagana AI",
|
||||
"welcome_subtitle": "Momento pamięta to, co zapominasz.",
|
||||
"welcome_subtitle": "Memento pamięta to, co zapominasz.",
|
||||
"welcome_cta": "Zacznij",
|
||||
"skip": "Pomiń",
|
||||
"step_notes_title": "Twoje notatki",
|
||||
@@ -2794,7 +2817,7 @@
|
||||
"step_aha_title": "Znajdź to, co zapomniałeś",
|
||||
"step_aha_subtitle": "Zadaj pytanie. Znajdź zapomnianą notatkę.",
|
||||
"step_aha_placeholder": "notatki o produktywności...",
|
||||
"step_aha_cta": "Eksploruj Momento",
|
||||
"step_aha_cta": "Eksploruj Memento",
|
||||
"progress": "{current} z {total}",
|
||||
"creating_demo_notes": "Tworzenie przykładowych notatek...",
|
||||
"demo_notes_ready": "5 przykładowych notatek utworzonych!",
|
||||
@@ -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