fix: Fix translation gaps

This commit is contained in:
wangdan-fit2cloud 2025-08-27 19:06:18 +08:00
parent ce8f907932
commit 27f0250aaf
8 changed files with 130 additions and 109 deletions

View File

@ -669,12 +669,12 @@
<template v-if="item.type === WorkflowType.McpNode">
<div class="card-never border-r-6">
<h5 class="p-8-12">
{{ $t('views.applicationWorkflow.nodes.mcpNode.tool') }}
{{ $t('views.tool.title') }}
</h5>
<div class="p-8-12 border-t-dashed lighter">
<div class="mb-8">
<span class="color-secondary">
{{ $t('views.applicationWorkflow.nodes.mcpNode.tool') }}:
{{ $t('views.tool.title') }}:
</span>
{{ item.mcp_tool }}
</div>

View File

@ -5,11 +5,11 @@ export default {
nodeSetting: 'Node Settings',
workflow: 'Workflow',
searchBar: {
placeholder: 'Search by name'
placeholder: 'Search by name',
},
info: {
previewVersion: 'Preview Version:',
saveTime: 'Last Saved:'
saveTime: 'Last Saved:',
},
setting: {
restoreVersion: 'Restore Previous Version"',
@ -39,7 +39,7 @@ export default {
},
delete: {
confirmTitle: 'Confirm to delete this node?',
deleteMessage: 'This node cannot be deleted'
deleteMessage: 'This node cannot be deleted',
},
control: {
zoomOut: 'Zoom Out',
@ -47,7 +47,7 @@ export default {
fitView: 'Fit to Screen',
retract: 'Collapse All',
extend: 'Expand All',
beautify: 'Auto-Arrange'
beautify: 'Auto-Arrange',
},
variable: {
label: 'Variable',
@ -56,14 +56,14 @@ export default {
ReferencingRequired: 'Referenced variable is required',
ReferencingError: 'Invalid referenced variable',
NoReferencing: 'Referenced variable does not exist',
placeholder: 'Please select a variable'
placeholder: 'Please select a variable',
},
condition: {
title: 'Execution Condition',
front: 'Precondition',
AND: 'All',
OR: 'Any',
text: 'After the connected node is executed, execute the current node'
text: 'After the connected node is executed, execute the current node',
},
validate: {
startNodeRequired: 'Start node is required',
@ -74,30 +74,30 @@ export default {
noNextNode: 'Next node does not exist',
nodeUnavailable: 'Node unavailable',
needConnect1: 'The branch of the node needs to be connected',
cannotEndNode: 'This node cannot be used as an end node'
cannotEndNode: 'This node cannot be used as an end node',
},
nodes: {
classify: {
aiCapability: 'AI capability',
businessLogic: 'Business logic',
other: 'Other'
other: 'Other',
},
startNode: {
label: 'Start',
question: 'User Question',
currentTime: 'Current Time'
currentTime: 'Current Time',
},
baseNode: {
label: 'Base Information',
appName: {
label: 'App Name'
label: 'App Name',
},
appDescription: {
label: 'App Description'
label: 'App Description',
},
fileUpload: {
label: 'File Upload',
tooltip: 'When enabled, the Q&A page will display a file upload button.'
tooltip: 'When enabled, the Q&A page will display a file upload button.',
},
FileUploadSetting: {
title: 'File Upload Settings',
@ -107,9 +107,9 @@ export default {
label: 'File types allowed for upload',
documentText: 'Requires "Document Content Extraction" node to parse document content',
imageText: 'Requires "Image Understanding" node to parse image content',
audioText: 'Requires "Speech-to-Text" node to parse audio content'
}
}
audioText: 'Requires "Speech-to-Text" node to parse audio content',
},
},
},
aiChatNode: {
label: 'AI Chat',
@ -118,10 +118,10 @@ export default {
returnContent: {
label: 'Return Content',
tooltip: `If turned off, the content of this node will not be output to the user.
If you want the user to see the output of this node, please turn on the switch.`
If you want the user to see the output of this node, please turn on the switch.`,
},
defaultPrompt: 'Known Information',
think: 'Thinking Process'
think: 'Thinking Process',
},
searchKnowledgeNode: {
label: 'Knowledge Retrieval',
@ -134,8 +134,8 @@ export default {
searchQuestion: {
label: 'Question',
placeholder: 'Please select a search question',
requiredMessage: 'Please select a search question'
}
requiredMessage: 'Please select a search question',
},
},
questionNode: {
label: 'Question Optimization',
@ -143,7 +143,7 @@ export default {
result: 'Optimized Question Result',
defaultPrompt1: `Optimize and improve the user's question based on context:`,
defaultPrompt2: `Please output an optimized question.`,
systemDefault: 'You are a question optimization expert'
systemDefault: 'You are a question optimization expert',
},
conditionNode: {
label: 'Conditional Branch',
@ -152,11 +152,11 @@ export default {
conditions: {
label: 'Conditions',
info: 'Meets the following',
requiredMessage: 'Please select conditions'
requiredMessage: 'Please select conditions',
},
valueMessage: 'Please enter a value',
addCondition: 'Add Condition',
addBranch: 'Add Branch'
addBranch: 'Add Branch',
},
replyNode: {
label: 'Specified Reply',
@ -164,8 +164,8 @@ export default {
content: 'Content',
replyContent: {
label: 'Reply Content',
reference: 'Reference Variable'
}
reference: 'Reference Variable',
},
},
rerankerNode: {
label: 'Multi-path Recall',
@ -174,15 +174,15 @@ export default {
result: 'Re-ranking Result',
rerankerContent: {
label: 'Re-ranking Content',
requiredMessage: 'Please select re-ranking content'
requiredMessage: 'Please select re-ranking content',
},
higher: 'Higher',
ScoreTooltip: 'The higher the Score, the stronger the relevance.',
max_paragraph_char_number: 'Maximum Character',
reranker_model: {
label: 'Rerank',
placeholder: 'Please select a rerank'
}
placeholder: 'Please select a rerank',
},
},
formNode: {
label: 'Form Input',
@ -194,15 +194,15 @@ export default {
label: 'Form Output Content',
requiredMessage:
'Please set the output content of this node, { form } is a placeholder for the form.',
tooltip: 'Define the output content of this node. { form } is a placeholder for the form'
tooltip: 'Define the output content of this node. { form } is a placeholder for the form',
},
formAllContent: 'All Form Content',
formSetting: 'Form Configuration'
formSetting: 'Form Configuration',
},
documentExtractNode: {
label: 'Document Content Extraction',
text: 'Extract content from documents',
content: 'Document Content'
content: 'Document Content',
},
imageUnderstandNode: {
label: 'Image Understanding',
@ -210,17 +210,28 @@ export default {
answer: 'AI Content',
model: {
label: 'Vision Model',
requiredMessage: 'Please select a vision model'
requiredMessage: 'Please select a vision model',
},
image: {
label: 'Select Image',
requiredMessage: 'Please select an image'
}
requiredMessage: 'Please select an image',
},
},
variableAssignNode: {
label: 'Variable Assign',
text: 'Update the value of the global variable',
assign: 'Set Value'
assign: 'Set Value',
},
mcpNode: {
label: 'MCP Node',
text: 'Call external MCP services to process data',
getToolsSuccess: 'Tools fetched successfully',
getTool: 'Fetch Tools',
toolParam: 'Tool Parameters',
mcpServerTip: 'Please enter MCP server configuration in JSON format',
mcpToolTip: 'Please select a tool',
configLabel: 'MCP Server Config (Only SSE/Streamable HTTP calls are supported)',
reference: 'Reference MCP',
},
imageGenerateNode: {
label: 'Image Generation',
@ -228,47 +239,47 @@ export default {
answer: 'AI Content',
model: {
label: 'Image Generation Model',
requiredMessage: 'Please select an image generation model'
requiredMessage: 'Please select an image generation model',
},
prompt: {
label: 'Positive Prompt',
tooltip: 'Describe elements and visual features you want in the generated image'
tooltip: 'Describe elements and visual features you want in the generated image',
},
negative_prompt: {
label: 'Negative Prompt',
tooltip: 'Describe elements you want to exclude from the generated image',
placeholder:
'Please describe content you do not want to generate, such as color, bloody content'
}
'Please describe content you do not want to generate, such as color, bloody content',
},
},
speechToTextNode: {
label: 'Speech2Text',
text: 'Convert audio to text through speech recognition model',
stt_model: {
label: 'Speech Recognition Model'
label: 'Speech Recognition Model',
},
audio: {
label: 'Select Audio File',
placeholder: 'Please select an audio file'
}
placeholder: 'Please select an audio file',
},
},
textToSpeechNode: {
label: 'TTS',
text: 'Convert text to audio through speech synthesis model',
tts_model: {
label: 'Speech Synthesis Model'
label: 'Speech Synthesis Model',
},
content: {
label: 'Select Text Content'
}
label: 'Select Text Content',
},
},
toolNode: {
label: 'Custom Tool',
text: 'Execute custom scripts to achieve data processing'
text: 'Execute custom scripts to achieve data processing',
},
applicationNode: {
label: 'APP Node'
}
label: 'APP Node',
},
},
compare: {
is_null: 'Is null',
@ -284,7 +295,7 @@ export default {
len_ge: 'Length greater than or equal to',
len_gt: 'Length greater than',
len_le: 'Length less than or equal to',
len_lt: 'Length less than'
len_lt: 'Length less than',
},
FileUploadSetting: {}
FileUploadSetting: {},
}

View File

@ -233,7 +233,6 @@ export default {
text: '通过SSE/Streamable HTTP方式执行MCP服务中的工具',
getToolsSuccess: '获取工具成功',
getTool: '获取工具',
tool: '工具',
toolParam: '工具参数',
mcpServerTip: '请输入JSON格式的MCP服务器配置',
mcpToolTip: '请选择工具',

View File

@ -5,11 +5,11 @@ export default {
nodeSetting: '節點設置',
workflow: '工作流',
searchBar: {
placeholder: '按名稱搜索'
placeholder: '按名稱搜索',
},
info: {
previewVersion: '預覽版本:',
saveTime: '保存時間:'
saveTime: '保存時間:',
},
setting: {
restoreVersion: '恢復版本',
@ -39,7 +39,7 @@ export default {
},
delete: {
confirmTitle: '確定刪除該節點?',
deleteMessage: '節點不允許刪除'
deleteMessage: '節點不允許刪除',
},
control: {
zoomOut: '縮小',
@ -47,7 +47,7 @@ export default {
fitView: '適應',
retract: '收起全部節點',
extend: '展開全部節點',
beautify: '一鍵美化'
beautify: '一鍵美化',
},
variable: {
label: '變量',
@ -56,14 +56,14 @@ export default {
ReferencingRequired: '引用變量必填',
ReferencingError: '引用變量錯誤',
NoReferencing: '不存在的引用變量',
placeholder: '請選擇變量'
placeholder: '請選擇變量',
},
condition: {
title: '執行條件',
front: '前置',
AND: '所有',
OR: '任一',
text: '連線節點執行完,執行當前節點'
text: '連線節點執行完,執行當前節點',
},
validate: {
startNodeRequired: '開始節點必填',
@ -75,30 +75,30 @@ export default {
nodeUnavailable: '節點不可用',
needConnect1: '節點的',
needConnect2: '分支需要連接',
cannotEndNode: '節點不能當做結束節點'
cannotEndNode: '節點不能當做結束節點',
},
nodes: {
classify: {
aiCapability: 'AI能力',
businessLogic: '業務邏輯',
other: '其他'
other: '其他',
},
startNode: {
label: '開始',
question: '用戶問題',
currentTime: '當前時間'
currentTime: '當前時間',
},
baseNode: {
label: '基本信息',
appName: {
label: '應用名稱'
label: '應用名稱',
},
appDescription: {
label: '應用描述'
label: '應用描述',
},
fileUpload: {
label: '文件上傳',
tooltip: '開啟後,問答頁面會顯示上傳文件的按鈕。'
tooltip: '開啟後,問答頁面會顯示上傳文件的按鈕。',
},
FileUploadSetting: {
title: '文件上傳設置',
@ -108,9 +108,9 @@ export default {
label: '上傳的文件類型',
documentText: '需要使用「文檔內容提取」節點解析文檔內容',
imageText: '需要使用「圖片理解」節點解析圖片內容',
audioText: '需要使用「語音轉文本」節點解析音頻內容'
}
}
audioText: '需要使用「語音轉文本」節點解析音頻內容',
},
},
},
aiChatNode: {
label: 'AI 對話',
@ -119,10 +119,10 @@ export default {
returnContent: {
label: '返回內容',
tooltip: `關閉後該節點的內容則不輸出給用戶。
`
`,
},
defaultPrompt: '已知信息',
think: '思考過程'
think: '思考過程',
},
searchKnowledgeNode: {
label: '知識庫檢索',
@ -135,8 +135,8 @@ export default {
searchQuestion: {
label: '檢索問題',
placeholder: '請選擇檢索問題',
requiredMessage: '請選擇檢索問題'
}
requiredMessage: '請選擇檢索問題',
},
},
questionNode: {
label: '問題優化',
@ -144,7 +144,7 @@ export default {
result: '問題優化結果',
defaultPrompt1: `根據上下文優化和完善用戶問題:`,
defaultPrompt2: `請輸出一個優化後的問題。`,
systemDefault: '你是一個問題優化大師'
systemDefault: '你是一個問題優化大師',
},
conditionNode: {
label: '判斷器',
@ -153,11 +153,11 @@ export default {
conditions: {
label: '條件',
info: '符合以下',
requiredMessage: '請選擇條件'
requiredMessage: '請選擇條件',
},
valueMessage: '請輸入值',
addCondition: '添加條件',
addBranch: '添加分支'
addBranch: '添加分支',
},
replyNode: {
label: '指定回覆',
@ -165,8 +165,8 @@ export default {
content: '內容',
replyContent: {
label: '回覆內容',
reference: '引用變量'
}
reference: '引用變量',
},
},
rerankerNode: {
label: '多路召回',
@ -175,15 +175,15 @@ export default {
result: '重排結果',
rerankerContent: {
label: '重排內容',
requiredMessage: '請選擇重排內容'
requiredMessage: '請選擇重排內容',
},
higher: '高於',
ScoreTooltip: 'Score越高相關性越強。',
max_paragraph_char_number: '最大引用字符數',
reranker_model: {
label: '重排模型',
placeholder: '請選擇重排模型'
}
placeholder: '請選擇重排模型',
},
},
formNode: {
label: '表單收集',
@ -194,15 +194,15 @@ export default {
formContent: {
label: '表單輸出內容',
requiredMessage: '請表單輸出內容',
tooltip: '設置執行該節點輸出的內容,{ form } 為表單的佔位符。'
tooltip: '設置執行該節點輸出的內容,{ form } 為表單的佔位符。',
},
formAllContent: '表單全部內容',
formSetting: '表單配置'
formSetting: '表單配置',
},
documentExtractNode: {
label: '文檔內容提取',
text: '提取文檔中的內容',
content: '文檔內容'
content: '文檔內容',
},
imageUnderstandNode: {
label: '圖片理解',
@ -210,17 +210,28 @@ export default {
answer: 'AI 回答內容',
model: {
label: '圖片理解模型',
requiredMessage: '請選擇圖片理解模型'
requiredMessage: '請選擇圖片理解模型',
},
image: {
label: '選擇圖片',
requiredMessage: '請選擇圖片'
}
requiredMessage: '請選擇圖片',
},
},
variableAssignNode: {
label: '變數賦值',
text: '更新全域變數的值',
assign: '賦值'
assign: '賦值',
},
mcpNode: {
label: 'MCP 調用',
text: '通過SSE/Streamable HTTP方式執行MCP服務中的工具',
getToolsSuccess: '獲取工具成功',
getTool: '獲取工具',
toolParam: '工具參數',
mcpServerTip: '請輸入JSON格式的MCP服務器配置',
mcpToolTip: '請選擇工具',
configLabel: 'MCP Server Config (僅支持SSE/Streamable HTTP調用方式)',
reference: '引用MCP',
},
imageGenerateNode: {
label: '圖片生成',
@ -228,46 +239,46 @@ export default {
answer: 'AI 回答內容',
model: {
label: '圖片生成模型',
requiredMessage: '請選擇圖片生成模型'
requiredMessage: '請選擇圖片生成模型',
},
prompt: {
label: '提示詞(正向)',
tooltip: '正向提示詞,用來描述生成圖像中期望包含的元素和視覺特點'
tooltip: '正向提示詞,用來描述生成圖像中期望包含的元素和視覺特點',
},
negative_prompt: {
label: '提示詞(負向)',
tooltip: '反向提示詞,用來描述不希望在畫面中看到的內容,可以對畫面進行限制。',
placeholder: '請描述不想生成的圖片內容,比如:顏色、血腥內容'
}
placeholder: '請描述不想生成的圖片內容,比如:顏色、血腥內容',
},
},
speechToTextNode: {
label: '語音轉文本',
text: '將音頻通過語音識別模型轉換為文本',
stt_model: {
label: '語音識別模型'
label: '語音識別模型',
},
audio: {
label: '選擇語音文件',
placeholder: '請選擇語音文件'
}
placeholder: '請選擇語音文件',
},
},
textToSpeechNode: {
label: '文本轉語音',
text: '將文本通過語音合成模型轉換為音頻',
tts_model: {
label: '語音合成模型'
label: '語音合成模型',
},
content: {
label: '選擇文本內容'
}
label: '選擇文本內容',
},
},
toolNode: {
label: '自定義工具',
text: '通過執行自定義腳本,實現數據處理'
text: '通過執行自定義腳本,實現數據處理',
},
applicationNode: {
label: '應用節點'
}
label: '應用節點',
},
},
compare: {
is_null: '為空',
@ -283,7 +294,7 @@ export default {
len_ge: '長度大於等於',
len_gt: '長度大於',
len_le: '長度小於等於',
len_lt: '長度小於'
len_lt: '長度小於',
},
FileUploadSetting: {}
FileUploadSetting: {},
}

View File

@ -23,7 +23,7 @@
<AppIcon iconName="app-copy"></AppIcon>
</el-button>
</div>
<el-scrollbar height="150" always>
<el-scrollbar height="180" always>
<div class="pre-wrap p-8 pt-0">
{{ source1 }}
</div>
@ -46,7 +46,7 @@
<AppIcon iconName="app-copy"></AppIcon>
</el-button>
</div>
<el-scrollbar height="150" always>
<el-scrollbar height="180" always>
<div class="pre-wrap p-8 pt-0">
{{ source3 }}
</div>
@ -69,7 +69,7 @@
<AppIcon iconName="app-copy"></AppIcon>
</el-button>
</div>
<el-scrollbar height="150" always>
<el-scrollbar height="180" always>
<div class="pre-wrap p-8 pt-0">
{{ source2 }}
</div>
@ -157,7 +157,7 @@ defineExpose({ open })
font-weight: 400;
font-size: 13px;
white-space: pre;
height: 188px;
height: 210px;
}
}
</style>

View File

@ -31,13 +31,13 @@
required: true,
message:
$t('common.selectPlaceholder') +
` MCP ${$t('views.applicationWorkflow.nodes.mcpNode.tool')}`,
` MCP ${$t('views.tool.title')}`,
},
]"
prop="mcp_tool_id"
>
<template #label>
{{ `MCP ${$t('views.applicationWorkflow.nodes.mcpNode.tool')}` }}
{{ `MCP ${$t('views.tool.title')}` }}
<span class="color-danger">*</span>
</template>
<el-select v-model="form.mcp_tool_id" filterable>

View File

@ -158,7 +158,7 @@
</div>
<!-- 工具 -->
<div class="flex-between mb-16">
<div class="lighter">{{ $t('views.applicationWorkflow.nodes.mcpNode.tool') }}</div>
<div class="lighter">{{ $t('views.tool.title') }}</div>
<div>
<el-button
type="primary"

View File

@ -59,7 +59,7 @@
<el-form-item>
<template v-slot:label>
<div class="flex-between">
<span>{{ $t('views.applicationWorkflow.nodes.mcpNode.tool') }}</span>
<span>{{ $t('views.tool.title') }}</span>
<el-button type="primary" link @click="getTools()">
<el-icon class="mr-4">
<Plus/>