feat: Human Input Node (#32060)

The frontend and backend implementation for the human input node.

Co-authored-by: twwu <twwu@dify.ai>
Co-authored-by: JzoNg <jzongcode@gmail.com>
Co-authored-by: yyh <92089059+lyzno1@users.noreply.github.com>
Co-authored-by: zhsama <torvalds@linux.do>
This commit is contained in:
QuantumGhost
2026-02-09 14:57:23 +08:00
committed by GitHub
parent 56e3a55023
commit a1fc280102
474 changed files with 32667 additions and 2050 deletions

View File

@ -8,6 +8,7 @@
"blocks.document-extractor": "استخراج کننده سند",
"blocks.end": "خروجی",
"blocks.http-request": "درخواست HTTP",
"blocks.human-input": "ورودی انسان",
"blocks.if-else": "IF/ELSE",
"blocks.iteration": "تکرار",
"blocks.iteration-start": "شروع تکرار",
@ -38,6 +39,7 @@
"blocksAbout.document-extractor": "برای تجزیه اسناد آپلود شده به محتوای متنی استفاده می شود که به راحتی توسط LLM قابل درک است.",
"blocksAbout.end": "خروجی و نوع نتیجه یک جریان کار را تعریف کنید",
"blocksAbout.http-request": "اجازه می‌دهد تا درخواست‌های سرور از طریق پروتکل HTTP ارسال شوند",
"blocksAbout.human-input": "درخواست تأیید انسان قبل از تولید مرحله بعدی",
"blocksAbout.if-else": "اجازه می‌دهد تا جریان کار به دو شاخه بر اساس شرایط if/else تقسیم شود",
"blocksAbout.iteration": "اجرای چندین مرحله روی یک شیء لیست تا همه نتایج خروجی داده شوند.",
"blocksAbout.iteration-start": "گره شروع تکرار",
@ -145,6 +147,9 @@
"common.fileUploadTip": "ویژگی های آپلود تصویر برای آپلود فایل ارتقا یافته است.",
"common.goBackToEdit": "بازگشت به ویرایشگر",
"common.handMode": "حالت دست",
"common.humanInputEmailTip": "ایمیل (روش تحویل) به گیرندگان پیکربندی شده شما ارسال شد",
"common.humanInputEmailTipInDebugMode": "ایمیل (روش تحویل) به <email>{{email}}</email> ارسال شد",
"common.humanInputWebappTip": "فقط پیش‌نمایش اشکال‌زدایی، کاربر این را در برنامه وب نخواهد دید.",
"common.importDSL": "وارد کردن DSL",
"common.importDSLTip": "پیش‌نویس فعلی بر روی هم نوشته خواهد شد. قبل از وارد کردن، جریان کار را به عنوان نسخه پشتیبان صادر کنید.",
"common.importFailure": "خطا در وارد کردن",
@ -500,6 +505,104 @@
"nodes.http.value": "مقدار",
"nodes.http.verifySSL.title": "گواهی SSL را تأیید کنید",
"nodes.http.verifySSL.warningTooltip": "غیرفعال کردن تأیید SSL برای محیط‌های تولید توصیه نمی‌شود. این فقط باید در توسعه یا آزمایش استفاده شود، زیرا این کار اتصال را در معرض تهدیدات امنیتی مانند حملات میانی قرار می‌دهد.",
"nodes.humanInput.deliveryMethod.added": "اضافه شد",
"nodes.humanInput.deliveryMethod.contactTip1": "روش تحویلی که نیاز دارید وجود ندارد؟",
"nodes.humanInput.deliveryMethod.contactTip2": "به ما در <email>support@dify.ai</email> اطلاع دهید.",
"nodes.humanInput.deliveryMethod.emailConfigure.allMembers": "همه اعضا ({{workspaceName}})",
"nodes.humanInput.deliveryMethod.emailConfigure.body": "محتوا",
"nodes.humanInput.deliveryMethod.emailConfigure.bodyPlaceholder": "محتوای ایمیل را وارد کنید",
"nodes.humanInput.deliveryMethod.emailConfigure.debugMode": "حالت اشکال‌زدایی",
"nodes.humanInput.deliveryMethod.emailConfigure.debugModeTip1": "در حالت اشکال‌زدایی، ایمیل فقط به حساب ایمیل شما <email>{{email}}</email> ارسال می‌شود.",
"nodes.humanInput.deliveryMethod.emailConfigure.debugModeTip2": "محیط تولید تحت تأثیر قرار نمی‌گیرد.",
"nodes.humanInput.deliveryMethod.emailConfigure.description": "ارسال درخواست ورودی از طریق ایمیل",
"nodes.humanInput.deliveryMethod.emailConfigure.memberSelector.add": "+ اضافه کردن",
"nodes.humanInput.deliveryMethod.emailConfigure.memberSelector.added": "اضافه شد",
"nodes.humanInput.deliveryMethod.emailConfigure.memberSelector.placeholder": "ایمیل، با کاما جدا شده",
"nodes.humanInput.deliveryMethod.emailConfigure.memberSelector.title": "اضافه کردن اعضای فضای کاری یا گیرندگان خارجی",
"nodes.humanInput.deliveryMethod.emailConfigure.memberSelector.trigger": "انتخاب",
"nodes.humanInput.deliveryMethod.emailConfigure.recipient": "گیرنده",
"nodes.humanInput.deliveryMethod.emailConfigure.requestURLTip": "متغیر URL درخواست، نقطه ورودی برای ورودی انسان است.",
"nodes.humanInput.deliveryMethod.emailConfigure.subject": "موضوع",
"nodes.humanInput.deliveryMethod.emailConfigure.subjectPlaceholder": "موضوع ایمیل را وارد کنید",
"nodes.humanInput.deliveryMethod.emailConfigure.title": "پیکربندی ایمیل",
"nodes.humanInput.deliveryMethod.emailSender.debugDone": "یک ایمیل آزمایشی به <email>{{email}}</email> ارسال شد. لطفاً صندوق ورودی خود را بررسی کنید.",
"nodes.humanInput.deliveryMethod.emailSender.debugModeTip": "حالت اشکال‌زدایی فعال است.",
"nodes.humanInput.deliveryMethod.emailSender.debugModeTip2": "ایمیل به <email>{{email}}</email> ارسال خواهد شد.",
"nodes.humanInput.deliveryMethod.emailSender.done": "ایمیل ارسال شد",
"nodes.humanInput.deliveryMethod.emailSender.optional": "(اختیاری)",
"nodes.humanInput.deliveryMethod.emailSender.send": "ارسال ایمیل",
"nodes.humanInput.deliveryMethod.emailSender.testSendTip": "ارسال ایمیل‌های آزمایشی به گیرندگان پیکربندی شده",
"nodes.humanInput.deliveryMethod.emailSender.testSendTipInDebugMode": "ارسال ایمیل آزمایشی به {{email}}",
"nodes.humanInput.deliveryMethod.emailSender.tip": "توصیه می‌شود <strong>حالت اشکال‌زدایی را فعال کنید</strong> برای آزمایش تحویل ایمیل.",
"nodes.humanInput.deliveryMethod.emailSender.title": "ارسال‌کننده ایمیل آزمایشی",
"nodes.humanInput.deliveryMethod.emailSender.vars": "متغیرها در محتوای فرم",
"nodes.humanInput.deliveryMethod.emailSender.varsTip": "متغیرهای فرم را پر کنید تا شبیه‌سازی کنید آنچه گیرندگان واقعاً می‌بینند.",
"nodes.humanInput.deliveryMethod.emailSender.wholeTeamDone1": "ایمیل به اعضای <team>{{team}}</team> و آدرس‌های ایمیل زیر ارسال شد:",
"nodes.humanInput.deliveryMethod.emailSender.wholeTeamDone2": "ایمیل به اعضای <team>{{team}}</team> ارسال شد.",
"nodes.humanInput.deliveryMethod.emailSender.wholeTeamDone3": "ایمیل به آدرس‌های ایمیل زیر ارسال شد:",
"nodes.humanInput.deliveryMethod.emailSender.wholeTeamTip1": "ایمیل به اعضای <team>{{team}}</team> و آدرس‌های ایمیل زیر ارسال خواهد شد:",
"nodes.humanInput.deliveryMethod.emailSender.wholeTeamTip2": "ایمیل به اعضای <team>{{team}}</team> ارسال خواهد شد.",
"nodes.humanInput.deliveryMethod.emailSender.wholeTeamTip3": "ایمیل به آدرس‌های ایمیل زیر ارسال خواهد شد:",
"nodes.humanInput.deliveryMethod.emptyTip": "هیچ روش تحویلی اضافه نشده، عملیات قابل اجرا نیست.",
"nodes.humanInput.deliveryMethod.notAvailableInTriggerMode": "در دسترس نیست",
"nodes.humanInput.deliveryMethod.notConfigured": "پیکربندی نشده",
"nodes.humanInput.deliveryMethod.title": "روش تحویل",
"nodes.humanInput.deliveryMethod.tooltip": "نحوه تحویل فرم ورودی انسان به کاربر.",
"nodes.humanInput.deliveryMethod.types.discord.description": "ارسال درخواست ورودی از طریق Discord",
"nodes.humanInput.deliveryMethod.types.discord.title": "Discord",
"nodes.humanInput.deliveryMethod.types.email.description": "ارسال درخواست ورودی از طریق ایمیل",
"nodes.humanInput.deliveryMethod.types.email.title": "ایمیل",
"nodes.humanInput.deliveryMethod.types.slack.description": "ارسال درخواست ورودی از طریق Slack",
"nodes.humanInput.deliveryMethod.types.slack.title": "Slack",
"nodes.humanInput.deliveryMethod.types.teams.description": "ارسال درخواست ورودی از طریق Teams",
"nodes.humanInput.deliveryMethod.types.teams.title": "Teams",
"nodes.humanInput.deliveryMethod.types.webapp.description": "نمایش به کاربر نهایی در وب‌اپلیکیشن",
"nodes.humanInput.deliveryMethod.types.webapp.title": "وب‌اپلیکیشن",
"nodes.humanInput.deliveryMethod.upgradeTip": "باز کردن قفل تحویل ایمیل برای ورودی انسان",
"nodes.humanInput.deliveryMethod.upgradeTipContent": "ارسال درخواست‌های تأیید از طریق ایمیل قبل از اقدام عوامل — مفید برای گردش‌کارهای انتشار و تأیید.",
"nodes.humanInput.deliveryMethod.upgradeTipHide": "رد کردن",
"nodes.humanInput.editor.previewTip": "در حالت پیش‌نمایش، دکمه‌های اقدام کاربردی ندارند.",
"nodes.humanInput.errorMsg.duplicateActionId": "شناسه اقدام تکراری در اقدامات کاربر یافت شد",
"nodes.humanInput.errorMsg.emptyActionId": "شناسه اقدام نمی‌تواند خالی باشد",
"nodes.humanInput.errorMsg.emptyActionTitle": "عنوان اقدام نمی‌تواند خالی باشد",
"nodes.humanInput.errorMsg.noDeliveryMethod": "لطفاً حداقل یک روش تحویل انتخاب کنید",
"nodes.humanInput.errorMsg.noDeliveryMethodEnabled": "لطفاً حداقل یک روش تحویل را فعال کنید",
"nodes.humanInput.errorMsg.noUserActions": "لطفاً حداقل یک اقدام کاربر اضافه کنید",
"nodes.humanInput.formContent.hotkeyTip": "<Key/> را برای درج متغیر، <CtrlKey/><Key/> را برای درج فیلد ورودی فشار دهید",
"nodes.humanInput.formContent.placeholder": "محتوا را اینجا تایپ کنید",
"nodes.humanInput.formContent.preview": "پیش‌نمایش",
"nodes.humanInput.formContent.title": "محتوای فرم",
"nodes.humanInput.formContent.tooltip": "آنچه کاربران پس از باز کردن فرم خواهند دید. از قالب‌بندی Markdown پشتیبانی می‌کند.",
"nodes.humanInput.insertInputField.insert": "درج",
"nodes.humanInput.insertInputField.prePopulateField": "پیش‌پر کردن فیلد",
"nodes.humanInput.insertInputField.prePopulateFieldPlaceholder": "<staticContent/> یا <variable/> اضافه کنید. کاربران در ابتدا این محتوا را خواهند دید، یا خالی بگذارید.",
"nodes.humanInput.insertInputField.saveResponseAs": "ذخیره پاسخ به عنوان",
"nodes.humanInput.insertInputField.saveResponseAsPlaceholder": "این متغیر را برای ارجاع بعدی نام‌گذاری کنید",
"nodes.humanInput.insertInputField.staticContent": "محتوای ثابت",
"nodes.humanInput.insertInputField.title": "درج فیلد ورودی",
"nodes.humanInput.insertInputField.useConstantInstead": "به جای آن از ثابت استفاده کنید",
"nodes.humanInput.insertInputField.useVarInstead": "به جای آن از متغیر استفاده کنید",
"nodes.humanInput.insertInputField.variable": "متغیر",
"nodes.humanInput.insertInputField.variableNameInvalid": "نام متغیر فقط می‌تواند شامل حروف، اعداد و زیرخط باشد و نمی‌تواند با عدد شروع شود",
"nodes.humanInput.log.backstageInputURL": "URL ورودی پشت صحنه:",
"nodes.humanInput.log.reason": "دلیل:",
"nodes.humanInput.log.reasonContent": "ورودی انسان برای ادامه لازم است",
"nodes.humanInput.singleRun.back": "بازگشت",
"nodes.humanInput.singleRun.button": "تولید فرم",
"nodes.humanInput.singleRun.label": "متغیرهای فرم",
"nodes.humanInput.timeout.days": "روز",
"nodes.humanInput.timeout.hours": "ساعت",
"nodes.humanInput.timeout.title": "تایم‌اوت",
"nodes.humanInput.userActions.actionIdFormatTip": "شناسه اقدام باید با حرف یا زیرخط شروع شود و به دنبال آن حروف، اعداد یا زیرخط بیاید",
"nodes.humanInput.userActions.actionIdTooLong": "شناسه اقدام باید {{maxLength}} کاراکتر یا کمتر باشد",
"nodes.humanInput.userActions.actionNamePlaceholder": "نام اقدام",
"nodes.humanInput.userActions.buttonTextPlaceholder": "متن نمایش دکمه",
"nodes.humanInput.userActions.buttonTextTooLong": "متن دکمه باید {{maxLength}} کاراکتر یا کمتر باشد",
"nodes.humanInput.userActions.chooseStyle": "یک سبک دکمه انتخاب کنید",
"nodes.humanInput.userActions.emptyTip": "روی دکمه '+' کلیک کنید تا اقدامات کاربر اضافه شود",
"nodes.humanInput.userActions.title": "اقدامات کاربر",
"nodes.humanInput.userActions.tooltip": "دکمه‌هایی را تعریف کنید که کاربران می‌توانند برای پاسخ به این فرم کلیک کنند. هر دکمه می‌تواند مسیرهای گردش کار مختلفی را فعال کند. شناسه اقدام باید با حرف یا زیرخط شروع شود و به دنبال آن حروف، اعداد یا زیرخط بیاید.",
"nodes.humanInput.userActions.triggered": "<strong>{{actionName}}</strong> فعال شد",
"nodes.ifElse.addCondition": "افزودن شرط",
"nodes.ifElse.addSubVariable": "متغیر فرعی",
"nodes.ifElse.and": "و",