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ên, thẻ hoặc tìm kiếm 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.deviceThemeGeneration': 'Tạo chủ đề thiết bị',
  '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.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',
  'language.ptBR': 'Português (Brasil)',

  // 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.addTag': 'Thêm mới nhãn',
  '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.language': 'Chọn ngôn ngữ',
  'roleConfig.selectLanguage': 'Vui lòng chọn ngôn ngữ',
  'roleConfig.voiceType': 'Loại giọng nói',
  'roleConfig.ttsVolume': 'Âm lượng',
  'roleConfig.ttsRate': 'Tốc độ',
  'roleConfig.ttsPitch': 'Cao độ',
  'roleConfig.ttsAdvanced': 'Tham số TTS',
  'roleConfig.advancedSettings': 'Giọng nói',
  'roleConfig.volumeHint': '-100=Tối thiểu, 0=Tiêu chuẩn, 100=Tối đa',
  'roleConfig.speedHint': '-100=Chậm nhất, 0=Tiêu chuẩn, 100=Nhanh nhất',
  'roleConfig.pitchHint': '-100=Thấp nhất, 0=Tiêu chuẩn, 100=Cao nhất',
  '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.defaultModelCannotDisable': 'Cấu hình mô hình mặc định không thể tắt',
  '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.languages': 'Ngôn ngữ',
  'voiceClone.languagesPlaceholder': 'Vui lòng nhập ngôn ngữ, ví dụ: Tiếng Việt, English',
  'voiceClone.languagesRequired': 'Vui lòng nhập ngôn ngữ',
  '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/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',

}