Merge remote-tracking branch 'origin/build/feat/hitl' into wip/hitl-merge-web-conflicts-20260206-175434

# Conflicts:
#	api/.env.example
#	api/core/app/apps/advanced_chat/app_generator.py
#	api/core/app/apps/advanced_chat/app_runner.py
#	api/core/app/apps/advanced_chat/generate_task_pipeline.py
#	api/core/app/apps/workflow/app_generator.py
#	api/core/app/apps/workflow/app_runner.py
#	api/core/app/entities/queue_entities.py
#	api/core/workflow/node_events/__init__.py
#	api/core/workflow/runtime/graph_runtime_state.py
#	api/fields/message_fields.py
#	api/services/workflow_service.py
#	web/app/components/app/app-publisher/index.tsx
#	web/app/components/base/chat/chat/answer/index.tsx
#	web/app/components/base/chat/chat/hooks.ts
#	web/app/components/base/chat/chat/type.ts
#	web/app/components/base/prompt-editor/index.tsx
#	web/app/components/rag-pipeline/hooks/use-available-nodes-meta-data.ts
#	web/app/components/share/text-generation/result/header.tsx
#	web/app/components/workflow-app/components/workflow-header/features-trigger.tsx
#	web/app/components/workflow-app/hooks/use-workflow-run.ts
#	web/app/components/workflow/hooks/use-checklist.ts
#	web/app/components/workflow/hooks/use-fetch-workflow-inspect-vars.ts
#	web/app/components/workflow/hooks/use-workflow.ts
#	web/app/components/workflow/nodes/_base/components/variable/var-reference-picker.tsx
#	web/app/components/workflow/nodes/_base/components/variable/var-reference-vars.tsx
#	web/app/components/workflow/nodes/_base/node.tsx
#	web/app/components/workflow/nodes/tool/components/mixed-variable-text-input/components/placeholder.tsx
#	web/app/components/workflow/panel/debug-and-preview/hooks.ts
#	web/app/components/workflow/panel/workflow-preview.tsx
#	web/app/components/workflow/store/workflow/workflow-slice.ts
#	web/eslint-suppressions.json
#	web/i18n/en-US/common.json
#	web/i18n/zh-Hans/common.json
#	web/i18n/zh-Hant/common.json
#	web/service/workflow.ts
This commit is contained in:
yyh
2026-02-06 19:13:51 +08:00
266 changed files with 14123 additions and 1790 deletions

View File

@ -8,6 +8,7 @@
"blocks.document-extractor": "Экстрактор документов",
"blocks.end": "Вывод",
"blocks.http-request": "HTTP-запрос",
"blocks.human-input": "Ввод человека",
"blocks.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": "Начальный узел итерации",
@ -168,6 +170,9 @@
"common.fileUploadTip": "Функции загрузки изображений были обновлены до загрузки файлов.",
"common.goBackToEdit": "Вернуться к редактору",
"common.handMode": "Режим руки",
"common.humanInputEmailTip": "Электронное письмо (метод доставки) отправлено настроенным получателям",
"common.humanInputEmailTipInDebugMode": "Электронное письмо (метод доставки) отправлено на <email>{{email}}</email>",
"common.humanInputWebappTip": "Только предварительный просмотр отладки, пользователь не увидит это в веб-приложении.",
"common.importDSL": "Импортировать DSL",
"common.importDSLTip": "Текущий черновик будет перезаписан. Экспортируйте рабочий процесс в качестве резервной копии перед импортом.",
"common.importFailure": "Ошибка импорта",
@ -523,6 +528,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": "Email, через запятую",
"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": "и",