mirror of
https://github.com/xinnan-tech/xiaozhi-esp32-server.git
synced 2026-07-26 00:53:54 +08:00
598 lines
31 KiB
TypeScript
598 lines
31 KiB
TypeScript
// English language pack
|
|
export default {
|
|
// TabBar
|
|
'tabBar.home': 'Home',
|
|
'tabBar.deviceConfig': 'Network Config',
|
|
'tabBar.settings': 'System',
|
|
// Settings page title
|
|
'settings.title': 'Settings',
|
|
// Login page
|
|
'login.pageTitle': 'Login',
|
|
'login.navigationTitle': 'Login',
|
|
'login.fetchConfigError': 'Failed to fetch configuration:',
|
|
'login.selectLanguage': 'Select Language',
|
|
'login.selectLanguageTip': 'En',
|
|
'login.welcomeBack': 'Welcome Back',
|
|
'login.pleaseLogin': 'Please log in to your account',
|
|
'login.enterUsername': 'Please enter username',
|
|
'login.enterPassword': 'Please enter password',
|
|
'login.enterCaptcha': 'Please enter verification code',
|
|
'login.loginButton': 'Login',
|
|
'login.loggingIn': 'Logging in...',
|
|
'login.noAccount': 'Sign Up',
|
|
'login.enterPhone': 'Please enter phone number',
|
|
'login.selectCountry': 'Select Country/Region',
|
|
'login.confirm': 'Confirm',
|
|
'login.serverSetting': 'Server Settings',
|
|
'login.requiredUsername': 'Username cannot be empty',
|
|
'login.requiredPassword': 'Password cannot be empty',
|
|
'login.requiredCaptcha': 'Verification code cannot be empty',
|
|
'login.requiredMobile': 'Please enter a valid phone number',
|
|
'login.captchaError': 'Graphic verification code error',
|
|
'login.forgotPassword': 'Forgot Password',
|
|
'login.userAgreement': 'User Agreement',
|
|
'login.privacyPolicy': 'Privacy Policy',
|
|
|
|
// Register page
|
|
'register.pageTitle': 'Register',
|
|
'register.createAccount': 'Create Account',
|
|
'register.enterUsername': 'Please enter username',
|
|
'register.enterPassword': 'Please enter password',
|
|
'register.confirmPassword': 'Please confirm password',
|
|
'register.enterPhone': 'Please enter phone number',
|
|
'register.enterCode': 'Please enter verification code',
|
|
'register.getCode': 'Get Code',
|
|
'register.agreeTerms': 'I have read and agree to the',
|
|
'register.terms': 'User Agreement',
|
|
'register.privacy': 'Privacy Policy',
|
|
'register.registerButton': 'Register',
|
|
'register.registering': 'Registering...',
|
|
'register.haveAccount': 'Already have an account?',
|
|
'register.loginNow': 'Login Now',
|
|
'register.selectCountry': 'Select Country/Region',
|
|
'register.confirm': 'Confirm',
|
|
'register.captchaSendSuccess': 'Verification code sent successfully',
|
|
|
|
// Home page
|
|
'home.pageTitle': 'Home',
|
|
'home.createAgent': 'Create Agent',
|
|
'home.agentName': 'Agent',
|
|
'home.modelInfo': 'Model Info',
|
|
'home.lastActive': 'Last Active',
|
|
'home.greeting': 'Hi Jarvis',
|
|
'home.subtitle': 'Let\'s have',
|
|
'home.wonderfulDay': 'a wonderful day!',
|
|
'home.emptyState': 'No agents available',
|
|
'home.deviceManagement': 'Device Management',
|
|
'home.lastConversation': 'Last Conversation:',
|
|
'home.delete': 'Delete',
|
|
'home.createFirstAgent': 'Click the + button in the lower right corner to create your first agent',
|
|
'home.dialogTitle': 'Create Agent',
|
|
'home.inputPlaceholder': 'e.g. Customer Service Assistant, Voice Assistant, Knowledge Q&A',
|
|
'home.createError': 'The name length must be between 1 and 64 characters',
|
|
'home.createNow': 'Create Now',
|
|
'home.deleteConfirmTitle': 'Delete Agent',
|
|
'home.confirmDeleteAgent': 'Deletion cannot be undone. Type the agent name "{agentName}" to confirm.',
|
|
'home.deleteAgentNamePlaceholder': 'Enter agent name',
|
|
'home.deleteAgentNameMismatch': 'The agent name does not match',
|
|
'home.deleteAgentPasteForbidden': 'Please type the agent name manually. Pasting is not allowed.',
|
|
'home.deleteAgentMissingInfo': 'Unable to confirm agent information. Please refresh and try again.',
|
|
'home.deleteAgentSuccess': 'Agent deleted successfully',
|
|
'home.justNow': 'Just now',
|
|
'home.minutesAgo': 'minutes ago',
|
|
'home.hoursAgo': 'hours ago',
|
|
'home.daysAgo': 'days ago',
|
|
'home.languageModel': 'LLM',
|
|
'home.voiceModel': 'TTS',
|
|
|
|
// Agent page
|
|
'agent.pageTitle': 'Agent',
|
|
'agent.roleConfig': 'Role Configuration',
|
|
'agent.deviceManagement': 'Device Management',
|
|
'agent.chatHistory': 'Chat History',
|
|
'agent.voiceprintManagement': 'Voiceprint Management',
|
|
'agent.editTitle': 'Edit Agent',
|
|
'agent.toolsTitle': 'Edit Features',
|
|
'agent.voiceActivityDetection': 'Voice Activity Detection',
|
|
'agent.speechRecognition': 'Speech Recognition',
|
|
'agent.largeLanguageModel': 'Large Language Model',
|
|
'agent.save': 'Save',
|
|
'agent.cancel': 'Cancel',
|
|
// Agent Edit Page
|
|
'agent.basicInfo': 'Basic Information',
|
|
'agent.agentName': 'Agent Name',
|
|
'agent.inputAgentName': 'Please input agent name',
|
|
'agent.roleMode': 'Role Mode',
|
|
'agent.agentTag': 'Intelligent agent label',
|
|
'agent.addAgentTag': 'Add label',
|
|
'agent.inputAgentTag': 'Please input agent label',
|
|
'agent.contextProvider': 'Context',
|
|
'agent.contextProviderSuccess': 'Successfully added {count} sources.',
|
|
'agent.contextProviderDocLink': 'How to deploy context provider',
|
|
'agent.editContextProvider': 'Edit Source',
|
|
'agent.roleDescription': 'Role Description',
|
|
'agent.inputRoleDescription': 'Please input role description',
|
|
'agent.modelConfig': 'Model Configuration',
|
|
'agent.vad': 'Voice Activity Detection',
|
|
'agent.asr': 'Speech Recognition',
|
|
'agent.llm': 'Main language model',
|
|
'agent.slm': 'Small parameter model',
|
|
'agent.vllm': 'Vision Language Model',
|
|
'agent.intent': 'Intent Recognition',
|
|
'agent.memory': 'Memory',
|
|
'agent.voiceSettings': 'Voice Settings',
|
|
'agent.tts': 'Text-to-Speech',
|
|
'agent.voiceprint': 'Agent Voice',
|
|
'agent.plugins': 'Plugins',
|
|
'agent.editFunctions': 'Edit Functions',
|
|
'agent.historyMemory': 'History Memory',
|
|
'agent.memoryContent': 'Memory content',
|
|
'agent.saving': 'Saving...',
|
|
'agent.saveSuccess': 'Save successful',
|
|
'agent.saveFail': 'Save failed',
|
|
'agent.ttsOptionsLoadFailed': 'Voice options could not be loaded. The previous voice settings were kept.',
|
|
'agent.loadFail': 'Load failed',
|
|
'agent.pleaseInputAgentName': 'Please input agent name',
|
|
'agent.pleaseInputRoleDescription': 'Please input role description',
|
|
'agent.pleaseSelect': 'Please select',
|
|
'agent.reportText': 'Report Text',
|
|
'agent.reportTextVoice': 'Report Text+Voice',
|
|
'agent.reportMode': 'Report Mode',
|
|
'agent.language': 'Conversation Language',
|
|
'agent.languageConfig': 'Speech Rate&Tone',
|
|
'agent.ttsVolume': 'Volume',
|
|
'agent.ttsRate': 'Speech Rate',
|
|
'agent.ttsPitch': 'Tone',
|
|
'agent.volumeHint': '-100=Minimum, 0=Standard, 100=Maximum',
|
|
'agent.speedHint': '-100=Slower, 0=Standard, 100=Faster',
|
|
'agent.pitchHint': '-100=Lowest, 0=Standard, 100=Highest',
|
|
|
|
// Agent snapshots
|
|
'agentSnapshot.title': 'Version History',
|
|
'agentSnapshot.empty': 'No versions yet',
|
|
'agentSnapshot.emptyTip': 'Saved configs will appear here',
|
|
'agentSnapshot.version': 'Version',
|
|
'agentSnapshot.createdAt': 'Saved At',
|
|
'agentSnapshot.source': 'Source',
|
|
'agentSnapshot.changedFields': 'Changes',
|
|
'agentSnapshot.view': 'View',
|
|
'agentSnapshot.restore': 'Restore',
|
|
'agentSnapshot.delete': 'Delete',
|
|
'agentSnapshot.loadMore': 'Load More',
|
|
'agentSnapshot.detailTitle': 'Change Details',
|
|
'agentSnapshot.restorePreviewTitle': 'Restore Preview',
|
|
'agentSnapshot.confirmRestore': 'Confirm Restore',
|
|
'agentSnapshot.currentVersion': 'Latest Snapshot',
|
|
'agentSnapshot.beforeChange': 'Before',
|
|
'agentSnapshot.afterChange': 'After',
|
|
'agentSnapshot.beforeRestore': 'Before Restore',
|
|
'agentSnapshot.afterRestore': 'After Restore',
|
|
'agentSnapshot.configValue': 'Config Value',
|
|
'agentSnapshot.emptyValue': 'None',
|
|
'agentSnapshot.secretRedacted': 'Secret hidden',
|
|
'agentSnapshot.redactedValueChanged': 'The value is hidden, but it did change',
|
|
'agentSnapshot.noChangedContent': 'No displayable changes',
|
|
'agentSnapshot.recordedChange': 'Changed when recorded',
|
|
'agentSnapshot.noRestoreNeeded': 'The current configuration already matches this version',
|
|
'agentSnapshot.unsavedChangesTitle': 'Unsaved changes',
|
|
'agentSnapshot.unsavedChangesWarning': 'Continuing will discard the unsaved changes on this page.',
|
|
'agentSnapshot.discardAndRestore': 'Discard and restore',
|
|
'agentSnapshot.restoreConfirm': 'Restore to version #{version}? The current configuration will remain available in history.',
|
|
'agentSnapshot.restoreMemoryWarning': 'Restoring to a no-memory version will clear this agent\'s chat history. Please confirm the risk.',
|
|
'agentSnapshot.restoreChatHistoryDestructiveWarning': 'This restore will permanently delete this agent\'s existing chat history. Chat history is not included in configuration snapshots and cannot be recovered from version history.',
|
|
'agentSnapshot.restoreSuccess': 'Version restored',
|
|
'agentSnapshot.restoreFailed': 'Failed to restore version',
|
|
'agentSnapshot.reloadAfterRestorePending': 'Reloading the restored configuration and tags. Saving is disabled until this completes.',
|
|
'agentSnapshot.reloadAfterRestoreFailed': 'The restored configuration or tags could not be reloaded. Saving remains disabled to prevent stale data from overwriting the restore. Please retry.',
|
|
'agentSnapshot.retryReload': 'Reload',
|
|
'agentSnapshot.mutationBusy': 'The configuration is being saved or reloaded. Wait for it to finish before opening version history or restoring.',
|
|
'agentSnapshot.deleteConfirm': 'Delete version #{version}? This cannot be undone.',
|
|
'agentSnapshot.deleteSuccess': 'Version deleted',
|
|
'agentSnapshot.deleteFailed': 'Failed to delete version',
|
|
'agentSnapshot.fetchFailed': 'Failed to fetch versions',
|
|
'agentSnapshot.detailFailed': 'Failed to fetch version details',
|
|
'agentSnapshot.correctWordCount': '{count} replacement words',
|
|
'agentSnapshot.source.config': 'Config Save',
|
|
'agentSnapshot.source.current': 'Current Config',
|
|
'agentSnapshot.source.restore': 'Restored',
|
|
'agentSnapshot.source.initial': 'Initial Version',
|
|
'agentSnapshot.field.initial': 'Initial Snapshot',
|
|
'agentSnapshot.field.agentCode': 'Agent Code',
|
|
'agentSnapshot.field.agentName': 'Nickname',
|
|
'agentSnapshot.field.asrModelId': 'Speech Recognition',
|
|
'agentSnapshot.field.vadModelId': 'Voice Activity Detection',
|
|
'agentSnapshot.field.llmModelId': 'Main Language Model',
|
|
'agentSnapshot.field.slmModelId': 'Small Language Model',
|
|
'agentSnapshot.field.vllmModelId': 'Vision Model',
|
|
'agentSnapshot.field.ttsModelId': 'Text-to-Speech',
|
|
'agentSnapshot.field.ttsVoiceId': 'Voice',
|
|
'agentSnapshot.field.ttsLanguage': 'Language',
|
|
'agentSnapshot.field.ttsVolume': 'Volume',
|
|
'agentSnapshot.field.ttsRate': 'Speed',
|
|
'agentSnapshot.field.ttsPitch': 'Pitch',
|
|
'agentSnapshot.field.memModelId': 'Memory Mode',
|
|
'agentSnapshot.field.intentModelId': 'Intent Recognition',
|
|
'agentSnapshot.field.chatHistoryConf': 'Chat History Config',
|
|
'agentSnapshot.field.systemPrompt': 'Role Description',
|
|
'agentSnapshot.field.summaryMemory': 'Memory',
|
|
'agentSnapshot.field.langCode': 'Language Code',
|
|
'agentSnapshot.field.language': 'Interaction Language',
|
|
'agentSnapshot.field.sort': 'Sort',
|
|
'agentSnapshot.field.functions': 'Plugins',
|
|
'agentSnapshot.field.contextProviders': 'Context Sources',
|
|
'agentSnapshot.field.correctWordFileIds': 'Replacement Words',
|
|
'agentSnapshot.field.tagNames': 'Agent Tags',
|
|
'agentSnapshot.chatHistoryConf.none': 'Do not record chat history',
|
|
'agentSnapshot.chatHistoryConf.text': 'Report text',
|
|
'agentSnapshot.chatHistoryConf.textVoice': 'Report text and voice',
|
|
'agentSnapshot.model.Memory_nomem': 'No memory',
|
|
'agentSnapshot.model.Memory_mem_local_short': 'Local short memory',
|
|
'agentSnapshot.model.Memory_mem0ai': 'Mem0AI memory',
|
|
'agentSnapshot.model.Memory_mem_report_only': 'Report only',
|
|
'agentSnapshot.model.Intent_nointent': 'No intent recognition',
|
|
'agentSnapshot.model.Intent_intent_llm': 'External LLM intent recognition',
|
|
'agentSnapshot.model.Intent_function_call': 'LLM function calling',
|
|
|
|
// Context provider dialog related
|
|
'contextProviderDialog.title': 'Edit Source',
|
|
'contextProviderDialog.noContextApi': 'No Context API',
|
|
'contextProviderDialog.add': 'Add',
|
|
'contextProviderDialog.apiUrl': 'API URL',
|
|
'contextProviderDialog.apiUrlPlaceholder': 'http://api.example.com/data',
|
|
'contextProviderDialog.requestHeaders': 'Request Headers',
|
|
'contextProviderDialog.headerKeyPlaceholder': 'Key',
|
|
'contextProviderDialog.headerValuePlaceholder': 'Value',
|
|
'contextProviderDialog.noHeaders': 'No Headers',
|
|
'contextProviderDialog.addHeader': 'Add Header',
|
|
'contextProviderDialog.cancel': 'Cancel',
|
|
'contextProviderDialog.confirm': 'Confirm',
|
|
|
|
// Manual add device dialog related
|
|
'manualAddDeviceDialog.title': 'Manual Add Device',
|
|
'manualAddDeviceDialog.deviceType': 'Device Type',
|
|
'manualAddDeviceDialog.deviceTypePlaceholder': 'Please select device type',
|
|
'manualAddDeviceDialog.firmwareVersion': 'Firmware Version',
|
|
'manualAddDeviceDialog.firmwareVersionPlaceholder': 'Please enter firmware version',
|
|
'manualAddDeviceDialog.macAddress': 'Mac Address',
|
|
'manualAddDeviceDialog.macAddressPlaceholder': 'Please enter Mac address',
|
|
'manualAddDeviceDialog.confirm': 'Confirm',
|
|
'manualAddDeviceDialog.cancel': 'Cancel',
|
|
'manualAddDeviceDialog.requiredMacAddress': 'Please enter Mac address',
|
|
'manualAddDeviceDialog.invalidMacAddress': 'Please enter correct Mac address format, e.g.: 00:1A:2B:3C:4D:5E',
|
|
'manualAddDeviceDialog.requiredDeviceType': 'Please select device type',
|
|
'manualAddDeviceDialog.requiredFirmwareVersion': 'Please enter firmware version',
|
|
'manualAddDeviceDialog.getFirmwareTypeFailed': 'Failed to get firmware type',
|
|
'manualAddDeviceDialog.addSuccess': 'Device added successfully',
|
|
'manualAddDeviceDialog.addFailed': 'Failed to add',
|
|
'manualAddDeviceDialog.bindWithCode': 'Bind with 6-digit code',
|
|
|
|
// Chat History Page
|
|
'chatHistory.getChatSessions': 'Get chat session list',
|
|
'chatHistory.noSelectedAgent': 'No agent selected',
|
|
'chatHistory.getChatSessionsFailed': 'Failed to get chat session list:',
|
|
'chatHistory.unknownTime': 'Unknown time',
|
|
'chatHistory.justNow': 'Just now',
|
|
'chatHistory.minutesAgo': '{minutes} minutes ago',
|
|
'chatHistory.hoursAgo': '{hours} hours ago',
|
|
'chatHistory.daysAgo': '{days} days ago',
|
|
'chatHistory.conversationRecord': 'Conversation Record',
|
|
'chatHistory.totalChats': '{count} chats in total',
|
|
'chatHistory.loading': 'Loading...',
|
|
'chatHistory.noMoreData': 'No more data',
|
|
'chatHistory.noChatRecords': 'No chat records',
|
|
'chatHistory.chatRecordsDescription': 'Conversation records with agents will be displayed here',
|
|
// Chat History Detail Page
|
|
'chatHistory.pageTitle': 'Chat Detail',
|
|
'chatHistory.assistantName': 'Intelligent Assistant',
|
|
'chatHistory.userName': 'User',
|
|
'chatHistory.aiAssistantName': 'AI Assistant',
|
|
'chatHistory.loadFailed': 'Failed to load chat history',
|
|
'chatHistory.parameterError': 'Page parameter error',
|
|
'chatHistory.invalidAudioId': 'Invalid audio ID',
|
|
'chatHistory.audioPlayFailed': 'Audio playback failed',
|
|
'chatHistory.playAudioFailed': 'Failed to play audio',
|
|
|
|
// Device management page
|
|
'device.pageTitle': 'Device Management',
|
|
'device.noDevices': 'No devices available',
|
|
'device.macAddress': 'MAC Address',
|
|
'device.firmwareVersion': 'Firmware Version',
|
|
'device.lastConnected': 'Last Conversation',
|
|
'device.otaUpdate': 'OTA Update',
|
|
'device.unbind': 'Unbind',
|
|
'device.confirmUnbind': 'Sure',
|
|
'device.bindDevice': 'Bind New Device',
|
|
'device.deviceType': 'Device Type',
|
|
'device.loading': 'Loading...',
|
|
'device.neverConnected': 'Never connected',
|
|
'device.justNow': 'Just now',
|
|
'device.minutesAgo': '{minutes} minutes ago',
|
|
'device.hoursAgo': '{hours} hours ago',
|
|
'device.daysAgo': '{days} days ago',
|
|
'device.otaAutoUpdateEnabled': 'OTA auto update enabled',
|
|
'device.otaAutoUpdateDisabled': 'OTA auto update disabled',
|
|
'device.operationFailed': 'Operation failed, please retry',
|
|
'device.deviceUnbound': 'Device unbound',
|
|
'device.unbindFailed': 'Unbind failed, please retry',
|
|
'device.unbindDevice': 'Unbind Device',
|
|
'device.confirmUnbindDevice': 'Are you sure you want to unbind device "{macAddress}"?',
|
|
'device.cancel': 'Cancel',
|
|
'device.noDevice': 'No Device',
|
|
'device.pleaseSelectAgent': 'Please select an agent first',
|
|
'device.deviceBindSuccess': 'Device bound successfully!',
|
|
'device.bindFailed': 'Bind failed, please check if the verification code is correct',
|
|
'device.enterDeviceCode': 'Please enter device verification code',
|
|
'device.bindNow': 'Bind Now',
|
|
'device.lastConnection': 'Last Connection',
|
|
'device.clickToBindFirstDevice': 'Click the + button in the lower right corner to bind your first device',
|
|
|
|
// Common
|
|
'common.success': 'Success',
|
|
'common.fail': 'Failed',
|
|
'common.loading': 'Loading...',
|
|
'common.confirm': 'Confirm',
|
|
'common.cancel': 'Cancel',
|
|
'common.delete': 'Delete',
|
|
'common.edit': 'Edit',
|
|
'common.add': 'Add',
|
|
'common.pleaseSelect': 'Please select',
|
|
'common.unknownError': 'Unknown error',
|
|
'common.networkError': 'Network error',
|
|
|
|
// Retrieve Password page
|
|
'retrievePassword.title': 'Reset Password',
|
|
'retrievePassword.subtitle': 'Recover your account password via mobile number',
|
|
'retrievePassword.mobileRequired': 'Please enter mobile number',
|
|
'retrievePassword.inputCorrectMobile': 'Please enter a valid mobile number',
|
|
'retrievePassword.captchaRequired': 'Please enter graphic verification code',
|
|
'retrievePassword.mobileCaptchaRequired': 'Please enter SMS verification code',
|
|
'retrievePassword.newPasswordRequired': 'Please enter new password',
|
|
'retrievePassword.confirmNewPasswordRequired': 'Please confirm new password',
|
|
'retrievePassword.passwordsNotMatch': 'Passwords do not match',
|
|
'retrievePassword.mobilePlaceholder': 'Please enter mobile number',
|
|
'retrievePassword.captchaPlaceholder': 'Please enter graphic verification code',
|
|
'retrievePassword.mobileCaptchaPlaceholder': 'Please enter SMS verification code',
|
|
'retrievePassword.newPasswordPlaceholder': 'Please enter new password',
|
|
'retrievePassword.confirmNewPasswordPlaceholder': 'Please confirm new password',
|
|
'retrievePassword.getMobileCaptcha': 'Get Code',
|
|
'retrievePassword.captchaSendSuccess': 'Verification code sent successfully',
|
|
'retrievePassword.passwordUpdateSuccess': 'Password reset successfully',
|
|
'retrievePassword.resetButton': 'Reset Password',
|
|
'retrievePassword.goToLogin': 'Back to Login',
|
|
|
|
// SM2 encryption related error messages
|
|
'sm2.publicKeyNotConfigured': 'SM2 public key not configured, please contact administrator',
|
|
'sm2.encryptionFailed': 'Password encryption failed',
|
|
'sm2.keyGenerationFailed': 'Key pair generation failed',
|
|
'sm2.invalidPublicKey': 'Invalid public key format',
|
|
'sm2.encryptionError': 'Error occurred during encryption',
|
|
'sm2.publicKeyRetry': 'Retrying to get public key...',
|
|
'sm2.publicKeyRetryFailed': 'Public key retrieval retry failed',
|
|
|
|
// Voiceprint page
|
|
'voiceprint.noSelectedAgent': 'No agent selected',
|
|
'voiceprint.pleaseSelectAgent': 'Please select an agent first',
|
|
'voiceprint.fetchHistoryFailed': 'Failed to fetch chat history',
|
|
'voiceprint.clickToSelectVector': 'Click to select voiceprint vector',
|
|
'voiceprint.pleaseInputName': 'Please input name',
|
|
'voiceprint.pleaseSelectVector': 'Please select voiceprint vector',
|
|
'voiceprint.addSuccess': 'Add success',
|
|
'voiceprint.addFailed': 'Failed to add speaker',
|
|
'voiceprint.editSuccess': 'Edit success',
|
|
'voiceprint.editFailed': 'Failed to edit speaker',
|
|
'voiceprint.deleteConfirmMsg': 'Are you sure to delete this speaker?',
|
|
'voiceprint.deleteConfirmTitle': 'Confirm Delete',
|
|
'voiceprint.deleteSuccess': 'Delete success',
|
|
'voiceprint.loading': 'Loading...',
|
|
'voiceprint.delete': 'Delete',
|
|
'voiceprint.emptyTitle': 'No voiceprint data',
|
|
'voiceprint.emptyDesc': 'Click the + button at the bottom right to add your first speaker',
|
|
'voiceprint.addSpeaker': 'Add Speaker',
|
|
'voiceprint.voiceVector': 'Voiceprint Vector',
|
|
'voiceprint.name': 'Name',
|
|
'voiceprint.description': 'Description',
|
|
'voiceprint.pleaseInputDescription': 'Please input description',
|
|
'voiceprint.cancel': 'Cancel',
|
|
'voiceprint.save': 'Save',
|
|
'voiceprint.editSpeaker': 'Edit Speaker',
|
|
'voiceprint.selectVector': 'Select Voiceprint Vector',
|
|
'voiceprint.voiceprintInterfaceNotConfigured': 'Voiceprint interface not configured',
|
|
|
|
// Settings page
|
|
'settings.pageTitle': 'Settings',
|
|
'settings.navigationTitle': 'Settings',
|
|
'settings.networkSettings': 'Network Settings',
|
|
'settings.serverApiUrl': 'Server API URL',
|
|
'settings.validServerUrl': 'Please enter a valid server address (starting with http or https and ending with /xiaozhi)',
|
|
'settings.saveSettings': 'Save Settings',
|
|
'settings.resetDefault': 'Reset Default',
|
|
'settings.restartApp': 'Restart App',
|
|
'settings.restartNow': 'Restart Now',
|
|
'settings.restartLater': 'Later',
|
|
// About us
|
|
'settings.aboutApp': 'About XiaoZhi Console',
|
|
'settings.aboutContent': 'XiaoZhi Console\n\nA cross-platform mobile management app built with Vue.js 3 + uni-app, providing device management, agent configuration and other functions for xiaozhi ESP32 smart hardware.\n\n© 2025 xiaozhi-esp32-server {version}',
|
|
'settings.restartSuccess': 'Saved, you can manually restart the app later',
|
|
'settings.serverUrlSavedAndCacheCleared': 'Server URL saved and cache cleared',
|
|
'settings.resetToDefaultAndCacheCleared': 'Reset to default and cache cleared',
|
|
'settings.resetSuccess': 'Reset successful',
|
|
'settings.enterServerUrl': 'Please enter server URL',
|
|
'settings.clearCacheFailed': 'Failed to clear cache',
|
|
'settings.cacheManagement': 'Cache Management',
|
|
'settings.totalCacheSize': 'Total Cache Size',
|
|
'settings.appDataSize': 'Total App Data Size',
|
|
'settings.cacheClear': 'Cache Clear',
|
|
'settings.clearAllCache': 'Clear all cache data',
|
|
'settings.clearCache': 'Clear Cache',
|
|
'settings.modifyWillClearCache': 'Modifications will clear cache',
|
|
'settings.appInfo': 'App Info',
|
|
'settings.aboutUs': 'About Us',
|
|
'settings.appVersion': 'App Version & Team Info',
|
|
'settings.confirmClear': 'Confirm Clear',
|
|
'settings.confirmClearMessage': 'Are you sure you want to clear all cache? This will delete all data including login status and require re-login.',
|
|
'settings.cacheCleared': 'Cache cleared successfully, redirecting to login page',
|
|
'settings.languageSettings': 'Language Settings',
|
|
'settings.language': 'Language',
|
|
'settings.selectLanguage': 'Select Language',
|
|
'settings.languageChanged': 'Language changed successfully',
|
|
|
|
// Messages
|
|
'message.loginSuccess': 'Login successful!',
|
|
'message.loginFail': 'Login failed',
|
|
'message.registerSuccess': 'Registration successful',
|
|
'message.registerFail': 'Registration failed',
|
|
'message.saveSuccess': 'Save successful',
|
|
'message.saveFail': 'Save failed',
|
|
'message.deleteSuccess': 'Delete successful',
|
|
'message.deleteFail': 'Delete failed',
|
|
'message.bindSuccess': 'Binding successful',
|
|
'message.bindFail': 'Binding failed',
|
|
'message.unbindSuccess': 'Unbinding successful',
|
|
'message.unbindFail': 'Unbinding failed',
|
|
'message.networkError': 'Network error, please check your connection',
|
|
'message.serverError': 'Server error, please try again later',
|
|
'message.invalidAddress': 'The address may be invalid. Please check if the server is started or if the network connection is normal; It is also possible that requests cannot be sent due to HTTPS protocol issues',
|
|
'message.languageChanged': 'Language changed',
|
|
'message.passwordError': 'Account or password error',
|
|
'message.phoneRegistered': 'This phone number has been registered',
|
|
|
|
// Agent Tools Page
|
|
'agent.tools.pageTitle': 'Agent Tools',
|
|
'agent.tools.unselected': 'Unselected',
|
|
'agent.tools.selected': 'Selected',
|
|
'agent.tools.noMorePlugins': 'No more plugins',
|
|
'agent.tools.pleaseSelectPlugin': 'Please select plugin function',
|
|
'agent.tools.builtInPlugins': 'Built-in Plugins',
|
|
'agent.tools.mcpAccessPoint': 'MCP Access Point',
|
|
'agent.tools.copy': 'Copy',
|
|
'agent.tools.noTools': 'No tools available',
|
|
'agent.tools.parameterConfig': 'Param Config',
|
|
'agent.tools.noParamsNeeded': 'No parameters needed',
|
|
'agent.tools.pleaseInput': 'Please input',
|
|
'agent.tools.inputOneItemPerLine': 'Input one item per line',
|
|
'agent.tools.pleaseInputValidJson': 'Please input valid JSON format',
|
|
'agent.tools.enableFunction': 'Enable Function',
|
|
'agent.tools.toggleFunction': 'Turn on or off this function',
|
|
'agent.tools.jsonFormatError': 'JSON format error',
|
|
'agent.tools.noMcpAddressToCopy': 'No MCP address to copy',
|
|
'agent.tools.mcpAddressCopied': 'MCP address copied to clipboard',
|
|
'agent.tools.copyFailed': 'Copy failed, please try again',
|
|
'agent.tools.defaultValue': 'Default value',
|
|
'agent.tools.notSelected': 'Unselected',
|
|
'agent.tools.clickToConfigure': 'Click to configure',
|
|
'agent.tools.mcpEndpoint': 'MCP Endpoint',
|
|
'agent.tools.eachLineOneItem': 'Input one item per line',
|
|
|
|
// Device Config page
|
|
'deviceConfig.pageTitle': 'Device Configuration',
|
|
'deviceConfig.wifiConfig': 'WiFi Configuration',
|
|
'deviceConfig.ultrasonicConfig': 'Ultrasonic Configuration',
|
|
'deviceConfig.selectConfigMethod': 'Select Configuration Method',
|
|
'deviceConfig.networkConfig': 'Network Configuration',
|
|
'deviceConfig.selectedNetwork': 'Selected Network',
|
|
'deviceConfig.signal': 'Signal',
|
|
'deviceConfig.openNetwork': 'Open Network',
|
|
'deviceConfig.encryptedNetwork': 'Encrypted Network',
|
|
'deviceConfig.password': 'Password',
|
|
'deviceConfig.pleaseEnterPassword': 'Please enter WiFi password',
|
|
'deviceConfig.startConfig': 'Start Configuration',
|
|
'deviceConfig.connectToXiaozhiHotspot': 'Please connect to xiaozhi hotspot first',
|
|
'deviceConfig.detecting': 'Detecting...',
|
|
'deviceConfig.reDetect': 'Re-detect',
|
|
'deviceConfig.alreadyConnected': 'Connected to xiaozhi hotspot',
|
|
'deviceConfig.refreshStatus': 'Refresh Status',
|
|
'deviceConfig.wifiNetworks': 'WiFi Networks',
|
|
'deviceConfig.selectWifiNetwork': 'Select WiFi Network',
|
|
'deviceConfig.refreshScan': 'Refresh Scan',
|
|
'deviceConfig.noWifiNetworks': 'No WiFi networks available',
|
|
'deviceConfig.clickToRefreshScan': 'Please click Refresh Scan',
|
|
'deviceConfig.signalStrong': 'Strong Signal',
|
|
'deviceConfig.signalGood': 'Good Signal',
|
|
'deviceConfig.signalFair': 'Fair Signal',
|
|
'deviceConfig.signalWeak': 'Weak Signal',
|
|
'deviceConfig.channel': 'Channel',
|
|
'deviceConfig.about': 'about',
|
|
'deviceConfig.seconds': 'seconds',
|
|
'deviceConfig.generating': 'Generating...',
|
|
'deviceConfig.playing': 'Playing...',
|
|
'deviceConfig.generateAndPlaySoundWave': 'Generate and Play Sound Wave',
|
|
'deviceConfig.playSoundWave': 'Play Sound Wave',
|
|
'deviceConfig.stopPlaying': 'Stop Playing',
|
|
'deviceConfig.autoLoopPlaySoundWave': 'Auto Loop Play Sound Wave',
|
|
'deviceConfig.configAudioFile': 'Configuration Audio File',
|
|
'deviceConfig.duration': 'Duration',
|
|
'deviceConfig.ultrasonicConfigInstructions': 'Ultrasonic Configuration Instructions',
|
|
'deviceConfig.ensureWifiNetworkSelectedAndPasswordEntered': 'Ensure WiFi network is selected and password is entered',
|
|
'deviceConfig.clickGenerateAndPlaySoundWave': 'Click Generate and Play Sound Wave, the system will encode configuration information into audio',
|
|
'deviceConfig.bringPhoneCloseToXiaozhiDevice': 'Bring phone close to xiaozhi device (1-2 meters distance)',
|
|
'deviceConfig.duringAudioPlaybackXiaozhiWillReceive': 'During audio playback, xiaozhi will receive and decode configuration information',
|
|
'deviceConfig.afterConfigSuccessDeviceWillConnect': 'After successful configuration, the device will automatically connect to WiFi network',
|
|
'deviceConfig.usesAfskModulation': 'Uses AFSK modulation technology, transmitting data through 1800Hz and 1500Hz frequencies',
|
|
'deviceConfig.ensureModeratePhoneVolume': 'Please ensure phone volume is moderate to avoid environmental noise interference',
|
|
'deviceConfig.generatingUltrasonicConfigAudio': 'Generating ultrasonic configuration audio',
|
|
'deviceConfig.configData': 'Configuration data',
|
|
'deviceConfig.dataBytesLength': 'Data bytes length',
|
|
'deviceConfig.bitStreamLength': 'Bit stream length',
|
|
'deviceConfig.base64Length': 'Base64 length',
|
|
'deviceConfig.audioFileTooLarge': 'Audio file too large, please shorten SSID or password length',
|
|
'deviceConfig.audioGenerationSuccess': 'Audio generation successful',
|
|
'deviceConfig.samplePoints': 'Sample points',
|
|
'deviceConfig.soundWaveGenerationSuccess': 'Sound wave generation successful',
|
|
'deviceConfig.audioGenerationFailed': 'Audio generation failed',
|
|
'deviceConfig.soundWaveGenerationFailed': 'Sound wave generation failed',
|
|
'deviceConfig.pleaseGenerateAudioFirst': 'Please generate audio first',
|
|
'deviceConfig.startPlayingUltrasonicConfigAudio': 'Starting to play ultrasonic configuration audio',
|
|
'deviceConfig.ultrasonicAudioStartedPlaying': 'Ultrasonic audio started playing',
|
|
'deviceConfig.startPlayingConfigSoundWave': 'Started playing configuration sound wave',
|
|
'deviceConfig.ultrasonicAudioPlaybackEnded': 'Ultrasonic audio playback ended',
|
|
'deviceConfig.audioPlaybackFailed': 'Audio playback failed',
|
|
'deviceConfig.audioResourceBusy': 'Audio resource busy, please try again later',
|
|
'deviceConfig.audioFormatNotSupported': 'Audio format not supported, may be a data URI issue',
|
|
'deviceConfig.audioFileError': 'Audio file error',
|
|
'deviceConfig.cleaningUpAudioContext': 'Cleaning up audio context',
|
|
'deviceConfig.cleaningUpAudioContextFailed': 'Failed to clean up audio context',
|
|
'deviceConfig.stoppedPlayingUltrasonicAudio': 'Stopped playing ultrasonic audio',
|
|
'deviceConfig.stoppedPlaying': 'Stopped playing',
|
|
'deviceConfig.configMethod': 'Configuration Method',
|
|
'deviceConfig.enterWifiPassword': 'Please enter WiFi password',
|
|
'deviceConfig.xiaozhi': 'xiaozhi',
|
|
'deviceConfig.connectXiaozhiHotspot': 'Please connect to xiaozhi hotspot',
|
|
'deviceConfig.wifiScanResponse': 'WiFi scan response',
|
|
'deviceConfig.scanSuccess': 'Scan successful',
|
|
'deviceConfig.networks': 'networks',
|
|
'deviceConfig.wifiScanFailed': 'WiFi scan failed',
|
|
'deviceConfig.scanFailedCheckConnection': 'Scan failed, please check connection',
|
|
'deviceConfig.checking': 'Checking',
|
|
'deviceConfig.reCheck': 'Re-check',
|
|
'deviceConfig.connectedXiaozhiHotspot': 'Connected to xiaozhi hotspot',
|
|
'deviceConfig.wifiNetwork': 'WiFi Network',
|
|
'deviceConfig.wifiPassword': 'WiFi Password',
|
|
'deviceConfig.scanning': 'Scanning',
|
|
'deviceConfig.cancel': 'Cancel',
|
|
'deviceConfig.clickRefreshScan': 'Please click Refresh Scan',
|
|
'deviceConfig.esp32ConnectionCheckFailed': 'ESP32 connection check failed',
|
|
'deviceConfig.startWifiConfig': 'Starting WiFi configuration',
|
|
'deviceConfig.configSuccess': 'Configuration successful',
|
|
'deviceConfig.deviceWillConnectTo': 'Device will connect to',
|
|
'deviceConfig.deviceWillRestart': 'Device will restart',
|
|
'deviceConfig.pleaseDisconnectXiaozhiHotspot': 'Please disconnect from xiaozhi hotspot',
|
|
'deviceConfig.configFailed': 'Configuration failed',
|
|
'deviceConfig.wifiConfigFailed': 'WiFi configuration failed',
|
|
'deviceConfig.pleaseCheckNetworkConnection': 'Please check network connection',
|
|
'deviceConfig.startWifiConfigButton': 'Start Configuration',
|
|
'deviceConfig.configuring': 'Configuring...',
|
|
'deviceConfig.wifiConfigInstructions': 'WiFi Configuration Instructions',
|
|
'deviceConfig.phoneConnectXiaozhiHotspot': 'Phone connect to xiaozhi hotspot',
|
|
'deviceConfig.selectTargetWifiNetwork': 'Select target WiFi network',
|
|
'deviceConfig.enterWifiPasswordIfNeeded': 'Enter WiFi password if needed',
|
|
'deviceConfig.clickStartConfigAndWait': 'Click Start Configuration and wait',
|
|
'deviceConfig.afterConfigSuccessDeviceWillRestart': 'After successful configuration, device will automatically restart',
|
|
'deviceConfig.audioPlaybackError': 'Audio playback error',
|
|
'deviceConfig.playbackFailed': 'Playback failed',
|
|
|
|
// Voiceprint page
|
|
'voiceprint.audioNotExist': 'Audio does not exist',
|
|
'voiceprint.getAudioFailed': 'Failed to get audio',
|
|
'voiceprint.audioPlayFailed': 'Audio playback failed',
|
|
}
|