export default { // 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!', // 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ủ', 'header.featureManagement': 'Cấu hình chức năng hệ thống', 'header.changePassword': 'Đổi mật khẩu', 'header.logout': 'Đăng xuất', 'header.searchPlaceholder': 'Tìm tên hoặc MAC', // 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ụ...', // 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', // 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ị', // 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ị', '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', // 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ị.', // 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', // 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', // 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', // 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', // 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', // 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', // 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', // 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...', // 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', // AddModelDialog component related 'addModelDialog.requiredSupplier': 'Vui lòng chọn nhà cung cấp', // 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', // 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', // Login page text 'login.title': 'DN', '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', // 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 ý', // 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', // 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', // 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', // Cache related 'cache.viewer': 'Trình xem cache', // 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', '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', // Common buttons 'button.ok': 'OK', 'button.cancel': 'Hủy bỏ', 'button.save': 'Lưu', 'button.close': 'Đóng', // System information 'system.name': 'Dịch vụ XiaoZhi', // 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', // 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', // 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', // 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', // 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', // Language switch 'language.zhCN': '中文简体', 'language.zhTW': '中文繁體', 'language.en': 'English', 'language.de': 'Deutsch', 'language.vi': 'Tiếng Việt', // 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', // 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', '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.', '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', // 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', // 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', // 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', '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', // 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', // 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', 'modelConfig.provider': 'Loại giao diện', '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', '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', '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...', // 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', // 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?', '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', // 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', // 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', // 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', // 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', // 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', // 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', // 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', // 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ả', // 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ự', // Knowledge Base Management page new view button text 'knowledgeBaseManagement.view': 'Quản lý tệp', // 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', // 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', 'featureManagement.noChanges': 'Không có thay đổi nào để lưu', // 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', }