Initial commit

This commit is contained in:
2025-10-14 14:17:21 +08:00
commit ac715a8b88
35011 changed files with 3834178 additions and 0 deletions

View File

@@ -0,0 +1,90 @@
const translation = {
title: '标注',
name: '标注回复',
editBy: '{{author}}编辑的答案',
noData: {
title: '没有标注',
description: '你可以在应用会话调试中编辑标注,也可以在此批量导入标注用于高质量回复。',
},
table: {
header: {
question: '提问',
match: '匹配',
response: '回复',
answer: '答案',
createdAt: '创建时间',
hits: '命中次数',
actions: '操作',
addAnnotation: '添加标注',
bulkImport: '批量导入',
bulkExport: '批量导出',
clearAll: '删除所有标注',
},
},
editModal: {
title: '编辑标注回复',
queryName: '用户提问',
answerName: '机器回复',
yourAnswer: '您的回复',
answerPlaceholder: '在这里输入您的回复',
yourQuery: '您的提问',
queryPlaceholder: '在这里输入您的提问',
removeThisCache: '删除此标注',
createdAt: '创建于',
},
addModal: {
title: '添加标注回复',
queryName: '提问',
answerName: '回复',
answerPlaceholder: '输入回复',
queryPlaceholder: '输入提问',
createNext: '添加下一个标注回复',
},
batchModal: {
title: '批量导入',
csvUploadTitle: '将您的 CSV 文件拖放到此处,或',
browse: '选择文件',
tip: 'CSV 文件必须符合以下结构:',
question: '问题',
answer: '回答',
contentTitle: '分段内容',
content: '内容',
template: '下载模板',
cancel: '取消',
run: '导入',
runError: '批量导入失败',
processing: '批量处理中',
completed: '导入完成',
error: '导入出错',
ok: '确定',
},
errorMessage: {
answerRequired: '回复不能为空',
queryRequired: '提问不能为空',
},
viewModal: {
annotatedResponse: '标注回复',
hitHistory: '命中历史',
hit: '次命中',
hits: '次命中',
noHitHistory: '没有命中历史',
},
hitHistoryTable: {
question: '问题',
query: '提问',
match: '匹配',
response: '回复',
source: '来源',
score: '分数',
time: '时间',
},
initSetup: {
title: '标注回复初始设置',
configTitle: '标注回复设置',
confirmBtn: '保存并启用',
configConfirmBtn: '保存',
},
embeddingModelSwitchTip: '标注文本向量化模型,切换模型会重新嵌入,产生额外费用消耗',
}
export default translation

View File

@@ -0,0 +1,85 @@
const translation = {
apiServer: 'API 服务器',
apiKey: 'API 密钥',
status: '状态',
disabled: '已停用',
ok: '运行中',
copy: '复制',
copied: '已复制',
regenerate: '重新生成',
play: '播放',
pause: '暂停',
playing: '播放中',
loading: '加载中',
merMaid: {
rerender: '重新渲染',
},
never: '从未',
apiKeyModal: {
apiSecretKey: 'API 密钥',
apiSecretKeyTips: '如果不想你的 API 被滥用,请保护好你的 API Key :) 最佳实践是避免在前端代码中明文引用。',
createNewSecretKey: '创建密钥',
secretKey: '密钥',
created: '创建时间',
lastUsed: '最后使用',
generateTips: '请将此密钥保存在安全且可访问的地方。',
},
actionMsg: {
deleteConfirmTitle: '删除此密钥?',
deleteConfirmTips: '删除密钥无法撤销,正在使用中的应用会受影响。',
ok: '好的',
},
completionMode: {
title: '文本生成型应用 API',
info: '可用于生成高质量文本的应用,例如生成文章、摘要、翻译等,通过调用 completion-messages 接口,发送用户输入得到生成文本结果。用于生成文本的模型参数和提示词模版取决于开发者在 Dify 提示词编排页的设置。',
createCompletionApi: '创建文本补全消息',
createCompletionApiTip: '创建文本补全消息,支持一问一答模式。',
inputsTips: '选填以键值对方式提供用户输入字段与提示词编排中的变量对应。Key 为变量名称Value 是参数值。如果字段类型为 Select传入的 Value 需为预设选项之一。',
queryTips: '用户输入的文本正文。',
blocking: 'blocking 阻塞型,等待执行完毕后返回结果。(请求若流程较长可能会被中断)',
streaming: 'streaming 流式返回。基于 SSE**[Server-Sent Events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events)**)实现流式返回。',
messageFeedbackApi: '消息反馈(点赞)',
messageFeedbackApiTip: '代表最终用户对返回消息进行评价,可以点赞与点踩,该数据将在“日志与标注”页中可见,并用于后续的模型微调。',
messageIDTip: '消息 ID',
ratingTip: 'like 或 dislike 空值为撤销',
parametersApi: '获取应用配置信息',
parametersApiTip: '获取已配置的 Input 参数,包括变量名、字段名称、类型与默认值。通常用于客户端加载后显示这些字段的表单或填入默认值。',
},
chatMode: {
title: '对话型应用 API',
info: '可用于大部分场景的对话型应用,采用一问一答模式与用户持续对话。要开始一个对话请调用 chat-messages 接口,通过继续传入返回的 conversation_id 可持续保持该会话。',
createChatApi: '发送对话消息',
createChatApiTip: '创建会话消息,或基于此前的对话继续发送消息。',
inputsTips: '选填以键值对方式提供用户输入字段与提示词编排中的变量对应。Key 为变量名称Value 是参数值。如果字段类型为 Select传入的 Value 需为预设选项之一。',
queryTips: ' 用户输入/提问内容',
blocking: 'blocking 阻塞型,等待执行完毕后返回结果。(请求若流程较长可能会被中断)',
streaming: 'streaming 流式返回。基于 SSE**[Server-Sent Events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events)**)实现流式返回。',
conversationIdTip: '(选填)会话标识符,首次对话可为空,如果要继续对话请传入上下文返回的 conversation_id',
messageFeedbackApi: '消息反馈(点赞)',
messageFeedbackApiTip: '代表最终用户对返回消息进行评价,可以点赞与点踩,该数据将在“日志与标注”页中可见,并用于后续的模型微调。',
messageIDTip: '消息 ID',
ratingTip: 'like 或 dislike 空值为撤销',
chatMsgHistoryApi: '获取会话历史消息',
chatMsgHistoryApiTip: '滚动加载形式返回历史聊天记录,第一页返回最新 `limit` 条,即:倒序返回。',
chatMsgHistoryConversationIdTip: '会话 ID',
chatMsgHistoryFirstId: '当前页第一条聊天记录的 ID默认 none',
chatMsgHistoryLimit: '一次请求返回多少条聊天记录',
conversationsListApi: '获取会话列表',
conversationsListApiTip: '获取当前用户的会话列表,默认返回最近的 20 条。',
conversationsListFirstIdTip: ' 当前页最前面一条记录的 ID默认 none',
conversationsListLimitTip: '一次请求返回多少条记录',
conversationRenamingApi: '会话重命名',
conversationRenamingApiTip: '对会话进行重命名,会话名称用于显示在支持多会话的客户端上。',
conversationRenamingNameTip: '新的名称',
parametersApi: '获取应用配置信息',
parametersApiTip: '获取已配置的 Input 参数,包括变量名、字段名称、类型与默认值。通常用于客户端加载后显示这些字段的表单或填入默认值。',
},
develop: {
requestBody: 'Request Body',
pathParams: 'Path Params',
query: 'Query',
toc: '目录',
},
}
export default translation

View File

@@ -0,0 +1,528 @@
const translation = {
pageTitle: {
line1: '提示词',
line2: '编排',
},
orchestrate: '编排',
promptMode: {
simple: '切换到专家模式以编辑完整的提示词',
advanced: '专家模式',
switchBack: '返回简易模式',
advancedWarning: {
title: '您已切换到专家模式,一旦修改提示词,将无法返回简易模式。',
description: '在专家模式下,您可以编辑完整的提示词。',
learnMore: '了解更多',
ok: '确定',
},
operation: {
addMessage: '添加消息',
},
contextMissing: '上下文内容块缺失,提示词的有效性可能不好。',
},
operation: {
applyConfig: '发布',
resetConfig: '重置',
debugConfig: '调试',
addFeature: '添加功能',
automatic: '生成',
stopResponding: '停止响应',
agree: '赞同',
disagree: '反对',
cancelAgree: '取消赞同',
cancelDisagree: '取消反对',
userAction: '用户表示',
},
notSetAPIKey: {
title: 'LLM 提供者的密钥未设置',
trailFinished: '试用已结束',
description: '在调试之前需要设置 LLM 提供者的密钥。',
settingBtn: '去设置',
},
trailUseGPT4Info: {
title: '当前不支持使用 gpt-4',
description: '使用 gpt-4请设置 API Key',
},
feature: {
groupChat: {
title: '聊天增强',
description: '为聊天型应用添加预对话设置,可以提升用户体验。',
},
groupExperience: {
title: '体验增强',
},
conversationOpener: {
title: '对话开场白',
description: '在对话型应用中,让 AI 主动说第一段话可以拉近与用户间的距离。',
},
suggestedQuestionsAfterAnswer: {
title: '下一步问题建议',
description: '设置下一步问题建议可以让用户更好的对话。',
resDes: '回答结束后系统会给出 3 个建议',
tryToAsk: '试着问问',
},
moreLikeThis: {
title: '更多类似的',
description: '一次生成多条文本,可在此基础上编辑并继续生成',
generateNumTip: '每次生成数',
tip: '使用此功能将会额外消耗 tokens',
},
speechToText: {
title: '语音转文字',
description: '您可以使用语音输入。',
resDes: '语音输入已启用',
},
textToSpeech: {
title: '文字转语音',
description: '文本可以转换成语音。',
resDes: '文本转音频已启用',
},
citation: {
title: '引用和归属',
description: '显示源文档和生成内容的归属部分。',
resDes: '引用和归属已启用',
},
annotation: {
title: '标注回复',
description: '启用后,将标注用户的回复,以便在用户重复提问时快速响应。',
resDes: '标注回复已启用',
scoreThreshold: {
title: '分数阈值',
description: '用于设置标注回复的匹配相似度阈值。',
easyMatch: '容易匹配',
accurateMatch: '精准匹配',
},
matchVariable: {
title: '匹配变量',
choosePlaceholder: '请选择变量',
},
cacheManagement: '标注管理',
cached: '已标注',
remove: '移除',
removeConfirm: '删除这个标注?',
add: '添加标注',
edit: '编辑标注',
},
dataSet: {
title: '知识库',
noData: '您可以导入知识库作为上下文',
words: '词',
textBlocks: '文本块',
selectTitle: '选择引用知识库',
selected: '个知识库被选中',
noDataSet: '未找到知识库',
toCreate: '去创建',
notSupportSelectMulti: '目前只支持引用一个知识库',
queryVariable: {
title: '查询变量',
tip: '该变量将用作上下文检索的查询输入,获取与该变量的输入相关的上下文信息。',
choosePlaceholder: '请选择变量',
noVar: '没有变量',
noVarTip: '请创建变量',
unableToQueryDataSet: '无法查询知识库',
unableToQueryDataSetTip: '无法成功查询知识库,请在上下文部分选择一个上下文查询变量。',
ok: '好的',
contextVarNotEmpty: '上下文查询变量不能为空',
deleteContextVarTitle: '删除变量“{{varName}}”?',
deleteContextVarTip: '该变量已被设置为上下文查询变量,删除该变量将影响知识库的正常使用。 如果您仍需要删除它,请在上下文部分中重新选择它。',
},
},
tools: {
title: '工具',
tips: '工具提供了一个标准的 API 调用方式,将用户输入或变量作为 API 的请求参数,用于查询外部数据作为上下文。',
toolsInUse: '{{count}} 工具使用中',
modal: {
title: '工具',
toolType: {
title: '工具类型',
placeholder: '请选择工具类型',
},
name: {
title: '名称',
placeholder: '请填写名称',
},
variableName: {
title: '变量名称',
placeholder: '请填写变量名称',
},
},
},
conversationHistory: {
title: '对话历史',
description: '设置对话角色的前缀名称',
tip: '对话历史未启用,请在上面的提示中添加<histories>。',
learnMore: '了解更多',
editModal: {
title: '编辑对话角色名称',
userPrefix: '用户前缀',
assistantPrefix: '助手前缀',
},
},
toolbox: {
title: '工具箱',
},
moderation: {
title: '内容审查',
description: '您可以调用审查 API 或者维护敏感词库来使模型更安全地输出。',
contentEnableLabel: '启用审查内容',
allEnabled: '输入内容和输出内容',
inputEnabled: '输入内容',
outputEnabled: '输出内容',
modal: {
title: '内容审查设置',
provider: {
title: '类别',
openai: 'OpenAI Moderation',
openaiTip: {
prefix: 'OpenAI Moderation 需要在',
suffix: '中配置 OpenAI API 密钥。',
},
keywords: '关键词',
},
keywords: {
tip: '每行一个,用换行符分隔。每行最多 100 个字符。',
placeholder: '每行一个,用换行符分隔',
line: '行',
},
content: {
input: '审查输入内容',
output: '审查输出内容',
preset: '预设回复',
placeholder: '这里预设回复内容',
condition: '审查输入内容和审查输出内容至少启用一项',
fromApi: '预设回复通过 API 返回',
errorMessage: '预设回复不能为空',
supportMarkdown: '支持 Markdown',
},
openaiNotConfig: {
before: 'OpenAI 内容审查需要在',
after: '中配置 OpenAI API 密钥。',
},
},
},
fileUpload: {
title: '文件上传',
description: '聊天输入框支持上传文件。类型包括图片、文档以及其它类型',
supportedTypes: '支持的文件类型',
numberLimit: '最大上传数',
modalTitle: '文件上传设置',
},
imageUpload: {
title: '图片上传',
description: '支持上传图片',
supportedTypes: '支持的文件类型',
numberLimit: '最大上传数',
modalTitle: '图片上传设置',
},
bar: {
empty: '开启功能增强 webapp 用户体验',
enableText: '功能已开启',
manage: '管理',
},
documentUpload: {
title: '文档',
description: '启用文档后,模型可以接收文档并回答关于它们的问题。',
},
},
codegen: {
title: '代码生成器',
description: '代码生成器使用配置的模型根据您的指令生成高质量的代码。请提供清晰详细的说明。',
instruction: '指令',
instructionPlaceholder: '请输入您想要生成的代码的详细描述。',
noDataLine1: '在左侧描述您的用例,',
noDataLine2: '代码预览将在此处显示。',
generate: '生成',
generatedCodeTitle: '生成的代码',
loading: '正在生成代码...',
apply: '应用',
applyChanges: '应用更改',
resTitle: '生成的代码',
overwriteConfirmTitle: '是否覆盖现有代码?',
overwriteConfirmMessage: '此操作将覆盖现有代码。您确定要继续吗?',
},
generate: {
title: '提示词生成器',
description: '提示词生成器使用配置的模型来优化提示词,以获得更高的质量和更好的结构。请写出清晰详细的说明。',
tryIt: '试一试',
instruction: '指令',
instructionPlaceHolder: '写下清晰、具体的说明。',
generate: '生成',
resTitle: '生成的提示词',
noDataLine1: '在左侧描述您的用例,',
noDataLine2: '编排预览将在此处显示。',
apply: '应用',
noData: '在左侧描述您的用例,编排预览将在此处显示。',
loading: '为您编排应用程序中…',
overwriteTitle: '覆盖现有配置?',
overwriteMessage: '应用此提示将覆盖现有配置。',
template: {
pythonDebugger: {
name: 'Python 代码助手',
instruction: '一个帮你写和纠错程序的机器人',
},
translation: {
name: '翻译机器人',
instruction: '一个可以翻译多种语言的翻译器',
},
professionalAnalyst: {
name: '职业分析师',
instruction: ' 从长篇报告中提取洞察、识别风险并提炼关键信息',
},
excelFormulaExpert: {
name: 'Excel 公式专家',
instruction: '一个可以让小白用户理解、使用和创建 Excel 公式的对话机器人',
},
travelPlanning: {
name: '旅行规划助手',
instruction: '旅行规划助手是一个智能工具,旨在帮助用户轻松规划他们的旅行',
},
SQLSorcerer: {
name: 'SQL 生成',
instruction: '把自然语言转换成 SQL 查询语句',
},
GitGud: {
name: 'Git 大师',
instruction: '从用户提出的版本管理需求生成合适的 Git 命令',
},
meetingTakeaways: {
name: '总结会议纪要',
instruction: '将会议内容提炼总结,包括讨论主题、关键要点和待办事项',
},
writingsPolisher: {
name: '润色文章',
instruction: '用地道的编辑技巧改进我的文章',
},
},
},
resetConfig: {
title: '确认重置?',
message: '重置将丢失当前页面所有修改,恢复至上次发布时的配置',
},
errorMessage: {
nameOfKeyRequired: '变量 {{key}} 对应的名称必填',
valueOfVarRequired: '{{key}}必填',
queryRequired: '主要文本必填',
waitForResponse: '请等待上条信息响应完成',
waitForBatchResponse: '请等待批量任务完成',
notSelectModel: '请选择模型',
waitForImgUpload: '请等待图片上传完成',
waitForFileUpload: '请等待文件上传完成',
},
chatSubTitle: '提示词',
completionSubTitle: '前缀提示词',
promptTip:
'提示词用于对 AI 的回复做出一系列指令和约束。可插入表单变量,例如 {{input}}。这段提示词不会被最终用户所看到。',
formattingChangedTitle: '编排已改变',
formattingChangedText: '修改编排将重置调试区域,确定吗?',
variableTitle: '变量',
notSetVar: '变量能使用户输入表单引入提示词或开场白,你可以试试在提示词中输入 {{input}}',
variableTip:
'变量将以表单形式让用户在对话前填写,用户填写的表单内容将自动替换提示词中的变量。',
autoAddVar: '提示词中引用了未定义的变量,是否自动添加到用户输入表单中?',
variableTable: {
key: '变量 Key',
name: '字段名称',
optional: '可选',
type: '类型',
action: '操作',
typeString: '文本',
typeSelect: '下拉选项',
},
varKeyError: {
canNoBeEmpty: '{{key}}必填',
tooLong: '{{key}} 长度太长。不能超过 30 个字符',
notValid: '{{key}} 非法。只能包含英文字符,数字和下划线',
notStartWithNumber: '{{key}} 不能以数字开头',
keyAlreadyExists: '{{key}} 已存在',
},
otherError: {
promptNoBeEmpty: '提示词不能为空',
historyNoBeEmpty: '提示词中必须设置对话历史',
queryNoBeEmpty: '提示词中必须设置查询内容',
},
variableConfig: {
'addModalTitle': '添加变量',
'editModalTitle': '编辑变量',
'description': '设置变量 {{varName}}',
'fieldType': '字段类型',
'string': '文本',
'text-input': '文本',
'paragraph': '段落',
'select': '下拉选项',
'number': '数字',
'single-file': '单文件',
'multi-files': '文件列表',
'notSet': '未设置,在 Prompt 中输入 {{input}} 试试',
'stringTitle': '文本框设置',
'maxLength': '最大长度',
'options': '选项',
'addOption': '添加选项',
'apiBasedVar': '基于 API 的变量',
'varName': '变量名称',
'inputPlaceholder': '请输入',
'labelName': '显示名称',
'required': '必填',
'file': {
supportFileTypes: '支持的文件类型',
image: {
name: '图片',
},
audio: {
name: '音频',
},
document: {
name: '文档',
},
video: {
name: '视频',
},
custom: {
name: '其他文件类型',
description: '指定其他文件类型',
createPlaceholder: '+ 文件扩展名,例如 .doc',
},
},
'uploadFileTypes': '上传文件类型',
'localUpload': '本地上传',
'both': '两者',
'maxNumberOfUploads': '最大上传数',
'maxNumberTip': '文档 < {{docLimit}}, 图片 < {{imgLimit}}, 音频 < {{audioLimit}}, 视频 < {{videoLimit}}',
'content': '内容',
'errorMsg': {
labelNameRequired: '显示名称必填',
varNameCanBeRepeat: '变量名称不能重复',
atLeastOneOption: '至少需要一个选项',
optionRepeat: '选项不能重复',
},
},
vision: {
name: '视觉',
description: '开启视觉功能将允许模型输入图片,并根据图像内容的理解回答用户问题',
onlySupportVisionModelTip: '只有视觉模型配置视觉功能',
settings: '设置',
visionSettings: {
title: '视觉设置',
resolution: '分辨率',
resolutionTooltip: `低分辨率模式将使模型接收图像的低分辨率版本尺寸为512 x 512并使用65 Tokens 来表示图像。这样可以使API更快地返回响应并在不需要高细节的用例中消耗更少的输入。
\n
高分辨率模式将首先允许模型查看低分辨率图像然后根据输入图像的大小创建512像素的详细裁剪图像。每个详细裁剪图像使用两倍的预算总共为129 Tokens。`,
high: '高',
low: '低',
uploadMethod: '上传方式',
both: '两者',
localUpload: '本地上传',
url: 'URL',
uploadLimit: '上传数量限制',
},
},
voice: {
name: '音色',
defaultDisplay: '缺省音色',
description: '文本转语音音色设置',
settings: '设置',
voiceSettings: {
title: '音色设置',
language: '语言',
resolutionTooltip: '文本转语音音色支持语言。',
voice: '音色',
autoPlay: '自动播放',
autoPlayEnabled: '开启',
autoPlayDisabled: '关闭',
},
},
openingStatement: {
title: '对话开场白',
add: '添加开场白',
writeOpener: '编写开场白',
placeholder: '在这里写下你的开场白,你可以使用变量,尝试输入 {{variable}}。',
openingQuestion: '开场问题',
noDataPlaceHolder:
'在对话型应用中,让 AI 主动说第一段话可以拉近与用户间的距离。',
varTip: '你可以使用变量, 试试输入 {{variable}}',
tooShort: '对话前提示词至少 20 字才能生成开场白',
notIncludeKey: '前缀提示词中不包含变量 {{key}}。请在前缀提示词中添加该变量',
},
modelConfig: {
model: '语言模型',
setTone: '模型设置',
title: '模型及参数',
modeType: {
chat: '对话型',
completion: '补全型',
},
},
inputs: {
title: '调试与预览',
noPrompt: '尝试在对话前提示框中编写一些提示词',
userInputField: '用户输入',
noVar: '填入变量的值,每次启动新会话时该变量将自动替换提示词中的变量。',
chatVarTip: '填入变量的值,该值将在每次开启一个新会话时自动替换到提示词中',
completionVarTip: '填入变量的值,该值将在每次提交问题时自动替换到提示词中',
previewTitle: '提示词预览',
queryTitle: '查询内容',
queryPlaceholder: '请输入文本内容',
run: '运行',
},
result: '结果',
noResult: '输出结果展示在这',
datasetConfig: {
settingTitle: '召回设置',
knowledgeTip: '点击 “+” 按钮添加知识库',
retrieveOneWay: {
title: 'N选1召回',
description: '根据用户意图和知识库描述,由 Agent 自主判断选择最匹配的单个知识库来查询相关文本,适合知识库区分度大且知识库数量偏少的应用。',
},
retrieveMultiWay: {
title: '多路召回',
description: '根据用户意图同时匹配所有知识库,从多路知识库查询相关文本片段,经过重排序步骤,从多路查询结果中选择匹配用户问题的最佳结果。',
},
rerankModelRequired: '未配置 Rerank 模型',
params: '参数设置',
top_k: 'Top K',
top_kTip: '用于筛选与用户问题相似度最高的文本片段。系统同时会根据选用模型上下文窗口大小动态调整分段数量。',
score_threshold: 'Score 阈值',
score_thresholdTip: '用于设置文本片段筛选的相似度阈值。',
retrieveChangeTip: '修改索引模式和检索模式可能会影响与该知识库关联的应用程序。',
},
debugAsSingleModel: '单一模型进行调试',
debugAsMultipleModel: '多个模型进行调试',
duplicateModel: '复制模型',
publishAs: '发布为',
assistantType: {
name: '助手类型',
chatAssistant: {
name: '基础助手',
description: '基于 LLM 构建一个聊天型助手',
},
agentAssistant: {
name: '智能助手',
description: '构建一个智能助手,他可以自主选择工具完成你设置的任务',
},
},
agent: {
agentMode: 'Agent Mode',
agentModeDes: '设置代理的推理模式类型',
agentModeType: {
ReACT: 'ReAct',
functionCall: 'Function Calling',
},
setting: {
name: 'Agent 设置',
description: '智能助手设置允许设置代理模式和内置提示等高级功能,仅在代理类型中可用。',
maximumIterations: {
name: '最大迭代次数',
description: '限制代理型助手执行迭代的次数',
},
},
buildInPrompt: '内置提示词',
firstPrompt: '第一次提示词',
nextIteration: '下一次迭代',
promptPlaceholder: '在这里写下您的提示词',
tools: {
name: '工具',
description: '使用工具可以扩展代理的能力,比如搜索互联网或科学计算',
enabled: '启用',
},
},
}
export default translation

View File

@@ -0,0 +1,98 @@
const translation = {
title: '日志',
description: '日志记录了应用的运行情况,包括用户的输入和 AI 的回复。',
dateTimeFormat: 'YYYY-MM-DD HH:mm',
table: {
header: {
updatedTime: '更新时间',
time: '创建时间',
endUser: '用户或账户',
input: '输入',
output: '输出',
summary: '标题',
messageCount: '消息数',
userRate: '用户反馈',
adminRate: '管理员反馈',
startTime: '开始时间',
status: '状态',
runtime: '运行时间',
tokens: 'TOKENS',
user: '用户或账户',
version: '版本',
},
pagination: {
previous: '上一页',
next: '下一页',
},
empty: {
noChat: '未开始的对话',
noOutput: '无输出',
element: {
title: '这里有人吗',
content: '在这里观测和标注最终用户和 AI 应用程序之间的交互,以不断提高 AI 的准确性。您可以<testLink>试试</testLink> WebApp 或<shareLink>分享</shareLink>出去,然后返回此页面。',
},
},
},
detail: {
time: '时间',
conversationId: '对话 ID',
promptTemplate: '前缀提示词',
promptTemplateBeforeChat: '对话前提示词 · 以系统消息提交',
annotationTip: '{{user}} 标记的改进回复',
timeConsuming: '耗时',
second: ' 秒',
tokenCost: '花费 Token',
loading: '加载中',
operation: {
like: '赞同',
dislike: '反对',
addAnnotation: '标记改进回复',
editAnnotation: '编辑改进回复',
annotationPlaceholder: '输入你希望 AI 回复的预期答案,这在今后可用于模型微调,持续改进文本生成质量。',
},
variables: '变量',
uploadImages: '上传的图片',
modelParams: '模型参数',
},
filter: {
period: {
today: '今天',
last7days: '过去 7 天',
last4weeks: '过去 4 周',
last3months: '过去 3 月',
last12months: '过去 12 月',
monthToDate: '本月至今',
quarterToDate: '本季度至今',
yearToDate: '本年至今',
allTime: '所有时间',
},
annotation: {
all: '全部',
annotated: '已标注改进({{count}} 项)',
not_annotated: '未标注',
},
sortBy: '排序:',
descending: '降序',
ascending: '升序',
},
workflowTitle: '日志',
workflowSubtitle: '日志记录了应用的执行情况',
runDetail: {
title: '对话日志',
workflowTitle: '日志详情',
fileListLabel: '文件详情',
fileListDetail: '详情',
},
promptLog: 'Prompt 日志',
agentLog: 'Agent 日志',
viewLog: '查看日志',
agentLogDetail: {
agentMode: 'Agent 模式',
toolUsed: '使用工具',
iterations: '迭代次数',
iteration: '迭代',
finalProcessing: '最终处理',
},
}
export default translation

View File

@@ -0,0 +1,172 @@
const translation = {
welcome: {
firstStepTip: '开始之前,',
enterKeyTip: '请先在下方输入你的 OpenAI API Key',
getKeyTip: '从 OpenAI 获取你的 API Key',
placeholder: '你的 OpenAI API Key例如 sk-xxxx',
},
apiKeyInfo: {
cloud: {
trial: {
title: '您正在使用 {{providerName}} 的试用配额。',
description: '试用配额仅供您测试使用。 在试用配额用完之前,请自行设置模型提供商或购买额外配额。',
},
exhausted: {
title: '您的试用额度已用完请设置您的APIKey。',
description: '您的试用配额已用完。 请设置您自己的模型提供商或购买额外配额。',
},
},
selfHost: {
title: {
row1: '首先,',
row2: '设置您的模型提供商。',
},
},
callTimes: '调用次数',
usedToken: '使用 Tokens',
setAPIBtn: '设置模型提供商',
tryCloud: '或者尝试使用 Dify 的云版本并使用试用配额',
},
overview: {
title: '概览',
appInfo: {
explanation: '开箱即用的 AI WebApp',
accessibleAddress: '公开访问 URL',
preview: '预览',
launch: '启动',
regenerate: '重新生成',
regenerateNotice: '您是否要重新生成公开访问 URL',
preUseReminder: '使用前请先打开开关',
settings: {
entry: '设置',
title: 'WebApp 设置',
modalTip: '客户端 WebApp 设置。',
webName: 'WebApp 名称',
webDesc: 'WebApp 描述',
webDescTip: '以下文字将展示在客户端中,对应用进行说明和使用上的基本引导',
webDescPlaceholder: '请输入 WebApp 的描述',
language: '语言',
workflow: {
title: '工作流',
subTitle: '工作流详情',
show: '显示',
hide: '隐藏',
showDesc: '在 WebApp 中展示或者隐藏工作流详情',
},
chatColorTheme: '聊天颜色主题',
chatColorThemeDesc: '设置聊天机器人的颜色主题',
chatColorThemeInverted: '反转',
invalidHexMessage: '无效的十六进制值',
sso: {
label: '单点登录认证',
title: 'WebApp SSO 认证',
description: '启用后,所有用户都需要先进行 SSO 认证才能访问',
tooltip: '联系管理员以开启 WebApp SSO 认证',
},
more: {
entry: '展示更多设置',
copyright: '版权',
copyrightTip: '在 WebApp 中展示版权信息',
copyrightTooltip: '请升级到专业版或者更高',
copyRightPlaceholder: '请输入作者或组织名称',
privacyPolicy: '隐私政策',
privacyPolicyPlaceholder: '请输入隐私政策链接',
privacyPolicyTip: '帮助访问者了解该应用收集的数据,可参考 Dify 的<privacyPolicyLink>隐私政策</privacyPolicyLink>。',
customDisclaimer: '自定义免责声明',
customDisclaimerPlaceholder: '请输入免责声明',
customDisclaimerTip: '在应用中展示免责声明,可用于告知用户 AI 的局限性。',
},
},
embedded: {
entry: '嵌入',
title: '嵌入到网站中',
explanation: '选择一种方式将聊天应用嵌入到你的网站中',
iframe: '将以下 iframe 嵌入到你的网站中的目标位置',
scripts: '将以下代码嵌入到你的网站中',
chromePlugin: '安装 Dify Chrome 浏览器扩展',
copied: '已复制',
copy: '复制',
},
qrcode: {
title: '二维码分享',
scan: '扫码分享应用',
download: '下载二维码',
},
customize: {
way: '方法',
entry: '定制化',
title: '定制化 AI WebApp',
explanation: '你可以定制化 Web App 前端以符合你的情景与风格需求',
way1: {
name: 'Fork 客户端代码修改后部署到 Vercel推荐',
step1: 'Fork 客户端代码并修改',
step1Tip: '点击此处 Fork 源码到你的 GitHub 中,然后修改代码',
step1Operation: 'Dify-WebClient',
step2: '部署到 Vercel 中',
step2Tip: '点击此处将仓库导入到 Vercel 中部署',
step2Operation: '导入仓库',
step3: '配置环境变量',
step3Tip: '在 Vecel 环境变量中添加以下环境变量',
},
way2: {
name: '编写客户端调用 API 并部署到服务器中',
operation: '查看文档',
},
},
},
apiInfo: {
title: '后端服务 API',
explanation: '可集成至你的应用的后端即服务',
accessibleAddress: 'API 访问凭据',
doc: '查阅 API 文档',
},
status: {
running: '运行中',
disable: '已停用',
},
},
analysis: {
title: '分析',
ms: '毫秒',
tokenPS: 'Token/秒',
totalMessages: {
title: '全部消息数',
explanation: '反映 AI 每天的互动总次数,每回答用户一个问题算一条 Message。',
},
totalConversations: {
title: '全部会话数',
explanation: '反映 AI 每天的会话总次数,提示词编排和调试的消息不计入。',
},
activeUsers: {
title: '活跃用户数',
explanation: '与 AI 有效互动,即有一问一答以上的唯一用户数。提示词编排和调试的会话不计入。',
},
tokenUsage: {
title: '费用消耗',
explanation: '反映每日该应用请求语言模型的 Tokens 花费,用于成本控制。',
consumed: '耗费',
},
avgSessionInteractions: {
title: '平均会话互动数',
explanation: '反映每个会话用户的持续沟通次数,如果用户与 AI 问答了 10 轮,即为 10。该指标反映了用户粘性。仅在对话型应用提供。',
},
avgUserInteractions: {
title: '平均用户调用次数',
explanation: '反映每天用户的使用次数。该指标反映了用户粘性。',
},
userSatisfactionRate: {
title: '用户满意度',
explanation: '每 1000 条消息的点赞数。反映了用户对回答十分满意的比例。',
},
avgResponseTime: {
title: '平均响应时间',
explanation: '衡量 AI 应用处理和回复用户请求所花费的平均时间,单位为毫秒,反映性能和用户体验。仅在文本型应用提供。',
},
tps: {
title: 'Token 输出速度',
explanation: '衡量 LLM 的性能。统计 LLM 从请求开始到输出完毕这段期间的 Tokens 输出速度。',
},
},
}
export default translation

View File

@@ -0,0 +1,186 @@
const translation = {
createApp: '创建应用',
types: {
all: '全部',
chatbot: '聊天助手',
agent: 'Agent',
workflow: '工作流',
completion: '文本生成',
advanced: 'Chatflow',
basic: '基础编排',
},
duplicate: '复制',
mermaid: {
handDrawn: '手绘',
classic: '经典',
},
duplicateTitle: '复制应用',
export: '导出 DSL',
exportFailed: '导出 DSL 失败',
importDSL: '导入 DSL 文件',
createFromConfigFile: '通过 DSL 文件创建',
importFromDSL: '导入 DSL',
importFromDSLFile: '文件',
importFromDSLUrl: 'URL',
importFromDSLUrlPlaceholder: '输入 DSL 文件的 URL',
deleteAppConfirmTitle: '确认删除应用?',
deleteAppConfirmContent:
'删除应用将无法撤销。用户将不能访问你的应用,所有 Prompt 编排配置和日志均将一并被删除。',
appDeleted: '应用已删除',
appDeleteFailed: '应用删除失败',
join: '参与社区',
communityIntro: '与团队成员、贡献者和开发者在不同频道中交流',
roadmap: '产品路线图',
newApp: {
learnMore: '了解更多',
startFromBlank: '创建空白应用',
startFromTemplate: '从应用模版创建',
captionAppType: '想要哪种应用类型?',
foundResult: '{{count}} 个结果',
foundResults: '{{count}} 个结果',
noAppsFound: '未找到应用',
noTemplateFound: '未找到模板',
noTemplateFoundTip: '请尝试使用不同的关键字进行搜索。',
chatbotShortDescription: '简单配置即可构建基于 LLM 的对话机器人',
chatbotUserDescription: '通过简单的配置快速搭建一个基于 LLM 的对话机器人。支持切换为 Chatflow 编排。',
completionShortDescription: '用于文本生成任务的 AI 助手',
completionUserDescription: '通过简单的配置快速搭建一个面向文本生成类任务的 AI 助手。',
completionWarning: '该类型不久后将不再支持创建',
agentShortDescription: '具备推理与自主工具调用的智能助手',
agentUserDescription: '能够迭代式的规划推理、自主工具调用,直至完成任务目标的智能助手。',
workflowShortDescription: '面向单轮自动化任务的编排工作流',
workflowUserDescription: '基于工作流编排,适用于自动化、批处理等单轮生成类任务的场景。',
workflowWarning: '正在进行 Beta 测试',
advancedShortDescription: '支持记忆的复杂多轮对话工作流',
advancedUserDescription: '基于工作流编排,适用于定义等复杂流程的多轮对话场景,具有记忆功能。',
chooseAppType: '选择应用类型',
forBeginners: '新手适用',
forAdvanced: '进阶用户适用',
noIdeaTip: '没有想法?试试我们的模板',
captionName: '应用名称 & 图标',
appNamePlaceholder: '给你的应用起个名字',
optional: '可选',
captionDescription: '描述',
appDescriptionPlaceholder: '输入应用的描述',
useTemplate: '使用该模板',
previewDemo: '预览 Demo',
chatApp: '助手',
chatAppIntro:
'我要构建一个聊天场景的应用。该应用采用一问一答模式与用户持续对话。',
agentAssistant: '新的智能助手',
completeApp: '文本生成应用',
completeAppIntro:
'我要构建一个根据提示生成高质量文本的应用,例如生成文章、摘要、翻译等',
showTemplates: '我想从范例模板中选择',
hideTemplates: '返回应用类型选择',
Create: '创建',
Cancel: '取消',
nameNotEmpty: '名称不能为空',
appTemplateNotSelected: '请选择应用模版',
appTypeRequired: '请选择应用类型',
appCreated: '应用已创建',
caution: '注意',
appCreateDSLWarning: '注意DSL 版本差异可能影响部分功能表现',
appCreateDSLErrorTitle: '版本不兼容',
appCreateDSLErrorPart1: '检测到 DSL 版本差异较大,强制导入应用可能无法正常运行。',
appCreateDSLErrorPart2: '是否继续?',
appCreateDSLErrorPart3: '当前应用 DSL 版本:',
appCreateDSLErrorPart4: '系统支持 DSL 版本:',
appCreateFailed: '应用创建失败',
Confirm: '确认',
},
newAppFromTemplate: {
byCategories: '分类',
searchAllTemplate: '搜索所有模版...',
sidebar: {
Recommended: '推荐',
Agent: 'Agent',
Assistant: '助手',
HR: '人力资源',
Workflow: '工作流',
Writing: '写作',
Programming: '编程',
},
},
editApp: '编辑信息',
editAppTitle: '编辑应用信息',
editDone: '应用信息已更新',
editFailed: '更新应用信息失败',
iconPicker: {
ok: '确认',
cancel: '取消',
emoji: '表情符号',
image: '图片',
},
answerIcon: {
title: '使用 WebApp 图标替换 🤖',
description: '是否使用 WebApp 图标替换分享的应用界面中的 🤖',
descriptionInExplore: '是否使用 WebApp 图标替换 Explore 界面中的 🤖',
},
switch: '迁移为工作流编排',
switchTipStart: '将为您创建一个使用工作流编排的新应用。新应用将',
switchTip: '不能够',
switchTipEnd: '迁移回基础编排',
switchLabel: '新应用创建为',
removeOriginal: '删除原应用',
switchStart: '开始迁移',
typeSelector: {
all: '所有类型',
chatbot: '聊天助手',
agent: 'Agent',
workflow: '工作流',
completion: '文本生成',
advanced: 'Chatflow',
},
tracing: {
title: '追踪应用性能',
description: '配置第三方 LLMOps 提供商并跟踪应用程序性能。',
config: '配置',
view: '查看',
collapse: '折叠',
expand: '展开',
tracing: '追踪',
disabled: '已禁用',
disabledTip: '请先配置提供商',
enabled: '已启用',
tracingDescription: '捕获应用程序执行的完整上下文,包括 LLM 调用、上下文、提示、HTTP 请求等,发送到第三方跟踪平台。',
configProviderTitle: {
configured: '已配置',
notConfigured: '配置提供商以启用追踪',
moreProvider: '更多提供商',
},
langsmith: {
title: 'LangSmith',
description: '一个全方位的开发者平台,适用于 LLM 驱动应用程序生命周期的每个步骤。',
},
langfuse: {
title: 'Langfuse',
description: '跟踪、评估、提示管理和指标,以调试和改进您的 LLM 应用程序。',
},
opik: {
title: 'Opik',
description: '一个全方位的开发者平台,适用于 LLM 驱动应用程序生命周期的每个步骤。',
},
inUse: '使用中',
configProvider: {
title: '配置 ',
placeholder: '输入你的{{key}}',
project: '项目',
publicKey: '公钥',
secretKey: '密钥',
viewDocsLink: '查看 {{key}} 的文档',
removeConfirmTitle: '删除 {{key}} 配置?',
removeConfirmContent: '当前配置正在使用中,删除它将关闭追踪功能。',
},
},
appSelector: {
label: '应用',
placeholder: '选择一个应用',
params: '应用参数',
noParams: '无需参数',
},
openInExplore: '在“探索”中打开',
showMyCreatedAppsOnly: '我创建的',
}
export default translation

View File

@@ -0,0 +1,181 @@
const translation = {
currentPlan: '当前套餐',
usagePage: {
teamMembers: '团队成员',
buildApps: '构建应用程序数',
annotationQuota: '标注回复数',
documentsUploadQuota: '文档上传配额',
vectorSpace: '知识库数据存储空间',
vectorSpaceTooltip: '采用高质量索引模式的文档会消耗知识数据存储资源。当知识数据存储达到限制时,将不会上传新文档。',
},
upgradeBtn: {
plain: '查看套餐',
encourage: '立即升级',
encourageShort: '升级',
},
viewBilling: '管理账单及订阅',
buyPermissionDeniedTip: '请联系企业管理员订阅',
plansCommon: {
title: '为您的 AI 之旅提供动力的定价套餐',
freeTrialTipPrefix: '注册即可',
freeTrialTip: '免费试用 200 个 OpenAI 消息额度',
freeTrialTipSuffix: '。无需信用卡',
yearlyTip: '支付 10 个月,享受 1 年!',
mostPopular: '最受欢迎',
cloud: '云服务',
self: '自部署',
planRange: {
monthly: '按月',
yearly: '按年',
},
month: '月',
year: '年',
save: '节省',
free: '免费',
annualBilling: '按年计费',
comparePlanAndFeatures: '对比套餐 & 功能特性',
priceTip: '每个团队空间/',
currentPlan: '当前计划',
contractSales: '联系销售',
contractOwner: '联系团队管理员',
startForFree: '免费开始',
getStarted: '立即开始',
contactSales: '联系销售',
talkToSales: '联系销售',
modelProviders: '支持 OpenAI/Anthropic/Llama2/Azure OpenAI/Hugging Face/Replicate',
teamWorkspace: '{{count,number}} 个团队空间',
teamMember_one: '{{count,number}} 名团队成员',
teamMember_other: '{{count,number}} 名团队成员',
annotationQuota: '标注回复数',
buildApps: '{{count, number}} 个应用程序',
documents: '{{count, number}} 个知识库文档上传配额',
documentsTooltip: '从知识库的数据源导入的文档数量配额。',
vectorSpace: '{{size}} 知识库数据存储空间',
vectorSpaceTooltip: '采用高质量索引模式的文档会消耗知识数据存储资源。当知识数据存储达到限制时,将不会上传新文档。',
documentsRequestQuota: '{{count,number}}/分钟 知识库请求频率限制',
documentsRequestQuotaTooltip: '指每分钟内一个空间在知识库中可执行的操作总数包括数据集的创建、删除、更新文档的上传、修改、归档以及知识库查询等用于评估知识库请求的性能。例如Sandbox 用户在 1 分钟内连续执行 10 次命中测试,其工作区将在接下来的 1 分钟内无法继续执行以下操作:数据集的创建、删除、更新,文档的上传、修改等操作。',
documentProcessingPriority: '文档处理',
priority: {
'standard': '标准',
'priority': '优先',
'top-priority': '最高优先级',
},
logsHistory: '{{days}}日志历史',
customTools: '自定义工具',
unavailable: '不可用',
days: '天',
unlimited: '无限制',
support: '支持',
supportItems: {
communityForums: '社区论坛',
emailSupport: '电子邮件支持',
priorityEmail: '优先电子邮件和聊天支持',
logoChange: 'Logo 更改',
SSOAuthentication: 'SSO 认证',
personalizedSupport: '个性化支持',
dedicatedAPISupport: '专用 API 支持',
customIntegration: '自定义集成和支持',
ragAPIRequest: 'RAG API 请求',
bulkUpload: '批量上传文档',
agentMode: '代理模式',
workflow: '工作流',
llmLoadingBalancing: 'LLM 负载均衡',
llmLoadingBalancingTooltip: '向模型添加多个 API 密钥,有效绕过 API 速率限制。',
},
comingSoon: '即将推出',
member: '成员',
memberAfter: '个成员',
messageRequest: {
title: '{{count,number}} 条消息额度',
titlePerMonth: '{{count,number}} 条消息额度/月',
tooltip: '为不同方案提供基于OpenAl模型的消息响应额度。',
},
annotatedResponse: {
title: '{{count,number}} 个标注回复数',
tooltip: '标注回复功能通过人工编辑标注为应用提供了可定制的高质量问答回复能力。',
},
ragAPIRequestTooltip: '指单独调用 Dify 知识库数据处理能力的 API。',
receiptInfo: '只有团队所有者和团队管理员才能订阅和查看账单信息',
},
plans: {
sandbox: {
name: 'Sandbox',
for: '核心能力的免费试用',
description: '核心功能免费试用',
},
professional: {
name: 'Professional',
for: '适合独立开发者或小团队',
description: '对于独立开发者/小团队',
},
team: {
name: 'Team',
for: '适合中等规模的团队',
description: '对于中型团队',
},
community: {
name: 'Community',
for: '适用于个人用户、小型团队或非商业项目',
description: '适用于个人用户、小型团队或非商业项目',
price: '免费',
btnText: '开始使用',
includesTitle: '免费功能:',
features: [
'所有核心功能均在公共存储库下发布',
'单一工作空间',
'符合 Dify 开源许可证',
],
},
premium: {
name: 'Premium',
for: '对于中型组织和团队',
description: '对于中型组织和团队',
price: '可扩展',
priceTip: '基于云市场',
btnText: '获得 Premium 版',
includesTitle: 'Community 版的所有功能,加上:',
comingSoon: '即将支持 Microsoft Azure & Google Cloud',
features: [
'各个云提供商自行管理的可靠性',
'单一工作空间',
'自定义 WebApp & 品牌',
'优先电子邮件 & 聊天支持',
],
},
enterprise: {
name: 'Enterprise',
for: '适合大人员规模的团队',
description: '对于需要组织范围内的安全性、合规性、可扩展性、控制和更高级功能的企业',
price: '定制',
priceTip: '仅按年计费',
btnText: '联系销售',
includesTitle: 'Premium 版的所有功能,加上:',
features: [
'企业级可扩展部署解决方案',
'商业许可授权',
'专属企业级功能',
'多个工作空间 & 企业级管理',
'SSO',
'由 Dify 合作伙伴支持的可协商的 SLAs',
'高级的安全 & 控制',
'由 Dify 官方提供的更新 & 维护',
'专业技术支持',
],
},
},
vectorSpace: {
fullTip: '知识库数据存储空间已满。',
fullSolution: '升级您的套餐以获得更多空间。',
},
apps: {
fullTipLine1: '升级您的套餐以',
fullTipLine2: '构建更多的程序。',
},
annotatedResponse: {
fullTipLine1: '升级您的套餐以',
fullTipLine2: '标注更多对话。',
quotaTitle: '标注的配额',
},
}
export default translation

View File

@@ -0,0 +1,654 @@
const translation = {
api: {
success: '成功',
actionSuccess: '操作成功',
saved: '已保存',
create: '已创建',
remove: '已移除',
},
operation: {
create: '创建',
confirm: '确认',
cancel: '取消',
clear: '清空',
save: '保存',
saveAndEnable: '保存并启用',
edit: '编辑',
add: '添加',
added: '已添加',
refresh: '重新开始',
reset: '重置',
search: '搜索',
change: '更改',
remove: '移除',
send: '发送',
copy: '复制',
copied: ' 已复制',
lineBreak: '换行',
sure: '我确定',
download: '下载',
downloadSuccess: '下载完毕',
downloadFailed: '下载失败,请稍后重试。',
viewDetails: '查看详情',
delete: '删除',
deleteApp: '删除应用',
settings: '设置',
setup: '设置',
getForFree: '免费获取',
reload: '刷新',
ok: '好的',
log: '日志',
learnMore: '了解更多',
params: '参数设置',
duplicate: '复制',
rename: '重命名',
audioSourceUnavailable: '音源不可用',
copyImage: '复制图片',
imageCopied: '图片已复制',
zoomOut: '缩小',
zoomIn: '放大',
openInNewTab: '在新标签页打开',
in: '在',
saveAndRegenerate: '保存并重新生成子分段',
close: '关闭',
view: '查看',
viewMore: '查看更多',
regenerate: '重新生成',
submit: '提交',
skip: '跳过',
},
errorMsg: {
fieldRequired: '{{field}} 为必填项',
urlError: 'url 应该以 http:// 或 https:// 开头',
},
placeholder: {
input: '请输入',
select: '请选择',
},
voice: {
language: {
zhHans: '中文',
zhHant: '繁体中文',
enUS: '英语',
deDE: '德语',
frFR: '法语',
esES: '西班牙语',
itIT: '意大利语',
thTH: '泰语',
idID: '印尼语',
jaJP: '日语',
koKR: '韩语',
ptBR: '葡萄牙语',
ruRU: '俄语',
ukUA: '乌克兰语',
viVN: '越南语',
plPL: '波兰语',
roRO: '罗马尼亚语',
hiIN: '印地语',
trTR: '土耳其语',
faIR: '波斯语',
},
},
unit: {
char: '个字符',
},
actionMsg: {
noModification: '暂无修改',
modifiedSuccessfully: '修改成功',
modifiedUnsuccessfully: '修改失败',
copySuccessfully: '复制成功',
generatedSuccessfully: '已重新生成',
generatedUnsuccessfully: '生成失败',
paySucceeded: '已支付成功',
payCancelled: '已取消支付',
},
model: {
params: {
temperature: '随机性 temperature',
temperatureTip:
'控制回复的随机性。\n值越大回复越随机。\n值越小回复越确定或一致。',
top_p: '核采样 top_p',
top_pTip:
'控制生成多样性。\n值越大输出会包括更多的单词选项。\n值越小模型会更集中在高概率的单词上输出更确定但可能缺乏多样性。\n核采样和随机性不建议同时修改。',
presence_penalty: '话题新鲜度 presence_penalty',
presence_penaltyTip:
'控制生成时对上文已存在的话题的偏好程度。\n值越大越可能使用到新的话题。',
frequency_penalty: '频率惩罚度 frequency_penalty',
frequency_penaltyTip:
'影响常见与罕见词汇使用。\n值较大时倾向于生成不常见的词汇和表达方式。\n值越小更倾向于使用常见和普遍接受的词汇或短语。',
max_tokens: '单次回复限制 max_tokens',
max_tokensTip:
'用于限制回复的最大长度,以 token 为单位。\n较大的值可能会限制给提示词、聊天记录和知识库留出的空间。\n建议将其设置在三分之二以下。\ngpt-4-1106-preview、gpt-4-vision-preview 最大长度 (输入128k输出4k)',
maxTokenSettingTip: '您设置的最大 tokens 数较大,可能会导致 prompt、用户问题、知识库内容没有 token 空间进行处理,建议设置到 2/3 以下。',
setToCurrentModelMaxTokenTip: '最大令牌数更新为当前模型最大的令牌数 {{maxToken}} 的 80%。',
stop_sequences: '停止序列 stop_sequences',
stop_sequencesTip: '最多四个序列API 将停止生成更多的 token。返回的文本将不包含停止序列。',
stop_sequencesPlaceholder: '输入序列并按 Tab 键',
},
tone: {
Creative: '创意',
Balanced: '平衡',
Precise: '精确',
Custom: '自定义',
},
addMoreModel: '添加更多模型',
settingsLink: '模型设置',
capabilities: '多模态能力',
},
menus: {
status: 'beta',
explore: '探索',
apps: '工作室',
plugins: '插件',
exploreMarketplace: '探索 Marketplace',
pluginsTips: '集成第三方插件或创建与 ChatGPT 兼容的 AI 插件。',
datasets: '知识库',
datasetsTips: '即将到来: 上传自己的长文本数据,或通过 Webhook 集成自己的数据源',
newApp: '创建应用',
newDataset: '创建知识库',
tools: '工具',
},
userProfile: {
settings: '设置',
emailSupport: '邮件支持',
workspace: '工作空间',
createWorkspace: '创建工作空间',
helpCenter: '帮助文档',
support: '支持',
compliance: '合规',
communityFeedback: '用户反馈',
roadmap: '路线图',
github: 'GitHub',
community: '社区',
about: '关于',
logout: '登出',
},
compliance: {
soc2Type1: 'SOC 2 Type I Report',
soc2Type2: 'SOC 2 Type II Report',
iso27001: 'ISO 27001:2022 Certification',
gdpr: 'GDPR DPA',
sandboxUpgradeTooltip: '仅适用于 Professional 或 Team 版计划。',
professionalUpgradeTooltip: '仅适用于 Team 版计划或以上。',
},
settings: {
accountGroup: '通用',
workplaceGroup: '工作空间',
generalGroup: '通用',
account: '我的账户',
members: '成员',
billing: '账单',
integrations: '集成',
language: '语言',
provider: '模型供应商',
dataSource: '数据来源',
plugin: '插件',
apiBasedExtension: 'API 扩展',
},
account: {
account: '账户',
myAccount: '我的账户',
studio: 'Dify 工作室',
avatar: '头像',
name: '用户名',
email: '邮箱',
password: '密码',
passwordTip: '如果您不想使用验证码登录,可以设置永久密码',
setPassword: '设置密码',
resetPassword: '重置密码',
currentPassword: '原密码',
newPassword: '新密码',
notEqual: '两个密码不相同',
confirmPassword: '确认密码',
langGeniusAccount: 'Dify 账号',
langGeniusAccountTip: '您的 Dify 账号和相关的用户数据。',
editName: '编辑名字',
showAppLength: '显示 {{length}} 个应用',
delete: '删除账户',
deleteTip: '请注意,一旦确认,作为任何空间的所有者,您的空间将被安排进入永久删除队列,您的所有用户数据也将被排入永久删除队列。',
deletePrivacyLinkTip: '有关我们如何处理您的数据的更多信息,请参阅我们的',
deletePrivacyLink: '隐私政策',
deleteSuccessTip: '删除账户需要一些时间。完成后,我们会通过邮件通知您。',
deleteLabel: '请输入您的邮箱以确认',
deletePlaceholder: '输入您的邮箱...',
sendVerificationButton: '发送验证码',
verificationLabel: '验证码',
verificationPlaceholder: '输入 6 位数字验证码',
permanentlyDeleteButton: '永久删除',
feedbackTitle: '反馈',
feedbackLabel: '请告诉我们您为什么删除账户?',
feedbackPlaceholder: '选填',
},
members: {
team: '团队',
invite: '添加',
name: '姓名',
lastActive: '上次活动时间',
role: '角色',
pending: '待定...',
owner: '所有者',
admin: '管理员',
adminTip: '能够建立应用程序和管理团队设置',
normal: '成员',
normalTip: '只能使用应用程序,不能建立应用程序',
editor: '编辑',
editorTip: '能够建立并编辑应用程序,不能管理团队设置',
datasetOperator: '知识库管理员',
datasetOperatorTip: '只能管理知识库',
inviteTeamMember: '添加团队成员',
inviteTeamMemberTip: '对方在登录后可以访问你的团队数据。',
emailNotSetup: '由于邮件服务器未设置,无法发送邀请邮件。请将邀请后生成的邀请链接通知用户。',
email: '邮箱',
emailInvalid: '邮箱格式无效',
emailPlaceholder: '输入邮箱',
sendInvite: '发送邀请',
invitedAsRole: '邀请为{{role}}用户',
invitationSent: '邀请已发送',
invitationSentTip: '邀请已发送,对方登录 Dify 后即可访问你的团队数据。',
invitationLink: '邀请链接',
failedInvitationEmails: '邀请以下邮箱失败',
ok: '好的',
removeFromTeam: '移出团队',
removeFromTeamTip: '将取消团队访问',
setAdmin: '设为管理员',
setMember: '设为普通成员',
setEditor: '设为编辑',
disInvite: '取消邀请',
deleteMember: '删除成员',
you: '(你)',
builderTip: '可以构建和编辑自己的应用程序',
setBuilder: 'Set as builder (设置为构建器)',
builder: '构建器',
},
integrations: {
connected: '登录方式',
google: 'Google',
googleAccount: 'Google 账号登录',
github: 'GitHub',
githubAccount: 'GitHub 账号登录',
connect: '绑定',
},
language: {
displayLanguage: '界面语言',
timezone: '时区',
},
provider: {
apiKey: 'API 密钥',
enterYourKey: '输入你的 API 密钥',
invalidKey: '无效的 OpenAI API 密钥',
validatedError: '校验失败:',
validating: '验证密钥中...',
saveFailed: 'API 密钥保存失败',
apiKeyExceedBill: '此 API KEY 已没有可用配额,请阅读',
addKey: '添加 密钥',
comingSoon: '即将推出',
editKey: '编辑',
invalidApiKey: '无效的 API 密钥',
azure: {
apiBase: 'API Base',
apiBasePlaceholder: '输入您的 Azure OpenAI API Base 地址',
apiKey: 'API Key',
apiKeyPlaceholder: '输入你的 API 密钥',
helpTip: '了解 Azure OpenAI Service',
},
openaiHosted: {
openaiHosted: '托管 OpenAI',
onTrial: '体验',
exhausted: '超出限额',
desc: '托管 OpenAI 由 Dify 提供的托管 OpenAI 服务,你可以使用 GPT-3.5 等模型,在体验额度消耗完毕前你需要设置其它模型供应商。',
callTimes: '调用次数',
usedUp: '试用额度已用完,请在下方添加自己的模型供应商',
useYourModel: '当前正在使用你自己的模型供应商。',
close: '关闭',
},
anthropicHosted: {
anthropicHosted: 'Anthropic Claude',
onTrial: '体验',
exhausted: '超出限额',
desc: '功能强大的模型,擅长执行从复杂对话和创意内容生成到详细指导的各种任务。',
callTimes: '调用次数',
usedUp: '试用额度已用完,请在下方添加自己的模型供应商',
useYourModel: '当前正在使用你自己的模型供应商。',
close: '关闭',
trialQuotaTip: '您的 Anthropic 体验额度将于 2025/03/17 过期,过期后将无法使用,请尽快体验。',
},
anthropic: {
using: '嵌入能力正在使用',
enableTip: '要启用 Anthropic 模型,您需要先绑定 OpenAI 或 Azure OpenAI 服务。',
notEnabled: '未启用',
keyFrom: '从 Anthropic 获取您的 API 密钥',
},
encrypted: {
front: '密钥将使用 ',
back: ' 技术进行加密和存储。',
},
},
modelProvider: {
notConfigured: '系统模型尚未完全配置',
systemModelSettings: '系统模型设置',
systemModelSettingsLink: '为什么需要设置系统模型?',
selectModel: '选择您的模型',
setupModelFirst: '请先设置您的模型',
systemReasoningModel: {
key: '系统推理模型',
tip: '设置创建应用使用的默认推理模型,以及对话名称生成、下一步问题建议等功能也会使用该默认推理模型。',
},
embeddingModel: {
key: 'Embedding 模型',
tip: '设置知识库文档嵌入处理的默认模型检索和导入知识库均使用该Embedding模型进行向量化处理切换后将导致已导入的知识库与问题之间的向量维度不一致从而导致检索失败。为避免检索失败请勿随意切换该模型。',
required: '请选择 Embedding 模型',
},
speechToTextModel: {
key: '语音转文本模型',
tip: '设置对话中语音转文字输入的默认使用模型。',
},
ttsModel: {
key: '文本转语音模型',
tip: '设置对话中文字转语音输出的默认使用模型。',
},
rerankModel: {
key: 'Rerank 模型',
tip: '重排序模型将根据候选文档列表与用户问题语义匹配度进行重新排序,从而改进语义排序的结果',
},
quota: '额度',
searchModel: '搜索模型',
noModelFound: '找不到模型 {{model}}',
models: '模型列表',
showMoreModelProvider: '显示更多模型提供商',
selector: {
tip: '该模型已被删除。请添模型或选择其他模型。',
emptyTip: '无可用模型',
emptySetting: '请前往设置进行配置',
rerankTip: '请设置 Rerank 模型',
},
card: {
quota: '额度',
onTrial: '试用中',
paid: '已购买',
quotaExhausted: '配额已用完',
callTimes: '调用次数',
tokens: 'Tokens',
buyQuota: '购买额度',
priorityUse: '优先使用',
removeKey: '删除 API 密钥',
tip: '已付费额度将优先考虑。 试用额度将在付费额度用完后使用。',
},
item: {
deleteDesc: '{{modelName}} 被用作系统推理模型。删除后部分功能将无法使用。请确认。',
freeQuota: '免费额度',
},
addApiKey: '添加您的 API 密钥',
invalidApiKey: 'Invalid API key',
encrypted: {
front: '您的密钥将使用',
back: '技术进行加密和存储。',
},
freeQuota: {
howToEarn: '如何获取',
},
addMoreModelProvider: '添加更多模型提供商',
addModel: '添加模型',
modelsNum: '{{num}} 个模型',
showModels: '显示模型',
showModelsNum: '显示 {{num}} 个模型',
collapse: '收起',
config: '配置',
modelAndParameters: '模型及参数',
model: '模型',
featureSupported: '支持 {{feature}} 功能',
callTimes: '调用次数',
credits: '消息额度',
buyQuota: '购买额度',
getFreeTokens: '获得免费 Tokens',
priorityUsing: '优先使用',
deprecated: '已弃用',
confirmDelete: '确认删除?',
quotaTip: '剩余免费额度',
loadPresets: '加载预设',
parameters: '参数',
loadBalancing: '负载均衡',
loadBalancingDescription: '为了减轻单组凭据的压力,您可以为模型调用配置多组凭据。',
loadBalancingHeadline: '负载均衡',
configLoadBalancing: '设置负载均衡',
modelHasBeenDeprecated: '该模型已废弃',
providerManaged: '由模型供应商管理',
providerManagedDescription: '使用模型供应商提供的单组凭据',
defaultConfig: '默认配置',
apiKeyStatusNormal: 'API Key 正常',
apiKeyRateLimit: '已达频率上限,{{seconds}}秒后恢复',
addConfig: '增加配置',
editConfig: '修改配置',
loadBalancingLeastKeyWarning: '至少启用 2 个 Key 以使用负载均衡',
loadBalancingInfo: '默认情况下,负载均衡使用 Round-robin 策略。如果触发速率限制,将应用 1 分钟的冷却时间',
upgradeForLoadBalancing: '升级以解锁负载均衡功能',
apiKey: 'API 密钥',
toBeConfigured: '待配置',
configureTip: '请配置 API 密钥,添加模型。',
installProvider: '安装模型供应商',
discoverMore: '发现更多就在',
emptyProviderTitle: '尚未安装模型供应商',
emptyProviderTip: '请安装模型供应商。',
},
dataSource: {
add: '添加数据源',
connect: '绑定',
configure: '配置',
notion: {
title: 'Notion',
description: '使用 Notion 作为知识库的数据源。',
connectedWorkspace: '已绑定工作空间',
addWorkspace: '添加工作空间',
connected: '已绑定',
disconnected: '未绑定',
changeAuthorizedPages: '更改授权页面',
pagesAuthorized: '已授权页面',
sync: '同步',
remove: '删除',
selector: {
pageSelected: '已选页面',
searchPages: '搜索页面...',
noSearchResult: '无搜索结果',
addPages: '添加页面',
preview: '预览',
},
},
website: {
title: '网站',
description: '使用网络爬虫从网站导入内容。',
with: '使用',
configuredCrawlers: '已配置的爬虫',
active: '可用',
inactive: '不可用',
},
},
plugin: {
serpapi: {
apiKey: 'API Key',
apiKeyPlaceholder: '输入你的 API 密钥',
keyFrom: '从 SerpAPI 帐户页面获取您的 SerpAPI 密钥',
},
},
apiBasedExtension: {
title: 'API 扩展提供了一个集中式的 API 管理,在此统一添加 API 配置后,方便在 Dify 上的各类应用中直接使用。',
link: '了解如何开发您自己的 API 扩展。',
linkUrl: 'https://docs.dify.ai/v/zh-hans/guides/extension/api-based-extension',
add: '新增 API 扩展',
selector: {
title: 'API 扩展',
placeholder: '请选择 API 扩展',
manage: '管理 API 扩展',
},
modal: {
title: '新增 API 扩展',
editTitle: '编辑 API 扩展',
name: {
title: '名称',
placeholder: '请输入名称',
},
apiEndpoint: {
title: 'API Endpoint',
placeholder: '请输入 API endpoint',
},
apiKey: {
title: 'API-key',
placeholder: '请输入 API-key',
lengthError: 'API-key 不能少于 5 位',
},
},
type: '类型',
},
about: {
changeLog: '更新日志',
updateNow: '现在更新',
nowAvailable: 'Dify {{version}} 现已可用。',
latestAvailable: 'Dify {{version}} 已是最新版本。',
},
appMenus: {
overview: '监测',
promptEng: '编排',
apiAccess: '访问 API',
logAndAnn: '日志与标注',
logs: '日志',
},
environment: {
testing: '测试环境',
development: '开发环境',
},
appModes: {
completionApp: '文本生成型应用',
chatApp: '对话型应用',
},
datasetMenus: {
documents: '文档',
hitTesting: '召回测试',
settings: '设置',
emptyTip: '此知识尚未集成到任何应用程序中。请参阅文档以获取指导。',
viewDoc: '查看文档',
relatedApp: '个关联应用',
noRelatedApp: '无关联应用',
},
voiceInput: {
speaking: '现在讲...',
converting: '正在转换为文本...',
notAllow: '麦克风未授权',
},
modelName: {
'gpt-3.5-turbo': 'GPT-3.5-Turbo',
'gpt-3.5-turbo-16k': 'GPT-3.5-Turbo-16K',
'gpt-4': 'GPT-4',
'gpt-4-32k': 'GPT-4-32K',
'text-davinci-003': 'Text-Davinci-003',
'text-embedding-ada-002': 'Text-Embedding-Ada-002',
'whisper-1': 'Whisper-1',
'claude-instant-1': 'Claude-Instant',
'claude-2': 'Claude-2',
},
chat: {
renameConversation: '重命名会话',
conversationName: '会话名称',
conversationNamePlaceholder: '请输入会话名称',
conversationNameCanNotEmpty: '会话名称必填',
citation: {
title: '引用',
linkToDataset: '跳转至知识库',
characters: '字符:',
hitCount: '召回次数:',
vectorHash: '向量哈希:',
hitScore: '召回得分:',
},
inputPlaceholder: '和机器人聊天',
thinking: '深度思考中...',
thought: '已深度思考',
},
promptEditor: {
placeholder: '在这里写你的提示词,输入\'{\' 插入变量、输入\'/\' 插入提示内容块',
context: {
item: {
title: '上下文',
desc: '插入上下文模板',
},
modal: {
title: '有 {{num}} 个知识库在上下文中',
add: '添加上下文',
footer: '您可以在下面的“上下文”部分中管理上下文。',
},
},
history: {
item: {
title: '会话历史',
desc: '插入历史消息模板',
},
modal: {
title: '示例',
user: '你好',
assistant: '你好!今天我能为您提供什么帮助?',
edit: '编辑对话角色名称',
},
},
variable: {
item: {
title: '变量 & 外部工具',
desc: '插入变量和外部工具',
},
outputToolDisabledItem: {
title: '变量',
desc: '插入变量',
},
modal: {
add: '添加新变量',
addTool: '添加工具',
},
},
query: {
item: {
title: '查询内容',
desc: '插入用户查询模板',
},
},
existed: 'Prompt 中已存在',
},
imageUploader: {
uploadFromComputer: '从本地上传',
uploadFromComputerReadError: '图片读取失败,请重新选择。',
uploadFromComputerUploadError: '图片上传失败,请重新上传。',
uploadFromComputerLimit: '上传图片不能超过 {{size}} MB',
pasteImageLink: '粘贴图片链接',
pasteImageLinkInputPlaceholder: '将图像链接粘贴到此处',
pasteImageLinkInvalid: '图片链接无效',
imageUpload: '图片上传',
},
fileUploader: {
uploadFromComputer: '从本地上传',
pasteFileLink: '粘贴文件链接',
pasteFileLinkInputPlaceholder: '输入文件链接',
uploadFromComputerReadError: '文件读取失败,请重新选择。',
uploadFromComputerUploadError: '文件上传失败,请重新上传。',
uploadFromComputerLimit: '上传 {{type}} 不能超过 {{size}}',
pasteFileLinkInvalid: '文件链接无效',
fileExtensionNotSupport: '文件类型不支持',
},
tag: {
placeholder: '全部标签',
addNew: '创建新标签',
noTag: '没有标签',
noTagYet: '还没有标签',
addTag: '添加标签',
editTag: '修改标签',
manageTags: '管理标签',
selectorPlaceholder: '搜索或者创建',
create: '创建',
delete: '删除标签',
deleteTip: '标签正在使用中,是否删除?',
created: '标签创建成功',
failed: '标签创建失败',
},
license: {
expiring: '许可证还有 1 天到期',
expiring_plural: '许可证还有 {{count}} 天到期',
},
pagination: {
perPage: '每页显示',
},
}
export default translation

View File

@@ -0,0 +1,32 @@
const translation = {
custom: '定制',
upgradeTip: {
title: '升级您的计划',
des: '升级您的计划来定制您的品牌。',
prefix: '升级您的计划以',
suffix: '定制您的品牌。',
},
webapp: {
title: '定制 WebApp 品牌',
removeBrand: '移除 Powered by Dify',
changeLogo: '更改 Powered by Brand 图片',
changeLogoTip: 'SVG 或 PNG 格式,最小尺寸为 40x40px',
},
app: {
title: '定制应用品牌',
changeLogoTip: 'SVG 或 PNG 格式,最小尺寸为 80x80px',
},
upload: '上传',
uploading: '上传中',
uploadedFail: '图片上传失败,请重新上传。',
change: '更改',
apply: '应用',
restore: '恢复默认',
customize: {
contactUs: '联系我们',
prefix: '如需在 Dify 内自定义品牌图标,请',
suffix: '升级至企业版。',
},
}
export default translation

View File

@@ -0,0 +1,203 @@
const translation = {
steps: {
header: {
fallbackRoute: '知识库',
},
one: '选择数据源',
two: '文本分段与清洗',
three: '处理并完成',
},
error: {
unavailable: '该知识库不可用',
},
firecrawl: {
configFirecrawl: '配置 🔥Firecrawl',
apiKeyPlaceholder: '从 firecrawl.dev 获取 API Key',
getApiKeyLinkText: '从 firecrawl.dev 获取您的 API Key',
},
jinaReader: {
configJinaReader: '配置 Jina Reader',
apiKeyPlaceholder: '从 jina.ai 获取 API Key',
getApiKeyLinkText: '从 jina.ai 获取您的免费 API Key',
},
stepOne: {
filePreview: '文件预览',
pagePreview: '页面预览',
dataSourceType: {
file: '导入已有文本',
notion: '同步自 Notion 内容',
web: '同步自 Web 站点',
},
uploader: {
title: '上传文本文件',
button: '拖拽文件至此,或者',
browse: '选择文件',
tip: '已支持 {{supportTypes}},每个文件不超过 {{size}}MB。',
validation: {
typeError: '文件类型不支持',
size: '文件太大了,不能超过 {{size}}MB',
count: '暂不支持多个文件',
filesNumber: '批量上传限制 {{filesNumber}}。',
},
cancel: '取消',
change: '更改文件',
failed: '上传失败',
},
notionSyncTitle: 'Notion 未绑定',
notionSyncTip: '同步 Notion 内容前,须先绑定 Notion 空间',
connect: '去绑定',
cancel: '取消',
button: '下一步',
emptyDatasetCreation: '创建一个空知识库',
modal: {
title: '创建空知识库',
tip: '空知识库中还没有文档,你可以在今后任何时候上传文档至该知识库。',
input: '知识库名称',
placeholder: '请输入知识库名称',
nameNotEmpty: '名称不能为空',
nameLengthInvalid: '名称长度不能超过 40 个字符',
cancelButton: '取消',
confirmButton: '创建',
failed: '创建失败',
},
website: {
chooseProvider: '选择工具',
fireCrawlNotConfigured: 'Firecrawl 未配置',
fireCrawlNotConfiguredDescription: '请配置 Firecrawl 的 API 密钥以使用它。',
jinaReaderNotConfigured: 'Jina Reader 未配置',
jinaReaderNotConfiguredDescription: '请配置 Jina Reader 的免费 API 密钥以访问它。',
configure: '配置',
run: '运行',
firecrawlTitle: '使用 🔥Firecrawl 提取网页内容',
firecrawlDoc: 'Firecrawl 文档',
firecrawlDocLink: 'https://docs.dify.ai/v/zh-hans/guides/knowledge-base/sync-from-website',
jinaReaderTitle: '将整个站点内容转换为 Markdown 格式',
jinaReaderDoc: '了解更多关于 Jina Reader',
jinaReaderDocLink: 'https://jina.ai/reader',
useSitemap: '使用 sitemap',
useSitemapTooltip: '根据 sitemap 爬取站点。否则Jina Reader 将基于页面相关性迭代爬取,抓取较少的页面,但质量更高。',
options: '选项',
crawlSubPage: '爬取子页面',
limit: '限制数量',
maxDepth: '最大深度',
excludePaths: '排除路径',
includeOnlyPaths: '仅包含路径',
extractOnlyMainContent: '仅提取主要内容(无标题、导航、页脚等)',
exceptionErrorTitle: '运行时发生异常:',
unknownError: '未知错误',
totalPageScraped: '抓取页面总数:',
selectAll: '全选',
resetAll: '重置全部',
scrapTimeInfo: '总共在 {{time}}秒 内抓取了 {{total}} 个页面',
preview: '预览',
maxDepthTooltip: '相对于输入 URL 的最大抓取深度。深度0仅抓取输入 URL 本身的页面深度1抓取输入 URL 及其后的一层目录(一个 /),依此类推。',
},
},
stepTwo: {
segmentation: '分段设置',
auto: '自动分段与清洗',
autoDescription: '自动设置分段规则与预处理规则,如果不了解这些参数建议选择此项',
custom: '自定义',
customDescription: '自定义分段规则、分段长度以及预处理规则等参数',
general: '通用',
generalTip: '通用文本分块模式,检索和召回的块是相同的',
parentChild: '父子分段',
parentChildTip: '使用父子模式时,子块用于检索,父块用作上下文',
parentChunkForContext: '父块用作上下文',
childChunkForRetrieval: '子块用于检索',
paragraph: '段落',
paragraphTip: '此模式根据分隔符和最大块长度将文本拆分为段落,使用拆分文本作为检索的父块',
fullDoc: '全文',
fullDocTip: '整个文档用作父块并直接检索。请注意出于性能原因超过10000个标记的文本将被自动截断。',
separator: '分段标识符',
separatorTip: '分隔符是用于分隔文本的字符。\\n\\n 和 \\n 是常用于分隔段落和行的分隔符。用逗号连接分隔符(\\n\\n,\\n当段落超过最大块长度时会按行进行分割。你也可以使用自定义的特殊分隔符例如 ***)。',
separatorPlaceholder: '\\n\\n 用于分段;\\n 用于分行',
maxLength: '分段最大长度',
maxLengthCheck: '分段最大长度不能大于 {{limit}}',
overlap: '分段重叠长度',
overlapTip: '设置分段之间的重叠长度可以保留分段之间的语义关系提升召回效果。建议设置为最大分段长度的10%-25%',
overlapCheck: '分段重叠长度不能大于分段最大长度',
rules: '文本预处理规则',
removeExtraSpaces: '替换掉连续的空格、换行符和制表符',
removeUrlEmails: '删除所有 URL 和电子邮件地址',
removeStopwords: '去除停用词,例如 “a”“an”“the” 等',
preview: '预览',
previewChunk: '预览块',
reset: '重置',
indexMode: '索引方式',
qualified: '高质量',
highQualityTip: '使用高质量模式进行嵌入后,无法切换回经济模式。',
recommend: '推荐',
qualifiedTip: '调用嵌入模型处理文档以实现更精确的检索可以帮助LLM生成高质量的答案。',
warning: '请先完成模型供应商的 API KEY 设置。.',
click: '前往设置',
economical: '经济',
economicalTip: '每个数据块使用10个关键词进行检索不会消耗任何tokens但会以降低检索准确性为代价。',
QATitle: '采用 Q&A 分段模式',
QATip: '开启后将会消耗额外的 token',
QALanguage: '分段使用',
useQALanguage: '使用 Q&A 分段,语言',
estimateCost: '执行嵌入预估消耗',
estimateSegment: '预估分段数',
segmentCount: '段',
calculating: '计算中...',
fileSource: '预处理文档',
notionSource: '预处理页面',
websiteSource: '预处理页面',
other: '和其他 ',
fileUnit: ' 个文件',
notionUnit: ' 个页面',
webpageUnit: ' 个页面',
previousStep: '上一步',
nextStep: '保存并处理',
save: '保存并处理',
cancel: '取消',
sideTipTitle: '为什么要分段和预处理?',
sideTipP1: '在处理文本数据时,分段和清洗是两个重要的预处理步骤。',
sideTipP2: '分段的目的是将长文本拆分成较小的段落,以便模型更有效地处理和理解。这有助于提高模型生成的结果的质量和相关性。',
sideTipP3: '清洗则是对文本进行预处理,删除不必要的字符、符号或格式,使知识库更加干净、整洁,便于模型解析。',
sideTipP4: '通过对知识库进行适当的分段和清洗,可以提高模型在实际应用中的表现,从而为用户提供更准确、更有价值的结果。',
previewTitle: '分段预览',
previewTitleButton: '预览',
previewButton: '切换至 Q&A 形式',
previewSwitchTipStart: '当前分段预览是文本模式,切换到 Q&A 模式将会',
previewSwitchTipEnd: '消耗额外的 token',
characters: '字符',
indexSettingTip: '要更改索引方法和 embedding 模型,请转到',
retrievalSettingTip: '要更改检索方法,请转到',
datasetSettingLink: '知识库设置。',
previewChunkTip: '点击左侧的“预览块”按钮来加载预览',
previewChunkCount: '{{count}} 预估块',
switch: '切换',
qaSwitchHighQualityTipTitle: 'Q&A 格式需要高质量的索引方法',
qaSwitchHighQualityTipContent: '目前,只有高质量的索引方法支持 Q&A 格式分块。您要切换到高质量模式吗?',
notAvailableForParentChild: '不支持父子索引',
notAvailableForQA: '不支持 Q&A 索引',
parentChildDelimiterTip: '文本分隔符是用于分隔文本的字符。建议用 \n\n 将原始文档划分为较大的父级片段。您也可以自定义特殊分隔符。',
parentChildChunkDelimiterTip: '文本分隔符是用于分隔文本的字符。建议使用 \n 将父级片段拆分为较小的子级片段。您也可以自定义特殊分隔符。',
},
stepThree: {
creationTitle: '🎉 知识库已创建',
creationContent: '我们自动为该知识库起了个名称,您也可以随时修改',
label: '知识库名称',
additionTitle: '🎉 文档已上传',
additionP1: '文档已上传至知识库:',
additionP2: ',你可以在知识库的文档列表中找到它。',
stop: '停止处理',
resume: '恢复处理',
navTo: '前往文档',
sideTipTitle: '接下来做什么',
sideTipContent: '当文档完成索引处理后,知识库即可集成至应用内作为上下文使用,你可以在提示词编排页找到上下文设置。你也可以创建成可独立使用的 ChatGPT 索引插件发布。',
modelTitle: '确认停止索引过程吗?',
modelContent: '如果您需要稍后恢复处理,则从停止处继续。',
modelButtonConfirm: '确认停止',
modelButtonCancel: '取消',
},
otherDataSource: {
title: '连接到其他数据源?',
description: '目前Dify 的知识库只有有限的数据源。向 Dify 知识库贡献数据源是帮助所有用户增强平台灵活性和强大功能的绝佳方式。我们的贡献指南使入门变得容易。请点击下面的链接了解更多信息。',
learnMore: '了解更多信息',
},
}
export default translation

View File

@@ -0,0 +1,393 @@
const translation = {
list: {
title: '文档',
desc: '知识库的所有文件都在这里显示,整个知识库都可以链接到 Dify 引用或通过 Chat 插件进行索引。',
learnMore: '了解更多',
addFile: '添加文件',
addPages: '添加页面',
addUrl: '添加 URL',
table: {
header: {
fileName: '名称',
chunkingMode: '分段模式',
words: '字符数',
hitCount: '召回次数',
uploadTime: '上传时间',
status: '状态',
action: '操作',
},
rename: '重命名',
name: '名称',
},
action: {
uploadFile: '上传新文件',
settings: '分段设置',
addButton: '添加分段',
add: '添加新分段',
batchAdd: '批量添加',
archive: '归档',
unarchive: '撤销归档',
delete: '删除',
enableWarning: '归档的文件无法启用',
sync: '同步',
},
index: {
enable: '启用中',
disable: '禁用中',
all: '全部',
enableTip: '该文件可以被索引',
disableTip: '该文件无法被索引',
},
status: {
queuing: '排队中',
indexing: '索引中',
paused: '已暂停',
error: '错误',
available: '可用',
enabled: '已启用',
disabled: '已禁用',
archived: '已归档',
},
empty: {
title: '还没有文档',
upload: {
tip: '您可以上传文件从网站同步或者从网络应用程序如概念、GitHub 等)同步。',
},
sync: {
tip: 'Dify 会定期从您的 Notion 中下载文件并完成处理。',
},
},
delete: {
title: '确定删除吗?',
content: '如果您需要稍后恢复处理,您将从您离开的地方继续',
},
batchModal: {
title: '批量添加分段',
csvUploadTitle: '将您的 CSV 文件拖放到此处,或',
browse: '选择文件',
tip: 'CSV 文件必须符合以下结构:',
question: '问题',
answer: '回答',
contentTitle: '分段内容',
content: '内容',
template: '下载模板',
cancel: '取消',
run: '导入',
runError: '批量导入失败',
processing: '批量处理中',
completed: '导入完成',
error: '导入出错',
ok: '确定',
},
},
metadata: {
title: '元数据',
desc: '标记文档的元数据允许 AI 及时访问它们并为用户公开参考来源。',
dateTimeFormat: 'YYYY-MM-DD HH:mm',
docTypeSelectTitle: '请选择一种文档类型',
docTypeChangeTitle: '更换文档类型',
docTypeSelectWarning: '如果更改文档类型,将不再保留现在填充的元数据',
firstMetaAction: '开始',
placeholder: {
add: '输入',
select: '选择',
},
source: {
upload_file: '文件上传',
notion: '从 Notion 同步的文档',
github: '从 Github 同步的代码',
},
type: {
book: '书籍',
webPage: '网页',
paper: '论文',
socialMediaPost: '社交媒体帖子',
personalDocument: '个人文档',
businessDocument: '商务文档',
IMChat: 'IM 聊天记录',
wikipediaEntry: '维基百科条目',
notion: '从 Notion 同步的文档',
github: '从 Github 同步的代码',
technicalParameters: '技术参数',
},
field: {
processRule: {
processDoc: '预处理文档',
segmentRule: '分段规则',
segmentLength: '分段长度',
processClean: '文本预处理与清洗',
},
book: {
title: '标题',
language: '语言',
author: '作者',
publisher: '出版商',
publicationDate: '出版日期',
ISBN: 'ISBN',
category: '类别',
},
webPage: {
title: '标题',
url: '网址',
language: '语言',
authorPublisher: '作者/出版商',
publishDate: '发布日期',
topicKeywords: '主题/关键词',
description: '描述',
},
paper: {
title: '标题',
language: '语言',
author: '作者',
publishDate: '发布日期',
journalConferenceName: '期刊/会议名称',
volumeIssuePage: '卷/期/页码',
DOI: 'DOI',
topicsKeywords: '主题/关键词',
abstract: '摘要',
},
socialMediaPost: {
platform: '平台',
authorUsername: '作者/用户名',
publishDate: '发布日期',
postURL: '帖子网址',
topicsTags: '主题/标签',
},
personalDocument: {
title: '标题',
author: '作者',
creationDate: '创建日期',
lastModifiedDate: '最后修改日期',
documentType: '文档类型',
tagsCategory: '标签/类别',
},
businessDocument: {
title: '标题',
author: '作者',
creationDate: '创建日期',
lastModifiedDate: '最后修改日期',
documentType: '文档类型',
departmentTeam: '部门/团队',
},
IMChat: {
chatPlatform: '聊天平台',
chatPartiesGroupName: '聊天参与方/群组名称',
participants: '参与者',
startDate: '开始日期',
endDate: '结束日期',
topicsKeywords: '主题/关键词',
fileType: '文件类型',
},
wikipediaEntry: {
title: '标题',
language: '语言',
webpageURL: '网页网址',
editorContributor: '编辑/贡献者',
lastEditDate: '最后编辑日期',
summaryIntroduction: '摘要/介绍',
},
notion: {
title: '标题',
language: '语言',
author: '作者',
createdTime: '创建时间',
lastModifiedTime: '最后修改时间',
url: '网址',
tag: '标签',
description: '描述',
},
github: {
repoName: '仓库名',
repoDesc: '仓库描述',
repoOwner: '仓库所有者',
fileName: '文件名',
filePath: '文件路径',
programmingLang: '编程语言',
url: '网址',
license: '许可证',
lastCommitTime: '最后提交时间',
lastCommitAuthor: '最后提交者',
},
originInfo: {
originalFilename: '原始文件名称',
originalFileSize: '原始文件大小',
uploadDate: '上传日期',
lastUpdateDate: '最后更新日期',
source: '来源',
},
technicalParameters: {
segmentSpecification: '分段规则',
segmentLength: '段落长度',
avgParagraphLength: '平均段落长度',
paragraphs: '段落数量',
hitCount: '召回次数',
embeddingTime: '嵌入时间',
embeddedSpend: '嵌入花费',
},
},
languageMap: {
zh: '中文',
en: '英文',
es: '西班牙语',
fr: '法语',
de: '德语',
ja: '日语',
ko: '韩语',
ru: '俄语',
ar: '阿拉伯语',
pt: '葡萄牙语',
it: '意大利语',
nl: '荷兰语',
pl: '波兰语',
sv: '瑞典语',
tr: '土耳其语',
he: '希伯来语',
hi: '印地语',
da: '丹麦语',
fi: '芬兰语',
no: '挪威语',
hu: '匈牙利语',
el: '希腊语',
cs: '捷克语',
th: '泰语',
id: '印度尼西亚语',
},
categoryMap: {
book: {
fiction: '小说',
biography: '传记',
history: '历史',
science: '科学',
technology: '技术',
education: '教育',
philosophy: '哲学',
religion: '宗教',
socialSciences: '社会科学',
art: '艺术',
travel: '旅行',
health: '健康',
selfHelp: '自助',
businessEconomics: '商业/经济',
cooking: '烹饪',
childrenYoungAdults: '儿童/青少年',
comicsGraphicNovels: '漫画/图形小说',
poetry: '诗歌',
drama: '戏剧',
other: '其他',
},
personalDoc: {
notes: '笔记',
blogDraft: '博客草稿',
diary: '日记',
researchReport: '研究报告',
bookExcerpt: '书籍摘录',
schedule: '日程安排',
list: '列表',
projectOverview: '项目概述',
photoCollection: '照片集',
creativeWriting: '创意写作',
codeSnippet: '代码片段',
designDraft: '设计草稿',
personalResume: '个人简历',
other: '其他',
},
businessDoc: {
meetingMinutes: '会议纪要',
researchReport: '研究报告',
proposal: '提案',
employeeHandbook: '员工手册',
trainingMaterials: '培训材料',
requirementsDocument: '需求文档',
designDocument: '设计文档',
productSpecification: '产品规格',
financialReport: '财务报告',
marketAnalysis: '市场分析',
projectPlan: '项目计划',
teamStructure: '团队结构',
policiesProcedures: '政策和流程',
contractsAgreements: '合同和协议',
emailCorrespondence: '邮件往来',
other: '其他',
},
},
},
embedding: {
processing: '嵌入处理中...',
paused: '嵌入已停止',
completed: '嵌入已完成',
error: '嵌入发生错误',
docName: '预处理文档',
mode: '分段模式',
segmentLength: '最大分段长度',
textCleaning: '文本预处理规则',
segments: '段落',
highQuality: '高质量模式',
economy: '经济模式',
estimate: '预估消耗',
stop: '停止处理',
pause: '暂停',
resume: '恢复',
automatic: '自动',
custom: '自定义',
hierarchical: '父子分段',
previewTip: '段落预览将在嵌入完成后可用',
parentMaxTokens: '父',
childMaxTokens: '子',
},
segment: {
paragraphs: '段落',
chunks_one: '分段',
chunks_other: '分段',
parentChunks_one: '父分段',
parentChunks_other: '父分段',
childChunks_one: '子分段',
childChunks_other: '子分段',
searchResults_zero: '搜索结果',
searchResults_one: '搜索结果',
searchResults_other: '搜索结果',
empty: '未找到分段',
clearFilter: '清空搜索条件',
chunk: '分段',
parentChunk: '父分段',
newChunk: '新分段',
childChunk: '子分段',
newChildChunk: '新子分段',
keywords: '关键词',
addKeyWord: '添加关键词',
keywordError: '关键词最大长度为 20',
characters_one: '字符',
characters_other: '字符',
hitCount: '召回次数',
vectorHash: '向量哈希:',
questionPlaceholder: '在这里添加问题',
questionEmpty: '问题不能为空',
answerPlaceholder: '在这里添加答案',
answerEmpty: '答案不能为空',
contentPlaceholder: '在这里添加内容',
contentEmpty: '内容不能为空',
newTextSegment: '新文本分段',
newQaSegment: '新问答分段',
addChunk: '新增分段',
addChildChunk: '新增子分段',
addAnother: '连续新增',
delete: '删除这个分段?',
chunkAdded: '新增一个分段',
childChunkAdded: '新增一个子分段',
editChunk: '编辑分段',
editParentChunk: '编辑父分段',
editChildChunk: '编辑子分段',
chunkDetail: '分段详情',
regenerationConfirmTitle: '是否需要重新生成子分段?',
regenerationConfirmMessage: '重新生成的子分段将会覆盖当前的子分段,包括编辑过的分段和新添加的分段。重新生成操作无法撤销。',
regeneratingTitle: '正在生成子分段',
regeneratingMessage: '生成子分段需要一些时间,请耐心等待...',
regenerationSuccessTitle: '子分段已重新生成',
regenerationSuccessMessage: '可以关闭窗口',
edited: '已编辑',
editedAt: '编辑于',
expandChunks: '展开分段',
collapseChunks: '折叠分段',
},
}
export default translation

View File

@@ -0,0 +1,34 @@
const translation = {
title: '召回测试',
settingTitle: '召回设置',
desc: '根据给定的查询文本测试知识的召回效果。',
dateTimeFormat: 'YYYY-MM-DD HH:mm',
records: '记录',
table: {
header: {
source: '数据源',
text: '文本',
time: '时间',
},
},
input: {
title: '源文本',
placeholder: '请输入文本,建议使用简短的陈述句。',
countWarning: '不超过 200 个字符',
indexWarning: '仅支持高质量模式知识库',
testing: '测试',
},
hit: {
title: '{{num}} 个召回段落',
emptyTip: '召回测试结果将展示在这里',
},
noRecentTip: '最近无查询结果',
viewChart: '查看向量图表',
viewDetail: '查看详情',
chunkDetail: '段落详情',
hitChunks: '命中 {{num}} 个子段落',
open: '打开',
keyword: '关键词',
}
export default translation

View File

@@ -0,0 +1,41 @@
const translation = {
title: '知识库设置',
desc: '在这里,您可以修改此知识库的属性和检索设置',
form: {
name: '知识库名称',
namePlaceholder: '请输入知识库名称',
nameError: '名称不能为空',
desc: '知识库描述',
descInfo: '请写出清楚的文字描述来概述知识库的内容。当从多个知识库中进行选择匹配时,该描述将用作匹配的基础。',
descPlaceholder: '描述该数据集的内容。详细描述可以让 AI 更快地访问数据集的内容。如果为空LangGenius 将使用默认的命中策略。',
helpText: '学习如何编写一份优秀的数据集描述。',
descWrite: '了解如何编写更好的知识库描述。',
permissions: '可见权限',
permissionsOnlyMe: '只有我',
permissionsAllMember: '所有团队成员',
permissionsInvitedMembers: '部分团队成员',
me: '(你)',
indexMethod: '索引模式',
indexMethodHighQuality: '高质量',
indexMethodHighQualityTip: '调用嵌入模型来处理文档以实现更精确的检索,可以帮助大语言模型生成高质量的回答。',
upgradeHighQualityTip: '一旦升级为高质量模式,将无法切换回经济模式。',
indexMethodEconomy: '经济',
indexMethodEconomyTip: '每个块使用 10 个关键词进行检索,不消耗 tokens但会降低检索准确性。',
embeddingModel: 'Embedding 模型',
embeddingModelTip: '修改 Embedding 模型,请去',
embeddingModelTipLink: '设置',
retrievalSetting: {
title: '检索设置',
learnMore: '了解更多',
description: '关于检索方法。',
longDescription: '关于检索方法,您可以随时在知识库设置中更改此设置。',
},
externalKnowledgeAPI: '外部知识 API',
externalKnowledgeID: '外部知识库 ID',
save: '保存',
retrievalSettings: '检索设置',
indexMethodChangeToEconomyDisabledTip: '无法从高质量降级为经济',
},
}
export default translation

View File

@@ -0,0 +1,173 @@
const translation = {
knowledge: '知识库',
chunkingMode: {
general: '通用',
parentChild: '父子',
},
parentMode: {
paragraph: '段落',
fullDoc: '全文',
},
externalTag: '外部',
externalAPI: '外部 API',
externalAPIPanelTitle: '外部知识库 API',
externalKnowledgeId: '外部知识库 ID',
externalKnowledgeName: '外部知识库名称',
externalKnowledgeDescription: '知识库描述',
externalKnowledgeIdPlaceholder: '请输入外部知识库 ID',
externalKnowledgeNamePlaceholder: '请输入外部知识库名称',
externalKnowledgeDescriptionPlaceholder: '描述知识库内容(可选)',
learnHowToWriteGoodKnowledgeDescription: '了解如何编写良好的知识库描述',
externalAPIPanelDescription: '外部知识库 API 用于连接到 Dify 之外的知识库并从中检索知识。',
externalAPIPanelDocumentation: '了解如何创建外部知识库 API',
localDocs: '本地文档',
documentCount: ' 文档',
wordCount: ' 千字符',
appCount: ' 关联应用',
createDataset: '创建知识库',
noExternalKnowledge: '还没有外部知识库 API点击此处创建',
createExternalAPI: '添加外部知识库 API',
createNewExternalAPI: '创建新的外部知识库API',
editExternalAPIFormTitle: '编辑外部知识库 API',
editExternalAPITooltipTitle: '个关联知识库',
editExternalAPIConfirmWarningContent: {
front: '此外部知识库 API 已链接到',
end: '个外部知识库,此修改将应用于所有这些知识库。您确定要保存此更改吗?',
},
editExternalAPIFormWarning: {
front: '此外部 API 已链接到',
end: '外部知识库',
},
deleteExternalAPIConfirmWarningContent: {
title: {
front: '删除',
end: '',
},
content: {
front: '此外部知识库 API 已链接到',
end: '个外部知识库。删除此 API 将使所有这些知识库失效。您确定要删除此 API 吗?',
},
noConnectionContent: '您确定要删除此 API 吗?',
},
connectDatasetIntro: {
title: '如何连接到外部知识库',
content: {
front: '要连接到外部知识库,您需要先创建一个外部 API。请仔细阅读并参考',
link: '了解如何创建外部 API',
end: '。然后找到相应的知识库 ID 并填写在左侧表单中。如果所有信息正确,点击连接按钮后将自动跳转到知识库中的检索测试。',
},
learnMore: '了解更多',
},
connectHelper: {
helper1: '通过 API 和知识库 ID 连接到外部知识库。目前,',
helper2: '仅支持检索功能',
helper3: '。我们强烈建议您在使用此功能之前',
helper4: '仔细阅读帮助文档',
helper5: '。',
},
connectDataset: '连接外部知识库',
createDatasetIntro: '导入您自己的文本数据或通过 Webhook 实时写入数据以增强 LLM 的上下文。',
deleteDatasetConfirmTitle: '要删除知识库吗?',
deleteDatasetConfirmContent:
'删除知识库是不可逆的。用户将无法再访问您的知识库,所有的提示配置和日志将被永久删除。',
datasetUsedByApp: '某些应用正在使用该知识库。应用将无法再使用该知识库,所有的提示配置和日志将被永久删除。',
datasetDeleted: '知识库已删除',
datasetDeleteFailed: '删除知识库失败',
selectExternalKnowledgeAPI: {
placeholder: '选择一个外部知识 API',
},
didYouKnow: '你知道吗?',
intro1: '知识库可以被集成到 Dify 应用中',
intro2: '作为上下文',
intro3: ',',
intro4: '或可以',
intro5: '创建',
intro6: '为独立的 ChatGPT 插件发布使用',
unavailable: '不可用',
unavailableTip: '由于 embedding 模型不可用,需要配置默认 embedding 模型',
datasets: '知识库',
datasetsApi: 'API',
externalKnowledgeForm: {
connect: '连接',
cancel: '取消',
},
externalAPIForm: {
name: '名称',
endpoint: 'API 端点',
apiKey: 'API 密钥',
save: '保存',
cancel: '取消',
edit: '编辑',
encrypted: {
front: '您的 API Token 将使用',
end: '加密并存储。',
},
},
retrieval: {
semantic_search: {
title: '向量检索',
description: '通过生成查询嵌入并查询与其向量表示最相似的文本分段',
},
full_text_search: {
title: '全文检索',
description: '索引文档中的所有词汇,从而允许用户查询任意词汇,并返回包含这些词汇的文本片段',
},
hybrid_search: {
title: '混合检索',
description: '同时执行全文检索和向量检索,并应用重排序步骤,从两类查询结果中选择匹配用户问题的最佳结果,用户可以选择设置权重或配置重新排序模型。',
recommend: '推荐',
},
invertedIndex: {
title: '倒排索引',
description: '倒排索引是一种用于高效检索的结构。按术语组织,每个术语指向包含它的文档或网页',
},
change: '更改',
changeRetrievalMethod: '更改检索方法',
},
docsFailedNotice: '文档索引失败',
retry: '重试',
documentsDisabled: '{{num}} 个文档已禁用 - 未活动超过 30 天',
enable: '启用',
indexingTechnique: {
high_quality: '高质量',
economy: '经济',
},
indexingMethod: {
semantic_search: '向量检索',
full_text_search: '全文检索',
hybrid_search: '混合检索',
invertedIndex: '倒排索引',
},
defaultRetrievalTip: '默认情况下使用多路召回。从多个知识库中检索知识,然后重新排序。',
mixtureHighQualityAndEconomicTip: '混合使用高质量和经济型知识库需要配置 Rerank 模型。',
inconsistentEmbeddingModelTip: '当所选知识库配置的 Embedding 模型不一致时,需要配置 Rerank 模型。',
mixtureInternalAndExternalTip: '混合使用内部和外部知识时需要配置 Rerank 模型。',
allExternalTip: '仅使用外部知识时,用户可以选择是否启用 Rerank 模型。如果不启用,检索到的文本块将根据分数排序。当不同知识库的检索策略不一致时,结果可能不准确。',
retrievalSettings: '召回设置',
rerankSettings: 'Rerank 设置',
weightedScore: {
title: '权重设置',
description: '通过调整分配的权重,重新排序策略确定是优先进行语义匹配还是关键字匹配。',
semanticFirst: '语义优先',
keywordFirst: '关键词优先',
customized: '自定义',
semantic: '语义',
keyword: '关键词',
},
nTo1RetrievalLegacy: '9 月 1 日起我们将不再提供此能力,推荐使用最新的多路召回获得更好的检索效果。',
nTo1RetrievalLegacyLink: '了解更多',
nTo1RetrievalLegacyLinkText: '9 月 1 日起我们将不再提供此能力。',
batchAction: {
selected: '已选择',
enable: '启用',
disable: '禁用',
archive: '归档',
delete: '删除',
cancel: '取消',
},
preprocessDocument: '{{num}} 个预处理文档',
allKnowledge: '所有知识库',
allKnowledgeDescription: '选择以显示该工作区内所有知识库。只有工作区所有者才能管理所有知识库。',
}
export default translation

View File

@@ -0,0 +1,43 @@
const translation = {
title: '探索',
sidebar: {
discovery: '发现',
chat: '智聊',
workspace: '工作区',
action: {
pin: '置顶',
unpin: '取消置顶',
rename: '重命名',
delete: '删除',
},
delete: {
title: '删除程序',
content: '您确定要删除此程序吗?',
},
},
apps: {
title: '探索 Dify 的应用',
description: '使用这些模板应用程序,或根据模板自定义您自己的应用程序。',
allCategories: '推荐',
},
appCard: {
addToWorkspace: '添加到工作区',
customize: '自定义',
},
appCustomize: {
title: '从 {{name}} 创建应用程序',
subTitle: '应用程序图标和名称',
nameRequired: '应用程序名称不能为空',
},
category: {
Agent: 'Agent',
Assistant: '助手',
Writing: '写作',
Translate: '翻译',
Programming: '编程',
HR: '人力资源',
Workflow: '工作流',
},
}
export default translation

View File

@@ -0,0 +1,4 @@
const translation = {
}
export default translation

View File

@@ -0,0 +1,110 @@
const translation = {
pageTitle: '嗨,近来可好',
welcome: '👋 欢迎来到 Dify, 登录以继续',
email: '邮箱',
emailPlaceholder: '输入邮箱地址',
password: '密码',
passwordPlaceholder: '输入密码',
name: '用户名',
namePlaceholder: '输入用户名',
forget: '忘记密码?',
signBtn: '登录',
continueWithCode: '发送验证码',
sendVerificationCode: '发送验证码',
usePassword: '使用密码登录',
useVerificationCode: '使用验证码登录',
or: '或',
installBtn: '设置',
setAdminAccount: '设置管理员账户',
setAdminAccountDesc: '管理员拥有的最大权限,可用于创建应用和管理 LLM 供应商等。',
createAndSignIn: '创建账户',
oneMoreStep: '还差一步',
createSample: '基于这些信息,我们将为您创建一个示例应用',
invitationCode: '邀请码',
invitationCodePlaceholder: '输入邀请码',
interfaceLanguage: '界面语言',
timezone: '时区',
go: '跳转至 Dify',
sendUsMail: '发封邮件介绍你自己,我们会尽快处理。',
acceptPP: '我已阅读并接受隐私政策',
reset: '请运行以下命令重置密码',
withGitHub: '使用 GitHub 登录',
withGoogle: '使用 Google 登录',
withSSO: '使用 SSO 登录',
rightTitle: '释放大型语言模型的全部潜能',
rightDesc: '简单构建可视化、可运营、可改进的 AI 应用',
tos: '使用协议',
pp: '隐私政策',
tosDesc: '使用即代表您同意我们的',
goToInit: '如果您还没有初始化账户,请前往初始化页面',
dontHave: '还没有邀请码?',
invalidInvitationCode: '无效的邀请码',
accountAlreadyInited: '账户已经初始化',
forgotPassword: '忘记密码?',
resetLinkSent: '重置链接已发送',
sendResetLink: '发送重置链接',
backToSignIn: '返回登录',
forgotPasswordDesc: '请输入您的电子邮件地址以重置密码。我们将向您发送一封电子邮件,包含如何重置密码的说明。',
checkEmailForResetLink: '请检查您的电子邮件以获取重置密码的链接。如果几分钟内没有收到,请检查您的垃圾邮件文件夹。',
passwordChanged: '立即登录',
changePassword: '设置密码',
changePasswordTip: '请输入您的新密码',
changePasswordBtn: '设置密码',
invalidToken: '无效或已过期的令牌',
confirmPassword: '确认密码',
confirmPasswordPlaceholder: '确认您的新密码',
passwordChangedTip: '您的密码已成功更改',
error: {
emailEmpty: '邮箱不能为空',
emailInValid: '请输入有效的邮箱地址',
nameEmpty: '用户名不能为空',
passwordEmpty: '密码不能为空',
passwordInvalid: '密码必须包含字母和数字且长度不小于8位',
passwordLengthInValid: '密码必须至少为 8 个字符',
registrationNotAllowed: '账户不存在,请联系系统管理员注册账户',
},
license: {
tip: '启动 Dify 社区版之前, 请阅读 GitHub 上的',
link: '开源协议',
},
join: '加入 ',
joinTipStart: '邀请你加入 ',
joinTipEnd: ' 团队',
invalid: '链接已失效',
explore: '探索 Dify',
activatedTipStart: '您已加入',
activatedTipEnd: '团队',
activated: '现在登录',
adminInitPassword: '管理员初始化密码',
validate: '验证',
sso: '使用 SSO 继续',
checkCode: {
checkYourEmail: '验证您的电子邮件',
tips: '验证码已经发送到您的邮箱 <strong>{{email}}</strong>',
validTime: '请注意验证码 5 分钟内有效',
verificationCode: '验证码',
verificationCodePlaceholder: '输入 6 位验证码',
verify: '验证',
didNotReceiveCode: '没有收到验证码?',
resend: '重新发送',
useAnotherMethod: '使用其他方式登录',
emptyCode: '验证码不能为空',
invalidCode: '验证码无效',
},
resetPassword: '重置密码',
resetPasswordDesc: '请输入您的电子邮件地址以重置密码。我们将向您发送一封电子邮件。',
backToLogin: '返回登录',
setYourAccount: '设置您的账户',
enterYourName: '请输入用户名',
back: '返回',
noLoginMethod: '未配置身份认证方式',
noLoginMethodTip: '请联系系统管理员添加身份认证方式',
licenseExpired: '许可证已过期',
licenseExpiredTip: '您所在空间的 Dify Enterprise 许可证已过期,请联系管理员以继续使用 Dify。',
licenseLost: '许可证丢失',
licenseLostTip: '无法连接 Dify 许可证服务器,请联系管理员以继续使用 Dify。',
licenseInactive: '许可证未激活',
licenseInactiveTip: '您所在空间的 Dify Enterprise 许可证尚未激活,请联系管理员以继续使用 Dify。',
}
export default translation

View File

@@ -0,0 +1,25 @@
const translation = {
allTags: '所有标签',
searchTags: '搜索标签',
tags: {
agent: 'Agent',
search: '搜索',
image: '图片',
videos: '视频',
weather: '天气',
finance: '金融',
design: '设计',
travel: '旅行',
social: '社交',
news: '新闻',
medical: '医疗',
productivity: '生产力',
education: '教育',
business: '商业',
entertainment: '娱乐',
utilities: '工具',
other: '其他',
},
}
export default translation

View File

@@ -0,0 +1,211 @@
const translation = {
category: {
all: '全部',
models: '模型',
tools: '工具',
agents: 'Agent 策略',
extensions: '扩展',
bundles: '插件集',
},
categorySingle: {
model: '模型',
tool: '工具',
agent: 'Agent 策略',
extension: '扩展',
bundle: '插件集',
},
search: '搜索',
allCategories: '所有类别',
searchCategories: '搜索类别',
searchPlugins: '搜索插件',
from: '来自',
findMoreInMarketplace: '在 Marketplace 中查找更多',
searchInMarketplace: '在 Marketplace 中搜索',
fromMarketplace: '来自市场',
endpointsEnabled: '{{num}} 组端点已启用',
searchTools: '搜索工具...',
installPlugin: '安装插件',
installFrom: '安装源',
list: {
noInstalled: '无已安装的插件',
notFound: '未找到插件',
source: {
marketplace: '从 Marketplace 安装',
github: '从 GitHub 安装',
local: '本地插件',
},
},
source: {
marketplace: 'Marketplace',
github: 'GitHub',
local: '本地插件',
},
detailPanel: {
switchVersion: '切换版本',
categoryTip: {
marketplace: '从 Marketplace 安装',
github: '从 Github 安装',
local: '本地插件',
debugging: '调试插件',
},
operation: {
install: '安装',
detail: '详情',
update: '更新',
info: '插件信息',
checkUpdate: '检查更新',
viewDetail: '查看详情',
remove: '移除',
},
actionNum: '包含 {{num}} 个 {{action}}',
strategyNum: '包含 {{num}} 个 {{strategy}}',
endpoints: 'API 端点',
endpointsTip: '此插件通过 API 端点提供特定功能,您可以为当前工作区配置多个 API 端点集。',
endpointsDocLink: '查看文档',
endpointsEmpty: '点击 \'+\' 按钮添加 API 端点',
endpointDisableTip: '停用 API 端点',
endpointDisableContent: '是否要停用 {{name}} 的 API 端点 ',
endpointDeleteTip: '移除 API 端点',
endpointDeleteContent: '是否要移除 {{name}} ',
endpointModalTitle: '设置 API 端点',
endpointModalDesc: '完成配置后可使用插件 API 端点提供的功能',
serviceOk: '服务正常',
disabled: '停用',
modelNum: '{{num}} 模型已包含',
toolSelector: {
title: '添加工具',
toolLabel: '工具',
descriptionLabel: '工具描述',
descriptionPlaceholder: '简要描述工具目的,例如,获取特定位置的温度。',
placeholder: '选择工具',
settings: '用户设置',
params: '推理配置',
paramsTip1: '控制 LLM 推理参数。',
paramsTip2: '当“自动”关闭时,使用默认值。',
auto: '自动',
empty: '点击 "+" 按钮添加工具。您可以添加多个工具。',
uninstalledTitle: '工具未安装',
uninstalledContent: '此插件安装自 本地 / GitHub 仓库,请安装后使用。',
uninstalledLink: '在插件中管理',
unsupportedTitle: '不支持的 Action',
unsupportedContent: '已安装的插件版本不提供这个 action。',
unsupportedContent2: '点击切换版本',
},
configureApp: '应用设置',
configureModel: '模型设置',
configureTool: '工具设置',
},
install: '{{num}} 次安装',
installAction: '安装',
debugInfo: {
title: '调试',
viewDocs: '查看文档',
},
privilege: {
title: '插件偏好',
whoCanInstall: '谁可以安装和管理插件?',
whoCanDebug: '谁可以调试插件?',
everyone: '所有人',
admins: '管理员',
noone: '无人',
},
pluginInfoModal: {
title: '插件信息',
repository: '仓库',
release: '发布版本',
packageName: '包',
},
action: {
checkForUpdates: '检查更新',
pluginInfo: '插件信息',
delete: '移除插件',
deleteContentLeft: '是否要移除 ',
deleteContentRight: ' 插件?',
usedInApps: '此插件正在 {{num}} 个应用中使用。',
},
installModal: {
installPlugin: '安装插件',
installComplete: '安装完成',
installedSuccessfully: '安装成功',
installedSuccessfullyDesc: '插件已成功安装。',
uploadFailed: '上传失败',
installFailed: '安装失败',
installFailedDesc: '插件安装失败。',
install: '安装',
installing: '安装中...',
uploadingPackage: '上传 {{packageName}} 中...',
readyToInstall: '即将安装以下插件',
readyToInstallPackage: '即将安装以下插件',
readyToInstallPackages: '即将安装以下 {{num}} 个插件',
fromTrustSource: '请保证仅从<trustSource>可信源</trustSource>安装插件。',
dropPluginToInstall: '拖放插件包到此处安装',
labels: {
repository: '仓库',
version: '版本',
package: '包',
},
close: '关闭',
cancel: '取消',
back: '返回',
next: '下一步',
pluginLoadError: '插件加载错误',
pluginLoadErrorDesc: '此插件将不会被安装',
},
installFromGitHub: {
installPlugin: '从 GitHub 安装插件',
updatePlugin: '更新来自 GitHub 的插件',
installedSuccessfully: '安装成功',
installFailed: '安装失败',
uploadFailed: '上传失败',
gitHubRepo: 'GitHub 仓库',
selectVersion: '选择版本',
selectVersionPlaceholder: '请选择一个版本',
installNote: '请确保只从可信源安装插件。',
selectPackage: '选择包',
selectPackagePlaceholder: '请选择一个包',
},
upgrade: {
title: '安装插件',
successfulTitle: '安装成功',
description: '即将安装以下插件',
usedInApps: '在 {{num}} 个应用中使用',
upgrade: '安装',
upgrading: '安装中...',
close: '关闭',
},
error: {
inValidGitHubUrl: '无效的 GitHub URL。请输入格式为 https://github.com/owner/repo 的有效 URL',
fetchReleasesError: '无法获取发布版本。请稍后再试。',
noReleasesFound: '未找到发布版本。请检查 GitHub 仓库或输入的 URL。',
},
marketplace: {
empower: '助力您的 AI 开发',
discover: '探索',
and: '和',
difyMarketplace: 'Dify 市场',
moreFrom: '更多来自市场',
noPluginFound: '未找到插件',
pluginsResult: '{{num}} 个插件结果',
sortBy: '排序方式',
sortOption: {
mostPopular: '最受欢迎',
recentlyUpdated: '最近更新',
newlyReleased: '最新发布',
firstReleased: '首次发布',
},
viewMore: '查看更多',
verifiedTip: '此插件由 Dify 认证',
partnerTip: '此插件由 Dify 合作伙伴认证',
},
task: {
installing: '{{installingLength}} 个插件安装中0 已完成',
installingWithSuccess: '{{installingLength}} 个插件安装中,{{successLength}} 安装成功',
installingWithError: '{{installingLength}} 个插件安装中,{{successLength}} 安装成功,{{errorLength}} 安装失败',
installError: '{{errorLength}} 个插件安装失败,点击查看',
installedError: '{{errorLength}} 个插件安装失败',
clearAll: '清除所有',
},
submitPlugin: '上传插件',
}
export default translation

View File

@@ -0,0 +1,4 @@
const translation = {
}
export default translation

View File

@@ -0,0 +1,31 @@
const translation = {
input: '输入',
result: '结果',
detail: '详情',
tracing: '追踪',
resultPanel: {
status: '状态',
time: '运行时间',
tokens: '总 token 数',
},
meta: {
title: '元数据',
status: '状态',
version: '版本',
executor: '执行人',
startTime: '开始时间',
time: '运行时间',
tokens: '总 token 数',
steps: '运行步数',
},
resultEmpty: {
title: '本次运行仅输出 JSON 格式,',
tipLeft: '请转到',
link: '详细信息面板',
tipRight: '查看它。',
},
actionLogs: 'Action 日志',
circularInvocationTip: '当前工作流中存在工具/节点的循环调用。',
}
export default translation

View File

@@ -0,0 +1,75 @@
const translation = {
common: {
welcome: '',
appUnavailable: '应用不可用',
appUnknownError: '应用不可用',
},
chat: {
newChat: '开启新对话',
chatSettingsTitle: '新对话设置',
chatFormTip: '对话开始后,对话设置将无法修改。',
pinnedTitle: '已置顶',
unpinnedTitle: '对话列表',
newChatDefaultName: '新的对话',
resetChat: '重置对话',
viewChatSettings: '查看对话设置',
poweredBy: 'Powered by',
prompt: '提示词',
privatePromptConfigTitle: '对话设置',
publicPromptConfigTitle: '对话前提示词',
configStatusDes: '开始前,您可以修改对话设置',
configDisabled: '此次会话已使用上次会话表单',
startChat: '开始对话',
privacyPolicyLeft: '请阅读由该应用开发者提供的',
privacyPolicyMiddle: '隐私政策',
privacyPolicyRight: '。',
deleteConversation: {
title: '删除对话',
content: '您确定要删除此对话吗?',
},
tryToSolve: '尝试解决',
temporarySystemIssue: '抱歉,临时系统问题。',
},
generation: {
tabs: {
create: '运行一次',
batch: '批量运行',
saved: '已保存',
},
savedNoData: {
title: '您还没有保存结果!',
description: '开始生成内容,您可以在这里找到保存的结果。',
startCreateContent: '开始生成内容',
},
title: 'AI 智能书写',
queryTitle: '查询内容',
completionResult: '生成结果',
queryPlaceholder: '请输入文本内容',
run: '运行',
execution: '运行',
executions: '{{num}} 次运行',
copy: '拷贝',
resultTitle: 'AI 书写',
noData: 'AI 会在这里给你惊喜。',
csvUploadTitle: '将您的 CSV 文件拖放到此处,或',
browse: '浏览',
csvStructureTitle: 'CSV 文件必须符合以下结构:',
downloadTemplate: '下载模板',
field: '',
batchFailed: {
info: '{{num}} 次运行失败',
retry: '重试',
outputPlaceholder: '无输出内容',
},
errorMsg: {
empty: '上传文件的内容不能为空',
fileStructNotMatch: '上传文件的内容与结构不匹配',
emptyLine: '第 {{rowIndex}} 行的内容为空',
invalidLine: '第 {{rowIndex}} 行: {{varName}}值必填',
moreThanMaxLengthLine: '第 {{rowIndex}} 行: {{varName}}值超过最大长度 {{maxLength}}',
atLeastOne: '上传文件的内容不能少于一条',
},
},
}
export default translation

View File

@@ -0,0 +1,37 @@
const translation = {
daysInWeek: {
Sun: '日',
Mon: '一',
Tue: '二',
Wed: '三',
Thu: '四',
Fri: '五',
Sat: '六',
},
months: {
January: '一月',
February: '二月',
March: '三月',
April: '四月',
May: '五月',
June: '六月',
July: '七月',
August: '八月',
September: '九月',
October: '十月',
November: '十一月',
December: '十二月',
},
operation: {
now: '此刻',
ok: '确定',
cancel: '取消',
},
title: {
pickTime: '选择时间',
},
pickDate: '选择日期',
defaultPlaceholder: '请选择时间...',
}
export default translation

View File

@@ -0,0 +1,158 @@
const translation = {
title: '工具',
createCustomTool: '创建自定义工具',
customToolTip: '了解更多关于 Dify 自定义工具的信息',
type: {
all: '全部',
builtIn: '工具',
custom: '自定义',
workflow: '工作流',
},
contribute: {
line1: '我有兴趣为 ',
line2: 'Dify 贡献工具。',
viewGuide: '查看指南',
},
author: '作者',
auth: {
unauthorized: '去授权',
authorized: '已授权',
setup: '要使用请先授权',
setupModalTitle: '设置授权',
setupModalTitleDescription: '配置凭据后,工作区中的所有成员都可以在编排应用程序时使用此工具。',
},
includeToolNum: '包含 {{num}} 个 {{action}}',
addTool: '添加工具',
addToolModal: {
type: '类型',
category: '类别',
add: '添加',
added: '已添加',
manageInTools: '去工具列表管理',
emptyTitle: '没有可用的工作流工具',
emptyTip: '去 “工作流 -> 发布为工具” 添加',
emptyTitleCustom: '没有可用的自定义工具',
emptyTipCustom: '创建自定义工具',
},
createTool: {
title: '创建自定义工具',
editAction: '编辑',
editTitle: '编辑自定义工具',
name: '名称',
toolNamePlaceHolder: '输入工具名称',
nameForToolCall: '工具调用名称',
nameForToolCallPlaceHolder: '用于机器识别,如 getCurrentWeather, list_pets',
nameForToolCallTip: '仅支持数字、字母、下划线。',
description: '工具描述',
descriptionPlaceholder: '工具用途的简要描述,例如获取特定位置的温度。',
schema: 'Schema',
schemaPlaceHolder: '在此处输入您的 OpenAPI schema',
viewSchemaSpec: '查看 OpenAPI-Swagger 规范',
importFromUrl: '从 URL 中导入',
importFromUrlPlaceHolder: 'https://...',
urlError: '请输入有效的 URL',
examples: '例子',
exampleOptions: {
json: '天气(JSON)',
yaml: '宠物商店(YAML)',
blankTemplate: '空白模版',
},
availableTools: {
title: '可用工具',
name: '名称',
description: '描述',
method: '方法',
path: '路径',
action: '操作',
test: '测试',
},
authMethod: {
title: '鉴权方法',
type: '鉴权类型',
keyTooltip: 'HTTP 头部名称,如果你不知道是什么,可以将其保留为 Authorization 或设置为自定义值',
types: {
none: '无',
api_key: 'API Key',
apiKeyPlaceholder: 'HTTP 头部名称,用于传递 API Key',
apiValuePlaceholder: '输入 API Key',
},
key: '键',
value: '值',
},
authHeaderPrefix: {
title: '鉴权头部前缀',
types: {
basic: 'Basic',
bearer: 'Bearer',
custom: 'Custom',
},
},
privacyPolicy: '隐私协议',
privacyPolicyPlaceholder: '请输入隐私协议',
toolInput: {
title: '工具入参',
name: '名称',
required: '必须',
method: '方式',
methodSetting: '用户输入',
methodSettingTip: '用户在工具配置中填写',
methodParameter: 'LLM 填入',
methodParameterTip: 'LLM 在推理过程中填写',
label: '标签',
labelPlaceholder: '选择标签(可选)',
description: '描述',
descriptionPlaceholder: '参数意义的描述',
},
customDisclaimer: '自定义免责声明',
customDisclaimerPlaceholder: '请输入自定义免责声明',
confirmTitle: '确认保存?',
confirmTip: '发布新的工具版本可能会影响该工具已关联的应用',
deleteToolConfirmTitle: '删除这个工具?',
deleteToolConfirmContent: '删除工具是不可逆的。用户将无法再访问您的工具。',
},
test: {
title: '测试',
parametersValue: '参数和值',
parameters: '参数',
value: '值',
testResult: '测试结果',
testResultPlaceholder: '测试结果将显示在这里',
},
thought: {
using: '正在使用',
used: '已使用',
requestTitle: '请求',
responseTitle: '响应',
},
setBuiltInTools: {
info: '信息',
setting: '设置',
toolDescription: '工具描述',
parameters: '参数',
string: '字符串',
number: '数字',
file: '文件',
required: '必填',
infoAndSetting: '信息和设置',
},
noCustomTool: {
title: '没有自定义工具!',
content: '在此统一添加和管理你的自定义工具,方便构建应用时使用。',
createTool: '创建工具',
},
noSearchRes: {
title: '抱歉,没有结果!',
content: '我们找不到任何与您的搜索相匹配的工具。',
reset: '重置搜索',
},
builtInPromptTitle: '提示词',
toolRemoved: '工具已被移除',
notAuthorized: '工具未授权',
howToGet: '如何获取',
openInStudio: '在工作室中打开',
toolNameUsageTip: '工具调用名称,用于 Agent 推理和提示词',
copyToolName: '复制名称',
noTools: '没有工具',
}
export default translation

View File

@@ -0,0 +1,838 @@
const translation = {
common: {
undo: '撤销',
redo: '重做',
editing: '编辑中',
autoSaved: '自动保存',
unpublished: '未发布',
published: '已发布',
publish: '发布',
update: '更新',
publishUpdate: '发布更新',
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: '恢复',
versionHistory: '版本历史',
exitVersions: '退出版本历史',
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: '导入失败',
importWarning: '注意',
importWarningDetails: 'DSL 版本差异可能影响部分功能表现',
importSuccess: '导入成功',
parallelRun: '并行运行',
parallelTip: {
click: {
title: '点击',
desc: '添加节点',
},
drag: {
title: '拖拽',
desc: '连接节点',
},
limit: '并行分支限制为 {{num}} 个',
depthLimit: '并行嵌套层数限制 {{num}} 层',
},
disconnect: '断开连接',
jumpToNode: '跳转到节点',
addParallelNode: '添加并行节点',
parallel: '并行',
branch: '分支',
onFailure: '异常时',
addFailureBranch: '添加异常分支',
openInExplore: '在“探索”中打开',
loadMore: '加载更多',
noHistory: '没有历史版本',
},
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: '无效的变量',
noValidTool: '{{field}} 无可用工具',
toolParameterRequired: '{{field}}: 参数 [{{param}}] 不能为空',
},
singleRun: {
testRun: '测试运行 ',
startRun: '开始运行',
running: '运行中',
testRunIteration: '测试运行迭代',
testRunLoop: '测试运行循环',
back: '返回',
iteration: '迭代',
loop: '循环',
},
tabs: {
'searchBlock': '搜索节点',
'blocks': '节点',
'searchTool': '搜索工具',
'tools': '工具',
'allTool': '全部',
'plugin': '插件',
'customTool': '自定义',
'workflowTool': '工作流',
'question-understand': '问题理解',
'logic': '逻辑',
'transform': '转换',
'utilities': '工具',
'noResult': '未找到匹配项',
'agent': 'Agent 策略',
},
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': '列表操作',
'agent': 'Agent',
'loop-start': '循环开始',
'loop': '循环',
},
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': '循环执行一段逻辑直到满足结束条件或者到达循环次数上限。',
'parameter-extractor': '利用 LLM 从自然语言内推理提取出结构化参数,用于后置的工具调用或 HTTP 请求。',
'document-extractor': '用于将用户上传的文档解析为 LLM 便于理解的文本内容。',
'list-operator': '用于过滤或排序数组内容。',
'agent': '调用大型语言模型回答问题或处理自然语言',
},
operator: {
zoomIn: '放大',
zoomOut: '缩小',
zoomTo50: '缩放到 50%',
zoomTo100: '放大到 100%',
zoomToFit: '自适应视图',
},
variableReference: {
noAvailableVars: '没有可用变量',
noVarsForOperation: '当前选择的操作没有可用的变量进行赋值。',
noAssignedVars: '没有可用的赋值变量',
assignedVarsDescription: '赋值变量必须是可写入的变量,例如:',
conversationVars: '会话变量',
},
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: '内置',
},
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}} 重试次数',
},
},
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输入变量时请键入/',
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 字符串',
},
},
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': '赋值的变量',
'varNotSet': '未设置变量',
'noVarTip': '点击 "+" 按钮添加变量',
'writeMode': '写入模式',
'writeModeTip': '使用追加模式时,赋值的变量必须是数组类型。',
'over-write': '覆盖',
'append': '追加',
'plus': '加',
'clear': '清空',
'setVariable': '设置变量',
'selectAssignedVariable': '选择要赋值的变量...',
'setParameter': '设置参数...',
'operations': {
'title': '操作',
'over-write': '覆盖',
'overwrite': '覆盖',
'set': '设置',
'clear': '清空',
'extend': '扩展',
'append': '追加',
'+=': '+=',
'-=': '-=',
'*=': '*=',
'/=': '/=',
},
'variable': '变量',
'variables': '变量',
'noAssignedVars': '没有可用的赋值变量',
'assignedVarsDescription': '赋值变量必须是可写入的变量,例如会话变量。',
},
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: '并行模式警告:在迭代中,回答节点、会话变量赋值和工具持久读/写操作可能会导致异常。',
},
loop: {
deleteTitle: '删除循环节点?',
deleteDesc: '删除循环节点将删除所有子节点',
input: '输入',
output: '输出变量',
loop_one: '{{count}} 个循环',
loop_other: '{{count}} 个循环',
currentLoop: '当前循环',
breakCondition: '循环终止条件',
loopMaxCount: '最大循环次数',
loopMaxCountError: '请输入正确的 最大循环次数,范围为 1 到 {{maxCount}}',
errorResponseMethod: '错误响应方法',
ErrorMethod: {
operationTerminated: '错误时终止',
continueOnError: '忽略错误并继续',
removeAbnormalOutput: '移除错误输出',
},
},
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 生成的内容',
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: '取消',
},
},
},
tracing: {
stopBy: '由{{user}}终止',
},
versionHistory: {
title: '版本',
currentDraft: '当前草稿',
latest: '最新',
filter: {
all: '全部',
onlyYours: '仅你的',
onlyShowNamedVersions: '只显示已命名版本',
reset: '重置',
empty: '没有匹配的版本',
},
defaultName: '未命名',
nameThisVersion: '命名',
editVersionInfo: '编辑信息',
editField: {
title: '标题',
releaseNotes: '发布说明',
titleLengthLimit: '标题不能超过{{limit}}个字符',
releaseNotesLengthLimit: '发布说明不能超过{{limit}}个字符',
},
releaseNotesPlaceholder: '请描述变更',
restorationTip: '版本回滚后,当前草稿将被覆盖。',
deletionTip: '删除不可逆,请确认。',
action: {
restoreSuccess: '回滚成功',
restoreFailure: '回滚失败',
deleteSuccess: '版本已删除',
deleteFailure: '删除失败',
updateSuccess: '版本信息已更新',
updateFailure: '更新失败',
},
},
}
export default translation