mirror of
https://github.com/xinnan-tech/xiaozhi-esp32-server.git
synced 2026-07-26 09:03:54 +08:00
updata:智控台页面添加语言切换,支持中英繁。
This commit is contained in:
@@ -0,0 +1,801 @@
|
||||
export default {
|
||||
// HeaderBar组件文本
|
||||
'header.smartManagement': 'Smart Agent Management',
|
||||
'header.modelConfig': 'Model Configuration',
|
||||
'header.userManagement': 'User Management',
|
||||
'header.otaManagement': 'OTA Management',
|
||||
'header.paramDictionary': 'Parameter Dictionary',
|
||||
'header.paramManagement': 'Parameter Management',
|
||||
'header.dictManagement': 'Dictionary Management',
|
||||
|
||||
// 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',
|
||||
|
||||
// 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',
|
||||
|
||||
// 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',
|
||||
'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',
|
||||
'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',
|
||||
'header.providerManagement': 'Provider Management',
|
||||
'header.serverSideManagement': 'Server-side Management',
|
||||
'header.changePassword': 'Change Password',
|
||||
'header.logout': 'Logout',
|
||||
'header.searchPlaceholder': 'Search by name..',
|
||||
|
||||
// Login page text
|
||||
'login.title': 'XiaoZhi Service 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': 'Logging in means you agree to the',
|
||||
'login.userAgreement': 'User Agreement',
|
||||
'login.and': 'and',
|
||||
'login.privacyPolicy': 'Privacy Policy',
|
||||
'login.registerAccount': 'Register Account',
|
||||
|
||||
// Register page text
|
||||
'register.title': 'Register Account',
|
||||
'register.welcome': 'WELCOME TO REGISTER',
|
||||
'register.username': 'Username',
|
||||
'register.usernamePlaceholder': 'Please enter username',
|
||||
'register.mobile': 'Mobile',
|
||||
'register.mobilePlaceholder': 'Please enter mobile number',
|
||||
'register.password': 'Password',
|
||||
'register.passwordPlaceholder': 'Please enter password',
|
||||
'register.confirmPassword': 'Confirm Password',
|
||||
'register.confirmPasswordPlaceholder': 'Please confirm password',
|
||||
'register.captcha': 'Verification Code',
|
||||
'register.captchaPlaceholder': 'Please enter verification code',
|
||||
'register.mobileCaptcha': 'Mobile Verification Code',
|
||||
'register.mobileCaptchaPlaceholder': 'Please enter mobile verification code',
|
||||
'register.getMobileCaptcha': 'Get Verification Code',
|
||||
'register.registerButton': 'Register',
|
||||
'register.login': 'Login',
|
||||
'register.inputCorrectMobile': 'Please enter correct mobile number',
|
||||
'register.inputCaptcha': 'Please enter captcha',
|
||||
'register.captchaSendSuccess': 'Verification code sent successfully',
|
||||
'register.invalidCaptcha': 'Invalid verification code',
|
||||
'register.passwordsNotMatch': 'Two password entries do not match',
|
||||
'register.passwordLength': 'Password length must be between 6-20 characters',
|
||||
'register.usernameRequired': 'Username cannot be empty',
|
||||
'register.usernameFormat': 'Invalid username format',
|
||||
'register.mobileRequired': 'Mobile number cannot be empty',
|
||||
'register.passwordRequired': 'Password cannot be empty',
|
||||
'register.confirmPasswordRequired': 'Confirm password cannot be empty',
|
||||
|
||||
// Retrieve password page text
|
||||
'retrievePassword.title': 'Reset Password',
|
||||
'retrievePassword.welcome': 'PASSWORD RETRIEVE',
|
||||
'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.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',
|
||||
|
||||
// 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',
|
||||
// DeviceManagement page extended translations
|
||||
'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',
|
||||
'device.bindWithCode': 'Bind with Verification Code',
|
||||
'device.manualAdd': 'Manual Add',
|
||||
'device.unbind': 'Unbind',
|
||||
'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',
|
||||
|
||||
// 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',
|
||||
'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',
|
||||
// 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.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.confirm': 'Confirm',
|
||||
'common.cancel': 'Cancel',
|
||||
'common.sensitive': 'Sensitive',
|
||||
'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.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',
|
||||
|
||||
// Language switch
|
||||
'language.zhCN': 'Simplified Chinese',
|
||||
'language.zhTW': 'Traditional Chinese',
|
||||
'language.en': 'English',
|
||||
|
||||
// Home page text
|
||||
'home.addAgent': 'Add Agent',
|
||||
'home.languageModel': 'Language Model',
|
||||
'home.voiceModel': 'Voice Model',
|
||||
'home.configureRole': 'Configure Role',
|
||||
'home.voiceprintRecognition': 'Voiceprint Recognition',
|
||||
'home.deviceManagement': 'Device Management',
|
||||
'home.chatHistory': 'Chat History',
|
||||
'home.lastConversation': 'Last Conversation',
|
||||
'home.noConversation': 'No conversation yet',
|
||||
|
||||
// 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',
|
||||
'home.justNow': 'Just now',
|
||||
'home.minutesAgo': '{minutes} minutes ago',
|
||||
'home.hoursAgo': '{hours} hours{minutes, plural, one { minute } other { 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 "Configure Role" page first',
|
||||
|
||||
// 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': 'Agent Nickname',
|
||||
'roleConfig.roleTemplate': 'Role Template',
|
||||
'roleConfig.roleIntroduction': 'Role Introduction',
|
||||
'roleConfig.languageCode': 'Language Code',
|
||||
'roleConfig.interactionLanguage': 'Interaction Language',
|
||||
'roleConfig.vad': 'VAD',
|
||||
'roleConfig.asr': 'ASR',
|
||||
'roleConfig.llm': 'LLM',
|
||||
'roleConfig.vllm': 'VLLM',
|
||||
'roleConfig.tts': 'TTS',
|
||||
'roleConfig.memory': 'Memory',
|
||||
'roleConfig.intent': 'Intent',
|
||||
'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': 'Report Text',
|
||||
'roleConfig.reportTextVoice': 'Report 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.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.edit': 'Edit',
|
||||
'ttsModel.delete': 'Delete',
|
||||
'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',
|
||||
|
||||
// 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',
|
||||
};
|
||||
@@ -0,0 +1,43 @@
|
||||
import Vue from 'vue';
|
||||
import VueI18n from 'vue-i18n';
|
||||
import zhCN from './zh_CN';
|
||||
import zhTW from './zh_TW';
|
||||
import en from './en';
|
||||
|
||||
Vue.use(VueI18n);
|
||||
|
||||
// 从本地存储获取语言设置,如果没有则使用浏览器语言或默认语言
|
||||
const getDefaultLanguage = () => {
|
||||
const savedLang = localStorage.getItem('userLanguage');
|
||||
if (savedLang) {
|
||||
return savedLang;
|
||||
}
|
||||
const browserLang = navigator.language || navigator.userLanguage;
|
||||
if (browserLang.indexOf('zh') === 0) {
|
||||
if (browserLang === 'zh-TW' || browserLang === 'zh-HK' || browserLang === 'zh-MO') {
|
||||
return 'zh_TW';
|
||||
}
|
||||
return 'zh_CN';
|
||||
}
|
||||
return 'en';
|
||||
};
|
||||
|
||||
const i18n = new VueI18n({
|
||||
locale: getDefaultLanguage(),
|
||||
fallbackLocale: 'zh_CN',
|
||||
messages: {
|
||||
'zh_CN': zhCN,
|
||||
'zh_TW': zhTW,
|
||||
'en': en
|
||||
}
|
||||
});
|
||||
|
||||
export default i18n;
|
||||
|
||||
// 提供一个方法来切换语言
|
||||
export const changeLanguage = (lang) => {
|
||||
i18n.locale = lang;
|
||||
localStorage.setItem('userLanguage', lang);
|
||||
// 通知组件语言已更改
|
||||
Vue.prototype.$eventBus.$emit('languageChanged', lang);
|
||||
};
|
||||
@@ -0,0 +1,801 @@
|
||||
export default {
|
||||
// HeaderBar组件文本
|
||||
'header.smartManagement': '智能体管理',
|
||||
'header.modelConfig': '模型配置',
|
||||
'header.userManagement': '用户管理',
|
||||
'header.otaManagement': 'OTA管理',
|
||||
'header.paramDictionary': '参数字典',
|
||||
'header.paramManagement': '参数管理',
|
||||
'header.dictManagement': '字典管理',
|
||||
|
||||
// 字典数据对话框相关
|
||||
'dictDataDialog.addDictData': '新增字典数据',
|
||||
'dictDataDialog.dictLabel': '字典标签',
|
||||
'dictDataDialog.dictLabelPlaceholder': '请输入字典标签',
|
||||
'dictDataDialog.dictValue': '字典值',
|
||||
'dictDataDialog.dictValuePlaceholder': '请输入字典值',
|
||||
'dictDataDialog.sort': '排序',
|
||||
'dictDataDialog.requiredDictLabel': '请输入字典标签',
|
||||
'dictDataDialog.requiredDictValue': '请输入字典值',
|
||||
|
||||
// 字典类型对话框相关
|
||||
'dictTypeDialog.addDictType': '新增字典类型',
|
||||
'dictTypeDialog.dictName': '字典类型名称',
|
||||
'dictTypeDialog.dictNamePlaceholder': '请输入字典类型名称',
|
||||
'dictTypeDialog.dictType': '字典类型编码',
|
||||
'dictTypeDialog.dictTypePlaceholder': '请输入字典类型编码',
|
||||
'dictTypeDialog.requiredDictName': '请输入字典类型名称',
|
||||
'dictTypeDialog.requiredDictType': '请输入字典类型编码',
|
||||
|
||||
// 音频编辑对话框相关
|
||||
'editVoiceDialog.voiceCode': '音色编码',
|
||||
'editVoiceDialog.voiceCodePlaceholder': '请输入音色编码',
|
||||
'editVoiceDialog.voiceName': '音色名称',
|
||||
'editVoiceDialog.voiceNamePlaceholder': '请输入音色名称',
|
||||
'editVoiceDialog.languageType': '语言类型',
|
||||
'editVoiceDialog.languageTypePlaceholder': '请输入语言类型',
|
||||
'editVoiceDialog.sortNumber': '排序号',
|
||||
'editVoiceDialog.remark': '备注',
|
||||
'editVoiceDialog.remarkPlaceholder': '请输入备注内容',
|
||||
'editVoiceDialog.generatePreview': '生成试听',
|
||||
'editVoiceDialog.defaultVoiceName': '湾湾小何',
|
||||
'editVoiceDialog.defaultLanguageType': '中文',
|
||||
'editVoiceDialog.requiredVoiceCode': '请输入音色编码',
|
||||
'editVoiceDialog.requiredVoiceName': '请输入音色名称',
|
||||
|
||||
// 固件对话框相关
|
||||
'firmwareDialog.firmwareName': '固件名称',
|
||||
'firmwareDialog.firmwareNamePlaceholder': '请输入固件名称(板子+版本号)',
|
||||
'firmwareDialog.firmwareType': '固件类型',
|
||||
'firmwareDialog.firmwareTypePlaceholder': '请选择固件类型',
|
||||
|
||||
// 声纹对话框相关
|
||||
'voicePrintDialog.addSpeaker': '添加说话人',
|
||||
'voicePrintDialog.voicePrintVector': '声纹向量',
|
||||
'voicePrintDialog.selectVoiceMessage': '请选择一条语言消息',
|
||||
'voicePrintDialog.name': '姓名',
|
||||
'voicePrintDialog.enterName': '请输入姓名',
|
||||
'voicePrintDialog.description': '描述',
|
||||
'voicePrintDialog.enterDescription': '请输入描述',
|
||||
'voicePrintDialog.save': '保存',
|
||||
'voicePrintDialog.cancel': '取消',
|
||||
'voicePrintDialog.requiredDescription': '请输入描述',
|
||||
'voicePrintDialog.requiredName': '请输入姓名',
|
||||
'voicePrintDialog.requiredAudioVector': '请选择音频向量',
|
||||
|
||||
// 声纹页面相关
|
||||
'voicePrint.pageTitle': '声纹识别',
|
||||
'voicePrint.name': '姓名',
|
||||
'voicePrint.description': '描述',
|
||||
'voicePrint.createTime': '创建时间',
|
||||
'voicePrint.action': '操作',
|
||||
'voicePrint.edit': '编辑',
|
||||
'voicePrint.delete': '删除',
|
||||
'voicePrint.add': '新增',
|
||||
'voicePrint.addSpeaker': '添加说话人',
|
||||
'voicePrint.editSpeaker': '编辑说话人',
|
||||
'voicePrint.fetchFailed': '获取声纹列表失败',
|
||||
'voicePrint.updateSuccess': '修改成功',
|
||||
'voicePrint.addSuccess': '新增成功',
|
||||
'voicePrint.confirmDelete': '确定要删除选中的此声纹吗?',
|
||||
'voicePrint.warning': '警告',
|
||||
'voicePrint.confirm': '确定',
|
||||
'voicePrint.cancel': '取消',
|
||||
'voicePrint.deleteSuccess': '成功删除此声纹',
|
||||
'voicePrint.deleteFailed': '删除失败,请重试',
|
||||
'voicePrint.cancelDelete': '已取消删除操作',
|
||||
'voicePrint.closeOperation': '操作已关闭',
|
||||
'voicePrint.loading': '拼命加载中',
|
||||
|
||||
// 手動添加設備對話框相關
|
||||
'manualAddDeviceDialog.title': '手动添加设备',
|
||||
'manualAddDeviceDialog.deviceType': '设备型号',
|
||||
'manualAddDeviceDialog.deviceTypePlaceholder': '请选择设备型号',
|
||||
'manualAddDeviceDialog.firmwareVersion': '固件版本',
|
||||
'manualAddDeviceDialog.firmwareVersionPlaceholder': '请输入固件版本',
|
||||
'manualAddDeviceDialog.macAddress': 'Mac地址',
|
||||
'manualAddDeviceDialog.macAddressPlaceholder': '请输入Mac地址',
|
||||
'manualAddDeviceDialog.confirm': '确定',
|
||||
'manualAddDeviceDialog.cancel': '取消',
|
||||
'manualAddDeviceDialog.requiredMacAddress': '请输入Mac地址',
|
||||
|
||||
// 参数对话框相关
|
||||
'paramDialog.paramCode': '参数编码',
|
||||
'paramDialog.paramCodePlaceholder': '请输入参数编码',
|
||||
'paramDialog.paramValue': '参数值',
|
||||
'paramDialog.paramValuePlaceholder': '请输入参数值',
|
||||
'paramDialog.valueType': '值类型',
|
||||
'paramDialog.valueTypePlaceholder': '请选择值类型',
|
||||
'paramDialog.remark': '备注',
|
||||
'paramDialog.remarkPlaceholder': '请输入备注',
|
||||
'paramDialog.save': '保存',
|
||||
'paramDialog.cancel': '取消',
|
||||
'paramDialog.requiredParamCode': '请输入参数编码',
|
||||
'paramDialog.requiredParamValue': '请输入参数值',
|
||||
'paramDialog.requiredValueType': '请选择值类型',
|
||||
'paramDialog.stringType': '字符串(string)',
|
||||
'paramDialog.numberType': '数字(number)',
|
||||
'paramDialog.booleanType': '布尔值(boolean)',
|
||||
'paramDialog.arrayType': '数组(array)',
|
||||
'paramDialog.jsonType': 'JSON对象(json)',
|
||||
'manualAddDeviceDialog.invalidMacAddress': '请输入正确的Mac地址格式,例如:00:1A:2B:3C:4D:5E',
|
||||
'manualAddDeviceDialog.requiredDeviceType': '请选择设备型号',
|
||||
'manualAddDeviceDialog.requiredFirmwareVersion': '请输入固件版本',
|
||||
'manualAddDeviceDialog.getFirmwareTypeFailed': '获取固件类型失败',
|
||||
'manualAddDeviceDialog.addSuccess': '设备添加成功',
|
||||
'manualAddDeviceDialog.addFailed': '添加失败',
|
||||
'firmwareDialog.version': '版本号',
|
||||
'firmwareDialog.versionPlaceholder': '请输入版本号(x.x.x格式)',
|
||||
'firmwareDialog.firmwareFile': '固件文件',
|
||||
'firmwareDialog.clickUpload': '点击上传',
|
||||
'firmwareDialog.uploadTip': '只能上传固件文件(.bin/.apk),且不超过100MB',
|
||||
'firmwareDialog.uploadHint': '温馨提示:请上传合并前的xiaozhi.bin文件,而不是合并后的merged-binary.bin文件',
|
||||
'firmwareDialog.remark': '备注',
|
||||
'firmwareDialog.remarkPlaceholder': '请输入备注信息',
|
||||
'firmwareDialog.requiredFirmwareName': '请输入固件名称(板子+版本号)',
|
||||
'firmwareDialog.requiredFirmwareType': '请选择固件类型',
|
||||
'firmwareDialog.requiredVersion': '请输入版本号',
|
||||
'firmwareDialog.versionFormatError': '版本号格式不正确,请输入x.x.x格式',
|
||||
'firmwareDialog.requiredFirmwareFile': '请上传固件文件',
|
||||
'firmwareDialog.invalidFileType': '只能上传.bin/.apk格式的固件文件!',
|
||||
'firmwareDialog.invalidFileSize': '固件文件大小不能超过100MB!',
|
||||
'firmwareDialog.uploadSuccess': '固件文件上传成功',
|
||||
'firmwareDialog.uploadFailed': '文件上传失败',
|
||||
'header.providerManagement': '字段管理',
|
||||
'header.serverSideManagement': '服务端管理',
|
||||
'header.changePassword': '修改密码',
|
||||
'header.logout': '退出登录',
|
||||
'header.searchPlaceholder': '输入名称搜索..',
|
||||
|
||||
// 登录页面文本
|
||||
'login.title': '小智服务登录',
|
||||
'login.welcome': '欢迎登录',
|
||||
'login.username': '用户名',
|
||||
'login.usernamePlaceholder': '请输入用户名',
|
||||
'login.mobilePlaceholder': '请输入手机号码',
|
||||
'login.password': '密码',
|
||||
'login.passwordPlaceholder': '请输入密码',
|
||||
'login.captchaPlaceholder': '请输入验证码',
|
||||
'login.loginButton': '登录',
|
||||
'login.login': '登录',
|
||||
'login.register': '新用户注册',
|
||||
'login.forgotPassword': '忘记密码',
|
||||
'login.forgetPassword': '忘记密码?',
|
||||
'login.mobileLogin': '手机号码登录',
|
||||
'login.usernameLogin': '用户名登录',
|
||||
'login.agreeTo': '登录即同意',
|
||||
'login.userAgreement': '《用户协议》',
|
||||
'login.and': '和',
|
||||
'login.privacyPolicy': '《隐私政策》',
|
||||
'login.registerAccount': '注册账号',
|
||||
|
||||
// 注册页面文本
|
||||
'register.title': '注册账号',
|
||||
'register.welcome': '欢迎注册',
|
||||
'register.username': '用户名',
|
||||
'register.usernamePlaceholder': '请输入用户名',
|
||||
'register.mobile': '手机号',
|
||||
'register.mobilePlaceholder': '请输入手机号码',
|
||||
'register.password': '密码',
|
||||
'register.passwordPlaceholder': '请输入密码',
|
||||
'register.confirmPassword': '确认密码',
|
||||
'register.confirmPasswordPlaceholder': '请确认密码',
|
||||
'register.captcha': '验证码',
|
||||
'register.captchaPlaceholder': '请输入验证码',
|
||||
'register.mobileCaptcha': '手机验证码',
|
||||
'register.mobileCaptchaPlaceholder': '请输入手机验证码',
|
||||
'register.getMobileCaptcha': '获取验证码',
|
||||
'register.registerButton': '注册',
|
||||
'register.login': '登录',
|
||||
'register.inputCorrectMobile': '请输入正确的手机号码',
|
||||
'register.inputCaptcha': '请输入图形验证码',
|
||||
'register.captchaSendSuccess': '验证码发送成功',
|
||||
'register.invalidCaptcha': '验证码不正确',
|
||||
'register.passwordsNotMatch': '两次输入的密码不一致',
|
||||
'register.passwordLength': '密码长度必须在6-20位之间',
|
||||
'register.usernameRequired': '用户名不能为空',
|
||||
'register.usernameFormat': '用户名格式不正确',
|
||||
'register.mobileRequired': '手机号不能为空',
|
||||
'register.passwordRequired': '密码不能为空',
|
||||
'register.confirmPasswordRequired': '确认密码不能为空',
|
||||
|
||||
// 忘记密码页面文本
|
||||
'retrievePassword.title': '重置密码',
|
||||
'retrievePassword.welcome': '密码找回',
|
||||
'retrievePassword.mobile': '手机号',
|
||||
'retrievePassword.mobilePlaceholder': '请输入手机号码',
|
||||
'retrievePassword.captcha': '验证码',
|
||||
'retrievePassword.captchaPlaceholder': '请输入验证码',
|
||||
'retrievePassword.mobileCaptcha': '手机验证码',
|
||||
'retrievePassword.mobileCaptchaPlaceholder': '请输入手机验证码',
|
||||
'retrievePassword.newPassword': '新密码',
|
||||
'retrievePassword.newPasswordPlaceholder': '请输入新密码',
|
||||
'retrievePassword.confirmNewPassword': '确认新密码',
|
||||
'retrievePassword.confirmNewPasswordPlaceholder': '请确认新密码',
|
||||
'retrievePassword.getMobileCaptcha': '获取验证码',
|
||||
'retrievePassword.updateButton': '立即修改',
|
||||
'retrievePassword.goToLogin': '返回登录',
|
||||
'retrievePassword.inputCorrectMobile': '请输入正确的手机号码',
|
||||
'retrievePassword.captchaSendSuccess': '验证码发送成功',
|
||||
'retrievePassword.passwordsNotMatch': '两次输入的密码不一致',
|
||||
'retrievePassword.passwordLength': '密码长度必须在6-20位之间',
|
||||
'retrievePassword.mobileRequired': '手机号不能为空',
|
||||
'retrievePassword.captchaRequired': '验证码不能为空',
|
||||
'retrievePassword.mobileCaptchaRequired': '手机验证码不能为空',
|
||||
'retrievePassword.newPasswordRequired': '新密码不能为空',
|
||||
'retrievePassword.confirmNewPasswordRequired': '确认新密码不能为空',
|
||||
'retrievePassword.passwordUpdateSuccess': '密码修改成功',
|
||||
|
||||
// 修改密码页面文本
|
||||
'changePassword.title': '修改密码',
|
||||
'changePassword.oldPasswordLabel': '旧密码:',
|
||||
'changePassword.oldPasswordPlaceholder': '请输入旧密码',
|
||||
'changePassword.newPasswordLabel': '新密码:',
|
||||
'changePassword.newPasswordPlaceholder': '请输入新密码',
|
||||
'changePassword.confirmPasswordLabel': '确认新密码:',
|
||||
'changePassword.confirmPasswordPlaceholder': '请再次输入新密码',
|
||||
'changePassword.confirmButton': '确定',
|
||||
'changePassword.cancelButton': '取消',
|
||||
'changePassword.allFieldsRequired': '请填写所有字段',
|
||||
'changePassword.passwordsNotMatch': '两次输入的新密码不一致',
|
||||
'changePassword.newPasswordSameAsOld': '新密码不能与旧密码相同',
|
||||
'changePassword.passwordChangedSuccessfully': '密码修改成功,请重新登录',
|
||||
'changePassword.changeFailed': '密码修改失败',
|
||||
|
||||
// 设备管理页面文本
|
||||
'device.management': '设备管理',
|
||||
'device.add': '添加设备',
|
||||
'device.edit': '编辑设备',
|
||||
'device.delete': '删除设备',
|
||||
'device.name': '设备名称',
|
||||
'device.type': '设备类型',
|
||||
'device.status': '设备状态',
|
||||
'device.dialogTitle': '添加设备',
|
||||
'device.verificationCode': '验证码:',
|
||||
'device.verificationCodePlaceholder': '请输入设备播报的6位数验证码..',
|
||||
'device.confirmButton': '确定',
|
||||
'device.cancelButton': '取消',
|
||||
'device.input6DigitCode': '请输入6位数字验证码',
|
||||
'device.bindSuccess': '设备绑定成功',
|
||||
'device.bindFailed': '绑定失败',
|
||||
// DeviceManagement页面扩展翻译
|
||||
'device.searchPlaceholder': '请输入设备型号或Mac地址查询',
|
||||
'device.model': '设备型号',
|
||||
'device.macAddress': 'Mac地址',
|
||||
'device.firmwareVersion': '固件版本',
|
||||
'device.bindTime': '绑定时间',
|
||||
'device.lastConversation': '最后对话',
|
||||
'device.remark': '备注',
|
||||
'device.autoUpdate': '自动升级',
|
||||
'device.operation': '操作',
|
||||
'device.search': '搜索',
|
||||
'device.selectAll': '全选/取消全选',
|
||||
'device.bindWithCode': '验证码绑定',
|
||||
'device.manualAdd': '手动添加',
|
||||
'device.unbind': '解绑',
|
||||
'device.selectAtLeastOne': '请至少选择一条记录',
|
||||
'device.confirmBatchUnbind': '确认要解绑选中的 {count} 台设备吗?',
|
||||
'device.batchUnbindSuccess': '成功解绑 {count} 台设备',
|
||||
'device.batchUnbindError': '批量解绑过程中出现错误',
|
||||
'device.remarkTooLong': '备注不能超过 64 字符',
|
||||
'device.remarkSaved': '备注已保存',
|
||||
'device.remarkSaveFailed': '备注保存失败',
|
||||
'device.confirmUnbind': '确认要解绑该设备吗?',
|
||||
'device.unbindSuccess': '设备解绑成功',
|
||||
'device.unbindFailed': '设备解绑失败',
|
||||
'device.getListFailed': '获取设备列表失败',
|
||||
'device.autoUpdateEnabled': '已设置成自动升级',
|
||||
'device.autoUpdateDisabled': '已关闭自动升级',
|
||||
'device.batchUnbindSuccess': '成功解绑 {count} 台设备',
|
||||
'device.getFirmwareTypeFailed': '获取固件类型失败',
|
||||
|
||||
// 消息提示
|
||||
'message.success': '操作成功',
|
||||
'message.error': '操作失败',
|
||||
'message.warning': '警告',
|
||||
'message.info': '提示',
|
||||
|
||||
// 缓存相关
|
||||
'cache.viewer': '缓存查看器',
|
||||
|
||||
// 聊天历史对话框相关
|
||||
'chatHistory.with': '与',
|
||||
'chatHistory.dialogTitle': '的聊天记录',
|
||||
'chatHistory.loading': '加载中...',
|
||||
'chatHistory.noMoreRecords': '没有更多记录了',
|
||||
'chatHistory.selectSession': '请选择会话查看聊天记录',
|
||||
'chatHistory.today': '今天',
|
||||
'chatHistory.yesterday': '昨天',
|
||||
'cache.status': '缓存状态',
|
||||
'cache.cdnEnabled': 'CDN模式已启用',
|
||||
'cache.cdnDisabled': 'CDN模式已禁用',
|
||||
'cache.serviceWorkerRegistered': 'Service Worker已注册',
|
||||
'cache.serviceWorkerNotRegistered': 'Service Worker未注册',
|
||||
'cache.noCacheDetected': '还未检测到缓存,请刷新页面或等待缓存建立',
|
||||
'cache.swDevEnvWarning': '在开发环境中,Service Worker可能无法正常初始化缓存',
|
||||
'cache.swCheckMethods': '请尝试以下方法检查Service Worker是否生效:',
|
||||
'cache.swCheckMethod1': '在开发者工具的Application/Application标签页中查看Service Worker状态',
|
||||
'cache.swCheckMethod2': '在开发者工具的Application/Cache/Cache Storage中查看缓存内容',
|
||||
'cache.swCheckMethod3': '使用生产构建(npm run build)并通过HTTP服务器访问以测试完整功能',
|
||||
'cache.swDevEnvNormal': '在开发环境中,这是正常现象',
|
||||
'cache.swProdOnly': 'Service Worker通常只在生产环境中生效',
|
||||
'cache.swTestingTitle': '要测试Service Worker功能:',
|
||||
'cache.swTestingStep1': '运行npm run build构建生产版本',
|
||||
'cache.swTestingStep2': '通过HTTP服务器访问构建后的页面',
|
||||
'cache.swNotSupported': '当前浏览器不支持Service Worker,CDN资源缓存功能不可用',
|
||||
'cache.dialogTitle': 'CDN资源缓存状态',
|
||||
'cache.loading': '正在加载缓存信息...',
|
||||
'cache.notSupported': '您的浏览器不支持Cache API或Service Worker未安装',
|
||||
'cache.refreshPage': '刷新页面',
|
||||
'cache.noCachedResources': '未发现缓存的CDN资源',
|
||||
'cache.noCachedResourcesDesc': 'Service Worker可能尚未完成初始化或缓存尚未建立。请刷新页面或等待一会后再试。',
|
||||
'cache.cdnCacheStatus': 'CDN资源缓存状态',
|
||||
'cache.totalCachedResources': '共发现 {count} 个缓存资源',
|
||||
'cache.jsResources': 'JavaScript 资源 ({count})',
|
||||
'cache.cssResources': 'CSS 资源 ({count})',
|
||||
'cache.cached': '已缓存',
|
||||
'cache.notCached': '未缓存',
|
||||
'cache.refreshStatus': '刷新缓存状态',
|
||||
'cache.clearCache': '清除缓存',
|
||||
'cache.refreshingStatus': '正在刷新缓存状态',
|
||||
'cache.confirmClear': '确定要清除所有缓存吗?',
|
||||
'cache.clearedSuccess': '缓存已清除',
|
||||
'cache.clearFailed': '清除缓存失败',
|
||||
'cache.clearCanceled': '已取消清除',
|
||||
|
||||
// 通用按钮
|
||||
'button.ok': '确定',
|
||||
'button.cancel': '取消',
|
||||
'button.save': '保存',
|
||||
'button.close': '关闭',
|
||||
|
||||
// 系统信息
|
||||
'system.name': '小智服务',
|
||||
|
||||
// 声纹相关
|
||||
'voiceprint.management': '声纹管理',
|
||||
'voiceprint.add': '添加声纹',
|
||||
'voiceprint.delete': '删除声纹',
|
||||
|
||||
// 字典管理页面文本
|
||||
'dictManagement.pageTitle': '字典管理',
|
||||
'dictManagement.searchPlaceholder': '请输入字典值标签查询',
|
||||
'dictManagement.search': '搜索',
|
||||
'dictManagement.dictTypeName': '字典类型名称',
|
||||
'dictManagement.operation': '操作',
|
||||
'dictManagement.edit': '编辑',
|
||||
'dictManagement.dictLabel': '字典标签',
|
||||
'dictManagement.dictValue': '字典值',
|
||||
'dictManagement.sort': '排序',
|
||||
'dictManagement.delete': '删除',
|
||||
'dictManagement.selectAll': '全选',
|
||||
'dictManagement.deselectAll': '取消全选',
|
||||
'dictManagement.addDictType': '新增字典类型',
|
||||
'dictManagement.batchDeleteDictType': '批量删除字典类型',
|
||||
'dictManagement.addDictData': '新增字典数据',
|
||||
'dictManagement.batchDeleteDictData': '批量删除字典数据',
|
||||
'dictManagement.itemsPerPage': '{items}条/页',
|
||||
'dictManagement.firstPage': '首页',
|
||||
'dictManagement.prevPage': '上一页',
|
||||
'dictManagement.nextPage': '下一页',
|
||||
'dictManagement.totalRecords': '共{total}条记录',
|
||||
'dictManagement.editDictType': '编辑字典类型',
|
||||
'dictManagement.editDictData': '编辑字典数据',
|
||||
'dictManagement.saveSuccess': '保存成功',
|
||||
'dictManagement.deleteSuccess': '删除成功',
|
||||
'dictManagement.selectDictTypeToDelete': '请选择要删除的字典类型',
|
||||
'dictManagement.confirmDeleteDictType': '确定要删除选中的字典类型吗?',
|
||||
'dictManagement.confirm': '确定',
|
||||
'dictManagement.cancel': '取消',
|
||||
'dictManagement.selectDictTypeFirst': '请先选择字典类型',
|
||||
'dictManagement.confirmDeleteDictData': '确定要删除该字典数据吗?',
|
||||
'dictManagement.selectDictDataToDelete': '请选择要删除的字典数据',
|
||||
'dictManagement.confirmBatchDeleteDictData': '确定要删除选中的{count}个字典数据吗?',
|
||||
'dictManagement.getDictDataFailed': '获取字典数据失败',
|
||||
|
||||
// 用户信息
|
||||
'user.info': '用户信息',
|
||||
'user.username': '用户名',
|
||||
'user.mobile': '手机号',
|
||||
// 字段管理页面文本
|
||||
'providerManagement.categoryFilter': '类别筛选',
|
||||
'providerManagement.searchPlaceholder': '请输入供应器名称查询',
|
||||
'providerManagement.category': '类别',
|
||||
'providerManagement.providerCode': '供应器编码',
|
||||
'providerManagement.fieldConfig': '字段配置',
|
||||
'providerManagement.selectToDelete': '请先选择需要删除的供应器',
|
||||
'providerManagement.confirmDelete': '确定要删除选中的{count}个供应器吗?',
|
||||
'providerManagement.viewFields': '查看字段',
|
||||
// 公共文本
|
||||
'common.all': '全部',
|
||||
'common.search': '搜索',
|
||||
'common.name': '名称',
|
||||
'common.sort': '排序',
|
||||
'common.action': '操作',
|
||||
'common.edit': '编辑',
|
||||
'common.delete': '删除',
|
||||
'common.selectAll': '全选',
|
||||
'common.deselectAll': '取消全选',
|
||||
'common.add': '新增',
|
||||
'common.perPage': '{number}条/页',
|
||||
'common.firstPage': '首页',
|
||||
'common.prevPage': '上一页',
|
||||
'common.nextPage': '下一页',
|
||||
'common.totalRecords': '共{number}条记录',
|
||||
'common.addProvider': '新增供应器',
|
||||
'common.editProvider': '编辑供应器',
|
||||
'common.updateSuccess': '修改成功',
|
||||
'common.addSuccess': '新增成功',
|
||||
'common.deleteSuccess': '删除成功',
|
||||
'common.deleteFailure': '删除失败,请重试',
|
||||
'common.deleteCancelled': '已取消删除',
|
||||
'common.warning': '警告',
|
||||
'common.confirm': '确定',
|
||||
'common.cancel': '取消',
|
||||
'common.sensitive': '敏感',
|
||||
'user.userid': '用户Id',
|
||||
'user.deviceCount': '设备数量',
|
||||
'user.createDate': '注册时间',
|
||||
'user.status': '状态',
|
||||
'user.normal': '正常',
|
||||
'user.disabled': '禁用',
|
||||
'user.resetPassword': '重置密码',
|
||||
'user.disableAccount': '禁用账户',
|
||||
'user.enableAccount': '恢复账号',
|
||||
'user.deleteUser': '删除用户',
|
||||
'user.deselectAll': '取消全选',
|
||||
'user.selectAll': '全选',
|
||||
'user.enable': '启用',
|
||||
'user.disable': '禁用',
|
||||
'user.delete': '删除',
|
||||
'user.selectUsersFirst': '请先选择需要删除的用户',
|
||||
'user.confirmDeleteSelected': '确定要删除选中的{count}个用户吗?',
|
||||
'user.deleting': '正在删除中...',
|
||||
'user.deleteSuccess': '成功删除{count}个用户',
|
||||
'user.deleteFailed': '删除失败,请重试',
|
||||
'user.partialDelete': '成功删除{successCount}个用户,{failCount}个删除失败',
|
||||
'user.deleteError': '删除过程中发生错误',
|
||||
'user.deleteCancelled': '已取消删除',
|
||||
'user.confirmResetPassword': '重置后将会生成新密码,是否继续?',
|
||||
'user.resetPasswordSuccess': '密码已重置,请通知用户使用新密码登录',
|
||||
'user.confirmDeleteUser': '确定要删除该用户吗?',
|
||||
'user.deleteUserSuccess': '删除成功',
|
||||
'user.operationFailed': '操作失败,请重试',
|
||||
'user.confirmStatusChange': '确定要{action}选中的{count}个用户吗?',
|
||||
'user.statusChangeSuccess': '成功{action}{count}个用户',
|
||||
'user.invalidUserId': '存在无效的用户ID',
|
||||
'user.searchPhone': '请输入手机号码查询',
|
||||
'user.search': '搜索',
|
||||
|
||||
// 语言切换
|
||||
'language.zhCN': '中文简体',
|
||||
'language.zhTW': '中文繁体',
|
||||
'language.en': 'English',
|
||||
|
||||
// 首页文本
|
||||
'home.addAgent': '添加智能体',
|
||||
'home.languageModel': '语言模型',
|
||||
'home.voiceModel': '音色模型',
|
||||
'home.configureRole': '配置角色',
|
||||
'home.voiceprintRecognition': '声纹识别',
|
||||
'home.deviceManagement': '设备管理',
|
||||
'home.chatHistory': '聊天记录',
|
||||
'home.lastConversation': '最近对话',
|
||||
'home.noConversation': '暂未对话',
|
||||
|
||||
// 参数管理页面文本
|
||||
'paramManagement.pageTitle': '参数管理',
|
||||
'paramManagement.searchPlaceholder': '请输入参数编码或备注查询',
|
||||
'paramManagement.search': '搜索',
|
||||
'paramManagement.paramCode': '参数编码',
|
||||
'paramManagement.paramValue': '参数值',
|
||||
'paramManagement.remark': '备注',
|
||||
'paramManagement.operation': '操作',
|
||||
'paramManagement.hide': '隐藏',
|
||||
'paramManagement.view': '查看',
|
||||
'paramManagement.deselectAll': '取消全选',
|
||||
'paramManagement.selectAll': '全选',
|
||||
'paramManagement.add': '新增',
|
||||
'paramManagement.delete': '删除',
|
||||
'paramManagement.edit': '编辑',
|
||||
'paramManagement.itemsPerPage': '条/页',
|
||||
'paramManagement.firstPage': '首页',
|
||||
'paramManagement.prevPage': '上一页',
|
||||
'paramManagement.nextPage': '下一页',
|
||||
'paramManagement.totalRecords': '共{total}条记录',
|
||||
'paramManagement.addParam': '新增参数',
|
||||
'paramManagement.editParam': '编辑参数',
|
||||
'paramManagement.getParamsListFailed': '获取参数列表失败',
|
||||
'paramManagement.selectParamsFirst': '请先选择需要删除的参数',
|
||||
'paramManagement.confirmBatchDelete': '确定要删除选中的{paramCount}个参数吗?',
|
||||
'paramManagement.invalidParamId': '存在无效的参数ID',
|
||||
'paramManagement.batchDeleteSuccess': '成功删除{paramCount}个参数',
|
||||
'paramManagement.deleteFailed': '删除失败,请重试',
|
||||
'paramManagement.operationCancelled': '已取消删除操作',
|
||||
'paramManagement.operationClosed': '操作已关闭',
|
||||
'paramManagement.updateSuccess': '修改成功',
|
||||
'paramManagement.addSuccess': '新增成功',
|
||||
'paramManagement.updateFailed': '更新失败',
|
||||
'paramManagement.addFailed': '新增失败',
|
||||
'home.justNow': '刚刚',
|
||||
'home.minutesAgo': '{minutes}分钟前',
|
||||
'home.hoursAgo': '{hours}小时{minutes}分钟前',
|
||||
'home.confirmDeleteAgent': '确定要删除该智能体吗?',
|
||||
'home.deleteSuccess': '删除成功',
|
||||
'home.deleteFailed': '删除失败',
|
||||
'home.enableMemory': '请先在“配置角色”界面开启记忆',
|
||||
|
||||
// 服务端管理页面文本
|
||||
'serverSideManager.pageTitle': '服务端管理',
|
||||
'serverSideManager.wsAddress': 'ws地址',
|
||||
'serverSideManager.operation': '操作',
|
||||
'serverSideManager.restart': '重启',
|
||||
'serverSideManager.updateConfig': '更新配置',
|
||||
'serverSideManager.restartServer': '重启服务端',
|
||||
'serverSideManager.updateConfigTitle': '更新配置',
|
||||
'serverSideManager.confirmRestart': '确定要重启服务端吗?',
|
||||
'serverSideManager.confirmUpdateConfig': '确定要更新配置吗?',
|
||||
'serverSideManager.loading': '拼命加载中',
|
||||
'serverSideManager.getServerListFailed': '获取服务端列表失败',
|
||||
'serverSideManager.operationFailed': '操作失败',
|
||||
'serverSideManager.restartSuccess': '重启成功',
|
||||
'serverSideManager.updateConfigSuccess': '更新配置成功',
|
||||
|
||||
// 添加智能体对话框文本
|
||||
'addAgentDialog.title': '添加智能体',
|
||||
'addAgentDialog.agentName': '智能体名称',
|
||||
'addAgentDialog.placeholder': '请输入智能体名称..',
|
||||
'addAgentDialog.confirm': '确定',
|
||||
'addAgentDialog.cancel': '取消',
|
||||
'addAgentDialog.nameRequired': '请输入智能体名称',
|
||||
'addAgentDialog.addSuccess': '添加成功',
|
||||
|
||||
// 角色配置页面文本
|
||||
'roleConfig.title': '角色配置',
|
||||
'roleConfig.restartNotice': '保存配置后,需要重启设备,新的配置才会生效。',
|
||||
'roleConfig.saveConfig': '保存配置',
|
||||
'roleConfig.reset': '重置',
|
||||
'roleConfig.agentName': '助手昵称',
|
||||
'roleConfig.roleTemplate': '角色模版',
|
||||
'roleConfig.roleIntroduction': '角色介绍',
|
||||
'roleConfig.languageCode': '语言编码',
|
||||
'roleConfig.interactionLanguage': '交互语种',
|
||||
'roleConfig.vad': '语音活动检测(VAD)',
|
||||
'roleConfig.asr': '语音识别(ASR)',
|
||||
'roleConfig.llm': '大语言模型(LLM)',
|
||||
'roleConfig.vllm': '视觉大模型(VLLM)',
|
||||
'roleConfig.intent': '意图识别(Intent)',
|
||||
'roleConfig.memory': '记忆(Memory)',
|
||||
'roleConfig.tts': '语音合成(TTS)',
|
||||
'roleConfig.voiceType': '角色音色(Voice Type)',
|
||||
'roleConfig.pleaseEnterContent': '请输入内容',
|
||||
'roleConfig.pleaseEnterLangCode': '请输入语言编码,如:zh_CN',
|
||||
'roleConfig.pleaseEnterLangName': '请输入交互语种,如:中文',
|
||||
'roleConfig.pleaseSelect': '请选择',
|
||||
'roleConfig.editFunctions': '编辑功能',
|
||||
'roleConfig.reportText': '上报文字',
|
||||
'roleConfig.reportTextVoice': '上报文字+语音',
|
||||
'roleConfig.saveSuccess': '配置保存成功',
|
||||
'roleConfig.saveFailed': '配置保存失败',
|
||||
'roleConfig.confirmReset': '确定要重置配置吗?',
|
||||
'roleConfig.resetSuccess': '配置已重置',
|
||||
'roleConfig.fetchTemplatesFailed': '获取模板列表失败',
|
||||
'roleConfig.templateApplied': '模板已应用',
|
||||
'roleConfig.applyTemplateFailed': '应用模板失败',
|
||||
'roleConfig.fetchConfigFailed': '获取配置失败',
|
||||
'roleConfig.fetchModelsFailed': '获取模型列表失败',
|
||||
'roleConfig.fetchPluginsFailed': '获取插件列表失败',
|
||||
|
||||
// 功能管理对话框文本
|
||||
'functionDialog.title': '功能管理',
|
||||
'functionDialog.unselectedFunctions': '未选功能',
|
||||
'functionDialog.selectedFunctions': '已选功能',
|
||||
'functionDialog.selectAll': '全选',
|
||||
'functionDialog.noMorePlugins': '没有更多的插件了',
|
||||
'functionDialog.pleaseSelectPlugin': '请选择插件功能',
|
||||
'functionDialog.paramConfig': '参数配置',
|
||||
'functionDialog.noNeedToConfig': ' 无需配置参数',
|
||||
'functionDialog.pleaseSelectFunctionForParam': '请选择已配置的功能进行参数设置',
|
||||
'functionDialog.mcpAccessPoint': 'MCP接入点',
|
||||
'functionDialog.mcpAddressDesc': '以下是智能体的MCP接入点地址。',
|
||||
'functionDialog.howToDeployMcp': '如何部署MCP接入点',
|
||||
'functionDialog.howToIntegrateMcp': '如何接入MCP功能',
|
||||
'functionDialog.copy': '复制',
|
||||
'functionDialog.accessPointStatus': '接入点状态',
|
||||
'functionDialog.connected': '已连接',
|
||||
'functionDialog.loading': '加载中...',
|
||||
'functionDialog.disconnected': '未连接',
|
||||
'functionDialog.refresh': '刷新',
|
||||
'functionDialog.noAvailableTools': '暂无可用工具',
|
||||
'functionDialog.cancel': '取消',
|
||||
'functionDialog.saveConfig': '保存配置',
|
||||
'functionDialog.copiedToClipboard': '已复制到剪贴板',
|
||||
'functionDialog.copyFailed': '复制失败,请手动复制',
|
||||
'functionDialog.jsonFormatError': '的字段格式错误:JSON格式有误',
|
||||
'functionDialog.defaultValue': '默认值',
|
||||
|
||||
// 模型配置页面文本
|
||||
'modelConfig.searchPlaceholder': '请输入模型名称查询',
|
||||
'modelConfig.search': '搜索',
|
||||
'modelConfig.vad': '语言活动检测',
|
||||
'modelConfig.asr': '语音识别',
|
||||
'modelConfig.llm': '大语言模型',
|
||||
'modelConfig.vllm': '视觉大语言模型',
|
||||
'modelConfig.intent': '意图识别',
|
||||
'modelConfig.tts': '语音合成',
|
||||
'modelConfig.memory': '记忆',
|
||||
'modelConfig.modelId': '模型ID',
|
||||
'modelConfig.modelName': '模型名称',
|
||||
'modelConfig.provider': '提供商',
|
||||
'modelConfig.unknown': '未知',
|
||||
'modelConfig.isEnabled': '是否启用',
|
||||
'modelConfig.isDefault': '是否默认',
|
||||
'modelConfig.action': '操作',
|
||||
'modelConfig.voiceManagement': '音色管理',
|
||||
'modelConfig.edit': '修改',
|
||||
'modelConfig.duplicate': '创建副本',
|
||||
'modelConfig.delete': '删除',
|
||||
'modelConfig.deselectAll': '取消全选',
|
||||
'modelConfig.select': '选择',
|
||||
'modelConfig.selectAll': '全选',
|
||||
'modelConfig.add': '新增',
|
||||
'modelConfig.selectModelsFirst': '请先选择要删除的模型',
|
||||
'modelConfig.confirmBatchDelete': '确定要删除选中的模型吗?',
|
||||
'modelConfig.confirmDelete': '确定要删除该模型吗?',
|
||||
'modelConfig.batchDeleteSuccess': '批量删除成功',
|
||||
'modelConfig.partialDeleteFailed': '部分删除失败',
|
||||
'modelConfig.deleteSuccess': '删除成功',
|
||||
'modelConfig.deleteFailed': '删除失败',
|
||||
'modelConfig.duplicateSuccess': '创建副本成功',
|
||||
'modelConfig.duplicateFailed': '创建副本失败',
|
||||
'modelConfig.saveSuccess': '保存成功',
|
||||
'modelConfig.saveFailed': '保存失败',
|
||||
'modelConfig.addSuccess': '新增成功',
|
||||
'modelConfig.addFailed': '新增失败',
|
||||
'modelConfig.fetchModelsFailed': '获取模型列表失败',
|
||||
'modelConfig.enableSuccess': '启用成功',
|
||||
'modelConfig.disableSuccess': '禁用成功',
|
||||
'modelConfig.operationFailed': '操作失败',
|
||||
'modelConfig.setDefaultSuccess': '设置默认模型成功',
|
||||
'modelConfig.itemsPerPage': '{items}条/页',
|
||||
'modelConfig.firstPage': '首页',
|
||||
'modelConfig.prevPage': '上一页',
|
||||
'modelConfig.nextPage': '下一页',
|
||||
'modelConfig.totalRecords': '共{total}条记录',
|
||||
'modelConfig.loading': '拼命加载中',
|
||||
|
||||
// 模型配置对话框文本
|
||||
'modelConfigDialog.addModel': '添加模型',
|
||||
'modelConfigDialog.editModel': '修改模型',
|
||||
'modelConfigDialog.modelInfo': '模型信息',
|
||||
'modelConfigDialog.enable': '是否启用',
|
||||
'modelConfigDialog.setDefault': '设为默认',
|
||||
'modelConfigDialog.modelName': '模型名称',
|
||||
'modelConfigDialog.enterModelName': '请输入模型名称',
|
||||
'modelConfigDialog.modelCode': '模型编码',
|
||||
'modelConfigDialog.enterModelCode': '请输入模型编码',
|
||||
'modelConfigDialog.supplier': '供应器',
|
||||
'modelConfigDialog.selectSupplier': '请选择',
|
||||
'modelConfigDialog.sortOrder': '排序号',
|
||||
'modelConfigDialog.enterSortOrder': '请输入排序号',
|
||||
'modelConfigDialog.docLink': '文档地址',
|
||||
'modelConfigDialog.enterDocLink': '请输入文档地址',
|
||||
'modelConfigDialog.remark': '备注',
|
||||
'modelConfigDialog.enterRemark': '请输入模型备注',
|
||||
'modelConfigDialog.callInfo': '调用信息',
|
||||
'modelConfigDialog.enterJsonExample': '请输入JSON格式变量(示例:{"key":"value"})',
|
||||
'modelConfigDialog.save': '保存',
|
||||
|
||||
// TTS模型配置文本
|
||||
'ttsModel.select': '选择',
|
||||
'ttsModel.voiceCode': '音色编码',
|
||||
'ttsModel.voiceName': '音色名称',
|
||||
'ttsModel.languageType': '语言类型',
|
||||
'ttsModel.preview': '试听',
|
||||
'ttsModel.enterMp3Url': '请输入MP3地址',
|
||||
'ttsModel.remark': '备注',
|
||||
'ttsModel.enterRemark': '这里是备注',
|
||||
'ttsModel.referenceAudioPath': '克隆音频路径',
|
||||
'ttsModel.enterReferenceAudio': '这里是克隆音频路径',
|
||||
'ttsModel.referenceText': '克隆音频文本',
|
||||
'ttsModel.enterReferenceText': '这里是克隆音频对应文本',
|
||||
'ttsModel.action': '操作',
|
||||
'ttsModel.edit': '编辑',
|
||||
'ttsModel.delete': '删除',
|
||||
'ttsModel.save': '保存',
|
||||
'ttsModel.deselectAll': '取消全选',
|
||||
'ttsModel.selectAll': '全选',
|
||||
'ttsModel.add': '新增',
|
||||
'ttsModel.fetchVoicesFailed': '获取音色列表失败',
|
||||
'ttsModel.loadVoicesFailed': '加载音色数据失败',
|
||||
'ttsModel.unnamedVoice': '未命名音色',
|
||||
|
||||
// OTA管理页面文本
|
||||
'otaManagement.firmwareManagement': '固件管理',
|
||||
'otaManagement.searchPlaceholder': '请输入固件名称查询',
|
||||
'otaManagement.search': '搜索',
|
||||
'otaManagement.firmwareName': '固件名称',
|
||||
'otaManagement.firmwareType': '固件类型',
|
||||
'otaManagement.version': '版本号',
|
||||
'otaManagement.fileSize': '文件大小',
|
||||
'otaManagement.remark': '备注',
|
||||
'otaManagement.createTime': '创建时间',
|
||||
'otaManagement.updateTime': '更新时间',
|
||||
'otaManagement.action': '操作',
|
||||
'otaManagement.download': '下载',
|
||||
'otaManagement.edit': '编辑',
|
||||
'otaManagement.delete': '删除',
|
||||
'otaManagement.selectAll': '全选',
|
||||
'otaManagement.deselectAll': '取消全选',
|
||||
'otaManagement.addNew': '新增',
|
||||
'otaManagement.addFirmware': '新增固件',
|
||||
'otaManagement.editFirmware': '编辑固件',
|
||||
'otaManagement.itemsPerPage': '{items}条/页',
|
||||
'otaManagement.firstPage': '首页',
|
||||
'otaManagement.prevPage': '上一页',
|
||||
'otaManagement.nextPage': '下一页',
|
||||
'otaManagement.totalRecords': '共{total}条记录',
|
||||
'otaManagement.selectFirmwareFirst': '请先选择需要删除的固件',
|
||||
'otaManagement.confirmBatchDelete': '确定要删除选中的{paramCount}个固件吗?',
|
||||
'otaManagement.operationCancelled': '已取消删除操作',
|
||||
'otaManagement.operationClosed': '操作已关闭',
|
||||
'otaManagement.batchDeleteSuccess': '成功删除{paramCount}个固件',
|
||||
'otaManagement.deleteFailed': '删除失败,请重试',
|
||||
'otaManagement.incompleteFirmwareInfo': '固件信息不完整',
|
||||
'otaManagement.getDownloadUrlFailed': '获取下载链接失败',
|
||||
'otaManagement.getFirmwareTypesFailed': '获取固件类型失败',
|
||||
'otaManagement.updateSuccess': '修改成功',
|
||||
'otaManagement.updateFailed': '修改失败',
|
||||
'otaManagement.addSuccess': '新增成功',
|
||||
'otaManagement.addFailed': '新增失败',
|
||||
'otaManagement.fetchFirmwareListFailed': '获取固件列表失败',
|
||||
|
||||
// 字段管理页面模型类型翻译
|
||||
'providerManagement.all': '全部',
|
||||
'providerManagement.modelType.ASR': '语音识别',
|
||||
'providerManagement.modelType.TTS': '语音合成',
|
||||
'providerManagement.modelType.LLM': '大语言模型',
|
||||
'providerManagement.modelType.VLLM': '视觉大语言模型',
|
||||
'providerManagement.modelType.Intent': '意图识别',
|
||||
'providerManagement.modelType.Memory': '记忆模块',
|
||||
'providerManagement.modelType.VAD': '语音活动检测',
|
||||
'providerManagement.modelType.Plugin': '插件工具',
|
||||
|
||||
// Provider Dialog 翻译
|
||||
'providerDialog.category': '类别',
|
||||
'providerDialog.selectCategory': '请选择类别',
|
||||
'providerDialog.code': '编码',
|
||||
'providerDialog.inputCode': '请输入供应器编码',
|
||||
'providerDialog.name': '名称',
|
||||
'providerDialog.inputName': '请输入供应器名称',
|
||||
'providerDialog.sort': '排序',
|
||||
'providerDialog.fieldConfig': '字段配置',
|
||||
'providerDialog.add': '添加',
|
||||
'providerDialog.deselectAll': '取消全选',
|
||||
'providerDialog.selectAll': '全选',
|
||||
'providerDialog.batchDelete': '批量删除',
|
||||
'providerDialog.fieldKey': '字段key',
|
||||
'providerDialog.fieldLabel': '字段标签',
|
||||
'providerDialog.fieldType': '字段类型',
|
||||
'providerDialog.type': '类型',
|
||||
'providerDialog.stringType': '字符串',
|
||||
'providerDialog.numberType': '数字',
|
||||
'providerDialog.booleanType': '布尔值',
|
||||
'providerDialog.dictType': '字典',
|
||||
'providerDialog.arrayType': '分号分割的列表',
|
||||
'providerDialog.defaultValue': '默认值',
|
||||
'providerDialog.inputDefaultValue': '请输入默认值',
|
||||
'providerDialog.operation': '操作',
|
||||
'providerDialog.edit': '编辑',
|
||||
'providerDialog.complete': '完成',
|
||||
'providerDialog.delete': '删除',
|
||||
'providerDialog.save': '保存',
|
||||
'providerDialog.requiredCategory': '请选择类别',
|
||||
'providerDialog.requiredCode': '请输入供应器编码',
|
||||
'providerDialog.requiredName': '请输入供应器名称',
|
||||
'providerDialog.completeFieldEdit': '请先完成当前字段的编辑',
|
||||
'providerDialog.confirmDeleteField': '确定要删除该字段吗?',
|
||||
'providerDialog.selectFieldsToDelete': '请先选择要删除的字段',
|
||||
'providerDialog.confirmBatchDeleteFields': '确定要删除选中的{count}个字段吗?',
|
||||
'providerDialog.batchDeleteFieldsSuccess': '成功删除{count}个字段',
|
||||
};
|
||||
@@ -0,0 +1,802 @@
|
||||
export default {
|
||||
// HeaderBar组件文本
|
||||
'header.smartManagement': '智能體管理',
|
||||
'header.modelConfig': '模型配置',
|
||||
'header.userManagement': '用戶管理',
|
||||
'header.otaManagement': 'OTA管理',
|
||||
'header.paramDictionary': '參數字典',
|
||||
'header.paramManagement': '參數管理',
|
||||
'header.dictManagement': '字典管理',
|
||||
|
||||
// 字典數據對話框相關
|
||||
'dictDataDialog.addDictData': '新增字典數據',
|
||||
'dictDataDialog.dictLabel': '字典標籤',
|
||||
'dictDataDialog.dictLabelPlaceholder': '請輸入字典標籤',
|
||||
'dictDataDialog.dictValue': '字典值',
|
||||
'dictDataDialog.dictValuePlaceholder': '請輸入字典值',
|
||||
'dictDataDialog.sort': '排序',
|
||||
'dictDataDialog.requiredDictLabel': '請輸入字典標籤',
|
||||
'dictDataDialog.requiredDictValue': '請輸入字典值',
|
||||
|
||||
// 字典類型對話框相關
|
||||
'dictTypeDialog.addDictType': '新增字典類型',
|
||||
'dictTypeDialog.dictName': '字典類型名稱',
|
||||
'dictTypeDialog.dictNamePlaceholder': '請輸入字典類型名稱',
|
||||
'dictTypeDialog.dictType': '字典類型編碼',
|
||||
'dictTypeDialog.dictTypePlaceholder': '請輸入字典類型編碼',
|
||||
'dictTypeDialog.requiredDictName': '請輸入字典類型名稱',
|
||||
'dictTypeDialog.requiredDictType': '請輸入字典類型編碼',
|
||||
|
||||
// 音頻編輯對話框相關
|
||||
'editVoiceDialog.voiceCode': '音色編碼',
|
||||
'editVoiceDialog.voiceCodePlaceholder': '請輸入音色編碼',
|
||||
'editVoiceDialog.voiceName': '音色名稱',
|
||||
'editVoiceDialog.voiceNamePlaceholder': '請輸入音色名稱',
|
||||
'editVoiceDialog.languageType': '語言類型',
|
||||
'editVoiceDialog.languageTypePlaceholder': '請輸入語言類型',
|
||||
'editVoiceDialog.sortNumber': '排序號',
|
||||
'editVoiceDialog.remark': '備註',
|
||||
'editVoiceDialog.remarkPlaceholder': '請輸入備註內容',
|
||||
'editVoiceDialog.generatePreview': '生成試聽',
|
||||
'editVoiceDialog.defaultVoiceName': '灣灣小何',
|
||||
'editVoiceDialog.defaultLanguageType': '中文',
|
||||
'editVoiceDialog.requiredVoiceCode': '請輸入音色編碼',
|
||||
'editVoiceDialog.requiredVoiceName': '請輸入音色名稱',
|
||||
|
||||
// 固件對話框相關
|
||||
'firmwareDialog.firmwareName': '固件名稱',
|
||||
'firmwareDialog.firmwareNamePlaceholder': '請輸入固件名稱(板子+版本號)',
|
||||
'firmwareDialog.firmwareType': '固件類型',
|
||||
'firmwareDialog.firmwareTypePlaceholder': '請選擇固件類型',
|
||||
|
||||
// 聲紋對話框相關
|
||||
'voicePrintDialog.addSpeaker': '添加說話人',
|
||||
'voicePrintDialog.voicePrintVector': '聲紋向量',
|
||||
'voicePrintDialog.selectVoiceMessage': '請選擇一條語言消息',
|
||||
'voicePrintDialog.name': '姓名',
|
||||
'voicePrintDialog.enterName': '請輸入姓名',
|
||||
'voicePrintDialog.description': '描述',
|
||||
'voicePrintDialog.enterDescription': '請輸入描述',
|
||||
'voicePrintDialog.save': '保存',
|
||||
'voicePrintDialog.cancel': '取消',
|
||||
'voicePrintDialog.requiredDescription': '請輸入描述',
|
||||
'voicePrintDialog.requiredName': '請輸入姓名',
|
||||
'voicePrintDialog.requiredAudioVector': '請選擇音頻向量',
|
||||
|
||||
// 聲紋頁面相關
|
||||
'voicePrint.pageTitle': '聲紋識別',
|
||||
'voicePrint.name': '姓名',
|
||||
'voicePrint.description': '描述',
|
||||
'voicePrint.createTime': '創建時間',
|
||||
'voicePrint.action': '操作',
|
||||
'voicePrint.edit': '編輯',
|
||||
'voicePrint.delete': '刪除',
|
||||
'voicePrint.add': '新增',
|
||||
'voicePrint.addSpeaker': '添加說話人',
|
||||
'voicePrint.editSpeaker': '編輯說話人',
|
||||
'voicePrint.fetchFailed': '獲取聲紋列表失敗',
|
||||
'voicePrint.updateSuccess': '修改成功',
|
||||
'voicePrint.addSuccess': '新增成功',
|
||||
'voicePrint.confirmDelete': '確定要刪除選中的此聲紋嗎?',
|
||||
'voicePrint.warning': '警告',
|
||||
'voicePrint.confirm': '確定',
|
||||
'voicePrint.cancel': '取消',
|
||||
'voicePrint.deleteSuccess': '成功刪除此聲紋',
|
||||
'voicePrint.deleteFailed': '刪除失敗,請重試',
|
||||
'voicePrint.cancelDelete': '已取消刪除操作',
|
||||
'voicePrint.closeOperation': '操作已關閉',
|
||||
'voicePrint.loading': '拼命加載中',
|
||||
|
||||
// 手動添加設備對話框相關
|
||||
'manualAddDeviceDialog.title': '手動添加設備',
|
||||
'manualAddDeviceDialog.deviceType': '設備型號',
|
||||
'manualAddDeviceDialog.deviceTypePlaceholder': '請選擇設備型號',
|
||||
'manualAddDeviceDialog.firmwareVersion': '固件版本',
|
||||
'manualAddDeviceDialog.firmwareVersionPlaceholder': '請輸入固件版本',
|
||||
'manualAddDeviceDialog.macAddress': 'Mac地址',
|
||||
'manualAddDeviceDialog.macAddressPlaceholder': '請輸入Mac地址',
|
||||
'manualAddDeviceDialog.confirm': '確定',
|
||||
'manualAddDeviceDialog.cancel': '取消',
|
||||
'manualAddDeviceDialog.requiredMacAddress': '請輸入Mac地址',
|
||||
|
||||
// 參數對話框相關
|
||||
'paramDialog.paramCode': '參數編碼',
|
||||
'paramDialog.paramCodePlaceholder': '請輸入參數編碼',
|
||||
'paramDialog.paramValue': '參數值',
|
||||
'paramDialog.paramValuePlaceholder': '請輸入參數值',
|
||||
'paramDialog.valueType': '值類型',
|
||||
'paramDialog.valueTypePlaceholder': '請選擇值類型',
|
||||
'paramDialog.remark': '備註',
|
||||
'paramDialog.remarkPlaceholder': '請輸入備註',
|
||||
'paramDialog.save': '保存',
|
||||
'paramDialog.cancel': '取消',
|
||||
'paramDialog.requiredParamCode': '請輸入參數編碼',
|
||||
'paramDialog.requiredParamValue': '請輸入參數值',
|
||||
'paramDialog.requiredValueType': '請選擇值類型',
|
||||
'paramDialog.stringType': '字串(string)',
|
||||
'paramDialog.numberType': '數字(number)',
|
||||
'paramDialog.booleanType': '布林值(boolean)',
|
||||
'paramDialog.arrayType': '陣列(array)',
|
||||
'paramDialog.jsonType': 'JSON物件(json)',
|
||||
'manualAddDeviceDialog.invalidMacAddress': '請輸入正確的Mac地址格式,例如:00:1A:2B:3C:4D:5E',
|
||||
'manualAddDeviceDialog.requiredDeviceType': '請選擇設備型號',
|
||||
'manualAddDeviceDialog.requiredFirmwareVersion': '請輸入固件版本',
|
||||
'manualAddDeviceDialog.getFirmwareTypeFailed': '獲取固件類型失敗',
|
||||
'manualAddDeviceDialog.addSuccess': '設備添加成功',
|
||||
'manualAddDeviceDialog.addFailed': '添加失敗',
|
||||
'firmwareDialog.version': '版本號',
|
||||
'firmwareDialog.versionPlaceholder': '請輸入版本號(x.x.x格式)',
|
||||
'firmwareDialog.firmwareFile': '固件文件',
|
||||
'firmwareDialog.clickUpload': '點擊上傳',
|
||||
'firmwareDialog.uploadTip': '只能上傳固件文件(.bin/.apk),且不超過100MB',
|
||||
'firmwareDialog.uploadHint': '溫馨提示:請上傳合併前的xiaozhi.bin文件,而不是合併後的merged-binary.bin文件',
|
||||
'firmwareDialog.remark': '備註',
|
||||
'firmwareDialog.remarkPlaceholder': '請輸入備註信息',
|
||||
'firmwareDialog.requiredFirmwareName': '請輸入固件名稱(板子+版本號)',
|
||||
'firmwareDialog.requiredFirmwareType': '請選擇固件類型',
|
||||
'firmwareDialog.requiredVersion': '請輸入版本號',
|
||||
'firmwareDialog.versionFormatError': '版本號格式不正確,請輸入x.x.x格式',
|
||||
'firmwareDialog.requiredFirmwareFile': '請上傳固件文件',
|
||||
'firmwareDialog.invalidFileType': '只能上傳.bin/.apk格式的固件文件!',
|
||||
'firmwareDialog.invalidFileSize': '固件文件大小不能超過100MB!',
|
||||
'firmwareDialog.uploadSuccess': '固件文件上傳成功',
|
||||
'firmwareDialog.uploadFailed': '文件上傳失敗',
|
||||
'header.providerManagement': '字段管理',
|
||||
'header.serverSideManagement': '服務端管理',
|
||||
'header.changePassword': '修改密碼',
|
||||
'header.logout': '退出登錄',
|
||||
'header.searchPlaceholder': '輸入名稱搜索..',
|
||||
|
||||
// 登录页面文本
|
||||
'login.title': '小智服務登錄',
|
||||
'login.welcome': '歡迎登錄',
|
||||
'login.username': '用戶名',
|
||||
'login.usernamePlaceholder': '請輸入用戶名',
|
||||
'login.mobilePlaceholder': '請輸入手機號碼',
|
||||
'login.password': '密碼',
|
||||
'login.passwordPlaceholder': '請輸入密碼',
|
||||
'login.captchaPlaceholder': '請輸入驗證碼',
|
||||
'login.loginButton': '登錄',
|
||||
'login.login': '登錄',
|
||||
'login.register': '新用戶註冊',
|
||||
'login.forgotPassword': '忘記密碼',
|
||||
'login.forgetPassword': '忘記密碼?',
|
||||
'login.mobileLogin': '手機號碼登錄',
|
||||
'login.usernameLogin': '用戶名登錄',
|
||||
'login.agreeTo': '登錄即同意',
|
||||
'login.userAgreement': '《用戶協議》',
|
||||
'login.and': '和',
|
||||
'login.privacyPolicy': '《隱私政策》',
|
||||
'login.registerAccount': '註冊賬號',
|
||||
|
||||
// 注册页面文本
|
||||
'register.title': '註冊賬號',
|
||||
'register.welcome': '歡迎註冊',
|
||||
'register.username': '用戶名',
|
||||
'register.usernamePlaceholder': '請輸入用戶名',
|
||||
'register.mobile': '手機號',
|
||||
'register.mobilePlaceholder': '請輸入手機號碼',
|
||||
'register.password': '密碼',
|
||||
'register.passwordPlaceholder': '請輸入密碼',
|
||||
'register.confirmPassword': '確認密碼',
|
||||
'register.confirmPasswordPlaceholder': '請確認密碼',
|
||||
'register.captcha': '驗證碼',
|
||||
'register.captchaPlaceholder': '請輸入驗證碼',
|
||||
'register.mobileCaptcha': '手機驗證碼',
|
||||
'register.mobileCaptchaPlaceholder': '請輸入手機驗證碼',
|
||||
'register.getMobileCaptcha': '獲取驗證碼',
|
||||
'register.registerButton': '註冊',
|
||||
'register.login': '登錄',
|
||||
'register.inputCorrectMobile': '請輸入正確的手機號碼',
|
||||
'register.inputCaptcha': '請輸入圖形驗證碼',
|
||||
'register.captchaSendSuccess': '驗證碼發送成功',
|
||||
'register.invalidCaptcha': '驗證碼不正確',
|
||||
'register.passwordsNotMatch': '兩次輸入的密碼不一致',
|
||||
'register.passwordLength': '密碼長度必須在6-20位之間',
|
||||
'register.usernameRequired': '用戶名不能為空',
|
||||
'register.usernameFormat': '用戶名格式不正確',
|
||||
'register.mobileRequired': '手機號不能為空',
|
||||
'register.passwordRequired': '密碼不能為空',
|
||||
'register.confirmPasswordRequired': '確認密碼不能為空',
|
||||
|
||||
// 忘记密码页面文本
|
||||
'retrievePassword.title': '重置密碼',
|
||||
'retrievePassword.welcome': '密碼找回',
|
||||
'retrievePassword.mobile': '手機號',
|
||||
'retrievePassword.mobilePlaceholder': '請輸入手機號碼',
|
||||
'retrievePassword.captcha': '驗證碼',
|
||||
'retrievePassword.captchaPlaceholder': '請輸入驗證碼',
|
||||
'retrievePassword.mobileCaptcha': '手機驗證碼',
|
||||
'retrievePassword.mobileCaptchaPlaceholder': '請輸入手機驗證碼',
|
||||
'retrievePassword.newPassword': '新密碼',
|
||||
'retrievePassword.newPasswordPlaceholder': '請輸入新密碼',
|
||||
'retrievePassword.confirmNewPassword': '確認新密碼',
|
||||
'retrievePassword.confirmNewPasswordPlaceholder': '請確認新密碼',
|
||||
'retrievePassword.getMobileCaptcha': '獲取驗證碼',
|
||||
'retrievePassword.updateButton': '立即修改',
|
||||
'retrievePassword.goToLogin': '返回登錄',
|
||||
'retrievePassword.inputCorrectMobile': '請輸入正確的手機號碼',
|
||||
'retrievePassword.captchaSendSuccess': '驗證碼發送成功',
|
||||
'retrievePassword.passwordsNotMatch': '兩次輸入的密碼不一致',
|
||||
'retrievePassword.passwordLength': '密碼長度必須在6-20位之間',
|
||||
'retrievePassword.mobileRequired': '手機號不能為空',
|
||||
'retrievePassword.captchaRequired': '驗證碼不能為空',
|
||||
'retrievePassword.mobileCaptchaRequired': '手機驗證碼不能為空',
|
||||
'retrievePassword.newPasswordRequired': '新密碼不能為空',
|
||||
'retrievePassword.confirmNewPasswordRequired': '確認新密碼不能為空',
|
||||
'retrievePassword.passwordUpdateSuccess': '密碼修改成功',
|
||||
|
||||
// 修改密码页面文本
|
||||
'changePassword.title': '修改密碼',
|
||||
'changePassword.oldPasswordLabel': '舊密碼:',
|
||||
'changePassword.oldPasswordPlaceholder': '請輸入舊密碼',
|
||||
'changePassword.newPasswordLabel': '新密碼:',
|
||||
'changePassword.newPasswordPlaceholder': '請輸入新密碼',
|
||||
'changePassword.confirmPasswordLabel': '確認新密碼:',
|
||||
'changePassword.confirmPasswordPlaceholder': '請再次輸入新密碼',
|
||||
'changePassword.confirmButton': '確定',
|
||||
'changePassword.cancelButton': '取消',
|
||||
'changePassword.allFieldsRequired': '請填寫所有字段',
|
||||
'changePassword.passwordsNotMatch': '兩次輸入的新密碼不一致',
|
||||
'changePassword.newPasswordSameAsOld': '新密碼不能與舊密碼相同',
|
||||
'changePassword.passwordChangedSuccessfully': '密碼修改成功,請重新登錄',
|
||||
'changePassword.changeFailed': '密碼修改失敗',
|
||||
|
||||
// 设备管理页面文本
|
||||
'device.management': '設備管理',
|
||||
'device.add': '添加設備',
|
||||
'device.edit': '編輯設備',
|
||||
'device.delete': '刪除設備',
|
||||
'device.name': '設備名稱',
|
||||
'device.type': '設備類型',
|
||||
'device.status': '設備狀態',
|
||||
'device.dialogTitle': '添加設備',
|
||||
'device.verificationCode': '驗證碼:',
|
||||
'device.verificationCodePlaceholder': '請輸入設備播報的6位數驗證碼..',
|
||||
'device.confirmButton': '確定',
|
||||
'device.cancelButton': '取消',
|
||||
'device.input6DigitCode': '請輸入6位數字驗證碼',
|
||||
'device.bindSuccess': '設備綁定成功',
|
||||
'device.bindFailed': '綁定失敗',
|
||||
// DeviceManagement頁面擴展翻譯
|
||||
'device.searchPlaceholder': '請輸入設備型號或Mac地址查詢',
|
||||
'device.model': '設備型號',
|
||||
'device.macAddress': 'Mac地址',
|
||||
'device.firmwareVersion': '固件版本',
|
||||
'device.bindTime': '綁定時間',
|
||||
'device.lastConversation': '最後對話',
|
||||
'device.remark': '備註',
|
||||
'device.autoUpdate': '自動升級',
|
||||
'device.operation': '操作',
|
||||
'device.search': '搜索',
|
||||
'device.selectAll': '全選/取消全選',
|
||||
'device.bindWithCode': '驗證碼綁定',
|
||||
'device.manualAdd': '手動添加',
|
||||
'device.unbind': '解綁',
|
||||
'device.selectAtLeastOne': '請至少選擇一條記錄',
|
||||
'device.confirmBatchUnbind': '確認要解綁選中的 {count} 台設備嗎?',
|
||||
'device.batchUnbindSuccess': '成功解綁 {count} 台設備',
|
||||
'device.batchUnbindError': '批量解綁過程中出現錯誤',
|
||||
'device.remarkTooLong': '備註不能超過 64 字符',
|
||||
'device.remarkSaved': '備註已保存',
|
||||
'device.remarkSaveFailed': '備註保存失敗',
|
||||
'device.confirmUnbind': '確認要解綁該設備嗎?',
|
||||
'device.unbindSuccess': '設備解綁成功',
|
||||
'device.unbindFailed': '設備解綁失敗',
|
||||
'device.getListFailed': '獲取設備列表失敗',
|
||||
'device.autoUpdateEnabled': '已設置成自動升級',
|
||||
'device.autoUpdateDisabled': '已關閉自動升級',
|
||||
'device.batchUnbindSuccess': '成功解綁 {count} 台設備',
|
||||
'device.getFirmwareTypeFailed': '獲取固件類型失敗',
|
||||
|
||||
// 消息提示
|
||||
'message.success': '操作成功',
|
||||
'message.error': '操作失敗',
|
||||
'message.warning': '警告',
|
||||
'message.info': '提示',
|
||||
|
||||
// 缓存相关
|
||||
'cache.viewer': '緩存查看器',
|
||||
|
||||
// 聊天历史对话框相关
|
||||
'chatHistory.with': '與',
|
||||
'chatHistory.dialogTitle': '的聊天記錄',
|
||||
'chatHistory.loading': '加載中...',
|
||||
'chatHistory.noMoreRecords': '沒有更多記錄了',
|
||||
'chatHistory.selectSession': '請選擇會話查看聊天記錄',
|
||||
'chatHistory.today': '今天',
|
||||
'chatHistory.yesterday': '昨天',
|
||||
'cache.status': '緩存狀態',
|
||||
'cache.cdnEnabled': 'CDN模式已啟用',
|
||||
'cache.cdnDisabled': 'CDN模式已禁用',
|
||||
'cache.serviceWorkerRegistered': 'Service Worker已註冊',
|
||||
'cache.serviceWorkerNotRegistered': 'Service Worker未註冊',
|
||||
'cache.noCacheDetected': '還未檢測到緩存,請刷新頁面或等待緩存建立',
|
||||
'cache.swDevEnvWarning': '在開發環境中,Service Worker可能無法正常初始化緩存',
|
||||
'cache.swCheckMethods': '請嘗試以下方法檢查Service Worker是否生效:',
|
||||
'cache.swCheckMethod1': '在開發者工具的Application/Application標籤頁中查看Service Worker狀態',
|
||||
'cache.swCheckMethod2': '在開發者工具的Application/Cache/Cache Storage中查看緩存內容',
|
||||
'cache.swCheckMethod3': '使用生產構建(npm run build)並通過HTTP服務器訪問以測試完整功能',
|
||||
'cache.swDevEnvNormal': '在開發環境中,這是正常現象',
|
||||
'cache.swProdOnly': 'Service Worker通常只在生產環境中生效',
|
||||
'cache.swTestingTitle': '要測試Service Worker功能:',
|
||||
'cache.swTestingStep1': '運行npm run build構建生產版本',
|
||||
'cache.swTestingStep2': '通過HTTP服務器訪問構建後的頁面',
|
||||
'cache.swNotSupported': '當前瀏覽器不支持Service Worker,CDN資源緩存功能不可用',
|
||||
'cache.dialogTitle': 'CDN資源緩存狀態',
|
||||
'cache.loading': '正在加載緩存資訊...',
|
||||
'cache.notSupported': '您的瀏覽器不支援Cache API或Service Worker未安裝',
|
||||
'cache.refreshPage': '刷新頁面',
|
||||
'cache.noCachedResources': '未發現緩存的CDN資源',
|
||||
'cache.noCachedResourcesDesc': 'Service Worker可能尚未完成初始化或緩存尚未建立。請刷新頁面或等待一會後再試。',
|
||||
'cache.cdnCacheStatus': 'CDN資源緩存狀態',
|
||||
'cache.totalCachedResources': '共發現 {count} 個緩存資源',
|
||||
'cache.jsResources': 'JavaScript 資源 ({count})',
|
||||
'cache.cssResources': 'CSS 資源 ({count})',
|
||||
'cache.cached': '已緩存',
|
||||
'cache.notCached': '未緩存',
|
||||
'cache.refreshStatus': '刷新緩存狀態',
|
||||
'cache.clearCache': '清除緩存',
|
||||
'cache.refreshingStatus': '正在刷新緩存狀態',
|
||||
'cache.confirmClear': '確定要清除所有緩存嗎?',
|
||||
'cache.clearedSuccess': '緩存已清除',
|
||||
'cache.clearFailed': '清除緩存失敗',
|
||||
'cache.clearCanceled': '已取消清除',
|
||||
|
||||
// 通用按钮
|
||||
'button.ok': '確定',
|
||||
'button.cancel': '取消',
|
||||
'button.save': '保存',
|
||||
'button.close': '關閉',
|
||||
|
||||
// 系统信息
|
||||
'system.name': '小智服務',
|
||||
|
||||
// 声纹相关
|
||||
'voiceprint.management': '聲紋管理',
|
||||
'voiceprint.add': '添加聲紋',
|
||||
'voiceprint.delete': '刪除聲紋',
|
||||
|
||||
// 用户信息
|
||||
'user.info': '用戶信息',
|
||||
'user.username': '用戶名',
|
||||
'user.mobile': '手機號',
|
||||
'user.userid': '用戶Id',
|
||||
'user.deviceCount': '設備數量',
|
||||
'user.createDate': '註冊時間',
|
||||
'user.status': '狀態',
|
||||
'user.normal': '正常',
|
||||
'user.disabled': '禁用',
|
||||
'user.resetPassword': '重置密碼',
|
||||
'user.disableAccount': '禁用帳戶',
|
||||
'user.enableAccount': '恢復帳號',
|
||||
'user.deleteUser': '刪除用戶',
|
||||
'user.deselectAll': '取消全選',
|
||||
'user.selectAll': '全選',
|
||||
'user.enable': '啟用',
|
||||
'user.disable': '禁用',
|
||||
'user.delete': '刪除',
|
||||
'user.selectUsersFirst': '請先選擇需要刪除的用戶',
|
||||
'user.confirmDeleteSelected': '確定要刪除選中的{count}個用戶嗎?',
|
||||
'user.deleting': '正在刪除中...',
|
||||
'user.deleteSuccess': '成功刪除{count}個用戶',
|
||||
'user.deleteFailed': '刪除失敗,請重試',
|
||||
'user.partialDelete': '成功刪除{successCount}個用戶,{failCount}個刪除失敗',
|
||||
'user.deleteError': '刪除過程中發生錯誤',
|
||||
'user.deleteCancelled': '已取消刪除',
|
||||
'user.confirmResetPassword': '重置後將會生成新密碼,是否繼續?',
|
||||
'user.resetPasswordSuccess': '密碼已重置,請通知用戶使用新密碼登錄',
|
||||
'user.confirmDeleteUser': '確定要刪除該用戶嗎?',
|
||||
'user.deleteUserSuccess': '刪除成功',
|
||||
'user.operationFailed': '操作失敗,請重試',
|
||||
'user.confirmStatusChange': '確定要{action}選中的{count}個用戶嗎?',
|
||||
'user.statusChangeSuccess': '成功{action}{count}個用戶',
|
||||
'user.invalidUserId': '存在無效的用戶ID',
|
||||
'user.searchPhone': '請輸入手機號碼查詢',
|
||||
'user.search': '搜索',
|
||||
|
||||
// 語言切換
|
||||
'language.zhCN': '中文簡體',
|
||||
'language.zhTW': '中文繁體',
|
||||
'language.en': 'English',
|
||||
|
||||
// 首頁文本
|
||||
'home.addAgent': '添加智能體',
|
||||
'home.languageModel': '語言模型',
|
||||
'home.voiceModel': '音色模型',
|
||||
'home.configureRole': '配置角色',
|
||||
'home.voiceprintRecognition': '聲紋識別',
|
||||
'home.deviceManagement': '設備管理',
|
||||
'home.chatHistory': '聊天記錄',
|
||||
'home.lastConversation': '最近對話',
|
||||
'home.noConversation': '暫未對話',
|
||||
|
||||
// 參數管理頁面文本
|
||||
'paramManagement.pageTitle': '參數管理',
|
||||
'paramManagement.searchPlaceholder': '請輸入參數編碼或備註查詢',
|
||||
'paramManagement.search': '搜索',
|
||||
'paramManagement.paramCode': '參數編碼',
|
||||
'paramManagement.paramValue': '參數值',
|
||||
'paramManagement.remark': '備註',
|
||||
'paramManagement.operation': '操作',
|
||||
'paramManagement.hide': '隱藏',
|
||||
'paramManagement.view': '查看',
|
||||
'paramManagement.deselectAll': '取消全選',
|
||||
'paramManagement.selectAll': '全選',
|
||||
'paramManagement.add': '新增',
|
||||
'paramManagement.delete': '刪除',
|
||||
'paramManagement.edit': '編輯',
|
||||
'paramManagement.itemsPerPage': '條/頁',
|
||||
'paramManagement.firstPage': '首頁',
|
||||
'paramManagement.prevPage': '上一頁',
|
||||
'paramManagement.nextPage': '下一頁',
|
||||
|
||||
// 字段管理頁面文本
|
||||
'providerManagement.categoryFilter': '類別篩選',
|
||||
'providerManagement.searchPlaceholder': '請輸入供應器名稱查詢',
|
||||
'providerManagement.category': '類別',
|
||||
'providerManagement.providerCode': '供應器編碼',
|
||||
'providerManagement.fieldConfig': '字段配置',
|
||||
'providerManagement.selectToDelete': '請先選擇需要刪除的供應器',
|
||||
'providerManagement.confirmDelete': '確定要刪除選中的{count}個供應器嗎?',
|
||||
'providerManagement.viewFields': '查看字段',
|
||||
// 公共文本
|
||||
'common.all': '全部',
|
||||
'common.search': '搜索',
|
||||
'common.name': '名稱',
|
||||
'common.sort': '排序',
|
||||
'common.action': '操作',
|
||||
'common.edit': '編輯',
|
||||
'common.delete': '刪除',
|
||||
'common.selectAll': '全選',
|
||||
'common.deselectAll': '取消全選',
|
||||
'common.add': '新增',
|
||||
'common.perPage': '{number}條/頁',
|
||||
'common.firstPage': '首頁',
|
||||
'common.prevPage': '上一頁',
|
||||
'common.nextPage': '下一頁',
|
||||
'common.totalRecords': '共{number}條記錄',
|
||||
'common.addProvider': '新增供應器',
|
||||
'common.editProvider': '編輯供應器',
|
||||
'common.updateSuccess': '修改成功',
|
||||
'common.addSuccess': '新增成功',
|
||||
'common.deleteSuccess': '刪除成功',
|
||||
'common.deleteFailure': '刪除失敗,請重試',
|
||||
'common.deleteCancelled': '已取消刪除',
|
||||
'common.warning': '警告',
|
||||
'common.confirm': '確定',
|
||||
'common.cancel': '取消',
|
||||
'common.sensitive': '敏感',
|
||||
'paramManagement.totalRecords': '共{total}條記錄',
|
||||
'paramManagement.addParam': '新增參數',
|
||||
'paramManagement.editParam': '編輯參數',
|
||||
'paramManagement.getParamsListFailed': '獲取參數列表失敗',
|
||||
'paramManagement.selectParamsFirst': '請先選擇需要刪除的參數',
|
||||
'paramManagement.confirmBatchDelete': '確定要刪除選中的{paramCount}個參數嗎?',
|
||||
'paramManagement.invalidParamId': '存在無效的參數ID',
|
||||
'paramManagement.batchDeleteSuccess': '成功刪除{paramCount}個參數',
|
||||
'paramManagement.deleteFailed': '刪除失敗,請重試',
|
||||
'paramManagement.operationCancelled': '已取消刪除操作',
|
||||
'paramManagement.operationClosed': '操作已關閉',
|
||||
'paramManagement.updateSuccess': '修改成功',
|
||||
'paramManagement.addSuccess': '新增成功',
|
||||
'paramManagement.updateFailed': '更新失敗',
|
||||
'paramManagement.addFailed': '新增失敗',
|
||||
'home.justNow': '剛剛',
|
||||
'home.minutesAgo': '{minutes}分鐘前',
|
||||
'home.hoursAgo': '{hours}小時{minutes}分鐘前',
|
||||
'home.confirmDeleteAgent': '確定要刪除該智能體嗎?',
|
||||
'home.deleteSuccess': '刪除成功',
|
||||
'home.deleteFailed': '刪除失敗',
|
||||
'home.enableMemory': '請先在「配置角色」介面開啟記憶',
|
||||
|
||||
// 字典管理頁面文本
|
||||
'dictManagement.pageTitle': '字典管理',
|
||||
'dictManagement.searchPlaceholder': '請輸入字典名稱搜索',
|
||||
'dictManagement.search': '搜索',
|
||||
'dictManagement.addDictType': '新增字典類型',
|
||||
'dictManagement.batchDeleteDictType': '批量刪除字典類型',
|
||||
'dictManagement.dictName': '字典名稱',
|
||||
'dictManagement.dictCode': '字典代碼',
|
||||
'dictManagement.description': '描述',
|
||||
'dictManagement.operation': '操作',
|
||||
'dictManagement.edit': '修改',
|
||||
'dictManagement.delete': '刪除',
|
||||
'dictManagement.dictLabel': '字典標籤',
|
||||
'dictManagement.dictValue': '字典值',
|
||||
'dictManagement.sortOrder': '排序號',
|
||||
'dictManagement.status': '狀態',
|
||||
'dictManagement.itemsPerPage': '{items}條/頁',
|
||||
'dictManagement.firstPage': '首頁',
|
||||
'dictManagement.prevPage': '上一頁',
|
||||
'dictManagement.nextPage': '下一頁',
|
||||
'dictManagement.totalRecords': '共{total}條記錄',
|
||||
'dictManagement.addDictData': '新增字典數據',
|
||||
'dictManagement.editDictType': '修改字典類型',
|
||||
'dictManagement.confirmDelete': '確定要刪除此字典類型嗎?',
|
||||
'dictManagement.confirmBatchDelete': '確定要刪除選中的{count}個字典類型嗎?',
|
||||
'dictManagement.selectFirst': '請先選擇需要刪除的字典類型',
|
||||
'dictManagement.deleteSuccess': '刪除成功',
|
||||
'dictManagement.deleteFailed': '刪除失敗',
|
||||
'dictManagement.addSuccess': '新增成功',
|
||||
'dictManagement.editSuccess': '修改成功',
|
||||
'dictManagement.getDictListFailed': '獲取字典列表失敗',
|
||||
'dictManagement.getDictDataListFailed': '獲取字典數據列表失敗',
|
||||
'dictManagement.saveFailed': '保存失敗',
|
||||
'dictManagement.loading': '拼命加載中',
|
||||
'dictManagement.select': '選擇',
|
||||
|
||||
// 服務端管理頁面文本
|
||||
'serverSideManager.pageTitle': '服務端管理',
|
||||
'serverSideManager.wsAddress': 'ws地址',
|
||||
'serverSideManager.operation': '操作',
|
||||
'serverSideManager.restart': '重啟',
|
||||
'serverSideManager.updateConfig': '更新配置',
|
||||
'serverSideManager.restartServer': '重啟服務端',
|
||||
'serverSideManager.updateConfigTitle': '更新配置',
|
||||
'serverSideManager.confirmRestart': '確定要重啟服務端嗎?',
|
||||
'serverSideManager.confirmUpdateConfig': '確定要更新配置嗎?',
|
||||
'serverSideManager.loading': '拼命加載中',
|
||||
'serverSideManager.getServerListFailed': '獲取服務端列表失敗',
|
||||
'serverSideManager.operationFailed': '操作失敗',
|
||||
'serverSideManager.restartSuccess': '重啟成功',
|
||||
'serverSideManager.updateConfigSuccess': '更新配置成功',
|
||||
|
||||
// 添加智能體對話框文本
|
||||
'addAgentDialog.title': '添加智能體',
|
||||
'addAgentDialog.agentName': '智能體名稱',
|
||||
'addAgentDialog.placeholder': '請輸入智能體名稱..',
|
||||
'addAgentDialog.confirm': '確定',
|
||||
'addAgentDialog.cancel': '取消',
|
||||
'addAgentDialog.nameRequired': '請輸入智能體名稱',
|
||||
'addAgentDialog.addSuccess': '添加成功',
|
||||
|
||||
// 角色配置頁面文本
|
||||
'roleConfig.title': '角色配置',
|
||||
'roleConfig.restartNotice': '保存配置後,需要重啟設備,新的配置才會生效。',
|
||||
'roleConfig.saveConfig': '保存配置',
|
||||
'roleConfig.reset': '重置',
|
||||
'roleConfig.agentName': '助手暱稱',
|
||||
'roleConfig.roleTemplate': '角色模版',
|
||||
'roleConfig.roleIntroduction': '角色介紹',
|
||||
'roleConfig.languageCode': '語言編碼',
|
||||
'roleConfig.interactionLanguage': '交互語種',
|
||||
'roleConfig.vad': '語音活動檢測(VAD)',
|
||||
'roleConfig.asr': '語音識別(ASR)',
|
||||
'roleConfig.llm': '大語言模型(LLM)',
|
||||
'roleConfig.vllm': '視覺大模型(VLLM)',
|
||||
'roleConfig.tts': '語音合成(TTS)',
|
||||
'roleConfig.memory': '記憶(Memory)',
|
||||
'roleConfig.intent': '意圖識別(Intent)',
|
||||
'roleConfig.voiceType': '角色音色(Voice Type)',
|
||||
'roleConfig.pleaseEnterContent': '請輸入內容',
|
||||
'roleConfig.pleaseEnterLangCode': '請輸入語言編碼,如:zh_TW',
|
||||
'roleConfig.pleaseEnterLangName': '請輸入交互語種,如:繁體中文',
|
||||
'roleConfig.pleaseSelect': '請選擇',
|
||||
'roleConfig.editFunctions': '編輯功能',
|
||||
'roleConfig.reportText': '上報文字',
|
||||
'roleConfig.reportTextVoice': '上報文字+語音',
|
||||
'roleConfig.saveSuccess': '配置保存成功',
|
||||
'roleConfig.saveFailed': '配置保存失敗',
|
||||
'roleConfig.confirmReset': '確定要重置配置嗎?',
|
||||
'roleConfig.resetSuccess': '配置已重置',
|
||||
'roleConfig.fetchTemplatesFailed': '獲取模板列表失敗',
|
||||
'roleConfig.templateApplied': '模板已應用',
|
||||
'roleConfig.applyTemplateFailed': '應用模板失敗',
|
||||
'roleConfig.fetchConfigFailed': '獲取配置失敗',
|
||||
'roleConfig.fetchModelsFailed': '獲取模型列表失敗',
|
||||
'roleConfig.fetchPluginsFailed': '獲取插件列表失敗',
|
||||
|
||||
// 功能管理對話框文本
|
||||
'functionDialog.title': '功能管理',
|
||||
'functionDialog.unselectedFunctions': '未選功能',
|
||||
'functionDialog.selectedFunctions': '已選功能',
|
||||
'functionDialog.selectAll': '全選',
|
||||
'functionDialog.noMorePlugins': '沒有更多的插件了',
|
||||
'functionDialog.pleaseSelectPlugin': '請選擇插件功能',
|
||||
'functionDialog.paramConfig': '參數配置',
|
||||
'functionDialog.noNeedToConfig': ' 無需配置參數',
|
||||
'functionDialog.pleaseSelectFunctionForParam': '請選擇已配置的功能進行參數設置',
|
||||
'functionDialog.mcpAccessPoint': 'MCP接入點',
|
||||
'functionDialog.mcpAddressDesc': '以下是智能體的MCP接入點地址。',
|
||||
'functionDialog.howToDeployMcp': '如何部署MCP接入點',
|
||||
'functionDialog.howToIntegrateMcp': '如何接入MCP功能',
|
||||
'functionDialog.copy': '複製',
|
||||
'functionDialog.accessPointStatus': '接入點狀態',
|
||||
'functionDialog.connected': '已連接',
|
||||
'functionDialog.loading': '加載中...',
|
||||
'functionDialog.disconnected': '未連接',
|
||||
'functionDialog.refresh': '刷新',
|
||||
'functionDialog.noAvailableTools': '暫無可用工具',
|
||||
'functionDialog.cancel': '取消',
|
||||
'functionDialog.saveConfig': '保存配置',
|
||||
'functionDialog.copiedToClipboard': '已複製到剪貼簿',
|
||||
'functionDialog.copyFailed': '複製失敗,請手動複製',
|
||||
'functionDialog.jsonFormatError': '的字段格式錯誤:JSON格式有誤',
|
||||
'functionDialog.defaultValue': '默認值',
|
||||
|
||||
// 模型配置頁面文本
|
||||
'modelConfig.searchPlaceholder': '請輸入模型名稱查詢',
|
||||
'modelConfig.search': '搜索',
|
||||
'modelConfig.vad': '語言活動檢測',
|
||||
'modelConfig.asr': '語音識別',
|
||||
'modelConfig.llm': '大語言模型',
|
||||
'modelConfig.vllm': '視覺大語言模型',
|
||||
'modelConfig.intent': '意圖識別',
|
||||
'modelConfig.tts': '語音合成',
|
||||
'modelConfig.memory': '記憶',
|
||||
'modelConfig.modelId': '模型ID',
|
||||
'modelConfig.modelName': '模型名稱',
|
||||
'modelConfig.provider': '提供商',
|
||||
'modelConfig.unknown': '未知',
|
||||
'modelConfig.isEnabled': '是否啟用',
|
||||
'modelConfig.isDefault': '是否默認',
|
||||
'modelConfig.action': '操作',
|
||||
'modelConfig.voiceManagement': '音色管理',
|
||||
'modelConfig.edit': '修改',
|
||||
'modelConfig.duplicate': '創建副本',
|
||||
'modelConfig.delete': '刪除',
|
||||
'modelConfig.deselectAll': '取消全選',
|
||||
'modelConfig.select': '選擇',
|
||||
'modelConfig.selectAll': '全選',
|
||||
'modelConfig.add': '新增',
|
||||
'modelConfig.selectModelsFirst': '請先選擇要刪除的模型',
|
||||
'modelConfig.confirmBatchDelete': '確定要刪除選中的模型嗎?',
|
||||
'modelConfig.confirmDelete': '確定要刪除該模型嗎?',
|
||||
'modelConfig.batchDeleteSuccess': '批量刪除成功',
|
||||
'modelConfig.partialDeleteFailed': '部分刪除失敗',
|
||||
'modelConfig.deleteSuccess': '刪除成功',
|
||||
'modelConfig.deleteFailed': '刪除失敗',
|
||||
'modelConfig.duplicateSuccess': '創建副本成功',
|
||||
'modelConfig.duplicateFailed': '創建副本失敗',
|
||||
'modelConfig.saveSuccess': '保存成功',
|
||||
'modelConfig.saveFailed': '保存失敗',
|
||||
'modelConfig.addSuccess': '新增成功',
|
||||
'modelConfig.addFailed': '新增失敗',
|
||||
'modelConfig.fetchModelsFailed': '獲取模型列表失敗',
|
||||
'modelConfig.enableSuccess': '啟用成功',
|
||||
'modelConfig.disableSuccess': '禁用成功',
|
||||
'modelConfig.operationFailed': '操作失敗',
|
||||
'modelConfig.setDefaultSuccess': '設置默認模型成功',
|
||||
'modelConfig.itemsPerPage': '{items}條/頁',
|
||||
'modelConfig.firstPage': '首頁',
|
||||
'modelConfig.prevPage': '上一頁',
|
||||
'modelConfig.nextPage': '下一頁',
|
||||
'modelConfig.totalRecords': '共{total}條記錄',
|
||||
'modelConfig.loading': '拼命加載中',
|
||||
|
||||
// 模型配置對話框文本
|
||||
'modelConfigDialog.addModel': '添加模型',
|
||||
'modelConfigDialog.editModel': '修改模型',
|
||||
'modelConfigDialog.modelInfo': '模型信息',
|
||||
'modelConfigDialog.enable': '是否啟用',
|
||||
'modelConfigDialog.setDefault': '設為默認',
|
||||
'modelConfigDialog.modelName': '模型名稱',
|
||||
'modelConfigDialog.enterModelName': '請輸入模型名稱',
|
||||
'modelConfigDialog.modelCode': '模型編碼',
|
||||
'modelConfigDialog.enterModelCode': '請輸入模型編碼',
|
||||
'modelConfigDialog.supplier': '供應器',
|
||||
'modelConfigDialog.selectSupplier': '請選擇',
|
||||
'modelConfigDialog.sortOrder': '排序號',
|
||||
'modelConfigDialog.enterSortOrder': '請輸入排序號',
|
||||
'modelConfigDialog.docLink': '文檔地址',
|
||||
'modelConfigDialog.enterDocLink': '請輸入文檔地址',
|
||||
'modelConfigDialog.remark': '備註',
|
||||
'modelConfigDialog.enterRemark': '請輸入模型備註',
|
||||
'modelConfigDialog.callInfo': '調用信息',
|
||||
'modelConfigDialog.enterJsonExample': '請輸入JSON格式變量(示例:{"key":"value"})',
|
||||
'modelConfigDialog.save': '保存',
|
||||
|
||||
// TTS模型配置文本
|
||||
'ttsModel.select': '選擇',
|
||||
'ttsModel.voiceCode': '音色編碼',
|
||||
'ttsModel.voiceName': '音色名稱',
|
||||
'ttsModel.languageType': '語言類型',
|
||||
'ttsModel.preview': '試聽',
|
||||
'ttsModel.enterMp3Url': '請輸入MP3地址',
|
||||
'ttsModel.remark': '備註',
|
||||
'ttsModel.enterRemark': '這裡是備註',
|
||||
'ttsModel.referenceAudioPath': '克隆音頻路徑',
|
||||
'ttsModel.enterReferenceAudio': '這裡是克隆音頻路徑',
|
||||
'ttsModel.referenceText': '克隆音頻文本',
|
||||
'ttsModel.enterReferenceText': '這裡是克隆音頻對應文本',
|
||||
'ttsModel.action': '操作',
|
||||
'ttsModel.edit': '編輯',
|
||||
'ttsModel.delete': '刪除',
|
||||
'ttsModel.save': '保存',
|
||||
'ttsModel.deselectAll': '取消全選',
|
||||
'ttsModel.selectAll': '全選',
|
||||
'ttsModel.add': '新增',
|
||||
'ttsModel.fetchVoicesFailed': '獲取音色列表失敗',
|
||||
'ttsModel.loadVoicesFailed': '加載音色數據失敗',
|
||||
'ttsModel.unnamedVoice': '未命名音色',
|
||||
|
||||
// OTA管理頁面文本
|
||||
'otaManagement.firmwareManagement': '固件管理',
|
||||
'otaManagement.searchPlaceholder': '請輸入固件名稱查詢',
|
||||
'otaManagement.search': '搜索',
|
||||
'otaManagement.firmwareName': '固件名稱',
|
||||
'otaManagement.firmwareType': '固件類型',
|
||||
'otaManagement.version': '版本號',
|
||||
'otaManagement.fileSize': '文件大小',
|
||||
'otaManagement.remark': '備註',
|
||||
'otaManagement.createTime': '創建時間',
|
||||
'otaManagement.updateTime': '更新時間',
|
||||
'otaManagement.action': '操作',
|
||||
'otaManagement.download': '下載',
|
||||
'otaManagement.edit': '編輯',
|
||||
'otaManagement.delete': '刪除',
|
||||
'otaManagement.selectAll': '全選',
|
||||
'otaManagement.deselectAll': '取消全選',
|
||||
'otaManagement.addNew': '新增',
|
||||
'otaManagement.addFirmware': '新增固件',
|
||||
'otaManagement.editFirmware': '編輯固件',
|
||||
'otaManagement.itemsPerPage': '{items}條/頁',
|
||||
'otaManagement.firstPage': '首頁',
|
||||
'otaManagement.prevPage': '上一頁',
|
||||
'otaManagement.nextPage': '下一頁',
|
||||
'otaManagement.totalRecords': '共{total}條記錄',
|
||||
'otaManagement.selectFirmwareFirst': '請先選擇需要刪除的固件',
|
||||
'otaManagement.confirmBatchDelete': '確定要刪除選中的{paramCount}個固件嗎?',
|
||||
'otaManagement.operationCancelled': '已取消刪除操作',
|
||||
'otaManagement.operationClosed': '操作已關閉',
|
||||
'otaManagement.batchDeleteSuccess': '成功刪除{paramCount}個固件',
|
||||
'otaManagement.deleteFailed': '刪除失敗,請重試',
|
||||
'otaManagement.incompleteFirmwareInfo': '固件信息不完整',
|
||||
'otaManagement.getDownloadUrlFailed': '獲取下載鏈接失敗',
|
||||
'otaManagement.getFirmwareTypesFailed': '獲取固件類型失敗',
|
||||
'otaManagement.updateSuccess': '修改成功',
|
||||
'otaManagement.updateFailed': '修改失敗',
|
||||
'otaManagement.addSuccess': '新增成功',
|
||||
'otaManagement.addFailed': '新增失敗',
|
||||
'otaManagement.fetchFirmwareListFailed': '獲取固件列表失敗',
|
||||
|
||||
// 字段管理頁面模型類型翻譯
|
||||
'providerManagement.all': '全部',
|
||||
'providerManagement.modelType.ASR': '語音識別',
|
||||
'providerManagement.modelType.TTS': '語音合成',
|
||||
'providerManagement.modelType.LLM': '大語言模型',
|
||||
'providerManagement.modelType.VLLM': '視覺大語言模型',
|
||||
'providerManagement.modelType.Intent': '意圖識別',
|
||||
'providerManagement.modelType.Memory': '記憶模組',
|
||||
'providerManagement.modelType.VAD': '語音活動檢測',
|
||||
'providerManagement.modelType.Plugin': '插件工具',
|
||||
|
||||
// Provider Dialog 翻譯
|
||||
'providerDialog.category': '類別',
|
||||
'providerDialog.selectCategory': '請選擇類別',
|
||||
'providerDialog.code': '編碼',
|
||||
'providerDialog.inputCode': '請輸入供應器編碼',
|
||||
'providerDialog.name': '名稱',
|
||||
'providerDialog.inputName': '請輸入供應器名稱',
|
||||
'providerDialog.sort': '排序',
|
||||
'providerDialog.fieldConfig': '字段配置',
|
||||
'providerDialog.add': '添加',
|
||||
'providerDialog.deselectAll': '取消全選',
|
||||
'providerDialog.selectAll': '全選',
|
||||
'providerDialog.batchDelete': '批量刪除',
|
||||
'providerDialog.fieldKey': '字段key',
|
||||
'providerDialog.fieldLabel': '字段標籤',
|
||||
'providerDialog.fieldType': '字段類型',
|
||||
'providerDialog.type': '類型',
|
||||
'providerDialog.stringType': '字串',
|
||||
'providerDialog.numberType': '數字',
|
||||
'providerDialog.booleanType': '布林值',
|
||||
'providerDialog.dictType': '字典',
|
||||
'providerDialog.arrayType': '分號分隔的列表',
|
||||
'providerDialog.defaultValue': '預設值',
|
||||
'providerDialog.inputDefaultValue': '請輸入預設值',
|
||||
'providerDialog.operation': '操作',
|
||||
'providerDialog.edit': '編輯',
|
||||
'providerDialog.complete': '完成',
|
||||
'providerDialog.delete': '刪除',
|
||||
'providerDialog.save': '儲存',
|
||||
'providerDialog.requiredCategory': '請選擇類別',
|
||||
'providerDialog.requiredCode': '請輸入供應器編碼',
|
||||
'providerDialog.requiredName': '請輸入供應器名稱',
|
||||
'providerDialog.completeFieldEdit': '請先完成當前字段的編輯',
|
||||
'providerDialog.confirmDeleteField': '確定要刪除此字段嗎?',
|
||||
'providerDialog.selectFieldsToDelete': '請先選擇要刪除的字段',
|
||||
'providerDialog.confirmBatchDeleteFields': '確定要刪除選中的{count}個字段嗎?',
|
||||
'providerDialog.batchDeleteFieldsSuccess': '成功刪除{count}個字段',
|
||||
};
|
||||
Reference in New Issue
Block a user