Epic 6: Stories 6-2 (Markdown roundtrip) + 6-3 (Brainstorm PPTX + Canvas)
Story 6-2 — Markdown roundtrip export/import: - lib/editor/markdown-export.ts: tiptapHTMLToMarkdown, markdownToHTML, looksLikeMarkdown - lib/editor/markdown-paste-extension.ts: TipTap extension paste Markdown → blocs - note-editor-toolbar.tsx: export .md + import .md (file picker) - rich-text-editor.tsx: intégration MarkdownPasteExtension - 40 tests unitaires markdown-export.test.ts Story 6-3 — Brainstorm PPTX + Canvas: - lib/brainstorm/export-pptx.ts: génération PPTX 5 slides (pptxgenjs) - app/api/brainstorm/[sessionId]/export-pptx/route.ts: route POST protégée - brainstorm-page.tsx: bouton PPTX, auto-select session, fix emoji, fix router.replace - wave-canvas.tsx: fitTrigger recentrage, légende bas-droite Onboarding activation wizard (Story 6-1): - components/onboarding/: wizard multi-étapes, hints éditeur - app/api/onboarding/: route PATCH onboarding - prisma/migrations: champs onboarding user Locales: 15 langues mises à jour (brainstorm, markdown, onboarding keys) Sprint: 6-1 done, 6-2 review, 6-3 review Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -2176,7 +2176,12 @@
|
||||
"Italiano": "الإيطالية",
|
||||
"Chinois": "الصينية",
|
||||
"Japonais": "اليابانية"
|
||||
}
|
||||
},
|
||||
"exportMarkdown": "تصدير كـ Markdown",
|
||||
"importMarkdown": "استيراد Markdown",
|
||||
"markdownExportSuccess": "تم تصدير الملاحظة كـ Markdown",
|
||||
"markdownExportError": "فشل تصدير الملاحظة",
|
||||
"markdownImportSuccess": "تم استيراد Markdown بنجاح"
|
||||
},
|
||||
"brainstorm": {
|
||||
"title": "Waves of Thought",
|
||||
@@ -2306,7 +2311,16 @@
|
||||
"ownerBadge": "Owner",
|
||||
"waveBadge": "Wave {wave}",
|
||||
"quotaGuest": "استنفد مضيف الجلسة حدّ الذكاء الاصطناعي. اطلب منه ترقية خطته.",
|
||||
"quotaHost": "لقد وصلت إلى حدّ الذكاء الاصطناعي لهذه الجلسة. رقِّ خطتك للمتابعة."
|
||||
"quotaHost": "لقد وصلت إلى حدّ الذكاء الاصطناعي لهذه الجلسة. رقِّ خطتك للمتابعة.",
|
||||
"downloadPptx": "PPTX",
|
||||
"downloadPptxDesc": "تنزيل كـ PowerPoint",
|
||||
"pptxSuccess": "تم تنزيل PPTX",
|
||||
"pptxError": "فشل تصدير PPTX",
|
||||
"fitToScreen": "إعادة التمركز",
|
||||
"legendWave1": "التنويعات",
|
||||
"legendWave2": "التشابهات",
|
||||
"legendWave3": "الاضطرابات",
|
||||
"legendConverted": "محوّل"
|
||||
},
|
||||
"usageMeter": {
|
||||
"packName": "AI Discovery Pack",
|
||||
@@ -2762,5 +2776,96 @@
|
||||
"uploadError": "خطأ في الرفع",
|
||||
"uploadFailed": "فشل الرفع",
|
||||
"uploading": "جاري الرفع..."
|
||||
},
|
||||
"onboarding": {
|
||||
"welcome_title": "ذاكرتك المعززة بالذكاء الاصطناعي",
|
||||
"welcome_subtitle": "Momento يتذكر ما تنساه.",
|
||||
"welcome_cta": "ابدأ",
|
||||
"skip": "تخطي",
|
||||
"step_notes_title": "ملاحظاتك",
|
||||
"step_notes_empty": "ليس لديك ملاحظات بعد. استورد ملاحظاتك أو ابدأ بأمثلة.",
|
||||
"step_notes_import": "استيراد ملاحظاتي",
|
||||
"step_notes_demo": "إنشاء 5 ملاحظات تجريبية",
|
||||
"step_notes_has_notes": "لديك بالفعل {count} ملاحظة. دعنا نكتشف السحر.",
|
||||
"step_notes_cta": "ملاحظاتي جاهزة",
|
||||
"step_aha_title": "اعثر على ما نسيته",
|
||||
"step_aha_subtitle": "اطرح سؤالاً. اعثر على ملاحظة نسيتها.",
|
||||
"step_aha_placeholder": "ملاحظات حول الإنتاجية...",
|
||||
"step_aha_cta": "استكشف Momento",
|
||||
"progress": "{current} من {total}",
|
||||
"creating_demo_notes": "جارٍ إنشاء الملاحظات التجريبية...",
|
||||
"demo_notes_ready": "تم إنشاء 5 ملاحظات تجريبية!",
|
||||
"badge_credits": "⚡ {count} رصيد متبقٍ",
|
||||
"badge_upgrade": "الترقية إلى Pro →",
|
||||
"no_results": "لا نتائج — جرّب استعلامًا آخر.",
|
||||
"search_credit_used": "تم استخدام بحث واحد",
|
||||
"quota_exceeded": "تم استنفاد حصة البحث — انتقل إلى Pro.",
|
||||
"step_aha_search_button": "بحث",
|
||||
"step_aha_search_aria": "ابحث في ملاحظاتك",
|
||||
"step_notes_hint": "💡 ستُغذِّي هذه الملاحظات عرض البحث بالذكاء الاصطناعي في الخطوة التالية.",
|
||||
"step_features_title": "قدراتك الخارقة بالذكاء الاصطناعي",
|
||||
"step_features_subtitle": "اختر من أين تبدأ.",
|
||||
"step_features_cta": "لنبدأ!",
|
||||
"feature_search_title": "البحث الدلالي",
|
||||
"feature_search_desc": "ابحث عن أي ملاحظة بالمعنى، ليس فقط بالكلمات المفتاحية.",
|
||||
"feature_flashcards_title": "بطاقات الذكاء الاصطناعي",
|
||||
"feature_flashcards_desc": "أنشئ بطاقات مراجعة SRS من ملاحظاتك بنقرة واحدة.",
|
||||
"feature_brainstorm_title": "العصف الذهني بالذكاء الاصطناعي",
|
||||
"feature_brainstorm_desc": "جلسات عصف ذهني تعاوني مدعومة بالذكاء الاصطناعي.",
|
||||
"feature_chat_title": "الدردشة مع ملاحظاتك",
|
||||
"feature_chat_desc": "اطرح أسئلة على قاعدة معرفتك الشخصية.",
|
||||
"feature_insights_title": "رؤى دلالية",
|
||||
"feature_insights_desc": "اكتشف الروابط الخفية بين أفكارك.",
|
||||
"feature_export_title": "تصدير Markdown",
|
||||
"feature_export_desc": "استورد وصدِّر ملاحظاتك بتنسيق Markdown القياسي.",
|
||||
"welcome_title_name": "مرحباً {name} 👋",
|
||||
"import_formats": "الصيغ المقبولة: .md, .txt",
|
||||
"import_error": "تعذر استيراد بعض الملفات. يرجى المحاولة مرة أخرى.",
|
||||
"import_notes_ready": "تم استيراد {count} ملاحظة!",
|
||||
"action_write_title": "اكتب ملاحظتك الأولى الحقيقية",
|
||||
"action_write_desc": "أنشئ ملاحظة وابدأ في تدوين أفكارك.",
|
||||
"action_flashcards_title": "أنشئ أول بطاقاتك التعليمية",
|
||||
"action_flashcards_desc": "افتح ملاحظة وانقر على زر البطاقات.",
|
||||
"action_brainstorm_title": "ابدأ عصفاً ذهنياً بالذكاء الاصطناعي",
|
||||
"action_brainstorm_desc": "استكشف أفكارك مع وكيل الذكاء الاصطناعي.",
|
||||
"action_try": "جرّب",
|
||||
"step_features_cta_all": "كل شيء جاهز — لنبدأ!",
|
||||
"action_write_where": "أغلق → انقر على \"+ ملاحظة جديدة\" في الشريط الجانبي",
|
||||
"action_flashcards_where": "أغلق → افتح ملاحظة → زر 🃏 في شريط الأدوات",
|
||||
"action_brainstorm_where": "أغلق → قسم \"Canvas\" في الشريط الجانبي",
|
||||
"pill_resume": "✨ استئناف الجولة",
|
||||
"action_done": "تم!",
|
||||
"editor_hints_title": "Editor tips",
|
||||
"editor_hints_got_it": "Got it!",
|
||||
"hint_slash_title": "\"/\" command — insert blocks",
|
||||
"hint_slash_desc": "In the editor, type \"/\" to open the block menu: heading, list, code block, table, to-do list, and AI commands (Clarify, Shorten, Improve, Expand).",
|
||||
"hint_ai_title": "Built-in AI assistant",
|
||||
"hint_ai_desc": "Click the ✨ button in the toolbar to open the AI panel — ask questions, summarize, rewrite, or brainstorm directly in your note.",
|
||||
"hint_version_title": "Version history",
|
||||
"hint_version_desc": "Click the ⓘ button in the toolbar → \"Versions\" tab. Enable versioning, then save and restore snapshots of your note at any time.",
|
||||
"hint_flashcards_title": "Generate flashcards",
|
||||
"hint_flashcards_desc": "Click the 🎓 button in the toolbar to auto-generate flashcards from your note for spaced repetition review.",
|
||||
"hint_links_title": "Links between notes",
|
||||
"hint_links_desc": "Type \"[[\" in the editor to search and link to another note. Linked notes appear as backlinks at the bottom of the note.",
|
||||
"hint_create_note_title": "Create a note",
|
||||
"hint_create_note_desc": "Click the \"+\" button in the sidebar or press Ctrl+N to create a new note. Then start writing.",
|
||||
"hint_flip_title": "Flip the card",
|
||||
"hint_flip_desc": "Press Space (or click the card) to flip it and reveal the answer.",
|
||||
"hint_rate_keys_title": "Rate with keyboard",
|
||||
"hint_rate_keys_desc": "After flipping, press 1 (Hard), 2 (Difficult), 3 (Good) or 4 (Easy) to rate the card. The SM-2 algorithm schedules your next review automatically.",
|
||||
"hint_generate_from_note_title": "Generate from a note",
|
||||
"hint_generate_from_note_desc": "Open any note and click the 🎓 button in the toolbar to automatically generate flashcards from its content.",
|
||||
"hint_brainstorm_start_title": "Start with an idea",
|
||||
"hint_brainstorm_start_desc": "Type any concept or question in the input field and press Enter. The AI will generate a set of ideas around it.",
|
||||
"hint_brainstorm_deepen_title": "Deepen an idea",
|
||||
"hint_brainstorm_deepen_desc": "Click on any idea card to expand it with sub-ideas and explore it further.",
|
||||
"hint_brainstorm_export_title": "Export your session",
|
||||
"hint_brainstorm_export_desc": "When done, export the entire brainstorm session as a structured note saved to your notebook.",
|
||||
"hint_insights_clusters_title": "Note clusters",
|
||||
"hint_insights_clusters_desc": "Your notes are automatically grouped into thematic clusters. Click a cluster to explore the notes it contains.",
|
||||
"hint_insights_bridge_title": "Bridge notes",
|
||||
"hint_insights_bridge_desc": "Bridge notes connect multiple clusters. They are highlighted because they hold your knowledge graph together.",
|
||||
"hint_insights_refresh_title": "Refresh clusters",
|
||||
"hint_insights_refresh_desc": "If you've added new notes, click the refresh button to recalculate the clusters with the latest content."
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user