Feat/i18n workflow (#4819)

This commit is contained in:
crazywoola
2024-05-30 21:03:32 +08:00
committed by GitHub
parent 38a470a873
commit 3de8e8fd6a
9 changed files with 1517 additions and 1062 deletions

View File

@@ -1,89 +1,102 @@
const translation = {
common: {
editing: '編輯中',
autoSaved: '自動存',
unpublished: '未釋出',
published: '已釋出',
publish: '釋出',
autoSaved: '自動存',
unpublished: '未發佈',
published: '已發佈',
publish: '發佈',
update: '更新',
run: '行',
running: '行中',
inRunMode: '在行模式中',
run: '行',
running: '行中',
inRunMode: '在行模式中',
inPreview: '預覽中',
inPreviewMode: '預覽中',
preview: '預覽',
viewRunHistory: '檢視執行歷史',
runHistory: '行歷史',
viewRunHistory: '查看運行歷史',
runHistory: '行歷史',
goBackToEdit: '返回編輯模式',
conversationLog: '對話記錄',
features: '功能',
debugAndPreview: '除錯和預覽',
debugAndPreview: '調試和預覽',
restart: '重新開始',
currentDraft: '當前草稿',
currentDraftUnpublished: '當前草稿未釋出',
latestPublished: '最新發',
publishedAt: '釋出於',
currentDraftUnpublished: '當前草稿未發佈',
latestPublished: '最新發',
publishedAt: '發佈於',
restore: '恢復',
runApp: '行',
batchRunApp: '批次執行',
runApp: '行',
batchRunApp: '批量運行',
accessAPIReference: '訪問 API',
embedIntoSite: '嵌入網站',
addTitle: '新增標題...',
addDescription: '新增描述...',
noVar: '沒有變',
variableNamePlaceholder: '變名',
searchVar: '搜尋變數',
setVarValuePlaceholder: '設定變數值',
needConnecttip: '此節點尚未連到其他節點',
addTitle: '添加標題...',
addDescription: '添加描述...',
noVar: '沒有變',
variableNamePlaceholder: '變名',
searchVar: '搜索變量',
setVarValuePlaceholder: '設置變量值',
needConnecttip: '此節點尚未連到其他節點',
maxTreeDepth: '每個分支最大限制 {{depth}} 個節點',
needEndNode: '必須新增結束節點',
needAnswerNode: '必須新增直接回節點',
needEndNode: '必須添加結束節點',
needAnswerNode: '必須添加直接回節點',
workflowProcess: '工作流',
notRunning: '尚未行',
previewPlaceholder: '在下面的框中輸入內容開始除錯聊天機器人',
notRunning: '尚未行',
previewPlaceholder: '在下面的框中輸入內容開始調試聊天機器人',
effectVarConfirm: {
title: '移除變',
content: '該變在其他節點中使用。您是否仍要刪除它?',
title: '移除變',
content: '該變在其他節點中使用。您是否仍要刪除它?',
},
insertVarTip: '按 \'/\' 鍵快速插入',
processData: '資料處理',
processData: '數據處理',
input: '輸入',
output: '輸出',
jinjaEditorPlaceholder: '入 “/” 或 “{” 插入量',
viewOnly: '只',
showRunHistory: '显示运行历史',
enableJinja: '开启支持 Jinja 模板',
jinjaEditorPlaceholder: '入 “/” 或 “{” 插入量',
viewOnly: '只',
showRunHistory: '顯示運行歷史',
enableJinja: '開啟支持 Jinja 模板',
learnMore: '了解更多',
copy: '拷',
duplicate: '复制',
addBlock: '添加节点',
pasteHere: '粘贴到这里',
pointerMode: '指模式',
copy: '拷',
duplicate: '複製',
addBlock: '添加節點',
pasteHere: '粘貼到這裡',
pointerMode: '指模式',
handMode: '手模式',
model: '模型',
workflowAsTool: '發佈為工具',
configureRequired: '需要進行配置',
configure: '配置',
manageInTools: '訪問工具頁',
workflowAsToolTip: '工作流更新後需要重新配置工具參數',
viewDetailInTracingPanel: '查看詳細信息',
},
errorMsg: {
fieldRequired: '{{field}} 不能為空',
authRequired: '請先授權',
invalidJson: '{{field}} 是非法的 JSON',
fields: {
variable: '變名',
variableValue: '變值',
code: '程式碼',
variable: '變名',
variableValue: '變值',
code: '碼',
model: '模型',
rerankModel: 'Rerank 模型',
},
invalidVariable: '無效的變',
invalidVariable: '無效的變',
},
singleRun: {
testRun: '測試執行 ',
startRun: '開始行',
running: '行中',
testRun: '測試運行',
startRun: '開始行',
running: '行中',
testRunIteration: '測試運行迭代',
back: '返回',
iteration: '迭代',
},
tabs: {
'searchBlock': '搜節點',
'searchBlock': '搜節點',
'blocks': '節點',
'builtInTool': '內建工具',
'customTool': '自定義工具',
'tools': '工具',
'allTool': '全部',
'builtInTool': '內置',
'customTool': '自定義',
'workflowTool': '工作流',
'question-understand': '問題理解',
'logic': '邏輯',
'transform': '轉換',
@@ -93,150 +106,157 @@ const translation = {
blocks: {
'start': '開始',
'end': '結束',
'answer': '直接回',
'answer': '直接回',
'llm': 'LLM',
'knowledge-retrieval': '知識檢索',
'question-classifier': '問題分類器',
'if-else': '條件分支',
'code': '程式碼執行',
'code': '碼執行',
'template-transform': '模板轉換',
'http-request': 'HTTP 請求',
'variable-assigner': '變數賦值',
'variable-assigner': '變量聚合器',
'variable-aggregator': '變量聚合器',
'iteration-start': '迭代開始',
'iteration': '迭代',
'parameter-extractor': '參數提取器',
},
blocksAbout: {
'start': '定義一個 workflow 流程啟動的初始數',
'end': '定義一個 workflow 流程的結束和結果型',
'start': '定義一個 workflow 流程啟動的初始數',
'end': '定義一個 workflow 流程的結束和結果型',
'answer': '定義一個聊天對話的回覆內容',
'llm': '呼叫大語言模型回答問題或者對自然語言進行處理',
'knowledge-retrieval': '允許你從知識庫中查詢與使用者問題相關的文內容',
'question-classifier': '定義使用者問題的分類條件LLM 能夠根據分類描述定義對話的進展方式',
'llm': '調用大語言模型回答問題或者對自然語言進行處理',
'knowledge-retrieval': '允許你從知識庫中查詢與用戶問題相關的文內容',
'question-classifier': '定義用戶問題的分類條件LLM 能夠根據分類描述定義對話的進展方式',
'if-else': '允許你根據 if/else 條件將 workflow 拆分成兩個分支',
'code': '執行一段 Python 或 NodeJS 程式碼實現自定義邏輯',
'template-transform': '使用 Jinja 模板語法將資料轉換為字串',
'http-request': '允許過 HTTP 協議傳送伺服器請求',
'variable-assigner': '將不同分支的變數指派給同一個變,以實現後置節點統一配置',
'code': '執行一段 Python 或 NodeJS 碼實現自定義邏輯',
'template-transform': '使用 Jinja 模板語法將數據轉換為字串',
'http-request': '允許過 HTTP 協議發送服務器請求',
'variable-assigner': '將多路分支的變量聚合為一個變,以實現下游節點統一配置',
'variable-aggregator': '將多路分支的變量聚合為一個變量,以實現下游節點統一配置。',
'iteration': '對列表對象執行多次步驟直至輸出所有結果。',
'parameter-extractor': '利用 LLM 從自然語言內推理提取出結構化參數,用於後置的工具調用或 HTTP 請求。',
},
operator: {
zoomIn: '放大',
zoomOut: '縮小',
zoomTo50: '縮放到 50%',
zoomTo100: '放大到 100%',
zoomToFit: '自適應視',
zoomToFit: '自適應視',
},
panel: {
userInputField: '使用者輸入欄位',
userInputField: '用戶輸入字段',
changeBlock: '更改節點',
helpLink: '幫助連結',
helpLink: '幫助鏈接',
about: '關於',
createdBy: '作者',
nextStep: '下一步',
addNextStep: '新增此工作流程中的下一個節點',
addNextStep: '添加此工作流程中的下一個節點',
selectNextStep: '選擇下一個節點',
runThisStep: '行此步驟',
runThisStep: '行此步驟',
checklist: '檢查清單',
checklistTip: '釋出前確保所有問題均已解決',
checklistTip: '發佈前確保所有問題均已解決',
checklistResolved: '所有問題均已解決',
organizeBlocks: '整理節點',
change: '更改',
},
nodes: {
common: {
outputVars: '輸出變',
insertVarTip: '插入變',
outputVars: '輸出變',
insertVarTip: '插入變',
memory: {
memory: '記憶',
memoryTip: '聊天記憶設',
windowSize: '記憶窗',
memoryTip: '聊天記憶設',
windowSize: '記憶窗',
conversationRoleName: '對話角色名',
user: '使用者字首',
assistant: '助手字首',
user: '用戶前綴',
assistant: '助手前綴',
},
memories: {
title: '記憶',
tip: '聊天記憶',
builtIn: '內',
builtIn: '內',
},
},
start: {
required: '必填',
inputField: '輸入欄位',
builtInVar: '內建變數',
inputField: '輸入字段',
builtInVar: '內置變量',
outputVars: {
query: '使用者輸入',
query: '用戶輸入',
memories: {
des: '會話歷史',
type: '訊息型別',
content: '息內容',
type: '消息類型',
content: '息內容',
},
files: '檔案列表',
files: '文件列表',
},
noVarTip: '設的輸入可在工作流程中使用',
noVarTip: '設的輸入可在工作流程中使用',
},
end: {
outputs: '輸出',
output: {
type: '輸出型',
variable: '輸出變',
type: '輸出型',
variable: '輸出變',
},
type: {
'none': '無',
'plain-text': '純文',
'plain-text': '純文',
'structured': '結構化',
},
},
answer: {
answer: '回覆',
outputVars: '輸出變',
outputVars: '輸出變',
},
llm: {
model: '模型',
variables: '變',
variables: '變',
context: '上下文',
contextTooltip: '您可以入知識庫作為上下文',
notSetContextInPromptTip: '要啟用上下文功能,請在提示中填寫上下文變。',
contextTooltip: '您可以入知識庫作為上下文',
notSetContextInPromptTip: '要啟用上下文功能,請在提示中填寫上下文變。',
prompt: '提示詞',
addMessage: '新增訊息',
addMessage: '添加消息',
roleDescription: {
system: '為對話提供高層指導',
user: '向模型提供指令、查詢或任何基於文的輸入',
assistant: '基於使用者訊息的模型回覆',
user: '向模型提供指令、查詢或任何基於文的輸入',
assistant: '基於用戶消息的模型回覆',
},
vision: '視覺',
files: '檔案',
files: '文件',
resolution: {
name: '解析度',
name: '分辨率',
high: '高',
low: '低',
},
outputVars: {
output: '生成內容',
usage: '模型用量資訊',
usage: '模型用量信息',
},
singleRun: {
variable: '變',
variable: '變',
},
sysQueryInUser: 'user message 中必須包含 sys.query',
},
knowledgeRetrieval: {
queryVariable: '查詢變',
queryVariable: '查詢變',
knowledge: '知識庫',
outputVars: {
output: '召回的分段',
content: '分段內容',
title: '分段標題',
icon: '分段圖',
url: '分段連結',
metadata: '其他元資料',
icon: '分段圖',
url: '分段鏈接',
metadata: '其他元數據',
},
},
http: {
inputVars: '輸入變',
inputVars: '輸入變',
api: 'API',
apiPlaceholder: '輸入 URL輸入變時請鍵入‘/',
apiPlaceholder: '輸入 URL輸入變時請鍵入‘/',
notStartWithHttp: 'API 應該以 http:// 或 https:// 開頭',
key: '鍵',
value: '值',
bulkEdit: '批編輯',
bulkEdit: '批編輯',
keyValueEdit: '鍵值編輯',
headers: 'Headers',
params: 'Params',
@@ -245,42 +265,42 @@ const translation = {
body: '響應內容',
statusCode: '響應狀態碼',
headers: '響應頭列表 JSON',
files: '檔案列表',
files: '文件列表',
},
authorization: {
'authorization': '鑑權',
'authorizationType': '鑑權型',
'authorizationType': '鑑權型',
'no-auth': '無',
'api-key': 'API-Key',
'auth-type': 'API 鑑權型',
'auth-type': 'API 鑑權型',
'basic': '基礎',
'bearer': 'Bearer',
'custom': '自定義',
'api-key-title': 'API Key',
'header': 'Header',
},
insertVarPlaceholder: '鍵入 \'/\' 鍵快速插入變',
insertVarPlaceholder: '鍵入 \'/\' 鍵快速插入變',
timeout: {
title: '超时设置',
connectLabel: '接超',
connectPlaceholder: '输入连接超(以秒为单位)',
readLabel: '取超',
readPlaceholder: '输入读取超(以秒为单位)',
writeLabel: '入超',
writePlaceholder: '输入写入超(以秒为单位)',
title: '超時設置',
connectLabel: '接超',
connectPlaceholder: '輸入連接超(以秒為單位)',
readLabel: '取超',
readPlaceholder: '輸入讀取超(以秒為單位)',
writeLabel: '入超',
writePlaceholder: '輸入寫入超(以秒為單位)',
},
},
code: {
inputVars: '輸入變',
outputVars: '輸出變',
advancedDependencies: '高级依赖',
advancedDependenciesTip: '在这里添加一些预加载需要消耗较多时间或非默认内置的依包',
searchDependencies: '搜索依',
inputVars: '輸入變',
outputVars: '輸出變',
advancedDependencies: '高級依賴',
advancedDependenciesTip: '在這裡添加一些預加載需要消耗較多時間或非默認內置的依包',
searchDependencies: '搜索依',
},
templateTransform: {
inputVars: '輸入變',
code: '程式碼',
codeSupportTip: '只支 Jinja2',
inputVars: '輸入變',
code: '碼',
codeSupportTip: '只支 Jinja2',
outputVars: {
output: '轉換後內容',
},
@@ -291,8 +311,8 @@ const translation = {
elseDescription: '用於定義當 if 條件不滿足時應執行的邏輯。',
and: 'and',
or: 'or',
operator: '運算子',
notSetVariable: '請先設定變數',
operator: '操作符',
notSetVariable: '請先設置變量',
comparisonOperator: {
'contains': '包含',
'not contains': '不包含',
@@ -306,54 +326,91 @@ const translation = {
'not null': '不為空',
},
enterValue: '輸入值',
addCondition: '新增條件',
conditionNotSetup: '條件未設',
addCondition: '添加條件',
conditionNotSetup: '條件未設',
},
variableAssigner: {
title: '變賦值',
outputType: '輸出型',
outputVarType: '輸出變數型別',
varNotSet: '未設定變數',
noVarTip: '新增需要賦值的變數',
title: '變賦值',
outputType: '輸出型',
varNotSet: '未設置變量',
noVarTip: '添加需要賦值的變量',
type: {
string: 'String',
number: 'Number',
object: 'Object',
array: 'Array',
},
aggregationGroup: '聚合分組',
aggregationGroupTip: '開啟該功能後,變量聚合器內可以同時聚合多組變量',
addGroup: '添加分組',
outputVars: {
output: '指派的變數值',
varDescribe: '{{groupName}}的輸出變量',
},
setAssignVariable: '設置賦值變量',
},
tool: {
toAuthorize: '授權',
inputVars: '輸入變',
inputVars: '輸入變',
outputVars: {
text: '工具生成的內容',
files: {
title: '工具生成的檔案',
type: '支援型別。現在只支圖片',
title: '工具生成的文件',
type: '支持類型。現在只支圖片',
transfer_method: '傳輸方式。值為 remote_url 或 local_file',
url: '圖片連結',
upload_file_id: '上傳檔案ID',
url: '圖片鏈接',
upload_file_id: '上傳文件ID',
},
},
},
questionClassifiers: {
model: '模型',
inputVars: '輸入變',
inputVars: '輸入變',
outputVars: {
className: '分類名稱',
},
class: '分類',
classNamePlaceholder: '輸入你的分類名稱',
advancedSetting: '高階設定',
advancedSetting: '高級設置',
topicName: '主題內容',
topicPlaceholder: '在這裡輸入你的主題內容',
addClass: '新增分類',
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: '當前迭代',
},
},
tracing: {
stopBy: '由{{user}}終止',