2025-11-15 17:24:47 +08:00
export default {
2025-11-22 11:59:34 +08:00
// Login page related prompt text
'login.requiredUsername' : 'Tên đăng nhập không được để trống' ,
'login.requiredPassword' : 'Mật khẩu không được để trống' ,
'login.requiredCaptcha' : 'Mã xác minh không được để trống' ,
'login.requiredMobile' : 'Vui lòng nhập số điện thoại di động hợp lệ' ,
'login.loginSuccess' : 'Đăng nhập thành công!' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// HeaderBar component text
'header.smartManagement' : 'Tác nhân AI' ,
'header.modelConfig' : 'Mô hình' ,
'header.knowledgeBase' : 'Kiến thức' ,
'header.voiceCloneManagement' : 'NBAS' ,
'header.voiceResourceManagement' : 'Tài nguyên giọng nói' ,
'header.userManagement' : 'Người dùng' ,
'header.otaManagement' : 'Quản lý OTA' ,
'header.paramDictionary' : 'Khác' ,
'header.paramManagement' : 'Quản lý tham số' ,
'header.dictManagement' : 'Quản lý từ điển' ,
'header.agentTemplate' : 'Mẫu vai trò mặc định' ,
'header.searchHistory' : 'Lịch sử tìm kiếm' ,
'header.clearHistory' : 'Xóa lịch sử' ,
'header.providerManagement' : 'Quản lý nhà cung cấp' ,
'header.serverSideManagement' : 'Quản lý máy chủ' ,
2025-12-05 14:35:53 +08:00
'header.featureManagement' : 'Cấu hình chức năng hệ thống' ,
2025-11-22 11:59:34 +08:00
'header.changePassword' : 'Đổi mật khẩu' ,
'header.logout' : 'Đăng xuất' ,
2026-01-04 18:04:26 +08:00
'header.searchPlaceholder' : 'Tìm tên hoặc MAC' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// McpToolCallDialog component text
'mcpToolCall.title' : 'Gọi công cụ' ,
'mcpToolCall.execute' : 'Thực thi' ,
'mcpToolCall.chooseFunction' : '1、Chọn chức năng' ,
'mcpToolCall.searchFunction' : 'Tìm kiếm chức năng' ,
'mcpToolCall.noResults' : 'Không tìm thấy chức năng phù hợp' ,
'mcpToolCall.settings' : '2、Cài đặt tham số' ,
'mcpToolCall.inputPlaceholder' : 'Vui lòng nhập {label}' ,
'mcpToolCall.valueRange' : 'Phạm vi giá trị: {min} - {max}' ,
'mcpToolCall.selectPlaceholder' : 'Vui lòng chọn {label}' ,
'mcpToolCall.lightTheme' : 'Chủ đề sáng' ,
'mcpToolCall.darkTheme' : 'Chủ đề tối' ,
'mcpToolCall.pleaseSelect' : 'Vui lòng chọn một chức năng' ,
'mcpToolCall.cancel' : 'Hủy bỏ' ,
'mcpToolCall.requiredField' : 'Vui lòng nhập {field}' ,
'mcpToolCall.minValue' : 'Giá trị tối thiểu là {value}' ,
'mcpToolCall.maxValue' : 'Giá trị tối đa là {value}' ,
'mcpToolCall.selectTool' : 'Vui lòng chọn một công cụ để thực thi' ,
'mcpToolCall.executionResult' : '3、Kết quả thực thi' ,
'mcpToolCall.copyResult' : 'Sao chép kết quả' ,
'mcpToolCall.noResultYet' : 'Chưa có kết quả' ,
'mcpToolCall.loadingToolList' : 'Đang tải danh sách công cụ...' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Tool names
'mcpToolCall.toolName.getDeviceStatus' : 'Xem trạng thái thiết bị' ,
'mcpToolCall.toolName.setVolume' : 'Đặt âm lượng' ,
'mcpToolCall.toolName.setBrightness' : 'Đặt độ sáng' ,
'mcpToolCall.toolName.setTheme' : 'Đặt chủ đề' ,
'mcpToolCall.toolName.takePhoto' : 'Chụp ảnh & Nhận dạng' ,
'mcpToolCall.toolName.getSystemInfo' : 'Thông tin hệ thống' ,
'mcpToolCall.toolName.reboot' : 'Khởi động lại thiết bị' ,
'mcpToolCall.toolName.upgradeFirmware' : 'Nâng cấp firmware' ,
'mcpToolCall.toolName.getScreenInfo' : 'Thông tin màn hình' ,
'mcpToolCall.toolName.snapshot' : 'Ảnh chụp màn hình' ,
'mcpToolCall.toolName.previewImage' : 'Xem trước hình ảnh' ,
'mcpToolCall.toolName.setDownloadUrl' : 'Đặt URL tải xuống' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Tool categories
'mcpToolCall.category.audio' : 'Âm thanh' ,
'mcpToolCall.category.display' : 'Hiển thị' ,
'mcpToolCall.category.camera' : 'Máy ảnh' ,
'mcpToolCall.category.system' : 'Hệ thống' ,
'mcpToolCall.category.assets' : 'Tài sản' ,
'mcpToolCall.category.deviceInfo' : 'Thông tin thiết bị' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Table categories and properties
'mcpToolCall.table.audioSpeaker' : 'Loa âm thanh' ,
'mcpToolCall.table.screen' : 'Màn hình' ,
'mcpToolCall.table.network' : 'Mạng' ,
'mcpToolCall.table.audioControl' : 'Điều khiển âm thanh' ,
'mcpToolCall.table.screenControl' : 'Điều khiển màn hình' ,
'mcpToolCall.table.systemControl' : 'Điều khiển hệ thống' ,
'mcpToolCall.table.screenInfo' : 'Thông tin màn hình' ,
'mcpToolCall.table.hardwareInfo' : 'Thông tin phần cứng' ,
'mcpToolCall.table.memoryInfo' : 'Thông tin bộ nhớ' ,
'mcpToolCall.table.applicationInfo' : 'Thông tin ứng dụng' ,
'mcpToolCall.table.networkInfo' : 'Thông tin mạng' ,
'mcpToolCall.table.displayInfo' : 'Thông tin hiển thị' ,
'mcpToolCall.table.deviceInfo' : 'Thông tin thiết bị' ,
'mcpToolCall.table.systemInfo' : 'Thông tin hệ thống' ,
// Table column headers
'mcpToolCall.table.component' : 'Thành phần' ,
'mcpToolCall.table.property' : 'Thuộc tính' ,
'mcpToolCall.table.value' : 'Giá trị' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
'mcpToolCall.prop.volume' : 'Âm lượng' ,
'mcpToolCall.prop.brightness' : 'Độ sáng' ,
'mcpToolCall.prop.theme' : 'Chủ đề' ,
'mcpToolCall.prop.type' : 'Loại' ,
'mcpToolCall.prop.ssid' : 'SSID' ,
'mcpToolCall.prop.signalStrength' : 'Cường độ tín hiệu' ,
'mcpToolCall.prop.operationResult' : 'Kết quả thao tác' ,
'mcpToolCall.prop.width' : 'Chiều rộng' ,
'mcpToolCall.prop.height' : 'Chiều cao' ,
'mcpToolCall.prop.screenType' : 'Loại' ,
'mcpToolCall.prop.chipModel' : 'Model chip' ,
'mcpToolCall.prop.cpuCores' : 'Số lõi CPU' ,
'mcpToolCall.prop.chipVersion' : 'Phiên bản chip' ,
'mcpToolCall.prop.flashSize' : 'Kích thước Flash' ,
'mcpToolCall.prop.minFreeHeap' : 'Heap trống tối thiểu' ,
'mcpToolCall.prop.applicationName' : 'Tên ứng dụng' ,
'mcpToolCall.prop.applicationVersion' : 'Phiên bản ứng dụng' ,
'mcpToolCall.prop.compileTime' : 'Thời gian biên dịch' ,
'mcpToolCall.prop.idfVersion' : 'Phiên bản IDF' ,
'mcpToolCall.prop.macAddress' : 'Địa chỉ MAC' ,
'mcpToolCall.prop.ipAddress' : 'Địa chỉ IP' ,
'mcpToolCall.prop.wifiName' : 'Tên WiFi' ,
'mcpToolCall.prop.wifiChannel' : 'Kênh WiFi' ,
'mcpToolCall.prop.screenSize' : 'Kích thước màn hình' ,
'mcpToolCall.prop.deviceUuid' : 'UUID thiết bị' ,
'mcpToolCall.prop.systemLanguage' : 'Ngôn ngữ hệ thống' ,
'mcpToolCall.prop.currentOtaPartition' : 'Phân vùng OTA hiện tại' ,
'mcpToolCall.prop.getResult' : 'Lấy kết quả' ,
'mcpToolCall.prop.url' : 'URL' ,
'mcpToolCall.prop.quality' : 'Chất lượng' ,
'mcpToolCall.prop.question' : 'Câu hỏi' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Tool help texts
'mcpToolCall.help.getDeviceStatus' : 'Xem trạng thái hoạt động hiện tại của thiết bị, bao gồm âm lượng, màn hình, pin và các thông tin khác.' ,
'mcpToolCall.help.setVolume' : 'Điều chỉnh âm lượng của thiết bị, vui lòng nhập giá trị từ 0-100.' ,
'mcpToolCall.help.setBrightness' : 'Điều chỉnh độ sáng màn hình thiết bị, vui lòng nhập giá trị từ 0-100.' ,
'mcpToolCall.help.setTheme' : 'Chuyển đổi chủ đề hiển thị của màn hình thiết bị, bạn có thể chọn chế độ sáng hoặc tối.' ,
'mcpToolCall.help.takePhoto' : 'Chụp ảnh bằng camera thiết bị và thực hiện phân tích nhận dạng, vui lòng nhập câu hỏi bạn muốn hỏi.' ,
'mcpToolCall.help.getSystemInfo' : 'Lấy thông tin hệ thống của thiết bị, bao gồm thông số kỹ thuật phần cứng, phiên bản phần mềm, v.v.' ,
'mcpToolCall.help.reboot' : 'Khởi động lại thiết bị, thiết bị sẽ khởi động lại sau khi thực thi.' ,
'mcpToolCall.help.upgradeFirmware' : 'Tải xuống và nâng cấp firmware thiết bị từ URL được chỉ định, thiết bị sẽ tự động khởi động lại sau khi nâng cấp.' ,
'mcpToolCall.help.getScreenInfo' : 'Lấy thông tin chi tiết về màn hình, như độ phân giải, kích thước và các thông số khác.' ,
'mcpToolCall.help.snapshot' : 'Chụp ảnh màn hình hiện tại và tải lên URL được chỉ định.' ,
'mcpToolCall.help.previewImage' : 'Xem trước hình ảnh từ URL được chỉ định trên màn hình thiết bị.' ,
'mcpToolCall.help.setDownloadUrl' : 'Đặt địa chỉ tải xuống cho các tệp tài nguyên thiết bị.' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Other text
'mcpToolCall.text.strong' : 'Mạnh' ,
'mcpToolCall.text.medium' : 'Trung bình' ,
'mcpToolCall.text.weak' : 'Yếu' ,
'mcpToolCall.text.dark' : 'Tối' ,
'mcpToolCall.text.light' : 'Sáng' ,
'mcpToolCall.text.setSuccess' : 'Cài đặt thành công' ,
'mcpToolCall.text.setFailed' : 'Cài đặt thất bại' ,
'mcpToolCall.text.brightnessSetSuccess' : 'Cài đặt độ sáng thành công' ,
'mcpToolCall.text.brightnessSetFailed' : 'Cài đặt độ sáng thất bại' ,
'mcpToolCall.text.themeSetSuccess' : 'Cài đặt chủ đề thành công' ,
'mcpToolCall.text.themeSetFailed' : 'Cài đặt chủ đề thất bại' ,
'mcpToolCall.text.rebootCommandSent' : 'Đã gửi lệnh khởi động lại' ,
'mcpToolCall.text.rebootFailed' : 'Khởi động lại thất bại' ,
'mcpToolCall.text.monochrome' : 'Màn hình đơn sắc' ,
'mcpToolCall.text.color' : 'Màn hình màu' ,
'mcpToolCall.text.getSuccessParseFailed' : 'Lấy thành công, nhưng phân tích thất bại' ,
'mcpToolCall.text.getFailed' : 'Lấy thất bại' ,
'mcpToolCall.text.getSuccessFormatError' : 'Lấy thành công, nhưng định dạng dữ liệu bất thường' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Dictionary data dialog related
'dictDataDialog.addDictData' : 'Thêm dữ liệu từ điển' ,
'dictDataDialog.dictLabel' : 'Nhãn từ điển' ,
'dictDataDialog.dictLabelPlaceholder' : 'Vui lòng nhập nhãn từ điển' ,
'dictDataDialog.dictValue' : 'Giá trị từ điển' ,
'dictDataDialog.dictValuePlaceholder' : 'Vui lòng nhập giá trị từ điển' ,
'dictDataDialog.sort' : 'Sắp xếp' ,
'dictDataDialog.requiredDictLabel' : 'Vui lòng nhập nhãn từ điển' ,
'dictDataDialog.requiredDictValue' : 'Vui lòng nhập giá trị từ điển' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Dictionary type dialog related
'dictTypeDialog.addDictType' : 'Thêm loại từ điển' ,
'dictTypeDialog.dictName' : 'Tên loại từ điển' ,
'dictTypeDialog.dictNamePlaceholder' : 'Vui lòng nhập tên loại từ điển' ,
'dictTypeDialog.dictType' : 'Mã loại từ điển' ,
'dictTypeDialog.dictTypePlaceholder' : 'Vui lòng nhập mã loại từ điển' ,
'dictTypeDialog.requiredDictName' : 'Vui lòng nhập tên loại từ điển' ,
'dictTypeDialog.requiredDictType' : 'Vui lòng nhập mã loại từ điển' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Audio edit dialog related
'editVoiceDialog.voiceCode' : 'Mã giọng nói' ,
'editVoiceDialog.voiceCodePlaceholder' : 'Vui lòng nhập mã giọng nói' ,
'editVoiceDialog.voiceName' : 'Tên giọng nói' ,
'editVoiceDialog.voiceNamePlaceholder' : 'Vui lòng nhập tên giọng nói' ,
'editVoiceDialog.languageType' : 'Loại ngôn ngữ' ,
'editVoiceDialog.languageTypePlaceholder' : 'Vui lòng nhập loại ngôn ngữ' ,
'editVoiceDialog.sortNumber' : 'Số thứ tự' ,
'editVoiceDialog.remark' : 'Ghi chú' ,
'editVoiceDialog.remarkPlaceholder' : 'Vui lòng nhập nội dung ghi chú' ,
'editVoiceDialog.generatePreview' : 'Tạo xem trước' ,
'editVoiceDialog.defaultVoiceName' : 'Wawa Xiaohe' ,
'editVoiceDialog.defaultLanguageType' : 'Tiếng Trung' ,
'editVoiceDialog.requiredVoiceCode' : 'Vui lòng nhập mã giọng nói' ,
'editVoiceDialog.requiredVoiceName' : 'Vui lòng nhập tên giọng nói' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Firmware dialog related
'firmwareDialog.firmwareName' : 'Tên firmware' ,
'firmwareDialog.firmwareNamePlaceholder' : 'Vui lòng nhập tên firmware (board + phiên bản)' ,
'firmwareDialog.firmwareType' : 'Loại firmware' ,
'firmwareDialog.firmwareTypePlaceholder' : 'Vui lòng chọn loại firmware' ,
'firmwareDialog.version' : 'Phiên bản' ,
'firmwareDialog.versionPlaceholder' : 'Vui lòng nhập phiên bản (định dạng x.x.x)' ,
'firmwareDialog.firmwareFile' : 'Tệp firmware' ,
'firmwareDialog.clickUpload' : 'Nhấp để tải lên' ,
'firmwareDialog.uploadTip' : 'Chỉ hỗ trợ tệp firmware (.bin/.apk), kích thước không vượt quá 100MB' ,
'firmwareDialog.uploadHint' : 'Nhắc nhở: Vui lòng tải lên tệp xiaozhi.bin đã hợp nhất trước, không phải tệp merged-binary.bin đã hợp nhất' ,
'firmwareDialog.remark' : 'Ghi chú' ,
'firmwareDialog.remarkPlaceholder' : 'Vui lòng nhập thông tin ghi chú' ,
'firmwareDialog.requiredFirmwareName' : 'Vui lòng nhập tên firmware (board + phiên bản)' ,
'firmwareDialog.requiredFirmwareType' : 'Vui lòng chọn loại firmware' ,
'firmwareDialog.requiredVersion' : 'Vui lòng nhập phiên bản' ,
'firmwareDialog.versionFormatError' : 'Định dạng phiên bản không chính xác, vui lòng nhập định dạng x.x.x' ,
'firmwareDialog.requiredFirmwareFile' : 'Vui lòng tải lên tệp firmware' ,
'firmwareDialog.invalidFileType' : 'Chỉ hỗ trợ tệp firmware định dạng .bin/.apk!' ,
'firmwareDialog.invalidFileSize' : 'Kích thước tệp firmware không được vượt quá 100MB!' ,
'firmwareDialog.uploadSuccess' : 'Tải lên tệp firmware thành công' ,
'firmwareDialog.uploadFailed' : 'Tải lên tệp thất bại' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Voice print dialog related
'voicePrintDialog.addSpeaker' : 'Thêm người nói' ,
'voicePrintDialog.voicePrintVector' : 'Vector dấu giọng nói' ,
'voicePrintDialog.selectVoiceMessage' : 'Vui lòng chọn một tin nhắn thoại' ,
'voicePrintDialog.name' : 'Tên' ,
'voicePrintDialog.enterName' : 'Vui lòng nhập tên' ,
'voicePrintDialog.description' : 'Mô tả' ,
'voicePrintDialog.enterDescription' : 'Vui lòng nhập mô tả' ,
'voicePrintDialog.save' : 'Lưu' ,
'voicePrintDialog.cancel' : 'Hủy bỏ' ,
'voicePrintDialog.requiredDescription' : 'Vui lòng nhập mô tả' ,
'voicePrintDialog.requiredName' : 'Vui lòng nhập tên' ,
'voicePrintDialog.requiredAudioVector' : 'Vui lòng chọn vector âm thanh' ,
2025-11-15 17:24:47 +08:00
2025-12-10 10:26:27 +08:00
// Context provider dialog related
'contextProviderDialog.title' : 'Chỉnh sửa nguồn' ,
'contextProviderDialog.noContextApi' : 'Không có API ngữ cảnh' ,
'contextProviderDialog.add' : 'Thêm' ,
'contextProviderDialog.apiUrl' : 'Địa chỉ API' ,
'contextProviderDialog.apiUrlPlaceholder' : 'http://api.example.com/data' ,
'contextProviderDialog.requestHeaders' : 'Header yêu cầu' ,
'contextProviderDialog.headerKeyPlaceholder' : 'Khóa' ,
'contextProviderDialog.headerValuePlaceholder' : 'Giá trị' ,
'contextProviderDialog.noHeaders' : 'Không có Headers' ,
'contextProviderDialog.addHeader' : 'Thêm Header' ,
'contextProviderDialog.cancel' : 'Hủy bỏ' ,
'contextProviderDialog.confirm' : 'Xác nhận' ,
// Role config page - context provider related
'roleConfig.contextProvider' : 'Bối cảnh' ,
'roleConfig.contextProviderSuccess' : 'Đã thêm thành công {count} nguồn.' ,
'roleConfig.contextProviderDocLink' : 'Cách triển khai nguồn ngữ cảnh' ,
'roleConfig.editContextProvider' : 'Chỉnh sửa nguồn' ,
2025-11-22 11:59:34 +08:00
// Voice print page related
'voicePrint.pageTitle' : 'Nhận dạng dấu giọng nói' ,
'voicePrint.name' : 'Tên' ,
'voicePrint.description' : 'Mô tả' ,
'voicePrint.createTime' : 'Thời gian tạo' ,
'voicePrint.action' : 'Hành động' ,
'voicePrint.edit' : 'Chỉnh sửa' ,
'voicePrint.delete' : 'Xóa' ,
'voicePrint.add' : 'Thêm' ,
'voicePrint.addSpeaker' : 'Thêm người nói' ,
'voicePrint.editSpeaker' : 'Chỉnh sửa người nói' ,
'voicePrint.fetchFailed' : 'Không thể tải danh sách dấu giọng nói' ,
'voicePrint.updateSuccess' : 'Cập nhật thành công' ,
'voicePrint.addSuccess' : 'Thêm thành công' ,
'voicePrint.confirmDelete' : 'Bạn có chắc chắn muốn xóa dấu giọng nói này không?' ,
'voicePrint.warning' : 'Cảnh báo' ,
'voicePrint.confirm' : 'Xác nhận' ,
'voicePrint.cancel' : 'Hủy bỏ' ,
'voicePrint.deleteSuccess' : 'Đã xóa dấu giọng nói thành công' ,
'voicePrint.deleteFailed' : 'Xóa thất bại, vui lòng thử lại' ,
'voicePrint.cancelDelete' : 'Đã hủy thao tác xóa' ,
'voicePrint.closeOperation' : 'Đã đóng thao tác' ,
'voicePrint.loading' : 'Đang tải...' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Manual add device dialog related
'manualAddDeviceDialog.title' : 'Thêm thiết bị thủ công' ,
'manualAddDeviceDialog.deviceType' : 'Loại thiết bị' ,
'manualAddDeviceDialog.deviceTypePlaceholder' : 'Vui lòng chọn loại thiết bị' ,
'manualAddDeviceDialog.firmwareVersion' : 'Phiên bản firmware' ,
'manualAddDeviceDialog.firmwareVersionPlaceholder' : 'Vui lòng nhập phiên bản firmware' ,
'manualAddDeviceDialog.macAddress' : 'Địa chỉ Mac' ,
'manualAddDeviceDialog.macAddressPlaceholder' : 'Vui lòng nhập địa chỉ Mac' ,
'manualAddDeviceDialog.confirm' : 'Xác nhận' ,
'manualAddDeviceDialog.cancel' : 'Hủy bỏ' ,
'manualAddDeviceDialog.requiredMacAddress' : 'Vui lòng nhập địa chỉ Mac' ,
'manualAddDeviceDialog.invalidMacAddress' : 'Vui lòng nhập đúng định dạng địa chỉ Mac, ví dụ: 00:1A:2B:3C:4D:5E' ,
'manualAddDeviceDialog.requiredDeviceType' : 'Vui lòng chọn loại thiết bị' ,
'manualAddDeviceDialog.requiredFirmwareVersion' : 'Vui lòng nhập phiên bản firmware' ,
'manualAddDeviceDialog.getFirmwareTypeFailed' : 'Không thể lấy loại firmware' ,
'manualAddDeviceDialog.addSuccess' : 'Đã thêm thiết bị thành công' ,
'manualAddDeviceDialog.addFailed' : 'Thêm thất bại' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// AddModelDialog component related
'addModelDialog.requiredSupplier' : 'Vui lòng chọn nhà cung cấp' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Register page related
'register.title' : 'Tạo tài khoản' ,
'register.welcome' : 'Chào mừng đến với XiaoZhi AI' ,
'register.usernamePlaceholder' : 'Vui lòng nhập tên đăng nhập' ,
'register.mobilePlaceholder' : 'Vui lòng nhập số điện thoại di động' ,
'register.captchaPlaceholder' : 'Vui lòng nhập mã xác minh' ,
'register.mobileCaptchaPlaceholder' : 'Vui lòng nhập mã xác minh SMS' ,
'register.passwordPlaceholder' : 'Vui lòng đặt mật khẩu' ,
'register.confirmPasswordPlaceholder' : 'Vui lòng xác nhận mật khẩu' ,
'register.goToLogin' : 'Đã có tài khoản? Đăng nhập' ,
'register.registerButton' : 'Đăng ký' ,
'register.agreeTo' : 'Bằng cách đăng ký, bạn đồng ý với' ,
'register.userAgreement' : 'Thỏa thuận người dùng' ,
'register.privacyPolicy' : 'Chính sách bảo mật' ,
'register.notAllowRegister' : 'Không cho phép đăng ký người dùng' ,
'register.captchaLoadFailed' : 'Không thể tải mã xác minh' ,
'register.inputCaptcha' : 'Vui lòng nhập mã xác minh' ,
'register.inputCorrectMobile' : 'Vui lòng nhập số điện thoại di động chính xác' ,
'register.captchaSendSuccess' : 'Đã gửi mã xác minh thành công' ,
'register.captchaSendFailed' : 'Gửi mã xác minh thất bại' ,
'register.passwordsNotMatch' : 'Mật khẩu không khớp' ,
'register.registerSuccess' : 'Đăng ký thành công!' ,
'register.registerFailed' : 'Đăng ký thất bại' ,
'register.requiredUsername' : 'Tên đăng nhập không được để trống' ,
'register.requiredPassword' : 'Mật khẩu không được để trống' ,
'register.requiredCaptcha' : 'Mã xác minh không được để trống' ,
'register.requiredMobileCaptcha' : 'Vui lòng nhập mã xác minh SMS' ,
'register.invalidCaptcha' : 'Mã xác minh không hợp lệ' ,
'register.passwordLength' : 'Độ dài mật khẩu phải từ 6-20 ký tự' ,
'register.usernameFormat' : 'Định dạng tên đăng nhập không hợp lệ' ,
'register.confirmPasswordRequired' : 'Xác nhận mật khẩu không được để trống' ,
'register.sendCaptcha' : 'Lấy mã xác minh' ,
'register.secondsLater' : 'giây sau' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Parameter dialog related
'paramDialog.paramCode' : 'Mã tham số' ,
'paramDialog.paramCodePlaceholder' : 'Vui lòng nhập mã tham số' ,
'paramDialog.paramValue' : 'Giá trị tham số' ,
'paramDialog.paramValuePlaceholder' : 'Vui lòng nhập giá trị tham số' ,
'paramDialog.valueType' : 'Loại giá trị' ,
'paramDialog.valueTypePlaceholder' : 'Vui lòng chọn loại giá trị' ,
'paramDialog.remark' : 'Ghi chú' ,
'paramDialog.remarkPlaceholder' : 'Vui lòng nhập ghi chú' ,
'paramDialog.save' : 'Lưu' ,
'paramDialog.cancel' : 'Hủy bỏ' ,
'paramDialog.requiredParamCode' : 'Vui lòng nhập mã tham số' ,
'paramDialog.requiredParamValue' : 'Vui lòng nhập giá trị tham số' ,
'paramDialog.requiredValueType' : 'Vui lòng chọn loại giá trị' ,
'paramDialog.stringType' : 'Chuỗi' ,
'paramDialog.numberType' : 'Số' ,
'paramDialog.booleanType' : 'Boolean' ,
'paramDialog.arrayType' : 'Mảng' ,
'paramDialog.jsonType' : 'Đối tượng JSON' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Login page text
2025-11-24 10:03:06 +08:00
'login.title' : 'DN' ,
2025-11-22 11:59:34 +08:00
'login.welcome' : 'CHÀO MỪNG ĐẾN VỚI ĐĂNG NHẬP' ,
'login.username' : 'Tên đăng nhập' ,
'login.usernamePlaceholder' : 'Vui lòng nhập tên đăng nhập' ,
'login.mobilePlaceholder' : 'Vui lòng nhập số điện thoại di động' ,
'login.password' : 'Mật khẩu' ,
'login.passwordPlaceholder' : 'Vui lòng nhập mật khẩu' ,
'login.captchaPlaceholder' : 'Vui lòng nhập mã xác minh' ,
'login.loginButton' : 'Đăng nhập' ,
'login.login' : 'Đăng nhập' ,
'login.register' : 'Đăng ký' ,
'login.forgotPassword' : 'Quên mật khẩu' ,
'login.forgetPassword' : 'Quên mật khẩu?' ,
'login.mobileLogin' : 'Đăng nhập bằng điện thoại' ,
'login.usernameLogin' : 'Đăng nhập bằng tên đăng nhập' ,
'login.agreeTo' : 'Đăng nhập có nghĩa là chấp nhận' ,
'login.userAgreement' : 'Thỏa thuận người dùng' ,
'login.and' : 'và' ,
'login.privacyPolicy' : 'Chính sách bảo mật' ,
'login.registerAccount' : 'Đăng ký tài khoản' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Retrieve password page text
'retrievePassword.title' : 'Đặt lại mật khẩu' ,
'retrievePassword.welcome' : 'KHÔI PHỤC MẬT KHẨU' ,
'retrievePassword.subtitle' : 'Khôi phục mật khẩu' ,
'retrievePassword.mobile' : 'Điện thoại' ,
'retrievePassword.mobilePlaceholder' : 'Vui lòng nhập số điện thoại di động' ,
'retrievePassword.captcha' : 'Mã xác minh' ,
'retrievePassword.captchaPlaceholder' : 'Vui lòng nhập mã xác minh' ,
'retrievePassword.mobileCaptcha' : 'Mã xác minh điện thoại' ,
'retrievePassword.mobileCaptchaPlaceholder' : 'Vui lòng nhập mã xác minh điện thoại' ,
'retrievePassword.newPassword' : 'Mật khẩu mới' ,
'retrievePassword.newPasswordPlaceholder' : 'Vui lòng nhập mật khẩu mới' ,
'retrievePassword.confirmNewPassword' : 'Xác nhận mật khẩu mới' ,
'retrievePassword.confirmNewPasswordPlaceholder' : 'Vui lòng xác nhận mật khẩu mới' ,
'retrievePassword.getMobileCaptcha' : 'Lấy mã xác minh' ,
'retrievePassword.resetButton' : 'Đặt lại mật khẩu' ,
'retrievePassword.updateButton' : 'Cập nhật ngay' ,
'retrievePassword.goToLogin' : 'Quay lại đăng nhập' ,
'retrievePassword.inputCorrectMobile' : 'Vui lòng nhập số điện thoại di động chính xác' ,
'retrievePassword.captchaSendSuccess' : 'Đã gửi mã xác minh thành công' ,
'retrievePassword.passwordsNotMatch' : 'Hai mật khẩu nhập vào không khớp' ,
'retrievePassword.passwordLength' : 'Độ dài mật khẩu phải từ 6-20 ký tự' ,
'retrievePassword.mobileRequired' : 'Số điện thoại di động không được để trống' ,
'retrievePassword.captchaRequired' : 'Mã xác minh không được để trống' ,
'retrievePassword.mobileCaptchaRequired' : 'Mã xác minh điện thoại không được để trống' ,
'retrievePassword.newPasswordRequired' : 'Mật khẩu mới không được để trống' ,
'retrievePassword.confirmNewPasswordRequired' : 'Xác nhận mật khẩu mới không được để trống' ,
'retrievePassword.passwordUpdateSuccess' : 'Đã cập nhật mật khẩu thành công' ,
'retrievePassword.agreeTo' : 'Đặt lại có nghĩa là đồng ý' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Change password page text
'changePassword.title' : 'Đổi mật khẩu' ,
'changePassword.oldPasswordLabel' : 'Mật khẩu cũ:' ,
'changePassword.oldPasswordPlaceholder' : 'Vui lòng nhập mật khẩu cũ' ,
'changePassword.newPasswordLabel' : 'Mật khẩu mới:' ,
'changePassword.newPasswordPlaceholder' : 'Vui lòng nhập mật khẩu mới' ,
'changePassword.confirmPasswordLabel' : 'Xác nhận mật khẩu mới:' ,
'changePassword.confirmPasswordPlaceholder' : 'Vui lòng nhập lại mật khẩu mới' ,
'changePassword.confirmButton' : 'Xác nhận' ,
'changePassword.cancelButton' : 'Hủy bỏ' ,
'changePassword.allFieldsRequired' : 'Vui lòng điền vào tất cả các trường' ,
'changePassword.passwordsNotMatch' : 'Hai mật khẩu mới nhập vào không khớp' ,
'changePassword.newPasswordSameAsOld' : 'Mật khẩu mới không được giống mật khẩu cũ' ,
'changePassword.passwordChangedSuccessfully' : 'Đã đổi mật khẩu thành công, vui lòng đăng nhập lại' ,
'changePassword.changeFailed' : 'Đổi mật khẩu thất bại' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Device management page text
'device.management' : 'Quản lý thiết bị' ,
'device.add' : 'Thêm thiết bị' ,
'device.edit' : 'Chỉnh sửa thiết bị' ,
'device.delete' : 'Xóa thiết bị' ,
'device.name' : 'Tên thiết bị' ,
'device.type' : 'Loại thiết bị' ,
'device.status' : 'Trạng thái thiết bị' ,
'device.dialogTitle' : 'Thêm thiết bị' ,
'device.verificationCode' : 'Mã xác minh:' ,
'device.verificationCodePlaceholder' : 'Vui lòng nhập mã xác minh 6 chữ số được phát từ thiết bị..' ,
'device.confirmButton' : 'Xác nhận' ,
'device.cancelButton' : 'Hủy bỏ' ,
'device.input6DigitCode' : 'Vui lòng nhập mã xác minh 6 chữ số' ,
'device.bindSuccess' : 'Liên kết thiết bị thành công' ,
'device.bindFailed' : 'Liên kết thất bại' ,
'device.searchPlaceholder' : 'Vui lòng nhập model thiết bị hoặc địa chỉ Mac để tìm kiếm' ,
'device.model' : 'Model thiết bị' ,
'device.macAddress' : 'Địa chỉ Mac' ,
'device.firmwareVersion' : 'Phiên bản firmware' ,
'device.bindTime' : 'Thời gian liên kết' ,
'device.lastConversation' : 'Cuộc trò chuyện cuối' ,
'device.remark' : 'Ghi chú' ,
'device.autoUpdate' : 'Tự động cập nhật' ,
'device.operation' : 'Thao tác' ,
'device.search' : 'Tìm kiếm' ,
'device.selectAll' : 'Chọn tất cả/Bỏ chọn tất cả' ,
'deviceManagement.loading' : 'Đang tải...' ,
'device.bindWithCode' : 'Liên kết bằng mã xác minh 6 chữ số' ,
'device.manualAdd' : 'Thêm thủ công' ,
'device.unbind' : 'Hủy liên kết' ,
'device.toolCall' : 'Gọi công cụ' ,
'device.selectAtLeastOne' : 'Vui lòng chọn ít nhất một bản ghi' ,
'device.confirmBatchUnbind' : 'Bạn có chắc chắn muốn hủy liên kết {count} thiết bị đã chọn?' ,
'device.batchUnbindSuccess' : 'Đã hủy liên kết thành công {count} thiết bị' ,
'device.batchUnbindError' : 'Đã xảy ra lỗi khi hủy liên kết hàng loạt' ,
'device.remarkTooLong' : 'Ghi chú không được vượt quá 64 ký tự' ,
'device.remarkSaved' : 'Đã lưu ghi chú thành công' ,
'device.remarkSaveFailed' : 'Lưu ghi chú thất bại' ,
'device.confirmUnbind' : 'Bạn có chắc chắn muốn hủy liên kết thiết bị này?' ,
'device.unbindSuccess' : 'Đã hủy liên kết thiết bị thành công' ,
'device.unbindFailed' : 'Hủy liên kết thiết bị thất bại' ,
'device.getListFailed' : 'Không thể tải danh sách thiết bị' ,
'device.autoUpdateEnabled' : 'Đã bật tự động cập nhật' ,
'device.autoUpdateDisabled' : 'Đã tắt tự động cập nhật' ,
'device.batchUnbindSuccess' : 'Đã hủy liên kết thành công {count} thiết bị' ,
'device.getFirmwareTypeFailed' : 'Không thể lấy loại firmware' ,
'device.deviceStatus' : 'Trạng thái' ,
'device.online' : 'Trực tuyến' ,
'device.offline' : 'Ngoại tuyến' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Message tips
'message.success' : 'Thao tác thành công' ,
'message.error' : 'Thao tác thất bại' ,
'message.warning' : 'Cảnh báo' ,
'message.info' : 'Thông tin' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Cache related
'cache.viewer' : 'Trình xem cache' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Chat history dialog related
'chatHistory.with' : 'Với' ,
'chatHistory.dialogTitle' : "'s Lịch sử trò chuyện" ,
'chatHistory.loading' : 'Đang tải...' ,
'chatHistory.noMoreRecords' : 'Không còn bản ghi nào' ,
'chatHistory.selectSession' : 'Vui lòng chọn một phiên để xem lịch sử trò chuyện' ,
'chatHistory.today' : 'Hôm nay' ,
'chatHistory.yesterday' : 'Hôm qua' ,
'chatHistory.downloadCurrentSession' : 'Tải xuống lịch sử trò chuyện phiên hiện tại' ,
'chatHistory.downloadCurrentWithPreviousSessions' : 'Tải xuống lịch sử trò chuyện phiên hiện tại và 20 phiên trước' ,
'chatHistory.downloadLinkFailed' : 'Không thể lấy liên kết tải xuống' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
'cache.status' : 'Trạng thái cache' ,
'cache.cdnEnabled' : 'Đã bật chế độ CDN' ,
'cache.cdnDisabled' : 'Đã tắt chế độ CDN' ,
'cache.serviceWorkerRegistered' : 'Đã đăng ký Service Worker' ,
'cache.serviceWorkerNotRegistered' : 'Chưa đăng ký Service Worker' ,
'cache.noCacheDetected' : 'Chưa phát hiện cache, vui lòng làm mới trang hoặc chờ cache được thiết lập' ,
'cache.swDevEnvWarning' : 'Trong môi trường phát triển, Service Worker có thể không khởi tạo cache đúng cách' ,
'cache.swCheckMethods' : 'Vui lòng thử các phương pháp sau để kiểm tra xem Service Worker có hoạt động không:' ,
'cache.swCheckMethod1' : 'Kiểm tra trạng thái Service Worker trong tab Application/Application của công cụ nhà phát triển' ,
'cache.swCheckMethod2' : 'Xem nội dung cache trong Application/Cache/Cache Storage của công cụ nhà phát triển' ,
'cache.swCheckMethod3' : 'Sử dụng bản dựng production (npm run build) và truy cập qua máy chủ HTTP để kiểm tra chức năng đầy đủ' ,
'cache.swDevEnvNormal' : 'Trong môi trường phát triển, điều này là bình thường' ,
'cache.swProdOnly' : 'Service Worker thường chỉ hoạt động trong môi trường production' ,
'cache.swTestingTitle' : 'Để kiểm tra chức năng Service Worker:' ,
'cache.swTestingStep1' : 'Chạy npm run build để tạo bản production' ,
'cache.swTestingStep2' : 'Truy cập trang đã build qua máy chủ HTTP' ,
'cache.swNotSupported' : 'Trình duyệt hiện tại không hỗ trợ Service Worker, chức năng cache tài nguyên CDN không khả dụng' ,
'cache.dialogTitle' : 'Trạng thái cache tài nguyên CDN' ,
'cache.loading' : 'Đang tải thông tin cache...' ,
'cache.notSupported' : 'Trình duyệt của bạn không hỗ trợ Cache API hoặc Service Worker chưa được cài đặt' ,
'cache.refreshPage' : 'Làm mới trang' ,
'cache.noCachedResources' : 'Không tìm thấy tài nguyên CDN được cache' ,
'cache.noCachedResourcesDesc' : 'Service Worker có thể chưa hoàn tất khởi tạo hoặc cache chưa được thiết lập. Vui lòng làm mới trang hoặc thử lại sau.' ,
'cache.cdnCacheStatus' : 'Trạng thái cache tài nguyên CDN' ,
'cache.totalCachedResources' : 'Đã tìm thấy tổng cộng {count} tài nguyên được cache' ,
'cache.jsResources' : 'Tài nguyên JavaScript ({count})' ,
'cache.cssResources' : 'Tài nguyên CSS ({count})' ,
'cache.cached' : 'Đã cache' ,
'cache.notCached' : 'Chưa cache' ,
'cache.refreshStatus' : 'Làm mới trạng thái cache' ,
'cache.clearCache' : 'Xóa cache' ,
'cache.refreshingStatus' : 'Đang làm mới trạng thái cache' ,
'cache.confirmClear' : 'Bạn có chắc chắn muốn xóa toàn bộ cache?' ,
'cache.clearedSuccess' : 'Đã xóa cache thành công' ,
'cache.clearFailed' : 'Xóa cache thất bại' ,
'cache.clearCanceled' : 'Đã hủy thao tác xóa' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Common buttons
'button.ok' : 'OK' ,
'button.cancel' : 'Hủy bỏ' ,
'button.save' : 'Lưu' ,
'button.close' : 'Đóng' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// System information
'system.name' : 'Dịch vụ XiaoZhi' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Voiceprint related
'voiceprint.management' : 'Quản lý dấu giọng nói' ,
'voiceprint.add' : 'Thêm dấu giọng nói' ,
'voiceprint.delete' : 'Xóa dấu giọng nói' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Dictionary management page text
'dictManagement.pageTitle' : 'Quản lý từ điển' ,
'dictManagement.searchPlaceholder' : 'Vui lòng nhập nhãn giá trị từ điển để tìm kiếm' ,
'dictManagement.search' : 'Tìm kiếm' ,
'dictManagement.dictTypeName' : 'Tên loại từ điển' ,
'dictManagement.operation' : 'Thao tác' ,
'dictManagement.edit' : 'Chỉnh sửa' ,
'dictManagement.dictLabel' : 'Nhãn từ điển' ,
'dictManagement.dictValue' : 'Giá trị từ điển' ,
'dictManagement.sort' : 'Sắp xếp' ,
'dictManagement.delete' : 'Xóa' ,
'dictManagement.selectAll' : 'Chọn tất cả' ,
'dictManagement.deselectAll' : 'Bỏ chọn tất cả' ,
'dictManagement.addDictType' : 'Thêm loại từ điển' ,
'dictManagement.batchDeleteDictType' : 'Xóa hàng loạt loại từ điển' ,
'dictManagement.addDictData' : 'Thêm dữ liệu từ điển' ,
'dictManagement.batchDeleteDictData' : 'Xóa hàng loạt dữ liệu từ điển' ,
'dictManagement.itemsPerPage' : '{items} mục/trang' ,
'dictManagement.firstPage' : 'Trang đầu' ,
'dictManagement.prevPage' : 'Trang trước' ,
'dictManagement.nextPage' : 'Trang sau' ,
'dictManagement.totalRecords' : 'Tổng cộng {total} bản ghi' ,
'dictManagement.editDictType' : 'Chỉnh sửa loại từ điển' ,
'dictManagement.editDictData' : 'Chỉnh sửa dữ liệu từ điển' ,
'dictManagement.saveSuccess' : 'Lưu thành công' ,
'dictManagement.deleteSuccess' : 'Xóa thành công' ,
'dictManagement.selectDictTypeToDelete' : 'Vui lòng chọn loại từ điển để xóa' ,
'dictManagement.confirmDeleteDictType' : 'Bạn có chắc chắn muốn xóa các loại từ điển đã chọn?' ,
'dictManagement.confirm' : 'Xác nhận' ,
'dictManagement.cancel' : 'Hủy bỏ' ,
'dictManagement.selectDictTypeFirst' : 'Vui lòng chọn loại từ điển trước' ,
'dictManagement.confirmDeleteDictData' : 'Bạn có chắc chắn muốn xóa dữ liệu từ điển này?' ,
'dictManagement.selectDictDataToDelete' : 'Vui lòng chọn dữ liệu từ điển để xóa' ,
'dictManagement.confirmBatchDeleteDictData' : 'Bạn có chắc chắn muốn xóa {count} dữ liệu từ điển đã chọn?' ,
'dictManagement.getDictDataFailed' : 'Không thể lấy dữ liệu từ điển' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// User information
'user.info' : 'Thông tin người dùng' ,
'user.username' : 'Tên đăng nhập' ,
'user.mobile' : 'Điện thoại di động' ,
'user.userid' : 'ID người dùng' ,
'user.deviceCount' : 'Số lượng thiết bị' ,
'user.createDate' : 'Thời gian đăng ký' ,
'user.status' : 'Trạng thái' ,
'user.normal' : 'Bình thường' ,
'user.disabled' : 'Đã vô hiệu hóa' ,
'user.resetPassword' : 'Đặt lại mật khẩu' ,
'user.disableAccount' : 'Vô hiệu hóa tài khoản' ,
'user.enableAccount' : 'Kích hoạt tài khoản' ,
'user.deleteUser' : 'Xóa người dùng' ,
'user.deselectAll' : 'Bỏ chọn tất cả' ,
'user.selectAll' : 'Chọn tất cả' ,
'user.enable' : 'Kích hoạt' ,
'user.disable' : 'Vô hiệu hóa' ,
'user.delete' : 'Xóa' ,
'user.selectUsersFirst' : 'Vui lòng chọn người dùng để xóa trước' ,
'user.confirmDeleteSelected' : 'Bạn có chắc chắn muốn xóa {count} người dùng đã chọn?' ,
'user.deleting' : 'Đang xóa...' ,
'user.deleteSuccess' : 'Đã xóa thành công {count} người dùng' ,
'user.deleteFailed' : 'Xóa thất bại, vui lòng thử lại' ,
'user.partialDelete' : 'Đã xóa thành công {successCount} người dùng, {failCount} thất bại' ,
'user.deleteError' : 'Đã xảy ra lỗi khi xóa' ,
'user.deleteCancelled' : 'Đã hủy xóa' ,
'user.confirmResetPassword' : 'Một mật khẩu mới sẽ được tạo sau khi đặt lại. Tiếp tục?' ,
'user.resetPasswordSuccess' : 'Mật khẩu đã được đặt lại, vui lòng thông báo cho người dùng đăng nhập bằng mật khẩu mới' ,
'user.generatedPassword' : 'Mật khẩu mặc định được tạo' ,
'user.confirmDeleteUser' : 'Bạn có chắc chắn muốn xóa người dùng này?' ,
'user.deleteUserSuccess' : 'Xóa thành công' ,
'user.operationFailed' : 'Thao tác thất bại, vui lòng thử lại' ,
'user.confirmStatusChange' : 'Bạn có chắc chắn muốn {action} {count} người dùng đã chọn?' ,
'user.statusChangeSuccess' : 'Đã {action} thành công {count} người dùng' ,
'user.invalidUserId' : 'Có ID người dùng không hợp lệ' ,
'user.searchPhone' : 'Vui lòng nhập số điện thoại di động để tìm kiếm' ,
'user.search' : 'Tìm kiếm' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Provider Management Page Text
'providerManagement.categoryFilter' : 'Bộ lọc danh mục' ,
'providerManagement.searchPlaceholder' : 'Vui lòng nhập tên nhà cung cấp để tìm kiếm' ,
'providerManagement.category' : 'Danh mục' ,
'providerManagement.providerCode' : 'Mã nhà cung cấp' ,
'providerManagement.fieldConfig' : 'Cấu hình trường' ,
'providerManagement.selectToDelete' : 'Vui lòng chọn nhà cung cấp để xóa trước' ,
'providerManagement.confirmDelete' : 'Bạn có chắc chắn muốn xóa {count} nhà cung cấp đã chọn?' ,
'providerManagement.viewFields' : 'Xem các trường' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Common Text
'common.all' : 'Tất cả' ,
'common.search' : 'Tìm kiếm' ,
'common.name' : 'Tên' ,
'common.sort' : 'Sắp xếp' ,
'common.action' : 'Hành động' ,
'common.edit' : 'Chỉnh sửa' ,
'common.delete' : 'Xóa' ,
'common.selectAll' : 'Chọn tất cả' ,
'common.deselectAll' : 'Bỏ chọn tất cả' ,
'common.add' : 'Thêm' ,
'common.perPage' : '{number}/trang' ,
'common.firstPage' : 'Trang đầu' ,
'common.prevPage' : 'Trang trước' ,
'common.nextPage' : 'Trang sau' ,
'common.totalRecords' : 'Tổng cộng {number} bản ghi' ,
'common.addProvider' : 'Thêm nhà cung cấp' ,
'common.success' : 'Thành công' ,
'common.editProvider' : 'Chỉnh sửa nhà cung cấp' ,
'common.updateSuccess' : 'Cập nhật thành công' ,
'common.addSuccess' : 'Thêm thành công' ,
'common.deleteSuccess' : 'Xóa thành công' ,
'common.deleteFailure' : 'Xóa thất bại, vui lòng thử lại' ,
'common.deleteCancelled' : 'Đã hủy xóa' ,
'common.warning' : 'Cảnh báo' ,
'common.tip' : 'Mẹo' ,
'common.confirm' : 'Xác nhận' ,
'common.cancel' : 'Hủy bỏ' ,
'common.sensitive' : 'Nhạy cảm' ,
'common.loading' : 'Đang tải' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Language switch
'language.zhCN' : '中文简体' ,
'language.zhTW' : '中文繁體' ,
'language.en' : 'English' ,
'language.de' : 'Deutsch' ,
'language.vi' : 'Tiếng Việt' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Home page text
'home.addAgent' : 'Thêm tác nhân' ,
'home.greeting' : 'Xin chào XiaoZhi' ,
'home.wish' : 'Chúc bạn một ngày tuyệt vời!' ,
'home.languageModel' : 'LLM' ,
'home.voiceModel' : 'TTS' ,
'home.configureRole' : 'Vai trò' ,
'home.voiceprintRecognition' : 'Giọng nói' ,
'home.deviceManagement' : 'Thiết bị' ,
'home.chatHistory' : 'Lịch sử' ,
'home.lastConversation' : 'Cuộc trò chuyện cuối' ,
'home.noConversation' : 'Không có cuộc trò chuyện' ,
'home.justNow' : 'Vừa xong' ,
'home.minutesAgo' : '{minutes} phút trước' ,
'home.hoursAgo' : '{hours} giờ {minutes} phút trước' ,
'home.confirmDeleteAgent' : 'Bạn có chắc chắn muốn xóa tác nhân này?' ,
'home.deleteSuccess' : 'Xóa thành công' ,
'home.deleteFailed' : 'Xóa thất bại' ,
'home.enableMemory' : 'Vui lòng bật bộ nhớ trong trang \"Cấu hình vai trò\" trước' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Parameter management page text
'paramManagement.pageTitle' : 'Quản lý tham số' ,
'paramManagement.searchPlaceholder' : 'Vui lòng nhập mã tham số hoặc ghi chú để tìm kiếm' ,
'paramManagement.search' : 'Tìm kiếm' ,
'paramManagement.paramCode' : 'Mã tham số' ,
'paramManagement.paramValue' : 'Giá trị tham số' ,
'paramManagement.remark' : 'Ghi chú' ,
'paramManagement.operation' : 'Thao tác' ,
'paramManagement.hide' : 'Ẩn' ,
'paramManagement.view' : 'Xem' ,
'paramManagement.deselectAll' : 'Bỏ chọn tất cả' ,
'paramManagement.selectAll' : 'Chọn tất cả' ,
'paramManagement.add' : 'Thêm' ,
'paramManagement.delete' : 'Xóa' ,
'paramManagement.edit' : 'Chỉnh sửa' ,
'paramManagement.itemsPerPage' : 'mục/trang' ,
'paramManagement.firstPage' : 'Trang đầu' ,
'paramManagement.prevPage' : 'Trang trước' ,
'paramManagement.nextPage' : 'Trang sau' ,
'paramManagement.totalRecords' : 'Tổng cộng {total} bản ghi' ,
'paramManagement.addParam' : 'Thêm tham số' ,
'paramManagement.editParam' : 'Chỉnh sửa tham số' ,
'paramManagement.getParamsListFailed' : 'Không thể lấy danh sách tham số' ,
'paramManagement.selectParamsFirst' : 'Vui lòng chọn tham số để xóa trước' ,
'paramManagement.confirmBatchDelete' : 'Bạn có chắc chắn muốn xóa {paramCount} tham số đã chọn?' ,
'paramManagement.invalidParamId' : 'Có ID tham số không hợp lệ' ,
'paramManagement.batchDeleteSuccess' : 'Đã xóa thành công {paramCount} tham số' ,
'paramManagement.deleteFailed' : 'Xóa thất bại, vui lòng thử lại' ,
'paramManagement.operationCancelled' : 'Đã hủy xóa' ,
'paramManagement.operationClosed' : 'Đã đóng thao tác' ,
2025-12-13 15:34:11 +08:00
'paramManagement.updateSuccess' : 'Cập nhật thành công. Một số cấu hình chỉ có hiệu lực sau khi khởi động lại mô-đun xiaozhi-server.' ,
2025-11-22 11:59:34 +08:00
'paramManagement.addSuccess' : 'Thêm thành công' ,
'paramManagement.updateFailed' : 'Cập nhật thất bại' ,
'paramManagement.addFailed' : 'Thêm thất bại' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Server side management page text
'serverSideManager.pageTitle' : 'Quản lý máy chủ' ,
'serverSideManager.wsAddress' : 'Địa chỉ WS' ,
'serverSideManager.operation' : 'Thao tác' ,
'serverSideManager.restart' : 'Khởi động lại' ,
'serverSideManager.updateConfig' : 'Cập nhật cấu hình' ,
'serverSideManager.restartServer' : 'Khởi động lại máy chủ' ,
'serverSideManager.updateConfigTitle' : 'Cập nhật cấu hình' ,
'serverSideManager.confirmRestart' : 'Bạn có chắc chắn muốn khởi động lại máy chủ?' ,
'serverSideManager.confirmUpdateConfig' : 'Bạn có chắc chắn muốn cập nhật cấu hình?' ,
'serverSideManager.loading' : 'Đang tải...' ,
'serverSideManager.getServerListFailed' : 'Không thể lấy danh sách máy chủ' ,
'serverSideManager.operationFailed' : 'Thao tác thất bại' ,
'serverSideManager.restartSuccess' : 'Khởi động lại thành công' ,
'serverSideManager.updateConfigSuccess' : 'Cập nhật cấu hình thành công' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Add agent dialog text
'addAgentDialog.title' : 'Thêm tác nhân' ,
'addAgentDialog.agentName' : 'Tên tác nhân' ,
'addAgentDialog.placeholder' : 'Vui lòng nhập tên tác nhân..' ,
'addAgentDialog.confirm' : 'Xác nhận' ,
'addAgentDialog.cancel' : 'Hủy bỏ' ,
'addAgentDialog.nameRequired' : 'Vui lòng nhập tên tác nhân' ,
'addAgentDialog.addSuccess' : 'Thêm thành công' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Role configuration page text
'roleConfig.title' : 'Vai trò' ,
'roleConfig.restartNotice' : 'Sau khi lưu cấu hình, bạn cần khởi động lại thiết bị để cấu hình mới có hiệu lực.' ,
'roleConfig.saveConfig' : 'Lưu cấu hình' ,
'roleConfig.reset' : 'Đặt lại' ,
'roleConfig.agentName' : 'Biệt danh' ,
'roleConfig.roleTemplate' : 'Mẫu' ,
'roleConfig.roleIntroduction' : 'Giới thiệu' ,
'roleConfig.languageCode' : 'Mã ngôn ngữ' ,
'roleConfig.interactionLanguage' : 'Ngôn ngữ tương tác' ,
'roleConfig.vad' : 'Phát hiện giọng nói' ,
'roleConfig.asr' : 'Nhận dạng giọng nói' ,
'roleConfig.llm' : 'Mô hình ngôn ngữ' ,
'roleConfig.vllm' : 'Mô hình thị giác' ,
'roleConfig.tts' : 'Văn bản thành giọng nói' ,
'roleConfig.memoryHis' : 'Bộ nhớ' ,
'roleConfig.memory' : 'Mô hình bộ nhớ' ,
'roleConfig.intent' : 'Nhận dạng ý định' ,
'roleConfig.voiceType' : 'Loại giọng nói' ,
'roleConfig.pleaseEnterContent' : 'Vui lòng nhập nội dung' ,
'roleConfig.pleaseEnterLangCode' : 'Vui lòng nhập mã ngôn ngữ, ví dụ: en_US' ,
'roleConfig.pleaseEnterLangName' : 'Vui lòng nhập ngôn ngữ tương tác, ví dụ: Tiếng Anh' ,
'roleConfig.pleaseSelect' : 'Vui lòng chọn' ,
'roleConfig.editFunctions' : 'Chỉnh sửa chức năng' ,
'roleConfig.reportText' : 'Chỉ văn bản' ,
'roleConfig.reportTextVoice' : 'VB&Giọng nói' ,
'roleConfig.saveSuccess' : 'Đã lưu cấu hình thành công' ,
'roleConfig.saveFailed' : 'Lưu cấu hình thất bại' ,
'roleConfig.confirmReset' : 'Bạn có chắc chắn muốn đặt lại cấu hình?' ,
'roleConfig.resetSuccess' : 'Cấu hình đã được đặt lại' ,
'roleConfig.fetchTemplatesFailed' : 'Không thể tải danh sách mẫu' ,
'roleConfig.templateApplied' : 'mẫu đã được áp dụng' ,
'roleConfig.applyTemplateFailed' : 'Áp dụng mẫu thất bại' ,
'roleConfig.fetchConfigFailed' : 'Không thể lấy cấu hình' ,
'roleConfig.fetchModelsFailed' : 'Không thể tải danh sách mô hình' ,
'roleConfig.fetchPluginsFailed' : 'Không thể tải danh sách plugin' ,
2026-01-07 17:03:56 +08:00
'roleConfig.cannotResumeAudio' : 'Không thể tiếp tục phát âm thanh' ,
'roleConfig.selectVoiceFirst' : 'Vui lòng chọn giọng nói trước' ,
'roleConfig.audioLoadTimeout' : 'Tải âm thanh mất quá nhiều thời gian, vui lòng thử lại sau' ,
'roleConfig.cloneAudioPlayFailed' : 'Phát âm thanh sao chép thất bại' ,
'roleConfig.cannotPlayCloneAudio' : 'Không thể phát âm thanh sao chép' ,
'roleConfig.getCloneAudioFailed' : 'Không thể lấy âm thanh sao chép' ,
'roleConfig.noPreviewAudio' : 'Giọng nói này không có âm thanh xem trước' ,
'roleConfig.audioPlayFailed' : 'Phát âm thanh thất bại' ,
'roleConfig.cannotPlayAudio' : 'Không thể phát âm thanh' ,
'roleConfig.audioPlayError' : 'Lỗi trong quá trình phát âm thanh' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Function management dialog text
'functionDialog.title' : 'Quản lý chức năng' ,
'functionDialog.unselectedFunctions' : 'Chức năng chưa chọn' ,
'functionDialog.selectedFunctions' : 'Chức năng đã chọn' ,
'functionDialog.selectAll' : 'Chọn tất cả' ,
'functionDialog.noMorePlugins' : 'Không còn plugin nào khác' ,
'functionDialog.pleaseSelectPlugin' : 'Vui lòng chọn chức năng plugin' ,
'functionDialog.paramConfig' : 'Cấu hình tham số' ,
'functionDialog.noNeedToConfig' : ' không yêu cầu cấu hình tham số' ,
'functionDialog.pleaseSelectFunctionForParam' : 'Vui lòng chọn một chức năng đã cấu hình để thiết lập tham số' ,
'functionDialog.mcpAccessPoint' : 'Điểm truy cập MCP' ,
'functionDialog.mcpAddressDesc' : 'Dưới đây là các địa chỉ điểm truy cập MCP cho tác nhân.' ,
'functionDialog.howToDeployMcp' : 'Cách triển khai điểm truy cập MCP' ,
'functionDialog.howToIntegrateMcp' : 'Cách tích hợp chức năng MCP' ,
'functionDialog.copy' : 'Sao chép' ,
'functionDialog.accessPointStatus' : 'Trạng thái điểm truy cập' ,
'functionDialog.connected' : 'Đã kết nối' ,
'functionDialog.loading' : 'Đang tải...' ,
'functionDialog.disconnected' : 'Đã ngắt kết nối' ,
'functionDialog.refresh' : 'Làm mới' ,
'functionDialog.noAvailableTools' : 'Không có công cụ khả dụng' ,
'functionDialog.cancel' : 'Hủy bỏ' ,
'functionDialog.saveConfig' : 'Lưu cấu hình' ,
'functionDialog.copiedToClipboard' : 'Đã sao chép vào clipboard' ,
'functionDialog.copyFailed' : 'Sao chép thất bại, vui lòng sao chép thủ công' ,
'functionDialog.jsonFormatError' : ' lỗi định dạng trường: định dạng JSON không hợp lệ' ,
'functionDialog.defaultValue' : 'Giá trị mặc định' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Model Configuration Page Text
'modelConfig.searchPlaceholder' : 'Vui lòng nhập tên mô hình để tìm kiếm' ,
'modelConfig.search' : 'Tìm kiếm' ,
'modelConfig.vad' : 'Phát hiện hoạt động giọng nói' ,
'modelConfig.asr' : 'Nhận dạng giọng nói' ,
'modelConfig.llm' : 'Mô hình ngôn ngữ lớn' ,
'modelConfig.vllm' : 'Mô hình ngôn ngữ thị giác' ,
'modelConfig.intent' : 'Nhận dạng ý định' ,
'modelConfig.tts' : 'Văn bản thành giọng nói' ,
'modelConfig.memory' : 'Bộ nhớ' ,
'modelConfig.rag' : 'RAG' ,
'modelConfig.modelId' : 'ID mô hình' ,
'modelConfig.modelName' : 'Tên mô hình' ,
2025-12-17 11:58:40 +08:00
'modelConfig.provider' : 'Loại giao diện' ,
2025-11-22 11:59:34 +08:00
'modelConfig.unknown' : 'Không xác định' ,
'modelConfig.isEnabled' : 'Đã bật' ,
'modelConfig.isDefault' : 'Mặc định' ,
'modelConfig.action' : 'Hành động' ,
'modelConfig.voiceManagement' : 'Quản lý giọng nói' ,
'modelConfig.edit' : 'Chỉnh sửa' ,
'modelConfig.duplicate' : 'Nhân bản' ,
'modelConfig.delete' : 'Xóa' ,
'modelConfig.deselectAll' : 'Bỏ chọn tất cả' ,
'modelConfig.select' : 'Chọn' ,
'modelConfig.selectAll' : 'Chọn tất cả' ,
'modelConfig.add' : 'Thêm mới' ,
'modelConfig.selectModelsFirst' : 'Vui lòng chọn mô hình để xóa trước' ,
'modelConfig.confirmBatchDelete' : 'Bạn có chắc chắn muốn xóa các mô hình đã chọn?' ,
'modelConfig.confirmDelete' : 'Bạn có chắc chắn muốn xóa mô hình này?' ,
'modelConfig.batchDeleteSuccess' : 'Xóa hàng loạt thành công' ,
'modelConfig.partialDeleteFailed' : 'Xóa một phần thất bại' ,
'modelConfig.deleteSuccess' : 'Xóa thành công' ,
'modelConfig.deleteFailed' : 'Xóa thất bại' ,
'modelConfig.deleteCancelled' : 'Đã hủy xóa' ,
'modelConfig.duplicateSuccess' : 'Nhân bản thành công' ,
'modelConfig.duplicateFailed' : 'Nhân bản thất bại' ,
'modelConfig.saveSuccess' : 'Lưu thành công' ,
'modelConfig.saveFailed' : 'Lưu thất bại' ,
'modelConfig.addSuccess' : 'Thêm thành công' ,
'modelConfig.addFailed' : 'Thêm thất bại' ,
'modelConfig.fetchModelsFailed' : 'Không thể tải danh sách mô hình' ,
'modelConfig.enableSuccess' : 'Bật thành công' ,
'modelConfig.disableSuccess' : 'Tắt thành công' ,
'modelConfig.operationFailed' : 'Thao tác thất bại' ,
2025-12-13 15:34:11 +08:00
'modelConfig.setDefaultSuccess' : 'Đặt mô hình mặc định thành công, vui lòng khởi động lại module xiaozhi-server thủ công kịp thời' ,
2025-11-22 11:59:34 +08:00
'modelConfig.itemsPerPage' : '{items} mục/trang' ,
'modelConfig.firstPage' : 'Trang đầu' ,
'modelConfig.prevPage' : 'Trang trước' ,
'modelConfig.nextPage' : 'Trang sau' ,
'modelConfig.totalRecords' : 'Tổng cộng {total} bản ghi' ,
'modelConfig.loading' : 'Đang tải...' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Model Configuration Dialog Text
'modelConfigDialog.addModel' : 'Thêm mô hình' ,
'modelConfigDialog.editModel' : 'Chỉnh sửa mô hình' ,
'modelConfigDialog.duplicateModel' : 'Nhân bản mô hình' ,
'modelConfigDialog.copySuffix' : '_bản_sao' ,
'modelConfigDialog.modelInfo' : 'Thông tin mô hình' ,
'modelConfigDialog.enable' : 'Bật' ,
'modelConfigDialog.setDefault' : 'Đặt làm mặc định' ,
'modelConfigDialog.modelId' : 'ID mô hình' ,
'modelConfigDialog.enterModelId' : 'Nếu không điền, sẽ được tạo tự động' ,
'modelConfigDialog.invalidModelId' : 'ID mô hình không thể chỉ là văn bản thuần túy hoặc khoảng trắng, vui lòng sử dụng chữ cái, số, dấu gạch dưới hoặc dấu gạch ngang' ,
'modelConfigDialog.modelName' : 'Tên mô hình' ,
'modelConfigDialog.enterModelName' : 'Vui lòng nhập tên mô hình' ,
'modelConfigDialog.modelCode' : 'Mã mô hình' ,
'modelConfigDialog.enterModelCode' : 'Vui lòng nhập mã mô hình' ,
'modelConfigDialog.supplier' : 'Nhà cung cấp' ,
'modelConfigDialog.selectSupplier' : 'Vui lòng chọn' ,
'modelConfigDialog.sortOrder' : 'Thứ tự sắp xếp' ,
'modelConfigDialog.enterSortOrder' : 'Vui lòng nhập thứ tự sắp xếp' ,
'modelConfigDialog.docLink' : 'Liên kết tài liệu' ,
'modelConfigDialog.enterDocLink' : 'Vui lòng nhập liên kết tài liệu' ,
'modelConfigDialog.remark' : 'Ghi chú' ,
'modelConfigDialog.enterRemark' : 'Vui lòng nhập ghi chú mô hình' ,
'modelConfigDialog.callInfo' : 'Thông tin gọi' ,
'modelConfigDialog.enterJsonExample' : 'Vui lòng nhập biến định dạng JSON (ví dụ:{\"key\":\"value\"})' ,
'modelConfigDialog.save' : 'Lưu' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// TTS Model Configuration Text
'ttsModel.select' : 'Chọn' ,
'ttsModel.voiceCode' : 'Mã giọng nói' ,
'ttsModel.voiceName' : 'Tên giọng nói' ,
'ttsModel.languageType' : 'Loại ngôn ngữ' ,
'ttsModel.preview' : 'Xem trước' ,
'ttsModel.enterMp3Url' : 'Vui lòng nhập URL MP3' ,
'ttsModel.remark' : 'Ghi chú' ,
'ttsModel.enterRemark' : 'Đây là ghi chú' ,
'ttsModel.referenceAudioPath' : 'Đường dẫn âm thanh tham chiếu' ,
'ttsModel.enterReferenceAudio' : 'Đây là đường dẫn âm thanh tham chiếu' ,
'ttsModel.referenceText' : 'Văn bản âm thanh tham chiếu' ,
'ttsModel.enterReferenceText' : 'Đây là Chỉ Văn bản cho âm thanh tham chiếu' ,
'ttsModel.action' : 'Hành động' ,
'ttsModel.operation' : 'Thao tác' ,
'ttsModel.operationFailed' : 'Thao tác thất bại' ,
'ttsModel.operationClosed' : 'Đã đóng thao tác' ,
'ttsModel.edit' : 'Chỉnh sửa' ,
'ttsModel.delete' : 'Xóa' ,
'ttsModel.deleteVoiceSuccess' : 'Đã xóa thành công {count} giọng nói' ,
'ttsModel.deleteFailed' : 'Xóa giọng nói thất bại' ,
'ttsModel.save' : 'Lưu' ,
'ttsModel.deselectAll' : 'Bỏ chọn tất cả' ,
'ttsModel.selectAll' : 'Chọn tất cả' ,
'ttsModel.add' : 'Thêm' ,
'ttsModel.fetchVoicesFailed' : 'Không thể tải danh sách giọng nói' ,
'ttsModel.loadVoicesFailed' : 'Không thể tải dữ liệu giọng nói' ,
'ttsModel.unnamedVoice' : 'Giọng nói không tên' ,
'ttsModel.finishEditingFirst' : 'Vui lòng hoàn tất chỉnh sửa hiện tại trước' ,
'ttsModel.selectVoiceToDelete' : 'Vui lòng chọn giọng nói để xóa' ,
'ttsModel.warning' : 'Cảnh báo' ,
'ttsModel.confirmDeleteVoice' : 'Bạn có chắc chắn muốn xóa {count} giọng nói?' ,
2026-01-07 16:52:36 +08:00
'ttsModel.voiceCodeNameLanguageRequired' : 'Mã giọng nói, tên giọng nói và loại ngôn ngữ không được để trống' ,
'ttsModel.deleteCancelled' : 'Xóa đã bị hủy' ,
'ttsModel.updateSuccess' : 'Cập nhật thành công' ,
'ttsModel.saveSuccess' : 'Lưu thành công' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// OTA Management Page Text
'otaManagement.firmwareManagement' : 'Quản lý firmware' ,
'otaManagement.searchPlaceholder' : 'Vui lòng nhập tên firmware để tìm kiếm' ,
'otaManagement.search' : 'Tìm kiếm' ,
'otaManagement.firmwareName' : 'Tên firmware' ,
'otaManagement.firmwareType' : 'Loại firmware' ,
'otaManagement.version' : 'Phiên bản' ,
'otaManagement.fileSize' : 'Kích thước tệp' ,
'otaManagement.remark' : 'Ghi chú' ,
'otaManagement.createTime' : 'Thời gian tạo' ,
'otaManagement.updateTime' : 'Thời gian cập nhật' ,
'otaManagement.action' : 'Hành động' ,
'otaManagement.download' : 'Tải xuống' ,
'otaManagement.edit' : 'Chỉnh sửa' ,
'otaManagement.delete' : 'Xóa' ,
'otaManagement.selectAll' : 'Chọn tất cả' ,
'otaManagement.deselectAll' : 'Bỏ chọn tất cả' ,
'otaManagement.addNew' : 'Thêm mới' ,
'otaManagement.addFirmware' : 'Thêm firmware' ,
'otaManagement.editFirmware' : 'Chỉnh sửa firmware' ,
'otaManagement.itemsPerPage' : '{items} mục/trang' ,
'otaManagement.firstPage' : 'Trang đầu' ,
'otaManagement.prevPage' : 'Trang trước' ,
'otaManagement.nextPage' : 'Trang sau' ,
'otaManagement.totalRecords' : 'Tổng cộng {total} bản ghi' ,
'otaManagement.selectFirmwareFirst' : 'Vui lòng chọn firmware để xóa trước' ,
'otaManagement.confirmBatchDelete' : 'Bạn có chắc chắn muốn xóa {paramCount} firmware đã chọn?' ,
'otaManagement.operationCancelled' : 'Đã hủy thao tác xóa' ,
'otaManagement.operationClosed' : 'Đã đóng thao tác' ,
'otaManagement.batchDeleteSuccess' : 'Đã xóa thành công {paramCount} firmware' ,
'otaManagement.deleteFailed' : 'Xóa thất bại, vui lòng thử lại' ,
'otaManagement.incompleteFirmwareInfo' : 'Thông tin firmware không đầy đủ' ,
'otaManagement.getDownloadUrlFailed' : 'Không thể lấy liên kết tải xuống' ,
'otaManagement.getFirmwareTypesFailed' : 'Không thể lấy loại firmware' ,
'otaManagement.updateSuccess' : 'Cập nhật thành công' ,
'otaManagement.updateFailed' : 'Cập nhật thất bại' ,
'otaManagement.addSuccess' : 'Thêm thành công' ,
'otaManagement.addFailed' : 'Thêm thất bại' ,
'otaManagement.fetchFirmwareListFailed' : 'Không thể tải danh sách firmware' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Provider Management page model type translations
'providerManagement.all' : 'Tất cả' ,
'providerManagement.modelType.ASR' : 'Nhận dạng giọng nói' ,
'providerManagement.modelType.TTS' : 'Văn bản thành giọng nói' ,
'providerManagement.modelType.LLM' : 'Mô hình ngôn ngữ lớn' ,
'providerManagement.modelType.VLLM' : 'Mô hình ngôn ngữ thị giác lớn' ,
'providerManagement.modelType.Intent' : 'Nhận dạng ý định' ,
'providerManagement.modelType.Memory' : 'Mô-đun bộ nhớ' ,
'providerManagement.modelType.VAD' : 'Phát hiện hoạt động giọng nói' ,
'providerManagement.modelType.Plugin' : 'Công cụ plugin' ,
'providerManagement.modelType.RAG' : 'RAG' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Provider Dialog translations
'providerDialog.category' : 'Danh mục' ,
'providerDialog.selectCategory' : 'Vui lòng chọn danh mục' ,
'providerDialog.code' : 'Mã' ,
'providerDialog.inputCode' : 'Vui lòng nhập mã nhà cung cấp' ,
'providerDialog.name' : 'Tên' ,
'providerDialog.inputName' : 'Vui lòng nhập tên nhà cung cấp' ,
'providerDialog.sort' : 'Sắp xếp' ,
'providerDialog.fieldConfig' : 'Cấu hình trường' ,
'providerDialog.add' : 'Thêm' ,
'providerDialog.deselectAll' : 'Bỏ chọn tất cả' ,
'providerDialog.selectAll' : 'Chọn tất cả' ,
'providerDialog.batchDelete' : 'Xóa hàng loạt' ,
'providerDialog.fieldKey' : 'Khóa trường' ,
'providerDialog.fieldLabel' : 'Nhãn trường' ,
'providerDialog.fieldType' : 'Loại trường' ,
'providerDialog.type' : 'Loại' ,
'providerDialog.stringType' : 'Chuỗi' ,
'providerDialog.numberType' : 'Số' ,
'providerDialog.booleanType' : 'Boolean' ,
'providerDialog.dictType' : 'Từ điển' ,
'providerDialog.arrayType' : 'Danh sách phân cách bằng dấu chấm phẩy' ,
'providerDialog.ragType' : 'RAG' ,
'providerDialog.defaultValue' : 'Giá trị mặc định' ,
'providerDialog.inputDefaultValue' : 'Vui lòng nhập giá trị mặc định' ,
'providerDialog.operation' : 'Thao tác' ,
'providerDialog.edit' : 'Chỉnh sửa' ,
'providerDialog.complete' : 'Hoàn tất' ,
'providerDialog.delete' : 'Xóa' ,
'providerDialog.save' : 'Lưu' ,
'providerDialog.requiredCategory' : 'Vui lòng chọn danh mục' ,
'providerDialog.requiredCode' : 'Vui lòng nhập mã nhà cung cấp' ,
'providerDialog.requiredName' : 'Vui lòng nhập tên nhà cung cấp' ,
'providerDialog.completeFieldEdit' : 'Vui lòng hoàn tất chỉnh sửa trường hiện tại trước' ,
'providerDialog.confirmDeleteField' : 'Bạn có chắc chắn muốn xóa trường này?' ,
'providerDialog.selectFieldsToDelete' : 'Vui lòng chọn trường để xóa trước' ,
'providerDialog.confirmBatchDeleteFields' : 'Bạn có chắc chắn muốn xóa {count} trường đã chọn?' ,
'providerDialog.batchDeleteFieldsSuccess' : 'Đã xóa thành công {count} trường' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// agentTemplateManagement
'agentTemplateManagement.title' : 'Quản lý vai trò mặc định' ,
'agentTemplateManagement.templateName' : 'Tên mẫu' ,
'agentTemplateManagement.action' : 'Hành động' ,
'agentTemplateManagement.createTemplate' : 'Tạo mẫu' ,
'templateQuickConfig.newTemplate' : 'Mẫu mới' ,
'agentTemplateManagement.editTemplate' : 'Chỉnh sửa mẫu' ,
'agentTemplateManagement.deleteTemplate' : 'Xóa mẫu' ,
'agentTemplateManagement.deleteSuccess' : 'Đã xóa mẫu thành công' ,
'agentTemplateManagement.batchDelete' : 'Xóa hàng loạt' ,
'agentTemplateManagement.batchDeleteSuccess' : 'Xóa hàng loạt thành công' ,
'agentTemplateManagement.selectTemplate' : 'Vui lòng chọn một mẫu' ,
'agentTemplateManagement.select' : 'Chọn' ,
'agentTemplateManagement.searchPlaceholder' : 'Vui lòng nhập tên mẫu để tìm kiếm' ,
'agentTemplateManagement.search' : 'Tìm kiếm' ,
'agentTemplateManagement.serialNumber' : 'Số sê-ri' ,
'agentTemplateManagement.selectAll' : 'Chọn tất cả' ,
'agentTemplateManagement.deselectAll' : 'Bỏ chọn tất cả' ,
'agentTemplateManagement.loading' : 'Đang tải...' ,
'agentTemplateManagement.confirmSingleDelete' : 'Bạn có chắc chắn muốn xóa mẫu này?' ,
'agentTemplateManagement.confirmBatchDelete' : 'Bạn có chắc chắn muốn xóa {count} mẫu đã chọn?' ,
'agentTemplateManagement.deleteFailed' : 'Xóa mẫu thất bại' ,
'agentTemplateManagement.batchDeleteFailed' : 'Xóa hàng loạt mẫu thất bại' ,
'agentTemplateManagement.deleteBackendError' : 'Xóa thất bại, vui lòng kiểm tra xem dịch vụ backend có bình thường không' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// templateQuickConfig
'templateQuickConfig.title' : 'Cấu hình nhanh mô-đun' ,
'templateQuickConfig.agentSettings.agentName' : 'Biệt danh' ,
'templateQuickConfig.agentSettings.agentNamePlaceholder' : 'Vui lòng nhập biệt danh' ,
'templateQuickConfig.agentSettings.systemPrompt' : 'Giới thiệu' ,
'templateQuickConfig.agentSettings.systemPromptPlaceholder' : 'Vui lòng nhập giới thiệu' ,
'templateQuickConfig.saveConfig' : 'Lưu cấu hình' ,
'templateQuickConfig.resetConfig' : 'Đặt lại cấu hình' ,
'templateQuickConfig.saveSuccess' : 'Lưu thành công' ,
'templateQuickConfig.resetSuccess' : 'Đặt lại thành công' ,
'templateQuickConfig.confirmReset' : 'Bạn có chắc chắn muốn đặt lại cấu hình?' ,
'templateQuickConfig.saveFailed' : 'Lưu cấu hình thất bại' ,
'templateQuickConfig.confirm' : 'Xác nhận' ,
'templateQuickConfig.cancel' : 'Hủy bỏ' ,
'templateQuickConfig.templateNotFound' : 'Không tìm thấy mẫu' ,
'warning' : 'Cảnh báo' ,
'info' : 'Thông tin' ,
'common.networkError' : 'Yêu cầu mạng thất bại' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// SM2 Encryption
'sm2.publicKeyNotConfigured' : 'Khóa công khai SM2 chưa được cấu hình, vui lòng liên hệ quản trị viên' ,
'sm2.encryptionFailed' : 'Mã hóa mật khẩu thất bại' ,
'sm2.keyGenerationFailed' : 'Tạo cặp khóa thất bại' ,
'sm2.invalidPublicKey' : 'Định dạng khóa công khai không hợp lệ' ,
'sm2.encryptionError' : 'Đã xảy ra lỗi khi mã hóa' ,
'sm2.publicKeyRetry' : 'Đang thử lấy lại khóa công khai...' ,
'sm2.publicKeyRetryFailed' : 'Thử lấy lại khóa công khai thất bại' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Voice Clone and Resource Management
'voiceClone.title' : 'Nhân bản âm sắc' ,
'voiceResource.title' : 'Tài nguyên giọng nói' ,
'voiceClone.platformName' : 'Tên nền tảng' ,
'voiceClone.voiceId' : 'ID giọng nói' ,
'voiceClone.userId' : 'Chủ sở hữu tài khoản' ,
'voiceClone.name' : 'Tên giọng nói' ,
'voiceClone.clone' : 'Nhân bản' ,
'voiceClone.action' : 'Hành động' ,
'voiceClone.modelId' : 'ID mô hình' ,
'voiceClone.trainStatus' : 'Trạng thái đào tạo' ,
'voiceClone.trainError' : 'Lỗi đào tạo' ,
'voiceClone.createdAt' : 'Thời gian tạo' ,
'voiceClone.search' : 'Tìm kiếm' ,
'voiceClone.searchPlaceholder' : 'Vui lòng nhập tên giọng nói hoặc ID giọng nói' ,
'voiceClone.addNew' : 'Thêm' ,
'voiceClone.delete' : 'Xóa' ,
'voiceClone.selectAll' : 'Chọn tất cả' ,
'voiceClone.deselectAll' : 'Bỏ chọn tất cả' ,
'voiceClone.addVoiceClone' : 'Thêm tài nguyên giọng nói' ,
'voiceClone.confirmDelete' : 'Bạn có chắc chắn muốn xóa {count} tài nguyên giọng nói đã chọn?' ,
'voiceClone.deleteSuccess' : 'Đã xóa thành công {count} tài nguyên giọng nói' ,
'voiceClone.deleteFailed' : 'Xóa thất bại' ,
'voiceClone.addSuccess' : 'Thêm thành công' ,
'voiceClone.addFailed' : 'Thêm thất bại' ,
'voiceClone.updateSuccess' : 'Cập nhật thành công' ,
'voiceClone.updateFailed' : 'Cập nhật thất bại' ,
'voiceClone.selectFirst' : 'Vui lòng chọn tài nguyên giọng nói để xóa trước' ,
'voiceClone.operationCancelled' : 'Hủy bỏ' ,
'voiceClone.operationClosed' : 'Đã đóng popup' ,
'voiceClone.cloneSuccess' : 'Nhân bản thành công' ,
'voiceClone.cloneFailed' : 'Nhân bản thất bại' ,
'voiceClone.confirmClone' : 'Bạn có chắc chắn muốn nhân bản giọng này?' ,
'voiceClone.onlySuccessCanClone' : 'Chỉ có thể nhân bản giọng đã huấn luyện thành công' ,
'common.insufficient' : 'Không đủ' ,
'voiceClone.platformNameRequired' : 'Vui lòng chọn tên nền tảng' ,
'voiceClone.voiceIdRequired' : 'Vui lòng chọn ID giọng nói' ,
'voiceClone.userIdRequired' : 'Vui lòng chọn chủ sở hữu tài khoản' ,
'voiceClone.platformNamePlaceholder' : 'Vui lòng chọn tên nền tảng' ,
'voiceClone.voiceIdPlaceholder' : 'Vui lòng nhập ID giọng nói và nhấn Enter' ,
'voiceClone.userIdPlaceholder' : 'Vui lòng nhập từ khóa để chọn chủ sở hữu tài khoản' ,
'voiceClone.waitingUpload' : 'Đang chờ tải lên' ,
'voiceClone.waitingTraining' : 'Đang chờ nhân bản' ,
'voiceClone.training' : 'Đang huấn luyện' ,
'voiceClone.trainSuccess' : 'Huấn luyện thành công' ,
'voiceClone.trainFailed' : 'Huấn luyện thất bại' ,
'voiceClone.itemsPerPage' : '{items} mục mỗi trang' ,
'voiceClone.firstPage' : 'Trang đầu' ,
'voiceClone.prevPage' : 'Trang trước' ,
'voiceClone.nextPage' : 'Trang sau' ,
'voiceClone.totalRecords' : 'Tổng cộng {total} bản ghi' ,
'voiceClone.noVoiceCloneAssigned' : 'Tài khoản của bạn không được chỉ định tài nguyên giọng nói' ,
'voiceClone.contactAdmin' : 'Vui lòng liên hệ quản trị viên để được chỉ định tài nguyên giọng nói' ,
'voiceClone.dialogTitle' : 'Nhân bản âm sắc' ,
'voiceClone.stepUpload' : 'Chuẩn bị âm thanh' ,
'voiceClone.stepEdit' : 'Chỉnh sửa âm thanh' ,
'voiceClone.dragOrClick' : 'Kéo tệp âm thanh vào đây hoặc nhấp để tải lên' ,
'voiceClone.uploadTip' : 'Hỗ trợ tất cả các định dạng âm thanh chính, thời lượng được chọn phải từ 8-60 giây' ,
'voiceClone.editTip1' : 'Vui lòng xác nhận xem âm thanh đã tải lên có đạt yêu cầu không' ,
'voiceClone.editTip2' : 'Bạn có thể nghe và cắt âm thanh, nếu không hài lòng có thể quay lại để ghi âm lại hoặc tải lên lại' ,
'voiceClone.selectedDuration' : 'Đoạn hợp lệ đã chọn: {duration} giây' ,
'voiceClone.trim' : 'Cắt đoạn đã chọn' ,
'voiceClone.reset' : 'Đặt lại' ,
'voiceClone.play' : 'Phát' ,
'voiceClone.pause' : 'Tạm dừng' ,
'voiceClone.stop' : 'Dừng' ,
'voiceClone.cancel' : 'Hủy bỏ' ,
'voiceClone.warning' : 'Cảnh báo' ,
'voiceClone.ok' : 'OK' ,
'voiceClone.nextStep' : 'Tiếp theo' ,
'voiceClone.prevStep' : 'Trước' ,
'voiceClone.upload' : 'Tải lên âm thanh' ,
'voiceClone.pleaseSelectAudio' : 'Vui lòng chọn tệp âm thanh trước' ,
'voiceClone.durationError' : 'Thời lượng âm thanh phải từ 8-60 giây' ,
'voiceClone.loadAudioFailed' : 'Không thể tải âm thanh' ,
'voiceClone.trimSuccess' : 'Cắt thành công' ,
'voiceClone.resetSuccess' : 'Đặt lại thành công' ,
'voiceClone.uploadSuccess' : 'Tải lên thành công' ,
'voiceClone.uploadFailed' : 'Tải lên thất bại' ,
'voiceClone.updateNameSuccess' : 'Đã cập nhật tên thành công' ,
'voiceClone.updateNameFailed' : 'Không thể cập nhật tên' ,
'voiceClone.playFailed' : 'Phát thất bại' ,
'voiceClone.Details' : 'Chi tiết lỗi' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Knowledge Base Management page text
'knowledgeBaseManagement.title' : 'Cơ sở kiến thức' ,
'knowledgeBaseManagement.searchPlaceholder' : 'Vui lòng nhập tên cơ sở kiến thức để tìm kiếm' ,
'knowledgeBaseManagement.search' : 'Tìm kiếm' ,
'knowledgeBaseManagement.name' : 'Tên cơ sở kiến thức' ,
'knowledgeBaseManagement.description' : 'Mô tả cơ sở kiến thức' ,
'knowledgeBaseManagement.documentCount' : 'Số lượng tài liệu' ,
'knowledgeBaseManagement.status' : 'Đã bật' ,
'knowledgeBaseManagement.createdAt' : 'Được tạo lúc' ,
'knowledgeBaseManagement.operation' : 'Thao tác' ,
'knowledgeBaseManagement.add' : 'Thêm' ,
'knowledgeBaseManagement.delete' : 'Xóa' ,
'knowledgeBaseManagement.edit' : 'Chỉnh sửa' ,
'knowledgeBaseManagement.itemsPerPage' : 'mục/trang' ,
'knowledgeBaseManagement.firstPage' : 'Trang đầu' ,
'knowledgeBaseManagement.prevPage' : 'Trang trước' ,
'knowledgeBaseManagement.nextPage' : 'Trang sau' ,
'knowledgeBaseManagement.totalRecords' : 'Tổng cộng {total} bản ghi' ,
'knowledgeBaseManagement.addKnowledgeBase' : 'Thêm cơ sở kiến thức' ,
'knowledgeBaseManagement.editKnowledgeBase' : 'Chỉnh sửa cơ sở kiến thức' ,
'knowledgeBaseManagement.getKnowledgeBaseListFailed' : 'Không thể lấy danh sách cơ sở kiến thức' ,
'knowledgeBaseManagement.selectKnowledgeBaseFirst' : 'Vui lòng chọn cơ sở kiến thức để xóa trước' ,
'knowledgeBaseManagement.confirmBatchDelete' : 'Bạn có chắc chắn muốn xóa {count} cơ sở kiến thức đã chọn?' ,
'knowledgeBaseManagement.batchDeleteSuccess' : 'Đã xóa thành công {count} cơ sở kiến thức' ,
'knowledgeBaseManagement.deleteFailed' : 'Xóa thất bại, vui lòng thử lại' ,
'knowledgeBaseManagement.operationCancelled' : 'Đã hủy thao tác xóa' ,
'knowledgeBaseManagement.updateSuccess' : 'Cập nhật thành công' ,
'knowledgeBaseManagement.addSuccess' : 'Thêm thành công' ,
'knowledgeBaseManagement.updateFailed' : 'Cập nhật thất bại' ,
'knowledgeBaseManagement.addFailed' : 'Thêm thất bại' ,
'knowledgeBaseManagement.selectAll' : 'Chọn tất cả' ,
'knowledgeBaseManagement.cancelSelectAll' : 'Bỏ chọn tất cả' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Knowledge Base Dialog text
'knowledgeBaseDialog.title' : 'Cơ sở kiến thức' ,
'knowledgeBaseDialog.name' : 'Tên cơ sở kiến thức' ,
'knowledgeBaseDialog.namePlaceholder' : 'Vui lòng nhập chính xác tên cơ sở kiến thức để cải thiện độ chính xác của việc gọi cơ sở kiến thức' ,
'knowledgeBaseDialog.description' : 'Mô tả cơ sở kiến thức' ,
'knowledgeBaseDialog.descriptionPlaceholder' : 'Vui lòng nhập chính xác mô tả cơ sở kiến thức để giúp mô hình hiểu rõ hơn nội dung cơ sở kiến thức' ,
'knowledgeBaseDialog.ragModel' : 'Mô hình RAG' ,
'knowledgeBaseDialog.ragModelPlaceholder' : 'Vui lòng chọn mô hình RAG' ,
'knowledgeBaseDialog.ragModelRequired' : 'Vui lòng chọn mô hình RAG' ,
'knowledgeBaseDialog.loadRAGModelsFailed' : 'Không thể tải danh sách mô hình RAG' ,
'knowledgeBaseDialog.status' : 'Trạng thái' ,
'knowledgeBaseDialog.statusEnabled' : 'Đã bật' ,
'knowledgeBaseDialog.statusDisabled' : 'Đã tắt' ,
'knowledgeBaseDialog.save' : 'Lưu' ,
'knowledgeBaseDialog.cancel' : 'Hủy bỏ' ,
'knowledgeBaseDialog.confirm' : 'Xác nhận' ,
'knowledgeBaseDialog.requiredName' : 'Vui lòng nhập tên cơ sở kiến thức' ,
'knowledgeBaseDialog.nameRequired' : 'Vui lòng nhập tên cơ sở kiến thức' ,
'knowledgeBaseDialog.nameLength' : 'Độ dài tên cơ sở kiến thức nên từ 1 đến 50 ký tự' ,
'knowledgeBaseDialog.namePattern' : 'Tên cơ sở kiến thức chỉ có thể chứa chữ Trung, Anh, số, khoảng trắng, gạch dưới và gạch ngang' ,
'knowledgeBaseDialog.descriptionLength' : 'Mô tả cơ sở kiến thức không được vượt quá 200 ký tự' ,
'knowledgeBaseDialog.nameLengthLimit' : 'Tên cơ sở kiến thức không được vượt quá 50 ký tự' ,
'knowledgeBaseDialog.descriptionLengthLimit' : 'Mô tả cơ sở kiến thức không được vượt quá 200 ký tự' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Knowledge Base Management page new view button text
'knowledgeBaseManagement.view' : 'Quản lý tệp' ,
2025-11-15 17:24:47 +08:00
2025-11-22 11:59:34 +08:00
// Knowledge File Upload page text
'knowledgeFileUpload.back' : 'Quay lại' ,
'knowledgeFileUpload.searchPlaceholder' : 'Vui lòng nhập tên tài liệu để tìm kiếm' ,
'knowledgeFileUpload.search' : 'Tìm kiếm' ,
'knowledgeFileUpload.addDocument' : 'Thêm tài liệu' ,
'knowledgeFileUpload.documentName' : 'Tên tài liệu' ,
'knowledgeFileUpload.uploadTime' : 'Thời gian tải lên' ,
'knowledgeFileUpload.status' : 'Trạng thái' ,
'knowledgeFileUpload.operation' : 'Thao tác' ,
'knowledgeFileUpload.parse' : 'Phân tích cú pháp' ,
'knowledgeFileUpload.viewSlices' : 'Xem các phần' ,
'knowledgeFileUpload.delete' : 'Xóa' ,
'knowledgeFileUpload.itemsPerPage' : 'mục/trang' ,
'knowledgeFileUpload.firstPage' : 'Trang đầu' ,
'knowledgeFileUpload.prevPage' : 'Trang trước' ,
'knowledgeFileUpload.nextPage' : 'Trang sau' ,
'knowledgeFileUpload.totalRecords' : 'Tổng cộng {total} bản ghi' ,
'knowledgeFileUpload.uploadDocument' : 'Tải lên tài liệu' ,
'knowledgeFileUpload.documentNamePlaceholder' : 'Vui lòng nhập tên tài liệu' ,
'knowledgeFileUpload.file' : 'Tệp' ,
'knowledgeFileUpload.clickToUpload' : 'Nhấp để tải lên' ,
'knowledgeFileUpload.uploadTip' : 'Các loại tệp được hỗ trợ: PDF, DOC, DOCX, TXT, MD, CSV, XLS, XLSX, PPT, PPTX. Tối đa 32 tệp mỗi lần tải lên, kích thước mỗi tệp lên đến 10MB' ,
'knowledgeFileUpload.dragOrClick' : 'Kéo tệp vào đây hoặc nhấp để tải lên' ,
'knowledgeFileUpload.cancel' : 'Hủy bỏ' ,
'knowledgeFileUpload.confirm' : 'Xác nhận' ,
'knowledgeFileUpload.knowledgeBaseName' : 'Tên cơ sở kiến thức' ,
'knowledgeFileUpload.statusNotStarted' : 'Chưa bắt đầu' ,
'knowledgeFileUpload.statusProcessing' : 'Đang xử lý' ,
'knowledgeFileUpload.statusCancelled' : 'Đã hủy' ,
'knowledgeFileUpload.statusCompleted' : 'Đã hoàn thành' ,
'knowledgeFileUpload.statusFailed' : 'Thất bại' ,
'knowledgeFileUpload.uploadSuccess' : 'Tải lên tài liệu thành công' ,
'knowledgeFileUpload.uploadFailed' : 'Tải lên tài liệu thất bại' ,
'knowledgeFileUpload.parseSuccess' : 'Phân tích cú pháp tài liệu thành công' ,
'knowledgeFileUpload.parseFailed' : 'Phân tích cú pháp tài liệu thất bại' ,
'knowledgeFileUpload.deleteSuccess' : 'Xóa tài liệu thành công' ,
'knowledgeFileUpload.deleteFailed' : 'Xóa tài liệu thất bại' ,
'knowledgeFileUpload.confirmDelete' : 'Bạn có chắc chắn muốn xóa tài liệu này?' ,
'knowledgeFileUpload.confirmParse' : 'Bạn có chắc chắn muốn phân tích cú pháp tài liệu này?' ,
'knowledgeFileUpload.nameRequired' : 'Vui lòng nhập tên tài liệu' ,
'knowledgeFileUpload.fileRequired' : 'Vui lòng chọn tệp để tải lên' ,
'knowledgeFileUpload.getListFailed' : 'Không thể lấy danh sách tài liệu' ,
'knowledgeFileUpload.parseCancelled' : 'Đã hủy phân tích cú pháp' ,
'knowledgeFileUpload.deleteCancelled' : 'Đã hủy xóa' ,
'knowledgeFileUpload.selectFilesFirst' : 'Vui lòng chọn tệp để xóa trước' ,
'knowledgeFileUpload.selectAll' : 'Chọn tất cả' ,
'knowledgeFileUpload.deselectAll' : 'Bỏ chọn tất cả' ,
'knowledgeFileUpload.batchDelete' : 'Xóa' ,
'knowledgeFileUpload.confirmBatchDelete' : 'Bạn có chắc chắn muốn xóa {count} tệp đã chọn?' ,
'knowledgeFileUpload.batchDeleteSuccess' : 'Đã xóa thành công {count} tệp' ,
'knowledgeFileUpload.batchDeleteFailed' : 'Xóa hàng loạt thất bại' ,
'knowledgeFileUpload.sliceCount' : 'Số lượng phần' ,
'knowledgeFileUpload.add' : 'Thêm' ,
'knowledgeFileUpload.retrievalTest' : 'Kiểm tra truy xuất' ,
'knowledgeFileUpload.testQuestion' : 'Câu hỏi kiểm tra' ,
'knowledgeFileUpload.testQuestionPlaceholder' : 'Vui lòng nhập câu hỏi để kiểm tra' ,
'knowledgeFileUpload.executeTest' : 'Thực thi kiểm tra' ,
'knowledgeFileUpload.testResult' : 'Kết quả kiểm tra:' ,
'knowledgeFileUpload.selectedFiles' : 'Tệp đã chọn' ,
'knowledgeFileUpload.totalSlices' : 'Tổng cộng {total} bản ghi' ,
'knowledgeFileUpload.slice' : 'Phần' ,
'knowledgeFileUpload.noSliceData' : 'Không có dữ liệu phần nào' ,
'knowledgeFileUpload.firstPage' : 'Đầu tiên' ,
'knowledgeFileUpload.prevPage' : 'Trước' ,
'knowledgeFileUpload.nextPage' : 'Tiếp theo' ,
'knowledgeFileUpload.totalRecords' : 'Tổng cộng {total} bản ghi' ,
'knowledgeFileUpload.testQuestion' : 'Câu hỏi kiểm tra' ,
'knowledgeFileUpload.testQuestionPlaceholder' : 'Vui lòng nhập câu hỏi để kiểm tra' ,
'knowledgeFileUpload.runTest' : 'Chạy kiểm tra' ,
'knowledgeFileUpload.testResult' : 'Kết quả kiểm tra:' ,
'knowledgeFileUpload.noRelatedSlices' : 'Không tìm thấy phần liên quan' ,
'knowledgeFileUpload.comprehensiveSimilarity' : 'Độ tương đồng toàn diện' ,
'knowledgeFileUpload.content' : 'Nội dung:' ,
'knowledgeFileUpload.testQuestionRequired' : 'Vui lòng nhập câu hỏi kiểm tra' ,
'knowledgeBaseDialog.descriptionRequired' : 'Vui lòng nhập mô tả cơ sở kiến thức' ,
2025-12-05 14:35:53 +08:00
// Feature Management page text
'featureManagement.selectAll' : 'Chọn tất cả' ,
'featureManagement.deselectAll' : 'Bỏ chọn tất cả' ,
'featureManagement.save' : 'Lưu cấu hình' ,
'featureManagement.reset' : 'Đặt lại' ,
'featureManagement.group.featureManagement' : 'Có bật tính năng/khối này lên hay không' ,
'featureManagement.group.voiceManagement' : 'Khi cấu hình agent, có hiển thị với người dùng hay không' ,
'featureManagement.noFeatures' : 'Chưa có tính năng nào' ,
'featureManagement.contactAdmin' : 'Vui lòng liên hệ quản trị viên để cấu hình tính năng' ,
'featureManagement.saveSuccess' : 'Cấu hình tính năng đã được lưu thành công' ,
'featureManagement.resetConfirm' : 'Bạn có chắc chắn muốn đặt lại tất cả cấu hình tính năng?' ,
'featureManagement.confirm' : 'Xác nhận' ,
'featureManagement.cancel' : 'Hủy bỏ' ,
'featureManagement.resetSuccess' : 'Cấu hình tính năng đã được đặt lại thành công' ,
2025-12-05 18:08:26 +08:00
'featureManagement.noChanges' : 'Không có thay đổi nào để lưu' ,
2025-12-05 14:35:53 +08:00
// Feature names and descriptions
'feature.voiceprintRecognition.name' : 'Nhận dạng giọng nói' ,
'feature.voiceprintRecognition.description' : 'Xác minh danh tính người dùng thông qua công nghệ nhận dạng giọng nói, cung cấp trải nghiệm tương tác giọng nói an toàn' ,
'feature.voiceClone.name' : 'Nhân bản âm sắc' ,
'feature.voiceClone.description' : 'Sử dụng công nghệ AI để nhân bản âm sắc cụ thể, đạt được tổng hợp giọng nói cá nhân hóa' ,
'feature.knowledgeBase.name' : 'Cơ sở kiến thức' ,
'feature.knowledgeBase.description' : 'Xây dựng và quản lý hệ thống cơ sở kiến thức, cung cấp hỗ trợ kiến thức chuyên môn cho trợ lý AI' ,
'feature.mcpAccessPoint.name' : 'Điểm truy cập MCP' ,
'feature.mcpAccessPoint.description' : 'Cung cấp điểm truy cập giao thức MCP, hỗ trợ tích hợp các công cụ và dịch vụ bên ngoài' ,
'feature.vad.name' : 'Phát hiện hoạt động giọng nói' ,
'feature.vad.description' : 'Tự động phát hiện hoạt động giọng nói, tối ưu hóa hiệu suất phản hồi tương tác giọng nói' ,
'feature.asr.name' : 'Nhận dạng giọng nói' ,
'feature.asr.description' : 'Chuyển đổi giọng nói thành văn bản, thực hiện chức năng tương tác ngôn ngữ tự nhiên' ,
2025-11-15 17:24:47 +08:00
}