const translation = { common: { editing: 'Chỉnh sửa', autoSaved: 'Tự động lưu', unpublished: 'Chưa xuất bản', published: 'Đã xuất bản', publish: 'Xuất bản', update: 'Cập nhật', run: 'Chạy', running: 'Đang chạy', inRunMode: 'Chế độ chạy', inPreview: 'Trong chế độ xem trước', inPreviewMode: 'Chế độ xem trước', preview: 'Xem trước', viewRunHistory: 'Xem lịch sử chạy', runHistory: 'Lịch sử chạy', goBackToEdit: 'Quay lại trình chỉnh sửa', conversationLog: 'Nhật ký cuộc trò chuyện', features: 'Tính năng', debugAndPreview: 'Gỡ lỗi và xem trước', restart: 'Khởi động lại', currentDraft: 'Bản nháp hiện tại', currentDraftUnpublished: 'Bản nháp hiện tại chưa xuất bản', latestPublished: 'Xuất bản mới nhất', publishedAt: 'Đã xuất bản tại', restore: 'Khôi phục', runApp: 'Chạy ứng dụng', batchRunApp: 'Chạy ứng dụng hàng loạt', accessAPIReference: 'Truy cập tài liệu API', embedIntoSite: 'Nhúng vào trang web', addTitle: 'Thêm tiêu đề...', addDescription: 'Thêm mô tả...', noVar: 'Không có biến', searchVar: 'Tìm kiếm biến', variableNamePlaceholder: 'Tên biến', setVarValuePlaceholder: 'Đặt giá trị biến', needConnecttip: 'Bước này không được kết nối với bất kỳ điều gì', maxTreeDepth: 'Giới hạn tối đa {{depth}} nút trên mỗi nhánh', needEndNode: 'Phải thêm khối Kết thúc', needAnswerNode: 'Phải thêm khối Trả lời', workflowProcess: 'Quy trình làm việc', notRunning: 'Chưa chạy', previewPlaceholder: 'Nhập nội dung vào hộp bên dưới để bắt đầu gỡ lỗi Chatbot', effectVarConfirm: { title: 'Xóa biến', content: 'Biến được sử dụng trong các nút khác. Bạn có chắc chắn muốn xóa nó không?', }, insertVarTip: 'Nhấn phím \'/\' để chèn nhanh', processData: 'Xử lý dữ liệu', input: 'Đầu vào', output: 'Đầu ra', jinjaEditorPlaceholder: 'Gõ \'/\' hoặc \'{\' để chèn biến', viewOnly: 'Chỉ xem', showRunHistory: 'Hiển thị lịch sử chạy', enableJinja: 'Bật hỗ trợ mẫu Jinja', learnMore: 'Tìm hiểu thêm', copy: 'Sao chép', duplicate: 'Nhân bản', addBlock: 'Thêm khối', pasteHere: 'Dán vào đây', pointerMode: 'Chế độ con trỏ', handMode: 'Chế độ tay', model: 'Mô hình', workflowAsTool: 'Quy trình làm việc như công cụ', configureRequired: 'Yêu cầu cấu hình', configure: 'Cấu hình', manageInTools: 'Quản lý trong công cụ', workflowAsToolTip: 'Cần cấu hình lại công cụ sau khi cập nhật quy trình làm việc.', viewDetailInTracingPanel: 'Xem chi tiết', }, errorMsg: { fieldRequired: '{{field}} là bắt buộc', authRequired: 'Yêu cầu xác thực', invalidJson: '{{field}} là JSON không hợp lệ', fields: { variable: 'Tên biến', variableValue: 'Giá trị biến', code: 'Mã', model: 'Mô hình', rerankModel: 'Mô hình xếp hạng lại', }, invalidVariable: 'Biến không hợp lệ', }, singleRun: { testRun: 'Chạy thử nghiệm ', startRun: 'Bắt đầu chạy', running: 'Đang chạy', testRunIteration: 'Lặp chạy thử nghiệm', back: 'Quay lại', iteration: 'Lặp', }, tabs: { 'searchBlock': 'Tìm kiếm khối', 'blocks': 'Khối', 'tools': 'Công cụ', 'allTool': 'Tất cả', 'builtInTool': 'Tích hợp sẵn', 'customTool': 'Tùy chỉnh', 'workflowTool': 'Quy trình làm việc', 'question-understand': 'Hiểu câu hỏi', 'logic': 'Logic', 'transform': 'Chuyển đổi', 'utilities': 'Tiện ích', 'noResult': 'Không tìm thấy kết quả phù hợp', }, blocks: { 'start': 'Bắt đầu', 'end': 'Kết thúc', 'answer': 'Trả lời', 'llm': 'LLM', 'knowledge-retrieval': 'Truy xuất kiến thức', 'question-classifier': 'Phân loại câu hỏi', 'if-else': 'NẾU/NGƯỢC LẠI', 'code': 'Mã', 'template-transform': 'Mẫu', 'http-request': 'Yêu cầu HTTP', 'variable-assigner': 'Trình gán biến', 'variable-aggregator': 'Trình tổng hợp biến', 'iteration-start': 'Bắt đầu lặp', 'iteration': 'Lặp', 'parameter-extractor': 'Trình trích xuất tham số', }, blocksAbout: { 'start': 'Định nghĩa các tham số ban đầu để khởi chạy quy trình làm việc', 'end': 'Định nghĩa kết thúc và loại kết quả của quy trình làm việc', 'answer': 'Định nghĩa nội dung trả lời của cuộc trò chuyện', 'llm': 'Gọi các mô hình ngôn ngữ lớn để trả lời câu hỏi hoặc xử lý ngôn ngữ tự nhiên', 'knowledge-retrieval': 'Cho phép truy vấn nội dung văn bản liên quan đến câu hỏi của người dùng từ cơ sở kiến thức', 'question-classifier': 'Định nghĩa các điều kiện phân loại câu hỏi của người dùng, LLM có thể định nghĩa cách cuộc trò chuyện tiến triển dựa trên mô tả phân loại', 'if-else': 'Cho phép phân chia quy trình làm việc thành hai nhánh dựa trên điều kiện if/else', 'code': 'Thực thi một đoạn mã Python hoặc NodeJS để thực hiện logic tùy chỉnh', 'template-transform': 'Chuyển đổi dữ liệu thành chuỗi bằng cú pháp mẫu Jinja', 'http-request': 'Cho phép gửi các yêu cầu máy chủ qua giao thức HTTP', 'variable-assigner': 'Tổng hợp các biến từ nhiều nhánh thành một biến duy nhất để cấu hình đồng nhất các nút cuối.', 'variable-aggregator': 'Tổng hợp các biến từ nhiều nhánh thành một biến duy nhất để cấu hình đồng nhất các nút cuối.', 'iteration': 'Thực hiện nhiều bước trên một đối tượng danh sách cho đến khi tất cả các kết quả được xuất ra.', 'parameter-extractor': 'Sử dụng LLM để trích xuất các tham số có cấu trúc từ ngôn ngữ tự nhiên để gọi công cụ hoặc yêu cầu HTTP.', }, operator: { zoomIn: 'Phóng to', zoomOut: 'Thu nhỏ', zoomTo50: 'Phóng to 50%', zoomTo100: 'Phóng to 100%', zoomToFit: 'Phóng to vừa màn hình', }, panel: { userInputField: 'Trường đầu vào của người dùng', changeBlock: 'Thay đổi khối', helpLink: 'Liên kết trợ giúp', about: 'Về', createdBy: 'Tạo bởi ', nextStep: 'Bước tiếp theo', addNextStep: 'Thêm khối tiếp theo trong quy trình làm việc này', selectNextStep: 'Chọn khối tiếp theo', runThisStep: 'Chạy bước này', checklist: 'Danh sách kiểm tra', checklistTip: 'Đảm bảo rằng tất cả các vấn đề đã được giải quyết trước khi xuất bản', checklistResolved: 'Tất cả các vấn đề đã được giải quyết', organizeBlocks: 'Tổ chức các khối', change: 'Thay đổi', }, nodes: { common: { outputVars: 'Biến đầu ra', insertVarTip: 'Chèn biến', memory: { memory: 'Bộ nhớ', memoryTip: 'Cài đặt bộ nhớ cuộc trò chuyện', windowSize: 'Kích thước cửa sổ', conversationRoleName: 'Tên vai trò cuộc trò chuyện', user: 'Tiền tố người dùng', assistant: 'Tiền tố trợ lý', }, memories: { title: 'Bộ nhớ', tip: 'Bộ nhớ cuộc trò chuyện', builtIn: 'Tích hợp sẵn', }, }, start: { required: 'bắt buộc', inputField: 'Trường đầu vào', builtInVar: 'Biến tích hợp sẵn', outputVars: { query: 'Đầu vào của người dùng', memories: { des: 'Lịch sử cuộc trò chuyện', type: 'loại tin nhắn', content: 'nội dung tin nhắn', }, files: 'Danh sách tệp', }, noVarTip: 'Đặt các đầu vào có thể sử dụng trong Quy trình làm việc', }, end: { outputs: 'Đầu ra', output: { type: 'loại đầu ra', variable: 'biến đầu ra', }, type: { 'none': 'Không có', 'plain-text': 'Văn bản thuần', 'structured': 'Cấu trúc', }, }, answer: { answer: 'Trả lời', outputVars: 'Biến đầu ra', }, llm: { model: 'mô hình', variables: 'biến', context: 'ngữ cảnh', contextTooltip: 'Bạn có thể nhập Kiến thức làm ngữ cảnh', notSetContextInPromptTip: 'Để kích hoạt tính năng ngữ cảnh, vui lòng điền biến ngữ cảnh vào PROMPT.', prompt: 'prompt', roleDescription: { system: 'Cung cấp hướng dẫn cấp cao cho cuộc trò chuyện', user: 'Cung cấp hướng dẫn, câu hỏi hoặc bất kỳ đầu vào văn bản nào cho mô hình', assistant: 'Các phản hồi của mô hình dựa trên tin nhắn của người dùng', }, addMessage: 'Thêm tin nhắn', vision: 'tầm nhìn', files: 'Tệp', resolution: { name: 'Độ phân giải', high: 'Cao', low: 'Thấp', }, outputVars: { output: 'Nội dung được tạo', usage: 'Thông tin sử dụng mô hình', }, singleRun: { variable: 'Biến', }, sysQueryInUser: 'sys.query trong tin nhắn của người dùng là bắt buộc', }, knowledgeRetrieval: { queryVariable: 'Biến truy vấn', knowledge: 'Kiến thức', outputVars: { output: 'Dữ liệu phân đoạn được truy xuất', content: 'Nội dung phân đoạn', title: 'Tiêu đề phân đoạn', icon: 'Biểu tượng phân đoạn', url: 'URL phân đoạn', metadata: 'Siêu dữ liệu khác', }, }, http: { inputVars: 'Biến đầu vào', api: 'API', apiPlaceholder: 'Nhập URL, gõ ‘/’ để chèn biến', notStartWithHttp: 'API phải bắt đầu bằng http:// hoặc https://', key: 'Khóa', value: 'Giá trị', bulkEdit: 'Chỉnh sửa hàng loạt', keyValueEdit: 'Chỉnh sửa khóa-giá trị', headers: 'Tiêu đề', params: 'Tham số', body: 'Nội dung', outputVars: { body: 'Nội dung phản hồi', statusCode: 'Mã trạng thái phản hồi', headers: 'Danh sách tiêu đề phản hồi JSON', files: 'Danh sách tệp', }, authorization: { 'authorization': 'Ủy quyền', 'authorizationType': 'Loại ủy quyền', 'no-auth': 'Không có', 'api-key': 'Khóa API', 'auth-type': 'Loại xác thực', 'basic': 'Cơ bản', 'bearer': 'Bearer', 'custom': 'Tùy chỉnh', 'api-key-title': 'Khóa API', 'header': 'Tiêu đề', }, insertVarPlaceholder: 'gõ \'/\' để chèn biến', timeout: { title: 'Thời gian chờ', connectLabel: 'Thời gian chờ kết nối', connectPlaceholder: 'Nhập thời gian chờ kết nối tính bằng giây', readLabel: 'Thời gian chờ đọc', readPlaceholder: 'Nhập thời gian chờ đọc tính bằng giây', writeLabel: 'Thời gian chờ ghi', writePlaceholder: 'Nhập thời gian chờ ghi tính bằng giây', }, }, code: { inputVars: 'Biến đầu vào', outputVars: 'Biến đầu ra', advancedDependencies: 'Phụ thuộc nâng cao', advancedDependenciesTip: 'Thêm một số phụ thuộc được tải trước mà tốn nhiều thời gian hoặc không phải là mặc định tại đây', searchDependencies: 'Tìm kiếm phụ thuộc', }, templateTransform: { inputVars: 'Biến đầu vào', code: 'Mã', codeSupportTip: 'Chỉ hỗ trợ Jinja2', outputVars: { output: 'Nội dung chuyển đổi', }, }, ifElse: { if: 'Nếu', else: 'Ngược lại', elseDescription: 'Sử dụng để xác định logic sẽ thực hiện khi điều kiện if không được thỏa mãn.', and: 'và', or: 'hoặc', operator: 'Toán tử', notSetVariable: 'Vui lòng đặt biến trước', comparisonOperator: { 'contains': 'chứa', 'not contains': 'không chứa', 'start with': 'bắt đầu bằng', 'end with': 'kết thúc bằng', 'is': 'là', 'is not': 'không là', 'empty': 'trống', 'not empty': 'không trống', 'null': 'là null', 'not null': 'không là null', }, enterValue: 'Nhập giá trị', addCondition: 'Thêm điều kiện', conditionNotSetup: 'Điều kiện chưa được thiết lập', }, variableAssigner: { title: 'Gán biến', outputType: 'Loại đầu ra', varNotSet: 'Biến chưa được đặt', noVarTip: 'Thêm các biến cần gán', type: { string: 'Chuỗi', number: 'Số', object: 'Đối tượng', array: 'Mảng', }, aggregationGroup: 'Nhóm tổng hợp', aggregationGroupTip: 'Bật tính năng này cho phép trình tổng hợp biến tổng hợp nhiều bộ biến.', addGroup: 'Thêm nhóm', outputVars: { varDescribe: 'Đầu ra {{groupName}}', }, setAssignVariable: 'Đặt biến gán', }, tool: { toAuthorize: 'Ủy quyền', inputVars: 'Biến đầu vào', outputVars: { text: 'nội dung do công cụ tạo ra', files: { title: 'tệp do công cụ tạo ra', type: 'Loại hỗ trợ. Hiện tại chỉ hỗ trợ hình ảnh', transfer_method: 'Phương pháp truyền. Giá trị là remote_url hoặc local_file', url: 'URL hình ảnh', upload_file_id: 'ID tệp đã tải lên', }, }, }, questionClassifiers: { model: 'mô hình', inputVars: 'Biến đầu vào', outputVars: { className: 'Tên lớp', }, class: 'Lớp', classNamePlaceholder: 'Viết tên lớp của bạn', advancedSetting: 'Cài đặt nâng cao', topicName: 'Tên chủ đề', topicPlaceholder: 'Viết tên chủ đề của bạn', addClass: 'Thêm lớp', instruction: 'Hướng dẫn', instructionTip: 'Nhập hướng dẫn bổ sung để giúp trình phân loại câu hỏi hiểu rõ hơn về cách phân loại câu hỏi.', instructionPlaceholder: 'Viết hướng dẫn của bạn', }, parameterExtractor: { inputVar: 'Biến đầu vào', extractParameters: 'Trích xuất tham số', importFromTool: 'Nhập từ công cụ', addExtractParameter: 'Thêm tham số trích xuất', addExtractParameterContent: { name: 'Tên', namePlaceholder: 'Tên tham số trích xuất', type: 'Loại', typePlaceholder: 'Loại tham số trích xuất', description: 'Mô tả', descriptionPlaceholder: 'Mô tả tham số trích xuất', required: 'Bắt buộc', requiredContent: 'Bắt buộc chỉ được sử dụng làm tài liệu tham khảo cho suy luận mô hình và không phải để xác thực bắt buộc của đầu ra tham số.', }, extractParametersNotSet: 'Tham số trích xuất chưa được thiết lập', instruction: 'Hướng dẫn', instructionTip: 'Nhập hướng dẫn bổ sung để giúp trình trích xuất tham số hiểu rõ hơn về cách trích xuất tham số.', advancedSetting: 'Cài đặt nâng cao', reasoningMode: 'Chế độ suy luận', reasoningModeTip: 'Bạn có thể chọn chế độ suy luận phù hợp dựa trên khả năng của mô hình để phản hồi các hướng dẫn về việc gọi hàm hoặc prompt.', isSuccess: 'Thành công. Khi thành công giá trị là 1, khi thất bại giá trị là 0.', errorReason: 'Lý do lỗi', }, iteration: { deleteTitle: 'Xóa nút lặp?', deleteDesc: 'Xóa nút lặp sẽ xóa tất cả các nút con', input: 'Đầu vào', output: 'Biến đầu ra', iteration_one: '{{count}} Lặp', iteration_other: '{{count}} Lặp', currentIteration: 'Lặp hiện tại', }, }, tracing: { stopBy: 'Dừng bởi {{user}}', }, } export default translation