const translation = { common: { undo: '撤销', redo: '重做', editing: '编辑中', autoSaved: '自动保存', unpublished: '未发布', published: '已发布', publish: '发布', update: '更新', run: '运行', running: '运行中', inRunMode: '在运行模式中', inPreview: '预览中', inPreviewMode: '预览中', preview: '预览', viewRunHistory: '查看运行历史', runHistory: '运行历史', goBackToEdit: '返回编辑模式', conversationLog: '对话记录', features: '功能', featuresDescription: '增强 web app 用户体验', ImageUploadLegacyTip: '现在可以在 start 表单中创建文件类型变量。未来我们将不继续支持图片上传功能。', fileUploadTip: '图片上传功能已扩展为文件上传。', featuresDocLink: '了解更多', debugAndPreview: '预览', restart: '重新开始', currentDraft: '当前草稿', currentDraftUnpublished: '当前草稿未发布', latestPublished: '最新发布', publishedAt: '发布于', restore: '恢复', runApp: '运行', batchRunApp: '批量运行', accessAPIReference: '访问 API', embedIntoSite: '嵌入网站', addTitle: '添加标题...', addDescription: '添加描述...', noVar: '没有变量', variableNamePlaceholder: '变量名', searchVar: '搜索变量', setVarValuePlaceholder: '设置变量值', needConnectTip: '此节点尚未连接到其他节点', maxTreeDepth: '每个分支最大限制 {{depth}} 个节点', needEndNode: '必须添加结束节点', needAnswerNode: '必须添加直接回复节点', workflowProcess: '工作流', notRunning: '尚未运行', previewPlaceholder: '在下面的框中输入内容开始调试聊天机器人', effectVarConfirm: { title: '移除变量', content: '该变量在其他节点中使用。您是否仍要删除它?', }, insertVarTip: '按 \'/\' 键快速插入', processData: '数据处理', input: '输入', output: '输出', jinjaEditorPlaceholder: '输入 “/” 或 “{” 插入变量', viewOnly: '只读', showRunHistory: '显示运行历史', enableJinja: '开启支持 Jinja 模板', learnMore: '了解更多', copy: '拷贝', duplicate: '复制', addBlock: '添加节点', pasteHere: '粘贴到这里', pointerMode: '指针模式', handMode: '手模式', model: '模型', workflowAsTool: '发布为工具', configureRequired: '需要进行配置', configure: '配置', manageInTools: '访问工具页', workflowAsToolTip: '工作流更新后需要重新配置工具参数', viewDetailInTracingPanel: '查看详细信息', syncingData: '同步数据中,只需几秒钟。', importDSL: '导入 DSL', importDSLTip: '当前草稿将被覆盖。在导入之前请导出工作流作为备份。', backupCurrentDraft: '备份当前草稿', chooseDSL: '选择 DSL(yml) 文件', overwriteAndImport: '覆盖并导入', importFailure: '导入失败', importSuccess: '导入成功', parallelRun: '并行运行', parallelTip: { click: { title: '点击', desc: '添加节点', }, drag: { title: '拖拽', desc: '连接节点', }, limit: '并行分支限制为 {{num}} 个', depthLimit: '并行嵌套层数限制 {{num}} 层', }, disconnect: '断开连接', jumpToNode: '跳转到节点', addParallelNode: '添加并行节点', parallel: '并行', branch: '分支', }, env: { envPanelTitle: '环境变量', envDescription: '环境变量是一种存储敏感信息的方法,如 API 密钥、数据库密码等。它们被存储在工作流程中,而不是代码中,以便在不同环境中共享。', envPanelButton: '添加环境变量', modal: { title: '添加环境变量', editTitle: '编辑环境变量', type: '类型', name: '名称', namePlaceholder: '变量名', value: '值', valuePlaceholder: '变量值', secretTip: '用于定义敏感信息或数据,导出 DSL 时设置了防泄露机制。', }, export: { title: '导出 Secret 类型环境变量?', checkbox: '导出 secret 值', ignore: '导出 DSL', export: '导出包含 Secret 值的 DSL', }, }, 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: '无效的变量', }, singleRun: { testRun: '测试运行 ', startRun: '开始运行', running: '运行中', testRunIteration: '测试运行迭代', back: '返回', iteration: '迭代', }, tabs: { 'searchBlock': '搜索节点', 'blocks': '节点', 'searchTool': '搜索工具', 'tools': '工具', 'allTool': '全部', 'builtInTool': '内置', 'customTool': '自定义', 'workflowTool': '工作流', 'question-understand': '问题理解', 'logic': '逻辑', 'transform': '转换', 'utilities': '工具', 'noResult': '未找到匹配项', }, blocks: { 'start': '开始', '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': '列表操作', }, 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': '对列表对象执行多次步骤直至输出所有结果。', 'parameter-extractor': '利用 LLM 从自然语言内推理提取出结构化参数,用于后置的工具调用或 HTTP 请求。', 'document-extractor': '用于将用户上传的文档解析为 LLM 便于理解的文本内容。', 'list-operator': '用于过滤或排序数组内容。', }, operator: { zoomIn: '放大', zoomOut: '缩小', zoomTo50: '缩放到 50%', zoomTo100: '放大到 100%', zoomToFit: '自适应视图', }, panel: { userInputField: '用户输入字段', changeBlock: '更改节点', helpLink: '帮助链接', about: '关于', createdBy: '作者', nextStep: '下一步', addNextStep: '添加此工作流程中的下一个节点', selectNextStep: '选择下一个节点', runThisStep: '运行此步骤', checklist: '检查清单', checklistTip: '发布前确保所有问题均已解决', checklistResolved: '所有问题均已解决', organizeBlocks: '整理节点', change: '更改', optional: '(选填)', }, nodes: { common: { outputVars: '输出变量', insertVarTip: '插入变量', memory: { memory: '记忆', memoryTip: '聊天记忆设置', windowSize: '记忆窗口', conversationRoleName: '对话角色名', user: '用户前缀', assistant: '助手前缀', }, memories: { title: '记忆', tip: '聊天记忆', builtIn: '内置', }, }, 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: '生成内容', usage: '模型用量信息', }, singleRun: { variable: '变量', }, sysQueryInUser: 'user message 中必须包含 sys.query', }, knowledgeRetrieval: { queryVariable: '查询变量', knowledge: '知识库', outputVars: { output: '召回的分段', content: '分段内容', title: '分段标题', icon: '分段图标', url: '分段链接', metadata: '其他元数据', }, }, http: { inputVars: '输入变量', api: 'API', apiPlaceholder: '输入 URL,输入变量时请键入‘/’', 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: '输入写入超时(以秒为单位)', }, }, code: { inputVars: '输入变量', outputVars: '输出变量', advancedDependencies: '高级依赖', advancedDependenciesTip: '在这里添加一些预加载需要消耗较多时间或非默认内置的依赖包', searchDependencies: '搜索依赖', }, 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': '不存在', }, 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': '赋值的变量', 'writeMode': '写入模式', 'writeModeTip': '使用追加模式时,赋值的变量必须是数组类型。', 'over-write': '覆盖', 'append': '追加', 'plus': '加', 'clear': '清空', 'setVariable': '设置变量', 'variable': '变量', }, tool: { toAuthorize: '授权', inputVars: '输入变量', outputVars: { text: '工具生成的内容', files: { title: '工具生成的文件', type: '支持类型。现在只支持图片', transfer_method: '传输方式。值为 remote_url 或 local_file', url: '图片链接', upload_file_id: '上传文件ID', }, json: '工具生成的json', }, }, questionClassifiers: { model: '模型', inputVars: '输入变量', outputVars: { className: '分类名称', }, class: '分类', classNamePlaceholder: '输入你的分类名称', advancedSetting: '高级设置', topicName: '主题内容', topicPlaceholder: '在这里输入你的主题内容', addClass: '添加分类', instruction: '指令', instructionTip: '你可以输入额外的附加指令,帮助问题分类器更好的理解如何分类', instructionPlaceholder: '在这里输入你的指令', }, parameterExtractor: { inputVar: '输入变量', extractParameters: '提取参数', importFromTool: '从工具导入', addExtractParameter: '添加提取参数', addExtractParameterContent: { name: '名称', namePlaceholder: '提取参数名称', type: '类型', typePlaceholder: '提取参数类型', description: '描述', descriptionPlaceholder: '提取参数描述', required: '必填', requiredContent: '必填仅作为模型推理的参考,不用于参数输出的强制验证。', }, extractParametersNotSet: '提取参数未设置', instruction: '指令', instructionTip: '你可以输入额外的附加指令,帮助参数提取器理解如何提取参数', advancedSetting: '高级设置', reasoningMode: '推理模式', reasoningModeTip: '你可以根据模型对于 Function calling 或 Prompt 的指令响应能力选择合适的推理模式', isSuccess: '是否成功。成功时值为 1,失败时值为 0。', errorReason: '错误原因', }, 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: '并行模式警告:在迭代中,回答节点、会话变量赋值和工具持久读/写操作可能会导致异常。', }, 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', limit: '取前 N 项', orderBy: '排序', asc: '升序', desc: '降序', outputVars: { result: '过滤结果', first_record: '第一条记录', last_record: '最后一条记录', }, }, }, tracing: { stopBy: '由{{user}}终止', }, } export default translation