export default {
  // Login page related prompt text
  'login.requiredUsername': 'Benutzername darf nicht leer sein',
  'login.requiredPassword': 'Passwort darf nicht leer sein',
  'login.requiredCaptcha': 'Captcha darf nicht leer sein',
  'login.requiredMobile': 'Bitte geben Sie eine gültige Handynummer ein',
  'login.loginSuccess': 'Anmeldung erfolgreich!',

  // HeaderBar component text
  'header.smartManagement': 'Agenten',
  'header.modelConfig': 'Modelle',
  'header.knowledgeBase': 'Wissen',
  'header.voiceCloneManagement': 'Stimmenklon',
  'header.voiceResourceManagement': 'Stimmressourcen',
  'header.userManagement': 'Benutzer',
  'header.otaManagement': 'OTA-Verwaltung',
  'header.paramDictionary': 'Mehr',
  'header.paramManagement': 'Parameterverwaltung',
  'header.dictManagement': 'Wörterbuchverwaltung',
  'header.agentTemplate': 'Standard-Rollenvorlagen',
  'header.searchHistory': 'Suchverlauf',
  'header.clearHistory': 'Verlauf löschen',
  'header.providerManagement': 'Anbieterverwaltung',
  'header.serverSideManagement': 'Serververwaltung',
  'header.featureManagement': 'Systemfunktionsverwaltung',
  'header.changePassword': 'Passwort ändern',
  'header.logout': 'Abmelden',
  'header.searchPlaceholder': 'Name, Tag oder Mac-Suche',

  // McpToolCallDialog component text
  'mcpToolCall.title': 'Werkzeugaufruf',
  'mcpToolCall.execute': 'Ausführen',
  'mcpToolCall.chooseFunction': '1、Funktion auswählen',
  'mcpToolCall.searchFunction': 'Funktion suchen',
  'mcpToolCall.noResults': 'Keine passenden Funktionen gefunden',
  'mcpToolCall.settings': '2、Parametereinstellungen',
  'mcpToolCall.inputPlaceholder': 'Bitte {label} eingeben',
  'mcpToolCall.valueRange': 'Wertebereich: {min} - {max}',
  'mcpToolCall.selectPlaceholder': 'Bitte {label} auswählen',
  'mcpToolCall.lightTheme': 'Helles Thema',
  'mcpToolCall.darkTheme': 'Dunkles Thema',
  'mcpToolCall.pleaseSelect': 'Bitte wählen Sie eine Funktion',
  'mcpToolCall.cancel': 'Abbrechen',
  'mcpToolCall.requiredField': 'Bitte {field} eingeben',
  'mcpToolCall.minValue': 'Mindestwert ist {value}',
  'mcpToolCall.maxValue': 'Höchstwert ist {value}',
  'mcpToolCall.selectTool': 'Bitte wählen Sie ein Werkzeug zur Ausführung',
  'mcpToolCall.executionResult': '3、Ausführungsergebnis',
  'mcpToolCall.copyResult': 'Ergebnis kopieren',
  'mcpToolCall.noResultYet': 'Noch kein Ergebnis',
  'mcpToolCall.loadingToolList': 'Werkzeugliste wird geladen...',

  // Tool names
  'mcpToolCall.toolName.getDeviceStatus': 'Gerätestatus anzeigen',
  'mcpToolCall.toolName.setVolume': 'Lautstärke einstellen',
  'mcpToolCall.toolName.setBrightness': 'Helligkeit einstellen',
  'mcpToolCall.toolName.setTheme': 'Thema einstellen',
  'mcpToolCall.toolName.takePhoto': 'Foto aufnehmen & Erkennen',
  'mcpToolCall.toolName.getSystemInfo': 'Systeminformationen',
  'mcpToolCall.toolName.reboot': 'Gerät neu starten',
  'mcpToolCall.toolName.upgradeFirmware': 'Firmware aktualisieren',
  'mcpToolCall.toolName.getScreenInfo': 'Bildschirminformationen',
  'mcpToolCall.toolName.snapshot': 'Bildschirmfoto',
  'mcpToolCall.toolName.previewImage': 'Bildvorschau',
  'mcpToolCall.toolName.setDownloadUrl': 'Download-URL festlegen',

  // Tool categories
  'mcpToolCall.category.audio': 'Audio',
  'mcpToolCall.category.display': 'Anzeige',
  'mcpToolCall.category.camera': 'Kamera',
  'mcpToolCall.category.system': 'System',
  'mcpToolCall.category.assets': 'Assets',
  'mcpToolCall.category.deviceInfo': 'Geräteinformationen',

  // Table categories and properties
  'mcpToolCall.table.audioSpeaker': 'Audio-Lautsprecher',
  'mcpToolCall.table.screen': 'Bildschirm',
  'mcpToolCall.table.network': 'Netzwerk',
  'mcpToolCall.table.audioControl': 'Audio-Steuerung',
  'mcpToolCall.table.screenControl': 'Bildschirmsteuerung',
  'mcpToolCall.table.systemControl': 'Systemsteuerung',
  'mcpToolCall.table.screenInfo': 'Bildschirminformationen',
  'mcpToolCall.table.hardwareInfo': 'Hardware-Informationen',
  'mcpToolCall.table.memoryInfo': 'Speicherinformationen',
  'mcpToolCall.table.applicationInfo': 'Anwendungsinformationen',
  'mcpToolCall.table.networkInfo': 'Netzwerkinformationen',
  'mcpToolCall.table.displayInfo': 'Anzeigeinformationen',
  'mcpToolCall.table.deviceInfo': 'Geräteinformationen',
  'mcpToolCall.table.systemInfo': 'Systeminformationen',
  // Table column headers
  'mcpToolCall.table.component': 'Komponente',
  'mcpToolCall.table.property': 'Eigenschaft',
  'mcpToolCall.table.value': 'Wert',

  'mcpToolCall.prop.volume': 'Lautstärke',
  'mcpToolCall.prop.brightness': 'Helligkeit',
  'mcpToolCall.prop.theme': 'Thema',
  'mcpToolCall.prop.type': 'Typ',
  'mcpToolCall.prop.ssid': 'SSID',
  'mcpToolCall.prop.signalStrength': 'Signalstärke',
  'mcpToolCall.prop.operationResult': 'Betriebsergebnis',
  'mcpToolCall.prop.width': 'Breite',
  'mcpToolCall.prop.height': 'Höhe',
  'mcpToolCall.prop.screenType': 'Typ',
  'mcpToolCall.prop.chipModel': 'Chip-Modell',
  'mcpToolCall.prop.cpuCores': 'CPU-Kerne',
  'mcpToolCall.prop.chipVersion': 'Chip-Version',
  'mcpToolCall.prop.flashSize': 'Flash-Größe',
  'mcpToolCall.prop.minFreeHeap': 'Minimaler freier Heap',
  'mcpToolCall.prop.applicationName': 'Anwendungsname',
  'mcpToolCall.prop.applicationVersion': 'Anwendungsversion',
  'mcpToolCall.prop.compileTime': 'Kompilierzeit',
  'mcpToolCall.prop.idfVersion': 'IDF-Version',
  'mcpToolCall.prop.macAddress': 'MAC-Adresse',
  'mcpToolCall.prop.ipAddress': 'IP-Adresse',
  'mcpToolCall.prop.wifiName': 'WiFi-Name',
  'mcpToolCall.prop.wifiChannel': 'WiFi-Kanal',
  'mcpToolCall.prop.screenSize': 'Bildschirmgröße',
  'mcpToolCall.prop.deviceUuid': 'Geräte-UUID',
  'mcpToolCall.prop.systemLanguage': 'Systemsprache',
  'mcpToolCall.prop.currentOtaPartition': 'Aktuelle OTA-Partition',
  'mcpToolCall.prop.getResult': 'Ergebnis abrufen',
  'mcpToolCall.prop.url': 'URL',
  'mcpToolCall.prop.quality': 'Qualität',
  'mcpToolCall.prop.question': 'Frage',

  // Tool help texts
  'mcpToolCall.help.getDeviceStatus': 'Aktuellen Betriebsstatus des Geräts anzeigen, einschließlich Lautstärke, Bildschirm, Batterie und anderen Informationen.',
  'mcpToolCall.help.setVolume': 'Lautstärke des Geräts anpassen, bitte einen Wert zwischen 0-100 eingeben.',
  'mcpToolCall.help.setBrightness': 'Helligkeit des Gerätebildschirms anpassen, bitte einen Wert zwischen 0-100 eingeben.',
  'mcpToolCall.help.setTheme': 'Anzeigethema des Gerätebildschirms wechseln, Sie können Hell- oder Dunkelmodus wählen.',
  'mcpToolCall.help.takePhoto': 'Fotos mit der Gerätekamera aufnehmen und Erkennungsanalyse durchführen, bitte geben Sie Ihre Frage ein.',
  'mcpToolCall.help.getSystemInfo': 'Systeminformationen des Geräts abrufen, einschließlich Hardwarespezifikationen, Softwareversion etc.',
  'mcpToolCall.help.reboot': 'Gerät neu starten, das Gerät wird nach Ausführung neu gestartet.',
  'mcpToolCall.help.upgradeFirmware': 'Gerätefirmware von der angegebenen URL herunterladen und aktualisieren, das Gerät startet nach der Aktualisierung automatisch neu.',
  'mcpToolCall.help.getScreenInfo': 'Detaillierte Informationen zum Bildschirm abrufen, wie Auflösung, Größe und andere Parameter.',
  'mcpToolCall.help.snapshot': 'Screenshot des aktuellen Bildschirms erstellen und an die angegebene URL hochladen.',
  'mcpToolCall.help.previewImage': 'Bilder von der angegebenen URL auf dem Gerätebildschirm in der Vorschau anzeigen.',
  'mcpToolCall.help.setDownloadUrl': 'Download-Adresse für Geräteressourcendateien festlegen.',

  // Other text
  'mcpToolCall.text.strong': 'Stark',
  'mcpToolCall.text.medium': 'Mittel',
  'mcpToolCall.text.weak': 'Schwach',
  'mcpToolCall.text.dark': 'Dunkel',
  'mcpToolCall.text.light': 'Hell',
  'mcpToolCall.text.setSuccess': 'Einstellung erfolgreich',
  'mcpToolCall.text.setFailed': 'Einstellung fehlgeschlagen',
  'mcpToolCall.text.brightnessSetSuccess': 'Helligkeitseinstellung erfolgreich',
  'mcpToolCall.text.brightnessSetFailed': 'Helligkeitseinstellung fehlgeschlagen',
  'mcpToolCall.text.themeSetSuccess': 'Themeneinstellung erfolgreich',
  'mcpToolCall.text.themeSetFailed': 'Themeneinstellung fehlgeschlagen',
  'mcpToolCall.text.rebootCommandSent': 'Neustartbefehl gesendet',
  'mcpToolCall.text.rebootFailed': 'Neustart fehlgeschlagen',
  'mcpToolCall.text.monochrome': 'Monochrom-Bildschirm',
  'mcpToolCall.text.color': 'Farbbildschirm',
  'mcpToolCall.text.getSuccessParseFailed': 'Abruf erfolgreich, aber Analyse fehlgeschlagen',
  'mcpToolCall.text.getFailed': 'Abruf fehlgeschlagen',
  'mcpToolCall.text.getSuccessFormatError': 'Abruf erfolgreich, aber Datenformat abnormal',

  // Dictionary data dialog related
  'dictDataDialog.addDictData': 'Wörterbuchdaten hinzufügen',
  'dictDataDialog.dictLabel': 'Wörterbuch-Label',
  'dictDataDialog.dictLabelPlaceholder': 'Bitte Wörterbuch-Label eingeben',
  'dictDataDialog.dictValue': 'Wörterbuch-Wert',
  'dictDataDialog.dictValuePlaceholder': 'Bitte Wörterbuch-Wert eingeben',
  'dictDataDialog.sort': 'Sortierung',
  'dictDataDialog.requiredDictLabel': 'Bitte Wörterbuch-Label eingeben',
  'dictDataDialog.requiredDictValue': 'Bitte Wörterbuch-Wert eingeben',

  // Dictionary type dialog related
  'dictTypeDialog.addDictType': 'Wörterbuchtyp hinzufügen',
  'dictTypeDialog.dictName': 'Wörterbuchtyp-Name',
  'dictTypeDialog.dictNamePlaceholder': 'Bitte Wörterbuchtyp-Namen eingeben',
  'dictTypeDialog.dictType': 'Wörterbuchtyp-Code',
  'dictTypeDialog.dictTypePlaceholder': 'Bitte Wörterbuchtyp-Code eingeben',
  'dictTypeDialog.requiredDictName': 'Bitte Wörterbuchtyp-Namen eingeben',
  'dictTypeDialog.requiredDictType': 'Bitte Wörterbuchtyp-Code eingeben',

  // Audio edit dialog related
  'editVoiceDialog.voiceCode': 'Stimmcode',
  'editVoiceDialog.voiceCodePlaceholder': 'Bitte Stimmcode eingeben',
  'editVoiceDialog.voiceName': 'Stimmname',
  'editVoiceDialog.voiceNamePlaceholder': 'Bitte Stimmnamen eingeben',
  'editVoiceDialog.languageType': 'Sprachtyp',
  'editVoiceDialog.languageTypePlaceholder': 'Bitte Sprachtyp eingeben',
  'editVoiceDialog.sortNumber': 'Sortiernummer',
  'editVoiceDialog.remark': 'Bemerkung',
  'editVoiceDialog.remarkPlaceholder': 'Bitte Bemerkungsinhalt eingeben',
  'editVoiceDialog.generatePreview': 'Vorschau generieren',
  'editVoiceDialog.defaultVoiceName': 'Wawa Xiaohe',
  'editVoiceDialog.defaultLanguageType': 'Chinesisch',
  'editVoiceDialog.requiredVoiceCode': 'Bitte Stimmcode eingeben',
  'editVoiceDialog.requiredVoiceName': 'Bitte Stimmnamen eingeben',

  // Firmware dialog related
  'firmwareDialog.firmwareName': 'Firmware-Name',
  'firmwareDialog.firmwareNamePlaceholder': 'Bitte Firmware-Namen eingeben (Board + Version)',
  'firmwareDialog.firmwareType': 'Firmware-Typ',
  'firmwareDialog.firmwareTypePlaceholder': 'Bitte Firmware-Typ auswählen',
  'firmwareDialog.version': 'Version',
  'firmwareDialog.versionPlaceholder': 'Bitte Version eingeben (x.x.x Format)',
  'firmwareDialog.firmwareFile': 'Firmware-Datei',
  'firmwareDialog.clickUpload': 'Zum Hochladen klicken',
  'firmwareDialog.uploadTip': 'Nur Firmware-Dateien (.bin/.apk) werden unterstützt, Größe sollte 100MB nicht überschreiten',
  'firmwareDialog.uploadHint': 'Hinweis: Bitte die vorab zusammengeführte xiaozhi.bin-Datei hochladen, nicht die zusammengeführte merged-binary.bin-Datei',
  'firmwareDialog.remark': 'Bemerkung',
  'firmwareDialog.remarkPlaceholder': 'Bitte Bemerkungsinformationen eingeben',
  'firmwareDialog.requiredFirmwareName': 'Bitte Firmware-Namen eingeben (Board + Version)',
  'firmwareDialog.requiredFirmwareType': 'Bitte Firmware-Typ auswählen',
  'firmwareDialog.requiredVersion': 'Bitte Version eingeben',
  'firmwareDialog.versionFormatError': 'Versionsformat falsch, bitte x.x.x Format eingeben',
  'firmwareDialog.requiredFirmwareFile': 'Bitte Firmware-Datei hochladen',
  'firmwareDialog.invalidFileType': 'Nur .bin/.apk Format-Firmware-Dateien werden unterstützt!',
  'firmwareDialog.invalidFileSize': 'Firmware-Dateigröße darf 100MB nicht überschreiten!',
  'firmwareDialog.uploadSuccess': 'Firmware-Datei erfolgreich hochgeladen',
  'firmwareDialog.uploadFailed': 'Datei-Upload fehlgeschlagen',

  // Voice print dialog related
  'voicePrintDialog.addSpeaker': 'Sprecher hinzufügen',
  'voicePrintDialog.voicePrintVector': 'Stimmabdruck-Vektor',
  'voicePrintDialog.selectVoiceMessage': 'Bitte wählen Sie eine Sprachnachricht',
  'voicePrintDialog.name': 'Name',
  'voicePrintDialog.enterName': 'Bitte Namen eingeben',
  'voicePrintDialog.description': 'Beschreibung',
  'voicePrintDialog.enterDescription': 'Bitte Beschreibung eingeben',
  'voicePrintDialog.save': 'Speichern',
  'voicePrintDialog.cancel': 'Abbrechen',
  'voicePrintDialog.requiredDescription': 'Bitte Beschreibung eingeben',
  'voicePrintDialog.requiredName': 'Bitte Namen eingeben',
  'voicePrintDialog.requiredAudioVector': 'Bitte Audio-Vektor auswählen',

  // Context provider dialog related
  'contextProviderDialog.title': 'Quelle bearbeiten',
  'contextProviderDialog.noContextApi': 'Keine Kontext-API',
  'contextProviderDialog.add': 'Hinzufügen',
  'contextProviderDialog.apiUrl': 'API-URL',
  'contextProviderDialog.apiUrlPlaceholder': 'http://api.example.com/data',
  'contextProviderDialog.requestHeaders': 'Anfrage-Header',
  'contextProviderDialog.headerKeyPlaceholder': 'Schlüssel',
  'contextProviderDialog.headerValuePlaceholder': 'Wert',
  'contextProviderDialog.noHeaders': 'Keine Headers',
  'contextProviderDialog.addHeader': 'Header hinzufügen',
  'contextProviderDialog.cancel': 'Abbrechen',
  'contextProviderDialog.confirm': 'Bestätigen',

  // Role config page - context provider related
  'roleConfig.contextProvider': 'Kontext',
  'roleConfig.contextProviderSuccess': '{count} Quellen erfolgreich hinzugefügt.',
  'roleConfig.contextProviderDocLink': 'Wie man Kontextquellen bereitstellt',
  'roleConfig.editContextProvider': 'Quelle bearbeiten',

  // Voice print page related
  'voicePrint.pageTitle': 'Stimmabdruck-Erkennung',
  'voicePrint.name': 'Name',
  'voicePrint.description': 'Beschreibung',
  'voicePrint.createTime': 'Erstellungszeit',
  'voicePrint.action': 'Aktion',
  'voicePrint.edit': 'Bearbeiten',
  'voicePrint.delete': 'Löschen',
  'voicePrint.add': 'Hinzufügen',
  'voicePrint.addSpeaker': 'Sprecher hinzufügen',
  'voicePrint.editSpeaker': 'Sprecher bearbeiten',
  'voicePrint.fetchFailed': 'Stimmabdruck-Liste konnte nicht abgerufen werden',
  'voicePrint.updateSuccess': 'Aktualisierung erfolgreich',
  'voicePrint.addSuccess': 'Hinzufügen erfolgreich',
  'voicePrint.confirmDelete': 'Sind Sie sicher, dass Sie diesen Stimmabdruck löschen möchten?',
  'voicePrint.warning': 'Warnung',
  'voicePrint.confirm': 'Bestätigen',
  'voicePrint.cancel': 'Abbrechen',
  'voicePrint.deleteSuccess': 'Stimmabdruck erfolgreich gelöscht',
  'voicePrint.deleteFailed': 'Löschen fehlgeschlagen, bitte versuchen Sie es erneut',
  'voicePrint.cancelDelete': 'Löschvorgang abgebrochen',
  'voicePrint.closeOperation': 'Vorgang geschlossen',
  'voicePrint.loading': 'Lädt...',

  // Manual add device dialog related
  'manualAddDeviceDialog.title': 'Manuell Gerät hinzufügen',
  'manualAddDeviceDialog.deviceType': 'Gerätetyp',
  'manualAddDeviceDialog.deviceTypePlaceholder': 'Bitte Gerätetyp auswählen',
  'manualAddDeviceDialog.firmwareVersion': 'Firmware-Version',
  'manualAddDeviceDialog.firmwareVersionPlaceholder': 'Bitte Firmware-Version eingeben',
  'manualAddDeviceDialog.macAddress': 'Mac-Adresse',
  'manualAddDeviceDialog.macAddressPlaceholder': 'Bitte Mac-Adresse eingeben',
  'manualAddDeviceDialog.confirm': 'Bestätigen',
  'manualAddDeviceDialog.cancel': 'Abbrechen',
  'manualAddDeviceDialog.requiredMacAddress': 'Bitte Mac-Adresse eingeben',
  'manualAddDeviceDialog.invalidMacAddress': 'Bitte korrektes Mac-Adressformat eingeben, z.B.: 00:1A:2B:3C:4D:5E',
  'manualAddDeviceDialog.requiredDeviceType': 'Bitte Gerätetyp auswählen',
  'manualAddDeviceDialog.requiredFirmwareVersion': 'Bitte Firmware-Version eingeben',
  'manualAddDeviceDialog.getFirmwareTypeFailed': 'Firmware-Typ konnte nicht abgerufen werden',
  'manualAddDeviceDialog.addSuccess': 'Gerät erfolgreich hinzugefügt',
  'manualAddDeviceDialog.addFailed': 'Hinzufügen fehlgeschlagen',

  // AddModelDialog component related
  'addModelDialog.requiredSupplier': 'Bitte wählen Sie einen Anbieter',

  // Register page related
  'register.title': 'Konto erstellen',
  'register.welcome': 'Willkommen bei XiaoZhi AI',
  'register.usernamePlaceholder': 'Bitte Benutzernamen eingeben',
  'register.mobilePlaceholder': 'Bitte Handynummer eingeben',
  'register.captchaPlaceholder': 'Bitte Captcha eingeben',
  'register.mobileCaptchaPlaceholder': 'Bitte SMS-Bestätigungscode eingeben',
  'register.passwordPlaceholder': 'Bitte Passwort festlegen',
  'register.confirmPasswordPlaceholder': 'Bitte Passwort bestätigen',
  'register.goToLogin': 'Bereits ein Konto? Anmelden',
  'register.registerButton': 'Registrieren',
  'register.agreeTo': 'Durch Registrierung stimmen Sie unseren',
  'register.userAgreement': 'Nutzungsbedingungen',
  'register.privacyPolicy': 'Datenschutzrichtlinie',
  'register.notAllowRegister': 'Benutzerregistrierung nicht erlaubt',
  'register.captchaLoadFailed': 'Captcha konnte nicht geladen werden',
  'register.inputCaptcha': 'Bitte Captcha eingeben',
  'register.inputCorrectMobile': 'Bitte korrekte Handynummer eingeben',
  'register.captchaSendSuccess': 'Bestätigungscode erfolgreich gesendet',
  'register.captchaSendFailed': 'Senden des Bestätigungscodes fehlgeschlagen',
  'register.passwordsNotMatch': 'Passwörter stimmen nicht überein',
  'register.registerSuccess': 'Registrierung erfolgreich!',
  'register.registerFailed': 'Registrierung fehlgeschlagen',
  'register.requiredUsername': 'Benutzername darf nicht leer sein',
  'register.requiredPassword': 'Passwort darf nicht leer sein',
  'register.requiredCaptcha': 'Captcha darf nicht leer sein',
  'register.requiredMobileCaptcha': 'Bitte SMS-Bestätigungscode eingeben',
  'register.invalidCaptcha': 'Ungültiger Bestätigungscode',
  'register.passwordLength': 'Passwortlänge muss zwischen 6-20 Zeichen liegen',
  'register.usernameFormat': 'Ungültiges Benutzernamenformat',
  'register.confirmPasswordRequired': 'Bestätigungspasswort darf nicht leer sein',
  'register.sendCaptcha': 'Bestätigungscode erhalten',
  'register.secondsLater': 'Sekunden später',

  // Parameter dialog related
  'paramDialog.paramCode': 'Parameter-Code',
  'paramDialog.paramCodePlaceholder': 'Bitte Parameter-Code eingeben',
  'paramDialog.paramValue': 'Parameter-Wert',
  'paramDialog.paramValuePlaceholder': 'Bitte Parameter-Wert eingeben',
  'paramDialog.valueType': 'Werttyp',
  'paramDialog.valueTypePlaceholder': 'Bitte Werttyp auswählen',
  'paramDialog.remark': 'Bemerkung',
  'paramDialog.remarkPlaceholder': 'Bitte Bemerkung eingeben',
  'paramDialog.save': 'Speichern',
  'paramDialog.cancel': 'Abbrechen',
  'paramDialog.requiredParamCode': 'Bitte Parameter-Code eingeben',
  'paramDialog.requiredParamValue': 'Bitte Parameter-Wert eingeben',
  'paramDialog.requiredValueType': 'Bitte Werttyp auswählen',
  'paramDialog.stringType': 'Zeichenkette',
  'paramDialog.numberType': 'Zahl',
  'paramDialog.booleanType': 'Boolesch',
  'paramDialog.arrayType': 'Array',
  'paramDialog.jsonType': 'JSON-Objekt',

  // Login page text
  'login.title': 'Anmelden',
  'login.welcome': 'WILLKOMMEN ZUR ANMELDUNG',
  'login.username': 'Benutzername',
  'login.usernamePlaceholder': 'Bitte Benutzernamen eingeben',
  'login.mobilePlaceholder': 'Bitte Handynummer eingeben',
  'login.password': 'Passwort',
  'login.passwordPlaceholder': 'Bitte Passwort eingeben',
  'login.captchaPlaceholder': 'Bitte Bestätigungscode eingeben',
  'login.loginButton': 'Anmelden',
  'login.login': 'Anmelden',
  'login.register': 'Registrieren',
  'login.forgotPassword': 'Passwort vergessen',
  'login.forgetPassword': 'Passwort vergessen?',
  'login.mobileLogin': 'Handy-Anmeldung',
  'login.usernameLogin': 'Benutzername-Anmeldung',
  'login.agreeTo': 'Anmeldung bedeutet Zustimmung zu',
  'login.userAgreement': 'Nutzungsbedingungen',
  'login.and': 'und',
  'login.privacyPolicy': 'Datenschutzrichtlinie',
  'login.registerAccount': 'Konto registrieren',

  // Retrieve password page text
  'retrievePassword.title': 'Passwort zurücksetzen',
  'retrievePassword.welcome': 'PASSWORTWIEDERHERSTELLUNG',
  'retrievePassword.subtitle': 'Passwort wiederherstellen',
  'retrievePassword.mobile': 'Handy',
  'retrievePassword.mobilePlaceholder': 'Bitte Handynummer eingeben',
  'retrievePassword.captcha': 'Bestätigungscode',
  'retrievePassword.captchaPlaceholder': 'Bitte Bestätigungscode eingeben',
  'retrievePassword.mobileCaptcha': 'Handy-Bestätigungscode',
  'retrievePassword.mobileCaptchaPlaceholder': 'Bitte Handy-Bestätigungscode eingeben',
  'retrievePassword.newPassword': 'Neues Passwort',
  'retrievePassword.newPasswordPlaceholder': 'Bitte neues Passwort eingeben',
  'retrievePassword.confirmNewPassword': 'Neues Passwort bestätigen',
  'retrievePassword.confirmNewPasswordPlaceholder': 'Bitte neues Passwort bestätigen',
  'retrievePassword.getMobileCaptcha': 'Bestätigungscode erhalten',
  'retrievePassword.resetButton': 'Passwort zurücksetzen',
  'retrievePassword.updateButton': 'Jetzt aktualisieren',
  'retrievePassword.goToLogin': 'Zurück zur Anmeldung',
  'retrievePassword.inputCorrectMobile': 'Bitte korrekte Handynummer eingeben',
  'retrievePassword.captchaSendSuccess': 'Bestätigungscode erfolgreich gesendet',
  'retrievePassword.passwordsNotMatch': 'Die beiden Passwörter stimmen nicht überein',
  'retrievePassword.passwordLength': 'Passwortlänge muss zwischen 6-20 Zeichen liegen',
  'retrievePassword.mobileRequired': 'Handynummer darf nicht leer sein',
  'retrievePassword.captchaRequired': 'Bestätigungscode darf nicht leer sein',
  'retrievePassword.mobileCaptchaRequired': 'Handy-Bestätigungscode darf nicht leer sein',
  'retrievePassword.newPasswordRequired': 'Neues Passwort darf nicht leer sein',
  'retrievePassword.confirmNewPasswordRequired': 'Bestätigungspasswort darf nicht leer sein',
  'retrievePassword.passwordUpdateSuccess': 'Passwort erfolgreich aktualisiert',
  'retrievePassword.agreeTo': 'Zurücksetzen bedeutet Zustimmung',

  // Change password page text
  'changePassword.title': 'Passwort ändern',
  'changePassword.oldPasswordLabel': 'Altes Passwort:',
  'changePassword.oldPasswordPlaceholder': 'Bitte altes Passwort eingeben',
  'changePassword.newPasswordLabel': 'Neues Passwort:',
  'changePassword.newPasswordPlaceholder': 'Bitte neues Passwort eingeben',
  'changePassword.confirmPasswordLabel': 'Neues Passwort bestätigen:',
  'changePassword.confirmPasswordPlaceholder': 'Bitte neues Passwort erneut eingeben',
  'changePassword.confirmButton': 'Bestätigen',
  'changePassword.cancelButton': 'Abbrechen',
  'changePassword.allFieldsRequired': 'Bitte füllen Sie alle Felder aus',
  'changePassword.passwordsNotMatch': 'Die beiden neuen Passwörter stimmen nicht überein',
  'changePassword.newPasswordSameAsOld': 'Neues Passwort darf nicht gleich dem alten sein',
  'changePassword.passwordChangedSuccessfully': 'Passwort erfolgreich geändert, bitte melden Sie sich erneut an',
  'changePassword.changeFailed': 'Passwortänderung fehlgeschlagen',

  // Device management page text
  'device.management': 'Geräteverwaltung',
  'device.add': 'Gerät hinzufügen',
  'device.edit': 'Gerät bearbeiten',
  'device.delete': 'Gerät löschen',
  'device.name': 'Gerätename',
  'device.type': 'Gerätetyp',
  'device.status': 'Gerätestatus',
  'device.dialogTitle': 'Gerät hinzufügen',
  'device.verificationCode': 'Bestätigungscode:',
  'device.verificationCodePlaceholder': 'Bitte den 6-stelligen Bestätigungscode eingeben, der vom Gerät gesendet wird..',
  'device.confirmButton': 'Bestätigen',
  'device.cancelButton': 'Abbrechen',
  'device.input6DigitCode': 'Bitte 6-stelligen Bestätigungscode eingeben',
  'device.bindSuccess': 'Gerätebindung erfolgreich',
  'device.bindFailed': 'Bindung fehlgeschlagen',
  'device.searchPlaceholder': 'Bitte Gerätemodell oder Mac-Adresse zur Suche eingeben',
  'device.model': 'Gerätemodell',
  'device.macAddress': 'Mac-Adresse',
  'device.firmwareVersion': 'Firmware-Version',
  'device.bindTime': 'Bindungszeit',
  'device.lastConversation': 'Letzte Konversation',
  'device.remark': 'Bemerkung',
  'device.autoUpdate': 'Automatische Aktualisierung',
  'device.operation': 'Operation',
  'device.search': 'Suchen',
  'device.selectAll': 'Alle auswählen/Abwählen',
  'deviceManagement.loading': 'Lädt...',
  'device.bindWithCode': '6-stelliger Bestätigungscode-Bindung',
  'device.manualAdd': 'Manuell hinzufügen',
  'device.unbind': 'Bindung aufheben',
  'device.deviceThemeGeneration': 'Gerätethema erstellen',
  'device.toolCall': 'Werkzeugaufruf',
  'device.selectAtLeastOne': 'Bitte wählen Sie mindestens einen Datensatz aus',
  'device.confirmBatchUnbind': 'Sind Sie sicher, dass Sie {count} ausgewählte Geräte entbinden möchten?',
  'device.batchUnbindSuccess': 'Erfolgreich {count} Geräte entbunden',
  'device.batchUnbindError': 'Fehler beim Massen-Entbinden aufgetreten',
  'device.remarkTooLong': 'Bemerkung darf 64 Zeichen nicht überschreiten',
  'device.remarkSaved': 'Bemerkung erfolgreich gespeichert',
  'device.remarkSaveFailed': 'Speichern der Bemerkung fehlgeschlagen',
  'device.confirmUnbind': 'Sind Sie sicher, dass Sie dieses Gerät entbinden möchten?',
  'device.unbindSuccess': 'Gerät erfolgreich entbunden',
  'device.unbindFailed': 'Entbinden des Geräts fehlgeschlagen',
  'device.getListFailed': 'Geräteliste konnte nicht abgerufen werden',
  'device.autoUpdateEnabled': 'Automatische Aktualisierung aktiviert',
  'device.autoUpdateDisabled': 'Automatische Aktualisierung deaktiviert',
  'device.getFirmwareTypeFailed': 'Firmware-Typ konnte nicht abgerufen werden',
  'device.deviceStatus': 'Status',
  'device.online': 'Online',
  'device.offline': 'Offline',

  // Message tips
  'message.success': 'Operation erfolgreich',
  'message.error': 'Operation fehlgeschlagen',
  'message.warning': 'Warnung',
  'message.info': 'Information',

  // Cache related
  'cache.viewer': 'Cache-Betrachter',

  // Chat history dialog related
  'chatHistory.with': 'Mit',
  'chatHistory.dialogTitle': "'s Chat-Verlauf",
  'chatHistory.loading': 'Lädt...',
  'chatHistory.noMoreRecords': 'Keine weiteren Datensätze',
  'chatHistory.selectSession': 'Bitte wählen Sie eine Sitzung aus, um den Chat-Verlauf anzuzeigen',
  'chatHistory.today': 'Heute',
  'chatHistory.yesterday': 'Gestern',
  'chatHistory.downloadCurrentSession': 'Aktuelle Sitzung Chat-Verlauf herunterladen',
  'chatHistory.downloadCurrentWithPreviousSessions': 'Aktuelle und vorherige 20 Sitzungen Chat-Verlauf herunterladen',
  'chatHistory.downloadLinkFailed': 'Download-Link konnte nicht abgerufen werden',

  'cache.status': 'Cache-Status',
  'cache.cdnEnabled': 'CDN-Modus aktiviert',
  'cache.cdnDisabled': 'CDN-Modus deaktiviert',
  'cache.serviceWorkerRegistered': 'Service Worker registriert',
  'cache.serviceWorkerNotRegistered': 'Service Worker nicht registriert',
  'cache.noCacheDetected': 'Noch kein Cache erkannt, bitte Seite aktualisieren oder auf Cache-Einrichtung warten',
  'cache.swDevEnvWarning': 'In Entwicklungsumgebung kann Service Worker Cache möglicherweise nicht korrekt initialisieren',
  'cache.swCheckMethods': 'Bitte versuchen Sie folgende Methoden, um zu prüfen, ob Service Worker funktioniert:',
  'cache.swCheckMethod1': 'Service Worker-Status in Application/Application-Tab der Entwicklertools prüfen',
  'cache.swCheckMethod2': 'Cache-Inhalt in Application/Cache/Cache Storage der Entwicklertools anzeigen',
  'cache.swCheckMethod3': 'Produktions-Build (npm run build) verwenden und über HTTP-Server aufrufen, um volle Funktionalität zu testen',
  'cache.swDevEnvNormal': 'In Entwicklungsumgebung ist dies normal',
  'cache.swProdOnly': 'Service Worker funktioniert normalerweise nur in Produktionsumgebung',
  'cache.swTestingTitle': 'Um Service Worker-Funktionalität zu testen:',
  'cache.swTestingStep1': 'Führen Sie npm run build aus, um Produktionsversion zu erstellen',
  'cache.swTestingStep2': 'Rufen Sie die gebaute Seite über HTTP-Server auf',
  'cache.swNotSupported': 'Der aktuelle Browser unterstützt Service Worker nicht, CDN-Ressourcen-Caching-Funktion nicht verfügbar',
  'cache.dialogTitle': 'CDN-Ressourcen-Cache-Status',
  'cache.loading': 'Cache-Informationen werden geladen...',
  'cache.notSupported': 'Ihr Browser unterstützt Cache API nicht oder Service Worker ist nicht installiert',
  'cache.refreshPage': 'Seite aktualisieren',
  'cache.noCachedResources': 'Keine gecachten CDN-Ressourcen gefunden',
  'cache.noCachedResourcesDesc': 'Service Worker hat möglicherweise die Initialisierung nicht abgeschlossen oder Cache wurde noch nicht eingerichtet. Bitte Seite aktualisieren oder später erneut versuchen.',
  'cache.cdnCacheStatus': 'CDN-Ressourcen-Cache-Status',
  'cache.totalCachedResources': 'Insgesamt {count} gecachte Ressourcen gefunden',
  'cache.jsResources': 'JavaScript-Ressourcen ({count})',
  'cache.cssResources': 'CSS-Ressourcen ({count})',
  'cache.cached': 'Gecached',
  'cache.notCached': 'Nicht gecached',
  'cache.refreshStatus': 'Cache-Status aktualisieren',
  'cache.clearCache': 'Cache leeren',
  'cache.refreshingStatus': 'Cache-Status wird aktualisiert',
  'cache.confirmClear': 'Sind Sie sicher, dass Sie den gesamten Cache leeren möchten?',
  'cache.clearedSuccess': 'Cache erfolgreich geleert',
  'cache.clearFailed': 'Cache-Leeren fehlgeschlagen',
  'cache.clearCanceled': 'Leer-Vorgang abgebrochen',

  // Common buttons
  'button.ok': 'OK',
  'button.cancel': 'Abbrechen',
  'button.save': 'Speichern',
  'button.close': 'Schließen',

  // System information
  'system.name': 'XiaoZhi Service',

  // Voiceprint related
  'voiceprint.management': 'Stimmabdruckverwaltung',
  'voiceprint.add': 'Stimmabdruck hinzufügen',
  'voiceprint.delete': 'Stimmabdruck löschen',

  // Dictionary management page text
  'dictManagement.pageTitle': 'Wörterbuchverwaltung',
  'dictManagement.searchPlaceholder': 'Bitte Wörterbuchwert-Label zur Suche eingeben',
  'dictManagement.search': 'Suchen',
  'dictManagement.dictTypeName': 'WDT-Name',
  'dictManagement.operation': 'Operation',
  'dictManagement.edit': 'Bearbeiten',
  'dictManagement.dictLabel': 'Wörterbuch-Label',
  'dictManagement.dictValue': 'Wörterbuch-Wert',
  'dictManagement.sort': 'Sortierung',
  'dictManagement.delete': 'Löschen',
  'dictManagement.selectAll': 'Alle auswählen',
  'dictManagement.deselectAll': 'Alle abwählen',
  'dictManagement.addDictType': 'WDT hinzufügen',
  'dictManagement.batchDeleteDictType': 'WDT massenhaft löschen',
  'dictManagement.addDictData': 'WDT hinzufügen',
  'dictManagement.batchDeleteDictData': 'WDT massenhaft löschen',
  'dictManagement.itemsPerPage': '{items} Einträge/Seite',
  'dictManagement.firstPage': 'Erste Seite',
  'dictManagement.prevPage': 'Vorherige Seite',
  'dictManagement.nextPage': 'Nächste Seite',
  'dictManagement.totalRecords': 'Insgesamt {total} Datensätze',
  'dictManagement.editDictType': 'Wörterbuchtyp bearbeiten',
  'dictManagement.editDictData': 'Wörterbuchdaten bearbeiten',
  'dictManagement.saveSuccess': 'Speichern erfolgreich',
  'dictManagement.deleteSuccess': 'Löschen erfolgreich',
  'dictManagement.selectDictTypeToDelete': 'Bitte wählen Sie Wörterbuchtypen zum Löschen aus',
  'dictManagement.confirmDeleteDictType': 'Sind Sie sicher, dass Sie die ausgewählten Wörterbuchtypen löschen möchten?',
  'dictManagement.confirm': 'Bestätigen',
  'dictManagement.cancel': 'Abbrechen',
  'dictManagement.selectDictTypeFirst': 'Bitte wählen Sie zuerst einen Wörterbuchtyp aus',
  'dictManagement.confirmDeleteDictData': 'Sind Sie sicher, dass Sie diese Wörterbuchdaten löschen möchten?',
  'dictManagement.selectDictDataToDelete': 'Bitte wählen Sie Wörterbuchdaten zum Löschen aus',
  'dictManagement.confirmBatchDeleteDictData': 'Sind Sie sicher, dass Sie {count} ausgewählte Wörterbuchdaten löschen möchten?',
  'dictManagement.getDictDataFailed': 'Wörterbuchdaten konnten nicht abgerufen werden',

  // User information
  'user.info': 'Benutzerinformationen',
  'user.username': 'Benutzername',
  'user.mobile': 'Handy',
  'user.userid': 'Benutzer-ID',
  'user.deviceCount': 'Geräteanzahl',
  'user.createDate': 'Registrierungszeit',
  'user.status': 'Status',
  'user.normal': 'Normal',
  'user.disabled': 'Deaktiviert',
  'user.resetPassword': 'Passwort zurücksetzen',
  'user.disableAccount': 'Konto deaktivieren',
  'user.enableAccount': 'Konto aktivieren',
  'user.deleteUser': 'Benutzer löschen',
  'user.deselectAll': 'Alle abwählen',
  'user.selectAll': 'Alle auswählen',
  'user.enable': 'Aktivieren',
  'user.disable': 'Deaktivieren',
  'user.delete': 'Löschen',
  'user.selectUsersFirst': 'Bitte wählen Sie zuerst Benutzer zum Löschen aus',
  'user.confirmDeleteSelected': 'Sind Sie sicher, dass Sie {count} ausgewählte Benutzer löschen möchten?',
  'user.deleting': 'Löscht...',
  'user.deleteSuccess': 'Erfolgreich {count} Benutzer gelöscht',
  'user.deleteFailed': 'Löschen fehlgeschlagen, bitte versuchen Sie es erneut',
  'user.partialDelete': 'Erfolgreich {successCount} Benutzer gelöscht, {failCount} fehlgeschlagen',
  'user.deleteError': 'Fehler beim Löschen aufgetreten',
  'user.deleteCancelled': 'Löschen abgebrochen',
  'user.confirmResetPassword': 'Ein neues Passwort wird nach dem Zurücksetzen generiert. Fortfahren?',
  'user.resetPasswordSuccess': 'Passwort wurde zurückgesetzt, bitte benachrichtigen Sie den Benutzer, sich mit dem neuen Passwort anzumelden',
  'user.generatedPassword': 'Generiertes Standardpasswort',
  'user.confirmDeleteUser': 'Sind Sie sicher, dass Sie diesen Benutzer löschen möchten?',
  'user.deleteUserSuccess': 'Löschen erfolgreich',
  'user.operationFailed': 'Operation fehlgeschlagen, bitte versuchen Sie es erneut',
  'user.confirmStatusChange': 'Sind Sie sicher, dass Sie {count} ausgewählte Benutzer {action} möchten?',
  'user.statusChangeSuccess': 'Erfolgreich {count} Benutzer {action}',
  'user.invalidUserId': 'Es gibt ungültige Benutzer-IDs',
  'user.searchPhone': 'Bitte Handynummer zur Suche eingeben',
  'user.search': 'Suchen',

  // Provider Management Page Text
  'providerManagement.categoryFilter': 'Kategoriefilter',
  'providerManagement.searchPlaceholder': 'Bitte Anbieternamen zur Suche eingeben',
  'providerManagement.category': 'Kategorie',
  'providerManagement.providerCode': 'Anbieter-Code',
  'providerManagement.fieldConfig': 'Feldkonfiguration',
  'providerManagement.selectToDelete': 'Bitte wählen Sie zuerst Anbieter zum Löschen aus',
  'providerManagement.confirmDelete': 'Sind Sie sicher, dass Sie die ausgewählten {count} Anbieter löschen möchten?',
  'providerManagement.viewFields': 'Felder anzeigen',

  // Common Text
  'common.all': 'Alle',
  'common.search': 'Suchen',
  'common.name': 'Name',
  'common.sort': 'Sortierung',
  'common.action': 'Aktion',
  'common.edit': 'Bearbeiten',
  'common.delete': 'Löschen',
  'common.selectAll': 'Alle auswählen',
  'common.deselectAll': 'Alle abwählen',
  'common.add': 'Hinzufügen',
  'common.perPage': '{number}/Seite',
  'common.firstPage': 'Erste Seite',
  'common.prevPage': 'Vorherige Seite',
  'common.nextPage': 'Nächste Seite',
  'common.totalRecords': 'Insgesamt {number} Datensätze',
  'common.addProvider': 'Anbieter hinzufügen',
  'common.success': 'Erfolg',
  'common.editProvider': 'Anbieter bearbeiten',
  'common.updateSuccess': 'Aktualisierung erfolgreich',
  'common.addSuccess': 'Hinzufügen erfolgreich',
  'common.deleteSuccess': 'Löschen erfolgreich',
  'common.deleteFailure': 'Löschen fehlgeschlagen, bitte versuchen Sie es erneut',
  'common.deleteCancelled': 'Löschen abgebrochen',
  'common.warning': 'Warnung',
  'common.tip': 'Hinweis',
  'common.confirm': 'Bestätigen',
  'common.cancel': 'Abbrechen',
  'common.sensitive': 'Sensibel',
  'common.loading': 'Lädt',

  // Language switch
  'language.zhCN': '中文简体',
  'language.zhTW': '中文繁體',
  'language.en': 'English',
  'language.de': 'Deutsch',
  'language.vi': 'Tiếng Việt',
  'language.ptBR': 'Português (Brasil)',

  // Home page text
  'home.addAgent': 'Agent hinzufügen',
  'home.greeting': 'Hallo XiaoZhi',
  'home.wish': 'Lassen Sie uns einen wunderbaren Tag haben!',
  'home.languageModel': 'LLM',
  'home.voiceModel': 'TTS',
  'home.configureRole': 'Rolle konf.',
  'home.voiceprintRecognition': 'Stimmabdruck',
  'home.deviceManagement': 'Geräte',
  'home.chatHistory': 'Chat-Verlauf',
  'home.lastConversation': 'Letzte Konversation',
  'home.noConversation': 'Keine Konversation',
  'home.justNow': 'Gerade eben',
  'home.minutesAgo': 'Vor {minutes} Minuten',
  'home.hoursAgo': 'Vor {hours} Stunden {minutes} Minuten',
  'home.confirmDeleteAgent': 'Sind Sie sicher, dass Sie diesen Agenten löschen möchten?',
  'home.deleteSuccess': 'Löschen erfolgreich',
  'home.deleteFailed': 'Löschen fehlgeschlagen',
  'home.enableMemory': 'Bitte aktivieren Sie zuerst den Speicher auf der \"Rolle konfigurieren\" Seite',

  // Parameter management page text
  'paramManagement.pageTitle': 'Parameterverwaltung',
  'paramManagement.searchPlaceholder': 'Bitte Parameter-Code oder Bemerkung zur Suche eingeben',
  'paramManagement.search': 'Suchen',
  'paramManagement.paramCode': 'Parameter-Code',
  'paramManagement.paramValue': 'Parameter-Wert',
  'paramManagement.remark': 'Bemerkung',
  'paramManagement.operation': 'Operation',
  'paramManagement.hide': 'Ausblenden',
  'paramManagement.view': 'Anzeigen',
  'paramManagement.deselectAll': 'Alle abwählen',
  'paramManagement.selectAll': 'Alle auswählen',
  'paramManagement.add': 'Hinzufügen',
  'paramManagement.delete': 'Löschen',
  'paramManagement.edit': 'Bearbeiten',
  'paramManagement.itemsPerPage': 'Einträge/Seite',
  'paramManagement.firstPage': 'Erste Seite',
  'paramManagement.prevPage': 'Vorherige Seite',
  'paramManagement.nextPage': 'Nächste Seite',
  'paramManagement.totalRecords': 'Insgesamt {total} Datensätze',
  'paramManagement.addParam': 'Parameter hinzufügen',
  'paramManagement.editParam': 'Parameter bearbeiten',
  'paramManagement.getParamsListFailed': 'Parameterliste konnte nicht abgerufen werden',
  'paramManagement.selectParamsFirst': 'Bitte wählen Sie zuerst Parameter zum Löschen aus',
  'paramManagement.confirmBatchDelete': 'Sind Sie sicher, dass Sie {paramCount} ausgewählte Parameter löschen möchten?',
  'paramManagement.invalidParamId': 'Es gibt ungültige Parameter-IDs',
  'paramManagement.batchDeleteSuccess': 'Erfolgreich {paramCount} Parameter gelöscht',
  'paramManagement.deleteFailed': 'Löschen fehlgeschlagen, bitte versuchen Sie es erneut',
  'paramManagement.operationCancelled': 'Löschen abgebrochen',
  'paramManagement.operationClosed': 'Operation geschlossen',
  'paramManagement.updateSuccess': 'Aktualisierung erfolgreich. Einige Konfigurationen werden erst nach Neustart des xiaozhi-server-Moduls wirksam.',
  'paramManagement.addSuccess': 'Hinzufügen erfolgreich',
  'paramManagement.updateFailed': 'Aktualisierung fehlgeschlagen',
  'paramManagement.addFailed': 'Hinzufügen fehlgeschlagen',

  // Server side management page text
  'serverSideManager.pageTitle': 'Serververwaltung',
  'serverSideManager.wsAddress': 'WS-Adresse',
  'serverSideManager.operation': 'Operation',
  'serverSideManager.restart': 'Neustart',
  'serverSideManager.updateConfig': 'Konfiguration aktualisieren',
  'serverSideManager.restartServer': 'Server neu starten',
  'serverSideManager.updateConfigTitle': 'Konfiguration aktualisieren',
  'serverSideManager.confirmRestart': 'Sind Sie sicher, dass Sie den Server neu starten möchten?',
  'serverSideManager.confirmUpdateConfig': 'Sind Sie sicher, dass Sie die Konfiguration aktualisieren möchten?',
  'serverSideManager.loading': 'Lädt...',
  'serverSideManager.getServerListFailed': 'Serverliste konnte nicht abgerufen werden',
  'serverSideManager.operationFailed': 'Operation fehlgeschlagen',
  'serverSideManager.restartSuccess': 'Neustart erfolgreich',
  'serverSideManager.updateConfigSuccess': 'Konfigurationsupdate erfolgreich',

  // Add agent dialog text
  'addAgentDialog.title': 'Agent hinzufügen',
  'addAgentDialog.agentName': 'Agent-Name',
  'addAgentDialog.placeholder': 'Bitte Agent-Namen eingeben..',
  'addAgentDialog.confirm': 'Bestätigen',
  'addAgentDialog.cancel': 'Abbrechen',
  'addAgentDialog.nameRequired': 'Bitte Agent-Namen eingeben',
  'addAgentDialog.addSuccess': 'Hinzufügen erfolgreich',

  // Role configuration page text
  'roleConfig.title': 'Rollenkonfiguration',
  'roleConfig.addTag': 'Neues Label hinzufügen',
  'roleConfig.restartNotice': 'Neustart nach Konfigurationsspeichern zur Aktivierung.',
  'roleConfig.saveConfig': 'Konfiguration speichern',
  'roleConfig.reset': 'Zurücksetzen',
  'roleConfig.agentName': 'Spitzname',
  'roleConfig.roleTemplate': 'Vorlage',
  'roleConfig.roleIntroduction': 'Einführung',
  'roleConfig.languageCode': 'Sprachcode',
  'roleConfig.interactionLanguage': 'Interaktionssprache',
  'roleConfig.vad': 'VAD',
  'roleConfig.asr': 'ASR',
  'roleConfig.llm': 'LLM',
  'roleConfig.vllm': 'VLLM',
  'roleConfig.tts': 'TTS',
  'roleConfig.memoryHis': 'Speicher',
  'roleConfig.memory': 'Speicher',
  'roleConfig.intent': 'Intent',
  'roleConfig.language': 'Sprache auswählen',
  'roleConfig.selectLanguage': 'Bitte Sprache auswählen',
  'roleConfig.voiceType': 'Stimmtyp',
  'roleConfig.ttsVolume': 'Lautstärke',
  'roleConfig.ttsRate': 'Geschwindigkeit',
  'roleConfig.ttsPitch': 'Tonhöhe',
  'roleConfig.ttsAdvanced': 'TTS-Parameter',
  'roleConfig.advancedSettings': 'Sprachgeschwindigkeit',
  'roleConfig.volumeHint': '-100=Min, 0=Standard, 100=Max',
  'roleConfig.speedHint': '-100=Langsamste, 0=Standard, 100=Schnellste',
  'roleConfig.pitchHint': '-100=Niedrigste, 0=Standard, 100=Höchste',
  'roleConfig.pleaseEnterContent': 'Bitte Inhalt eingeben',
  'roleConfig.pleaseEnterLangCode': 'Bitte Sprachcode eingeben, z.B.: en_US',
  'roleConfig.pleaseEnterLangName': 'Bitte Interaktionssprache eingeben, z.B.: Englisch',
  'roleConfig.pleaseSelect': 'Bitte auswählen',
  'roleConfig.editFunctions': 'Funktionen bearbeiten',
  'roleConfig.reportText': 'Nur Text',
  'roleConfig.reportTextVoice': 'Text & Sprache',
  'roleConfig.saveSuccess': 'Konfiguration erfolgreich gespeichert',
  'roleConfig.saveFailed': 'Konfigurationsspeicherung fehlgeschlagen',
  'roleConfig.confirmReset': 'Sind Sie sicher, dass Sie die Konfiguration zurücksetzen möchten?',
  'roleConfig.resetSuccess': 'Konfiguration wurde zurückgesetzt',
  'roleConfig.fetchTemplatesFailed': 'Vorlagenliste konnte nicht abgerufen werden',
  'roleConfig.templateApplied': 'Vorlage wurde angewendet',
  'roleConfig.applyTemplateFailed': 'Anwenden der Vorlage fehlgeschlagen',
  'roleConfig.fetchConfigFailed': 'Konfiguration konnte nicht abgerufen werden',
  'roleConfig.fetchModelsFailed': 'Modellliste konnte nicht abgerufen werden',
  'roleConfig.fetchPluginsFailed': 'Plugin-Liste konnte nicht abgerufen werden',
  'roleConfig.cannotResumeAudio': 'Audio-Wiedergabe kann nicht fortgesetzt werden',
  'roleConfig.selectVoiceFirst': 'Bitte wählen Sie zuerst eine Stimme aus',
  'roleConfig.audioLoadTimeout': 'Audio-Laden dauert zu lange, bitte versuchen Sie es später erneut',
  'roleConfig.cloneAudioPlayFailed': 'Klon-Audio-Wiedergabe fehlgeschlagen',
  'roleConfig.cannotPlayCloneAudio': 'Klon-Audio kann nicht abgespielt werden',
  'roleConfig.getCloneAudioFailed': 'Klon-Audio konnte nicht abgerufen werden',
  'roleConfig.noPreviewAudio': 'Diese Stimme hat keine Vorschau-Audio-Datei',
  'roleConfig.audioPlayFailed': 'Audio-Wiedergabe fehlgeschlagen',
  'roleConfig.cannotPlayAudio': 'Audio kann nicht abgespielt werden',
  'roleConfig.audioPlayError': 'Fehler bei der Audio-Wiedergabe',

  // Function management dialog text
  'functionDialog.title': 'Funktionsverwaltung',
  'functionDialog.unselectedFunctions': 'Nicht ausgewählte Funktionen',
  'functionDialog.selectedFunctions': 'Ausgewählte Funktionen',
  'functionDialog.selectAll': 'Alle auswählen',
  'functionDialog.noMorePlugins': 'Keine weiteren Plugins verfügbar',
  'functionDialog.pleaseSelectPlugin': 'Bitte wählen Sie Plugin-Funktionen aus',
  'functionDialog.paramConfig': 'Parameterkonfiguration',
  'functionDialog.noNeedToConfig': ' erfordert keine Parameterkonfiguration',
  'functionDialog.pleaseSelectFunctionForParam': 'Bitte wählen Sie eine konfigurierte Funktion für Parametereinstellungen aus',
  'functionDialog.mcpAccessPoint': 'MCP-Zugangspunkt',
  'functionDialog.mcpAddressDesc': 'Unten sind die MCP-Zugangspunktadressen für den Agenten.',
  'functionDialog.howToDeployMcp': 'Wie man MCP-Zugangspunkt bereitstellt',
  'functionDialog.howToIntegrateMcp': 'Wie man MCP-Funktionen integriert',
  'functionDialog.copy': 'Kopieren',
  'functionDialog.accessPointStatus': 'Zugangspunkt-Status',
  'functionDialog.connected': 'Verbunden',
  'functionDialog.loading': 'Lädt...',
  'functionDialog.disconnected': 'Getrennt',
  'functionDialog.refresh': 'Aktualisieren',
  'functionDialog.noAvailableTools': 'Keine verfügbaren Werkzeuge',
  'functionDialog.cancel': 'Abbrechen',
  'functionDialog.saveConfig': 'Konfiguration speichern',
  'functionDialog.copiedToClipboard': 'In Zwischenablage kopiert',
  'functionDialog.copyFailed': 'Kopieren fehlgeschlagen, bitte manuell kopieren',
  'functionDialog.jsonFormatError': ' Feldformatfehler: ungültiges JSON-Format',
  'functionDialog.defaultValue': 'Standardwert',

  // Model Configuration Page Text
  'modelConfig.searchPlaceholder': 'Bitte Modellnamen zur Suche eingeben',
  'modelConfig.search': 'Suchen',
  'modelConfig.vad': 'Sprachaktivitätserkennung',
  'modelConfig.asr': 'Spracherkennung',
  'modelConfig.llm': 'Großes Sprachmodell',
  'modelConfig.vllm': 'Visuelles Sprachmodell',
  'modelConfig.intent': 'Absichtserkennung',
  'modelConfig.tts': 'Text-zu-Sprache',
  'modelConfig.memory': 'Speicher',
  'modelConfig.rag': 'RAG',
  'modelConfig.modelId': 'Modell-ID',
  'modelConfig.modelName': 'Modellname',
  'modelConfig.provider': 'Schnittstellentyp',
  'modelConfig.unknown': 'Unbekannt',
  'modelConfig.isEnabled': 'Aktiviert',
  'modelConfig.isDefault': 'Standard',
  'modelConfig.defaultModelCannotDisable': 'Standardmodellkonfiguration kann nicht deaktiviert werden',
  'modelConfig.action': 'Aktion',
  'modelConfig.voiceManagement': 'Stimmverwaltung',
  'modelConfig.edit': 'Bearbeiten',
  'modelConfig.duplicate': 'Duplizieren',
  'modelConfig.delete': 'Löschen',
  'modelConfig.deselectAll': 'Alle abwählen',
  'modelConfig.select': 'ausw.',
  'modelConfig.selectAll': 'Alle auswählen',
  'modelConfig.add': 'Neu hinzufügen',
  'modelConfig.selectModelsFirst': 'Bitte wählen Sie zuerst Modelle zum Löschen aus',
  'modelConfig.confirmBatchDelete': 'Sind Sie sicher, dass Sie die ausgewählten Modelle löschen möchten?',
  'modelConfig.confirmDelete': 'Sind Sie sicher, dass Sie dieses Modell löschen möchten?',
  'modelConfig.batchDeleteSuccess': 'Massenlöschung erfolgreich',
  'modelConfig.partialDeleteFailed': 'Teilweise Löschung fehlgeschlagen',
  'modelConfig.deleteSuccess': 'Löschung erfolgreich',
  'modelConfig.deleteFailed': 'Löschung fehlgeschlagen',
  'modelConfig.deleteCancelled': 'Löschung abgebrochen',
  'modelConfig.duplicateSuccess': 'Duplizierung erfolgreich',
  'modelConfig.duplicateFailed': 'Duplizierung fehlgeschlagen',
  'modelConfig.saveSuccess': 'Speichern erfolgreich',
  'modelConfig.saveFailed': 'Speichern fehlgeschlagen',
  'modelConfig.addSuccess': 'Hinzufügen erfolgreich',
  'modelConfig.addFailed': 'Hinzufügen fehlgeschlagen',
  'modelConfig.fetchModelsFailed': 'Modellliste konnte nicht abgerufen werden',
  'modelConfig.enableSuccess': 'Aktivieren erfolgreich',
  'modelConfig.disableSuccess': 'Deaktivieren erfolgreich',
  'modelConfig.operationFailed': 'Operation fehlgeschlagen',
  'modelConfig.setDefaultSuccess': 'Standardmodell erfolgreich gesetzt, bitte starten Sie das xiaozhi-server-Modul zeitnah manuell neu',
  'modelConfig.itemsPerPage': '{items} Einträge/Seite',
  'modelConfig.firstPage': 'Erste Seite',
  'modelConfig.prevPage': 'Vorherige Seite',
  'modelConfig.nextPage': 'Nächste Seite',
  'modelConfig.totalRecords': 'Insgesamt {total} Datensätze',
  'modelConfig.loading': 'Lädt...',

  // Model Configuration Dialog Text
  'modelConfigDialog.addModel': 'Modell hinzufügen',
  'modelConfigDialog.editModel': 'Modell bearbeiten',
  'modelConfigDialog.duplicateModel': 'Modell duplizieren',
  'modelConfigDialog.copySuffix': '_Kopie',
  'modelConfigDialog.modelInfo': 'Modellinformationen',
  'modelConfigDialog.enable': 'Aktivieren',
  'modelConfigDialog.setDefault': 'Als Standard festlegen',
  'modelConfigDialog.modelId': 'Modell-ID',
  'modelConfigDialog.enterModelId': 'Wenn nicht ausgefüllt, wird es automatisch generiert',
  'modelConfigDialog.invalidModelId': 'Modell-ID darf nicht nur aus Text oder Leerzeichen bestehen, bitte verwenden Sie Buchstaben, Zahlen, Unterstriche oder Bindestriche',
  'modelConfigDialog.modelName': 'Modellname',
  'modelConfigDialog.enterModelName': 'Bitte Modellnamen eingeben',
  'modelConfigDialog.modelCode': 'Modellcode',
  'modelConfigDialog.enterModelCode': 'Bitte Modellcode eingeben',
  'modelConfigDialog.supplier': 'Anbieter',
  'modelConfigDialog.selectSupplier': 'Bitte auswählen',
  'modelConfigDialog.sortOrder': 'Sortierreihenfolge',
  'modelConfigDialog.enterSortOrder': 'Bitte Sortierreihenfolge eingeben',
  'modelConfigDialog.docLink': 'Dokumentationslink',
  'modelConfigDialog.enterDocLink': 'Bitte Dokumentationslink eingeben',
  'modelConfigDialog.remark': 'Bemerkung',
  'modelConfigDialog.enterRemark': 'Bitte Modellbemerkung eingeben',
  'modelConfigDialog.callInfo': 'Aufrufinformationen',
  'modelConfigDialog.enterJsonExample': 'Bitte JSON-Format Variablen eingeben (Beispiel:{\"key\":\"value\"})',
  'modelConfigDialog.save': 'Speichern',

  // TTS Model Configuration Text
  'ttsModel.select': 'Auswählen',
  'ttsModel.voiceCode': 'Stimmcode',
  'ttsModel.voiceName': 'Stimmname',
  'ttsModel.languageType': 'Sprachtyp',
  'ttsModel.preview': 'Vorschau',
  'ttsModel.enterMp3Url': 'Bitte MP3-URL eingeben',
  'ttsModel.remark': 'Bemerkung',
  'ttsModel.enterRemark': 'Dies ist eine Bemerkung',
  'ttsModel.referenceAudioPath': 'Referenz-Audio-Pfad',
  'ttsModel.enterReferenceAudio': 'Dies ist der Referenz-Audio-Pfad',
  'ttsModel.referenceText': 'Referenz-Audio-Text',
  'ttsModel.enterReferenceText': 'Dies ist der Text für Referenz-Audio',
  'ttsModel.action': 'Aktion',
  'ttsModel.operation': 'Operation',
  'ttsModel.operationFailed': 'Operation fehlgeschlagen',
  'ttsModel.operationClosed': 'Operation geschlossen',
  'ttsModel.edit': 'Bearbeiten',
  'ttsModel.delete': 'Löschen',
  'ttsModel.deleteVoiceSuccess': 'Erfolgreich {count} Stimmen gelöscht',
  'ttsModel.deleteFailed': 'Löschen der Stimmen fehlgeschlagen',
  'ttsModel.save': 'Speichern',
  'ttsModel.deselectAll': 'Alle abwählen',
  'ttsModel.selectAll': 'Alle auswählen',
  'ttsModel.add': 'Hinzufügen',
  'ttsModel.fetchVoicesFailed': 'Stimmliste konnte nicht abgerufen werden',
  'ttsModel.loadVoicesFailed': 'Stimmdaten konnten nicht geladen werden',
  'ttsModel.unnamedVoice': 'Unbenannte Stimme',
  'ttsModel.finishEditingFirst': 'Bitte beenden Sie zuerst die aktuelle Bearbeitung',
  'ttsModel.selectVoiceToDelete': 'Bitte wählen Sie Stimmen zum Löschen aus',
  'ttsModel.warning': 'Warnung',
  'ttsModel.confirmDeleteVoice': 'Sind Sie sicher, dass Sie {count} Stimmen löschen möchten?',
  'ttsModel.voiceCodeNameLanguageRequired': 'Stimmcode, Stimmaname und Sprache können nicht leer sein',
  'ttsModel.deleteCancelled': 'Löschvorgang abgebrochen',
  'ttsModel.updateSuccess': 'Aktualisierung erfolgreich',
  'ttsModel.saveSuccess': 'Speicherung erfolgreich',

  // OTA Management Page Text
  'otaManagement.firmwareManagement': 'Firmware-Verwaltung',
  'otaManagement.searchPlaceholder': 'Bitte Firmware-Namen zur Suche eingeben',
  'otaManagement.search': 'Suchen',
  'otaManagement.firmwareName': 'Firmware-Name',
  'otaManagement.firmwareType': 'Firmware-Typ',
  'otaManagement.version': 'Version',
  'otaManagement.fileSize': 'Dateigröße',
  'otaManagement.remark': 'Bemerkung',
  'otaManagement.createTime': 'Erstellungszeit',
  'otaManagement.updateTime': 'Aktualisierungszeit',
  'otaManagement.action': 'Aktion',
  'otaManagement.download': 'Herunterladen',
  'otaManagement.edit': 'Bearbeiten',
  'otaManagement.delete': 'Löschen',
  'otaManagement.selectAll': 'Alle auswählen',
  'otaManagement.deselectAll': 'Alle abwählen',
  'otaManagement.addNew': 'Neu hinzufügen',
  'otaManagement.addFirmware': 'Firmware hinzufügen',
  'otaManagement.editFirmware': 'Firmware bearbeiten',
  'otaManagement.itemsPerPage': '{items} Einträge/Seite',
  'otaManagement.firstPage': 'Erste Seite',
  'otaManagement.prevPage': 'Vorherige Seite',
  'otaManagement.nextPage': 'Nächste Seite',
  'otaManagement.totalRecords': 'Insgesamt {total} Datensätze',
  'otaManagement.selectFirmwareFirst': 'Bitte wählen Sie zuerst Firmware zum Löschen aus',
  'otaManagement.confirmBatchDelete': 'Sind Sie sicher, dass Sie die ausgewählten {paramCount} Firmware löschen möchten?',
  'otaManagement.operationCancelled': 'Löschvorgang wurde abgebrochen',
  'otaManagement.operationClosed': 'Vorgang wurde geschlossen',
  'otaManagement.batchDeleteSuccess': 'Erfolgreich {paramCount} Firmware gelöscht',
  'otaManagement.deleteFailed': 'Löschen fehlgeschlagen, bitte versuchen Sie es erneut',
  'otaManagement.incompleteFirmwareInfo': 'Unvollständige Firmware-Informationen',
  'otaManagement.getDownloadUrlFailed': 'Download-Link konnte nicht abgerufen werden',
  'otaManagement.getFirmwareTypesFailed': 'Firmware-Typen konnten nicht abgerufen werden',
  'otaManagement.updateSuccess': 'Aktualisierung erfolgreich',
  'otaManagement.updateFailed': 'Aktualisierung fehlgeschlagen',
  'otaManagement.addSuccess': 'Hinzufügen erfolgreich',
  'otaManagement.addFailed': 'Hinzufügen fehlgeschlagen',
  'otaManagement.fetchFirmwareListFailed': 'Firmware-Liste konnte nicht abgerufen werden',

  // Provider Management page model type translations
  'providerManagement.all': 'Alle',
  'providerManagement.modelType.ASR': 'Spracherkennung',
  'providerManagement.modelType.TTS': 'Text-zu-Sprache',
  'providerManagement.modelType.LLM': 'Großes Sprachmodell',
  'providerManagement.modelType.VLLM': 'Vision Großes Sprachmodell',
  'providerManagement.modelType.Intent': 'Absichtserkennung',
  'providerManagement.modelType.Memory': 'Speichermodul',
  'providerManagement.modelType.VAD': 'Sprachaktivitätserkennung',
  'providerManagement.modelType.Plugin': 'Plugin-Werkzeug',
  'providerManagement.modelType.RAG': 'RAG',

  // Provider Dialog translations
  'providerDialog.category': 'Kategorie',
  'providerDialog.selectCategory': 'Bitte Kategorie auswählen',
  'providerDialog.code': 'Code',
  'providerDialog.inputCode': 'Bitte Anbieter-Code eingeben',
  'providerDialog.name': 'Name',
  'providerDialog.inputName': 'Bitte Anbieter-Namen eingeben',
  'providerDialog.sort': 'Sortierung',
  'providerDialog.fieldConfig': 'Feldkonfiguration',
  'providerDialog.add': 'Hinzufügen',
  'providerDialog.deselectAll': 'Alle abwählen',
  'providerDialog.selectAll': 'Alle auswählen',
  'providerDialog.batchDelete': 'Massenlöschung',
  'providerDialog.fieldKey': 'Feld-Schlüssel',
  'providerDialog.fieldLabel': 'Feld-Label',
  'providerDialog.fieldType': 'Feldtyp',
  'providerDialog.type': 'Typ',
  'providerDialog.stringType': 'Zeichenkette',
  'providerDialog.numberType': 'Zahl',
  'providerDialog.booleanType': 'Boolesch',
  'providerDialog.dictType': 'Wörterbuch',
  'providerDialog.arrayType': 'Semikolon-getrennte Liste',
  'providerDialog.ragType': 'RAG',
  'providerDialog.defaultValue': 'Standardwert',
  'providerDialog.inputDefaultValue': 'Bitte Standardwert eingeben',
  'providerDialog.operation': 'Operation',
  'providerDialog.edit': 'Bearbeiten',
  'providerDialog.complete': 'Fertig',
  'providerDialog.delete': 'Löschen',
  'providerDialog.save': 'Speichern',
  'providerDialog.requiredCategory': 'Bitte Kategorie auswählen',
  'providerDialog.requiredCode': 'Bitte Anbieter-Code eingeben',
  'providerDialog.requiredName': 'Bitte Anbieter-Namen eingeben',
  'providerDialog.completeFieldEdit': 'Bitte beenden Sie zuerst die aktuelle Feldbearbeitung',
  'providerDialog.confirmDeleteField': 'Sind Sie sicher, dass Sie dieses Feld löschen möchten?',
  'providerDialog.selectFieldsToDelete': 'Bitte wählen Sie zuerst Felder zum Löschen aus',
  'providerDialog.confirmBatchDeleteFields': 'Sind Sie sicher, dass Sie {count} ausgewählte Felder löschen möchten?',
  'providerDialog.batchDeleteFieldsSuccess': 'Erfolgreich {count} Felder gelöscht',

  // agentTemplateManagement
  'agentTemplateManagement.title': 'Standard-Rollenverwaltung',
  'agentTemplateManagement.templateName': 'Vorlagenname',
  'agentTemplateManagement.action': 'Aktion',
  'agentTemplateManagement.createTemplate': 'Vorlage erstellen',
  'templateQuickConfig.newTemplate': 'Neue Vorlage',
  'agentTemplateManagement.editTemplate': 'Vorlage bearbeiten',
  'agentTemplateManagement.deleteTemplate': 'Vorlage löschen',
  'agentTemplateManagement.deleteSuccess': 'Vorlage erfolgreich gelöscht',
  'agentTemplateManagement.batchDelete': 'Massenlöschung',
  'agentTemplateManagement.batchDeleteSuccess': 'Massenlöschung erfolgreich',
  'agentTemplateManagement.selectTemplate': 'Bitte wählen Sie eine Vorlage aus',
  'agentTemplateManagement.select': 'Auswählen',
  'agentTemplateManagement.searchPlaceholder': 'Bitte Vorlagennamen zur Suche eingeben',
  'agentTemplateManagement.search': 'Suchen',
  'agentTemplateManagement.serialNumber': 'Seriennummer',
  'agentTemplateManagement.selectAll': 'Alle auswählen',
  'agentTemplateManagement.deselectAll': 'Alle abwählen',
  'agentTemplateManagement.loading': 'Lädt...',
  'agentTemplateManagement.confirmSingleDelete': 'Sind Sie sicher, dass Sie diese Vorlage löschen möchten?',
  'agentTemplateManagement.confirmBatchDelete': 'Sind Sie sicher, dass Sie die ausgewählten {count} Vorlagen löschen möchten?',
  'agentTemplateManagement.deleteFailed': 'Vorlagenlöschung fehlgeschlagen',
  'agentTemplateManagement.batchDeleteFailed': 'Vorlagen-Massenlöschung fehlgeschlagen',
  'agentTemplateManagement.deleteBackendError': 'Löschen fehlgeschlagen, bitte prüfen Sie, ob der Backend-Service normal ist',

  // templateQuickConfig
  'templateQuickConfig.title': 'Modul-Schnellkonfiguration',
  'templateQuickConfig.agentSettings.agentName': 'Spitzname',
  'templateQuickConfig.agentSettings.agentNamePlaceholder': 'Bitte Spitznamen eingeben',
  'templateQuickConfig.agentSettings.systemPrompt': 'Einführung',
  'templateQuickConfig.agentSettings.systemPromptPlaceholder': 'Bitte Einführung eingeben',
  'templateQuickConfig.saveConfig': 'Konfiguration speichern',
  'templateQuickConfig.resetConfig': 'Konfiguration zurücksetzen',
  'templateQuickConfig.saveSuccess': 'Speichern erfolgreich',
  'templateQuickConfig.resetSuccess': 'Zurücksetzen erfolgreich',
  'templateQuickConfig.confirmReset': 'Sind Sie sicher, dass Sie die Konfiguration zurücksetzen möchten?',
  'templateQuickConfig.saveFailed': 'Konfigurationsspeicherung fehlgeschlagen',
  'templateQuickConfig.confirm': 'Bestätigen',
  'templateQuickConfig.cancel': 'Abbrechen',
  'templateQuickConfig.templateNotFound': 'Vorlage nicht gefunden',
  'warning': 'Warnung',
  'info': 'Info',
  'common.networkError': 'Netzwerkanfrage fehlgeschlagen',

  // SM2 Encryption
  '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',

  // Voice Clone and Resource Management
  'voiceClone.title': 'Stimmenklon',
  'voiceResource.title': 'Stimmressourcen',
  'voiceClone.platformName': 'Plattformname',
  'voiceClone.voiceId': 'Stimmen-ID',
  'voiceClone.userId': 'Kontoinhaber',
  'voiceClone.name': 'Stimmname',
  'voiceClone.clone': 'Stimme klonen',
  'voiceClone.action': 'Aktion',
  'voiceClone.modelId': 'Modell-ID',
  'voiceClone.trainStatus': 'Trainingsstatus',
  'voiceClone.trainError': 'Trainingsfehler',
  'voiceClone.createdAt': 'Erstellungszeit',
  'voiceClone.search': 'Suchen',
  'voiceClone.searchPlaceholder': 'Bitte Stimmname oder Stimmen-ID eingeben',
  'voiceClone.addNew': 'Hinzufügen',
  'voiceClone.delete': 'Löschen',
  'voiceClone.selectAll': 'Alle auswählen',
  'voiceClone.deselectAll': 'Alle abwählen',
  'voiceClone.addVoiceClone': 'Stimmressource hinzufügen',
  'voiceClone.confirmDelete': 'Sind Sie sicher, dass Sie die ausgewählten {count} Stimmressourcen löschen möchten?',
  'voiceClone.deleteSuccess': 'Erfolgreich {count} Stimmressourcen gelöscht',
  'voiceClone.deleteFailed': 'Löschen fehlgeschlagen',
  'voiceClone.addSuccess': 'Hinzufügen erfolgreich',
  'voiceClone.addFailed': 'Hinzufügen fehlgeschlagen',
  'voiceClone.updateSuccess': 'Aktualisierung erfolgreich',
  'voiceClone.updateFailed': 'Aktualisierung fehlgeschlagen',
  'voiceClone.selectFirst': 'Bitte wählen Sie zuerst Stimmressourcen zum Löschen aus',
  'voiceClone.operationCancelled': 'Abbrechen',
  'voiceClone.operationClosed': 'Popup geschlossen',
  'voiceClone.cloneSuccess': 'Klonen erfolgreich',
  'voiceClone.cloneFailed': 'Klonen fehlgeschlagen',
  'voiceClone.confirmClone': 'Sind Sie sicher, dass Sie diese Stimme klonen möchten?',
  'voiceClone.onlySuccessCanClone': 'Nur erfolgreich trainierte Stimmen können geklont werden',
  'common.insufficient': 'Unzureichend',
  'voiceClone.platformNameRequired': 'Bitte Plattformname auswählen',
  'voiceClone.voiceIdRequired': 'Bitte Stimmen-ID auswählen',
  'voiceClone.userIdRequired': 'Bitte Kontoinhaber auswählen',
  'voiceClone.platformNamePlaceholder': 'Bitte Plattformname auswählen',
  'voiceClone.voiceIdPlaceholder': 'Bitte Stimmen-ID eingeben und Enter drücken',
  'voiceClone.userIdPlaceholder': 'Bitte Schlüsselwort eingeben, um Kontoinhaber auszuwählen',
  'voiceClone.languages': 'Sprachen',
  'voiceClone.languagesPlaceholder': 'Bitte Sprachen eingeben, z.B.: Deutsch, English',
  'voiceClone.languagesRequired': 'Bitte Sprachen eingeben',
  'voiceClone.waitingUpload': 'Wartet auf Upload',
  'voiceClone.waitingTraining': 'Wartet auf Klon',
  'voiceClone.training': 'Training',
  'voiceClone.trainSuccess': 'Training erfolgreich',
  'voiceClone.trainFailed': 'Training fehlgeschlagen',
  'voiceClone.itemsPerPage': '{items} Einträge/Seite',
  'voiceClone.firstPage': 'Erste Seite',
  'voiceClone.prevPage': 'Vorherige Seite',
  'voiceClone.nextPage': 'Nächste Seite',
  'voiceClone.totalRecords': '{total} Datensätze insgesamt',
  'voiceClone.noVoiceCloneAssigned': 'Ihrem Konto sind keine Stimmressourcen zugewiesen',
  'voiceClone.contactAdmin': 'Bitte kontaktieren Sie Administrator für Stimmressourcenzuweisung',
  'voiceClone.dialogTitle': 'Stimmenklon',
  'voiceClone.stepUpload': 'Audio vorbereiten',
  'voiceClone.stepEdit': 'Audio bearbeiten',
  'voiceClone.dragOrClick': 'Audio-Datei hierher ziehen oder klicken zum Hochladen',
  'voiceClone.uploadTip': 'Unterstützt alle gängigen Audioformate, ausgewählte Dauer muss zwischen 8-60 Sekunden liegen',
  'voiceClone.editTip1': 'Bitte bestätigen Sie, ob das hochgeladene Audio zufriedenstellend ist',
  'voiceClone.editTip2': 'Sie können das Audio anhören und zuschneiden, wenn nicht zufrieden können Sie zurückgehen, um erneut aufzunehmen oder hochzuladen',
  'voiceClone.selectedDuration': 'Ausgewähltes gültiges Segment: {duration} Sekunden',
  'voiceClone.trim': 'Ausgewähltes Segment zuschneiden',
  'voiceClone.reset': 'Zurücksetzen',
  'voiceClone.play': 'Abspielen',
  'voiceClone.pause': 'Pause',
  'voiceClone.stop': 'Stopp',
  'voiceClone.cancel': 'Abbrechen',
  'voiceClone.warning': 'Warnung',
  'voiceClone.ok': 'OK',
  'voiceClone.nextStep': 'Weiter',
  'voiceClone.prevStep': 'Zurück',
  'voiceClone.upload': 'Audio hochladen',
  'voiceClone.pleaseSelectAudio': 'Bitte wählen Sie zuerst eine Audio-Datei aus',
  'voiceClone.durationError': 'Audio-Dauer muss zwischen 8-60 Sekunden liegen',
  'voiceClone.loadAudioFailed': 'Audio konnte nicht geladen werden',
  'voiceClone.trimSuccess': 'Zuschneiden erfolgreich',
  'voiceClone.resetSuccess': 'Zurücksetzen erfolgreich',
  'voiceClone.uploadSuccess': 'Upload erfolgreich',
  'voiceClone.uploadFailed': 'Upload fehlgeschlagen',
  'voiceClone.updateNameSuccess': 'Name erfolgreich aktualisiert',
  'voiceClone.updateNameFailed': 'Name konnte nicht aktualisiert werden',
  'voiceClone.playFailed': 'Abspielen fehlgeschlagen',
  'voiceClone.Details': 'Fehlerdetails',

  // Knowledge Base Management page text
  'knowledgeBaseManagement.title': 'Wissensbasis',
  'knowledgeBaseManagement.searchPlaceholder': 'Bitte Wissensbasis-Namen zur Suche eingeben',
  'knowledgeBaseManagement.search': 'Suchen',
  'knowledgeBaseManagement.name': 'Wissensbasis-Name',
  'knowledgeBaseManagement.description': 'Wissensbasis-Beschreibung',
  'knowledgeBaseManagement.documentCount': 'Dokumentenanzahl',
  'knowledgeBaseManagement.status': 'Aktiviert',
  'knowledgeBaseManagement.createdAt': 'Erstellt am',
  'knowledgeBaseManagement.operation': 'Operation',
  'knowledgeBaseManagement.add': 'Hinzufügen',
  'knowledgeBaseManagement.delete': 'Löschen',
  'knowledgeBaseManagement.edit': 'Bearbeiten',
  'knowledgeBaseManagement.itemsPerPage': 'Einträge/Seite',
  'knowledgeBaseManagement.firstPage': 'Erste Seite',
  'knowledgeBaseManagement.prevPage': 'Vorherige Seite',
  'knowledgeBaseManagement.nextPage': 'Nächste Seite',
  'knowledgeBaseManagement.totalRecords': 'Insgesamt {total} Datensätze',
  'knowledgeBaseManagement.addKnowledgeBase': 'Wissensbasis hinzufügen',
  'knowledgeBaseManagement.editKnowledgeBase': 'Wissensbasis bearbeiten',
  'knowledgeBaseManagement.getKnowledgeBaseListFailed': 'Wissensbasis-Liste konnte nicht abgerufen werden',
  'knowledgeBaseManagement.selectKnowledgeBaseFirst': 'Bitte wählen Sie zuerst Wissensbasen zum Löschen aus',
  'knowledgeBaseManagement.confirmBatchDelete': 'Sind Sie sicher, dass Sie die ausgewählten {count} Wissensbasen löschen möchten?',
  'knowledgeBaseManagement.batchDeleteSuccess': 'Erfolgreich {count} Wissensbasen gelöscht',
  'knowledgeBaseManagement.deleteFailed': 'Löschen fehlgeschlagen, bitte versuchen Sie es erneut',
  'knowledgeBaseManagement.operationCancelled': 'Löschvorgang wurde abgebrochen',
  'knowledgeBaseManagement.updateSuccess': 'Aktualisierung erfolgreich',
  'knowledgeBaseManagement.addSuccess': 'Hinzufügen erfolgreich',
  'knowledgeBaseManagement.updateFailed': 'Aktualisierung fehlgeschlagen',
  'knowledgeBaseManagement.addFailed': 'Hinzufügen fehlgeschlagen',
  'knowledgeBaseManagement.selectAll': 'Alle auswählen',
  'knowledgeBaseManagement.cancelSelectAll': 'Alle abwählen',

  // Knowledge Base Dialog text
  'knowledgeBaseDialog.title': 'Wissensbasis',
  'knowledgeBaseDialog.name': 'Wissensbasis-Name',
  'knowledgeBaseDialog.namePlaceholder': 'Bitte Wissensbasis-Namen genau eingeben, um die Genauigkeit des Wissensbasis-Aufrufs zu verbessern',
  'knowledgeBaseDialog.description': 'Wissensbasis-Beschreibung',
  'knowledgeBaseDialog.descriptionPlaceholder': 'Bitte Wissensbasis-Beschreibung genau eingeben, um dem Modell zu helfen, den Wissensbasis-Inhalt besser zu verstehen',
  'knowledgeBaseDialog.ragModel': 'RAG-Modell',
  'knowledgeBaseDialog.ragModelPlaceholder': 'Bitte RAG-Modell auswählen',
  'knowledgeBaseDialog.ragModelRequired': 'Bitte RAG-Modell auswählen',
  'knowledgeBaseDialog.loadRAGModelsFailed': 'RAG-Modell-Liste konnte nicht geladen werden',
  'knowledgeBaseDialog.status': 'Status',
  'knowledgeBaseDialog.statusEnabled': 'Aktiviert',
  'knowledgeBaseDialog.statusDisabled': 'Deaktiviert',
  'knowledgeBaseDialog.save': 'Speichern',
  'knowledgeBaseDialog.cancel': 'Abbrechen',
  'knowledgeBaseDialog.confirm': 'Bestätigen',
  'knowledgeBaseDialog.requiredName': 'Bitte Wissensbasis-Namen eingeben',
  'knowledgeBaseDialog.nameRequired': 'Bitte Wissensbasis-Namen eingeben',
  'knowledgeBaseDialog.nameLength': 'Wissensbasis-Name-Länge sollte zwischen 1 und 50 Zeichen liegen',
  'knowledgeBaseDialog.namePattern': 'Wissensbasis-Name darf nur Chinesisch, Englisch, Zahlen, Leerzeichen, Unterstriche und Bindestriche enthalten',
  'knowledgeBaseDialog.descriptionLength': 'Wissensbasis-Beschreibung darf 200 Zeichen nicht überschreiten',
  'knowledgeBaseDialog.nameLengthLimit': 'Wissensbasis-Name darf 50 Zeichen nicht überschreiten',
  'knowledgeBaseDialog.descriptionLengthLimit': 'Wissensbasis-Beschreibung darf 200 Zeichen nicht überschreiten',

  // Knowledge Base Management page new view button text
  'knowledgeBaseManagement.view': 'Dateien verwalten',

  // Knowledge File Upload page text
  'knowledgeFileUpload.back': 'Zurück',
  'knowledgeFileUpload.searchPlaceholder': 'Bitte Dokumentnamen zur Suche eingeben',
  'knowledgeFileUpload.search': 'Suchen',
  'knowledgeFileUpload.addDocument': 'Dokument hinzufügen',
  'knowledgeFileUpload.documentName': 'Dokumentname',
  'knowledgeFileUpload.uploadTime': 'Upload-Zeit',
  'knowledgeFileUpload.status': 'Status',
  'knowledgeFileUpload.operation': 'Operation',
  'knowledgeFileUpload.parse': 'Parsen',
  'knowledgeFileUpload.viewSlices': 'Segmente anzeigen',
  'knowledgeFileUpload.delete': 'Löschen',
  'knowledgeFileUpload.itemsPerPage': 'Einträge/Seite',
  'knowledgeFileUpload.firstPage': 'Erste Seite',
  'knowledgeFileUpload.prevPage': 'Vorherige Seite',
  'knowledgeFileUpload.nextPage': 'Nächste Seite',
  'knowledgeFileUpload.totalRecords': 'Insgesamt {total} Datensätze',
  'knowledgeFileUpload.uploadDocument': 'Dokument hochladen',
  'knowledgeFileUpload.documentNamePlaceholder': 'Bitte Dokumentnamen eingeben',
  'knowledgeFileUpload.file': 'Datei',
  'knowledgeFileUpload.clickToUpload': 'Zum Hochladen klicken',
  'knowledgeFileUpload.uploadTip': 'Unterstützte Dateitypen: PDF, DOC, DOCX, TXT, MD, CSV, XLS, XLSX, PPT, PPTX. Maximal 32 Dateien pro Upload, jede Dateigröße bis zu 10MB',
  'knowledgeFileUpload.dragOrClick': 'Datei hierher ziehen oder klicken zum Hochladen',
  'knowledgeFileUpload.cancel': 'Abbrechen',
  'knowledgeFileUpload.confirm': 'Bestätigen',
  'knowledgeFileUpload.knowledgeBaseName': 'Wissensbasis-Name',
  'knowledgeFileUpload.statusNotStarted': 'Nicht gestartet',
  'knowledgeFileUpload.statusProcessing': 'Wird verarbeitet',
  'knowledgeFileUpload.statusCancelled': 'Abgebrochen',
  'knowledgeFileUpload.statusCompleted': 'Abgeschlossen',
  'knowledgeFileUpload.statusFailed': 'Fehlgeschlagen',
  'knowledgeFileUpload.uploadSuccess': 'Dokument-Upload erfolgreich',
  'knowledgeFileUpload.uploadFailed': 'Dokument-Upload fehlgeschlagen',
  'knowledgeFileUpload.parseSuccess': 'Dokument-Parsen erfolgreich',
  'knowledgeFileUpload.parseFailed': 'Dokument-Parsen fehlgeschlagen',
  'knowledgeFileUpload.deleteSuccess': 'Dokument-Löschen erfolgreich',
  'knowledgeFileUpload.deleteFailed': 'Dokument-Löschen fehlgeschlagen',
  'knowledgeFileUpload.confirmDelete': 'Sind Sie sicher, dass Sie dieses Dokument löschen möchten?',
  'knowledgeFileUpload.confirmParse': 'Sind Sie sicher, dass Sie dieses Dokument parsen möchten?',
  'knowledgeFileUpload.nameRequired': 'Bitte Dokumentnamen eingeben',
  'knowledgeFileUpload.fileRequired': 'Bitte wählen Sie eine Datei zum Hochladen aus',
  'knowledgeFileUpload.getListFailed': 'Dokumentenliste konnte nicht abgerufen werden',
  'knowledgeFileUpload.parseCancelled': 'Parsen abgebrochen',
  'knowledgeFileUpload.deleteCancelled': 'Löschen abgebrochen',
  'knowledgeFileUpload.selectFilesFirst': 'Bitte wählen Sie zuerst Dateien zum Löschen aus',
  'knowledgeFileUpload.selectAll': 'Alle auswählen',
  'knowledgeFileUpload.deselectAll': 'Alle abwählen',
  'knowledgeFileUpload.batchDelete': 'Löschen',
  'knowledgeFileUpload.confirmBatchDelete': 'Sind Sie sicher, dass Sie die ausgewählten {count} Dateien löschen möchten?',
  'knowledgeFileUpload.batchDeleteSuccess': 'Erfolgreich {count} Dateien gelöscht',
  'knowledgeFileUpload.batchDeleteFailed': 'Massenlöschung fehlgeschlagen',
  'knowledgeFileUpload.sliceCount': 'Segmentanzahl',
  'knowledgeFileUpload.add': 'Hinzufügen',
  'knowledgeFileUpload.retrievalTest': 'Abruftest',
  'knowledgeFileUpload.testQuestion': 'Testfrage',
  'knowledgeFileUpload.testQuestionPlaceholder': 'Bitte geben Sie die zu testende Frage ein',
  'knowledgeFileUpload.executeTest': 'Test ausführen',
  'knowledgeFileUpload.testResult': 'Testergebnis:',
  'knowledgeFileUpload.selectedFiles': 'Ausgewählte Dateien',
  'knowledgeFileUpload.totalSlices': 'Insgesamt {total} Datensätze',
  'knowledgeFileUpload.slice': 'Segment',
  'knowledgeFileUpload.noSliceData': 'Keine Segmentdaten verfügbar',
  'knowledgeFileUpload.firstPage': 'Erste',
  'knowledgeFileUpload.prevPage': 'Vorherige',
  'knowledgeFileUpload.nextPage': 'Nächste',
  'knowledgeFileUpload.totalRecords': 'Insgesamt {total} Datensätze',
  'knowledgeFileUpload.testQuestion': 'Testfrage',
  'knowledgeFileUpload.testQuestionPlaceholder': 'Bitte geben Sie die zu testende Frage ein',
  'knowledgeFileUpload.runTest': 'Test ausführen',
  'knowledgeFileUpload.testResult': 'Testergebnis:',
  'knowledgeFileUpload.noRelatedSlices': 'Keine verwandten Segmente gefunden',
  'knowledgeFileUpload.comprehensiveSimilarity': 'Umfassende Ähnlichkeit',
  'knowledgeFileUpload.content': 'Inhalt:',
  'knowledgeFileUpload.testQuestionRequired': 'Bitte Testfrage eingeben',
  'knowledgeBaseDialog.descriptionRequired': 'Bitte Wissensbasis-Beschreibung eingeben',

  // Feature Management page text
  'featureManagement.selectAll': 'Alle auswählen',
  'featureManagement.deselectAll': 'Alle abwählen',
  'featureManagement.save': 'Konfiguration speichern',
  'featureManagement.reset': 'Zurücksetzen',
  'featureManagement.group.featureManagement': 'Funktion/Bereich aktivieren oder deaktivieren',
  'featureManagement.group.voiceManagement': 'Für Benutzer bei der Agenten-Konfiguration sichtbar',
  'featureManagement.noFeatures': 'Keine Funktionen verfügbar',
  'featureManagement.contactAdmin': 'Bitte kontaktieren Sie Administrator zur Funktionskonfiguration',
  'featureManagement.saveSuccess': 'Funktionskonfiguration erfolgreich gespeichert',
  'featureManagement.resetConfirm': 'Sind Sie sicher, dass Sie alle Funktionskonfigurationen zurücksetzen möchten?',
  'featureManagement.confirm': 'Bestätigen',
  'featureManagement.cancel': 'Abbrechen',
  'featureManagement.resetSuccess': 'Funktionskonfiguration erfolgreich zurückgesetzt',
  'featureManagement.noChanges': 'Keine Änderungen zum Speichern',

  // Feature names and descriptions
  'feature.voiceprintRecognition.name': 'Stimmerkennung',
  'feature.voiceprintRecognition.description': 'Benutzeridentität durch Stimmerkennungstechnologie verifizieren, bietet sichere Sprachiinteraktion',
  'feature.voiceClone.name': 'Stimmenklon',
  'feature.voiceClone.description': 'Spezifische Stimmfarbe mit KI-Technologie klonen, um personalisierte Sprachsynthese zu ermöglichen',
  'feature.knowledgeBase.name': 'Wissensbasis',
  'feature.knowledgeBase.description': 'Wissensbasissystem aufbauen und verwalten, um professionelle Wissensunterstützung für KI-Assistenten zu bieten',
  'feature.mcpAccessPoint.name': 'MCP-Zugangspunkt',
  'feature.mcpAccessPoint.description': 'MCP-Protokoll-Zugangspunkte bereitstellen, um Integration externer Tools und Dienste zu unterstützen',
  'feature.vad.name': 'Sprachaktivitätserkennung',
  'feature.vad.description': 'Sprachaktivität automatisch erkennen, um die Effizienz der Sprachiinteraktion zu optimieren',
  'feature.asr.name': 'Spracherkennung',
  'feature.asr.description': 'Sprache in Text umwandeln, um natürliche Sprachinteraktionsfunktionalität zu ermöglichen',

}