Files
xiaozhi-esp32-server/main/manager-web/src/i18n/en.js
T

1119 lines
56 KiB
JavaScript

export default {
// Login page related prompt text
'login.requiredUsername': 'Username cannot be empty',
'login.requiredPassword': 'Password cannot be empty',
'login.requiredCaptcha': 'Captcha cannot be empty',
'login.requiredMobile': 'Please enter a valid mobile phone number',
'login.loginSuccess': 'Login successful!',
// HeaderBar组件文本
'header.smartManagement': 'Agents',
'header.modelConfig': 'Models',
'header.voiceCloneManagement': 'Voice Clone',
'header.voiceResourceManagement': 'Voice Resource',
'header.userManagement': 'Users',
'header.otaManagement': 'OTA Management',
'header.paramDictionary': 'More',
'header.paramManagement': 'Params Management',
'header.dictManagement': 'Dict Management',
'header.agentTemplate': 'Default Role Templates', // 添加这一行
'header.searchHistory': 'Search History',
'header.clearHistory': 'Clear History',
'header.providerManagement': 'Provider Management',
'header.serverSideManagement': 'Server Management',
'header.changePassword': 'Change Password',
'header.logout': 'Logout',
'header.searchPlaceholder': 'Search by name..',
// McpToolCallDialog component text
'mcpToolCall.title': 'Tool Call',
'mcpToolCall.execute': 'Execute',
'mcpToolCall.chooseFunction': '1、Choose Function',
'mcpToolCall.searchFunction': 'Search Function',
'mcpToolCall.noResults': 'No matching functions found',
'mcpToolCall.settings': '2、Parameter Settings',
'mcpToolCall.inputPlaceholder': 'Please enter {label}',
'mcpToolCall.valueRange': 'Value range: {min} - {max}',
'mcpToolCall.selectPlaceholder': 'Please select {label}',
'mcpToolCall.lightTheme': 'Light Theme',
'mcpToolCall.darkTheme': 'Dark Theme',
'mcpToolCall.pleaseSelect': 'Please select a function',
'mcpToolCall.cancel': 'Cancel',
'mcpToolCall.requiredField': 'Please enter {field}',
'mcpToolCall.minValue': 'Minimum value is {value}',
'mcpToolCall.maxValue': 'Maximum value is {value}',
'mcpToolCall.selectTool': 'Please select a tool to execute',
'mcpToolCall.executionResult': '3、Execution Result',
'mcpToolCall.copyResult': 'Copy Result',
'mcpToolCall.noResultYet': 'No result yet',
'mcpToolCall.loadingToolList': 'Loading tool list...',
// Tool names
'mcpToolCall.toolName.getDeviceStatus': 'View Device Status',
'mcpToolCall.toolName.setVolume': 'Set Volume',
'mcpToolCall.toolName.setBrightness': 'Set Brightness',
'mcpToolCall.toolName.setTheme': 'Set Theme',
'mcpToolCall.toolName.takePhoto': 'Take Photo & Recognize',
'mcpToolCall.toolName.getSystemInfo': 'System Info',
'mcpToolCall.toolName.reboot': 'Reboot Device',
'mcpToolCall.toolName.upgradeFirmware': 'Upgrade Firmware',
'mcpToolCall.toolName.getScreenInfo': 'Screen Info',
'mcpToolCall.toolName.snapshot': 'Screen Snapshot',
'mcpToolCall.toolName.previewImage': 'Preview Image',
'mcpToolCall.toolName.setDownloadUrl': 'Set Download URL',
// Tool categories
'mcpToolCall.category.audio': 'Audio',
'mcpToolCall.category.display': 'Display',
'mcpToolCall.category.camera': 'Camera',
'mcpToolCall.category.system': 'System',
'mcpToolCall.category.assets': 'Assets',
'mcpToolCall.category.deviceInfo': 'Device Info',
// Table categories and properties
'mcpToolCall.table.audioSpeaker': 'Audio Speaker',
'mcpToolCall.table.screen': 'Screen',
'mcpToolCall.table.network': 'Network',
'mcpToolCall.table.audioControl': 'Audio Control',
'mcpToolCall.table.screenControl': 'Screen Control',
'mcpToolCall.table.systemControl': 'System Control',
'mcpToolCall.table.screenInfo': 'Screen Info',
'mcpToolCall.table.hardwareInfo': 'Hardware Info',
'mcpToolCall.table.memoryInfo': 'Memory Info',
'mcpToolCall.table.applicationInfo': 'Application Info',
'mcpToolCall.table.networkInfo': 'Network Info',
'mcpToolCall.table.displayInfo': 'Display Info',
'mcpToolCall.table.deviceInfo': 'Device Info',
'mcpToolCall.table.systemInfo': 'System Info',
// Table column headers
'mcpToolCall.table.component': 'Component',
'mcpToolCall.table.property': 'Property',
'mcpToolCall.table.value': 'Value',
'mcpToolCall.prop.volume': 'Volume',
'mcpToolCall.prop.brightness': 'Brightness',
'mcpToolCall.prop.theme': 'Theme',
'mcpToolCall.prop.type': 'Type',
'mcpToolCall.prop.ssid': 'SSID',
'mcpToolCall.prop.signalStrength': 'Signal Strength',
'mcpToolCall.prop.operationResult': 'Operation Result',
'mcpToolCall.prop.width': 'Width',
'mcpToolCall.prop.height': 'Height',
'mcpToolCall.prop.screenType': 'Type',
'mcpToolCall.prop.chipModel': 'Chip Model',
'mcpToolCall.prop.cpuCores': 'CPU Cores',
'mcpToolCall.prop.chipVersion': 'Chip Version',
'mcpToolCall.prop.flashSize': 'Flash Size',
'mcpToolCall.prop.minFreeHeap': 'Minimum Free Heap',
'mcpToolCall.prop.applicationName': 'Application Name',
'mcpToolCall.prop.applicationVersion': 'Application Version',
'mcpToolCall.prop.compileTime': 'Compile Time',
'mcpToolCall.prop.idfVersion': 'IDF Version',
'mcpToolCall.prop.macAddress': 'MAC Address',
'mcpToolCall.prop.ipAddress': 'IP Address',
'mcpToolCall.prop.wifiName': 'WiFi Name',
'mcpToolCall.prop.wifiChannel': 'WiFi Channel',
'mcpToolCall.prop.screenSize': 'Screen Size',
'mcpToolCall.prop.deviceUuid': 'Device UUID',
'mcpToolCall.prop.systemLanguage': 'System Language',
'mcpToolCall.prop.currentOtaPartition': 'Current OTA Partition',
'mcpToolCall.prop.getResult': 'Get Result',
'mcpToolCall.prop.url': 'URL',
'mcpToolCall.prop.quality': 'Quality',
'mcpToolCall.prop.question': 'Question',
// Tool help texts
'mcpToolCall.help.getDeviceStatus': 'View the current running status of the device, including volume, screen, battery and other information.',
'mcpToolCall.help.setVolume': 'Adjust the volume of the device, please enter a value between 0-100.',
'mcpToolCall.help.setBrightness': 'Adjust the brightness of the device screen, please enter a value between 0-100.',
'mcpToolCall.help.setTheme': 'Switch the display theme of the device screen, you can choose light or dark mode.',
'mcpToolCall.help.takePhoto': 'Take photos with the device camera and perform recognition analysis, please enter the question you want to ask.',
'mcpToolCall.help.getSystemInfo': 'Get the system information of the device, including hardware specifications, software version, etc.',
'mcpToolCall.help.reboot': 'Reboot the device, the device will restart after execution.',
'mcpToolCall.help.upgradeFirmware': 'Download and upgrade the device firmware from the specified URL, the device will restart automatically after the upgrade.',
'mcpToolCall.help.getScreenInfo': 'Get detailed information about the screen, such as resolution, size and other parameters.',
'mcpToolCall.help.snapshot': 'Take a screenshot of the current screen and upload it to the specified URL.',
'mcpToolCall.help.previewImage': 'Preview images from the specified URL on the device screen.',
'mcpToolCall.help.setDownloadUrl': 'Set the download address for device resource files.',
// Other text
'mcpToolCall.text.strong': 'Strong',
'mcpToolCall.text.medium': 'Medium',
'mcpToolCall.text.weak': 'Weak',
'mcpToolCall.text.dark': 'Dark',
'mcpToolCall.text.light': 'Light',
'mcpToolCall.text.setSuccess': 'Setting successful',
'mcpToolCall.text.setFailed': 'Setting failed',
'mcpToolCall.text.brightnessSetSuccess': 'Brightness setting successful',
'mcpToolCall.text.brightnessSetFailed': 'Brightness setting failed',
'mcpToolCall.text.themeSetSuccess': 'Theme setting successful',
'mcpToolCall.text.themeSetFailed': 'Theme setting failed',
'mcpToolCall.text.rebootCommandSent': 'Reboot command sent',
'mcpToolCall.text.rebootFailed': 'Reboot failed',
'mcpToolCall.text.monochrome': 'Monochrome Screen',
'mcpToolCall.text.color': 'Color Screen',
'mcpToolCall.text.getSuccessParseFailed': 'Get successful, but parse failed',
'mcpToolCall.text.getFailed': 'Get failed',
'mcpToolCall.text.getSuccessFormatError': 'Get successful, but data format is abnormal',
// Dictionary data dialog related
'dictDataDialog.addDictData': 'Add Dictionary Data',
'dictDataDialog.dictLabel': 'Dictionary Label',
'dictDataDialog.dictLabelPlaceholder': 'Please enter dictionary label',
'dictDataDialog.dictValue': 'Dictionary Value',
'dictDataDialog.dictValuePlaceholder': 'Please enter dictionary value',
'dictDataDialog.sort': 'Sort',
'dictDataDialog.requiredDictLabel': 'Please enter dictionary label',
'dictDataDialog.requiredDictValue': 'Please enter dictionary value',
// Dictionary type dialog related
'dictTypeDialog.addDictType': 'Add Dictionary Type',
'dictTypeDialog.dictName': 'Dictionary Type Name',
'dictTypeDialog.dictNamePlaceholder': 'Please enter dictionary type name',
'dictTypeDialog.dictType': 'Dictionary Type Code',
'dictTypeDialog.dictTypePlaceholder': 'Please enter dictionary type code',
'dictTypeDialog.requiredDictName': 'Please enter dictionary type name',
'dictTypeDialog.requiredDictType': 'Please enter dictionary type code',
// Audio edit dialog related
'editVoiceDialog.voiceCode': 'Voice Code',
'editVoiceDialog.voiceCodePlaceholder': 'Please enter voice code',
'editVoiceDialog.voiceName': 'Voice Name',
'editVoiceDialog.voiceNamePlaceholder': 'Please enter voice name',
'editVoiceDialog.languageType': 'Language Type',
'editVoiceDialog.languageTypePlaceholder': 'Please enter language type',
'editVoiceDialog.sortNumber': 'Sort Number',
'editVoiceDialog.remark': 'Remark',
'editVoiceDialog.remarkPlaceholder': 'Please enter remark content',
'editVoiceDialog.generatePreview': 'Generate Preview',
'editVoiceDialog.defaultVoiceName': 'Wawa Xiaohe',
'editVoiceDialog.defaultLanguageType': 'Chinese',
'editVoiceDialog.requiredVoiceCode': 'Please enter voice code',
'editVoiceDialog.requiredVoiceName': 'Please enter voice name',
// Firmware dialog related
'firmwareDialog.firmwareName': 'Firmware Name',
'firmwareDialog.firmwareNamePlaceholder': 'Please enter firmware name (board + version)',
'firmwareDialog.firmwareType': 'Firmware Type',
'firmwareDialog.firmwareTypePlaceholder': 'Please select firmware type',
'firmwareDialog.version': 'Version',
'firmwareDialog.versionPlaceholder': 'Please enter version (x.x.x format)',
'firmwareDialog.firmwareFile': 'Firmware File',
'firmwareDialog.clickUpload': 'Click to Upload',
'firmwareDialog.uploadTip': 'Only firmware files (.bin/.apk) are supported, and size should not exceed 100MB',
'firmwareDialog.uploadHint': 'Warm reminder: Please upload the pre-merged xiaozhi.bin file, not the merged merged-binary.bin file',
'firmwareDialog.remark': 'Remark',
'firmwareDialog.remarkPlaceholder': 'Please enter remark information',
'firmwareDialog.requiredFirmwareName': 'Please enter firmware name (board + version)',
'firmwareDialog.requiredFirmwareType': 'Please select firmware type',
'firmwareDialog.requiredVersion': 'Please enter version',
'firmwareDialog.versionFormatError': 'Version format is incorrect, please enter x.x.x format',
'firmwareDialog.requiredFirmwareFile': 'Please upload firmware file',
'firmwareDialog.invalidFileType': 'Only .bin/.apk format firmware files are supported!',
'firmwareDialog.invalidFileSize': 'Firmware file size cannot exceed 100MB!',
'firmwareDialog.uploadSuccess': 'Firmware file uploaded successfully',
'firmwareDialog.uploadFailed': 'File upload failed',
// Voice print dialog related
'voicePrintDialog.addSpeaker': 'Add Speaker',
'voicePrintDialog.voicePrintVector': 'Voice Print Vector',
'voicePrintDialog.selectVoiceMessage': 'Please select a voice message',
'voicePrintDialog.name': 'Name',
'voicePrintDialog.enterName': 'Please enter name',
'voicePrintDialog.description': 'Description',
'voicePrintDialog.enterDescription': 'Please enter description',
'voicePrintDialog.save': 'Save',
'voicePrintDialog.cancel': 'Cancel',
'voicePrintDialog.requiredDescription': 'Please enter description',
'voicePrintDialog.requiredName': 'Please enter name',
'voicePrintDialog.requiredAudioVector': 'Please select audio vector',
// Voice print page related
'voicePrint.pageTitle': 'Voice Print Recognition',
'voicePrint.name': 'Name',
'voicePrint.description': 'Description',
'voicePrint.createTime': 'Creation Time',
'voicePrint.action': 'Action',
'voicePrint.edit': 'Edit',
'voicePrint.delete': 'Delete',
'voicePrint.add': 'Add',
'voicePrint.addSpeaker': 'Add Speaker',
'voicePrint.editSpeaker': 'Edit Speaker',
'voicePrint.fetchFailed': 'Failed to fetch voice print list',
'voicePrint.updateSuccess': 'Update successful',
'voicePrint.addSuccess': 'Add successful',
'voicePrint.confirmDelete': 'Are you sure you want to delete this voice print?',
'voicePrint.warning': 'Warning',
'voicePrint.confirm': 'Confirm',
'voicePrint.cancel': 'Cancel',
'voicePrint.deleteSuccess': 'Successfully deleted this voice print',
'voicePrint.deleteFailed': 'Deletion failed, please try again',
'voicePrint.cancelDelete': 'Deletion operation canceled',
'voicePrint.closeOperation': 'Operation closed',
'voicePrint.loading': 'Loading...',
// Manual add device dialog related
'manualAddDeviceDialog.title': 'Manual Add Device',
'manualAddDeviceDialog.deviceType': 'Device Type',
'manualAddDeviceDialog.deviceTypePlaceholder': 'Please select device type',
'manualAddDeviceDialog.firmwareVersion': 'Firmware Version',
'manualAddDeviceDialog.firmwareVersionPlaceholder': 'Please enter firmware version',
'manualAddDeviceDialog.macAddress': 'Mac Address',
'manualAddDeviceDialog.macAddressPlaceholder': 'Please enter Mac address',
'manualAddDeviceDialog.confirm': 'Confirm',
'manualAddDeviceDialog.cancel': 'Cancel',
'manualAddDeviceDialog.requiredMacAddress': 'Please enter Mac address',
'manualAddDeviceDialog.invalidMacAddress': 'Please enter correct Mac address format, e.g.: 00:1A:2B:3C:4D:5E',
'manualAddDeviceDialog.requiredDeviceType': 'Please select device type',
'manualAddDeviceDialog.requiredFirmwareVersion': 'Please enter firmware version',
'manualAddDeviceDialog.getFirmwareTypeFailed': 'Failed to get firmware type',
'manualAddDeviceDialog.addSuccess': 'Device added successfully',
'manualAddDeviceDialog.addFailed': 'Failed to add',
// AddModelDialog component related
'addModelDialog.requiredSupplier': 'Please select a supplier',
// Register page related
'register.title': 'Create Account',
'register.welcome': 'Welcome to XiaoZhi AI',
'register.usernamePlaceholder': 'Please enter username',
'register.mobilePlaceholder': 'Please enter mobile phone number',
'register.captchaPlaceholder': 'Please enter captcha',
'register.mobileCaptchaPlaceholder': 'Please enter SMS verification code',
'register.passwordPlaceholder': 'Please set password',
'register.confirmPasswordPlaceholder': 'Please confirm password',
'register.goToLogin': 'Already have an account? Login',
'register.registerButton': 'Register',
'register.agreeTo': 'By registering, you agree to our',
'register.userAgreement': 'User Agreement',
'register.privacyPolicy': 'Privacy Policy',
'register.notAllowRegister': 'User registration is not allowed',
'register.captchaLoadFailed': 'Failed to load captcha',
'register.inputCaptcha': 'Please enter captcha',
'register.inputCorrectMobile': 'Please enter correct mobile phone number',
'register.captchaSendSuccess': 'Verification code sent successfully',
'register.captchaSendFailed': 'Failed to send verification code',
'register.passwordsNotMatch': 'Passwords do not match',
'register.registerSuccess': 'Registration successful!',
'register.registerFailed': 'Registration failed',
'register.requiredUsername': 'Username cannot be empty',
'register.requiredPassword': 'Password cannot be empty',
'register.requiredCaptcha': 'Captcha cannot be empty',
'register.requiredMobileCaptcha': 'Please enter SMS verification code',
'register.invalidCaptcha': 'Invalid verification code',
'register.passwordLength': 'Password length must be between 6-20 characters',
'register.usernameFormat': 'Invalid username format',
'register.confirmPasswordRequired': 'Confirm password cannot be empty',
'register.sendCaptcha': 'Get Verification Code',
'register.secondsLater': 'seconds later',
// Parameter dialog related
'paramDialog.paramCode': 'Parameter Code',
'paramDialog.paramCodePlaceholder': 'Please enter parameter code',
'paramDialog.paramValue': 'Parameter Value',
'paramDialog.paramValuePlaceholder': 'Please enter parameter value',
'paramDialog.valueType': 'Value Type',
'paramDialog.valueTypePlaceholder': 'Please select value type',
'paramDialog.remark': 'Remark',
'paramDialog.remarkPlaceholder': 'Please enter remark',
'paramDialog.save': 'Save',
'paramDialog.cancel': 'Cancel',
'paramDialog.requiredParamCode': 'Please enter parameter code',
'paramDialog.requiredParamValue': 'Please enter parameter value',
'paramDialog.requiredValueType': 'Please select value type',
'paramDialog.stringType': 'String',
'paramDialog.numberType': 'Number',
'paramDialog.booleanType': 'Boolean',
'paramDialog.arrayType': 'Array',
'paramDialog.jsonType': 'JSON Object',
// Login page text
'login.title': 'Login',
'login.welcome': 'WELCOME TO LOGIN',
'login.username': 'Username',
'login.usernamePlaceholder': 'Please enter username',
'login.mobilePlaceholder': 'Please enter mobile number',
'login.password': 'Password',
'login.passwordPlaceholder': 'Please enter password',
'login.captchaPlaceholder': 'Please enter verification code',
'login.loginButton': 'Login',
'login.login': 'Login',
'login.register': 'Register',
'login.forgotPassword': 'Forgot Password',
'login.forgetPassword': 'Forgot Password?',
'login.mobileLogin': 'Mobile Login',
'login.usernameLogin': 'Username Login',
'login.agreeTo': 'Login implies acceptance of',
'login.userAgreement': 'User Agreement',
'login.and': 'and',
'login.privacyPolicy': 'Privacy Policy',
'login.registerAccount': 'Register Account',
// Retrieve password page text
'retrievePassword.title': 'Reset Password',
'retrievePassword.welcome': 'PASSWORD RETRIEVE',
'retrievePassword.subtitle': 'Retrieve Password',
'retrievePassword.mobile': 'Mobile',
'retrievePassword.mobilePlaceholder': 'Please enter mobile number',
'retrievePassword.captcha': 'Verification Code',
'retrievePassword.captchaPlaceholder': 'Please enter verification code',
'retrievePassword.mobileCaptcha': 'Mobile Verification Code',
'retrievePassword.mobileCaptchaPlaceholder': 'Please enter mobile verification code',
'retrievePassword.newPassword': 'New Password',
'retrievePassword.newPasswordPlaceholder': 'Please enter new password',
'retrievePassword.confirmNewPassword': 'Confirm New Password',
'retrievePassword.confirmNewPasswordPlaceholder': 'Please confirm new password',
'retrievePassword.getMobileCaptcha': 'Get Verification Code',
'retrievePassword.resetButton': 'Reset Password',
'retrievePassword.updateButton': 'Update Now',
'retrievePassword.goToLogin': 'Back to Login',
'retrievePassword.inputCorrectMobile': 'Please enter correct mobile number',
'retrievePassword.captchaSendSuccess': 'Verification code sent successfully',
'retrievePassword.passwordsNotMatch': 'Two password entries do not match',
'retrievePassword.passwordLength': 'Password length must be between 6-20 characters',
'retrievePassword.mobileRequired': 'Mobile number cannot be empty',
'retrievePassword.captchaRequired': 'Verification code cannot be empty',
'retrievePassword.mobileCaptchaRequired': 'Mobile verification code cannot be empty',
'retrievePassword.newPasswordRequired': 'New password cannot be empty',
'retrievePassword.confirmNewPasswordRequired': 'Confirm new password cannot be empty',
'retrievePassword.passwordUpdateSuccess': 'Password updated successfully',
'retrievePassword.agreeTo': 'Reset means agree',
// Change password page text
'changePassword.title': 'Change Password',
'changePassword.oldPasswordLabel': 'Old Password:',
'changePassword.oldPasswordPlaceholder': 'Please enter old password',
'changePassword.newPasswordLabel': 'New Password:',
'changePassword.newPasswordPlaceholder': 'Please enter new password',
'changePassword.confirmPasswordLabel': 'Confirm New Password:',
'changePassword.confirmPasswordPlaceholder': 'Please re-enter new password',
'changePassword.confirmButton': 'Confirm',
'changePassword.cancelButton': 'Cancel',
'changePassword.allFieldsRequired': 'Please fill in all fields',
'changePassword.passwordsNotMatch': 'Two new password entries do not match',
'changePassword.newPasswordSameAsOld': 'New password cannot be the same as old password',
'changePassword.passwordChangedSuccessfully': 'Password changed successfully, please login again',
'changePassword.changeFailed': 'Password change failed',
// Device management page text
'device.management': 'Device Management',
'device.add': 'Add Device',
'device.edit': 'Edit Device',
'device.delete': 'Delete Device',
'device.name': 'Device Name',
'device.type': 'Device Type',
'device.status': 'Device Status',
'device.dialogTitle': 'Add Device',
'device.verificationCode': 'Verification Code:',
'device.verificationCodePlaceholder': 'Please enter the 6-digit verification code broadcasted by the device..',
'device.confirmButton': 'Confirm',
'device.cancelButton': 'Cancel',
'device.input6DigitCode': 'Please enter a 6-digit verification code',
'device.bindSuccess': 'Device binding successful',
'device.bindFailed': 'Binding failed',
'device.searchPlaceholder': 'Please enter device model or Mac address to search',
'device.model': 'Device Model',
'device.macAddress': 'Mac Address',
'device.firmwareVersion': 'Firmware Version',
'device.bindTime': 'Binding Time',
'device.lastConversation': 'Last Conversation',
'device.remark': 'Remark',
'device.autoUpdate': 'Auto Update',
'device.operation': 'Operation',
'device.search': 'Search',
'device.selectAll': 'Select All/Deselect All',
'deviceManagement.loading': 'Loading...',
'device.bindWithCode': '6-digit Verification Code Binding',
'device.manualAdd': 'Manual Add',
'device.unbind': 'Unbind',
'device.toolCall': 'Tool Call',
'device.selectAtLeastOne': 'Please select at least one record',
'device.confirmBatchUnbind': 'Are you sure you want to unbind {count} selected devices?',
'device.batchUnbindSuccess': 'Successfully unbound {count} devices',
'device.batchUnbindError': 'Error occurred during batch unbinding',
'device.remarkTooLong': 'Remark cannot exceed 64 characters',
'device.remarkSaved': 'Remark saved successfully',
'device.remarkSaveFailed': 'Failed to save remark',
'device.confirmUnbind': 'Are you sure you want to unbind this device?',
'device.unbindSuccess': 'Device unbound successfully',
'device.unbindFailed': 'Failed to unbind device',
'device.getListFailed': 'Failed to fetch device list',
'device.autoUpdateEnabled': 'Auto update enabled',
'device.autoUpdateDisabled': 'Auto update disabled',
'device.batchUnbindSuccess': 'Successfully unbound {count} devices',
'device.getFirmwareTypeFailed': 'Failed to fetch firmware type',
'device.deviceStatus': 'Status',
'device.online': 'Online',
'device.offline': 'Offline',
// Message tips
'message.success': 'Operation Successful',
'message.error': 'Operation Failed',
'message.warning': 'Warning',
'message.info': 'Information',
// Cache related
'cache.viewer': 'Cache Viewer',
// Chat history dialog related
'chatHistory.with': 'With',
'chatHistory.dialogTitle': "'s Chat History",
'chatHistory.loading': 'Loading...',
'chatHistory.noMoreRecords': 'No more records',
'chatHistory.selectSession': 'Please select a session to view chat history',
'chatHistory.today': 'Today',
'chatHistory.yesterday': 'Yesterday',
'chatHistory.downloadCurrentSession': 'Download current session chat history',
'chatHistory.downloadCurrentWithPreviousSessions': 'Download current and previous 20 sessions chat history',
'chatHistory.downloadLinkFailed': 'Failed to get download link',
'cache.status': 'Cache Status',
'cache.cdnEnabled': 'CDN Mode Enabled',
'cache.cdnDisabled': 'CDN Mode Disabled',
'cache.serviceWorkerRegistered': 'Service Worker Registered',
'cache.serviceWorkerNotRegistered': 'Service Worker Not Registered',
'cache.noCacheDetected': 'No cache detected yet, please refresh the page or wait for cache to be established',
'cache.swDevEnvWarning': 'In development environment, Service Worker may not initialize cache properly',
'cache.swCheckMethods': 'Please try the following methods to check if Service Worker is working:',
'cache.swCheckMethod1': 'Check Service Worker status in Application/Application tab of developer tools',
'cache.swCheckMethod2': 'View cache content in Application/Cache/Cache Storage of developer tools',
'cache.swCheckMethod3': 'Use production build (npm run build) and access through HTTP server to test full functionality',
'cache.swDevEnvNormal': 'In development environment, this is normal',
'cache.swProdOnly': 'Service Worker usually only works in production environment',
'cache.swTestingTitle': 'To test Service Worker functionality:',
'cache.swTestingStep1': 'Run npm run build to build production version',
'cache.swTestingStep2': 'Access the built page through HTTP server',
'cache.swNotSupported': 'The current browser does not support Service Worker, CDN resource caching function is unavailable',
'cache.dialogTitle': 'CDN Resource Cache Status',
'cache.loading': 'Loading cache information...',
'cache.notSupported': 'Your browser does not support Cache API or Service Worker is not installed',
'cache.refreshPage': 'Refresh Page',
'cache.noCachedResources': 'No cached CDN resources found',
'cache.noCachedResourcesDesc': 'Service Worker may not have completed initialization or cache has not been established. Please refresh the page or try again later.',
'cache.cdnCacheStatus': 'CDN Resource Cache Status',
'cache.totalCachedResources': 'Found {count} cached resources in total',
'cache.jsResources': 'JavaScript Resources ({count})',
'cache.cssResources': 'CSS Resources ({count})',
'cache.cached': 'Cached',
'cache.notCached': 'Not Cached',
'cache.refreshStatus': 'Refresh Cache Status',
'cache.clearCache': 'Clear Cache',
'cache.refreshingStatus': 'Refreshing cache status',
'cache.confirmClear': 'Are you sure you want to clear all cache?',
'cache.clearedSuccess': 'Cache cleared successfully',
'cache.clearFailed': 'Failed to clear cache',
'cache.clearCanceled': 'Clear operation canceled',
// Common buttons
'button.ok': 'OK',
'button.cancel': 'Cancel',
'button.save': 'Save',
'button.close': 'Close',
// System information
'system.name': 'XiaoZhi Service',
// Voiceprint related
'voiceprint.management': 'Voiceprint Management',
'voiceprint.add': 'Add Voiceprint',
'voiceprint.delete': 'Delete Voiceprint',
// Dictionary management page text
'dictManagement.pageTitle': 'Dictionary Management',
'dictManagement.searchPlaceholder': 'Please enter dict value label to search',
'dictManagement.search': 'Search',
'dictManagement.dictTypeName': 'Dict Type Name',
'dictManagement.operation': 'Operation',
'dictManagement.edit': 'Edit',
'dictManagement.dictLabel': 'Dict Label',
'dictManagement.dictValue': 'Dict Value',
'dictManagement.sort': 'Sort',
'dictManagement.delete': 'Delete',
'dictManagement.selectAll': 'Select All',
'dictManagement.deselectAll': 'Deselect All',
'dictManagement.addDictType': 'Add Dict Type',
'dictManagement.batchDeleteDictType': 'Batch Delete Dict Types',
'dictManagement.addDictData': 'Add Dict Data',
'dictManagement.batchDeleteDictData': 'Batch Delete Dict Data',
'dictManagement.itemsPerPage': '{items} items/page',
'dictManagement.firstPage': 'First Page',
'dictManagement.prevPage': 'Previous Page',
'dictManagement.nextPage': 'Next Page',
'dictManagement.totalRecords': 'Total {total} records',
'dictManagement.editDictType': 'Edit Dict Type',
'dictManagement.editDictData': 'Edit Dict Data',
'dictManagement.saveSuccess': 'Save Success',
'dictManagement.deleteSuccess': 'Delete Success',
'dictManagement.selectDictTypeToDelete': 'Please select dict types to delete',
'dictManagement.confirmDeleteDictType': 'Are you sure you want to delete the selected dict types?',
'dictManagement.confirm': 'Confirm',
'dictManagement.cancel': 'Cancel',
'dictManagement.selectDictTypeFirst': 'Please select a dict type first',
'dictManagement.confirmDeleteDictData': 'Are you sure you want to delete this dict data?',
'dictManagement.selectDictDataToDelete': 'Please select dict data to delete',
'dictManagement.confirmBatchDeleteDictData': 'Are you sure you want to delete {count} selected dict data items?',
'dictManagement.getDictDataFailed': 'Failed to get dict data',
// User information
'user.info': 'User Information',
'user.username': 'Username',
'user.mobile': 'Mobile Phone',
'user.userid': 'User ID',
'user.deviceCount': 'Device Count',
'user.createDate': 'Registration Time',
'user.status': 'Status',
'user.normal': 'Normal',
'user.disabled': 'Disabled',
'user.resetPassword': 'Reset Password',
'user.disableAccount': 'Disable Account',
'user.enableAccount': 'Enable Account',
'user.deleteUser': 'Delete User',
'user.deselectAll': 'Deselect All',
'user.selectAll': 'Select All',
'user.enable': 'Enable',
'user.disable': 'Disable',
'user.delete': 'Delete',
'user.selectUsersFirst': 'Please select users to delete first',
'user.confirmDeleteSelected': 'Are you sure you want to delete {count} selected users?',
'user.deleting': 'Deleting...',
'user.deleteSuccess': 'Successfully deleted {count} users',
'user.deleteFailed': 'Deletion failed, please try again',
'user.partialDelete': 'Successfully deleted {successCount} users, {failCount} failed to delete',
'user.deleteError': 'An error occurred during deletion',
'user.deleteCancelled': 'Deletion cancelled',
'user.confirmResetPassword': 'A new password will be generated after reset. Continue?',
'user.resetPasswordSuccess': 'Password has been reset, please notify the user to log in with the new password',
'user.generatedPassword': 'Generated Default Password',
'user.confirmDeleteUser': 'Are you sure you want to delete this user?',
'user.deleteUserSuccess': 'Deletion successful',
'user.operationFailed': 'Operation failed, please try again',
'user.confirmStatusChange': 'Are you sure you want to {action} {count} selected users?',
'user.statusChangeSuccess': 'Successfully {action} {count} users',
'user.invalidUserId': 'There are invalid user IDs',
'user.searchPhone': 'Please enter mobile phone number to search',
'user.search': 'Search',
// Provider Management Page Text
'providerManagement.categoryFilter': 'Category Filter',
'providerManagement.searchPlaceholder': 'Please enter provider name to search',
'providerManagement.category': 'Category',
'providerManagement.providerCode': 'Provider Code',
'providerManagement.fieldConfig': 'Field Configuration',
'providerManagement.selectToDelete': 'Please select providers to delete first',
'providerManagement.confirmDelete': 'Are you sure to delete the selected {count} providers?',
'providerManagement.viewFields': 'View Fields',
// Common Text
'common.all': 'All',
'common.search': 'Search',
'common.name': 'Name',
'common.sort': 'Sort',
'common.action': 'Action',
'common.edit': 'Edit',
'common.delete': 'Delete',
'common.selectAll': 'Select All',
'common.deselectAll': 'Deselect All',
'common.add': 'Add',
'common.perPage': '{number}/page',
'common.firstPage': 'First Page',
'common.prevPage': 'Previous Page',
'common.nextPage': 'Next Page',
'common.totalRecords': 'Total {number} records',
'common.addProvider': 'Add Provider',
'common.success': 'Success',
'common.editProvider': 'Edit Provider',
'common.updateSuccess': 'Update Success',
'common.addSuccess': 'Add Success',
'common.deleteSuccess': 'Delete Success',
'common.deleteFailure': 'Delete Failed, Please Try Again',
'common.deleteCancelled': 'Delete Cancelled',
'common.warning': 'Warning',
'common.tip': 'Tip',
'common.confirm': 'Confirm',
'common.cancel': 'Cancel',
'common.sensitive': 'Sensitive',
// Language switch
'language.zhCN': '中文简体',
'language.zhTW': '中文繁體',
'language.en': 'English',
// Home page text
'home.addAgent': 'Add Agent',
'home.greeting': 'Hi Jarvis',
'home.wish': "Let's have a wonderful day!",
'home.languageModel': 'LLM',
'home.voiceModel': 'TTS',
'home.configureRole': 'Config Role',
'home.voiceprintRecognition': 'Voiceprint',
'home.deviceManagement': 'Devices',
'home.chatHistory': 'Chat History',
'home.lastConversation': 'Last Conversation',
'home.noConversation': 'No conversation',
'home.justNow': 'Just now',
'home.minutesAgo': '{minutes} minutes ago',
'home.hoursAgo': '{hours} hours {minutes} minutes ago',
'home.confirmDeleteAgent': 'Are you sure you want to delete this agent?',
'home.deleteSuccess': 'Delete successful',
'home.deleteFailed': 'Delete failed',
'home.enableMemory': 'Please enable memory in the "Config Role" page first',
// Parameter management page text
'paramManagement.pageTitle': 'Parameter Management',
'paramManagement.searchPlaceholder': 'Please enter parameter code or remark to search',
'paramManagement.search': 'Search',
'paramManagement.paramCode': 'Parameter Code',
'paramManagement.paramValue': 'Parameter Value',
'paramManagement.remark': 'Remark',
'paramManagement.operation': 'Operation',
'paramManagement.hide': 'Hide',
'paramManagement.view': 'View',
'paramManagement.deselectAll': 'Deselect All',
'paramManagement.selectAll': 'Select All',
'paramManagement.add': 'Add',
'paramManagement.delete': 'Delete',
'paramManagement.edit': 'Edit',
'paramManagement.itemsPerPage': 'items/page',
'paramManagement.firstPage': 'First Page',
'paramManagement.prevPage': 'Previous Page',
'paramManagement.nextPage': 'Next Page',
'paramManagement.totalRecords': 'Total {total} records',
'paramManagement.addParam': 'Add Parameter',
'paramManagement.editParam': 'Edit Parameter',
'paramManagement.getParamsListFailed': 'Failed to get parameter list',
'paramManagement.selectParamsFirst': 'Please select parameters to delete first',
'paramManagement.confirmBatchDelete': 'Are you sure you want to delete {paramCount} selected parameters?',
'paramManagement.invalidParamId': 'There are invalid parameter IDs',
'paramManagement.batchDeleteSuccess': 'Successfully deleted {paramCount} parameters',
'paramManagement.deleteFailed': 'Deletion failed, please try again',
'paramManagement.operationCancelled': 'Deletion cancelled',
'paramManagement.operationClosed': 'Operation closed',
'paramManagement.updateSuccess': 'Update successful',
'paramManagement.addSuccess': 'Add successful',
'paramManagement.updateFailed': 'Update failed',
'paramManagement.addFailed': 'Add failed',
// Server side management page text
'serverSideManager.pageTitle': 'Server Management',
'serverSideManager.wsAddress': 'WS Address',
'serverSideManager.operation': 'Operation',
'serverSideManager.restart': 'Restart',
'serverSideManager.updateConfig': 'Update Config',
'serverSideManager.restartServer': 'Restart Server',
'serverSideManager.updateConfigTitle': 'Update Config',
'serverSideManager.confirmRestart': 'Are you sure you want to restart the server?',
'serverSideManager.confirmUpdateConfig': 'Are you sure you want to update the config?',
'serverSideManager.loading': 'Loading...',
'serverSideManager.getServerListFailed': 'Failed to get server list',
'serverSideManager.operationFailed': 'Operation failed',
'serverSideManager.restartSuccess': 'Restart successful',
'serverSideManager.updateConfigSuccess': 'Config update successful',
// Add agent dialog text
'addAgentDialog.title': 'Add Agent',
'addAgentDialog.agentName': 'Agent Name',
'addAgentDialog.placeholder': 'Please enter agent name..',
'addAgentDialog.confirm': 'Confirm',
'addAgentDialog.cancel': 'Cancel',
'addAgentDialog.nameRequired': 'Please enter agent name',
'addAgentDialog.addSuccess': 'Add successful',
// Role configuration page text
'roleConfig.title': 'Role Configuration',
'roleConfig.restartNotice': 'After saving the configuration, you need to restart the device for the new configuration to take effect.',
'roleConfig.saveConfig': 'Save Configuration',
'roleConfig.reset': 'Reset',
'roleConfig.agentName': 'Nickname',
'roleConfig.roleTemplate': 'Template',
'roleConfig.roleIntroduction': 'Introduction',
'roleConfig.languageCode': 'Language Code',
'roleConfig.interactionLanguage': 'Interaction Language',
'roleConfig.vad': 'Voice Detect',
'roleConfig.asr': 'Speech Recognition',
'roleConfig.llm': 'Language Model',
'roleConfig.vllm': 'Vision Model',
'roleConfig.tts': 'Text-to-Speech',
'roleConfig.memoryHis': 'Memory',
'roleConfig.memory': 'Memory Model',
'roleConfig.intent': 'Intent Recognition',
'roleConfig.voiceType': 'Voice Type',
'roleConfig.pleaseEnterContent': 'Please enter content',
'roleConfig.pleaseEnterLangCode': 'Please enter language code, e.g.: en_US',
'roleConfig.pleaseEnterLangName': 'Please enter interaction language, e.g.: English',
'roleConfig.pleaseSelect': 'Please select',
'roleConfig.editFunctions': 'Edit Functions',
'roleConfig.reportText': 'Text Only',
'roleConfig.reportTextVoice': 'Text & Voice',
'roleConfig.saveSuccess': 'Configuration saved successfully',
'roleConfig.saveFailed': 'Configuration save failed',
'roleConfig.confirmReset': 'Are you sure you want to reset the configuration?',
'roleConfig.resetSuccess': 'Configuration has been reset',
'roleConfig.fetchTemplatesFailed': 'Failed to fetch template list',
'roleConfig.templateApplied': 'template has been applied',
'roleConfig.applyTemplateFailed': 'Failed to apply template',
'roleConfig.fetchConfigFailed': 'Failed to fetch configuration',
'roleConfig.fetchModelsFailed': 'Failed to fetch model list',
'roleConfig.fetchPluginsFailed': 'Failed to fetch plugin list',
// Function management dialog text
'functionDialog.title': 'Function Management',
'functionDialog.unselectedFunctions': 'Unselected Functions',
'functionDialog.selectedFunctions': 'Selected Functions',
'functionDialog.selectAll': 'Select All',
'functionDialog.noMorePlugins': 'No more plugins available',
'functionDialog.pleaseSelectPlugin': 'Please select plugin functions',
'functionDialog.paramConfig': 'Parameter Configuration',
'functionDialog.noNeedToConfig': ' does not require parameter configuration',
'functionDialog.pleaseSelectFunctionForParam': 'Please select a configured function for parameter settings',
'functionDialog.mcpAccessPoint': 'MCP Access Point',
'functionDialog.mcpAddressDesc': 'Below are the MCP access point addresses for the agent.',
'functionDialog.howToDeployMcp': 'How to deploy MCP access point',
'functionDialog.howToIntegrateMcp': 'How to integrate MCP functions',
'functionDialog.copy': 'Copy',
'functionDialog.accessPointStatus': 'Access Point Status',
'functionDialog.connected': 'Connected',
'functionDialog.loading': 'Loading...',
'functionDialog.disconnected': 'Disconnected',
'functionDialog.refresh': 'Refresh',
'functionDialog.noAvailableTools': 'No available tools',
'functionDialog.cancel': 'Cancel',
'functionDialog.saveConfig': 'Save Configuration',
'functionDialog.copiedToClipboard': 'Copied to clipboard',
'functionDialog.copyFailed': 'Copy failed, please copy manually',
'functionDialog.jsonFormatError': ' field format error: invalid JSON format',
'functionDialog.defaultValue': 'Default Value',
// Model Configuration Page Text
'modelConfig.searchPlaceholder': 'Please enter model name to search',
'modelConfig.search': 'Search',
'modelConfig.vad': 'Voice Activity Detection',
'modelConfig.asr': 'Speech Recognition',
'modelConfig.llm': 'Large Language Model',
'modelConfig.vllm': 'Visual Language Model',
'modelConfig.intent': 'Intent Recognition',
'modelConfig.tts': 'Text-to-Speech',
'modelConfig.memory': 'Memory',
'modelConfig.modelId': 'Model ID',
'modelConfig.modelName': 'Model Name',
'modelConfig.provider': 'Provider',
'modelConfig.unknown': 'Unknown',
'modelConfig.isEnabled': 'Enabled',
'modelConfig.isDefault': 'Default',
'modelConfig.action': 'Action',
'modelConfig.voiceManagement': 'Voice Management',
'modelConfig.edit': 'Edit',
'modelConfig.duplicate': 'Duplicate',
'modelConfig.delete': 'Delete',
'modelConfig.deselectAll': 'Deselect All',
'modelConfig.select': 'Select',
'modelConfig.selectAll': 'Select All',
'modelConfig.add': 'Add New',
'modelConfig.selectModelsFirst': 'Please select models to delete first',
'modelConfig.confirmBatchDelete': 'Are you sure you want to delete the selected models?',
'modelConfig.confirmDelete': 'Are you sure you want to delete this model?',
'modelConfig.batchDeleteSuccess': 'Batch deletion successful',
'modelConfig.partialDeleteFailed': 'Partial deletion failed',
'modelConfig.deleteSuccess': 'Deletion successful',
'modelConfig.deleteFailed': 'Deletion failed',
'modelConfig.duplicateSuccess': 'Duplication successful',
'modelConfig.duplicateFailed': 'Duplication failed',
'modelConfig.saveSuccess': 'Save successful',
'modelConfig.saveFailed': 'Save failed',
'modelConfig.addSuccess': 'Addition successful',
'modelConfig.addFailed': 'Addition failed',
'modelConfig.fetchModelsFailed': 'Failed to fetch model list',
'modelConfig.enableSuccess': 'Enable successful',
'modelConfig.disableSuccess': 'Disable successful',
'modelConfig.operationFailed': 'Operation failed',
'modelConfig.setDefaultSuccess': 'Set default model successful',
'modelConfig.itemsPerPage': '{items} items/page',
'modelConfig.firstPage': 'First Page',
'modelConfig.prevPage': 'Previous Page',
'modelConfig.nextPage': 'Next Page',
'modelConfig.totalRecords': 'Total {total} records',
'modelConfig.loading': 'Loading...',
// Model Configuration Dialog Text
'modelConfigDialog.addModel': 'Add Model',
'modelConfigDialog.editModel': 'Edit Model',
'modelConfigDialog.duplicateModel': 'Duplicate Model',
'modelConfigDialog.copySuffix': '_copy',
'modelConfigDialog.modelInfo': 'Model Information',
'modelConfigDialog.enable': 'Enable',
'modelConfigDialog.setDefault': 'Set as Default',
'modelConfigDialog.modelName': 'Model Name',
'modelConfigDialog.enterModelName': 'Please enter model name',
'modelConfigDialog.modelCode': 'Model Code',
'modelConfigDialog.enterModelCode': 'Please enter model code',
'modelConfigDialog.supplier': 'Supplier',
'modelConfigDialog.selectSupplier': 'Please select',
'modelConfigDialog.sortOrder': 'Sort Order',
'modelConfigDialog.enterSortOrder': 'Please enter sort order',
'modelConfigDialog.docLink': 'Documentation Link',
'modelConfigDialog.enterDocLink': 'Please enter documentation link',
'modelConfigDialog.remark': 'Remark',
'modelConfigDialog.enterRemark': 'Please enter model remark',
'modelConfigDialog.callInfo': 'Call Information',
'modelConfigDialog.enterJsonExample': 'Please enter JSON format variables (example:{"key":"value"})',
'modelConfigDialog.save': 'Save',
// TTS Model Configuration Text
'ttsModel.select': 'Select',
'ttsModel.voiceCode': 'Voice Code',
'ttsModel.voiceName': 'Voice Name',
'ttsModel.languageType': 'Language Type',
'ttsModel.preview': 'Preview',
'ttsModel.enterMp3Url': 'Please enter MP3 URL',
'ttsModel.remark': 'Remark',
'ttsModel.enterRemark': 'This is a remark',
'ttsModel.referenceAudioPath': 'Reference Audio Path',
'ttsModel.enterReferenceAudio': 'This is the reference audio path',
'ttsModel.referenceText': 'Reference Audio Text',
'ttsModel.enterReferenceText': 'This is the text for reference audio',
'ttsModel.action': 'Action',
'ttsModel.operation': 'Operation',
'ttsModel.operationFailed': 'Operation failed',
'ttsModel.operationClosed': 'Operation closed',
'ttsModel.edit': 'Edit',
'ttsModel.delete': 'Delete',
'ttsModel.deleteVoiceSuccess': 'Successfully deleted {count} voices',
'ttsModel.deleteFailed': 'Failed to delete voices',
'ttsModel.save': 'Save',
'ttsModel.deselectAll': 'Deselect All',
'ttsModel.selectAll': 'Select All',
'ttsModel.add': 'Add',
'ttsModel.fetchVoicesFailed': 'Failed to fetch voice list',
'ttsModel.loadVoicesFailed': 'Failed to load voice data',
'ttsModel.unnamedVoice': 'Unnamed Voice',
'ttsModel.finishEditingFirst': 'Please finish current editing first',
'ttsModel.selectVoiceToDelete': 'Please select voices to delete',
'ttsModel.warning': 'Warning',
'ttsModel.confirmDeleteVoice': 'Are you sure to delete {count} voices?',
// OTA Management Page Text
'otaManagement.firmwareManagement': 'Firmware Management',
'otaManagement.searchPlaceholder': 'Please enter firmware name to search',
'otaManagement.search': 'Search',
'otaManagement.firmwareName': 'Firmware Name',
'otaManagement.firmwareType': 'Firmware Type',
'otaManagement.version': 'Version',
'otaManagement.fileSize': 'File Size',
'otaManagement.remark': 'Remark',
'otaManagement.createTime': 'Create Time',
'otaManagement.updateTime': 'Update Time',
'otaManagement.action': 'Action',
'otaManagement.download': 'Download',
'otaManagement.edit': 'Edit',
'otaManagement.delete': 'Delete',
'otaManagement.selectAll': 'Select All',
'otaManagement.deselectAll': 'Deselect All',
'otaManagement.addNew': 'Add New',
'otaManagement.addFirmware': 'Add Firmware',
'otaManagement.editFirmware': 'Edit Firmware',
'otaManagement.itemsPerPage': '{items} items/page',
'otaManagement.firstPage': 'First Page',
'otaManagement.prevPage': 'Previous Page',
'otaManagement.nextPage': 'Next Page',
'otaManagement.totalRecords': 'Total {total} records',
'otaManagement.selectFirmwareFirst': 'Please select firmware to delete first',
'otaManagement.confirmBatchDelete': 'Are you sure you want to delete the selected {paramCount} firmware?',
'otaManagement.operationCancelled': 'Deletion operation has been cancelled',
'otaManagement.operationClosed': 'Operation has been closed',
'otaManagement.batchDeleteSuccess': 'Successfully deleted {paramCount} firmware',
'otaManagement.deleteFailed': 'Deletion failed, please try again',
'otaManagement.incompleteFirmwareInfo': 'Incomplete firmware information',
'otaManagement.getDownloadUrlFailed': 'Failed to get download link',
'otaManagement.getFirmwareTypesFailed': 'Failed to get firmware types',
'otaManagement.updateSuccess': 'Update successful',
'otaManagement.updateFailed': 'Update failed',
'otaManagement.addSuccess': 'Addition successful',
'otaManagement.addFailed': 'Addition failed',
'otaManagement.fetchFirmwareListFailed': 'Failed to fetch firmware list',
// Provider Management page model type translations
'providerManagement.all': 'All',
'providerManagement.modelType.ASR': 'Speech Recognition',
'providerManagement.modelType.TTS': 'Text-to-Speech',
'providerManagement.modelType.LLM': 'Large Language Model',
'providerManagement.modelType.VLLM': 'Vision Large Language Model',
'providerManagement.modelType.Intent': 'Intent Recognition',
'providerManagement.modelType.Memory': 'Memory Module',
'providerManagement.modelType.VAD': 'Voice Activity Detection',
'providerManagement.modelType.Plugin': 'Plugin Tool',
// Provider Dialog translations
'providerDialog.category': 'Category',
'providerDialog.selectCategory': 'Please select category',
'providerDialog.code': 'Code',
'providerDialog.inputCode': 'Please input provider code',
'providerDialog.name': 'Name',
'providerDialog.inputName': 'Please input provider name',
'providerDialog.sort': 'Sort',
'providerDialog.fieldConfig': 'Field Configuration',
'providerDialog.add': 'Add',
'providerDialog.deselectAll': 'Deselect All',
'providerDialog.selectAll': 'Select All',
'providerDialog.batchDelete': 'Batch Delete',
'providerDialog.fieldKey': 'Field Key',
'providerDialog.fieldLabel': 'Field Label',
'providerDialog.fieldType': 'Field Type',
'providerDialog.type': 'Type',
'providerDialog.stringType': 'String',
'providerDialog.numberType': 'Number',
'providerDialog.booleanType': 'Boolean',
'providerDialog.dictType': 'Dictionary',
'providerDialog.arrayType': 'Semicolon-separated List',
'providerDialog.defaultValue': 'Default Value',
'providerDialog.inputDefaultValue': 'Please input default value',
'providerDialog.operation': 'Operation',
'providerDialog.edit': 'Edit',
'providerDialog.complete': 'Complete',
'providerDialog.delete': 'Delete',
'providerDialog.save': 'Save',
'providerDialog.requiredCategory': 'Please select category',
'providerDialog.requiredCode': 'Please input provider code',
'providerDialog.requiredName': 'Please input provider name',
'providerDialog.completeFieldEdit': 'Please complete current field editing first',
'providerDialog.confirmDeleteField': 'Are you sure to delete this field?',
'providerDialog.selectFieldsToDelete': 'Please select fields to delete first',
'providerDialog.confirmBatchDeleteFields': 'Are you sure to delete {count} selected fields?',
'providerDialog.batchDeleteFieldsSuccess': 'Successfully deleted {count} fields',
// agentTemplateManagement
'agentTemplateManagement.title': 'Default Role Management',
'agentTemplateManagement.templateName': 'Template Name',
'agentTemplateManagement.action': 'Action',
'agentTemplateManagement.createTemplate': 'Create Template',
'templateQuickConfig.newTemplate': 'New Template',
'agentTemplateManagement.editTemplate': 'Edit Template',
'agentTemplateManagement.deleteTemplate': 'Delete Template',
'agentTemplateManagement.deleteSuccess': 'Template deleted successfully',
'agentTemplateManagement.batchDelete': 'Batch Delete',
'agentTemplateManagement.batchDeleteSuccess': 'Batch deletion successful',
'agentTemplateManagement.selectTemplate': 'Please select a template',
'agentTemplateManagement.select': 'Select',
'agentTemplateManagement.searchPlaceholder': 'Please enter template name to search',
'agentTemplateManagement.search': 'Search',
'agentTemplateManagement.serialNumber': 'Serial Number',
'agentTemplateManagement.selectAll': 'Select All',
'agentTemplateManagement.deselectAll': 'Deselect All',
'agentTemplateManagement.loading': 'Loading...',
'agentTemplateManagement.confirmSingleDelete': 'Are you sure you want to delete this template?',
'agentTemplateManagement.confirmBatchDelete': 'Are you sure you want to delete the selected {count} templates?',
'agentTemplateManagement.deleteFailed': 'Template deletion failed',
'agentTemplateManagement.batchDeleteFailed': 'Template batch deletion failed',
'agentTemplateManagement.deleteBackendError': 'Deletion failed, please check if the backend service is normal',
'agentTemplateManagement.deleteCancelled': 'Deletion cancelled',
// templateQuickConfig
'templateQuickConfig.title': 'Module Quick Configuration',
'templateQuickConfig.agentSettings.agentName': 'Nickname',
'templateQuickConfig.agentSettings.agentNamePlaceholder': 'Please enter nickname',
'templateQuickConfig.agentSettings.systemPrompt': 'Introduction',
'templateQuickConfig.agentSettings.systemPromptPlaceholder': 'Please enter ntroduction',
'templateQuickConfig.saveConfig': 'Save Configuration',
'templateQuickConfig.resetConfig': 'Reset Configuration',
'templateQuickConfig.configSaved': 'Configuration saved successfully',
'templateQuickConfig.configReset': 'Configuration has been reset',
'templateQuickConfig.confirmReset': 'Are you sure you want to reset the configuration?',
'templateQuickConfig.saveFailed': 'Configuration save failed',
'templateQuickConfig.confirm': 'Confirm',
'templateQuickConfig.cancel': 'Cancel',
'templateQuickConfig.templateNotFound': 'Template not found',
'warning': 'Warning',
'info': 'Info',
'common.networkError': 'Network request failed',
// SM2 Encryption
'sm2.publicKeyNotConfigured': 'SM2 public key not configured, please contact administrator',
'sm2.encryptionFailed': 'Password encryption failed',
'sm2.keyGenerationFailed': 'Key pair generation failed',
'sm2.invalidPublicKey': 'Invalid public key format',
'sm2.encryptionError': 'Error occurred during encryption',
'sm2.publicKeyRetry': 'Retrying to get public key...',
'sm2.publicKeyRetryFailed': 'Public key retrieval retry failed',
// Voice Clone and Resource Management
'voiceClone.title': 'Voice Clone',
'voiceResource.title': 'Voice Resource',
'voiceClone.platformName': 'Platform Name',
'voiceClone.voiceId': 'Voice ID',
'voiceClone.userId': 'Account Owner',
'voiceClone.name': 'Voice Name',
'voiceClone.clone': 'Clone Voice',
'voiceClone.action': 'Action',
'voiceClone.modelId': 'Model ID',
'voiceClone.trainStatus': 'Training Status',
'voiceClone.trainError': 'Training Error',
'voiceClone.createdAt': 'Creation Time',
'voiceClone.search': 'Search',
'voiceClone.searchPlaceholder': 'Please enter voice name or voice ID',
'voiceClone.addNew': 'Add',
'voiceClone.delete': 'Delete',
'voiceClone.selectAll': 'Select All',
'voiceClone.deselectAll': 'Deselect All',
'voiceClone.addVoiceClone': 'Add Voice Resource',
'voiceClone.confirmDelete': 'Are you sure you want to delete the selected {count} voice resources?',
'voiceClone.deleteSuccess': 'Successfully deleted {count} voice resources',
'voiceClone.deleteFailed': 'Deletion failed',
'voiceClone.addSuccess': 'Add successful',
'voiceClone.addFailed': 'Add failed',
'voiceClone.updateSuccess': 'Update successful',
'voiceClone.updateFailed': 'Update failed',
'voiceClone.selectFirst': 'Please select voice resources to delete first',
'voiceClone.operationCancelled': 'Cancel',
'voiceClone.operationClosed': 'Popup closed',
'voiceClone.cloneSuccess': 'Clone successful',
'voiceClone.cloneFailed': 'Clone failed',
'voiceClone.confirmClone': 'Are you sure you want to clone this voice?',
'voiceClone.onlySuccessCanClone': 'Only successfully trained voices can be cloned',
'common.insufficient': 'Insufficient',
'voiceClone.platformNameRequired': 'Please select platform name',
'voiceClone.voiceIdRequired': 'Please select voice ID',
'voiceClone.userIdRequired': 'Please select account owner',
'voiceClone.platformNamePlaceholder': 'Please select platform name',
'voiceClone.voiceIdPlaceholder': 'Please enter voice ID and press Enter',
'voiceClone.userIdPlaceholder': 'Please enter keyword to select account owner',
'voiceClone.waitingUpload': 'Waiting for upload',
'voiceClone.waitingTraining': 'Waiting for clone',
'voiceClone.training': 'Training',
'voiceClone.trainSuccess': 'Training successful',
'voiceClone.trainFailed': 'Training failed',
'voiceClone.itemsPerPage': '{items} items per page',
'voiceClone.firstPage': 'First Page',
'voiceClone.prevPage': 'Previous Page',
'voiceClone.nextPage': 'Next Page',
'voiceClone.totalRecords': '{total} records in total',
'voiceClone.noVoiceCloneAssigned': 'Your account has no voice resources assigned',
'voiceClone.contactAdmin': 'Please contact administrator for voice resource assignment',
'voiceClone.dialogTitle': 'Voice Clone',
'voiceClone.stepUpload': 'Prepare Audio',
'voiceClone.stepEdit': 'Audio Edit',
'voiceClone.dragOrClick': 'Drag audio file here, or click to upload',
'voiceClone.uploadTip': 'Support all mainstream audio formats, selected duration must be between 8-60 seconds',
'voiceClone.editTip1': 'Please confirm if the uploaded audio is satisfactory',
'voiceClone.editTip2': 'You can listen and trim the audio, if not satisfied you can go back to re-record or upload',
'voiceClone.selectedDuration': 'Selected valid segment: {duration} seconds',
'voiceClone.trim': 'Trim selected segment',
'voiceClone.reset': 'Reset',
'voiceClone.play': 'Play',
'voiceClone.pause': 'Pause',
'voiceClone.stop': 'Stop',
'voiceClone.cancel': 'Cancel',
'voiceClone.warning': 'Warning',
'voiceClone.ok': 'OK',
'voiceClone.nextStep': 'Next',
'voiceClone.prevStep': 'Previous',
'voiceClone.upload': 'Upload Audio',
'voiceClone.pleaseSelectAudio': 'Please select an audio file first',
'voiceClone.durationError': 'Audio duration must be between 8-60 seconds',
'voiceClone.loadAudioFailed': 'Failed to load audio',
'voiceClone.trimSuccess': 'Trim successful',
'voiceClone.resetSuccess': 'Reset successful',
'voiceClone.uploadSuccess': 'Upload successful',
'voiceClone.uploadFailed': 'Upload failed',
'voiceClone.updateNameSuccess': 'Name updated successfully',
'voiceClone.updateNameFailed': 'Failed to update name',
'voiceClone.playFailed': 'Play failed',
'voiceClone.Details': 'Error Details',
}