refactor(ux): consolidate BMAD skills, update design system, and clean up Prisma generated client

This commit is contained in:
Sepehr Ramezani
2026-04-19 19:21:27 +02:00
parent 5296c4da2c
commit 25529a24b8
2476 changed files with 127934 additions and 101962 deletions

View File

@@ -1,7 +1,7 @@
{
"about": {
"appDescription": "تطبيق ملاحظات قوي مع ميزات مدعومة بالذكاء الاصطناعي",
"appName": "Keep Notes",
"appName": "Memento",
"buildDate": "تاريخ البناء",
"description": "معلومات حول التطبيق",
"features": {
@@ -69,7 +69,9 @@
"providerOllamaOption": "🦙 Ollama (Local & Free)",
"providerOpenAIOption": "🤖 OpenAI (GPT-5, GPT-4)",
"providerCustomOption": "🔧 Custom OpenAI-Compatible",
"saved": "(تم الحفظ)"
"saved": "(تم الحفظ)",
"chatProvider": "مزود الدردشة",
"chatDescription": "مزود الذكاء الاصطناعي لمساعد الدردشة. يستخدم مزود الوسوم إذا لم يتم تكوينه."
},
"aiTest": {
"description": "اختبر مزودي الذكاء الاصطناعي لتوليد الوسوم وتضمينات البحث الدلالي",
@@ -93,7 +95,22 @@
"tipDescription": "استخدم لوحة اختبار الذكاء الاصطناعي لتشخيص مشاكل التكوين قبل الاختبار.",
"tipTitle": "نصيحة:",
"title": "اختبار مزود الذكاء الاصطناعي",
"vectorDimensions": "أبعاد المتجه"
"vectorDimensions": "أبعاد المتجه",
"tagsGenerationTest": "🏷️ اختبار توليد الوسوم:",
"tagsStep1": "يرسل ملاحظة نموذجية إلى مزود الذكاء الاصطناعي",
"tagsStep2": "يطلب 3-5 وسوم ذات صلة بناءً على المحتوى",
"tagsStep3": "يعرض الوسوم المولدة مع درجات الثقة",
"tagsStep4": "يقيس وقت الاستجابة",
"embeddingsTestLabel": "🔍 اختبار التضمينات:",
"embeddingsStep1": "يرسل نصاً نموذجياً إلى مزود التضمينات",
"embeddingsStep2": "ينشئ تمثيلاً متجهياً (قائمة أرقام)",
"embeddingsStep3": "يعرض أبعاد التضمين وقيم نموذجية",
"embeddingsStep4": "يتحقق من أن المتجه صالح ومنسق بشكل صحيح",
"tipContent": "يمكنك استخدام مزودين مختلفين للوسوم والتضمينات! استخدم Ollama (مجاني) للوسوم و OpenAI (أفضل جودة) للتضمينات لتحسين التكلفة والأداء.",
"testSuccessToast": "نجح اختبار {type}!",
"testFailedToast": "فشل اختبار {type}",
"testingType": "جاري اختبار {type}...",
"technicalDetails": "التفاصيل التقنية"
},
"aiTesting": "اختبار الذكاء الاصطناعي",
"security": {
@@ -105,6 +122,22 @@
"updateSuccess": "تم تحديث إعدادات الأمان"
},
"settings": "إعدادات المشرف",
"resend": {
"title": "Resend (موصى به)",
"description": "إرسال رسائل البريد عبر واجهة برمجة Resend. يُفضل على SMTP إذا تم تكوينه.",
"apiKey": "مفتاح API لـ Resend",
"apiKeyHint": "احصل على مفتاح API من resend.com. يُستخدم لإشعارات الوكلاء وإعادة تعيين كلمة المرور.",
"saveSettings": "حفظ إعدادات Resend",
"updateSuccess": "تم تحديث إعدادات Resend",
"updateFailed": "فشل تحديث إعدادات Resend",
"configured": "تم تكوين Resend وهو نشط"
},
"email": {
"title": "إعدادات البريد الإلكتروني",
"description": "تكوين إرسال البريد الإلكتروني لإشعارات الوكلاء وإعادة تعيين كلمة المرور.",
"provider": "مزود البريد الإلكتروني",
"saveSettings": "حفظ إعدادات البريد الإلكتروني"
},
"smtp": {
"description": "تكوين خادم البريد الإلكتروني لإعادة تعيين كلمة المرور.",
"forceSSL": "فرض SSL/TLS (عادة للمنفذ 465)",
@@ -153,6 +186,38 @@
"name": "الاسم",
"role": "الدور"
}
},
"chat": "AI Chat",
"lab": "The Lab",
"agents": "Agents",
"workspace": "Workspace",
"sidebar": {
"dashboard": "لوحة التحكم",
"users": "المستخدمون",
"aiManagement": "إدارة الذكاء الاصطناعي",
"chat": "دردشة الذكاء الاصطناعي",
"lab": "المختبر (أفكار)",
"agents": "الوكلاء",
"settings": "الإعدادات"
},
"metrics": {
"vsLastPeriod": "vs الفترة السابقة"
},
"tools": {
"title": "أدوات الوكيل",
"description": "تكوين الأدوات الخارجية لاستخدام أدوات الوكيل: بحث الويب، استخراج الويب، والوصول إلى API.",
"searchProvider": "مزود بحث الويب",
"searxng": "SearXNG (مستضاف ذاتيًا)",
"brave": "Brave Search API",
"both": "كلاهما (SearXNG أساسي، Brave احتياطي)",
"searxngUrl": "رابط SearXNG",
"braveKey": "مفتاح Brave Search API",
"jinaKey": "مفتاح Jina Reader API",
"jinaKeyOptional": "اختياري — يعمل بدونه ولكن مع حدود معدل",
"jinaKeyDescription": "يُستخدم لاستخراج الويب. يعمل بدون مفتاح ولكن مع حدود معدل.",
"saveSettings": "حفظ إعدادات الأدوات",
"updateSuccess": "تم تحديث إعدادات الأدوات بنجاح",
"updateFailed": "فشل تحديث إعدادات الأدوات"
}
},
"ai": {
@@ -201,7 +266,8 @@
"languageDetected": "تم اكتشاف اللغة",
"notebookSummary": {
"regenerate": "إعادة إنشاء الملخص",
"regenerating": "إعادة إنشاء الملخص..."
"regenerating": "إعادة إنشاء الملخص...",
"exportPDF": "تصدير كـ PDF"
},
"original": "الأصلي",
"poweredByAI": "مدعوم بالذكاء الاصطناعي",
@@ -229,7 +295,21 @@
"transformError": "خطأ أثناء التحويل",
"transformMarkdown": "التحويل إلى Markdown",
"transformSuccess": "تم تحويل النص إلى Markdown بنجاح!",
"transforming": "جاري التحويل..."
"transforming": "جاري التحويل...",
"clarifyDesc": "جعل النص أوضح وأسهل للفهم",
"shortenDesc": "تلخيص النص والوصول إلى النقطة",
"improve": "تحسين الكتابة",
"improveDesc": "تصحيح القواعد وتحسين الأسلوب",
"toMarkdown": "تنسيق كـ Markdown",
"toMarkdownDesc": "إضافة عناوين ونقاط وهيكلة النص",
"translate": "ترجمة",
"translateDesc": "تغيير لغة النص",
"translateBack": "رجوع",
"translationApplied": "تم تطبيق الترجمة",
"translationFailed": "فشلت الترجمة",
"undo": "تراجع عن الذكاء الاصطناعي",
"undoAI": "تراجع عن تحويل الذكاء الاصطناعي",
"undoApplied": "تم استعادة النص الأصلي"
},
"aiSettings": {
"description": "تكوين ميزاتك وتفضيلاتك المدعومة بالذكاء الاصطناعي",
@@ -255,7 +335,11 @@
},
"appearance": {
"description": "تخصيص مظهر التطبيق",
"title": "المظهر"
"title": "المظهر",
"notesViewDescription": "اختر كيفية عرض الملاحظات على الصفحة الرئيسية وفي الدفاتر.",
"notesViewLabel": "عرض الملاحظات",
"notesViewTabs": "علامات تبويب (نمط OneNote)",
"notesViewMasonry": "بطاقات (شبكة)"
},
"auth": {
"backToLogin": "العودة إلى تسجيل الدخول",
@@ -514,30 +598,9 @@
"clearAll": "Clear all",
"confirmDelete": "Are you sure you want to delete this label?",
"count": "{count} labels",
"createLabel": "Create label",
"delete": "Delete",
"deleteTooltip": "Delete label",
"editLabels": "Edit Labels",
"editLabelsDescription": "Create, edit colors, or delete labels.",
"filter": "Filter by Label",
"filterByLabel": "Filter by label",
"labelColor": "Label color",
"labelName": "Label name",
"loading": "Loading...",
"manage": "Manage Labels",
"manageLabels": "Manage labels",
"manageLabelsDescription": "Add or remove labels for this note. Click on a label to change its color.",
"manageTooltip": "Manage Labels",
"namePlaceholder": "Enter label name",
"newLabelPlaceholder": "Create new label",
"noLabels": "No labels",
"noLabelsFound": "No labels found.",
"notebookRequired": "⚠️ Labels are only available in notebooks. Move this note to a notebook first.",
"selectedLabels": "Selected Labels",
"showLess": "Show less",
"showMore": "Show more",
"tagAdded": "Tag \"{tag}\" added",
"title": "Labels"
"confirmDeleteShort": "Confirm?",
"labelRemoved": "Label \"{label}\" removed"
},
"memoryEcho": {
"clickToView": "انقر لعرض الملاحظة",
@@ -611,7 +674,8 @@
"thanksFeedback": "شكراً على ملاحظاتك!",
"thanksFeedbackImproving": "شكراً! سنستخدم هذا للتحسين.",
"title": "لاحظت شيئاً ما...",
"viewConnection": "عرض الاتصال"
"viewConnection": "عرض الاتصال",
"match": "{percentage}% تطابق"
},
"nav": {
"accountSettings": "إعدادات الحساب",
@@ -646,7 +710,10 @@
"supportDevelopment": "دعم تطوير Memento ☕",
"trash": "المهملات",
"userManagement": "إدارة المستخدمين",
"workspace": "مساحة العمل"
"workspace": "مساحة العمل",
"chat": "دردشة الذكاء الاصطناعي",
"lab": "المختبر",
"agents": "الوكلاء"
},
"notebook": {
"cancel": "إلغاء",
@@ -667,7 +734,16 @@
"selectIcon": "الأيقونة",
"summary": "ملخص الدفتر",
"summaryDescription": "إنشاء ملخص مدعوم بالذكاء الاصطناعي لجميع الملاحظات في هذا الدفتر.",
"summaryError": "خطأ في إنشاء الملخص"
"summaryError": "خطأ في إنشاء الملخص",
"namePlaceholder": "مثال: استراتيجية التسويق الربع سنوية",
"myNotebook": "دفتري",
"saving": "جاري الحفظ...",
"pdfTitle": "ملخص — {name}",
"pdfNotesLabel": "الملاحظات:",
"pdfGeneratedOn": "تم الإنشاء في:",
"confidence": "ثقة",
"savingReminder": "خطأ في حفظ التذكير",
"removingReminder": "خطأ في إزالة التذكير"
},
"notebookSuggestion": {
"description": "يبدو أن هذه الملاحظة تنتمي إلى هذا الدفتر",
@@ -676,7 +752,7 @@
"generalNotes": "الملاحظات العامة",
"move": "نقل",
"moveToNotebook": "النقل إلى الدفتر",
"title": "النقل إلى {icon} {name}؟"
"title": "النقل إلى {name}؟"
},
"notebooks": {
"allNotebooks": "جميع الدفاتر",
@@ -784,7 +860,16 @@
"unpinned": "غير مثبت",
"untitled": "بدون عنوان",
"uploadFailed": "فشل في رفع {filename}",
"view": "عرض الملاحظة"
"view": "عرض الملاحظة",
"emptyStateTabs": "لا توجد ملاحظات في هذا العرض. استخدم \"ملاحظة جديدة\" في الشريط الجانبي (اقتراحات عناوين بالذكاء الاصطناعي متاحة).",
"viewCards": "عرض البطاقات",
"viewCardsTooltip": "شبكة بطاقات مع إعادة ترتيب بالسحب والإفلات",
"viewTabs": "عرض القائمة",
"viewTabsTooltip": "علامات تبويب أعلى، الملاحظة أسفل — اسحب للترتيب",
"viewModeGroup": "وضع عرض الملاحظات",
"reorderTabs": "إعادة ترتيب علامة التبويب",
"modified": "معدلة",
"created": "منشأة"
},
"pagination": {
"next": "→",
@@ -909,7 +994,18 @@
"themeLight": "فاتح",
"themeSystem": "النظام",
"title": "الإعدادات",
"version": "الإصدار"
"version": "الإصدار",
"cleanupDone": "تمت مزامنة {created} تسمية، حذف {deleted} يتيمة",
"cleanupNothing": "لا حاجة لأي إجراء — التسميات متزامنة بالفعل مع ملاحظاتك",
"cleanupWithErrors": "بعض العمليات فشلت",
"cleanupError": "تعذر تنظيف التسميات",
"indexingComplete": "اكتملت الفهرسة: تمت معالجة {count} ملاحظة",
"indexingError": "خطأ أثناء الفهرسة",
"emailNotifications": "إشعارات البريد الإلكتروني",
"emailNotificationsDesc": "تلقي إشعارات مهمة عبر البريد الإلكتروني",
"desktopNotifications": "إشعارات سطح المكتب",
"desktopNotificationsDesc": "تلقي إشعارات في المتصفح",
"notificationsDesc": "إدارة تفضيلات الإشعارات"
},
"sidebar": {
"archive": "Archive",
@@ -917,7 +1013,10 @@
"labels": "Labels",
"notes": "Notes",
"reminders": "Reminders",
"trash": "Trash"
"trash": "Trash",
"newNoteTabs": "ملاحظة جديدة",
"newNoteTabsHint": "إنشاء ملاحظة في هذا الدفتر",
"noLabelsInNotebook": "لا توجد تسميات في هذا الدفتر"
},
"support": {
"aiApiCosts": "تكاليف AI API:",
@@ -987,10 +1086,19 @@
"thanksFeedbackImproving": "شكراً! سنستخدم هذا للتحسين."
},
"trash": {
"deletePermanently": "حذف نهائياً",
"empty": "المهملات فارغة",
"title": "سلة المحذوفات",
"empty": "سلة المحذوفات فارغة",
"emptyDescription": "ستظهر الملاحظات المحذوفة هنا",
"restore": "استعادة",
"title": "المهملات"
"deletePermanently": "حذف نهائي",
"noteTrashed": "تم نقل الملاحظة إلى سلة المحذوفات",
"noteRestored": "تم استعادة الملاحظة",
"notePermanentlyDeleted": "تم حذف الملاحظة نهائيًا",
"emptyTrash": "إفراغ سلة المحذوفات",
"emptyTrashConfirm": "حذف جميع الملاحظات في سلة المحذوفات نهائيًا؟",
"emptyTrashSuccess": "تم إفراغ سلة المحذوفات",
"permanentDelete": "حذف نهائي",
"permanentDeleteConfirm": "سيتم حذف هذه الملاحظة نهائيًا. لا يمكن التراجع عن هذا الإجراء."
},
"ui": {
"close": "إغلاق",
@@ -1003,7 +1111,7 @@
"description": "إدارة مفاتيح API وتكوين الأدوات الخارجية",
"whatIsMcp": {
"title": "ما هو MCP؟",
"description": "بروتوكول سياق النموذج (MCP) هو بروتوكول مفتوح يمكّن نماذج الذكاء الاصطناعي من التفاعل بأمان مع الأدوات ومصادر البيانات الخارجية. باستخدام MCP، يمكنك ربط أدوات مثل Claude Code و Cursor و N8N بمثيل Keep Notes الخاص بك لقراءة ملاحظاتك وإنشائها وتنظيمها برمجيًا.",
"description": "بروتوكول سياق النموذج (MCP) هو بروتوكول مفتوح يمكّن نماذج الذكاء الاصطناعي من التفاعل بأمان مع الأدوات ومصادر البيانات الخارجية. باستخدام MCP، يمكنك ربط أدوات مثل Claude Code و Cursor و N8N بمثيل Memento الخاص بك لقراءة ملاحظاتك وإنشائها وتنظيمها برمجيًا.",
"learnMore": "معرفة المزيد عن MCP"
},
"serverStatus": {
@@ -1057,5 +1165,241 @@
"description": "استخدم بيانات الاعتماد هذه في عقدة N8N MCP:"
}
}
},
"agents": {
"title": "الوكلاء",
"subtitle": "أتمتة مهام المراقبة والبحث الخاصة بك",
"newAgent": "وكيل جديد",
"myAgents": "وكلائي",
"noAgents": "لا يوجد وكلاء",
"noAgentsDescription": "أنشئ أول وكيل لك أو ثبّت قالبًا أدناه لأتمتة مهام المراقبة.",
"types": {
"scraper": "مراقب",
"researcher": "باحث",
"monitor": "مراقب",
"custom": "مخصص"
},
"typeDescriptions": {
"scraper": "يجمع البيانات من عدة مواقع وينشئ ملخصًا",
"researcher": "يبحث عن معلومات حول موضوع معين",
"monitor": "يراقب دفتر ملاحظات ويحلل الملاحظات",
"custom": "وكيل حر بموجهك الخاص"
},
"form": {
"agentType": "نوع الوكيل",
"name": "الاسم",
"namePlaceholder": "مثال: مراقبة الذكاء الاصطناعي الثلاثاء",
"description": "الوصف (اختياري)",
"descriptionPlaceholder": "ملخص أخبار الذكاء الاصطناعي الأسبوعي",
"urlsLabel": "روابط URLs للجمع",
"urlsOptional": "(اختياري)",
"sourceNotebook": "دفتر الملاحظات للمراقبة",
"selectNotebook": "اختر دفتر ملاحظات...",
"targetNotebook": "دفتر الملاحظات الهدف",
"inbox": "صندوق الوارد",
"instructions": "تعليمات الذكاء الاصطناعي",
"instructionsPlaceholder": "صف سلوك الوكيل...",
"frequency": "التكرار",
"cancel": "إلغاء",
"saving": "جاري الحفظ...",
"save": "حفظ",
"create": "إنشاء وكيل",
"editTitle": "تعديل الوكيل",
"createTitle": "وكيل جديد",
"nameRequired": "الاسم مطلوب",
"addUrl": "إضافة رابط URL",
"advancedMode": "الوضع المتقدم",
"instructionsHint": "يستبدل المطالبة التلقائية",
"researchTopic": "موضوع البحث",
"researchTopicPlaceholder": "مثال: أحدث التطورات في الذكاء الاصطناعي",
"notifyEmail": "إشعار بالبريد الإلكتروني",
"notifyEmailHint": "استلام بريد إلكتروني بنتائج الوكيل بعد كل تشغيل"
},
"frequencies": {
"manual": "يدوي",
"hourly": "كل ساعة",
"daily": "يومي",
"weekly": "أسبوعي",
"monthly": "شهري"
},
"status": {
"success": "نجح",
"failure": "فشل",
"running": "قيد التشغيل",
"pending": "قيد الانتظار"
},
"actions": {
"edit": "تعديل",
"run": "تشغيل",
"delete": "حذف",
"deleteConfirm": "حذف الوكيل \"{name}\"؟",
"toggleOn": "تم تفعيل الوكيل",
"toggleOff": "تم تعطيل الوكيل"
},
"toasts": {
"created": "تم إنشاء الوكيل",
"updated": "تم تحديث الوكيل",
"deleted": "تم حذف \"{name}\"",
"deleteError": "خطأ في الحذف",
"runSuccess": "تم تنفيذ \"{name}\" بنجاح",
"runError": "خطأ: {error}",
"runFailed": "فشل التنفيذ",
"runGenericError": "خطأ أثناء التنفيذ",
"toggleError": "خطأ في تبديل الوكيل",
"installSuccess": "تم تثبيت \"{name}\"",
"installError": "خطأ أثناء التثبيت",
"saveError": "خطأ في الحفظ"
},
"templates": {
"title": "القوالب",
"install": "تثبيت",
"installing": "جاري التثبيت...",
"veilleAI": {
"name": "مراقبة الذكاء الاصطناعي",
"description": "يجمع البيانات من 5 مواقع متخصصة في الذكاء الاصطناعي وينشئ ملخصًا أسبوعيًا."
},
"veilleTech": {
"name": "مراقبة التقنية",
"description": "يجمع البيانات من مواقع تقنية رئيسية وينشئ ملخص أخبار."
},
"veilleDev": {
"name": "مراقبة التطوير",
"description": "يجمع البيانات من مواقع التطوير ويلخص التقنيات والأطر الجديدة."
},
"surveillant": {
"name": "مراقب الملاحظات",
"description": "يحلل الملاحظات الأخيرة في دفتر ملاحظات ويقترح مكملات ومراجع وروابط."
},
"chercheur": {
"name": "باحث المواضيع",
"description": "يبحث عن معلومات متعمقة حول موضوع وينشئ ملاحظة منظمة بمراجع."
}
},
"runLog": {
"title": "السجل",
"noHistory": "لا يوجد سجل تنفيذ بعد",
"toolTrace": "{count} استدعاءات أدوات",
"step": "الخطوة {num}"
},
"tools": {
"title": "أدوات الوكيل",
"webSearch": "بحث الويب",
"webScrape": "استخراج الويب",
"noteSearch": "بحث الملاحظات",
"noteRead": "قراءة الملاحظة",
"noteCreate": "إنشاء ملاحظة",
"urlFetch": "جلب رابط",
"memorySearch": "الذاكرة",
"configNeeded": "إعدادات",
"selected": "{count} محدد",
"maxSteps": "الحد الأقصى للتكرارات"
},
"metadata": {
"executions": "{count} تنفيذ"
},
"defaultRoles": {
"scraper": "أنت مساعد مراقبة. قم بتجميع المقالات من مواقع مختلفة في ملخص واضح ومنظم.",
"researcher": "أنت باحث دقيق. للموضوع المطلوب، أنشئ ملاحظة بحثية بالسياق والنقاط الرئيسية والمناقشات والمراجع.",
"monitor": "أنت مساعد تحليلي. حلل الملاحظات المقدمة واقترح اتجاهات ومراجع وروابط بين الملاحظات.",
"custom": "أنت مساعد مفيد."
},
"help": {
"title": "دليل الوكلاء",
"btnLabel": "مساعدة",
"close": "إغلاق",
"whatIsAgent": "ما هو الوكيل؟",
"whatIsAgentContent": "An **agent** is an AI assistant that runs automatically to perform tasks for you. It has access to **tools** (web search, web scraping, note reading...) and produces a **note** with its results.\n\nThink of it as a small autonomous worker: you give it a mission, it researches or scrapes information, then writes a structured note you can read later.",
"howToUse": "كيف تستخدم وكيلًا؟",
"howToUseContent": "1. Click **\"New Agent\"** (or start from a **Template** at the bottom of the page)\n2. Choose an **agent type** (Researcher, Monitor, Observer, Custom)\n3. Give it a **name** and fill in the type-specific fields\n4. Optionally pick a **target notebook** where results will be saved\n5. Choose a **frequency** (Manual = you trigger it yourself)\n6. Click **Create**, then hit the **Run** button on the agent card\n7. Once finished, a new note appears in your target notebook",
"types": "أنواع الوكلاء",
"typesContent": "### Researcher\nSearches the web on a **topic you define** and creates a structured note with sources and references.\n\n- **Fields:** name, research topic (e.g. \"Latest advances in quantum computing\")\n- **Default tools:** web search, web scraping, note search, note creation\n- **Requirements:** a web search provider must be configured (SearXNG or Brave Search)\n\n### Monitor (Scraper)\nScrapes a **list of URLs** you specify and produces a summary of their content.\n\n- **Fields:** name, list of URLs (e.g. tech news sites, blogs...)\n- **Default tools:** web scraping, note creation\n- **Use case:** weekly tech watch, competitor monitoring, blog roundups\n\n### Observer (Notebook Monitor)\nReads notes from a **notebook you select** and produces analysis, connections, and suggestions.\n\n- **Fields:** name, source notebook (the one to analyze)\n- **Default tools:** note search, note read, note creation\n- **Use case:** find connections between your notes, get reading suggestions, detect recurring themes\n\n### Custom\nA blank canvas: you write your own **prompt** and pick your own **tools**.\n\n- **Fields:** name, description, custom instructions (in Advanced mode)\n- **No default tools** — you choose exactly what the agent needs\n- **Use case:** anything creative or specific that doesn't fit the other types",
"advanced": "الوضع المتقدم (تعليمات الذكاء الاصطناعي، الحد الأقصى للتكرارات)",
"advancedContent": "Click **\"Advanced mode\"** at the bottom of the form to access additional settings.\n\n### AI Instructions\n\nThis field lets you **replace the default system prompt** for the agent. If left empty, the agent uses an automatic prompt adapted to its type.\n\n**Why use it?** You want to control exactly how the agent behaves. For example:\n- \"Write the summary in English, even if sources are in French\"\n- \"Structure the note with sections: Context, Key Points, Personal Opinion\"\n- \"Ignore articles older than 30 days and focus on recent news\"\n- \"For each detected theme, suggest 3 follow-up leads with links\"\n\n> **Note:** Your instructions replace the defaults, they don't add to them.\n\n### Max iterations\n\nThis is the **maximum number of cycles** the agent can perform. One cycle = the agent thinks, calls a tool, reads the result, then decides the next action.\n\n- **3-5 iterations:** for simple tasks (scraping a single page)\n- **10 iterations (default):** good balance for most cases\n- **15-25 iterations:** for deep research where the agent needs to explore multiple leads\n\n> **Warning:** More iterations = more time and potentially higher API costs.",
"tools": "الأدوات المتاحة (التفاصيل)",
"toolsContent": "When advanced mode is enabled, you can choose exactly which tools the agent can use.\n\n### Web Search\nAllows the agent to **search the internet** via SearXNG or Brave Search.\n\n- **What it does:** The agent formulates a query, gets search results, and can then scrape the most relevant pages.\n- **When to enable:** When the agent needs to find information on a topic (Researcher or Custom type).\n- **Configuration required:** SearXNG (with JSON format enabled) or a Brave Search API key. Configurable in **Admin > Agent Tools**.\n- **Example:** The agent searches \"React Server Components best practices 2025\", gets 10 results, then scrapes the top 3.\n\n### Web Scrape\nAllows the agent to **extract text content from a web page** given its URL.\n\n- **What it does:** The agent visits a URL and retrieves the structured text (headings, paragraphs, lists). Ads, menus and footers are typically filtered out.\n- **When to enable:** For the Monitor type (mandatory), or any agent that needs to read web pages.\n- **Configuration:** Works out of the box, but a **Jina Reader API key** improves quality and removes rate limits. Configurable in **Admin > Agent Tools**.\n- **Example:** The agent scrapes 5 tech blogs and produces a synthesized summary.\n\n### Note Search\nAllows the agent to **search your existing notes**.\n\n- **What it does:** The agent performs a text search across all your notes (or a specific notebook).\n- **When to enable:** For Observer-type agents, or any agent that needs to cross-reference information with your notes.\n- **Configuration:** None — works immediately.\n- **Example:** The agent searches all notes containing \"machine learning\" to see what you've already written on the topic.\n\n### Read Note\nAllows the agent to **read the full content of a specific note**.\n\n- **What it does:** After finding a note (via Note Search), the agent can read its entire content to analyze or use it.\n- **When to enable:** As a companion to Note Search. Enable both together so the agent can search AND read.\n- **Configuration:** None.\n- **Example:** The agent finds 5 notes about \"productivity\", reads them all, and writes a synthesis.\n\n### Create Note\nAllows the agent to **write a new note** in your target notebook.\n\n- **What it does:** The agent creates a note with a title and content. This is how results end up in your notebooks.\n- **When to enable:** Almost always — without this tool, the agent cannot save its results. **Leave it enabled by default.**\n- **Configuration:** None.\n- **Example:** The agent creates a note \"Tech Watch - Week 16\" with a summary of 5 articles.\n\n### Fetch URL\nAllows the agent to **download the raw content of a URL** (HTML, JSON, text...).\n\n- **What it does:** Unlike scraping which extracts clean text, Fetch URL retrieves raw content. Useful for APIs, JSON files, or non-standard pages.\n- **When to enable:** When the agent needs to query REST APIs, read RSS feeds, or access raw data.\n- **Configuration:** None.\n- **Example:** The agent queries the GitHub API to list the latest commits of a project.\n\n### Memory\nAllows the agent to **access its previous execution history**.\n\n- **What it does:** The agent can search through results from past runs. This lets it compare, track changes, or avoid repeating the same information.\n- **When to enable:** For agents that run regularly and need to maintain continuity between executions.\n- **Configuration:** None.\n- **Example:** The agent compares this week's news with last week's and highlights what's new.",
"frequency": "التكرار والجدولة",
"frequencyContent": "| Frequency | Behavior\n|-----------|----------\n| **Manual** | You click \"Run\" yourself — no automatic scheduling\n| **Hourly** | Runs every hour\n| **Daily** | Runs once per day\n| **Weekly** | Runs once per week\n| **Monthly** | Runs once per month\n\n> **Tip:** Start with \"Manual\" to test your agent, then switch to an automatic frequency once you're satisfied with the results.",
"targetNotebook": "دفتر الملاحظات المستهدف",
"targetNotebookContent": "When an agent finishes its task, it **creates a note**. The **target notebook** determines where that note goes:\n\n- **Inbox** (default) — the note goes to your general notes\n- **Specific notebook** — choose a notebook to keep agent results organized\n\n> **Tip:** Create a dedicated notebook like \"Agent Reports\" to keep all automated content in one place.",
"templates": "القوالب",
"templatesContent": "Templates are pre-configured agents ready to install in one click. You'll find them at the **bottom of the Agents page**.\n\nAvailable templates include:\n\n- **AI Watch** — weekly AI news roundup from 5 specialized sites\n- **Tech Watch** — general tech news summary\n- **Dev Watch** — developer news and new frameworks\n- **Note Observer** — analyzes a notebook and suggests connections\n- **Topic Researcher** — deep research on a specific topic\n\nOnce installed, you can edit the agent to customize it.",
"tips": "نصائح وحل المشكلات",
"tipsContent": "- **Start with a template** and customize it — it's the fastest way to get a working agent\n- **Test with \"Manual\"** frequency before enabling automatic scheduling\n- **A \"Researcher\" agent requires a web search provider** — configure SearXNG (JSON format) or Brave Search in **Admin > Agent Tools**\n- **If an agent fails**, click on its card then **History** to see the execution log and tool traces\n- **The \"Enabled/Disabled\" toggle** lets you pause an agent without deleting it\n- **Web scraping quality** improves with a Jina Reader API key (optional, in Admin > Agent Tools)\n- **Combine \"Note Search\" + \"Read Note\"** so the agent can find AND analyze your notes' content\n- **Enable \"Memory\"** if your agent runs regularly — it will avoid repeating the same information across runs",
"tooltips": {
"agentType": "اختر نوع المهمة التي سيقوم بها الوكيل. كل نوع لديه قدرات وحقول مختلفة.",
"researchTopic": "الموضوع الذي سيبحث عنه الوكيل على الويب. كن محددًا للحصول على نتائج أفضل.",
"description": "وصف قصير لما يفعله هذا الوكيل. يساعدك على تذكر غرضه.",
"urls": "قائمة المواقع لاستخراج المحتوى. سيزور الوكيل كل رابط ويستخرج المحتوى.",
"sourceNotebook": "الدفتر الذي سيحلله الوكيل. يقرأ الملاحظات من هذا الدفتر لإيجاد الروابط والموضوعات.",
"targetNotebook": "حيث سيتم حفظ ملاحظة نتيجة الوكيل. اختر صندوق الوارد أو دفترًا محددًا.",
"frequency": "كم مرة يعمل الوكيل تلقائيًا. ابدأ بيدوي للاختبار.",
"instructions": "تعليمات مخصصة تحل محل موجه الذكاء الاصطناعي الافتراضي. اتركه فارغًا لاستخدام التلقائي.",
"tools": "حدد الأدوات التي يمكن للوكيل استخدامها. كل أداة تمنح الوكيل قدرة محددة.",
"maxSteps": "الحد الأقصى لدورات الاستدلال. خطوات أكثر = تحليل أعمق لكن يستغرق وقتًا أطول."
}
}
},
"chat": {
"title": "محادثة الذكاء الاصطناعي",
"subtitle": "تحدث مع ملاحظاتك ووكلاء الذكاء الاصطناعي",
"newConversation": "محادثة جديدة",
"noHistory": "لا يوجد سجل",
"untitled": "محادثة بدون عنوان",
"deleteConfirm": "حذف هذه المحادثة؟",
"yes": "نعم",
"placeholder": "أرسل رسالة إلى المساعد...",
"allNotebooks": "جميع دفاتر الملاحظات",
"inAllNotebooks": "في جميع دفاتر الملاحظات",
"active": "نشط",
"disclaimer": "قد يخطئ الذكاء الاصطناعي. تحقق من المعلومات المهمة.",
"assistantError": "خطأ في المساعد",
"loadError": "خطأ في تحميل المحادثة",
"createError": "خطأ في إنشاء المحادثة",
"deleteError": "خطأ في الحذف",
"renamed": "تمت إعادة تسمية المحادثة",
"renameError": "خطأ في إعادة التسمية",
"welcome": "أنا هنا لمساعدتك في تلخيص ملاحظاتك أو إنشاء أفكار جديدة أو مناقشة دفاتر ملاحظاتك.",
"searching": "جاري البحث...",
"noNotesFoundForContext": "لم يتم العثور على ملاحظات ذات صلة لهذا السؤال. أجب باستخدام معرفتك العامة."
},
"labHeader": {
"title": "المختبر",
"live": "مباشر",
"currentProject": "المشروع الحالي",
"choose": "اختر...",
"yourSpaces": "مساحاتك",
"updated": "محدث",
"newSpace": "مساحة تفكير جديدة",
"new": "جديد",
"renamed": "تمت إعادة تسمية المساحة",
"renameError": "خطأ في إعادة التسمية",
"created": "تم إنشاء مساحة جديدة",
"createFailed": "فشل الإنشاء",
"deleteSpace": "حذف المساحة",
"deleted": "تم حذف المساحة",
"deleteError": "خطأ في الحذف"
},
"notification": {
"shared": "شارك \"{title}\"",
"untitled": "بدون عنوان",
"notifications": "الإشعارات",
"accept": "Accept",
"accepted": "Share accepted",
"decline": "Decline",
"declined": "تم رفض المشاركة",
"noNotifications": "No new notifications",
"removed": "تمت إزالة الملاحظة من القائمة"
},
"reminders": {
"title": "التذكيرات",
"empty": "لا توجد تذكيرات",
"emptyDescription": "أضف تذكيراً إلى ملاحظة لتجده هنا.",
"upcoming": "قادمة",
"overdue": "متأخرة",
"done": "مكتملة",
"markDone": "وضع علامة مكتمل",
"markUndone": "وضع علامة غير مكتمل",
"todayAt": "اليوم في {time}",
"tomorrowAt": "غداً في {time}"
}
}