Files
urbanLifeline/dify/web/i18n/zh-Hans/workflow.ts
2025-12-01 17:21:38 +08:00

1292 lines
48 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const translation = {
common: {
undo: '撤销',
redo: '重做',
editing: '编辑中',
autoSaved: '自动保存',
unpublished: '未发布',
published: '已发布',
publish: '发布',
update: '更新',
publishUpdate: '发布更新',
run: '测试运行',
running: '运行中',
listening: '监听中',
chooseStartNodeToRun: '选择启动节点进行运行',
runAllTriggers: '运行所有触发器',
inRunMode: '在运行模式中',
inPreview: '预览中',
inPreviewMode: '预览中',
preview: '预览',
viewRunHistory: '查看运行历史',
runHistory: '运行历史',
goBackToEdit: '返回编辑模式',
conversationLog: '对话记录',
features: '功能',
featuresDescription: '增强 web app 用户体验',
ImageUploadLegacyTip: '现在可以在 start 表单中创建文件类型变量。未来我们将不继续支持图片上传功能。',
fileUploadTip: '图片上传功能已扩展为文件上传。',
featuresDocLink: '了解更多',
debugAndPreview: '预览',
restart: '重新开始',
currentDraft: '当前草稿',
currentDraftUnpublished: '当前草稿未发布',
latestPublished: '最新发布',
publishedAt: '发布于',
restore: '恢复',
versionHistory: '版本历史',
exitVersions: '退出版本历史',
runApp: '运行',
batchRunApp: '批量运行',
accessAPIReference: '访问 API',
embedIntoSite: '嵌入网站',
addTitle: '添加标题...',
addDescription: '添加描述...',
noVar: '没有变量',
variableNamePlaceholder: '变量名',
searchVar: '搜索变量',
setVarValuePlaceholder: '设置变量值',
needConnectTip: '此节点尚未连接到其他节点',
maxTreeDepth: '每个分支最大限制 {{depth}} 个节点',
needAdd: '必须添加{{node}}节点',
needOutputNode: '必须添加输出节点',
needStartNode: '必须添加至少一个开始节点',
needAnswerNode: '必须添加直接回复节点',
workflowProcess: '工作流',
notRunning: '尚未运行',
previewPlaceholder: '在下面的框中输入内容开始调试聊天机器人',
effectVarConfirm: {
title: '移除变量',
content: '该变量在其他节点中使用。您是否仍要删除它?',
},
insertVarTip: '按 \'/\' 键快速插入',
processData: '数据处理',
input: '输入',
output: '输出',
jinjaEditorPlaceholder: '输入“/”或“{”插入变量',
viewOnly: '只读',
showRunHistory: '显示运行历史',
enableJinja: '开启支持 Jinja 模板',
learnMore: '了解更多',
copy: '拷贝',
duplicate: '复制',
addBlock: '添加节点',
pasteHere: '粘贴到这里',
pointerMode: '指针模式',
handMode: '手模式',
exportImage: '导出图片',
exportPNG: '导出为 PNG',
exportJPEG: '导出为 JPEG',
exportSVG: '导出为 SVG',
currentView: '当前视图',
currentWorkflow: '整个工作流',
moreActions: '更多操作',
model: '模型',
workflowAsTool: '发布为工具',
configureRequired: '需要进行配置',
configure: '配置',
manageInTools: '访问工具页',
workflowAsToolTip: '工作流更新后需要重新配置工具参数',
workflowAsToolDisabledHint: '请先发布最新的工作流,并确保已连接的 User Input 节点后再配置为工具。',
viewDetailInTracingPanel: '查看详细信息',
syncingData: '同步数据中,只需几秒钟。',
importDSL: '导入 DSL',
importDSLTip: '当前草稿将被覆盖。在导入之前请导出工作流作为备份。',
backupCurrentDraft: '备份当前草稿',
chooseDSL: '选择 DSL(yml) 文件',
overwriteAndImport: '覆盖并导入',
importFailure: '导入失败',
importWarning: '注意',
importWarningDetails: 'DSL 版本差异可能影响部分功能表现',
importSuccess: '导入成功',
parallelTip: {
click: {
title: '点击',
desc: '添加节点',
},
drag: {
title: '拖拽',
desc: '连接节点',
},
limit: '并行分支限制为 {{num}} 个',
depthLimit: '并行嵌套层数限制 {{num}} 层',
},
disconnect: '断开连接',
jumpToNode: '跳转到节点',
addParallelNode: '添加并行节点',
parallel: '并行',
branch: '分支',
onFailure: '异常时',
addFailureBranch: '添加异常分支',
openInExplore: '在“探索”中打开',
loadMore: '加载更多',
noHistory: '没有历史版本',
tagBound: '使用此标签的应用数量',
},
publishLimit: {
startNodeTitlePrefix: '升级以',
startNodeTitleSuffix: '解锁每个工作流无限制的触发器',
startNodeDesc: '您已达到此计划上每个工作流最多 2 个触发器的限制。请升级后再发布此工作流。',
},
env: {
envPanelTitle: '环境变量',
envDescription: '环境变量是一种存储敏感信息的方法,如 API 密钥、数据库密码等。它们被存储在工作流程中,而不是代码中,以便在不同环境中共享。',
envPanelButton: '添加环境变量',
modal: {
title: '添加环境变量',
editTitle: '编辑环境变量',
type: '类型',
name: '名称',
namePlaceholder: '变量名',
value: '值',
valuePlaceholder: '变量值',
secretTip: '用于定义敏感信息或数据,导出 DSL 时设置了防泄露机制。',
description: '描述',
descriptionPlaceholder: '变量的描述',
},
export: {
title: '导出 Secret 类型环境变量?',
checkbox: '导出 secret 值',
ignore: '导出 DSL',
export: '导出包含 Secret 值的 DSL',
},
},
globalVar: {
title: '系统变量',
description: '系统变量是全局变量,在类型匹配时无需连线即可被任意节点引用,例如终端用户 ID 和工作流 ID。',
fieldsDescription: {
conversationId: '会话 ID',
dialogCount: '会话次数',
userId: '用户 ID',
triggerTimestamp: '应用开始运行的时间戳',
appId: '应用 ID',
workflowId: '工作流 ID',
workflowRunId: '工作流运行 ID',
},
},
sidebar: {
exportWarning: '导出当前已保存版本',
exportWarningDesc: '这将导出您工作流的当前已保存版本。如果您在编辑器中有未保存的更改,请先使用工作流画布中的导出选项保存它们。',
},
chatVariable: {
panelTitle: '会话变量',
panelDescription: '会话变量用于存储 LLM 需要的上下文信息,如用户偏好、对话历史等。它是可读写的。',
docLink: '查看文档了解更多。',
button: '添加变量',
modal: {
title: '添加会话变量',
editTitle: '编辑会话变量',
name: '名称',
namePlaceholder: '变量名',
type: '类型',
value: '默认值',
valuePlaceholder: '默认值,可以为空',
description: '描述',
descriptionPlaceholder: '变量的描述',
editInJSON: '在 JSON 中编辑',
oneByOne: '逐个添加',
editInForm: '在表单中编辑',
arrayValue: '值',
addArrayValue: '添加值',
objectKey: '属性',
objectType: '类型',
objectValue: '默认值',
},
storedContent: '存储内容',
updatedAt: '更新时间 ',
},
changeHistory: {
title: '变更历史',
placeholder: '尚未更改任何内容',
clearHistory: '清除历史记录',
hint: '提示',
hintText: '您的编辑操作将被跟踪并存储在您的设备上,直到您离开编辑器。此历史记录将在您离开编辑器时被清除。',
stepBackward_one: '{{count}} 步后退',
stepBackward_other: '{{count}} 步后退',
stepForward_one: '{{count}} 步前进',
stepForward_other: '{{count}} 步前进',
sessionStart: '会话开始',
currentState: '当前状态',
nodeTitleChange: '块标题已更改',
nodeDescriptionChange: '块描述已更改',
nodeDragStop: '块已移动',
nodeChange: '块已更改',
nodeConnect: '块已连接',
nodePaste: '块已粘贴',
nodeDelete: '块已删除',
nodeAdd: '块已添加',
nodeResize: '块已调整大小',
noteAdd: '注释已添加',
noteChange: '注释已更改',
noteDelete: '注释已删除',
edgeDelete: '块已断开连接',
},
errorMsg: {
fieldRequired: '{{field}} 不能为空',
rerankModelRequired: '未配置 Rerank 模型',
authRequired: '请先授权',
invalidJson: '{{field}} 是非法的 JSON',
fields: {
variable: '变量名',
variableValue: '变量值',
code: '代码',
model: '模型',
rerankModel: 'Rerank 模型',
visionVariable: '视觉变量',
},
invalidVariable: '无效的变量',
noValidTool: '{{field}} 无可用工具',
toolParameterRequired: '{{field}}: 参数 [{{param}}] 不能为空',
startNodeRequired: '请先添加开始节点,然后再{{operation}}',
},
error: {
startNodeRequired: '请先添加开始节点,然后再{{operation}}',
operations: {
connectingNodes: '连接节点',
addingNodes: '添加节点',
modifyingWorkflow: '修改工作流',
updatingWorkflow: '更新工作流',
},
},
singleRun: {
testRun: '测试运行',
startRun: '开始运行',
preparingDataSource: '准备数据源',
reRun: '重新运行',
running: '运行中',
testRunIteration: '测试运行迭代',
back: '返回',
iteration: '迭代',
loop: '循环',
},
tabs: {
'searchBlock': '搜索节点',
'blocks': '节点',
'searchTool': '搜索工具',
'searchTrigger': '搜索触发器...',
'allTriggers': '全部触发器',
'tools': '工具',
'allTool': '全部',
'plugin': '插件',
'customTool': '自定义',
'workflowTool': '工作流',
'question-understand': '问题理解',
'logic': '逻辑',
'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': '用户输入',
'originalStartNode': '原始开始节点',
'end': '输出',
'answer': '直接回复',
'llm': 'LLM',
'knowledge-retrieval': '知识检索',
'question-classifier': '问题分类器',
'if-else': '条件分支',
'code': '代码执行',
'template-transform': '模板转换',
'http-request': 'HTTP 请求',
'variable-assigner': '变量赋值器',
'variable-aggregator': '变量聚合器',
'assigner': '变量赋值',
'iteration-start': '迭代开始',
'iteration': '迭代',
'parameter-extractor': '参数提取器',
'document-extractor': '文档提取器',
'list-operator': '列表操作',
'agent': 'Agent',
'loop-start': '循环开始',
'loop': '循环',
'loop-end': '退出循环',
'knowledge-index': '知识库',
'datasource': '数据源',
'trigger-webhook': 'Webhook 触发器',
'trigger-schedule': '定时触发器',
'trigger-plugin': '插件触发器',
},
customWebhook: '自定义 Webhook',
blocksAbout: {
'start': '定义一个 workflow 流程启动的初始参数',
'end': '定义一个 workflow 流程的输出和结果类型',
'answer': '定义一个聊天对话的回复内容',
'llm': '调用大语言模型回答问题或者对自然语言进行处理',
'knowledge-retrieval': '允许你从知识库中查询与用户问题相关的文本内容',
'question-classifier': '定义用户问题的分类条件LLM 能够根据分类描述定义对话的进展方式',
'if-else': '允许你根据 if/else 条件将 workflow 拆分成两个分支',
'code': '执行一段 Python 或 NodeJS 代码实现自定义逻辑',
'template-transform': '使用 Jinja 模板语法将数据转换为字符串',
'http-request': '允许通过 HTTP 协议发送服务器请求',
'variable-assigner': '将多路分支的变量聚合为一个变量,以实现下游节点统一配置。',
'assigner': '变量赋值节点用于向可写入变量(例如会话变量)进行变量赋值。',
'variable-aggregator': '将多路分支的变量聚合为一个变量,以实现下游节点统一配置。',
'iteration': '对列表对象执行多次步骤直至输出所有结果。',
'loop': '循环执行一段逻辑直到满足结束条件或者到达循环次数上限。',
'loop-end': '相当于“break”此节点没有配置项当循环体内运行到此节点后循环终止。',
'parameter-extractor': '利用 LLM 从自然语言内推理提取出结构化参数,用于后置的工具调用或 HTTP 请求。',
'document-extractor': '用于将用户上传的文档解析为 LLM 便于理解的文本内容。',
'list-operator': '用于过滤或排序数组内容。',
'agent': '调用大型语言模型回答问题或处理自然语言',
'knowledge-index': '知识库节点',
'datasource': '数据源节点',
'trigger-webhook': 'Webhook 触发器接收来自第三方系统的 HTTP 推送以自动触发工作流。',
'trigger-schedule': '基于时间的工作流触发器,按计划启动工作流',
'trigger-plugin': '从外部平台事件启动工作流的第三方集成触发器',
},
difyTeam: 'Dify 团队',
operator: {
zoomIn: '放大',
zoomOut: '缩小',
zoomTo50: '缩放到 50%',
zoomTo100: '放大到 100%',
zoomToFit: '自适应视图',
alignNodes: '对齐节点',
alignLeft: '左对齐',
alignCenter: '居中对齐',
alignRight: '右对齐',
alignTop: '顶部对齐',
alignMiddle: '中部对齐',
alignBottom: '底部对齐',
vertical: '垂直方向',
horizontal: '水平方向',
distributeHorizontal: '水平等间距',
distributeVertical: '垂直等间距',
selectionAlignment: '选择对齐',
},
variableReference: {
noAvailableVars: '没有可用变量',
noVarsForOperation: '当前选择的操作没有可用的变量进行赋值。',
noAssignedVars: '没有可用的赋值变量',
assignedVarsDescription: '赋值变量必须是可写入的变量,例如:',
conversationVars: '会话变量',
},
panel: {
userInputField: '用户输入字段',
changeBlock: '更改节点',
helpLink: '查看帮助文档',
about: '关于',
createdBy: '作者',
nextStep: '下一步',
addNextStep: '添加此工作流程中的下一个节点',
selectNextStep: '选择下一个节点',
runThisStep: '运行此步骤',
checklist: '检查清单',
checklistTip: '发布前确保所有问题均已解决',
checklistResolved: '所有问题均已解决',
goTo: '转到',
startNode: '开始节点',
organizeBlocks: '整理节点',
change: '更改',
optional: '(选填)',
maximize: '最大化画布',
minimize: '退出最大化',
scrollToSelectedNode: '滚动至选中节点',
optional_and_hidden: '(选填 & 隐藏)',
},
nodes: {
common: {
outputVars: '输出变量',
insertVarTip: '插入变量',
memory: {
memory: '记忆',
memoryTip: '聊天记忆设置',
windowSize: '记忆窗口',
conversationRoleName: '对话角色名',
user: '用户前缀',
assistant: '助手前缀',
},
memories: {
title: '记忆',
tip: '聊天记忆',
builtIn: '内置',
},
errorHandle: {
title: '异常处理',
tip: '配置异常处理策略,当节点发生异常时触发。',
none: {
title: '无',
desc: '当发生异常且未处理时,节点将停止运行',
},
defaultValue: {
title: '默认值',
desc: '当发生异常时,指定默认输出内容。',
tip: '当发生异常时,将返回以下值。',
inLog: '节点异常,根据默认值输出。',
output: '输出默认值',
},
failBranch: {
title: '异常分支',
desc: '当发生异常时,将执行异常分支',
customize: '在画布自定义失败分支逻辑。',
customizeTip: '当节点发生异常时,将自动执行失败分支。失败分支允许您灵活地提供错误消息、报告、修复或跳过操作。',
inLog: '节点异常,将自动执行失败分支。节点输出将返回错误类型和错误信息,并传递给下游。',
},
partialSucceeded: {
tip: '流程中有 {{num}} 个节点运行异常,请前往追踪查看日志。',
},
},
retry: {
retry: '重试',
retryOnFailure: '失败时重试',
maxRetries: '最大重试次数',
retryInterval: '重试间隔',
retryTimes: '失败时重试 {{times}} 次',
retrying: '重试中...',
retrySuccessful: '重试成功',
retryFailed: '重试失败',
retryFailedTimes: '{{times}} 次重试失败',
times: '次',
ms: '毫秒',
retries: '{{num}} 重试次数',
},
typeSwitch: {
input: '输入值',
variable: '使用变量',
},
inputVars: '输入变量',
},
start: {
required: '必填',
inputField: '输入字段',
builtInVar: '内置变量',
outputVars: {
query: '用户输入',
memories: {
des: '会话历史',
type: '消息类型',
content: '消息内容',
},
files: '文件列表',
},
noVarTip: '设置的输入可在工作流程中使用',
},
end: {
outputs: '输出',
output: {
type: '输出类型',
variable: '输出变量',
},
type: {
'none': '无',
'plain-text': '纯文本',
'structured': '结构化',
},
},
answer: {
answer: '回复',
outputVars: '输出变量',
},
llm: {
model: '模型',
variables: '变量',
context: '上下文',
contextTooltip: '您可以导入知识库作为上下文',
notSetContextInPromptTip: '要启用上下文功能,请在提示中填写上下文变量。',
prompt: '提示词',
addMessage: '添加消息',
roleDescription: {
system: '为对话提供高层指导',
user: '向模型提供指令、查询或任何基于文本的输入',
assistant: '基于用户消息的模型回复',
},
vision: '视觉',
files: '文件',
resolution: {
name: '分辨率',
high: '高',
low: '低',
},
outputVars: {
output: '生成内容',
reasoning_content: '推理内容',
usage: '模型用量信息',
},
singleRun: {
variable: '变量',
},
sysQueryInUser: 'user message 中必须包含 sys.query',
jsonSchema: {
title: '结构化输出 Schema',
instruction: '指令',
promptTooltip: '将文本描述转换为标准化的 JSON Schema 结构',
promptPlaceholder: '描述你的 JSON Schema...',
generate: '生成',
import: '从 JSON 导入',
generateJsonSchema: '生成 JSON Schema',
generationTip: '可以使用自然语言快速创建 JSON Schema。',
generating: '正在为您生成 JSON Schema...',
generatedResult: '生成结果',
resultTip: '以下是生成的结果。如果你对这个结果不满意,可以返回并修改你的提示词。',
back: '返回',
regenerate: '重新生成',
apply: '应用',
doc: '了解有关结构化输出的更多信息',
resetDefaults: '清空配置',
required: '必填',
addField: '添加字段',
addChildField: '添加子字段',
showAdvancedOptions: '显示高级选项',
stringValidations: '字符串验证',
fieldNamePlaceholder: '字段名',
descriptionPlaceholder: '添加描述',
warningTips: {
saveSchema: '请先完成当前字段的编辑',
},
},
reasoningFormat: {
tooltip: '从think标签中提取内容并将其存储在reasoning_content字段中。',
title: '启用推理标签分离',
tagged: '保持思考标签',
separated: '分开思考标签',
},
},
knowledgeRetrieval: {
queryVariable: '查询变量',
knowledge: '知识库',
outputVars: {
output: '召回的分段',
content: '分段内容',
title: '分段标题',
icon: '分段图标',
url: '分段链接',
metadata: '其他元数据',
},
metadata: {
title: '元数据过滤',
tip: '元数据过滤是使用元数据属性(例如标签、类别或访问权限)来细化和控制系统内相关信息的检索过程。',
options: {
disabled: {
title: '禁用',
subTitle: '禁用元数据过滤',
},
automatic: {
title: '自动',
subTitle: '根据用户查询自动生成元数据过滤条件',
desc: '根据 Query Variable 自动生成元数据过滤条件',
},
manual: {
title: '手动',
subTitle: '手动添加元数据过滤条件',
},
},
panel: {
title: '元数据过滤条件',
conditions: '条件',
add: '添加条件',
search: '搜索元数据',
placeholder: '输入值',
datePlaceholder: '选择日期...',
select: '选择变量...',
},
},
},
http: {
inputVars: '输入变量',
api: 'API',
apiPlaceholder: '输入 URL输入变量时请键入/',
extractListPlaceholder: '输入提取列表编号,输入变量时请键入‘/',
notStartWithHttp: 'API 应该以 http:// 或 https:// 开头',
key: '键',
type: '类型',
value: '值',
bulkEdit: '批量编辑',
keyValueEdit: '键值编辑',
headers: 'Headers',
params: 'Params',
body: 'Body',
binaryFileVariable: 'Binary 文件变量',
outputVars: {
body: '响应内容',
statusCode: '响应状态码',
headers: '响应头列表 JSON',
files: '文件列表',
},
authorization: {
'authorization': '鉴权',
'authorizationType': '鉴权类型',
'no-auth': '无',
'api-key': 'API-Key',
'auth-type': 'API 鉴权类型',
'basic': '基础',
'bearer': 'Bearer',
'custom': '自定义',
'api-key-title': 'API Key',
'header': 'Header',
},
insertVarPlaceholder: '键入 \'/\' 键快速插入变量',
timeout: {
title: '超时设置',
connectLabel: '连接超时',
connectPlaceholder: '输入连接超时(以秒为单位)',
readLabel: '读取超时',
readPlaceholder: '输入读取超时(以秒为单位)',
writeLabel: '写入超时',
writePlaceholder: '输入写入超时(以秒为单位)',
},
curl: {
title: '导入 cURL',
placeholder: '粘贴 cURL 字符串',
},
verifySSL: {
title: '验证 SSL 证书',
warningTooltip: '不建议在生产环境中禁用 SSL 验证。这仅应在开发或测试中使用,因为它会使连接容易受到诸如中间人攻击等安全威胁。',
},
},
code: {
inputVars: '输入变量',
outputVars: '输出变量',
advancedDependencies: '高级依赖',
advancedDependenciesTip: '在这里添加一些预加载需要消耗较多时间或非默认内置的依赖包',
searchDependencies: '搜索依赖',
syncFunctionSignature: '同步函数签名至代码',
},
templateTransform: {
inputVars: '输入变量',
code: '代码',
codeSupportTip: '只支持 Jinja2',
outputVars: {
output: '转换后内容',
},
},
ifElse: {
if: 'If',
else: 'Else',
elseDescription: '用于定义当 if 条件不满足时应执行的逻辑。',
and: 'and',
or: 'or',
operator: '操作符',
notSetVariable: '请先设置变量',
comparisonOperator: {
'contains': '包含',
'not contains': '不包含',
'start with': '开始是',
'end with': '结束是',
'is': '是',
'is not': '不是',
'empty': '为空',
'not empty': '不为空',
'null': '空',
'not null': '不为空',
'in': '在',
'not in': '不在',
'all of': '全部是',
'exists': '存在',
'not exists': '不存在',
'before': '早于',
'after': '晚于',
},
optionName: {
image: '图片',
doc: '文档',
audio: '音频',
video: '视频',
localUpload: '本地上传',
url: 'URL',
},
enterValue: '输入值',
addCondition: '添加条件',
conditionNotSetup: '条件未设置',
selectVariable: '选择变量',
addSubVariable: '添加子变量',
select: '选择',
},
variableAssigner: {
title: '变量赋值',
outputType: '输出类型',
varNotSet: '未设置变量',
noVarTip: '添加需要赋值的变量',
type: {
string: 'String',
number: 'Number',
object: 'Object',
array: 'Array',
},
aggregationGroup: '聚合分组',
aggregationGroupTip: '开启该功能后,变量聚合器内可以同时聚合多组变量',
addGroup: '添加分组',
outputVars: {
varDescribe: '{{groupName}}的输出变量',
},
setAssignVariable: '设置赋值变量',
},
assigner: {
'assignedVariable': '赋值的变量',
'varNotSet': '未设置变量',
'noVarTip': '点击 "+" 按钮添加变量',
'writeMode': '写入模式',
'writeModeTip': '使用追加模式时,赋值的变量必须是数组类型。',
'over-write': '覆盖',
'append': '追加',
'plus': '加',
'clear': '清空',
'setVariable': '设置变量',
'selectAssignedVariable': '选择要赋值的变量...',
'setParameter': '设置参数...',
'operations': {
'title': '操作',
'over-write': '覆盖',
'overwrite': '覆盖',
'set': '设置',
'clear': '清空',
'extend': '扩展',
'append': '追加',
'remove-first': '移除首项',
'remove-last': '移除末项',
'+=': '+=',
'-=': '-=',
'*=': '*=',
'/=': '/=',
},
'variable': '变量',
'variables': '变量',
'noAssignedVars': '没有可用的赋值变量',
'assignedVarsDescription': '赋值变量必须是可写入的变量,例如会话变量。',
},
tool: {
authorize: '授权',
inputVars: '输入变量',
settings: '设置',
insertPlaceholder1: '键入',
insertPlaceholder2: '插入变量',
outputVars: {
text: '工具生成的内容',
files: {
title: '工具生成的文件',
type: '支持类型。现在只支持图片',
transfer_method: '传输方式。值为 remote_url 或 local_file',
url: '图片链接',
upload_file_id: '上传文件 ID',
},
json: '工具生成的 json',
},
},
questionClassifiers: {
model: '模型',
inputVars: '输入变量',
outputVars: {
className: '分类名称',
usage: '模型用量信息',
},
class: '分类',
classNamePlaceholder: '输入你的分类名称',
advancedSetting: '高级设置',
topicName: '主题内容',
topicPlaceholder: '在这里输入你的主题内容',
addClass: '添加分类',
instruction: '指令',
instructionTip: '你可以输入额外的附加指令,帮助问题分类器更好的理解如何分类',
instructionPlaceholder: '在这里输入你的指令',
},
parameterExtractor: {
inputVar: '输入变量',
outputVars: {
isSuccess: '是否成功。成功时值为 1失败时值为 0。',
errorReason: '错误原因',
usage: '模型用量信息',
},
extractParameters: '提取参数',
importFromTool: '从工具导入',
addExtractParameter: '添加提取参数',
addExtractParameterContent: {
name: '名称',
namePlaceholder: '提取参数名称',
type: '类型',
typePlaceholder: '提取参数类型',
description: '描述',
descriptionPlaceholder: '提取参数描述',
required: '必填',
requiredContent: '必填仅作为模型推理的参考,不用于参数输出的强制验证。',
},
extractParametersNotSet: '提取参数未设置',
instruction: '指令',
instructionTip: '你可以输入额外的附加指令,帮助参数提取器理解如何提取参数',
advancedSetting: '高级设置',
reasoningMode: '推理模式',
reasoningModeTip: '你可以根据模型对于 Function calling 或 Prompt 的指令响应能力选择合适的推理模式',
},
iteration: {
deleteTitle: '删除迭代节点?',
deleteDesc: '删除迭代节点将删除所有子节点',
input: '输入',
output: '输出变量',
iteration_one: '{{count}}个迭代',
iteration_other: '{{count}}个迭代',
currentIteration: '当前迭代',
comma: '',
error_one: '{{count}}个失败',
error_other: '{{count}}个失败',
parallelMode: '并行模式',
parallelModeUpper: '并行模式',
parallelModeEnableTitle: '并行模式启用',
parallelModeEnableDesc: '启用并行模式时迭代内的任务支持并行执行。你可以在右侧的属性面板中进行配置。',
parallelPanelDesc: '在并行模式下,迭代中的任务支持并行执行。',
MaxParallelismTitle: '最大并行度',
MaxParallelismDesc: '最大并行度用于控制单次迭代中同时执行的任务数量。',
errorResponseMethod: '错误响应方法',
ErrorMethod: {
operationTerminated: '错误时终止',
continueOnError: '忽略错误并继续',
removeAbnormalOutput: '移除错误输出',
},
answerNodeWarningDesc: '并行模式警告:在迭代中,回答节点、会话变量赋值和工具持久读/写操作可能会导致异常。',
flattenOutput: '扁平化输出',
flattenOutputDesc: '启用时,如果所有迭代输出都是数组,它们将被扁平化为单个数组。禁用时,输出将保持嵌套数组结构。',
},
loop: {
deleteTitle: '删除循环节点?',
deleteDesc: '删除循环节点将删除所有子节点',
input: '输入',
output: '输出变量',
loop_one: '{{count}} 个循环',
loop_other: '{{count}} 个循环',
currentLoop: '当前循环',
comma: '',
error_one: '{{count}}个失败',
error_other: '{{count}}个失败',
breakCondition: '循环终止条件',
breakConditionTip: '支持引用终止条件循环内的变量和会话变量。',
loopMaxCount: '最大循环次数',
loopMaxCountError: '请输入正确的 最大循环次数,范围为 1 到 {{maxCount}}',
errorResponseMethod: '错误响应方法',
ErrorMethod: {
operationTerminated: '错误时终止',
continueOnError: '忽略错误并继续',
removeAbnormalOutput: '移除错误输出',
},
loopVariables: '循环变量',
initialLoopVariables: '初始循环变量',
finalLoopVariables: '最终循环变量',
setLoopVariables: '在循环范围内设置变量',
variableName: '变量名',
inputMode: '输入模式',
exitConditionTip: '循环节点至少需要一个退出条件',
loopNode: '循环节点',
currentLoopCount: '当前循环次数:{{count}}',
totalLoopCount: '总循环次数:{{count}}',
},
note: {
addNote: '添加注释',
editor: {
placeholder: '输入注释...',
small: '小',
medium: '中',
large: '大',
bold: '加粗',
italic: '斜体',
strikethrough: '删除线',
link: '链接',
openLink: '打开',
unlink: '取消链接',
enterUrl: '输入链接...',
invalidUrl: '无效的链接',
bulletList: '列表',
showAuthor: '显示作者',
},
},
docExtractor: {
inputVar: '输入变量',
outputVars: {
text: '提取的文本',
},
supportFileTypes: '支持的文件类型:{{types}}。',
learnMore: '了解更多',
},
listFilter: {
inputVar: '输入变量',
filterCondition: '过滤条件',
filterConditionKey: '过滤条件的 Key',
filterConditionComparisonOperator: '过滤条件比较操作符',
filterConditionComparisonValue: '过滤条件比较值',
selectVariableKeyPlaceholder: '选择子变量的 Key',
extractsCondition: '取第 N 项',
limit: '取前 N 项',
orderBy: '排序',
asc: '升序',
desc: '降序',
outputVars: {
result: '过滤结果',
first_record: '第一条记录',
last_record: '最后一条记录',
},
},
agent: {
strategy: {
label: 'Agent 策略',
tooltip: '不同的 Agent 策略决定了系统如何规划和执行多步工具调用',
shortLabel: '策略',
configureTip: '请配置 Agent 策略。',
configureTipDesc: '配置完成后,此节点将自动加载剩余配置。策略将影响多步工具推理的机制。',
selectTip: '选择 Agent 策略',
searchPlaceholder: '搜索 Agent 策略',
},
learnMore: '了解更多',
pluginNotInstalled: '插件未安装',
pluginNotInstalledDesc: '此插件是从 GitHub 安装的。请转到插件重新安装',
linkToPlugin: '转到插件',
pluginInstaller: {
install: '安装',
installing: '安装中',
},
modelNotInMarketplace: {
title: '模型未安装',
desc: '此模型安装自本地或 GitHub 仓库。请安装后使用。',
manageInPlugins: '在插件中管理',
},
modelNotSupport: {
title: '不支持的模型',
desc: '已安装的插件版本不提供此模型。',
descForVersionSwitch: '已安装的插件版本不提供此模型。点击切换版本。',
},
model: '模型',
toolbox: '工具箱',
strategyNotSet: '代理策略未设置',
configureModel: '配置模型',
notAuthorized: '未授权',
tools: '工具',
maxIterations: '最大迭代次数',
modelNotInstallTooltip: '此模型未安装',
modelNotSelected: '未选择模型',
toolNotInstallTooltip: '{{tool}} 未安装',
toolNotAuthorizedTooltip: '{{tool}} 未授权',
strategyNotInstallTooltip: '{{strategy}} 未安装',
unsupportedStrategy: '不支持的策略',
strategyNotFoundDesc: '安装的插件版本不提供此策略。',
pluginNotFoundDesc: '此插件安装自 GitHub。请转到插件重新安装。',
strategyNotFoundDescAndSwitchVersion: '安装的插件版本不提供此策略。点击切换版本。',
modelSelectorTooltips: {
deprecated: '此模型已弃用',
},
outputVars: {
text: 'agent 生成的内容',
usage: '模型用量信息',
files: {
title: 'agent 生成的文件',
type: '支持类型。现在只支持图片',
transfer_method: '传输方式。值为 remote_url 或 local_file',
url: '图片链接',
upload_file_id: '上传文件 ID',
},
json: 'agent 生成的 json',
},
checkList: {
strategyNotSelected: '未选择策略',
},
installPlugin: {
title: '安装插件',
desc: '即将安装以下插件',
changelog: '更新日志',
install: '安装',
cancel: '取消',
},
clickToViewParameterSchema: '点击查看参数 schema',
parameterSchema: '参数 Schema',
},
dataSource: {
supportedFileFormats: '支持的文件格式',
supportedFileFormatsPlaceholder: '文件格式例如doc',
add: '添加数据源',
},
knowledgeBase: {
chunkStructure: '分段结构',
chooseChunkStructure: '选择分段结构',
chunkStructureTip: {
title: '请选择分段结构',
message: 'Dify 知识库支持三种分块结构:通用、父子和问答。每个知识库只能有一种结构。前一节点的输出必须与所选的分块结构相匹配。请注意,分块结构的选择会影响可用的索引方法。',
learnMore: '了解更多',
},
changeChunkStructure: '更改分段结构',
chunksInput: '分块',
chunksInputTip: '知识库节点的输入变量为 Chunks。该变量类型是符合特定 JSON Schema 的对象,必须与所选块结构一致。',
aboutRetrieval: '关于知识检索。',
chunkIsRequired: '分段结构是必需的',
indexMethodIsRequired: '索引方法是必需的',
chunksVariableIsRequired: 'Chunks 变量是必需的',
embeddingModelIsRequired: 'Embedding 模型是必需的',
embeddingModelIsInvalid: '无效的 Embedding 模型',
retrievalSettingIsRequired: '检索设置是必需的',
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: '输入变量名...',
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}}"无效',
},
debugUrlPrivateAddressWarning: '此 URL 似乎是内部地址,可能导致 webhook 请求失败。您可以将 TRIGGER_URL 更改为公共地址。',
},
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: '需要配置订阅',
notAuthorized: '未授权',
selectSubscription: '选择订阅',
availableSubscriptions: '可用订阅',
addSubscription: '添加新订阅',
removeSubscription: '取消订阅',
subscriptionRemoved: '订阅已成功取消',
},
},
tracing: {
stopBy: '由{{user}}终止',
},
versionHistory: {
title: '版本',
currentDraft: '当前草稿',
latest: '最新',
filter: {
all: '全部',
onlyYours: '仅你的',
onlyShowNamedVersions: '只显示已命名版本',
reset: '重置',
empty: '没有匹配的版本',
},
defaultName: '未命名',
nameThisVersion: '命名',
editVersionInfo: '编辑信息',
copyId: '复制 ID',
editField: {
title: '标题',
releaseNotes: '发布说明',
titleLengthLimit: '标题不能超过{{limit}}个字符',
releaseNotesLengthLimit: '发布说明不能超过{{limit}}个字符',
},
releaseNotesPlaceholder: '请描述变更',
restorationTip: '版本回滚后,当前草稿将被覆盖。',
deletionTip: '删除不可逆,请确认。',
action: {
restoreSuccess: '回滚成功',
restoreFailure: '回滚失败',
deleteSuccess: '版本已删除',
deleteFailure: '删除失败',
updateSuccess: '版本信息已更新',
updateFailure: '更新失败',
copyIdSuccess: 'ID 已复制到剪贴板',
},
},
debug: {
settingsTab: '设置',
lastRunTab: '上次运行',
relationsTab: '关系',
copyLastRun: '复制上次运行值',
noLastRunFound: '未找到上次运行记录',
noMatchingInputsFound: '上次运行中未找到匹配的输入',
lastRunInputsCopied: '已复制{{count}}个输入值',
copyLastRunError: '复制上次运行输入失败',
noData: {
description: '上次运行的结果将显示在这里',
runThisNode: '运行此节点',
},
variableInspect: {
title: '变量检查',
emptyTip: '在画布上逐步浏览节点或逐步运行节点后,您可以在变量检查中查看节点变量的当前值',
emptyLink: '了解更多',
clearAll: '重置所有',
clearNode: '清除缓存',
resetConversationVar: '重置会话变量为默认值',
view: '查看记录',
edited: '已编辑',
reset: '还原至上一次运行',
listening: {
title: '正在监听触发器事件…',
tip: '您现在可以向 HTTP {{nodeName}} 端点发送测试请求以模拟事件触发,或将其用作实时事件调试的回调 URL。所有输出都可以在变量检查器中直接查看。',
tipPlugin: '现在您可以在 {{- pluginName}} 中创建事件,并在变量检查器中查看这些事件的输出。',
tipSchedule: '正在监听计划触发器事件。\n下一次计划运行时间{{nextTriggerTime}}',
tipFallback: '正在等待触发器事件,输出结果将在此显示。',
defaultNodeName: '此触发器',
defaultPluginName: '此插件触发器',
defaultScheduleTime: '未设置',
selectedTriggers: '所选触发器',
stopButton: '停止',
},
trigger: {
normal: '变量检查',
running: '缓存中',
stop: '停止运行',
cached: '查看缓存',
clear: '清除',
},
envNode: '环境变量',
chatNode: '会话变量',
systemNode: '系统变量',
exportToolTip: '导出变量为文件',
largeData: '大数据 - 仅部分只读预览。请导出查看完整数据。',
largeDataNoExport: '大数据 - 仅部分预览',
export: '导出',
},
lastOutput: '上次输出',
relations: {
dependencies: '依赖',
dependents: '被依赖',
dependenciesDescription: '本节点依赖的其他节点',
dependentsDescription: '依赖于本节点的其他节点',
noDependencies: '无依赖',
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