fix(editor): custom image width parsing, fix image paste, add AI submenu features

This commit is contained in:
2026-05-03 00:08:28 +02:00
parent d0387cd9a0
commit 54b7b4fcf1
19 changed files with 3890 additions and 3490 deletions

View File

@@ -40,7 +40,7 @@
"noLabelsInNotebook": "هنوز برچسبی در این دفترچه وجود ندارد",
"archive": "بایگانی",
"trash": "زباله‌دان",
"clearFilter": "Remove filter"
"clearFilter": "حذف فیلتر"
},
"notes": {
"title": "یادداشت‌ها",
@@ -88,8 +88,8 @@
"itemOrMediaRequired": "لطفا حداقل یک آیتم یا رسانه اضافه کنید",
"noteCreated": "یادداشت با موفقیت ایجاد شد",
"noteCreateFailed": "ایجاد یادداشت شکست خورد",
"deleted": "Note deleted",
"deleteFailed": "Failed to delete note",
"deleted": "یادداشت حذف شد",
"deleteFailed": "حذف یادداشت ناموفق بود",
"aiAssistant": "دستیار هوش مصنوعی",
"changeSize": "تغییر اندازه",
"backgroundOptions": "گزینه‌های پس‌زمینه",
@@ -176,10 +176,10 @@
"history": "تاریخچه",
"historyRestored": "نسخه بازیابی شد",
"historyEnabled": "تاریخچه فعال شد",
"historyDisabledTitle": "Version history",
"historyDisabledTitle": "تاریخچه نسخه‌ها",
"historyDisabledDesc": "تاریخچه برای حساب شما غیرفعال است.",
"historyEnabledTitle": "History enabled!",
"historyEnabledDesc": "Versions of this note will now be recorded.",
"historyEnabledTitle": "تاریخچه فعال شد!",
"historyEnabledDesc": "نسخه‌های این یادداشت از این پس ثبت خواهد شد.",
"enableHistory": "فعال‌سازی تاریخچه",
"historyEmpty": "نسخه‌ای موجود نیست",
"historySelectVersion": "نسخه‌ای را برای پیش‌نمایش انتخاب کنید",
@@ -188,32 +188,37 @@
"sortDateAsc": "تاریخ (قدیمی‌ترین)",
"sortTitleAsc": "عنوان الف ← ی",
"sortTitleDesc": "عنوان ی ← الف",
"suggestTitle": "AI title",
"generateTitleFromImage": "Generate title from image",
"titleGenerated": "Title generated",
"content": "Content",
"restore": "Restore",
"createFailed": "Failed to create note",
"updateFailed": "Failed to update note",
"archived": "Note archived",
"archiveFailed": "Failed to archive",
"sort": "Sort",
"confirmDeleteTitle": "Delete note",
"leftShare": "Share removed",
"dismissed": "Note dismissed from recent",
"generalNotes": "General Notes",
"suggestTitle": "عنوان هوش مصنوعی",
"generateTitleFromImage": "تولید عنوان از تصویر",
"titleGenerated": "عنوان تولید شد",
"content": "محتوا",
"restore": "بازیابی",
"createFailed": "ایجاد یادداشت ناموفق بود",
"updateFailed": "به‌روزرسانی یادداشت ناموفق بود",
"archived": "یادداشت بایگانی شد",
"archiveFailed": "بایگانی ناموفق بود",
"sort": "مرتب‌سازی",
"confirmDeleteTitle": "حذف یادداشت",
"leftShare": "اشتراک‌گذاری حذف شد",
"dismissed": "یادداشت از اخیرها حذف شد",
"generalNotes": "یادداشت‌های عمومی",
"noteType": "نوع یادداشت",
"typeText": "متن",
"typeMarkdown": "مارکداون",
"typeRichText": "متن غنی",
"typeChecklist": "چک‌لیست",
"convertedToRichText": "Converted to rich text",
"conversionFailed": "Conversion failed, staying in Markdown",
"convertedToRichText": "به متن غنی تبدیل شد",
"conversionFailed": "تبدیل ناموفق بود، در مارک‌داون باقی می‌ماند",
"richTextPlaceholder": "یادداشتی بنویسید...",
"switchTypeTitle": "نوع یادداشت تغییر کند؟",
"switchTypeWarning": "هنگام تغییر به {type} ممکن است برخی قالب‌بندی‌ها از بین بروند.",
"switchTypeContentPreserved": "محتوای شما به عنوان متن ساده حفظ می‌شود.",
"switchType": "تغییر به {type}"
"switchType": "تغییر به {type}",
"deleteVersionDesc": "این عمل قابل بازگشت نیست. این نسخه برای همیشه از تاریخچه حذف خواهد شد.",
"currentVersion": "فعلی",
"compareVersions": "مقایسه",
"diffTitle": "مقایسه",
"diffSelectHint": "برای مقایسه روی ۲ نسخه در لیست کلیک کنید"
},
"pagination": {
"previous": "←",
@@ -221,35 +226,35 @@
"next": "→"
},
"labels": {
"title": "Labels",
"filter": "Filter by Label",
"manage": "Manage Labels",
"manageTooltip": "Manage Labels",
"title": "برچسب‌ها",
"filter": "فیلتر بر اساس برچسب",
"manage": "مدیریت برچسب‌ها",
"manageTooltip": "مدیریت برچسب‌ها",
"changeColor": "تغییر رنگ",
"changeColorTooltip": "تغییر رنگ",
"delete": "Delete",
"deleteTooltip": "Delete label",
"delete": "حذف",
"deleteTooltip": "حذف برچسب",
"confirmDelete": "آیا مطمئن هستید که می‌خواهید این برچسب را حذف کنید؟",
"newLabelPlaceholder": "Create new label",
"namePlaceholder": "Enter label name",
"newLabelPlaceholder": "ایجاد برچسب جدید",
"namePlaceholder": "نام برچسب را وارد کنید",
"addLabel": "افزودن برچسب",
"createLabel": "Create label",
"labelName": "Label name",
"labelColor": "Label color",
"manageLabels": "Manage labels",
"manageLabelsDescription": "Add or remove labels for this note. Click on a label to change its color.",
"selectedLabels": "Selected Labels",
"createLabel": "ایجاد برچسب",
"labelName": "نام برچسب",
"labelColor": "رنگ برچسب",
"manageLabels": "مدیریت برچسب‌ها",
"manageLabelsDescription": "برچسب‌های این یادداشت را اضافه یا حذف کنید. برای تغییر رنگ روی برچسب کلیک کنید.",
"selectedLabels": "برچسب‌های انتخاب شده",
"allLabels": "همه برچسب‌ها",
"clearAll": "پاک کردن همه",
"filterByLabel": "Filter by label",
"tagAdded": "Tag \"{tag}\" added",
"showLess": "Show less",
"showMore": "Show more",
"editLabels": "Edit Labels",
"editLabelsDescription": "Create, edit colors, or delete labels.",
"noLabelsFound": "No labels found.",
"loading": "Loading...",
"notebookRequired": "⚠️ Labels are only available in notebooks. Move this note to a notebook first.",
"filterByLabel": "فیلتر بر اساس برچسب",
"tagAdded": "برچسب «{tag}» اضافه شد",
"showLess": "نمایش کمتر",
"showMore": "نمایش بیشتر",
"editLabels": "ویرایش برچسب‌ها",
"editLabelsDescription": "ایجاد، تغییر رنگ یا حذف برچسب‌ها.",
"noLabelsFound": "برچسبی یافت نشد.",
"loading": "در حال بارگذاری...",
"notebookRequired": "⚠️ برچسب‌ها فقط در دفترچه‌ها موجود هستند. ابتدا این یادداشت را به یک دفترچه منتقل کنید.",
"count": "{count} برچسب",
"noLabels": "بدون برچسب",
"confirmDeleteShort": "تأیید؟",
@@ -417,14 +422,14 @@
"transformationsDesc": "تبدیل‌ها — مستقیماً در یادداشت اعمال می‌شوند",
"writeMinWordsAction": "حداقل ۵ کلمه بنویسید تا عملیات هوش مصنوعی فعال شود.",
"processingAction": "در حال پردازش...",
"noImagesError": "No images in this note",
"overview": "Overview",
"noImagesError": "تصویری در این یادداشت وجود ندارد",
"overview": "نمای کلی",
"action": {
"clarify": "روشن کردن",
"shorten": "خلاصه کردن",
"improve": "بهبود",
"toMarkdown": "به مارک‌داون",
"describeImages": "Describe images"
"describeImages": "توصیف تصاویر"
},
"openAssistant": "باز کردن دستیار هوش مصنوعی",
"poweredByMomento": "پشتیبانی شده توسط Momento AI",
@@ -440,8 +445,50 @@
"insightsTab": "بینش‌ها",
"aiCopilot": "دستیار هوشمند",
"suggestTitle": "پیشنهاد عنوان با هوش مصنوعی",
"generateTitleFromImage": "Generate title from image",
"titleGenerated": "Title generated from image"
"generateTitleFromImage": "تولید عنوان از تصویر",
"titleGenerated": "عنوان از تصویر تولید شد",
"wordCountMin": "حداقل {min} کلمه برای بازنویسی انتخاب کنید (فعلاً {current} کلمه)",
"wordCountMax": "حداکثر {max} کلمه برای بازنویسی انتخاب کنید (فعلاً {current} کلمه)",
"resourceTab": "منبع",
"aiNoteTitle": "یادداشت هوش مصنوعی",
"injectReplace": "جایگزینی",
"injectReplaceTitle": "محتوای یادداشت را با این پیام جایگزین کنید",
"injectComplete": "تکمیل",
"injectCompleteTitle": "یادداشت را با این پیام تکمیل کنید (هوش مصنوعی)",
"injectMerge": "ادغام",
"injectMergeTitle": "با یادداشت ادغام کنید (هوش مصنوعی)",
"imagesCount": "{count} تصویر",
"resource": {
"failedToLoadUrl": "بارگذاری این URL ناموفق بود",
"pageLoaded": "صفحه بارگذاری شد: {title}",
"pageLoadError": "خطا در بارگذاری صفحه",
"pasteOrUrlFirst": "ابتدا متن را بچسبانید یا یک URL بارگذاری کنید",
"enrichError": "خطا در غنی‌سازی",
"enrichErrorShort": "خطای غنی‌سازی",
"contentApplied": "محتوا در یادداشت اعمال شد ✓",
"fromChat": "💬 از چت",
"replacement": "↓ جایگزینی",
"completedByAI": "✦ تکمیل شده توسط هوش مصنوعی",
"mergedByAI": "⟳ ادغام شده توسط هوش مصنوعی",
"rendered": "رندر شده",
"cancel": "لغو",
"applyToNote": "اعمال در یادداشت",
"urlLabel": "URL (اختیاری)",
"resourceText": "متن منبع",
"resourcePlaceholder": "متن خود را اینجا بچسبانید (مارک‌داون، HTML، متن ساده…)",
"words": "کلمه",
"integrationMode": "حالت یکپارچه‌سازی",
"modeReplace": "جایگزینی",
"modeReplaceDesc": "مستقیم، بدون هوش مصنوعی",
"modeComplete": "تکمیل",
"modeCompleteDesc": "بدون بازنویسی اضافه می‌کند",
"modeMerge": "ادغام",
"modeMergeDesc": "بازنویسی و یکپارچه می‌کند",
"aiProcessing": "هوش مصنوعی در حال پردازش…",
"preview": "پیش‌نمایش",
"generatePreview": "تولید پیش‌نمایش",
"emptyNoteHint": "💡 یادداشت خالی است — محتوای منبع مستقیماً یکپارچه خواهد شد."
}
},
"titleSuggestions": {
"available": "پیشنهادات عنوان",
@@ -539,10 +586,10 @@
}
},
"notification": {
"accept": "Accept",
"accepted": "Share accepted",
"decline": "Decline",
"noNotifications": "No new notifications",
"accept": "پذیرش",
"accepted": "اشتراک پذیرفته شد",
"decline": "رد کردن",
"noNotifications": "اعلان جدیدی نیست",
"shared": "\"{title}\" به اشتراک گذاشته شد",
"untitled": "بدون عنوان",
"notifications": "اعلان‌ها",
@@ -603,11 +650,11 @@
"about": "درباره",
"version": "نسخه",
"settingsSaved": "تنظیمات ذخیره شد",
"cardSizeMode": "Note Size",
"cardSizeModeDescription": "Choose between variable sizes or uniform size",
"selectCardSizeMode": "Select display mode",
"cardSizeVariable": "Variable sizes (small/medium/large)",
"cardSizeUniform": "Uniform size",
"cardSizeMode": "اندازه یادداشت",
"cardSizeModeDescription": "انتخاب بین اندازه متغیر یا یکنواخت",
"selectCardSizeMode": "انتخاب حالت نمایش",
"cardSizeVariable": "اندازه متغیر (کوچک/متوسط/بزرگ)",
"cardSizeUniform": "اندازه یکنواخت",
"settingsError": "خطا در ذخیره تنظیمات",
"maintenance": "نگهداری",
"maintenanceDescription": "ابزارهایی برای حفظ سلامت پایگاه داده",
@@ -695,7 +742,15 @@
"providerDesc": "فروشنده هوش مصنوعی مورد نظر خود را انتخاب کنید",
"providerAutoDesc": "Ollama در صورت وجود، در غیر این صورت OpenAI",
"providerOllamaDesc": "۱۰۰٪ خصوصی، به صورت محلی اجرا می‌شود",
"providerOpenAIDesc": "دقیق‌ترین، نیاز به کلید API دارد"
"providerOpenAIDesc": "دقیق‌ترین، نیاز به کلید API دارد",
"aiNote": "یادداشت هوش مصنوعی",
"aiNoteDesc": "فعال‌سازی دکمه چت هوش مصنوعی و ابزارهای بهبود متن",
"languageDetection": "تشخیص زبان",
"languageDetectionDesc": "به طور خودکار زبان یادداشت‌های شما را تشخیص می‌دهد",
"autoLabeling": "پیشنهاد برچسب",
"autoLabelingDesc": "به طور خودکار برچسب‌ها را به یادداشت‌های شما پیشنهاد و اعمال می‌کند",
"noteHistory": "تاریخچه یادداشت",
"noteHistoryDesc": "فعال‌سازی اسنپ‌شات نسخه‌ها و بازیابی از تاریخچه"
},
"general": {
"loading": "در حال بارگذاری...",
@@ -752,7 +807,9 @@
"markDone": "علامت‌گذاری به عنوان انجام شده",
"markUndone": "علامت‌گذاری به عنوان انجام نشده",
"todayAt": "امروز ساعت {time}",
"tomorrowAt": "فردا ساعت {time}"
"tomorrowAt": "فردا ساعت {time}",
"clearCompleted": "پاک کردن تکمیل شده‌ها",
"viewAll": "مشاهده همه یادآوری‌ها"
},
"notebook": {
"create": "ایجاد دفترچه",
@@ -783,7 +840,7 @@
"confidence": "اطمینان",
"savingReminder": "شکست در ذخیره یادآوری",
"removingReminder": "شکست در حذف یادآوری",
"generatingDescription": "Please wait..."
"generatingDescription": "لطفاً صبر کنید..."
},
"notebookSuggestion": {
"title": "انتقال به {name}؟",
@@ -896,14 +953,14 @@
"description": "پیکربندی ارسال ایمیل برای اعلان‌های عامل و بازنشانی رمز عبور.",
"provider": "ارائه‌دهنده ایمیل",
"saveSettings": "ذخیره تنظیمات ایمیل",
"status": "Service Status",
"keySet": "key configured",
"activeAuto": "Auto mode: Resend will be used first, SMTP as fallback.",
"activeSmtp": "Auto mode: SMTP will be used (Resend not configured).",
"noneConfigured": "No email service configured. Set up Resend or SMTP.",
"activeProvider": "Active provider",
"testOk": "test passed",
"testFail": "test failed"
"status": "وضعیت سرویس",
"keySet": "کلید پیکربندی شده",
"activeAuto": "حالت خودکار: ابتدا Resend استفاده می‌شود، SMTP به عنوان جایگزین.",
"activeSmtp": "حالت خودکار: SMTP استفاده می‌شود (Resend پیکربندی نشده).",
"noneConfigured": "هیچ سرویس ایمیلی پیکربندی نشده. Resend یا SMTP را تنظیم کنید.",
"activeProvider": "ارائه‌دهنده فعال",
"testOk": "تست موفق",
"testFail": "تست ناموفق"
},
"smtp": {
"title": "پیکربندی SMTP",
@@ -1182,7 +1239,7 @@
"notesViewLabel": "چیدمان یادداشت‌ها",
"notesViewTabs": "زبانه‌ها (سبک OneNote)",
"notesViewMasonry": "کارت‌ها (شبکه‌ای)",
"selectTheme": "Select theme",
"selectTheme": "انتخاب تم",
"fontFamilyLabel": "خانواده فونت",
"fontFamilyDescription": "فونت استفاده شده در سراسر برنامه را انتخاب کنید",
"selectFontFamily": "Inter برای خوانایی بهینه شده است، سیستم از فونت بومی سیستم‌عامل شما استفاده می‌کند",
@@ -1376,10 +1433,10 @@
"subtitle": "خودکارسازی وظایف پایش و تحقیق شما",
"newAgent": "عامل جدید",
"myAgents": "عامل‌های من",
"searchPlaceholder": "Search agents...",
"filterAll": "All",
"newBadge": "New",
"noResults": "No agents match your search.",
"searchPlaceholder": "جستجوی عامل‌ها...",
"filterAll": "همه",
"newBadge": "جدید",
"noResults": "هیچ عاملی با جستجوی شما مطابقت ندارد.",
"noAgents": "بدون عامل",
"noAgentsDescription": "اولین عامل خود را بسازید یا قالب زیر را نصب کنید تا وظایف پایش خود را خودکار کنید.",
"types": {
@@ -1423,8 +1480,8 @@
"researchTopicPlaceholder": "مثال: آخرین پیشرفت‌ها در هوش مصنوعی",
"notifyEmail": "اعلان ایمیل",
"notifyEmailHint": "پس از هر اجرا، ایمیل حاوی نتایج عامل دریافت کنید",
"includeImages": "Include images",
"includeImagesHint": "Extract images from scraped pages and attach them to the generated note"
"includeImages": "شامل تصاویر",
"includeImagesHint": "استخراج تصاویر از صفحات استخراج شده و پیوست به یادداشت تولید شده"
},
"frequencies": {
"manual": "دستی",
@@ -1434,19 +1491,19 @@
"monthly": "ماهانه"
},
"schedule": {
"nextRun": "Next run",
"pending": "Pending trigger",
"time": "Time",
"dayOfWeek": "Day of week",
"dayOfMonth": "Day of month",
"nextRun": "اجرای بعدی",
"pending": "در انتظار راه‌اندازی",
"time": "زمان",
"dayOfWeek": "روز هفته",
"dayOfMonth": "روز ماه",
"days": {
"mon": "Monday",
"tue": "Tuesday",
"wed": "Wednesday",
"thu": "Thursday",
"fri": "Friday",
"sat": "Saturday",
"sun": "Sunday"
"mon": "دوشنبه",
"tue": "سه‌شنبه",
"wed": "چهارشنبه",
"thu": "پنجشنبه",
"fri": "جمعه",
"sat": "شنبه",
"sun": "یکشنبه"
}
},
"status": {
@@ -1478,8 +1535,8 @@
"installSuccess": "\"{name}\" نصب شد",
"installError": "خطا در حین نصب",
"saveError": "خطا در ذخیره",
"autoRunSuccess": "Agent \"{name}\" executed automatically with success",
"autoRunError": "Agent \"{name}\" failed during automatic execution"
"autoRunSuccess": "عامل «{name}» با موفقیت به صورت خودکار اجرا شد",
"autoRunError": "عامل «{name}» در اجرای خودکار شکست خورد"
},
"templates": {
"title": "قالب‌ها",
@@ -1593,7 +1650,7 @@
"searching": "در حال جستجو...",
"noNotesFoundForContext": "هیچ یادداشت مرتبطی برای این سوال یافت نشد. با دانش عمومی خود پاسخ دهید.",
"webSearch": "جستجوی وب",
"timeoutWarning": "Response is taking longer than expected..."
"timeoutWarning": "پاسخ بیشتر از حد انتظار طول می‌کشد..."
},
"labHeader": {
"title": "آزمایشگاه",
@@ -1611,10 +1668,81 @@
"deleteSpace": "حذف فضا",
"deleted": "فضا حذف شد",
"deleteError": "خطا در حذف",
"rename": "Rename"
"rename": "تغییر نام"
},
"lab": {
"initializing": "راه‌اندازی فضای کاری",
"loadingIdeas": "بارگذاری ایده‌های شما..."
},
"richTextEditor": {
"slashHint": "↑↓ ناوبری · Enter درج · Tab تغییر بخش",
"slashLoading": "هوش مصنوعی در حال فکر کردن...",
"slashTabAll": "همه",
"slashCatBasic": "بلوک‌های پایه",
"slashCatMedia": "رسانه",
"slashCatFormatting": "قالب‌بندی",
"slashCatAi": "هوش مصنوعی",
"insertImage": "درج تصویر",
"imageUrlPlaceholder": "https://example.com/image.png",
"preview": "پیش‌نمایش",
"cancel": "لغو",
"insert": "درج",
"slashText": "متن",
"slashTextDesc": "پاراگراف ساده",
"slashH1": "عنوان ۱",
"slashH1Desc": "عنوان بخش بزرگ",
"slashH2": "عنوان ۲",
"slashH2Desc": "عنوان بخش متوسط",
"slashH3": "عنوان ۳",
"slashH3Desc": "عنوان بخش کوچک",
"slashBullet": "فهرست نقطه‌ای",
"slashBulletDesc": "فهرست بدون ترتیب",
"slashNumbered": "فهرست شماره‌دار",
"slashNumberedDesc": "فهرست مرتب شماره‌دار",
"slashTodo": "فهرست وظایف",
"slashTodoDesc": "وظایف با چک‌باکس",
"slashQuote": "نقل قول",
"slashQuoteDesc": "ثبت یک نقل قول",
"slashCode": "بلوک کد",
"slashCodeDesc": "قطعه کد",
"slashDivider": "جداکننده",
"slashDividerDesc": "جداکننده افقی",
"slashImage": "تصویر",
"slashImageDesc": "درج تصویر از URL",
"slashAlignLeft": "تراز چپ",
"slashAlignLeftDesc": "تراز متن به چپ",
"slashAlignCenter": "مرکز",
"slashAlignCenterDesc": "مرکز کردن متن",
"slashAlignRight": "تراز راست",
"slashAlignRightDesc": "تراز متن به راست",
"slashSuperscript": "بالانویس",
"slashSuperscriptDesc": "متن بالاتر از خط اصلی",
"slashSubscript": "زیرنویس",
"slashSubscriptDesc": "متن پایین‌تر از خط اصلی",
"slashClarify": "شفاف‌سازی",
"slashClarifyDesc": "روشن‌تر کردن متن",
"slashShorten": "خلاصه کردن",
"slashShortenDesc": "فشرده کردن متن",
"slashImprove": "بهبود",
"slashImproveDesc": "بهبود سبک نوشتار",
"slashExpand": "بسط دادن",
"slashExpandDesc": "توسعه و غنی‌سازی متن",
"imageModalTitle": "درج تصویر",
"imageModalPreview": "پیش‌نمایش",
"imageModalCancel": "لغو",
"imageModalInsert": "درج",
"imageModalInvalidUrl": "لطفاً یک URL معتبر وارد کنید",
"imageModalLoadFailed": "بارگذاری تصویر ناموفق بود",
"linkPlaceholder": "یک لینک بچسبانید یا تایپ کنید...",
"bold": "درشت",
"italic": "کج",
"underline": "زیرخط",
"strike": "خط‌خورده",
"code": "کد",
"highlight": "برجسته",
"superscript": "بالانویس",
"subscript": "زیرنویس",
"addBlock": "افزودن بلوک",
"placeholder": "برای دستورات '/' تایپ کنید..."
}
}