mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-29 16:12:55 +00:00
feat: support i18n
This commit is contained in:
parent
96f467fa21
commit
d8995e996d
|
|
@ -0,0 +1,273 @@
|
|||
export default {
|
||||
node: 'Node',
|
||||
baseComponent: 'Base Component',
|
||||
nodeSetting: 'Node Setting',
|
||||
workflow: 'Workflow',
|
||||
searchBar: {
|
||||
placeholder: 'Search by name'
|
||||
},
|
||||
info: {
|
||||
previewVersion: 'Preview Version:',
|
||||
saveTime: 'Save Time:'
|
||||
},
|
||||
setting: {
|
||||
restoreVersion: 'Restore Version',
|
||||
restoreCurrentVersion: 'Restore This Version',
|
||||
addComponent: 'Add Component',
|
||||
public: 'Publish',
|
||||
releaseHistory: 'Release History',
|
||||
autoSave: 'Auto Save',
|
||||
latestRelease: 'Latest Release',
|
||||
copyParam: 'Copy Parameter'
|
||||
},
|
||||
tip: {
|
||||
publicSuccess: 'Published Successfully',
|
||||
noData: 'No related results found',
|
||||
nameMessage: 'Name cannot be empty!',
|
||||
onlyRight: 'Only allow connections from the right anchor point',
|
||||
notRecyclable: 'Cannot create a loop connection',
|
||||
onlyLeft: 'Only allow connections to the left anchor point',
|
||||
applicationNodeError: 'This application is unavailable',
|
||||
functionNodeError: 'This function is unavailable',
|
||||
repeatedNodeError: 'Node name already exists!',
|
||||
cannotCopy: 'Cannot be copied',
|
||||
copyError: 'Node has been copied',
|
||||
paramErrorMessage: 'Parameter already exists: '
|
||||
},
|
||||
delete: {
|
||||
confirmTitle: 'Confirm to delete this node?',
|
||||
deleteMessage: 'Node cannot be deleted'
|
||||
},
|
||||
control: {
|
||||
zoomOut: 'Zoom Out',
|
||||
zoomIn: 'Zoom In',
|
||||
fitView: 'Fit View',
|
||||
retract: 'Collapse All Nodes',
|
||||
extend: 'Expand All Nodes',
|
||||
beautify: 'One-click Beautification'
|
||||
},
|
||||
variable: {
|
||||
global: 'Global Variable',
|
||||
Referencing: 'Reference Variable',
|
||||
ReferencingRequired: 'Reference Variable Required',
|
||||
ReferencingError: 'Reference Variable Error',
|
||||
NoReferencing: 'Non-existent Reference Variable',
|
||||
fieldMessage: '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'
|
||||
},
|
||||
validate: {
|
||||
startNodeRequired: 'Start Node Required',
|
||||
startNodeOnly: 'There can only be one Start Node',
|
||||
baseNodeRequired: 'Base Info Node Required',
|
||||
baseNodeOnly: 'There can only be one Base Info Node',
|
||||
notInWorkFlowNode: 'Node not in workflow',
|
||||
noNextNode: 'Non-existent next node',
|
||||
nodeUnavailable: 'Node unavailable',
|
||||
needConnect1: 'The branch of the node needs to be connected',
|
||||
cannotEndNode: 'Node cannot be used as an end node'
|
||||
},
|
||||
nodes: {
|
||||
startNode: {
|
||||
label: 'Start',
|
||||
question: 'User Question',
|
||||
currentTime: 'Current Time'
|
||||
},
|
||||
baseNode: {
|
||||
label: 'Base Info',
|
||||
fileUpload: {
|
||||
label: 'File Upload',
|
||||
tooltip: 'When enabled, the Q&A page will display a file upload button.'
|
||||
},
|
||||
FileUploadSetting: {
|
||||
title: 'File Upload Settings',
|
||||
maxFiles: 'Maximum number of files per upload',
|
||||
fileLimit: 'Maximum size per file (MB)',
|
||||
fileUploadType: {
|
||||
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'
|
||||
}
|
||||
}
|
||||
},
|
||||
aiChatNode: {
|
||||
label: 'AI Chat',
|
||||
text: 'Chat with AI large model',
|
||||
answer: 'AI Answer Content',
|
||||
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.`
|
||||
},
|
||||
defaultPrompt: `Known Information:
|
||||
{{knowledgeBaseSearch.data}}
|
||||
Question:
|
||||
{{start.question}}`
|
||||
},
|
||||
searchDatasetNode: {
|
||||
label: 'Knowledge Base Search',
|
||||
text: 'Associate knowledge base and find relevant segments',
|
||||
paragraph_list: 'List of retrieved paragraphs',
|
||||
is_hit_handling_method_list: 'List of segments that meet direct response criteria',
|
||||
result: 'Search Result',
|
||||
directly_return: 'Content of segments that meet direct response criteria',
|
||||
selectDatasetText: 'Associated knowledge base displayed here',
|
||||
searchParam: 'Search Parameters',
|
||||
searchQuestion: {
|
||||
label: 'Search Question',
|
||||
placeholder: 'Please select a search question',
|
||||
requiredMessage: 'Please select a search question'
|
||||
}
|
||||
},
|
||||
questionNode: {
|
||||
label: 'Question Optimization',
|
||||
text: 'Optimize and improve the current question based on historical chat records to better match knowledge base segments',
|
||||
result: 'Optimized Question Result',
|
||||
defaultPrompt: `Optimize and improve the user's question based on context: {{start.question}}
|
||||
Please output an optimized question.`,
|
||||
systemDefault: 'You are a question optimization expert'
|
||||
},
|
||||
conditionNode: {
|
||||
label: 'Conditional Branch',
|
||||
text: 'Execute different nodes based on different conditions',
|
||||
branch_name: 'Branch Name',
|
||||
conditions: {
|
||||
label: 'Conditions',
|
||||
info: 'Meets the following',
|
||||
requiredMessage: 'Please select conditions'
|
||||
},
|
||||
valueMessage: 'Please enter a value',
|
||||
addCondition: 'Add Condition',
|
||||
addBranch: 'Add Branch'
|
||||
},
|
||||
replyNode: {
|
||||
label: 'Specified Reply',
|
||||
text: 'Specify reply content, referenced variables will be converted to strings for output',
|
||||
content: 'Content',
|
||||
replyContent: {
|
||||
label: 'Reply Content',
|
||||
custom: 'Custom',
|
||||
reference: 'Reference Variable'
|
||||
}
|
||||
},
|
||||
rerankerNode: {
|
||||
label: 'Multi-path Recall',
|
||||
text: 'Use re-ranking model to perform secondary recall on retrieval results from multiple knowledge bases',
|
||||
result_list: 'Re-ranked Results List',
|
||||
result: 'Re-ranking Result',
|
||||
rerankerContent: {
|
||||
label: '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 number of characters to quote',
|
||||
reranker_model: {
|
||||
label: 'Re-ranking Model',
|
||||
placeholder: 'Please select a re-ranking model'
|
||||
}
|
||||
},
|
||||
formNode: {
|
||||
label: 'Form Collection',
|
||||
text: 'Used to collect user information during Q&A process, subsequent processes can be executed based on collected form data',
|
||||
form_content_format: `Hello, please fill out the form below:
|
||||
{{form}}
|
||||
Click the [Submit] button after filling it out.`,
|
||||
form_data: 'All Form Content',
|
||||
formContent: {
|
||||
label: 'Form Output Content',
|
||||
requiredMessage: 'Please set the output content of this node, { form } is a placeholder for the form.',
|
||||
tooltip: 'Set the content output by executing this node, { form } is a placeholder for the form.'
|
||||
},
|
||||
formAllContent: 'All Form Content',
|
||||
formSetting: 'Form Configuration'
|
||||
},
|
||||
documentExtractNode: {
|
||||
label: 'Document Content Extraction',
|
||||
text: 'Extract content from documents',
|
||||
content: 'Document Content'
|
||||
},
|
||||
imageUnderstandNode: {
|
||||
label: 'Image Understanding',
|
||||
text: 'Identify objects, scenes, etc., in images to answer user questions',
|
||||
answer: 'AI Answer Content',
|
||||
model: {
|
||||
label: 'Image Understanding Model',
|
||||
requiredMessage: 'Please select an image understanding model'
|
||||
},
|
||||
image: {
|
||||
label: 'Select Image',
|
||||
requiredMessage: 'Please select an image'
|
||||
}
|
||||
},
|
||||
imageGenerateNode: {
|
||||
label: 'Image Generation',
|
||||
text: 'Generate images based on provided text content',
|
||||
answer: 'AI Answer Content',
|
||||
model: {
|
||||
label: 'Image Generation Model',
|
||||
requiredMessage: 'Please select an image generation model'
|
||||
},
|
||||
prompt: {
|
||||
label: 'Positive Prompt',
|
||||
tooltip: 'Positive prompt words, used to describe elements and visual features expected in the generated image'
|
||||
},
|
||||
negative_prompt: {
|
||||
label: 'Negative Prompt',
|
||||
tooltip: 'Negative prompt words, used to describe content that should not appear in the image, which can limit the image.',
|
||||
placeholder: 'Please describe content you do not want to generate, such as color, bloody content'
|
||||
}
|
||||
},
|
||||
speechToTextNode: {
|
||||
label: 'Speech-to-Text',
|
||||
text: 'Convert audio to text through speech recognition model',
|
||||
stt_model: {
|
||||
label: 'Speech Recognition Model'
|
||||
},
|
||||
audio: {
|
||||
label: 'Select Audio File',
|
||||
placeholder: 'Please select an audio file'
|
||||
}
|
||||
},
|
||||
textToSpeechNode: {
|
||||
label: 'Text-to-Speech',
|
||||
text: 'Convert text to audio through speech synthesis model',
|
||||
tts_model: {
|
||||
label: 'Speech Synthesis Model'
|
||||
},
|
||||
content: {
|
||||
label: 'Select Text Content'
|
||||
}
|
||||
},
|
||||
functionNode: {
|
||||
label: 'Custom Function',
|
||||
text: 'Execute custom scripts to achieve data processing'
|
||||
},
|
||||
applicationNode: {
|
||||
label: 'Application Node'
|
||||
}
|
||||
},
|
||||
compare: {
|
||||
is_null: 'Is Null',
|
||||
is_not_null: 'Is Not Null',
|
||||
contain: 'Contains',
|
||||
not_contain: 'Does Not Contain',
|
||||
eq: 'Equals',
|
||||
ge: 'Greater Than or Equal To',
|
||||
gt: 'Greater Than',
|
||||
le: 'Less Than or Equal To',
|
||||
lt: 'Less Than',
|
||||
len_eq: 'Length Equals',
|
||||
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'
|
||||
},
|
||||
FileUploadSetting: {}
|
||||
}
|
||||
|
|
@ -28,7 +28,7 @@ export default {
|
|||
applicationForm: {
|
||||
title: {
|
||||
info: 'Application Information',
|
||||
apptest: 'Debug Preview',
|
||||
appTest: 'Debug Preview',
|
||||
copy: 'copy'
|
||||
},
|
||||
form: {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,157 @@
|
|||
export default {
|
||||
uploadDocument: 'Upload Document',
|
||||
importDocument: 'Import Document',
|
||||
syncDocument: 'Sync Document',
|
||||
selected: 'Selected',
|
||||
items: 'Items',
|
||||
searchBar: {
|
||||
placeholder: 'Search by Document Name'
|
||||
},
|
||||
setting: {
|
||||
migration: 'Migration',
|
||||
generateQuestion: 'Generate Questions',
|
||||
cancelGenerateQuestion: 'Cancel Generating Questions',
|
||||
cancelVectorization: 'Cancel Vectorization',
|
||||
cancelGenerate: 'Cancel Generation'
|
||||
},
|
||||
tip: {
|
||||
saveMessage: 'Current changes have not been saved. Confirm exit?',
|
||||
cancelSuccess: 'Batch cancellation successful',
|
||||
sendMessage: 'Sent successfully',
|
||||
vectorizationSuccess: 'Batch vectorization successful',
|
||||
nameMessage: 'File name cannot be empty!',
|
||||
importMessage: 'Import successful',
|
||||
migrationSuccess: 'Migration successful'
|
||||
},
|
||||
upload: {
|
||||
selectFile: 'Select File',
|
||||
selectFiles: 'Select Folder',
|
||||
uploadMessage: 'Drag and drop files here to upload or',
|
||||
formats: 'Supported formats:',
|
||||
requiredMessage: 'Please upload a file',
|
||||
errorMessage1: 'Please upload a file',
|
||||
errorMessage2: 'Unsupported file format',
|
||||
errorMessage3: 'File cannot be empty',
|
||||
errorMessage4: 'Up to 50 files can be uploaded at once',
|
||||
template: 'Template',
|
||||
download: 'Download'
|
||||
},
|
||||
|
||||
fileType: {
|
||||
txt: {
|
||||
label: 'Text File',
|
||||
tip1: '1. It is recommended to standardize the paragraph markers in the file before uploading.',
|
||||
tip2: '2. Up to 50 files can be uploaded at once, with each file not exceeding 100MB'
|
||||
},
|
||||
table: {
|
||||
label: 'Table',
|
||||
tip1: '1. Click to download the corresponding template and complete the information:',
|
||||
tip2: '2. The first row must be column headers, and the column headers must be meaningful terms. Each record in the table will be treated as a segment.',
|
||||
tip3: '3. Each sheet in the uploaded spreadsheet file will be treated as a document, with the sheet name as the document name.',
|
||||
tip4: '4. Up to 50 files can be uploaded at once, with each file not exceeding 100MB'
|
||||
},
|
||||
QA: {
|
||||
label: 'QA Pairs',
|
||||
tip1: '1. Click to download the corresponding template and complete the information.',
|
||||
tip2: '2. Each sheet in the uploaded spreadsheet file will be treated as a document, with the sheet name as the document name.',
|
||||
tip3: '3. Up to 50 files can be uploaded at once, with each file not exceeding 100MB'
|
||||
}
|
||||
},
|
||||
setRules: {
|
||||
title: {
|
||||
setting: 'Set Segment Rules',
|
||||
preview: 'Segment Preview'
|
||||
},
|
||||
intelligent: {
|
||||
label: 'Intelligent Segmentation (Recommended)',
|
||||
text: 'If you are unsure how to set segmentation rules, it is recommended to use intelligent segmentation.'
|
||||
},
|
||||
advanced: {
|
||||
label: 'Advanced Segmentation',
|
||||
text: 'Users can customize segmentation delimiters, segment length, and cleaning rules based on document standards.'
|
||||
},
|
||||
patterns: {
|
||||
label: 'Segment Delimiters',
|
||||
tooltip: 'Recursively split according to the selected symbols in order. If the split result exceeds the segment length, it will be truncated to the segment length.',
|
||||
placeholder: 'Please select'
|
||||
},
|
||||
limit: {
|
||||
label: 'Segment Length'
|
||||
},
|
||||
with_filter: {
|
||||
label: 'Auto Clean',
|
||||
text: 'Remove duplicate extra symbols, spaces, blank lines, and tab characters.'
|
||||
},
|
||||
checkedConnect: {
|
||||
label: 'Add Segment Titles as Associated Questions During Import (Applicable for QA Pairs where Titles are Questions)'
|
||||
}
|
||||
},
|
||||
buttons: {
|
||||
prev: 'Previous',
|
||||
next: 'Next',
|
||||
import: 'Start Import',
|
||||
preview: 'Generate Preview'
|
||||
},
|
||||
table: {
|
||||
name: 'File Name',
|
||||
char_length: 'Character Count',
|
||||
paragraph: 'Segment',
|
||||
all: 'All',
|
||||
updateTime: 'Update Time'
|
||||
},
|
||||
fileStatus: {
|
||||
label: 'File Status',
|
||||
SUCCESS: 'Success',
|
||||
FAILURE: 'Failure',
|
||||
EMBEDDING: 'Indexing',
|
||||
PENDING: 'Queued',
|
||||
GENERATE: 'Generating',
|
||||
SYNC: 'Syncing',
|
||||
REVOKE: 'Cancelling'
|
||||
},
|
||||
enableStatus: {
|
||||
label: 'Enable Status',
|
||||
enable: 'Enabled',
|
||||
close: 'Disabled'
|
||||
},
|
||||
sync: {
|
||||
label: 'Sync',
|
||||
confirmTitle: 'Confirm Sync Document?',
|
||||
confirmMessage1: 'Syncing will delete existing data and retrieve new data. Please proceed with caution.',
|
||||
confirmMessage2: 'Cannot sync, please set the document URL first.',
|
||||
successMessage: 'Document synced successfully'
|
||||
},
|
||||
delete: {
|
||||
confirmTitle1: 'Confirm Batch Deletion of',
|
||||
confirmTitle2: 'Documents?',
|
||||
confirmMessage: 'Segments within the selected documents will also be deleted. Please proceed with caution.',
|
||||
successMessage: 'Batch deletion successful',
|
||||
confirmTitle3: 'Confirm Deleting Document:',
|
||||
confirmMessage1: 'All segments under this document will be deleted. Please proceed with caution.'
|
||||
},
|
||||
form: {
|
||||
source_url: {
|
||||
label: 'Document URL',
|
||||
placeholder: 'Enter document URLs, one per line. Incorrect URLs will cause import failure.',
|
||||
requiredMessage: 'Please enter a document URL'
|
||||
},
|
||||
selector: {
|
||||
label: 'Selector',
|
||||
placeholder: 'Default is body, you can input .classname/#idname/tagname'
|
||||
},
|
||||
hit_handling_method: {
|
||||
label: 'Hit Handling Method',
|
||||
tooltip: 'When user asks a question, handle matched segments according to the set method.'
|
||||
},
|
||||
similarity: {
|
||||
label: 'Similarity Higher Than',
|
||||
placeholder: 'Directly return segment content',
|
||||
requiredMessage: 'Please enter similarity value'
|
||||
},
|
||||
selectVectorization: {
|
||||
label: 'Select Vectorization Content',
|
||||
error: 'Segments that failed vectorization',
|
||||
all: 'All Segments'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,20 +1,31 @@
|
|||
import notFound from './404'
|
||||
import application from './application'
|
||||
import applicationOverview from './application-overview'
|
||||
import system from './system'
|
||||
import functionLib from './function-lib'
|
||||
import user from './user'
|
||||
import team from './team'
|
||||
import template from './template'
|
||||
import dataset from './dataset'
|
||||
import application from './application';
|
||||
import applicationOverview from './application-overview';
|
||||
import dataset from './dataset';
|
||||
import system from './system';
|
||||
import functionLib from './function-lib';
|
||||
import user from './user';
|
||||
import team from './team';
|
||||
import template from './template';
|
||||
import document from './document';
|
||||
import paragraph from './paragraph';
|
||||
import problem from './problem';
|
||||
import log from './log';
|
||||
import applicationWorkflow from './application-workflow';
|
||||
|
||||
export default {
|
||||
notFound,
|
||||
application,
|
||||
applicationOverview,
|
||||
system,
|
||||
functionLib,
|
||||
user,
|
||||
team,
|
||||
template,
|
||||
dataset
|
||||
notFound,
|
||||
application,
|
||||
applicationOverview,
|
||||
system,
|
||||
functionLib,
|
||||
user,
|
||||
team,
|
||||
template,
|
||||
dataset,
|
||||
applicationWorkflow,
|
||||
document,
|
||||
paragraph,
|
||||
problem,
|
||||
log,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,42 @@
|
|||
export default {
|
||||
title: 'Conversation Logs',
|
||||
delete: {
|
||||
confirmTitle: 'Confirm Deletion of Problem:',
|
||||
confirmMessage1: 'Deleting this problem will cancel the association of',
|
||||
confirmMessage2: 'paragraphs. Please proceed with caution.'
|
||||
},
|
||||
buttons: {
|
||||
clearStrategy: 'Clear Strategy',
|
||||
prev: 'Previous',
|
||||
next: 'Next'
|
||||
},
|
||||
table: {
|
||||
abstract: 'Abstract',
|
||||
chat_record_count: 'Number of Conversation Questions',
|
||||
feedback: {
|
||||
label: 'User Feedback',
|
||||
star: 'Agree',
|
||||
trample: 'Disagree'
|
||||
},
|
||||
mark: 'Improvement Label',
|
||||
recenTimes: 'Recent Conversation Time'
|
||||
},
|
||||
addToDataset: 'Add to Knowledge Base',
|
||||
daysText: 'Conversation records from more than X days ago',
|
||||
selectDataset: 'Select Knowledge Base',
|
||||
selectDatasetPlaceholder: 'Please select a knowledge base',
|
||||
saveToDocument: 'Save to Document',
|
||||
documentPlaceholder: 'Please select a document',
|
||||
editContent: 'Edit Content',
|
||||
editMark: 'Edit Label',
|
||||
form: {
|
||||
content: {
|
||||
label: 'Content',
|
||||
placeholder: 'Please enter the content'
|
||||
},
|
||||
title: {
|
||||
label: 'Title',
|
||||
placeholder: 'Please set a title for the current content for management and viewing'
|
||||
},
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
export default {
|
||||
title: 'Paragraph',
|
||||
editParagraph: 'Edit Paragraph',
|
||||
addParagraph: 'Add Paragraph',
|
||||
paragraphDetail: 'Paragraph Details',
|
||||
character_count: 'characters',
|
||||
setting: {
|
||||
batchSelected: 'Batch Select',
|
||||
cancelSelected: 'Cancel Selection'
|
||||
},
|
||||
tip: {},
|
||||
searchBar: {
|
||||
title: 'Title',
|
||||
content: 'Content'
|
||||
},
|
||||
delete: {
|
||||
confirmTitle: 'Confirm Deletion of Paragraph:',
|
||||
confirmMessage: 'Deletion cannot be undone. Please proceed with caution.'
|
||||
},
|
||||
relatedProblem: {
|
||||
title: 'Related Questions',
|
||||
placeholder: 'Please select a question'
|
||||
},
|
||||
form: {
|
||||
paragraphTitle: {
|
||||
label: 'Paragraph Title',
|
||||
placeholder: 'Please enter the paragraph title'
|
||||
},
|
||||
content: {
|
||||
label: 'Paragraph Content',
|
||||
placeholder: 'Please enter the paragraph content',
|
||||
requiredMessage1: 'Please enter the paragraph content',
|
||||
requiredMessage2: 'Content must not exceed 100,000 characters'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
export default {
|
||||
title: 'Problem',
|
||||
createProblem: 'Create Problem',
|
||||
detailProblem: 'Problem Details',
|
||||
quickCreateProblem: 'Quick Create Problem',
|
||||
tip: {
|
||||
placeholder: 'Enter the problem, support multiple entries, one per line.',
|
||||
errorMessage: 'Problem cannot be empty!',
|
||||
requiredMessage: 'Please enter a problem',
|
||||
relatedSuccess: 'Batch association of paragraphs successful'
|
||||
},
|
||||
|
||||
setting: {
|
||||
batchDelete: 'Batch Delete',
|
||||
cancelRelated: 'Cancel Association'
|
||||
},
|
||||
searchBar: {
|
||||
placeholder: 'Search by Name'
|
||||
},
|
||||
table: {
|
||||
paragraph_count: 'Number of Associated Paragraphs',
|
||||
updateTime: 'Update Time'
|
||||
},
|
||||
delete: {
|
||||
confirmTitle: 'Confirm Deletion of Problem:',
|
||||
confirmMessage1: 'Deleting this problem will cancel the association of',
|
||||
confirmMessage2: 'paragraphs. Please proceed with caution.'
|
||||
},
|
||||
relateParagraph: {
|
||||
title: 'Associate Paragraphs',
|
||||
selectDocument: 'Select Document',
|
||||
placeholder: 'Search by Document Name',
|
||||
selectParagraph: 'Select Paragraph',
|
||||
selectedParagraph: 'Selected Paragraphs',
|
||||
count: 'Count'
|
||||
},
|
||||
}
|
||||
|
|
@ -26,7 +26,7 @@ export default {
|
|||
nameMessage: '名字不能为空!',
|
||||
onlyRight: '只允许从右边的锚点连出',
|
||||
notRecyclable: '不可循环连线',
|
||||
onlylest: '只允许连接左边的锚点',
|
||||
onlyLeft: '只允许连接左边的锚点',
|
||||
applicationNodeError: '该应用不可用',
|
||||
functionNodeError: '该函数不可用',
|
||||
repeatedNodeError: '节点名称已存在!',
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ export default {
|
|||
applicationForm: {
|
||||
title: {
|
||||
info: '应用信息',
|
||||
apptest: '调试预览',
|
||||
appTest: '调试预览',
|
||||
copy: '副本'
|
||||
},
|
||||
form: {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,274 @@
|
|||
export default {
|
||||
node: '節點',
|
||||
baseComponent: '基礎組件',
|
||||
nodeSetting: '節點設置',
|
||||
workflow: '工作流',
|
||||
searchBar: {
|
||||
placeholder: '按名稱搜索'
|
||||
},
|
||||
info: {
|
||||
previewVersion: '預覽版本:',
|
||||
saveTime: '保存時間:'
|
||||
},
|
||||
setting: {
|
||||
restoreVersion: '恢復版本',
|
||||
restoreCurrentVersion: '恢復此版本',
|
||||
addComponent: '添加組件',
|
||||
public: '發布',
|
||||
releaseHistory: '發布歷史',
|
||||
autoSave: '自動保存',
|
||||
latestRelease: '最近發布',
|
||||
copyParam: '複製參數'
|
||||
},
|
||||
tip: {
|
||||
publicSuccess: '發布成功',
|
||||
noData: '沒有找到相關結果',
|
||||
nameMessage: '名字不能為空!',
|
||||
onlyRight: '只允許從右邊的錨點連出',
|
||||
notRecyclable: '不可循環連線',
|
||||
onlyLeft: '只允許連接左邊的錨點',
|
||||
applicationNodeError: '該應用不可用',
|
||||
functionNodeError: '該函數不可用',
|
||||
repeatedNodeError: '節點名稱已存在!',
|
||||
cannotCopy: '不能被複製',
|
||||
copyError: '已複製節點',
|
||||
paramErrorMessage: '參數已存在: '
|
||||
},
|
||||
delete: {
|
||||
confirmTitle: '確定刪除該節點?',
|
||||
deleteMessage: '節點不允許刪除'
|
||||
},
|
||||
control: {
|
||||
zoomOut: '縮小',
|
||||
zoomIn: '放大',
|
||||
fitView: '適應',
|
||||
retract: '收起全部節點',
|
||||
extend: '展開全部節點',
|
||||
beautify: '一鍵美化'
|
||||
},
|
||||
variable: {
|
||||
global: '全局變量',
|
||||
Referencing: '引用變量',
|
||||
ReferencingRequired: '引用變量必填',
|
||||
ReferencingError: '引用變量錯誤',
|
||||
NoReferencing: '不存在的引用變量',
|
||||
fieldMessage: '請選擇變量'
|
||||
},
|
||||
condition: {
|
||||
title: '執行條件',
|
||||
front: '前置',
|
||||
AND: '所有',
|
||||
OR: '任一',
|
||||
text: '連線節點執行完,執行當前節點'
|
||||
},
|
||||
validate: {
|
||||
startNodeRequired: '開始節點必填',
|
||||
startNodeOnly: '開始節點只能有一個',
|
||||
baseNodeRequired: '基本信息節點必填',
|
||||
baseNodeOnly: '基本信息節點只能有一個',
|
||||
notInWorkFlowNode: '未在流程中的節點',
|
||||
noNextNode: '不存在的下一個節點',
|
||||
nodeUnavailable: '節點不可用',
|
||||
needConnect1: '節點的',
|
||||
needConnect2: '分支需要連接',
|
||||
cannotEndNode: '節點不能當做結束節點'
|
||||
},
|
||||
nodes: {
|
||||
startNode: {
|
||||
label: '開始',
|
||||
question: '用戶問題',
|
||||
currentTime: '當前時間'
|
||||
},
|
||||
baseNode: {
|
||||
label: '基本信息',
|
||||
fileUpload: {
|
||||
label: '文件上傳',
|
||||
tooltip: '開啟後,問答頁面會顯示上傳文件的按鈕。'
|
||||
},
|
||||
FileUploadSetting: {
|
||||
title: '文件上傳設置',
|
||||
maxFiles: '單次上傳最多文件數',
|
||||
fileLimit: '每個文件最大(MB)',
|
||||
fileUploadType: {
|
||||
label: '上傳的文件類型',
|
||||
documentText: '需要使用「文檔內容提取」節點解析文檔內容',
|
||||
imageText: '需要使用「圖片理解」節點解析圖片內容',
|
||||
audioText: '需要使用「語音轉文本」節點解析音頻內容'
|
||||
}
|
||||
}
|
||||
},
|
||||
aiChatNode: {
|
||||
label: 'AI 對話',
|
||||
text: '與 AI 大模型進行對話',
|
||||
answer: 'AI 回答內容',
|
||||
returnContent: {
|
||||
label: '返回內容',
|
||||
tooltip: `關閉後該節點的內容則不輸出給用戶。
|
||||
如果你想讓用戶看到該節點的輸出內容,請打開開關。`
|
||||
},
|
||||
defaultPrompt: `已知信息:
|
||||
{{知識庫檢索.data}}
|
||||
問題:
|
||||
{{開始.question}}`
|
||||
},
|
||||
searchDatasetNode: {
|
||||
label: '知識庫檢索',
|
||||
text: '關聯知識庫,查找與問題相關的分段',
|
||||
paragraph_list: '檢索結果的分段列表',
|
||||
is_hit_handling_method_list: '滿足直接回答的分段列表',
|
||||
result: '檢索結果',
|
||||
directly_return: '滿足直接回答的分段內容',
|
||||
selectDatasetText: '關聯的知識庫展示在這裡',
|
||||
searchParam: '檢索參數',
|
||||
searchQuestion: {
|
||||
label: '檢索問題',
|
||||
placeholder: '請選擇檢索問題',
|
||||
requiredMessage: '請選擇檢索問題'
|
||||
}
|
||||
},
|
||||
questionNode: {
|
||||
label: '問題優化',
|
||||
text: '根據歷史聊天記錄優化完善當前問題,更利於匹配知識庫分段',
|
||||
result: '問題優化結果',
|
||||
defaultPrompt: `根據上下文優化和完善用戶問題:{{開始.question}}
|
||||
請輸出一個優化後的問題。`,
|
||||
systemDefault: '你是一個問題優化大師'
|
||||
},
|
||||
conditionNode: {
|
||||
label: '判斷器',
|
||||
text: '根據不同條件執行不同的節點',
|
||||
branch_name: '分支名稱',
|
||||
conditions: {
|
||||
label: '條件',
|
||||
info: '符合以下',
|
||||
requiredMessage: '請選擇條件'
|
||||
},
|
||||
valueMessage: '請輸入值',
|
||||
addCondition: '添加條件',
|
||||
addBranch: '添加分支'
|
||||
},
|
||||
replyNode: {
|
||||
label: '指定回覆',
|
||||
text: '指定回覆內容,引用變量會轉換為字符串進行輸出',
|
||||
content: '內容',
|
||||
replyContent: {
|
||||
label: '回覆內容',
|
||||
custom: '自定義',
|
||||
reference: '引用變量'
|
||||
}
|
||||
},
|
||||
rerankerNode: {
|
||||
label: '多路召回',
|
||||
text: '使用重排模型對多個知識庫的檢索結果進行二次召回',
|
||||
result_list: '重排結果列表',
|
||||
result: '重排結果',
|
||||
rerankerContent: {
|
||||
label: '重排內容',
|
||||
requiredMessage: '請選擇重排內容'
|
||||
},
|
||||
higher: '高於',
|
||||
ScoreTooltip: 'Score越高相關性越強。',
|
||||
max_paragraph_char_number: '最大引用字符數',
|
||||
reranker_model: {
|
||||
label: '重排模型',
|
||||
placeholder: '請選擇重排模型'
|
||||
}
|
||||
},
|
||||
formNode: {
|
||||
label: '表單收集',
|
||||
text: '在問答過程中用於收集用戶信息,可以根據收集到表單數據執行後續流程',
|
||||
form_content_format: `你好,請先填寫下面表單內容:
|
||||
{{form}}
|
||||
填寫後請點擊【提交】按鈕進行提交。`,
|
||||
form_data: '表單全部內容',
|
||||
formContent: {
|
||||
label: '表單輸出內容',
|
||||
requiredMessage: '請表單輸出內容',
|
||||
tooltip: '設置執行該節點輸出的內容,{ form } 為表單的佔位符。'
|
||||
},
|
||||
formAllContent: '表單全部內容',
|
||||
formSetting: '表單配置'
|
||||
},
|
||||
documentExtractNode: {
|
||||
label: '文檔內容提取',
|
||||
text: '提取文檔中的內容',
|
||||
content: '文檔內容'
|
||||
},
|
||||
imageUnderstandNode: {
|
||||
label: '圖片理解',
|
||||
text: '識別出圖片中的物件、場景等信息回答用戶問題',
|
||||
answer: 'AI 回答內容',
|
||||
model: {
|
||||
label: '圖片理解模型',
|
||||
requiredMessage: '請選擇圖片理解模型'
|
||||
},
|
||||
image: {
|
||||
label: '選擇圖片',
|
||||
requiredMessage: '請選擇圖片'
|
||||
}
|
||||
},
|
||||
imageGenerateNode: {
|
||||
label: '圖片生成',
|
||||
text: '根據提供的文本內容生成圖片',
|
||||
answer: 'AI 回答內容',
|
||||
model: {
|
||||
label: '圖片生成模型',
|
||||
requiredMessage: '請選擇圖片生成模型'
|
||||
},
|
||||
prompt: {
|
||||
label: '提示詞(正向)',
|
||||
tooltip: '正向提示詞,用來描述生成圖像中期望包含的元素和視覺特點'
|
||||
},
|
||||
negative_prompt: {
|
||||
label: '提示詞(負向)',
|
||||
tooltip: '反向提示詞,用來描述不希望在畫面中看到的內容,可以對畫面進行限制。',
|
||||
placeholder: '請描述不想生成的圖片內容,比如:顏色、血腥內容'
|
||||
}
|
||||
},
|
||||
speechToTextNode: {
|
||||
label: '語音轉文本',
|
||||
text: '將音頻通過語音識別模型轉換為文本',
|
||||
stt_model: {
|
||||
label: '語音識別模型'
|
||||
},
|
||||
audio: {
|
||||
label: '選擇語音文件',
|
||||
placeholder: '請選擇語音文件'
|
||||
}
|
||||
},
|
||||
textToSpeechNode: {
|
||||
label: '文本轉語音',
|
||||
text: '將文本通過語音合成模型轉換為音頻',
|
||||
tts_model: {
|
||||
label: '語音合成模型'
|
||||
},
|
||||
content: {
|
||||
label: '選擇文本內容'
|
||||
}
|
||||
},
|
||||
functionNode: {
|
||||
label: '自定義函數',
|
||||
text: '通過執行自定義腳本,實現數據處理'
|
||||
},
|
||||
applicationNode: {
|
||||
label: '應用節點'
|
||||
}
|
||||
},
|
||||
compare: {
|
||||
is_null: '為空',
|
||||
is_not_null: '不為空',
|
||||
contain: '包含',
|
||||
not_contain: '不包含',
|
||||
eq: '等於',
|
||||
ge: '大於等於',
|
||||
gt: '大於',
|
||||
le: '小於等於',
|
||||
lt: '小於',
|
||||
len_eq: '長度等於',
|
||||
len_ge: '長度大於等於',
|
||||
len_gt: '長度大於',
|
||||
len_le: '長度小於等於',
|
||||
len_lt: '長度小於'
|
||||
},
|
||||
FileUploadSetting: {}
|
||||
}
|
||||
|
|
@ -24,7 +24,7 @@ export default {
|
|||
applicationForm: {
|
||||
title: {
|
||||
info: '應用資訊',
|
||||
apptest: '調試預覽',
|
||||
appTest: '調試預覽',
|
||||
copy: '副本'
|
||||
},
|
||||
form: {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,158 @@
|
|||
export default {
|
||||
uploadDocument: '上傳文檔',
|
||||
importDocument: '導入文檔',
|
||||
syncDocument: '同步文檔',
|
||||
selected: '已選',
|
||||
items: '項',
|
||||
searchBar: {
|
||||
placeholder: '按 文檔名稱 搜索'
|
||||
},
|
||||
setting: {
|
||||
migration: '遷移',
|
||||
generateQuestion: '生成問題',
|
||||
cancelGenerateQuestion: '取消生成問題',
|
||||
cancelVectorization: '取消向量化',
|
||||
cancelGenerate: '取消生成'
|
||||
},
|
||||
tip: {
|
||||
saveMessage: '當前的更改尚未保存,確認退出嗎?',
|
||||
cancelSuccess: '批量取消成功',
|
||||
sendMessage: '發送成功',
|
||||
vectorizationSuccess: '批量向量化成功',
|
||||
nameMessage: '文件名稱不能为空!',
|
||||
importMessage: '導入成功',
|
||||
migrationSuccess: '遷移成功'
|
||||
},
|
||||
upload: {
|
||||
selectFile: '選擇文件',
|
||||
selectFiles: '選擇文件夾',
|
||||
uploadMessage: '拖拽文件至此上傳或',
|
||||
formats: '支持格式:',
|
||||
requiredMessage: '請上傳文件',
|
||||
errorMessage1: '請上傳文件',
|
||||
errorMessage2: '文件格式不支持',
|
||||
errorMessage3: '文件不能为空',
|
||||
errorMessage4: '每次最多上傳50個文件',
|
||||
template: '模板',
|
||||
download: '下載'
|
||||
},
|
||||
|
||||
fileType: {
|
||||
txt: {
|
||||
label: '文本文件',
|
||||
tip1: '1、文件上傳前,建議規範文件的分段標識',
|
||||
tip2: '2、每次最多上傳 50 個文件,每個文件不超过 100MB'
|
||||
},
|
||||
table: {
|
||||
label: '表格',
|
||||
tip1: '1、點擊下載對應模板並完善信息:',
|
||||
tip2: '2、第一行必須是列標題,且列標題必須是有意義的術語,表中每條記錄將作為一個分段',
|
||||
tip3: '3、上傳的表格文件中每個 sheet 會作為一個文檔,sheet 名稱為文檔名稱',
|
||||
tip4: '4、每次最多上傳 50 個文件,每個文件不超过 100MB'
|
||||
},
|
||||
QA: {
|
||||
label: 'QA 問答對',
|
||||
tip1: '1、點擊下載對應模板並完善信息',
|
||||
tip2: '2、上傳的表格文件中每個 sheet 會作為一個文檔,sheet 名稱為文檔名稱',
|
||||
tip3: '3、每次最多上傳 50 個文件,每個文件不超过 100MB'
|
||||
}
|
||||
},
|
||||
setRules: {
|
||||
title: {
|
||||
setting: '設置分段規則',
|
||||
preview: '分段預覽'
|
||||
},
|
||||
intelligent: {
|
||||
label: '智能分段(推薦)',
|
||||
text: '不了解如何設置分段規則推薦使用智能分段'
|
||||
},
|
||||
advanced: {
|
||||
label: '高級分段',
|
||||
text: '用戶可根據文檔規範自行設置分段標識符、分段長度以及清洗規則'
|
||||
},
|
||||
patterns: {
|
||||
label: '分段標識',
|
||||
tooltip: '按照所選符號先後順序做遞歸分割,分割結果超出分段長度將截取至分段長度。',
|
||||
placeholder: '請選擇'
|
||||
},
|
||||
limit: {
|
||||
label: '分段長度'
|
||||
},
|
||||
with_filter: {
|
||||
label: '自動清洗',
|
||||
text: '去掉重複多餘符號空格、空行、制表符'
|
||||
},
|
||||
checkedConnect: {
|
||||
label: '導入時添加分段標題為關聯問題(適用於標題為問題的問答對)'
|
||||
}
|
||||
},
|
||||
buttons: {
|
||||
prev: '上一步',
|
||||
next: '下一步',
|
||||
import: '開始導入',
|
||||
preview: '生成預覽'
|
||||
},
|
||||
table: {
|
||||
name: '文件名稱',
|
||||
char_length: '字符數',
|
||||
paragraph: '分段',
|
||||
all: '全部',
|
||||
updateTime: '更新時間'
|
||||
},
|
||||
fileStatus: {
|
||||
label: '文件狀態',
|
||||
SUCCESS: '成功',
|
||||
FAILURE: '失敗',
|
||||
EMBEDDING: '索引中',
|
||||
PENDING: '排隊中',
|
||||
GENERATE: '生成中',
|
||||
SYNC: '同步中',
|
||||
REVOKE: '取消中'
|
||||
},
|
||||
enableStatus: {
|
||||
label: '啟用狀態',
|
||||
enable: '開啟',
|
||||
close: '關閉'
|
||||
},
|
||||
sync: {
|
||||
label: '同步',
|
||||
confirmTitle: '確認同步文檔?',
|
||||
confirmMessage1: '同步將刪除已有數據重新獲取新數據,請謹慎操作。',
|
||||
confirmMessage2: '無法同步,請先去設置文檔 URL地址',
|
||||
successMessage: '同步文檔成功'
|
||||
},
|
||||
delete: {
|
||||
confirmTitle1: '是否批量刪除',
|
||||
confirmTitle2: '個文檔?',
|
||||
confirmMessage: '所選文檔中的分段會跟隨刪除,請謹慎操作。',
|
||||
successMessage: '批量刪除成功',
|
||||
confirmTitle3: '是否刪除文檔:',
|
||||
confirmMessage1: '此文檔下的',
|
||||
confirmMessage2: '個分段都會被刪除,請謹慎操作。'
|
||||
},
|
||||
form: {
|
||||
source_url: {
|
||||
label: '文檔地址',
|
||||
placeholder: '請輸入文檔地址,一行一個,地址不正確文檔會導入失敗。',
|
||||
requiredMessage: '請輸入文檔地址'
|
||||
},
|
||||
selector: {
|
||||
label: '選擇器',
|
||||
placeholder: '默認為 body,可輸入 .classname/#idname/tagname'
|
||||
},
|
||||
hit_handling_method: {
|
||||
label: '命中處理方式',
|
||||
tooltip: '用戶提問時,命中文檔下的分段時按照設置的方式進行處理。'
|
||||
},
|
||||
similarity: {
|
||||
label: '相似度高于',
|
||||
placeholder: '直接返回分段内容',
|
||||
requiredMessage: '请输入相似度'
|
||||
},
|
||||
selectVectorization: {
|
||||
label: '选择向量化内容',
|
||||
error: '向量化未成功的分段',
|
||||
all: '全部分段'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,20 +1,31 @@
|
|||
import notFound from './404'
|
||||
import application from './application'
|
||||
import applicationOverview from './application-overview'
|
||||
import system from './system'
|
||||
import functionLib from './function-lib'
|
||||
import user from './user'
|
||||
import team from './team'
|
||||
import template from './template'
|
||||
import dataset from './dataset'
|
||||
import application from './application';
|
||||
import applicationOverview from './application-overview';
|
||||
import dataset from './dataset';
|
||||
import system from './system';
|
||||
import functionLib from './function-lib';
|
||||
import user from './user';
|
||||
import team from './team';
|
||||
import template from './template';
|
||||
import document from './document';
|
||||
import paragraph from './paragraph';
|
||||
import problem from './problem';
|
||||
import log from './log';
|
||||
import applicationWorkflow from './application-workflow';
|
||||
|
||||
export default {
|
||||
notFound,
|
||||
application,
|
||||
applicationOverview,
|
||||
system,
|
||||
functionLib,
|
||||
user,
|
||||
team,
|
||||
template,
|
||||
dataset
|
||||
notFound,
|
||||
application,
|
||||
applicationOverview,
|
||||
system,
|
||||
functionLib,
|
||||
user,
|
||||
team,
|
||||
template,
|
||||
dataset,
|
||||
applicationWorkflow,
|
||||
document,
|
||||
paragraph,
|
||||
problem,
|
||||
log,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,42 @@
|
|||
export default {
|
||||
title: '對話日誌',
|
||||
delete: {
|
||||
confirmTitle: '是否刪除問題:',
|
||||
confirmMessage1: '刪除問題關聯的',
|
||||
confirmMessage2: '個分段會被取消關聯,請謹慎操作。'
|
||||
},
|
||||
buttons: {
|
||||
clearStrategy: '清除策略',
|
||||
prev: '上一條',
|
||||
next: '下一條'
|
||||
},
|
||||
table: {
|
||||
abstract: '摘要',
|
||||
chat_record_count: '對話提問數',
|
||||
feedback: {
|
||||
label: '用戶反饋',
|
||||
star: '贊同',
|
||||
trample: '反對'
|
||||
},
|
||||
mark: '改進標註',
|
||||
recenTimes: '最近對話時間'
|
||||
},
|
||||
addToDataset: '添加至知識庫',
|
||||
daysText: '天之前的對話記錄',
|
||||
selectDataset: '選擇知識庫',
|
||||
selectDatasetPlaceholder: '請選擇知識庫',
|
||||
saveToDocument: '保存至文件',
|
||||
documentPlaceholder: '請選擇文件',
|
||||
editContent: '修改內容',
|
||||
editMark: '修改標註',
|
||||
form: {
|
||||
content: {
|
||||
label: '內容',
|
||||
placeholder: '請輸入內容'
|
||||
},
|
||||
title: {
|
||||
label: '標題',
|
||||
placeholder: '請給當前內容設定一個標題,以便管理查看'
|
||||
},
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
export default {
|
||||
title: '段落',
|
||||
editParagraph: '編輯分段',
|
||||
addParagraph: '添加分段',
|
||||
paragraphDetail: '分段詳情',
|
||||
character_count: '個字符',
|
||||
setting: {
|
||||
batchSelected: '批量選擇',
|
||||
cancelSelected: '取消選擇'
|
||||
},
|
||||
tip: {},
|
||||
searchBar: {
|
||||
title: '標題',
|
||||
content: '內容'
|
||||
},
|
||||
delete: {
|
||||
confirmTitle: '是否刪除段落:',
|
||||
confirmMessage: '刪除後無法恢復,請謹慎操作。'
|
||||
},
|
||||
relatedProblem: {
|
||||
title: '關聯問題',
|
||||
placeholder: '請選擇問題'
|
||||
},
|
||||
form: {
|
||||
paragraphTitle: {
|
||||
label: '分段標題',
|
||||
placeholder: '請輸入分段標題'
|
||||
},
|
||||
content: {
|
||||
label: '分段內容',
|
||||
placeholder: '請輸入分段內容',
|
||||
requiredMessage1: '請輸入分段內容',
|
||||
requiredMessage2: '內容最多不超過 100000 個字'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
export default {
|
||||
title: '問題',
|
||||
createProblem: '建立問題',
|
||||
detailProblem: '問題詳情',
|
||||
quickCreateProblem: '快速建立問題',
|
||||
tip: {
|
||||
placeholder: '請輸入問題,支持輸入多個,一行一個。',
|
||||
errorMessage: '問題不能為空!',
|
||||
requiredMessage: '請輸入問題',
|
||||
relatedSuccess: '批量關聯分段成功'
|
||||
},
|
||||
|
||||
setting: {
|
||||
batchDelete: '批量刪除',
|
||||
cancelRelated: '取消關聯'
|
||||
},
|
||||
searchBar: {
|
||||
placeholder: '按名稱搜尋'
|
||||
},
|
||||
table: {
|
||||
paragraph_count: '關聯分段數',
|
||||
updateTime: '更新時間'
|
||||
},
|
||||
delete: {
|
||||
confirmTitle: '是否刪除問題:',
|
||||
confirmMessage1: '刪除問題關聯的',
|
||||
confirmMessage2: '個分段會被取消關聯,請謹慎操作。'
|
||||
},
|
||||
relateParagraph: {
|
||||
title: '關聯分段',
|
||||
selectDocument: '選擇文件',
|
||||
placeholder: '按 文件名稱 搜尋',
|
||||
selectParagraph: '選擇分段',
|
||||
selectedParagraph: '已選分段',
|
||||
count: '個'
|
||||
},
|
||||
}
|
||||
|
|
@ -384,7 +384,7 @@
|
|||
</el-col>
|
||||
<el-col :span="14" class="p-24 border-l">
|
||||
<h4 class="title-decoration-1 mb-16">
|
||||
{{ $t('views.application.applicationForm.title.apptest') }}
|
||||
{{ $t('views.application.applicationForm.title.appTest') }}
|
||||
</h4>
|
||||
<div class="dialog-bg">
|
||||
<div class="flex align-center p-24">
|
||||
|
|
|
|||
|
|
@ -308,7 +308,7 @@ class AppNodeModel extends HtmlResize.model {
|
|||
|
||||
this.sourceRules.push(circleOnlyAsTarget)
|
||||
this.targetRules.push({
|
||||
message: t('views.applicationWorkflow.tip.onlylest'),
|
||||
message: t('views.applicationWorkflow.tip.onlyLeft'),
|
||||
validate: (sourceNode: any, targetNode: any, sourceAnchor: any, targetAnchor: any) => {
|
||||
return targetAnchor.type === 'left'
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue