feat: introduce trigger functionality (#27644)
Signed-off-by: lyzno1 <yuanyouhuilyz@gmail.com> Co-authored-by: Stream <Stream_2@qq.com> Co-authored-by: lyzno1 <92089059+lyzno1@users.noreply.github.com> Co-authored-by: zhsama <torvalds@linux.do> Co-authored-by: Harry <xh001x@hotmail.com> Co-authored-by: lyzno1 <yuanyouhuilyz@gmail.com> Co-authored-by: yessenia <yessenia.contact@gmail.com> Co-authored-by: hjlarry <hjlarry@163.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: WTW0313 <twwu@dify.ai> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -9,8 +9,10 @@ const translation = {
|
||||
publish: '发布',
|
||||
update: '更新',
|
||||
publishUpdate: '发布更新',
|
||||
run: '运行',
|
||||
run: '测试运行',
|
||||
running: '运行中',
|
||||
chooseStartNodeToRun: '选择启动节点进行运行',
|
||||
runAllTriggers: '运行所有触发器',
|
||||
inRunMode: '在运行模式中',
|
||||
inPreview: '预览中',
|
||||
inPreviewMode: '预览中',
|
||||
@@ -46,7 +48,8 @@ const translation = {
|
||||
needConnectTip: '此节点尚未连接到其他节点',
|
||||
maxTreeDepth: '每个分支最大限制 {{depth}} 个节点',
|
||||
needAdd: '必须添加{{node}}节点',
|
||||
needEndNode: '必须添加结束节点',
|
||||
needOutputNode: '必须添加输出节点',
|
||||
needStartNode: '必须添加至少一个开始节点',
|
||||
needAnswerNode: '必须添加直接回复节点',
|
||||
workflowProcess: '工作流',
|
||||
notRunning: '尚未运行',
|
||||
@@ -76,12 +79,14 @@ const translation = {
|
||||
exportSVG: '导出为 SVG',
|
||||
currentView: '当前视图',
|
||||
currentWorkflow: '整个工作流',
|
||||
moreActions: '更多操作',
|
||||
model: '模型',
|
||||
workflowAsTool: '发布为工具',
|
||||
configureRequired: '需要进行配置',
|
||||
configure: '配置',
|
||||
manageInTools: '访问工具页',
|
||||
workflowAsToolTip: '工作流更新后需要重新配置工具参数',
|
||||
workflowAsToolDisabledHint: '请先发布最新的工作流,并确保已连接的 User Input 节点后再配置为工具。',
|
||||
viewDetailInTracingPanel: '查看详细信息',
|
||||
syncingData: '同步数据中,只需几秒钟。',
|
||||
importDSL: '导入 DSL',
|
||||
@@ -140,6 +145,19 @@ const translation = {
|
||||
export: '导出包含 Secret 值的 DSL',
|
||||
},
|
||||
},
|
||||
globalVar: {
|
||||
title: '系统变量',
|
||||
description: '系统变量是全局变量,在类型匹配时无需连线即可被任意节点引用,例如终端用户 ID 和工作流 ID。',
|
||||
fieldsDescription: {
|
||||
conversationId: '会话 ID',
|
||||
dialogCount: '会话次数',
|
||||
userId: '用户 ID',
|
||||
triggerTimestamp: '应用开始运行的时间戳',
|
||||
appId: '应用 ID',
|
||||
workflowId: '工作流 ID',
|
||||
workflowRunId: '工作流运行 ID',
|
||||
},
|
||||
},
|
||||
sidebar: {
|
||||
exportWarning: '导出当前已保存版本',
|
||||
exportWarningDesc: '这将导出您工作流的当前已保存版本。如果您在编辑器中有未保存的更改,请先使用工作流画布中的导出选项保存它们。',
|
||||
@@ -213,6 +231,16 @@ const translation = {
|
||||
invalidVariable: '无效的变量',
|
||||
noValidTool: '{{field}} 无可用工具',
|
||||
toolParameterRequired: '{{field}}: 参数 [{{param}}] 不能为空',
|
||||
startNodeRequired: '请先添加开始节点,然后再{{operation}}',
|
||||
},
|
||||
error: {
|
||||
startNodeRequired: '请先添加开始节点,然后再{{operation}}',
|
||||
operations: {
|
||||
connectingNodes: '连接节点',
|
||||
addingNodes: '添加节点',
|
||||
modifyingWorkflow: '修改工作流',
|
||||
updatingWorkflow: '更新工作流',
|
||||
},
|
||||
},
|
||||
singleRun: {
|
||||
testRun: '测试运行',
|
||||
@@ -229,6 +257,8 @@ const translation = {
|
||||
'searchBlock': '搜索节点',
|
||||
'blocks': '节点',
|
||||
'searchTool': '搜索工具',
|
||||
'searchTrigger': '搜索触发器...',
|
||||
'allTriggers': '全部触发器',
|
||||
'tools': '工具',
|
||||
'allTool': '全部',
|
||||
'plugin': '插件',
|
||||
@@ -239,15 +269,29 @@ const translation = {
|
||||
'transform': '转换',
|
||||
'utilities': '工具',
|
||||
'noResult': '未找到匹配项',
|
||||
'noPluginsFound': '未找到插件',
|
||||
'requestToCommunity': '向社区反馈',
|
||||
'agent': 'Agent 策略',
|
||||
'allAdded': '已添加全部',
|
||||
'addAll': '添加全部',
|
||||
'sources': '数据源',
|
||||
'searchDataSource': '搜索数据源',
|
||||
'start': '开始',
|
||||
'featuredTools': '精选推荐',
|
||||
'showMoreFeatured': '查看更多',
|
||||
'showLessFeatured': '收起',
|
||||
'installed': '已安装',
|
||||
'pluginByAuthor': '来自 {{author}}',
|
||||
'usePlugin': '选择工具',
|
||||
'hideActions': '收起工具',
|
||||
'noFeaturedPlugins': '前往插件市场查看更多工具',
|
||||
'noFeaturedTriggers': '前往插件市场查看更多触发器',
|
||||
'startDisabledTip': '触发节点与用户输入节点互斥。',
|
||||
},
|
||||
blocks: {
|
||||
'start': '开始',
|
||||
'end': '结束',
|
||||
'start': '用户输入',
|
||||
'originalStartNode': '原始开始节点',
|
||||
'end': '输出',
|
||||
'answer': '直接回复',
|
||||
'llm': 'LLM',
|
||||
'knowledge-retrieval': '知识检索',
|
||||
@@ -270,10 +314,14 @@ const translation = {
|
||||
'loop-end': '退出循环',
|
||||
'knowledge-index': '知识库',
|
||||
'datasource': '数据源',
|
||||
'trigger-webhook': 'Webhook 触发器',
|
||||
'trigger-schedule': '定时触发器',
|
||||
'trigger-plugin': '插件触发器',
|
||||
},
|
||||
customWebhook: '自定义 Webhook',
|
||||
blocksAbout: {
|
||||
'start': '定义一个 workflow 流程启动的初始参数',
|
||||
'end': '定义一个 workflow 流程的结束和结果类型',
|
||||
'end': '定义一个 workflow 流程的输出和结果类型',
|
||||
'answer': '定义一个聊天对话的回复内容',
|
||||
'llm': '调用大语言模型回答问题或者对自然语言进行处理',
|
||||
'knowledge-retrieval': '允许你从知识库中查询与用户问题相关的文本内容',
|
||||
@@ -294,7 +342,11 @@ const translation = {
|
||||
'agent': '调用大型语言模型回答问题或处理自然语言',
|
||||
'knowledge-index': '知识库节点',
|
||||
'datasource': '数据源节点',
|
||||
'trigger-webhook': 'Webhook 触发器接收来自第三方系统的 HTTP 推送以自动触发工作流。',
|
||||
'trigger-schedule': '基于时间的工作流触发器,按计划启动工作流',
|
||||
'trigger-plugin': '从外部平台事件启动工作流的第三方集成触发器',
|
||||
},
|
||||
difyTeam: 'Dify 团队',
|
||||
operator: {
|
||||
zoomIn: '放大',
|
||||
zoomOut: '缩小',
|
||||
@@ -324,7 +376,7 @@ const translation = {
|
||||
panel: {
|
||||
userInputField: '用户输入字段',
|
||||
changeBlock: '更改节点',
|
||||
helpLink: '帮助链接',
|
||||
helpLink: '查看帮助文档',
|
||||
about: '关于',
|
||||
createdBy: '作者',
|
||||
nextStep: '下一步',
|
||||
@@ -334,12 +386,14 @@ const translation = {
|
||||
checklist: '检查清单',
|
||||
checklistTip: '发布前确保所有问题均已解决',
|
||||
checklistResolved: '所有问题均已解决',
|
||||
goTo: '转到',
|
||||
startNode: '开始节点',
|
||||
organizeBlocks: '整理节点',
|
||||
change: '更改',
|
||||
optional: '(选填)',
|
||||
moveToThisNode: '定位至此节点',
|
||||
maximize: '最大化画布',
|
||||
minimize: '退出最大化',
|
||||
scrollToSelectedNode: '滚动至选中节点',
|
||||
optional_and_hidden: '(选填 & 隐藏)',
|
||||
},
|
||||
nodes: {
|
||||
@@ -966,6 +1020,138 @@ const translation = {
|
||||
rerankingModelIsRequired: 'Reranking 模型是必需的',
|
||||
rerankingModelIsInvalid: '无效的 Reranking 模型',
|
||||
},
|
||||
triggerSchedule: {
|
||||
frequency: {
|
||||
label: '频率',
|
||||
monthly: '每月',
|
||||
daily: '每日',
|
||||
hourly: '每小时',
|
||||
weekly: '每周',
|
||||
},
|
||||
title: '定时触发',
|
||||
nodeTitle: '定时触发器',
|
||||
useCronExpression: '使用 Cron 表达式',
|
||||
selectFrequency: '选择频率',
|
||||
nextExecutionTimes: '接下来 5 次执行时间',
|
||||
hours: '小时',
|
||||
minutes: '分钟',
|
||||
onMinute: '分钟',
|
||||
cronExpression: 'Cron 表达式',
|
||||
weekdays: '星期',
|
||||
executeNow: '立即执行',
|
||||
frequencyLabel: '频率',
|
||||
nextExecution: '下次执行',
|
||||
time: '时间',
|
||||
lastDay: '最后一天',
|
||||
startTime: '开始时间',
|
||||
selectDateTime: '选择日期和时间',
|
||||
lastDayTooltip: '并非所有月份都有 31 天。使用"最后一天"选项来选择每个月的最后一天。',
|
||||
nextExecutionTime: '下次执行时间',
|
||||
useVisualPicker: '使用可视化配置',
|
||||
days: '天',
|
||||
notConfigured: '未配置',
|
||||
mode: '模式',
|
||||
timezone: '时区',
|
||||
visualConfig: '可视化配置',
|
||||
monthlyDay: '月份日期',
|
||||
executionTime: '执行时间',
|
||||
invalidTimezone: '无效的时区',
|
||||
invalidCronExpression: '无效的 Cron 表达式',
|
||||
noValidExecutionTime: '无法计算有效的执行时间',
|
||||
executionTimeCalculationError: '执行时间计算失败',
|
||||
invalidFrequency: '无效的频率',
|
||||
invalidStartTime: '无效的开始时间',
|
||||
startTimeMustBeFuture: '开始时间必须是将来的时间',
|
||||
invalidTimeFormat: '无效的时间格式(预期格式:HH:MM AM/PM)',
|
||||
invalidWeekday: '无效的工作日:{{weekday}}',
|
||||
invalidMonthlyDay: '月份日期必须在 1-31 之间或为"last"',
|
||||
invalidOnMinute: '分钟必须在 0-59 之间',
|
||||
invalidExecutionTime: '无效的执行时间',
|
||||
executionTimeMustBeFuture: '执行时间必须是将来的时间',
|
||||
},
|
||||
triggerWebhook: {
|
||||
configPlaceholder: 'Webhook 触发器配置将在此处实现',
|
||||
title: 'Webhook 触发器',
|
||||
nodeTitle: '🔗 Webhook 触发器',
|
||||
webhookUrl: 'Webhook URL',
|
||||
webhookUrlPlaceholder: '点击生成以创建 webhook URL',
|
||||
generate: '生成',
|
||||
copy: '复制',
|
||||
test: '测试',
|
||||
urlGenerated: 'Webhook URL 生成成功',
|
||||
urlGenerationFailed: '生成 Webhook URL 失败',
|
||||
urlCopied: 'URL 已复制到剪贴板',
|
||||
method: '方法',
|
||||
contentType: '内容类型',
|
||||
queryParameters: '查询参数',
|
||||
headerParameters: 'Header 参数',
|
||||
requestBodyParameters: '请求体参数',
|
||||
parameterName: '变量名',
|
||||
varName: '变量名',
|
||||
varType: '类型',
|
||||
varNamePlaceholder: '输入变量名...',
|
||||
headerName: '变量名',
|
||||
required: '必填',
|
||||
addParameter: '添加',
|
||||
addHeader: '添加',
|
||||
noParameters: '未配置任何参数',
|
||||
noQueryParameters: '未配置查询参数',
|
||||
noHeaders: '未配置 Header',
|
||||
noBodyParameters: '未配置请求体参数',
|
||||
debugUrlTitle: '测试运行时,请始终使用此URL',
|
||||
debugUrlCopy: '点击复制',
|
||||
debugUrlCopied: '已复制!',
|
||||
errorHandling: '错误处理',
|
||||
errorStrategy: '错误处理',
|
||||
responseConfiguration: '响应',
|
||||
asyncMode: '异步模式',
|
||||
statusCode: '状态码',
|
||||
responseBody: '响应体',
|
||||
responseBodyPlaceholder: '在此输入您的响应体',
|
||||
headers: 'Headers',
|
||||
validation: {
|
||||
webhookUrlRequired: '需要提供Webhook URL',
|
||||
invalidParameterType: '参数"{{name}}"的参数类型"{{type}}"无效',
|
||||
},
|
||||
},
|
||||
triggerPlugin: {
|
||||
authorized: '已授权',
|
||||
notConfigured: '未配置',
|
||||
error: '错误',
|
||||
configuration: '配置',
|
||||
remove: '移除',
|
||||
or: '或',
|
||||
useOAuth: '使用 OAuth',
|
||||
useApiKey: '使用 API Key',
|
||||
authenticationFailed: '身份验证失败',
|
||||
authenticationSuccess: '身份验证成功',
|
||||
oauthConfigFailed: 'OAuth 配置失败',
|
||||
configureOAuthClient: '配置 OAuth 客户端',
|
||||
oauthClientDescription: '配置 OAuth 客户端凭据以启用身份验证',
|
||||
oauthClientSaved: 'OAuth 客户端配置保存成功',
|
||||
configureApiKey: '配置 API Key',
|
||||
apiKeyDescription: '配置 API key 凭据进行身份验证',
|
||||
apiKeyConfigured: 'API key 配置成功',
|
||||
configurationFailed: '配置失败',
|
||||
failedToStart: '启动身份验证流程失败',
|
||||
credentialsVerified: '凭据验证成功',
|
||||
credentialVerificationFailed: '凭据验证失败',
|
||||
verifyAndContinue: '验证并继续',
|
||||
configureParameters: '配置参数',
|
||||
parametersDescription: '配置触发器参数和属性',
|
||||
configurationComplete: '配置完成',
|
||||
configurationCompleteDescription: '您的触发器已成功配置',
|
||||
configurationCompleteMessage: '您的触发器配置已完成,现在可以使用了。',
|
||||
parameters: '参数',
|
||||
properties: '属性',
|
||||
propertiesDescription: '此触发器的额外配置属性',
|
||||
noConfigurationRequired: '此触发器不需要额外配置。',
|
||||
subscriptionName: '订阅名称',
|
||||
subscriptionNameDescription: '为此触发器订阅输入一个唯一名称',
|
||||
subscriptionNamePlaceholder: '输入订阅名称...',
|
||||
subscriptionNameRequired: '订阅名称是必需的',
|
||||
subscriptionRequired: '需要配置订阅',
|
||||
},
|
||||
},
|
||||
tracing: {
|
||||
stopBy: '由{{user}}终止',
|
||||
@@ -1027,6 +1213,18 @@ const translation = {
|
||||
view: '查看记录',
|
||||
edited: '已编辑',
|
||||
reset: '还原至上一次运行',
|
||||
listening: {
|
||||
title: '正在监听触发器事件…',
|
||||
tip: '您现在可以向 HTTP {{nodeName}} 端点发送测试请求以模拟事件触发,或将其用作实时事件调试的回调 URL。所有输出都可以在变量检查器中直接查看。',
|
||||
tipPlugin: '现在您可以在 {{- pluginName}} 中创建事件,并在变量检查器中查看这些事件的输出。',
|
||||
tipSchedule: '正在监听计划触发器事件。\n下一次计划运行时间:{{nextTriggerTime}}',
|
||||
tipFallback: '正在等待触发器事件,输出结果将在此显示。',
|
||||
defaultNodeName: '此触发器',
|
||||
defaultPluginName: '此插件触发器',
|
||||
defaultScheduleTime: '未设置',
|
||||
selectedTriggers: '所选触发器',
|
||||
stopButton: '停止',
|
||||
},
|
||||
trigger: {
|
||||
normal: '变量检查',
|
||||
running: '缓存中',
|
||||
@@ -1052,6 +1250,30 @@ const translation = {
|
||||
noDependents: '无被依赖',
|
||||
},
|
||||
},
|
||||
triggerStatus: {
|
||||
enabled: '触发器',
|
||||
disabled: '触发器 • 已禁用',
|
||||
},
|
||||
entryNodeStatus: {
|
||||
enabled: '开始',
|
||||
disabled: '开始 • 已禁用',
|
||||
},
|
||||
onboarding: {
|
||||
title: '选择开始节点来开始',
|
||||
description: '不同的开始节点具有不同的功能。不用担心,您随时可以更改它们。',
|
||||
userInputFull: '用户输入(原始开始节点)',
|
||||
userInputDescription: '允许设置用户输入变量的开始节点,具有Web应用程序、服务API、MCP服务器和工作流即工具功能。',
|
||||
trigger: '触发器',
|
||||
triggerDescription: '触发器可以作为工作流的开始节点,例如定时任务、自定义webhook或与其他应用程序的集成。',
|
||||
back: '返回',
|
||||
learnMore: '了解更多',
|
||||
aboutStartNode: '关于开始节点。',
|
||||
escTip: {
|
||||
press: '按',
|
||||
key: 'esc',
|
||||
toDismiss: '键关闭',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
|
||||
Reference in New Issue
Block a user