uptete:移动端智控台添加德语、越南语

This commit is contained in:
rainv123
2025-11-15 17:52:40 +08:00
parent 8064cdf1a2
commit 925ed1ec0c
4 changed files with 892 additions and 7 deletions
+440
View File
@@ -0,0 +1,440 @@
// Deutsch Sprachpaket
export default {
// TabBar
'tabBar.home': 'Startseite',
'tabBar.deviceConfig': 'Netzwerkkonfig',
'tabBar.settings': 'System',
// Einstellungsseitentitel
'settings.title': 'Einstellungen',
// Anmeldeseite
'login.pageTitle': 'Anmelden',
'login.navigationTitle': 'Anmelden',
'login.fetchConfigError': 'Konfiguration konnte nicht abgerufen werden:',
'login.selectLanguage': 'Sprache auswählen',
'login.selectLanguageTip': 'Vi',
'login.welcomeBack': 'Willkommen zurück',
'login.pleaseLogin': 'Bitte melden Sie sich an',
'login.enterUsername': 'Bitte Benutzernamen eingeben',
'login.enterPassword': 'Bitte Passwort eingeben',
'login.enterCaptcha': 'Bitte Bestätigungscode eingeben',
'login.loginButton': 'Anmelden',
'login.loggingIn': 'Wird angemeldet...',
'login.noAccount': 'Registrieren',
'login.enterPhone': 'Bitte Handynummer eingeben',
'login.selectCountry': 'Land/Region auswählen',
'login.confirm': 'Bestätigen',
'login.serverSetting': 'Server-Einstellungen',
'login.requiredUsername': 'Benutzername darf nicht leer sein',
'login.requiredPassword': 'Passwort darf nicht leer sein',
'login.requiredCaptcha': 'Bestätigungscode darf nicht leer sein',
'login.requiredMobile': 'Bitte gültige Handynummer eingeben',
'login.captchaError': 'Grafischer Bestätigungscode Fehler',
'login.forgotPassword': 'Passwort vergessen',
// Registrierungsseite
'register.pageTitle': 'Registrieren',
'register.createAccount': 'Konto erstellen',
'register.enterUsername': 'Bitte Benutzernamen eingeben',
'register.enterPassword': 'Bitte Passwort eingeben',
'register.confirmPassword': 'Bitte Passwort bestätigen',
'register.enterPhone': 'Bitte Handynummer eingeben',
'register.enterCode': 'Bitte Bestätigungscode eingeben',
'register.getCode': 'Code erhalten',
'register.agreeTerms': 'Ich habe gelesen und stimme zu',
'register.terms': 'Nutzungsbedingungen',
'register.privacy': 'Datenschutzrichtlinie',
'register.registerButton': 'Registrieren',
'register.registering': 'Wird registriert...',
'register.haveAccount': 'Bereits ein Konto?',
'register.loginNow': 'Jetzt anmelden',
'register.selectCountry': 'Land/Region auswählen',
'register.confirm': 'Bestätigen',
'register.captchaSendSuccess': 'Bestätigungscode erfolgreich gesendet',
// Startseite
'home.pageTitle': 'Startseite',
'home.createAgent': 'Agent erstellen',
'home.agentName': 'Agent',
'home.modelInfo': 'Modell-Info',
'home.lastActive': 'Zuletzt aktiv',
'home.greeting': 'Hallo Jarvis',
'home.subtitle': 'Lassen Sie uns',
'home.wonderfulDay': 'einen wunderbaren Tag haben!',
'home.emptyState': 'Keine Agenten verfügbar',
'home.deviceManagement': 'Geräteverwaltung',
'home.lastConversation': 'Letzte Konversation:',
'home.delete': 'Löschen',
'home.createFirstAgent': 'Klicken Sie auf die + Schaltfläche unten rechts, um Ihren ersten Agenten zu erstellen',
'home.dialogTitle': 'Agent erstellen',
'home.inputPlaceholder': 'z.B. Kundenservice-Assistent, Sprachassistent, Wissens-F&A',
'home.createError': 'Bitte Agenten-Namen eingeben',
'home.createNow': 'Jetzt erstellen',
'home.justNow': 'Gerade eben',
'home.minutesAgo': 'Minuten her',
'home.hoursAgo': 'Stunden her',
'home.daysAgo': 'Tage her',
// Agentenseite
'agent.pageTitle': 'Agent',
'agent.roleConfig': 'Rollenkonfiguration',
'agent.deviceManagement': 'Geräteverwaltung',
'agent.chatHistory': 'Chat-Verlauf',
'agent.voiceprintManagement': 'Stimmabdruckverwaltung',
'agent.editTitle': 'Agent bearbeiten',
'agent.toolsTitle': 'Funktionen bearbeiten',
'agent.voiceActivityDetection': 'Sprachaktivitätserkennung',
'agent.speechRecognition': 'Spracherkennung',
'agent.largeLanguageModel': 'Großes Sprachmodell',
'agent.save': 'Speichern',
'agent.cancel': 'Abbrechen',
// Agenten-Bearbeitungsseite
'agent.basicInfo': 'Grundinformationen',
'agent.agentName': 'Agentenname',
'agent.inputAgentName': 'Bitte Agenten-Namen eingeben',
'agent.roleMode': 'Rollenmodus',
'agent.roleDescription': 'Rollenbeschreibung',
'agent.inputRoleDescription': 'Bitte Rollenbeschreibung eingeben',
'agent.modelConfig': 'Modellkonfiguration',
'agent.vad': 'Sprachaktivitätserkennung',
'agent.asr': 'Spracherkennung',
'agent.llm': 'Großes Sprachmodell',
'agent.vllm': 'Vision-Sprachmodell',
'agent.intent': 'Absichtserkennung',
'agent.memory': 'Speicher',
'agent.voiceSettings': 'Stimmeinstellungen',
'agent.tts': 'Text-zu-Sprache',
'agent.voiceprint': 'Agenten-Stimme',
'agent.plugins': 'Plugins',
'agent.editFunctions': 'Funktionen bearbeiten',
'agent.historyMemory': 'Verlaufsspeicher',
'agent.memoryContent': 'Speicherinhalt',
'agent.saving': 'Wird gespeichert...',
'agent.saveSuccess': 'Erfolgreich gespeichert',
'agent.saveFail': 'Speichern fehlgeschlagen',
'agent.loadFail': 'Laden fehlgeschlagen',
'agent.pleaseInputAgentName': 'Bitte Agenten-Namen eingeben',
'agent.pleaseInputRoleDescription': 'Bitte Rollenbeschreibung eingeben',
'agent.pleaseSelect': 'Bitte auswählen',
// Chat-Verlauf Seite
'chatHistory.getChatSessions': 'Chat-Sitzungsliste abrufen',
'chatHistory.noSelectedAgent': 'Kein Agent ausgewählt',
'chatHistory.getChatSessionsFailed': 'Chat-Sitzungsliste konnte nicht abgerufen werden:',
'chatHistory.unknownTime': 'Unbekannte Zeit',
'chatHistory.justNow': 'Gerade eben',
'chatHistory.minutesAgo': 'Vor {minutes} Minuten',
'chatHistory.hoursAgo': 'Vor {hours} Stunden',
'chatHistory.daysAgo': 'Vor {days} Tagen',
'chatHistory.conversationRecord': 'Konversationsaufzeichnung',
'chatHistory.totalChats': 'Insgesamt {count} Chats',
'chatHistory.loading': 'Lädt...',
'chatHistory.noMoreData': 'Keine weiteren Daten',
'chatHistory.noChatRecords': 'Keine Chat-Aufzeichnungen',
'chatRecordsDescription': 'Konversationsaufzeichnungen mit Agenten werden hier angezeigt',
// Chat-Verlauf Detailseite
'chatHistory.pageTitle': 'Chat-Details',
'chatHistory.assistantName': 'Intelligenter Assistent',
'chatHistory.userName': 'Benutzer',
'chatHistory.aiAssistantName': 'KI-Assistent',
'chatHistory.loadFailed': 'Chat-Verlauf konnte nicht geladen werden',
'chatHistory.parameterError': 'Seitenparameter Fehler',
'chatHistory.invalidAudioId': 'Ungültige Audio-ID',
'chatHistory.audioPlayFailed': 'Audio-Wiedergabe fehlgeschlagen',
'chatHistory.playAudioFailed': 'Audio konnte nicht abgespielt werden',
// Geräteverwaltungsseite
'device.pageTitle': 'Geräteverwaltung',
'device.noDevices': 'Keine Geräte verfügbar',
'device.macAddress': 'MAC-Adresse',
'device.firmwareVersion': 'Firmware-Version',
'device.lastConnected': 'Letzte Konversation',
'device.otaUpdate': 'OTA-Update',
'device.unbind': 'Entbinden',
'device.confirmUnbind': 'Bestätigen',
'device.bindDevice': 'Neues Gerät binden',
'device.deviceType': 'Gerätetyp',
'device.loading': 'Lädt...',
'device.neverConnected': 'Nie verbunden',
'device.justNow': 'Gerade eben',
'device.minutesAgo': 'Vor {minutes} Minuten',
'device.hoursAgo': 'Vor {hours} Stunden',
'device.daysAgo': 'Vor {days} Tagen',
'device.otaAutoUpdateEnabled': 'OTA Auto-Update aktiviert',
'device.otaAutoUpdateDisabled': 'OTA Auto-Update deaktiviert',
'device.operationFailed': 'Operation fehlgeschlagen, bitte erneut versuchen',
'device.deviceUnbound': 'Gerät entbunden',
'device.unbindFailed': 'Entbinden fehlgeschlagen, bitte erneut versuchen',
'device.unbindDevice': 'Gerät entbinden',
'device.confirmUnbindDevice': 'Sind Sie sicher, dass Sie Gerät "{macAddress}" entbinden möchten?',
'device.cancel': 'Abbrechen',
'device.noDevice': 'Kein Gerät',
'device.pleaseSelectAgent': 'Bitte wählen Sie zuerst einen Agenten aus',
'device.deviceBindSuccess': 'Gerät erfolgreich gebunden!',
'device.bindFailed': 'Binden fehlgeschlagen, bitte prüfen Sie ob der Bestätigungscode korrekt ist',
'device.enterDeviceCode': 'Bitte Geräte-Bestätigungscode eingeben',
'device.bindNow': 'Jetzt binden',
'device.lastConnection': 'Letzte Verbindung',
'device.clickToBindFirstDevice': 'Klicken Sie auf die + Schaltfläche unten rechts, um Ihr erstes Gerät zu binden',
// Allgemein
'common.success': 'Erfolg',
'common.fail': 'Fehlgeschlagen',
'common.loading': 'Lädt...',
'common.confirm': 'Bestätigen',
'common.cancel': 'Abbrechen',
'common.delete': 'Löschen',
'common.edit': 'Bearbeiten',
'common.add': 'Hinzufügen',
'common.pleaseSelect': 'Bitte auswählen',
'common.unknownError': 'Unbekannter Fehler',
'common.networkError': 'Netzwerkfehler',
// Passwort-Wiederherstellungsseite
'retrievePassword.title': 'Passwort zurücksetzen',
'retrievePassword.subtitle': 'Stellen Sie Ihr Kontopasswort über Handynummer wieder her',
'retrievePassword.mobileRequired': 'Bitte Handynummer eingeben',
'retrievePassword.inputCorrectMobile': 'Bitte gültige Handynummer eingeben',
'retrievePassword.captchaRequired': 'Bitte grafischen Bestätigungscode eingeben',
'retrievePassword.mobileCaptchaRequired': 'Bitte SMS-Bestätigungscode eingeben',
'retrievePassword.newPasswordRequired': 'Bitte neues Passwort eingeben',
'retrievePassword.confirmNewPasswordRequired': 'Bitte neues Passwort bestätigen',
'retrievePassword.passwordsNotMatch': 'Passwörter stimmen nicht überein',
'retrievePassword.mobilePlaceholder': 'Bitte Handynummer eingeben',
'retrievePassword.captchaPlaceholder': 'Bitte grafischen Bestätigungscode eingeben',
'retrievePassword.mobileCaptchaPlaceholder': 'Bitte SMS-Bestätigungscode eingeben',
'retrievePassword.newPasswordPlaceholder': 'Bitte neues Passwort eingeben',
'retrievePassword.confirmNewPasswordPlaceholder': 'Bitte neues Passwort bestätigen',
'retrievePassword.getMobileCaptcha': 'Code erhalten',
'retrievePassword.captchaSendSuccess': 'Bestätigungscode erfolgreich gesendet',
'retrievePassword.passwordUpdateSuccess': 'Passwort erfolgreich zurückgesetzt',
'retrievePassword.resetButton': 'Passwort zurücksetzen',
'retrievePassword.goToLogin': 'Zurück zur Anmeldung',
// SM2-Verschlüsselungsbezogene Fehlermeldungen
'sm2.publicKeyNotConfigured': 'SM2 öffentlicher Schlüssel nicht konfiguriert, bitte Administrator kontaktieren',
'sm2.encryptionFailed': 'Passwortverschlüsselung fehlgeschlagen',
'sm2.keyGenerationFailed': 'Schlüsselpaar-Generierung fehlgeschlagen',
'sm2.invalidPublicKey': 'Ungültiges öffentliches Schlüsselformat',
'sm2.encryptionError': 'Fehler bei der Verschlüsselung aufgetreten',
'sm2.publicKeyRetry': 'Öffentlichen Schlüssel erneut abrufen...',
'sm2.publicKeyRetryFailed': 'Wiederholter Abruf des öffentlichen Schlüssels fehlgeschlagen',
// Stimmabdruckseite
'voiceprint.noSelectedAgent': 'Kein Agent ausgewählt',
'voiceprint.pleaseSelectAgent': 'Bitte wählen Sie zuerst einen Agenten aus',
'voiceprint.fetchHistoryFailed': 'Chat-Verlauf konnte nicht abgerufen werden',
'voiceprint.clickToSelectVector': 'Klicken zum Auswählen des Stimmabdruck-Vektors',
'voiceprint.pleaseInputName': 'Bitte Namen eingeben',
'voiceprint.pleaseSelectVector': 'Bitte Stimmabdruck-Vektor auswählen',
'voiceprint.addSuccess': 'Erfolgreich hinzugefügt',
'voiceprint.addFailed': 'Hinzufügen des Sprechers fehlgeschlagen',
'voiceprint.editSuccess': 'Erfolgreich bearbeitet',
'voiceprint.editFailed': 'Bearbeiten des Sprechers fehlgeschlagen',
'voiceprint.deleteConfirmMsg': 'Sind Sie sicher, dass Sie diesen Sprecher löschen möchten?',
'voiceprint.deleteConfirmTitle': 'Löschen bestätigen',
'voiceprint.deleteSuccess': 'Erfolgreich gelöscht',
'voiceprint.loading': 'Lädt...',
'voiceprint.delete': 'Löschen',
'voiceprint.emptyTitle': 'Keine Stimmabdruck-Daten',
'voiceprint.emptyDesc': 'Klicken Sie auf die + Schaltfläche unten rechts, um Ihren ersten Sprecher hinzuzufügen',
'voiceprint.addSpeaker': 'Sprecher hinzufügen',
'voiceprint.voiceVector': 'Stimmabdruck-Vektor',
'voiceprint.name': 'Name',
'voiceprint.description': 'Beschreibung',
'voiceprint.pleaseInputDescription': 'Bitte Beschreibung eingeben',
'voiceprint.cancel': 'Abbrechen',
'voiceprint.save': 'Speichern',
'voiceprint.editSpeaker': 'Sprecher bearbeiten',
'voiceprint.selectVector': 'Stimmabdruck-Vektor auswählen',
'voiceprint.voiceprintInterfaceNotConfigured': 'Stimmabdruck-Schnittstelle nicht konfiguriert',
// Einstellungsseite
'settings.pageTitle': 'Einstellungen',
'settings.navigationTitle': 'Einstellungen',
'settings.networkSettings': 'Netzwerkeinstellungen',
'settings.serverApiUrl': 'Server-API-URL',
'settings.validServerUrl': 'Bitte gültige Serveradresse eingeben (beginnt mit http oder https und endet mit /xiaozhi)',
'settings.saveSettings': 'Einstellungen speichern',
'settings.resetDefault': 'Auf Standard zurücksetzen',
'settings.restartApp': 'App neu starten',
'settings.restartNow': 'Jetzt neu starten',
'settings.restartLater': 'Später',
// Über uns
'settings.aboutApp': 'Über XiaoZhi Konsole',
'settings.aboutContent': 'XiaoZhi Konsole\n\nEine plattformübergreifende mobile Management-App, erstellt mit Vue.js 3 + uni-app, bietet Geräteverwaltung, Agentenkonfiguration und andere Funktionen für xiaozhi ESP32 Smart Hardware.\n\n© 2025 xiaozhi-esp32-server {version}',
'settings.restartSuccess': 'Gespeichert, Sie können die App später manuell neu starten',
'settings.serverUrlSavedAndCacheCleared': 'Server-URL gespeichert und Cache geleert',
'settings.resetToDefaultAndCacheCleared': 'Auf Standard zurückgesetzt und Cache geleert',
'settings.resetSuccess': 'Zurücksetzen erfolgreich',
'settings.enterServerUrl': 'Bitte Server-URL eingeben',
'settings.clearCacheFailed': 'Cache konnte nicht geleert werden',
'settings.cacheManagement': 'Cache-Verwaltung',
'settings.totalCacheSize': 'Gesamte Cache-Größe',
'settings.appDataSize': 'Gesamte App-Datengröße',
'settings.cacheClear': 'Cache leeren',
'settings.clearAllCache': 'Alle Cache-Daten löschen',
'settings.clearCache': 'Cache leeren',
'settings.modifyWillClearCache': 'Änderungen werden Cache leeren',
'settings.appInfo': 'App-Info',
'settings.aboutUs': 'Über uns',
'settings.appVersion': 'App-Version & Team-Info',
'settings.confirmClear': 'Löschen bestätigen',
'settings.confirmClearMessage': 'Sind Sie sicher, dass Sie den gesamten Cache löschen möchten? Dies löscht alle Daten einschließlich Anmeldestatus und erfordert erneute Anmeldung.',
'settings.cacheCleared': 'Cache erfolgreich geleert, leite zur Anmeldeseite weiter',
'settings.languageSettings': 'Spracheinstellungen',
'settings.language': 'Sprache',
'settings.selectLanguage': 'Sprache auswählen',
'settings.languageChanged': 'Sprache erfolgreich geändert',
// Nachrichten
'message.loginSuccess': 'Anmeldung erfolgreich!',
'message.loginFail': 'Anmeldung fehlgeschlagen',
'message.registerSuccess': 'Registrierung erfolgreich',
'message.registerFail': 'Registrierung fehlgeschlagen',
'message.saveSuccess': 'Erfolgreich gespeichert',
'message.saveFail': 'Speichern fehlgeschlagen',
'message.deleteSuccess': 'Erfolgreich gelöscht',
'message.deleteFail': 'Löschen fehlgeschlagen',
'message.bindSuccess': 'Binden erfolgreich',
'message.bindFail': 'Binden fehlgeschlagen',
'message.unbindSuccess': 'Entbinden erfolgreich',
'message.unbindFail': 'Entbinden fehlgeschlagen',
'message.networkError': 'Netzwerkfehler, bitte Verbindung prüfen',
'message.serverError': 'Serverfehler, bitte später erneut versuchen',
'message.invalidAddress': 'Ungültige Adresse, bitte prüfen ob Server gestartet oder Netzwerkverbindung normal ist',
'message.languageChanged': 'Sprache geändert',
'message.passwordError': 'Konto oder Passwort Fehler',
'message.phoneRegistered': 'Diese Handynummer wurde bereits registriert',
// Agenten-Werkzeuge Seite
'agent.tools.pageTitle': 'Agenten-Werkzeuge',
'agent.tools.unselected': 'Nicht ausgewählt',
'agent.tools.selected': 'Ausgewählt',
'agent.tools.noMorePlugins': 'Keine weiteren Plugins',
'agent.tools.pleaseSelectPlugin': 'Bitte Plugin-Funktion auswählen',
'agent.tools.builtInPlugins': 'Eingebaute Plugins',
'agent.tools.mcpAccessPoint': 'MCP-Zugangspunkt',
'agent.tools.copy': 'Kopieren',
'agent.tools.noTools': 'Keine Werkzeuge verfügbar',
'agent.tools.parameterConfig': 'Parameterkonfiguration',
'agent.tools.noParamsNeeded': 'Keine Parameter benötigt',
'agent.tools.pleaseInput': 'Bitte eingeben',
'agent.tools.inputOneItemPerLine': 'Ein Element pro Zeile eingeben',
'agent.tools.pleaseInputValidJson': 'Bitte gültiges JSON-Format eingeben',
'agent.tools.enableFunction': 'Funktion aktivieren',
'agent.tools.toggleFunction': 'Diese Funktion ein- oder ausschalten',
'agent.tools.jsonFormatError': 'JSON-Format Fehler',
'agent.tools.noMcpAddressToCopy': 'Keine MCP-Adresse zum Kopieren',
'agent.tools.mcpAddressCopied': 'MCP-Adresse in Zwischenablage kopiert',
'agent.tools.copyFailed': 'Kopieren fehlgeschlagen, bitte erneut versuchen',
'agent.tools.defaultValue': 'Standardwert',
'agent.tools.notSelected': 'Nicht ausgewählt',
'agent.tools.clickToConfigure': 'Klicken zum Konfigurieren',
'agent.tools.mcpEndpoint': 'MCP-Endpunkt',
'agent.tools.eachLineOneItem': 'Ein Element pro Zeile eingeben',
// Gerätekonfigurationsseite
'deviceConfig.pageTitle': 'Gerätekonfiguration',
'deviceConfig.wifiConfig': 'WiFi-Konfiguration',
'deviceConfig.ultrasonicConfig': 'Ultraschall-Konfiguration',
'deviceConfig.selectConfigMethod': 'Konfigurationsmethode auswählen',
'deviceConfig.networkConfig': 'Netzwerkkonfiguration',
'deviceConfig.selectedNetwork': 'Ausgewähltes Netzwerk',
'deviceConfig.signal': 'Signal',
'deviceConfig.openNetwork': 'Offenes Netzwerk',
'deviceConfig.encryptedNetwork': 'Verschlüsseltes Netzwerk',
'deviceConfig.password': 'Passwort',
'deviceConfig.pleaseEnterPassword': 'Bitte WiFi-Passwort eingeben',
'deviceConfig.startConfig': 'Konfiguration starten',
'deviceConfig.connectToXiaozhiHotspot': 'Bitte verbinden Sie sich zuerst mit dem xiaozhi Hotspot',
'deviceConfig.detecting': 'Erkennen...',
'deviceConfig.reDetect': 'Erneut erkennen',
'deviceConfig.alreadyConnected': 'Mit xiaozhi Hotspot verbunden',
'deviceConfig.refreshStatus': 'Status aktualisieren',
'deviceConfig.wifiNetworks': 'WiFi-Netzwerke',
'deviceConfig.selectWifiNetwork': 'WiFi-Netzwerk auswählen',
'deviceConfig.refreshScan': 'Scan aktualisieren',
'deviceConfig.noWifiNetworks': 'Keine WiFi-Netzwerke verfügbar',
'deviceConfig.clickToRefreshScan': 'Bitte Scan aktualisieren klicken',
'deviceConfig.signalStrong': 'Starkes Signal',
'deviceConfig.signalGood': 'Gutes Signal',
'deviceConfig.signalFair': 'Mittleres Signal',
'deviceConfig.signalWeak': 'Schwaches Signal',
'deviceConfig.channel': 'Kanal',
'deviceConfig.about': 'ungefähr',
'deviceConfig.seconds': 'Sekunden',
'deviceConfig.generating': 'Wird generiert...',
'deviceConfig.playing': 'Wird abgespielt...',
'deviceConfig.generateAndPlaySoundWave': 'Schallwelle generieren und abspielen',
'deviceConfig.playSoundWave': 'Schallwelle abspielen',
'deviceConfig.stopPlaying': 'Abspielen stoppen',
'deviceConfig.autoLoopPlaySoundWave': 'Schallwelle automatisch wiederholt abspielen',
'deviceConfig.configAudioFile': 'Konfigurations-Audio-Datei',
'deviceConfig.duration': 'Dauer',
'deviceConfig.ultrasonicConfigInstructions': 'Ultraschall-Konfigurationsanleitung',
'deviceConfig.ensureWifiNetworkSelectedAndPasswordEntered': 'Stellen Sie sicher, dass WiFi-Netzwerk ausgewählt und Passwort eingegeben ist',
'deviceConfig.clickGenerateAndPlaySoundWave': 'Klicken Sie auf Schallwelle generieren und abspielen, das System kodiert Konfigurationsinformationen in Audio',
'deviceConfig.bringPhoneCloseToXiaozhiDevice': 'Bringen Sie das Telefon in die Nähe des xiaozhi Geräts (1-2 Meter Entfernung)',
'deviceConfig.duringAudioPlaybackXiaozhiWillReceive': 'Während der Audio-Wiedergabe empfängt xiaozhi und dekodiert Konfigurationsinformationen',
'deviceConfig.afterConfigSuccessDeviceWillConnect': 'Nach erfolgreicher Konfiguration verbindet sich das Gerät automatisch mit dem WiFi-Netzwerk',
'deviceConfig.usesAfskModulation': 'Verwendet AFSK-Modulationstechnologie, überträgt Daten durch 1800Hz und 1500Hz Frequenzen',
'deviceConfig.ensureModeratePhoneVolume': 'Bitte stellen Sie sicher, dass die Telefonlautstärke moderat ist, um Umgebungsgeräuschstörungen zu vermeiden',
'deviceConfig.generatingUltrasonicConfigAudio': 'Ultraschall-Konfigurationsaudio wird generiert',
'deviceConfig.configData': 'Konfigurationsdaten',
'deviceConfig.dataBytesLength': 'Datenbytes-Länge',
'deviceConfig.bitStreamLength': 'Bitstrom-Länge',
'deviceConfig.base64Length': 'Base64-Länge',
'deviceConfig.audioFileTooLarge': 'Audio-Datei zu groß, bitte SSID oder Passwortlänge kürzen',
'deviceConfig.audioGenerationSuccess': 'Audio-Generierung erfolgreich',
'deviceConfig.samplePoints': 'Abtastpunkte',
'deviceConfig.soundWaveGenerationSuccess': 'Schallwellen-Generierung erfolgreich',
'deviceConfig.audioGenerationFailed': 'Audio-Generierung fehlgeschlagen',
'deviceConfig.soundWaveGenerationFailed': 'Schallwellen-Generierung fehlgeschlagen',
'deviceConfig.pleaseGenerateAudioFirst': 'Bitte generieren Sie zuerst Audio',
'deviceConfig.startPlayingUltrasonicConfigAudio': 'Ultraschall-Konfigurationsaudio wird abgespielt',
'deviceConfig.ultrasonicAudioStartedPlaying': 'Ultraschall-Audio wurde gestartet',
'deviceConfig.startPlayingConfigSoundWave': 'Konfigurations-Schallwelle wurde gestartet',
'deviceConfig.ultrasonicAudioPlaybackEnded': 'Ultraschall-Audio-Wiedergabe beendet',
'deviceConfig.audioPlaybackFailed': 'Audio-Wiedergabe fehlgeschlagen',
'deviceConfig.audioResourceBusy': 'Audio-Ressource beschäftigt, bitte später erneut versuchen',
'deviceConfig.audioFormatNotSupported': 'Audio-Format nicht unterstützt, möglicherweise ein Data-URI-Problem',
'deviceConfig.audioFileError': 'Audio-Datei-Fehler',
'deviceConfig.cleaningUpAudioContext': 'Audio-Kontext wird bereinigt',
'deviceConfig.cleaningUpAudioContextFailed': 'Audio-Kontext-Bereinigung fehlgeschlagen',
'deviceConfig.stoppedPlayingUltrasonicAudio': 'Ultraschall-Audio-Wiedergabe gestoppt',
'deviceConfig.stoppedPlaying': 'Wiedergabe gestoppt',
'deviceConfig.configMethod': 'Konfigurationsmethode',
'deviceConfig.enterWifiPassword': 'Bitte WiFi-Passwort eingeben',
'deviceConfig.xiaozhi': 'xiaozhi',
'deviceConfig.connectXiaozhiHotspot': 'Bitte verbinden Sie sich mit dem xiaozhi Hotspot',
'deviceConfig.wifiScanResponse': 'WiFi-Scan-Antwort',
'deviceConfig.scanSuccess': 'Scan erfolgreich',
'deviceConfig.networks': 'Netzwerke',
'deviceConfig.wifiScanFailed': 'WiFi-Scan fehlgeschlagen',
'deviceConfig.scanFailedCheckConnection': 'Scan fehlgeschlagen, bitte Verbindung prüfen',
'deviceConfig.checking': 'Wird geprüft',
'deviceConfig.reCheck': 'Erneut prüfen',
'deviceConfig.connectedXiaozhiHotspot': 'Mit xiaozhi Hotspot verbunden',
'deviceConfig.wifiNetwork': 'WiFi-Netzwerk',
'deviceConfig.scanning': 'Wird gescannt',
'deviceConfig.cancel': 'Abbrechen',
'deviceConfig.clickRefreshScan': 'Bitte Scan aktualisieren klicken',
'deviceConfig.esp32ConnectionCheckFailed': 'ESP32-Verbindungsprüfung fehlgeschlagen',
'deviceConfig.startWifiConfig': 'WiFi-Konfiguration wird gestartet',
'deviceConfig.configSuccess': 'Konfiguration erfolgreich',
'deviceConfig.deviceWillConnectTo': 'Gerät wird sich verbinden mit',
'deviceConfig.deviceWillRestart': 'Gerät wird neu starten',
'deviceConfig.pleaseDisconnectXiaozhiHotspot': 'Bitte trennen Sie sich vom xiaozhi Hotspot',
'deviceConfig.configFailed': 'Konfiguration fehlgeschlagen',
'deviceConfig.wifiConfigFailed': 'WiFi-Konfiguration fehlgeschlagen',
'deviceConfig.pleaseCheckNetworkConnection': 'Bitte Netzwerkverbindung prüfen',
'deviceConfig.startWifiConfigButton': 'Konfiguration starten',
'deviceConfig.wifiConfigInstructions': 'WiFi-Konfigurationsanleitung',
'deviceConfig.phoneConnectXiaozhiHotspot': 'Telefon mit xiaozhi Hotspot verbinden',
'deviceConfig.selectTargetWifiNetwork': 'Ziel-WiFi-Netzwerk auswählen',
'deviceConfig.enterWifiPasswordIfNeeded': 'WiFi-Passwort eingeben falls benötigt',
'deviceConfig.clickStartConfigAndWait': 'Konfiguration starten klicken und warten',
'deviceConfig.afterConfigSuccessDeviceWillRestart': 'Nach erfolgreicher Konfiguration startet Gerät automatisch neu',
'deviceConfig.audioPlaybackError': 'Audio-Wiedergabe-Fehler',
'deviceConfig.playbackFailed': 'Wiedergabe fehlgeschlagen',
}
+11 -5
View File
@@ -3,15 +3,19 @@ import { useLangStore } from '@/store/lang'
import type { Language } from '@/store/lang'
// 导入各个语言的翻译文件
import zhCN from './zh_CN'
import zh_CN from './zh_CN'
import en from './en'
import zhTW from './zh_TW'
import zh_TW from './zh_TW'
import de from './de'
import vi from './vi'
// 语言包映射
const messages = {
zh_CN: zhCN,
zh_CN: zh_CN,
en,
zh_TW: zhTW,
zh_TW: zh_TW,
de,
vi,
}
// 当前使用的语言
@@ -61,10 +65,12 @@ export function getCurrentLanguage(): Language {
}
// 获取支持的语言列表
export function getSupportedLanguages(): {code: Language, name: string}[] {
export function getSupportedLanguages(): { code: Language, name: string }[] {
return [
{ code: 'zh_CN', name: '简体中文' },
{ code: 'en', name: 'English' },
{ code: 'zh_TW', name: '繁體中文' },
{ code: 'de', name: 'Deutsch' },
{ code: 'vi', name: 'Tiếng Việt' },
]
}
+440
View File
@@ -0,0 +1,440 @@
// Gói ngôn ngữ tiếng Việt
export default {
// TabBar
'tabBar.home': 'Trang chủ',
'tabBar.deviceConfig': 'Cấu hình mạng',
'tabBar.settings': 'Hệ thống',
// Tiêu đề trang cài đặt
'settings.title': 'Cài đặt',
// Trang đăng nhập
'login.pageTitle': 'Đăng nhập',
'login.navigationTitle': 'Đăng nhập',
'login.fetchConfigError': 'Không thể tải cấu hình:',
'login.selectLanguage': 'Chọn ngôn ngữ',
'login.selectLanguageTip': 'de',
'login.welcomeBack': 'Chào mừng trở lại',
'login.pleaseLogin': 'Vui lòng đăng nhập vào tài khoản của bạn',
'login.enterUsername': 'Vui lòng nhập tên đăng nhập',
'login.enterPassword': 'Vui lòng nhập mật khẩu',
'login.enterCaptcha': 'Vui lòng nhập mã xác minh',
'login.loginButton': 'Đăng nhập',
'login.loggingIn': 'Đang đăng nhập...',
'login.noAccount': 'Đăng ký',
'login.enterPhone': 'Vui lòng nhập số điện thoại',
'login.selectCountry': 'Chọn quốc gia/vùng',
'login.confirm': 'Xác nhận',
'login.serverSetting': 'Cài đặt máy chủ',
'login.requiredUsername': 'Tên đăng nhập không thể để trống',
'login.requiredPassword': 'Mật khẩu không thể để trống',
'login.requiredCaptcha': 'Mã xác minh không thể để trống',
'login.requiredMobile': 'Vui lòng nhập số điện thoại hợp lệ',
'login.captchaError': 'Lỗi mã xác minh đồ họa',
'login.forgotPassword': 'Quên mật khẩu',
// Trang đăng ký
'register.pageTitle': 'Đăng ký',
'register.createAccount': 'Tạo tài khoản',
'register.enterUsername': 'Vui lòng nhập tên đăng nhập',
'register.enterPassword': 'Vui lòng nhập mật khẩu',
'register.confirmPassword': 'Vui lòng xác nhận mật khẩu',
'register.enterPhone': 'Vui lòng nhập số điện thoại',
'register.enterCode': 'Vui lòng nhập mã xác minh',
'register.getCode': 'Lấy mã',
'register.agreeTerms': 'Tôi đã đọc và đồng ý với',
'register.terms': 'Thỏa thuận người dùng',
'register.privacy': 'Chính sách bảo mật',
'register.registerButton': 'Đăng ký',
'register.registering': 'Đang đăng ký...',
'register.haveAccount': 'Đã có tài khoản?',
'register.loginNow': 'Đăng nhập ngay',
'register.selectCountry': 'Chọn quốc gia/vùng',
'register.confirm': 'Xác nhận',
'register.captchaSendSuccess': 'Đã gửi mã xác minh thành công',
// Trang chủ
'home.pageTitle': 'Trang chủ',
'home.createAgent': 'Tạo đại lý',
'home.agentName': 'Đại lý',
'home.modelInfo': 'Thông tin mô hình',
'home.lastActive': 'Hoạt động lần cuối',
'home.greeting': 'Xin chào Jarvis',
'home.subtitle': 'Hãy cùng có',
'home.wonderfulDay': 'một ngày tuyệt vời!',
'home.emptyState': 'Không có đại lý nào',
'home.deviceManagement': 'Quản lý thiết bị',
'home.lastConversation': 'Cuộc trò chuyện cuối:',
'home.delete': 'Xóa',
'home.createFirstAgent': 'Nhấp vào nút + ở góc dưới bên phải để tạo đại lý đầu tiên của bạn',
'home.dialogTitle': 'Tạo đại lý',
'home.inputPlaceholder': 'ví dụ: Trợ lý chăm sóc khách hàng, Trợ lý giọng nói, Hỏi đáp kiến thức',
'home.createError': 'Vui lòng nhập tên đại lý',
'home.createNow': 'Tạo ngay',
'home.justNow': 'Vừa xong',
'home.minutesAgo': 'phút trước',
'home.hoursAgo': 'giờ trước',
'home.daysAgo': 'ngày trước',
// Trang đại lý
'agent.pageTitle': 'Đại lý',
'agent.roleConfig': 'Cấu hình vai trò',
'agent.deviceManagement': 'Quản lý thiết bị',
'agent.chatHistory': 'Lịch sử trò chuyện',
'agent.voiceprintManagement': 'Quản lý dấu giọng nói',
'agent.editTitle': 'Chỉnh sửa đại lý',
'agent.toolsTitle': 'Chỉnh sửa tính năng',
'agent.voiceActivityDetection': 'Phát hiện hoạt động giọng nói',
'agent.speechRecognition': 'Nhận dạng giọng nói',
'agent.largeLanguageModel': 'Mô hình ngôn ngữ lớn',
'agent.save': 'Lưu',
'agent.cancel': 'Hủy',
// Trang chỉnh sửa đại lý
'agent.basicInfo': 'Thông tin cơ bản',
'agent.agentName': 'Tên đại lý',
'agent.inputAgentName': 'Vui lòng nhập tên đại lý',
'agent.roleMode': 'Chế độ vai trò',
'agent.roleDescription': 'Mô tả vai trò',
'agent.inputRoleDescription': 'Vui lòng nhập mô tả vai trò',
'agent.modelConfig': 'Cấu hình mô hình',
'agent.vad': 'Phát hiện hoạt động giọng nói',
'agent.asr': 'Nhận dạng giọng nói',
'agent.llm': 'Mô hình ngôn ngữ lớn',
'agent.vllm': 'Mô hình ngôn ngữ thị giác',
'agent.intent': 'Nhận dạng ý định',
'agent.memory': 'Bộ nhớ',
'agent.voiceSettings': 'Cài đặt giọng nói',
'agent.tts': 'Văn bản thành giọng nói',
'agent.voiceprint': 'Giọng nói đại lý',
'agent.plugins': 'Plugin',
'agent.editFunctions': 'Chỉnh sửa tính năng',
'agent.historyMemory': 'Bộ nhớ lịch sử',
'agent.memoryContent': 'Nội dung bộ nhớ',
'agent.saving': 'Đang lưu...',
'agent.saveSuccess': 'Lưu thành công',
'agent.saveFail': 'Lưu thất bại',
'agent.loadFail': 'Tải thất bại',
'agent.pleaseInputAgentName': 'Vui lòng nhập tên đại lý',
'agent.pleaseInputRoleDescription': 'Vui lòng nhập mô tả vai trò',
'agent.pleaseSelect': 'Vui lòng chọn',
// Trang lịch sử trò chuyện
'chatHistory.getChatSessions': 'Lấy danh sách phiên trò chuyện',
'chatHistory.noSelectedAgent': 'Chưa chọn đại lý',
'chatHistory.getChatSessionsFailed': 'Không thể lấy danh sách phiên trò chuyện:',
'chatHistory.unknownTime': 'Thời gian không xác định',
'chatHistory.justNow': 'Vừa xong',
'chatHistory.minutesAgo': '{minutes} phút trước',
'chatHistory.hoursAgo': '{hours} giờ trước',
'chatHistory.daysAgo': '{days} ngày trước',
'chatHistory.conversationRecord': 'Bản ghi trò chuyện',
'chatHistory.totalChats': 'Tổng cộng {count} cuộc trò chuyện',
'chatHistory.loading': 'Đang tải...',
'chatHistory.noMoreData': 'Không còn dữ liệu',
'chatHistory.noChatRecords': 'Không có bản ghi trò chuyện',
'chatRecordsDescription': 'Bản ghi trò chuyện với đại lý sẽ hiển thị ở đây',
// Trang chi tiết lịch sử trò chuyện
'chatHistory.pageTitle': 'Chi tiết trò chuyện',
'chatHistory.assistantName': 'Trợ lý thông minh',
'chatHistory.userName': 'Người dùng',
'chatHistory.aiAssistantName': 'Trợ lý AI',
'chatHistory.loadFailed': 'Không thể tải lịch sử trò chuyện',
'chatHistory.parameterError': 'Lỗi tham số trang',
'chatHistory.invalidAudioId': 'ID âm thanh không hợp lệ',
'chatHistory.audioPlayFailed': 'Phát âm thanh thất bại',
'chatHistory.playAudioFailed': 'Không thể phát âm thanh',
// Trang quản lý thiết bị
'device.pageTitle': 'Quản lý thiết bị',
'device.noDevices': 'Không có thiết bị nào',
'device.macAddress': 'Địa chỉ MAC',
'device.firmwareVersion': 'Phiên bản firmware',
'device.lastConnected': 'Cuộc trò chuyện cuối',
'device.otaUpdate': 'Cập nhật OTA',
'device.unbind': 'Hủy liên kết',
'device.confirmUnbind': 'Xác nhận',
'device.bindDevice': 'Liên kết thiết bị mới',
'device.deviceType': 'Loại thiết bị',
'device.loading': 'Đang tải...',
'device.neverConnected': 'Chưa kết nối',
'device.justNow': 'Vừa xong',
'device.minutesAgo': '{minutes} phút trước',
'device.hoursAgo': '{hours} giờ trước',
'device.daysAgo': '{days} ngày trước',
'device.otaAutoUpdateEnabled': 'Đã bật cập nhật OTA tự động',
'device.otaAutoUpdateDisabled': 'Đã tắt cập nhật OTA tự động',
'device.operationFailed': 'Thao tác thất bại, vui lòng thử lại',
'device.deviceUnbound': 'Đã hủy liên kết thiết bị',
'device.unbindFailed': 'Hủy liên kết thất bại, vui lòng thử lại',
'device.unbindDevice': 'Hủy liên kết thiết bị',
'device.confirmUnbindDevice': 'Bạn có chắc chắn muốn hủy liên kết thiết bị "{macAddress}"?',
'device.cancel': 'Hủy',
'device.noDevice': 'Không có thiết bị',
'device.pleaseSelectAgent': 'Vui lòng chọn một đại lý trước',
'device.deviceBindSuccess': 'Liên kết thiết bị thành công!',
'device.bindFailed': 'Liên kết thất bại, vui lòng kiểm tra mã xác minh có đúng không',
'device.enterDeviceCode': 'Vui lòng nhập mã xác minh thiết bị',
'device.bindNow': 'Liên kết ngay',
'device.lastConnection': 'Kết nối cuối',
'device.clickToBindFirstDevice': 'Nhấp vào nút + ở góc dưới bên phải để liên kết thiết bị đầu tiên của bạn',
// Chung
'common.success': 'Thành công',
'common.fail': 'Thất bại',
'common.loading': 'Đang tải...',
'common.confirm': 'Xác nhận',
'common.cancel': 'Hủy',
'common.delete': 'Xóa',
'common.edit': 'Chỉnh sửa',
'common.add': 'Thêm',
'common.pleaseSelect': 'Vui lòng chọn',
'common.unknownError': 'Lỗi không xác định',
'common.networkError': 'Lỗi mạng',
// Trang khôi phục mật khẩu
'retrievePassword.title': 'Đặt lại mật khẩu',
'retrievePassword.subtitle': 'Khôi phục mật khẩu tài khoản qua số điện thoại',
'retrievePassword.mobileRequired': 'Vui lòng nhập số điện thoại',
'retrievePassword.inputCorrectMobile': 'Vui lòng nhập số điện thoại hợp lệ',
'retrievePassword.captchaRequired': 'Vui lòng nhập mã xác minh đồ họa',
'retrievePassword.mobileCaptchaRequired': 'Vui lòng nhập mã xác minh SMS',
'retrievePassword.newPasswordRequired': 'Vui lòng nhập mật khẩu mới',
'retrievePassword.confirmNewPasswordRequired': 'Vui lòng xác nhận mật khẩu mới',
'retrievePassword.passwordsNotMatch': 'Mật khẩu không khớp',
'retrievePassword.mobilePlaceholder': 'Vui lòng nhập số điện thoại',
'retrievePassword.captchaPlaceholder': 'Vui lòng nhập mã xác minh đồ họa',
'retrievePassword.mobileCaptchaPlaceholder': 'Vui lòng nhập mã xác minh SMS',
'retrievePassword.newPasswordPlaceholder': 'Vui lòng nhập mật khẩu mới',
'retrievePassword.confirmNewPasswordPlaceholder': 'Vui lòng xác nhận mật khẩu mới',
'retrievePassword.getMobileCaptcha': 'Lấy mã',
'retrievePassword.captchaSendSuccess': 'Đã gửi mã xác minh thành công',
'retrievePassword.passwordUpdateSuccess': 'Đặt lại mật khẩu thành công',
'retrievePassword.resetButton': 'Đặt lại mật khẩu',
'retrievePassword.goToLogin': 'Quay lại đăng nhập',
// Thông báo lỗi liên quan đến mã hóa SM2
'sm2.publicKeyNotConfigured': 'Khóa công khai SM2 chưa được cấu hình, vui lòng liên hệ quản trị viên',
'sm2.encryptionFailed': 'Mã hóa mật khẩu thất bại',
'sm2.keyGenerationFailed': 'Tạo cặp khóa thất bại',
'sm2.invalidPublicKey': 'Định dạng khóa công khai không hợp lệ',
'sm2.encryptionError': 'Đã xảy ra lỗi khi mã hóa',
'sm2.publicKeyRetry': 'Đang thử lấy lại khóa công khai...',
'sm2.publicKeyRetryFailed': 'Thử lấy lại khóa công khai thất bại',
// Trang dấu giọng nói
'voiceprint.noSelectedAgent': 'Chưa chọn đại lý',
'voiceprint.pleaseSelectAgent': 'Vui lòng chọn một đại lý trước',
'voiceprint.fetchHistoryFailed': 'Không thể tải lịch sử trò chuyện',
'voiceprint.clickToSelectVector': 'Nhấp để chọn vector dấu giọng nói',
'voiceprint.pleaseInputName': 'Vui lòng nhập tên',
'voiceprint.pleaseSelectVector': 'Vui lòng chọn vector dấu giọng nói',
'voiceprint.addSuccess': 'Thêm thành công',
'voiceprint.addFailed': 'Thêm người nói thất bại',
'voiceprint.editSuccess': 'Chỉnh sửa thành công',
'voiceprint.editFailed': 'Chỉnh sửa người nói thất bại',
'voiceprint.deleteConfirmMsg': 'Bạn có chắc chắn muốn xóa người nói này?',
'voiceprint.deleteConfirmTitle': 'Xác nhận xóa',
'voiceprint.deleteSuccess': 'Xóa thành công',
'voiceprint.loading': 'Đang tải...',
'voiceprint.delete': 'Xóa',
'voiceprint.emptyTitle': 'Không có dữ liệu dấu giọng nói',
'voiceprint.emptyDesc': 'Nhấp vào nút + ở góc dưới bên phải để thêm người nói đầu tiên của bạn',
'voiceprint.addSpeaker': 'Thêm người nói',
'voiceprint.voiceVector': 'Vector dấu giọng nói',
'voiceprint.name': 'Tên',
'voiceprint.description': 'Mô tả',
'voiceprint.pleaseInputDescription': 'Vui lòng nhập mô tả',
'voiceprint.cancel': 'Hủy',
'voiceprint.save': 'Lưu',
'voiceprint.editSpeaker': 'Chỉnh sửa người nói',
'voiceprint.selectVector': 'Chọn vector dấu giọng nói',
'voiceprint.voiceprintInterfaceNotConfigured': 'Giao diện dấu giọng nói chưa được cấu hình',
// Trang cài đặt
'settings.pageTitle': 'Cài đặt',
'settings.navigationTitle': 'Cài đặt',
'settings.networkSettings': 'Cài đặt mạng',
'settings.serverApiUrl': 'URL API máy chủ',
'settings.validServerUrl': 'Vui lòng nhập địa chỉ máy chủ hợp lệ (bắt đầu bằng http hoặc https và kết thúc bằng /xiaozhi)',
'settings.saveSettings': 'Lưu cài đặt',
'settings.resetDefault': 'Đặt lại mặc định',
'settings.restartApp': 'Khởi động lại ứng dụng',
'settings.restartNow': 'Khởi động lại ngay',
'settings.restartLater': 'Để sau',
// Về chúng tôi
'settings.aboutApp': 'Về Bảng điều khiển XiaoZhi',
'settings.aboutContent': 'Bảng điều khiển XiaoZhi\n\nỨng dụng quản lý di động đa nền tảng được xây dựng với Vue.js 3 + uni-app, cung cấp quản lý thiết bị, cấu hình đại lý và các chức năng khác cho phần cứng thông minh xiaozhi ESP32.\n\n© 2025 xiaozhi-esp32-server {version}',
'settings.restartSuccess': 'Đã lưu, bạn có thể tự khởi động lại ứng dụng sau',
'settings.serverUrlSavedAndCacheCleared': 'Đã lưu URL máy chủ và xóa bộ nhớ cache',
'settings.resetToDefaultAndCacheCleared': 'Đã đặt lại mặc định và xóa bộ nhớ cache',
'settings.resetSuccess': 'Đặt lại thành công',
'settings.enterServerUrl': 'Vui lòng nhập URL máy chủ',
'settings.clearCacheFailed': 'Không thể xóa bộ nhớ cache',
'settings.cacheManagement': 'Quản lý bộ nhớ cache',
'settings.totalCacheSize': 'Tổng kích thước bộ nhớ cache',
'settings.appDataSize': 'Tổng kích thước dữ liệu ứng dụng',
'settings.cacheClear': 'Xóa bộ nhớ cache',
'settings.clearAllCache': 'Xóa tất cả dữ liệu bộ nhớ cache',
'settings.clearCache': 'Xóa bộ nhớ cache',
'settings.modifyWillClearCache': 'Thay đổi sẽ xóa bộ nhớ cache',
'settings.appInfo': 'Thông tin ứng dụng',
'settings.aboutUs': 'Về chúng tôi',
'settings.appVersion': 'Phiên bản ứng dụng & Thông tin nhóm',
'settings.confirmClear': 'Xác nhận xóa',
'settings.confirmClearMessage': 'Bạn có chắc chắn muốn xóa toàn bộ bộ nhớ cache? Điều này sẽ xóa tất cả dữ liệu bao gồm trạng thái đăng nhập và yêu cầu đăng nhập lại.',
'settings.cacheCleared': 'Đã xóa bộ nhớ cache thành công, đang chuyển hướng đến trang đăng nhập',
'settings.languageSettings': 'Cài đặt ngôn ngữ',
'settings.language': 'Ngôn ngữ',
'settings.selectLanguage': 'Chọn ngôn ngữ',
'settings.languageChanged': 'Đã thay đổi ngôn ngữ thành công',
// Thông báo
'message.loginSuccess': 'Đăng nhập thành công!',
'message.loginFail': 'Đăng nhập thất bại',
'message.registerSuccess': 'Đăng ký thành công',
'message.registerFail': 'Đăng ký thất bại',
'message.saveSuccess': 'Lưu thành công',
'message.saveFail': 'Lưu thất bại',
'message.deleteSuccess': 'Xóa thành công',
'message.deleteFail': 'Xóa thất bại',
'message.bindSuccess': 'Liên kết thành công',
'message.bindFail': 'Liên kết thất bại',
'message.unbindSuccess': 'Hủy liên kết thành công',
'message.unbindFail': 'Hủy liên kết thất bại',
'message.networkError': 'Lỗi mạng, vui lòng kiểm tra kết nối',
'message.serverError': 'Lỗi máy chủ, vui lòng thử lại sau',
'message.invalidAddress': 'Địa chỉ không hợp lệ, vui lòng kiểm tra máy chủ đã khởi động hoặc kết nối mạng bình thường',
'message.languageChanged': 'Đã thay đổi ngôn ngữ',
'message.passwordError': 'Lỗi tài khoản hoặc mật khẩu',
'message.phoneRegistered': 'Số điện thoại này đã được đăng ký',
// Trang công cụ đại lý
'agent.tools.pageTitle': 'Công cụ đại lý',
'agent.tools.unselected': 'Chưa chọn',
'agent.tools.selected': 'Đã chọn',
'agent.tools.noMorePlugins': 'Không còn plugin',
'agent.tools.pleaseSelectPlugin': 'Vui lòng chọn chức năng plugin',
'agent.tools.builtInPlugins': 'Plugin tích hợp',
'agent.tools.mcpAccessPoint': 'Điểm truy cập MCP',
'agent.tools.copy': 'Sao chép',
'agent.tools.noTools': 'Không có công cụ nào',
'agent.tools.parameterConfig': 'Cấu hình tham số',
'agent.tools.noParamsNeeded': 'Không cần tham số',
'agent.tools.pleaseInput': 'Vui lòng nhập',
'agent.tools.inputOneItemPerLine': 'Nhập một mục mỗi dòng',
'agent.tools.pleaseInputValidJson': 'Vui lòng nhập định dạng JSON hợp lệ',
'agent.tools.enableFunction': 'Bật chức năng',
'agent.tools.toggleFunction': 'Bật hoặc tắt chức năng này',
'agent.tools.jsonFormatError': 'Lỗi định dạng JSON',
'agent.tools.noMcpAddressToCopy': 'Không có địa chỉ MCP để sao chép',
'agent.tools.mcpAddressCopied': 'Đã sao chép địa chỉ MCP vào bộ nhớ tạm',
'agent.tools.copyFailed': 'Sao chép thất bại, vui lòng thử lại',
'agent.tools.defaultValue': 'Giá trị mặc định',
'agent.tools.notSelected': 'Chưa chọn',
'agent.tools.clickToConfigure': 'Nhấp để cấu hình',
'agent.tools.mcpEndpoint': 'Điểm cuối MCP',
'agent.tools.eachLineOneItem': 'Nhập một mục mỗi dòng',
// Trang cấu hình thiết bị
'deviceConfig.pageTitle': 'Cấu hình thiết bị',
'deviceConfig.wifiConfig': 'Cấu hình WiFi',
'deviceConfig.ultrasonicConfig': 'Cấu hình siêu âm',
'deviceConfig.selectConfigMethod': 'Chọn phương pháp cấu hình',
'deviceConfig.networkConfig': 'Cấu hình mạng',
'deviceConfig.selectedNetwork': 'Mạng đã chọn',
'deviceConfig.signal': 'Tín hiệu',
'deviceConfig.openNetwork': 'Mạng mở',
'deviceConfig.encryptedNetwork': 'Mạng mã hóa',
'deviceConfig.password': 'Mật khẩu',
'deviceConfig.pleaseEnterPassword': 'Vui lòng nhập mật khẩu WiFi',
'deviceConfig.startConfig': 'Bắt đầu cấu hình',
'deviceConfig.connectToXiaozhiHotspot': 'Vui lòng kết nối với điểm phát sóng xiaozhi trước',
'deviceConfig.detecting': 'Đang phát hiện...',
'deviceConfig.reDetect': 'Phát hiện lại',
'deviceConfig.alreadyConnected': 'Đã kết nối với điểm phát sóng xiaozhi',
'deviceConfig.refreshStatus': 'Làm mới trạng thái',
'deviceConfig.wifiNetworks': 'Mạng WiFi',
'deviceConfig.selectWifiNetwork': 'Chọn mạng WiFi',
'deviceConfig.refreshScan': 'Làm mới quét',
'deviceConfig.noWifiNetworks': 'Không có mạng WiFi nào',
'deviceConfig.clickToRefreshScan': 'Vui lòng nhấp Làm mới quét',
'deviceConfig.signalStrong': 'Tín hiệu mạnh',
'deviceConfig.signalGood': 'Tín hiệu tốt',
'deviceConfig.signalFair': 'Tín hiệu trung bình',
'deviceConfig.signalWeak': 'Tín hiệu yếu',
'deviceConfig.channel': 'Kênh',
'deviceConfig.about': 'khoảng',
'deviceConfig.seconds': 'giây',
'deviceConfig.generating': 'Đang tạo...',
'deviceConfig.playing': 'Đang phát...',
'deviceConfig.generateAndPlaySoundWave': 'Tạo và phát sóng âm',
'deviceConfig.playSoundWave': 'Phát sóng âm',
'deviceConfig.stopPlaying': 'Dừng phát',
'deviceConfig.autoLoopPlaySoundWave': 'Tự động lặp phát sóng âm',
'deviceConfig.configAudioFile': 'Tệp âm thanh cấu hình',
'deviceConfig.duration': 'Thời lượng',
'deviceConfig.ultrasonicConfigInstructions': 'Hướng dẫn cấu hình siêu âm',
'deviceConfig.ensureWifiNetworkSelectedAndPasswordEntered': 'Đảm bảo mạng WiFi được chọn và mật khẩu đã nhập',
'deviceConfig.clickGenerateAndPlaySoundWave': 'Nhấp Tạo và phát sóng âm, hệ thống sẽ mã hóa thông tin cấu hình thành âm thanh',
'deviceConfig.bringPhoneCloseToXiaozhiDevice': 'Đưa điện thoại lại gần thiết bị xiaozhi (khoảng cách 1-2 mét)',
'deviceConfig.duringAudioPlaybackXiaozhiWillReceive': 'Trong khi phát âm thanh, xiaozhi sẽ nhận và giải mã thông tin cấu hình',
'deviceConfig.afterConfigSuccessDeviceWillConnect': 'Sau khi cấu hình thành công, thiết bị sẽ tự động kết nối với mạng WiFi',
'deviceConfig.usesAfskModulation': 'Sử dụng công nghệ điều chế AFSK, truyền dữ liệu qua tần số 1800Hz và 1500Hz',
'deviceConfig.ensureModeratePhoneVolume': 'Vui lòng đảm bảo âm lượng điện thoại vừa phải để tránh nhiễu tiếng ồn môi trường',
'deviceConfig.generatingUltrasonicConfigAudio': 'Đang tạo âm thanh cấu hình siêu âm',
'deviceConfig.configData': 'Dữ liệu cấu hình',
'deviceConfig.dataBytesLength': 'Độ dài byte dữ liệu',
'deviceConfig.bitStreamLength': 'Độ dài luồng bit',
'deviceConfig.base64Length': 'Độ dài base64',
'deviceConfig.audioFileTooLarge': 'Tệp âm thanh quá lớn, vui lòng rút ngắn SSID hoặc độ dài mật khẩu',
'deviceConfig.audioGenerationSuccess': 'Tạo âm thanh thành công',
'deviceConfig.samplePoints': 'Điểm mẫu',
'deviceConfig.soundWaveGenerationSuccess': 'Tạo sóng âm thành công',
'deviceConfig.audioGenerationFailed': 'Tạo âm thanh thất bại',
'deviceConfig.soundWaveGenerationFailed': 'Tạo sóng âm thất bại',
'deviceConfig.pleaseGenerateAudioFirst': 'Vui lòng tạo âm thanh trước',
'deviceConfig.startPlayingUltrasonicConfigAudio': 'Bắt đầu phát âm thanh cấu hình siêu âm',
'deviceConfig.ultrasonicAudioStartedPlaying': 'Đã bắt đầu phát âm thanh siêu âm',
'deviceConfig.startPlayingConfigSoundWave': 'Đã bắt đầu phát sóng âm cấu hình',
'deviceConfig.ultrasonicAudioPlaybackEnded': 'Kết thúc phát âm thanh siêu âm',
'deviceConfig.audioPlaybackFailed': 'Phát âm thanh thất bại',
'deviceConfig.audioResourceBusy': 'Tài nguyên âm thanh bận, vui lòng thử lại sau',
'deviceConfig.audioFormatNotSupported': 'Định dạng âm thanh không được hỗ trợ, có thể là vấn đề URI dữ liệu',
'deviceConfig.audioFileError': 'Lỗi tệp âm thanh',
'deviceConfig.cleaningUpAudioContext': 'Đang dọn dẹp ngữ cảnh âm thanh',
'deviceConfig.cleaningUpAudioContextFailed': 'Không thể dọn dẹp ngữ cảnh âm thanh',
'deviceConfig.stoppedPlayingUltrasonicAudio': 'Đã dừng phát âm thanh siêu âm',
'deviceConfig.stoppedPlaying': 'Đã dừng phát',
'deviceConfig.configMethod': 'Phương pháp cấu hình',
'deviceConfig.enterWifiPassword': 'Vui lòng nhập mật khẩu WiFi',
'deviceConfig.xiaozhi': 'xiaozhi',
'deviceConfig.connectXiaozhiHotspot': 'Vui lòng kết nối với điểm phát sóng xiaozhi',
'deviceConfig.wifiScanResponse': 'Phản hồi quét WiFi',
'deviceConfig.scanSuccess': 'Quét thành công',
'deviceConfig.networks': 'mạng',
'deviceConfig.wifiScanFailed': 'Quét WiFi thất bại',
'deviceConfig.scanFailedCheckConnection': 'Quét thất bại, vui lòng kiểm tra kết nối',
'deviceConfig.checking': 'Đang kiểm tra',
'deviceConfig.reCheck': 'Kiểm tra lại',
'deviceConfig.connectedXiaozhiHotspot': 'Đã kết nối với điểm phát sóng xiaozhi',
'deviceConfig.wifiNetwork': 'Mạng WiFi',
'deviceConfig.scanning': 'Đang quét',
'deviceConfig.cancel': 'Hủy',
'deviceConfig.clickRefreshScan': 'Vui lòng nhấp Làm mới quét',
'deviceConfig.esp32ConnectionCheckFailed': 'Kiểm tra kết nối ESP32 thất bại',
'deviceConfig.startWifiConfig': 'Đang bắt đầu cấu hình WiFi',
'deviceConfig.configSuccess': 'Cấu hình thành công',
'deviceConfig.deviceWillConnectTo': 'Thiết bị sẽ kết nối với',
'deviceConfig.deviceWillRestart': 'Thiết bị sẽ khởi động lại',
'deviceConfig.pleaseDisconnectXiaozhiHotspot': 'Vui lòng ngắt kết nối khỏi điểm phát sóng xiaozhi',
'deviceConfig.configFailed': 'Cấu hình thất bại',
'deviceConfig.wifiConfigFailed': 'Cấu hình WiFi thất bại',
'deviceConfig.pleaseCheckNetworkConnection': 'Vui lòng kiểm tra kết nối mạng',
'deviceConfig.startWifiConfigButton': 'Bắt đầu cấu hình',
'deviceConfig.wifiConfigInstructions': 'Hướng dẫn cấu hình WiFi',
'deviceConfig.phoneConnectXiaozhiHotspot': 'Điện thoại kết nối với điểm phát sóng xiaozhi',
'deviceConfig.selectTargetWifiNetwork': 'Chọn mạng WiFi mục tiêu',
'deviceConfig.enterWifiPasswordIfNeeded': 'Nhập mật khẩu WiFi nếu cần',
'deviceConfig.clickStartConfigAndWait': 'Nhấp Bắt đầu cấu hình và chờ',
'deviceConfig.afterConfigSuccessDeviceWillRestart': 'Sau khi cấu hình thành công, thiết bị sẽ tự động khởi động lại',
'deviceConfig.audioPlaybackError': 'Lỗi phát âm thanh',
'deviceConfig.playbackFailed': 'Phát thất bại',
}
+1 -2
View File
@@ -1,9 +1,8 @@
import { ref } from 'vue'
import { ref } from 'vue'
import { defineStore } from 'pinia'
// 支持的语言类型
export type Language = 'zh_CN' | 'en' | 'zh_TW'
export type Language = 'zh_CN' | 'en' | 'zh_TW' | 'de' | 'vi'
export interface LangStore {
currentLang: Language