|
@@ -1654,6 +1654,163 @@ export default {
|
|
|
imported: '{{added}} Farben importiert ({{skipped}} übersprungen)',
|
|
imported: '{{added}} Farben importiert ({{skipped}} übersprungen)',
|
|
|
importFailed: 'Import fehlgeschlagen: ungültiges JSON-Format',
|
|
importFailed: 'Import fehlgeschlagen: ungültiges JSON-Format',
|
|
|
},
|
|
},
|
|
|
|
|
+ // General tab
|
|
|
|
|
+ dateFormat: 'Datumsformat',
|
|
|
|
|
+ dateFormatUs: 'US (MM/TT/JJJJ)',
|
|
|
|
|
+ dateFormatEu: 'EU (TT/MM/JJJJ)',
|
|
|
|
|
+ dateFormatIso: 'ISO (JJJJ-MM-TT)',
|
|
|
|
|
+ timeFormat: 'Zeitformat',
|
|
|
|
|
+ timeFormat12: '12-Stunden (3:30 PM)',
|
|
|
|
|
+ timeFormat24: '24-Stunden (15:30)',
|
|
|
|
|
+ defaultPrinter: 'Standarddrucker',
|
|
|
|
|
+ defaultPrinterDescription: 'Diesen Drucker für Uploads, Nachdrucke und andere Vorgänge vorauswählen.',
|
|
|
|
|
+ slicerBambuStudio: 'Bambu Studio',
|
|
|
|
|
+ slicerOrcaSlicer: 'OrcaSlicer',
|
|
|
|
|
+ sidebarOrderDescription: 'Elemente in der Seitenleiste per Drag & Drop neu anordnen. Hier auf Standardreihenfolge zurücksetzen.',
|
|
|
|
|
+ reset: 'Zurücksetzen',
|
|
|
|
|
+ // Appearance
|
|
|
|
|
+ darkMode: 'Dunkelmodus',
|
|
|
|
|
+ lightMode: 'Hellmodus',
|
|
|
|
|
+ active: '(aktiv)',
|
|
|
|
|
+ background: 'Hintergrund',
|
|
|
|
|
+ accent: 'Akzent',
|
|
|
|
|
+ style: 'Stil',
|
|
|
|
|
+ bgNeutral: 'Neutral',
|
|
|
|
|
+ bgWarm: 'Warm',
|
|
|
|
|
+ bgCool: 'Kühl',
|
|
|
|
|
+ bgOled: 'OLED Schwarz',
|
|
|
|
|
+ bgSlate: 'Schieferblau',
|
|
|
|
|
+ bgForest: 'Waldgrün',
|
|
|
|
|
+ accentGreen: 'Grün',
|
|
|
|
|
+ accentTeal: 'Türkis',
|
|
|
|
|
+ accentBlue: 'Blau',
|
|
|
|
|
+ accentOrange: 'Orange',
|
|
|
|
|
+ accentPurple: 'Lila',
|
|
|
|
|
+ accentRed: 'Rot',
|
|
|
|
|
+ styleClassic: 'Klassisch',
|
|
|
|
|
+ styleGlow: 'Leuchtend',
|
|
|
|
|
+ styleVibrant: 'Lebendig',
|
|
|
|
|
+ themeToggleHint: 'Zwischen Hell- und Dunkelmodus mit dem Sonnen-/Mondsymbol in der Seitenleiste wechseln.',
|
|
|
|
|
+ // Archive
|
|
|
|
|
+ autoArchivePrints: 'Drucke automatisch archivieren',
|
|
|
|
|
+ autoArchiveDescription: '3MF-Dateien automatisch speichern, wenn Drucke abgeschlossen sind',
|
|
|
|
|
+ saveThumbnailsDescription: 'Vorschaubilder aus 3MF-Dateien extrahieren und speichern',
|
|
|
|
|
+ captureFinishPhotoDescription: 'Foto von der Druckerkamera aufnehmen, wenn der Druck abgeschlossen ist',
|
|
|
|
|
+ ffmpegNotInstalled: 'ffmpeg nicht installiert',
|
|
|
|
|
+ ffmpegRequired: 'Kameraaufnahme benötigt ffmpeg. Installieren über <brew>brew install ffmpeg</brew> (macOS) oder <apt>apt install ffmpeg</apt> (Linux).',
|
|
|
|
|
+ // Camera
|
|
|
|
|
+ camera: 'Kamera',
|
|
|
|
|
+ cameraViewMode: 'Kamera-Ansichtsmodus',
|
|
|
|
|
+ cameraOverlayDescription: 'Kamera öffnet sich als größenveränderbares Overlay auf dem Hauptbildschirm',
|
|
|
|
|
+ cameraWindowDescription: 'Kamera öffnet sich in einem separaten Browserfenster',
|
|
|
|
|
+ externalCamerasDescription: 'Externe Kameras konfigurieren, um die eingebaute Druckerkamera zu ersetzen. Unterstützt MJPEG-Streams, RTSP, HTTP-Snapshots und USB-Kameras (V4L2). Wenn aktiviert, wird die externe Kamera für Live-Ansicht und Abschlussfotos verwendet.',
|
|
|
|
|
+ cameraPlaceholderUsb: 'Gerätepfad (/dev/video0)',
|
|
|
|
|
+ cameraPlaceholderUrl: 'Kamera-URL (rtsp://... oder http://...)',
|
|
|
|
|
+ cameraTypeMjpeg: 'MJPEG-Stream',
|
|
|
|
|
+ cameraTypeRtsp: 'RTSP-Stream',
|
|
|
|
|
+ cameraTypeSnapshot: 'HTTP-Snapshot',
|
|
|
|
|
+ cameraTypeUsb: 'USB-Kamera (V4L2)',
|
|
|
|
|
+ test: 'Testen',
|
|
|
|
|
+ connected: 'Verbunden',
|
|
|
|
|
+ disconnected: 'Getrennt',
|
|
|
|
|
+ // Cost tracking
|
|
|
|
|
+ currency: 'Währung',
|
|
|
|
|
+ defaultFilamentCost: 'Standard-Filamentkosten (pro kg)',
|
|
|
|
|
+ electricityCost: 'Stromkosten pro kWh',
|
|
|
|
|
+ energyDisplayMode: 'Energieanzeige-Modus',
|
|
|
|
|
+ energyModePrintDescription: 'Dashboard zeigt Summe der während Drucken verbrauchten Energie',
|
|
|
|
|
+ energyModeTotalDescription: 'Dashboard zeigt Gesamtenergie der Smart Plugs',
|
|
|
|
|
+ // File Manager
|
|
|
|
|
+ fileManager: 'Dateimanager',
|
|
|
|
|
+ createArchiveEntry: 'Archiveintrag beim Drucken erstellen',
|
|
|
|
|
+ createArchiveEntryDescription: 'Beim Drucken aus dem Dateimanager optional einen Archiveintrag erstellen',
|
|
|
|
|
+ lowDiskSpaceWarning: 'Warnung bei wenig Speicherplatz',
|
|
|
|
|
+ lowDiskSpaceDescription: 'Warnung anzeigen, wenn freier Speicherplatz unter diesen Schwellenwert fällt',
|
|
|
|
|
+ // Updates
|
|
|
|
|
+ printerFirmware: 'Drucker-Firmware',
|
|
|
|
|
+ checkFirmwareDescription: 'Nach Firmware-Updates von Bambu Lab suchen',
|
|
|
|
|
+ bambuddySoftware: 'Bambuddy Software',
|
|
|
|
|
+ autoCheckDescription: 'Automatisch beim Start nach neuen Versionen suchen',
|
|
|
|
|
+ checkNow: 'Jetzt prüfen',
|
|
|
|
|
+ updateAvailableVersion: 'Update verfügbar: v{{version}}',
|
|
|
|
|
+ releaseNotes: 'Versionshinweise',
|
|
|
|
|
+ updateViaDocker: 'Update über Docker Compose:',
|
|
|
|
|
+ installUpdate: 'Update installieren',
|
|
|
|
|
+ latestVersionRunning: 'Sie verwenden die neueste Version',
|
|
|
|
|
+ failedToCheckUpdates: 'Update-Prüfung fehlgeschlagen: {{error}}',
|
|
|
|
|
+ // Data Management
|
|
|
|
|
+ backupRestore: 'Sicherung & Wiederherstellung',
|
|
|
|
|
+ backupRestoreDescription: 'Einstellungen exportieren/importieren und GitHub-Backup konfigurieren',
|
|
|
|
|
+ goToBackup: 'Zur Sicherung',
|
|
|
|
|
+ // Network tab
|
|
|
|
|
+ externalUrl: 'Externe URL',
|
|
|
|
|
+ externalUrlDescription: 'Die externe URL, unter der Bambuddy erreichbar ist. Wird für Benachrichtigungsbilder und externe Integrationen verwendet.',
|
|
|
|
|
+ bambuddyUrl: 'Bambuddy-URL',
|
|
|
|
|
+ externalUrlHint: 'Protokoll und Port angeben (z.B. http://192.168.1.100:8000)',
|
|
|
|
|
+ ftpRetry: 'FTP-Wiederholung',
|
|
|
|
|
+ ftpRetryDescription: 'FTP-Operationen bei unzuverlässigem Drucker-WLAN wiederholen. Gilt für 3MF-Downloads, Druck-Uploads, Zeitraffer-Downloads und Firmware-Updates.',
|
|
|
|
|
+ autoRetryDescription: 'Fehlgeschlagene FTP-Operationen automatisch wiederholen',
|
|
|
|
|
+ retryAttempts: 'Wiederholungsversuche',
|
|
|
|
|
+ retryDelay: 'Wiederholungsverzögerung',
|
|
|
|
|
+ connectionTimeout: 'Verbindungs-Timeout',
|
|
|
|
|
+ time_one: '{{count}} Mal',
|
|
|
|
|
+ time_other: '{{count}} Mal',
|
|
|
|
|
+ second_one: '{{count}} Sekunde',
|
|
|
|
|
+ second_other: '{{count}} Sekunden',
|
|
|
|
|
+ nSeconds: '{{count}} Sekunden',
|
|
|
|
|
+ increaseForWeakWifi: 'Erhöhen für Drucker mit schwachem WLAN',
|
|
|
|
|
+ // Home Assistant
|
|
|
|
|
+ homeAssistant: 'Home Assistant',
|
|
|
|
|
+ homeAssistantFullDescription: 'Mit Home Assistant verbinden, um Smart Plugs über die HA REST-API zu steuern. Unterstützt Switch-, Light-, Input_Boolean- und Script-Entitäten.',
|
|
|
|
|
+ homeAssistantUrl: 'Home Assistant URL',
|
|
|
|
|
+ longLivedAccessToken: 'Langlebiges Zugriffstoken',
|
|
|
|
|
+ haTokenHint: 'Token in HA erstellen: Profil → Langlebige Zugriffstoken → Token erstellen',
|
|
|
|
|
+ connectionSuccessful: 'Verbindung erfolgreich',
|
|
|
|
|
+ connectionFailed: 'Verbindung fehlgeschlagen',
|
|
|
|
|
+ haConnectionSuccess: 'Erfolgreich mit Home Assistant verbunden.',
|
|
|
|
|
+ haConnectionFailed: 'Verbindung zu Home Assistant fehlgeschlagen.',
|
|
|
|
|
+ // MQTT
|
|
|
|
|
+ mqttPublishing: 'MQTT-Veröffentlichung',
|
|
|
|
|
+ mqttDescription: 'BamBuddy-Ereignisse an einen externen MQTT-Broker zur Integration mit Node-RED, Home Assistant und anderen Automatisierungssystemen veröffentlichen.',
|
|
|
|
|
+ mqttEnableDescription: 'Ereignisse an externen MQTT-Broker veröffentlichen',
|
|
|
|
|
+ brokerHostname: 'Broker-Hostname',
|
|
|
|
|
+ port: 'Port',
|
|
|
|
|
+ usernameOptional: 'Benutzername (optional)',
|
|
|
|
|
+ passwordOptional: 'Passwort (optional)',
|
|
|
|
|
+ topicPrefix: 'Topic-Präfix',
|
|
|
|
|
+ topicPrefixHint: 'Topics werden sein: {{prefix}}/printers/<serial>/status, etc.',
|
|
|
|
|
+ // Prometheus
|
|
|
|
|
+ prometheusMetrics: 'Prometheus-Metriken',
|
|
|
|
|
+ prometheusEndpointDescription: 'Druckermetriken unter <code>/api/v1/metrics</code> für Prometheus/Grafana-Überwachung bereitstellen.',
|
|
|
|
|
+ bearerTokenOptional: 'Bearer-Token (optional)',
|
|
|
|
|
+ bearerTokenHint: 'Wenn gesetzt, müssen Anfragen <code>Authorization: Bearer <token></code> enthalten',
|
|
|
|
|
+ metricsConnectionStatus: 'Verbindungsstatus',
|
|
|
|
|
+ metricsPrinterState: 'Druckerstatus (idle/printing/etc)',
|
|
|
|
|
+ metricsPrintProgress: 'Druckfortschritt 0-100%',
|
|
|
|
|
+ metricsBedTemp: 'Betttemperatur',
|
|
|
|
|
+ metricsNozzleTemp: 'Düsentemperatur',
|
|
|
|
|
+ metricsPrintsTotal: 'Gesamtdrucke nach Ergebnis',
|
|
|
|
|
+ metricsMore: '...und mehr (Schichten, Lüfter, Warteschlange, Filamentverbrauch)',
|
|
|
|
|
+ // Smart Plugs
|
|
|
|
|
+ smartPlugsDescription: 'Smart Plugs (Tasmota oder Home Assistant) verbinden, um Stromsteuerung zu automatisieren und Energieverbrauch für Ihre Drucker zu verfolgen.',
|
|
|
|
|
+ allOn: 'Alle Ein',
|
|
|
|
|
+ allOff: 'Alle Aus',
|
|
|
|
|
+ addSmartPlug: 'Smart Plug hinzufügen',
|
|
|
|
|
+ energySummary: 'Energieübersicht',
|
|
|
|
|
+ currentPower: 'Aktuelle Leistung',
|
|
|
|
|
+ plugsOnline: '{{reachable}}/{{total}} Plugs online',
|
|
|
|
|
+ today: 'Heute',
|
|
|
|
|
+ yesterday: 'Gestern',
|
|
|
|
|
+ total: 'Gesamt',
|
|
|
|
|
+ enablePlugsForSummary: 'Plugs aktivieren, um Energieübersicht zu sehen',
|
|
|
|
|
+ addNotificationProvider: 'Hinzufügen',
|
|
|
|
|
+ // Users
|
|
|
|
|
+ systemBadge: '(System)',
|
|
|
|
|
+ creating: 'Erstellen...',
|
|
|
|
|
+ changing: 'Ändern...',
|
|
|
|
|
+ deleteUserAndItems: 'Benutzer UND dessen Elemente löschen',
|
|
|
|
|
+ deleteUserKeepItems: 'Benutzer löschen, Elemente behalten (werden herrenlos)',
|
|
|
|
|
+ ok: 'OK',
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
// Notifications (for push notifications)
|
|
// Notifications (for push notifications)
|
|
@@ -2868,6 +3025,143 @@ export default {
|
|
|
backupFailed: 'Sicherung fehlgeschlagen',
|
|
backupFailed: 'Sicherung fehlgeschlagen',
|
|
|
restoreFailed: 'Wiederherstellung fehlgeschlagen',
|
|
restoreFailed: 'Wiederherstellung fehlgeschlagen',
|
|
|
restoreNote: 'Virtueller Drucker wird während der Wiederherstellung gestoppt',
|
|
restoreNote: 'Virtueller Drucker wird während der Wiederherstellung gestoppt',
|
|
|
|
|
+
|
|
|
|
|
+ // GitHub Backup
|
|
|
|
|
+ githubBackup: 'GitHub Backup',
|
|
|
|
|
+ enabled: 'Aktiviert',
|
|
|
|
|
+ cloudLoginRequired: 'Bambu Cloud Login erforderlich. Melden Sie sich unter Profile → Cloud-Profile an, um GitHub-Backup zu aktivieren.',
|
|
|
|
|
+ githubDescription: 'Synchronisieren Sie Ihre Profile automatisch mit einem privaten GitHub-Repository für Backup und Versionsverlauf.',
|
|
|
|
|
+ repositoryUrl: 'Repository-URL',
|
|
|
|
|
+ personalAccessToken: 'Persönlicher Zugriffstoken',
|
|
|
|
|
+ tokenSaved: '(gespeichert)',
|
|
|
|
|
+ enterNewToken: 'Neuen Token eingeben zum Aktualisieren',
|
|
|
|
|
+ tokenHint: 'Feingranularer Token mit Lese-/Schreibberechtigung für Inhalte',
|
|
|
|
|
+ branch: 'Branch',
|
|
|
|
|
+ manualOnly: 'Nur manuell',
|
|
|
|
|
+ hourly: 'Stündlich',
|
|
|
|
|
+ daily: 'Täglich',
|
|
|
|
|
+ weekly: 'Wöchentlich',
|
|
|
|
|
+ includeInBackup: 'In Sicherung einschließen',
|
|
|
|
|
+ kProfiles: 'K-Profile',
|
|
|
|
|
+ kProfilesDescription: 'Druckvorschub-Kalibrierung von verbundenen Druckern',
|
|
|
|
|
+ noPrintersConnected: 'Keine Drucker verbunden',
|
|
|
|
|
+ printersConnected: '{{connected}}/{{total}} verbunden',
|
|
|
|
|
+ cloudProfiles: 'Cloud-Profile',
|
|
|
|
|
+ cloudProfilesDescription: 'Filament-, Drucker- und Prozessprofile aus der Bambu Cloud',
|
|
|
|
|
+ appSettings: 'App-Einstellungen',
|
|
|
|
|
+ appSettingsDescription: 'Bambuddy-Konfiguration (komplette Datenbank)',
|
|
|
|
|
+ lastBackupAt: 'Letzte Sicherung:',
|
|
|
|
|
+ noBackupsYet: 'Noch keine Sicherungen',
|
|
|
|
|
+ next: 'Nächste:',
|
|
|
|
|
+ startingBackup: 'Sicherung wird gestartet...',
|
|
|
|
|
+ test: 'Test',
|
|
|
|
|
+ enableBackup: 'Sicherung aktivieren',
|
|
|
|
|
+ testConnection: 'Verbindung testen',
|
|
|
|
|
+ enterRepoUrl: 'Repository-URL eingeben',
|
|
|
|
|
+ enterRepoAndToken: 'Repository-URL und Zugriffstoken eingeben',
|
|
|
|
|
+ repoRequired: 'Repository-URL ist erforderlich',
|
|
|
|
|
+ tokenRequired: 'Zugriffstoken ist erforderlich',
|
|
|
|
|
+ githubBackupEnabled: 'GitHub-Backup aktiviert',
|
|
|
|
|
+ tokenUpdated: 'Token aktualisiert',
|
|
|
|
|
+ settingsSaved: 'Einstellungen gespeichert',
|
|
|
|
|
+ failedToSave: 'Speichern fehlgeschlagen: {{message}}',
|
|
|
|
|
+ backupCompleteFiles: 'Sicherung abgeschlossen - {{count}} Dateien aktualisiert',
|
|
|
|
|
+ backupSkippedNoChanges: 'Sicherung übersprungen - keine Änderungen',
|
|
|
|
|
+ backupFailed2: 'Sicherung fehlgeschlagen: {{message}}',
|
|
|
|
|
+ clearedLogs: '{{count}} Protokolle gelöscht',
|
|
|
|
|
+ failedToClearLogs: 'Protokolle löschen fehlgeschlagen: {{message}}',
|
|
|
|
|
+
|
|
|
|
|
+ // History
|
|
|
|
|
+ history: 'Verlauf',
|
|
|
|
|
+ clear: 'Löschen',
|
|
|
|
|
+ date: 'Datum',
|
|
|
|
|
+ status: 'Status',
|
|
|
|
|
+ commit: 'Commit',
|
|
|
|
|
+
|
|
|
|
|
+ // Local Backup
|
|
|
|
|
+ localBackup: 'Lokale Sicherung',
|
|
|
|
|
+ localBackupDescription: 'Erstellen Sie eine vollständige Sicherung Ihrer Bambuddy-Daten einschließlich Datenbank, Archive, Uploads und aller Dateien.',
|
|
|
|
|
+ downloadBackupLabel: 'Sicherung herunterladen',
|
|
|
|
|
+ completeBackupZip: 'Vollständige Sicherung: Datenbank + alle Dateien (ZIP)',
|
|
|
|
|
+ download: 'Herunterladen',
|
|
|
|
|
+ preparingBackup: 'Sicherung wird vorbereitet...',
|
|
|
|
|
+ creatingArchive: 'Sicherungsarchiv wird erstellt... Dies kann bei großen Archiven eine Weile dauern.',
|
|
|
|
|
+ downloadingFile: 'Sicherungsdatei wird heruntergeladen...',
|
|
|
|
|
+ backupDownloaded: 'Sicherung erfolgreich heruntergeladen',
|
|
|
|
|
+ failedToCreateBackup: 'Sicherung erstellen fehlgeschlagen: {{message}}',
|
|
|
|
|
+ restore: 'Wiederherstellen',
|
|
|
|
|
+ restoreReplacesAll: 'Wiederherstellung ersetzt alle Daten.',
|
|
|
|
|
+ restoreReplacesAllDetail: 'Ihre aktuelle Datenbank und Dateien werden vollständig ersetzt. Nach der Wiederherstellung ist ein Neustart erforderlich.',
|
|
|
|
|
+ restoreConfirmTitle: 'Sicherung wiederherstellen',
|
|
|
|
|
+ restoreConfirmMessage: 'Sind Sie sicher, dass Sie von "{{filename}}" wiederherstellen möchten? Dies ersetzt Ihre aktuelle Datenbank und alle Dateien vollständig. Die Anwendung muss nach der Wiederherstellung neu gestartet werden.',
|
|
|
|
|
+ restoreConfirmButton: 'Sicherung wiederherstellen',
|
|
|
|
|
+ uploadingFile: 'Sicherungsdatei wird hochgeladen...',
|
|
|
|
|
+ backupRestoredRestart: 'Sicherung wiederhergestellt. Bitte starten Sie Bambuddy neu.',
|
|
|
|
|
+ failedToRestore: 'Sicherung wiederherstellen fehlgeschlagen. Bitte überprüfen Sie das Dateiformat.',
|
|
|
|
|
+ reloadNow: 'Jetzt neu laden',
|
|
|
|
|
+ creatingBackup: 'Sicherung erstellen',
|
|
|
|
|
+ restoringBackup: 'Sicherung wiederherstellen',
|
|
|
|
|
+ preparing: 'Vorbereiten...',
|
|
|
|
|
+ processing: 'Verarbeiten...',
|
|
|
|
|
+ doNotClosePage: 'Bitte schließen Sie diese Seite nicht und navigieren Sie nicht weg. Dieser Vorgang kann bei großen Sicherungen mehrere Minuten dauern.',
|
|
|
|
|
+
|
|
|
|
|
+ // RestoreModal
|
|
|
|
|
+ restoring: 'Wiederherstellen...',
|
|
|
|
|
+ restoreComplete: 'Wiederherstellung abgeschlossen',
|
|
|
|
|
+ restoreFailed2: 'Wiederherstellung fehlgeschlagen',
|
|
|
|
|
+ importSettings: 'Einstellungen aus einer Sicherungsdatei importieren',
|
|
|
|
|
+ pleaseWaitRestoring: 'Bitte warten Sie, während Ihre Daten wiederhergestellt werden',
|
|
|
|
|
+ selectBackupFile: 'Klicken Sie, um eine Sicherungsdatei auszuwählen (.json oder .zip)',
|
|
|
|
|
+ duplicateHandling: 'So funktioniert die Duplikatbehandlung:',
|
|
|
|
|
+ matchPrinters: 'Drucker',
|
|
|
|
|
+ matchPrintersBy: 'abgeglichen nach Seriennummer',
|
|
|
|
|
+ matchSmartPlugs: 'Smart Plugs',
|
|
|
|
|
+ matchSmartPlugsBy: 'abgeglichen nach IP-Adresse',
|
|
|
|
|
+ matchNotificationProviders: 'Benachrichtigungsanbieter',
|
|
|
|
|
+ matchNotificationProvidersBy: 'abgeglichen nach Name',
|
|
|
|
|
+ matchFilaments: 'Filamente',
|
|
|
|
|
+ matchFilamentsBy: 'abgeglichen nach Name + Typ + Marke',
|
|
|
|
|
+ matchArchives: 'Archive',
|
|
|
|
|
+ matchArchivesBy: 'abgeglichen nach Inhaltshash (immer übersprungen)',
|
|
|
|
|
+ matchPendingUploads: 'Ausstehende Uploads',
|
|
|
|
|
+ matchPendingUploadsBy: 'abgeglichen nach Dateiname',
|
|
|
|
|
+ matchSettingsTemplates: 'Einstellungen & Vorlagen',
|
|
|
|
|
+ matchSettingsTemplatesBy: 'immer überschrieben',
|
|
|
|
|
+ replaceExisting: 'Vorhandene Daten ersetzen',
|
|
|
|
|
+ keepExisting: 'Vorhandene Daten behalten',
|
|
|
|
|
+ overwriteDescription: 'Bereits vorhandene Elemente mit Sicherungsdaten überschreiben',
|
|
|
|
|
+ keepDescription: 'Nur Elemente wiederherstellen, die noch nicht vorhanden sind',
|
|
|
|
|
+ overwriteCaution: 'Achtung:',
|
|
|
|
|
+ overwriteWarning: 'Das Überschreiben ersetzt Ihre aktuellen Konfigurationen durch Daten aus der Sicherung. Drucker-Zugangscodes werden aus Sicherheitsgründen nie überschrieben.',
|
|
|
|
|
+ cancel: 'Abbrechen',
|
|
|
|
|
+ processingBackup: 'Sicherungsdatei wird verarbeitet...',
|
|
|
|
|
+ itemsRestored: 'Wiederhergestellt',
|
|
|
|
|
+ itemsSkipped: 'Übersprungen',
|
|
|
|
|
+ restored: 'Wiederhergestellt',
|
|
|
|
|
+ skippedAlreadyExist: 'Übersprungen (bereits vorhanden)',
|
|
|
|
|
+ filesCategory: 'Dateien (3MF, Thumbnails, etc.)',
|
|
|
|
|
+ andMore: '...und {{count}} weitere',
|
|
|
|
|
+ newApiKeysGenerated: 'Neue API-Schlüssel generiert',
|
|
|
|
|
+ keysShownOnce: 'Diese Schlüssel werden nur einmal angezeigt. Kopieren Sie sie jetzt!',
|
|
|
|
|
+ copy: 'Kopieren',
|
|
|
|
|
+ noDataFound: 'In der Sicherungsdatei wurden keine Daten zur Wiederherstellung gefunden.',
|
|
|
|
|
+ close: 'Schließen',
|
|
|
|
|
+
|
|
|
|
|
+ // Category labels
|
|
|
|
|
+ categories: {
|
|
|
|
|
+ settings: 'Einstellungen',
|
|
|
|
|
+ notification_providers: 'Benachrichtigungsanbieter',
|
|
|
|
|
+ notification_templates: 'Benachrichtigungsvorlagen',
|
|
|
|
|
+ smart_plugs: 'Smart Plugs',
|
|
|
|
|
+ printers: 'Drucker',
|
|
|
|
|
+ filaments: 'Filamente',
|
|
|
|
|
+ maintenance_types: 'Wartungstypen',
|
|
|
|
|
+ archives: 'Archive',
|
|
|
|
|
+ projects: 'Projekte',
|
|
|
|
|
+ pending_uploads: 'Ausstehende Uploads',
|
|
|
|
|
+ external_links: 'Externe Links',
|
|
|
|
|
+ api_keys: 'API-Schlüssel',
|
|
|
|
|
+ },
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
// Tags
|
|
// Tags
|
|
@@ -3245,6 +3539,319 @@ export default {
|
|
|
mqttSameAsPower: 'Gleich wie Leistungs-Topic oder anders',
|
|
mqttSameAsPower: 'Gleich wie Leistungs-Topic oder anders',
|
|
|
},
|
|
},
|
|
|
},
|
|
},
|
|
|
|
|
+ // SmartPlugCard
|
|
|
|
|
+ linkedTo: 'Verbunden mit:',
|
|
|
|
|
+ monitorOnly: 'Nur Überwachung',
|
|
|
|
|
+ alerts: 'Alarme',
|
|
|
|
|
+ scheduleOn: 'Ein {{time}}',
|
|
|
|
|
+ scheduleOff: 'Aus {{time}}',
|
|
|
|
|
+ on: 'Ein',
|
|
|
|
|
+ off: 'Aus',
|
|
|
|
|
+ power: 'Leistung',
|
|
|
|
|
+ kwhToday: 'kWh Heute',
|
|
|
|
|
+ settings: 'Einstellungen',
|
|
|
|
|
+ automationSettings: 'Automatisierungseinstellungen',
|
|
|
|
|
+ showInSwitchbar: 'In Schaltleiste anzeigen',
|
|
|
|
|
+ quickAccessSidebar: 'Schnellzugriff über Seitenleiste',
|
|
|
|
|
+ enabled: 'Aktiviert',
|
|
|
|
|
+ enableAutomation: 'Automatisierung für diesen Stecker aktivieren',
|
|
|
|
|
+ autoOn: 'Auto Ein',
|
|
|
|
|
+ autoOnDescription: 'Einschalten wenn Druck startet',
|
|
|
|
|
+ autoOff: 'Auto Aus',
|
|
|
|
|
+ autoOffDescription: 'Ausschalten wenn Druck abgeschlossen (einmalig)',
|
|
|
|
|
+ turnOffDelayMode: 'Ausschaltverzögerungsmodus',
|
|
|
|
|
+ time: 'Zeit',
|
|
|
|
|
+ temp: 'Temp',
|
|
|
|
|
+ delayMinutes: 'Verzögerung (Minuten)',
|
|
|
|
|
+ tempThreshold: 'Temperaturschwelle (°C)',
|
|
|
|
|
+ tempThresholdDescription: 'Schaltet aus wenn die Düse unter diese Temperatur abkühlt',
|
|
|
|
|
+ edit: 'Bearbeiten',
|
|
|
|
|
+ deleteConfirm: 'Möchten Sie "{{name}}" wirklich löschen? Dies kann nicht rückgängig gemacht werden.',
|
|
|
|
|
+ turnOnConfirm: 'Möchten Sie "{{name}}" wirklich einschalten?',
|
|
|
|
|
+ turnOffConfirm: 'Möchten Sie "{{name}}" wirklich ausschalten? Dies unterbricht die Stromversorgung des angeschlossenen Geräts.',
|
|
|
|
|
+ failedToTurn: '{{name}}" konnte nicht {{action}} werden',
|
|
|
|
|
+ unknown: 'Unbekannt',
|
|
|
|
|
+ // AddSmartPlugModal
|
|
|
|
|
+ addTitle: 'Smart Plug hinzufügen',
|
|
|
|
|
+ editTitle: 'Smart Plug bearbeiten',
|
|
|
|
|
+ stopScanning: 'Suche beenden',
|
|
|
|
|
+ discoverTasmota: 'Tasmota Geräte suchen',
|
|
|
|
|
+ foundDevices: '{{count}} Gerät(e) gefunden - zum Auswählen klicken:',
|
|
|
|
|
+ noDevicesFound: 'Keine Tasmota Geräte in Ihrem Netzwerk gefunden',
|
|
|
|
|
+ haNotConfigured: 'Home Assistant ist nicht konfiguriert. Einrichtung unter',
|
|
|
|
|
+ haSettingsPath: 'Einstellungen → Netzwerk → Home Assistant',
|
|
|
|
|
+ selectEntity: 'Entität auswählen *',
|
|
|
|
|
+ ipAddress: 'IP-Adresse *',
|
|
|
|
|
+ nameLabel: 'Name *',
|
|
|
|
|
+ username: 'Benutzername',
|
|
|
|
|
+ password: 'Passwort',
|
|
|
|
|
+ authHint: 'Leer lassen, wenn Ihr Tasmota-Gerät keine Authentifizierung benötigt',
|
|
|
|
|
+ linkToPrinter: 'Mit Drucker verbinden',
|
|
|
|
|
+ noPrinter: 'Kein Drucker (nur manuelle Steuerung)',
|
|
|
|
|
+ linkingDescription: 'Verknüpfung ermöglicht automatisches Ein-/Ausschalten bei Druckstart/-ende',
|
|
|
|
|
+ powerAlerts: 'Leistungsalarme',
|
|
|
|
|
+ alertAbove: 'Alarm wenn über (W)',
|
|
|
|
|
+ alertBelow: 'Alarm wenn unter (W)',
|
|
|
|
|
+ alertDescription: 'Benachrichtigung wenn der Stromverbrauch diese Schwellenwerte überschreitet. Leer lassen um diese Richtung zu deaktivieren.',
|
|
|
|
|
+ dailySchedule: 'Tagesplan',
|
|
|
|
|
+ turnOnAt: 'Einschalten um',
|
|
|
|
|
+ turnOffAt: 'Ausschalten um',
|
|
|
|
|
+ scheduleDescription: 'Den Stecker automatisch täglich zu diesen Zeiten ein-/ausschalten. Leer lassen um diese Aktion zu überspringen.',
|
|
|
|
|
+ showOnPrinterCard: 'Auf Druckerkarte anzeigen',
|
|
|
|
|
+ displayOnPrinterCard: 'Schaltfläche auf Druckerkarte anzeigen',
|
|
|
|
|
+ connectedResult: 'Verbunden!',
|
|
|
|
|
+ deviceLabel: 'Gerät: {{name}} - ',
|
|
|
|
|
+ stateLabel: 'Status: {{state}}',
|
|
|
|
|
+ test: 'Test',
|
|
|
|
|
+ delete: 'Löschen',
|
|
|
|
|
+ save: 'Speichern',
|
|
|
|
|
+ add: 'Hinzufügen',
|
|
|
|
|
+ cancel: 'Abbrechen',
|
|
|
|
|
+ failedToStartScan: 'Suche konnte nicht gestartet werden',
|
|
|
|
|
+ nameRequired: 'Name ist erforderlich',
|
|
|
|
|
+ entityRequired: 'Entität ist für Home Assistant Stecker erforderlich',
|
|
|
|
|
+ mqttTopicRequired: 'Mindestens ein MQTT-Topic muss für Leistung, Energie oder Statusüberwachung konfiguriert sein',
|
|
|
|
|
+ loadingEntities: 'Entitäten werden geladen...',
|
|
|
|
|
+ loading: 'Laden...',
|
|
|
|
|
+ failedToLoadEntities: 'Entitäten konnten nicht geladen werden: {{error}}',
|
|
|
|
|
+ noEntitiesMatching: 'Keine Entitäten gefunden die "{{search}}" entsprechen',
|
|
|
|
|
+ noEntitiesAvailable: 'Keine Entitäten verfügbar',
|
|
|
|
|
+ searchingEntities: 'Alle Entitäten durchsuchen ({{count}} gefunden)',
|
|
|
|
|
+ showingEntities: 'Zeige switch, light, input_boolean ({{count}} verfügbar)',
|
|
|
|
|
+ energyMonitoringOptional: 'Energieüberwachung (Optional)',
|
|
|
|
|
+ energyMonitoringHint: 'Sensoren suchen und auswählen, die Leistungs-/Energiedaten liefern.',
|
|
|
|
|
+ powerSensorW: 'Leistungssensor (W)',
|
|
|
|
|
+ energyTodayKwh: 'Energie Heute (kWh)',
|
|
|
|
|
+ totalEnergyKwh: 'Gesamtenergie (kWh)',
|
|
|
|
|
+ noMatchingSensors: 'Keine passenden Sensoren',
|
|
|
|
|
+ none: 'Keine',
|
|
|
|
|
+ mqttNotConfigured: 'MQTT-Broker nicht konfiguriert. Broker-Adresse einstellen unter',
|
|
|
|
|
+ mqttSettingsPath: 'Einstellungen → Netzwerk → MQTT-Veröffentlichung',
|
|
|
|
|
+ mqttNotConfiguredSuffix: '(Sie müssen die Veröffentlichung nicht aktivieren, nur die Broker-Details ausfüllen).',
|
|
|
|
|
+ mqttMonitorOnlyDescription: 'MQTT-Stecker empfangen Leistungs-/Energiedaten über MQTT-Abonnement. Ein-/Ausschalten ist nicht verfügbar - verwenden Sie Ihren MQTT-Broker oder Ihr Home-Automation-System.',
|
|
|
|
|
+ powerMonitoring: 'Leistungsüberwachung',
|
|
|
|
|
+ energyMonitoring: 'Energieüberwachung',
|
|
|
|
|
+ stateMonitoring: 'Statusüberwachung',
|
|
|
|
|
+ optional: 'optional',
|
|
|
|
|
+ topic: 'Topic',
|
|
|
|
|
+ jsonPath: 'JSON-Pfad',
|
|
|
|
|
+ multiplier: 'Multiplikator',
|
|
|
|
|
+ onValue: 'EIN-Wert',
|
|
|
|
|
+ mqttPowerHint: 'JSON-Pfad extrahiert Wert aus JSON-Payload (z.B. "power_l1"). Leer lassen wenn Topic rohe numerische Werte sendet.\nMultiplikator 0.001 für mW→W, 1000 für kW→W verwenden.',
|
|
|
|
|
+ mqttEnergyHint: 'JSON-Pfad extrahiert Wert aus JSON-Payload. Leer lassen für rohe Werte.\nMultiplikator 0.001 für Wh→kWh, 1000 für MWh→kWh verwenden.',
|
|
|
|
|
+ mqttStateHint: 'JSON-Pfad extrahiert Wert aus JSON-Payload. Leer lassen für rohe Werte.\nEIN-Wert: der genaue String der "EIN" bedeutet. Leer lassen für Auto-Erkennung (ON, true, 1).',
|
|
|
|
|
+ noSwitchesInSwitchbar: 'Keine Schalter in der Schaltleiste',
|
|
|
|
|
+ enableSwitchbarHint: '"In Schaltleiste anzeigen" unter Einstellungen > Smart Plugs aktivieren',
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ // Notifications
|
|
|
|
|
+ notifications: {
|
|
|
|
|
+ // Provider types
|
|
|
|
|
+ providerTypes: {
|
|
|
|
|
+ callmebot: 'CallMeBot/WhatsApp',
|
|
|
|
|
+ ntfy: 'ntfy',
|
|
|
|
|
+ pushover: 'Pushover',
|
|
|
|
|
+ telegram: 'Telegram',
|
|
|
|
|
+ email: 'E-Mail',
|
|
|
|
|
+ discord: 'Discord',
|
|
|
|
|
+ webhook: 'Webhook',
|
|
|
|
|
+ },
|
|
|
|
|
+ // Provider descriptions
|
|
|
|
|
+ providerDescriptions: {
|
|
|
|
|
+ email: 'SMTP-E-Mail-Benachrichtigungen',
|
|
|
|
|
+ telegram: 'Benachrichtigungen über Telegram-Bot',
|
|
|
|
|
+ discord: 'An Discord-Kanal per Webhook senden',
|
|
|
|
|
+ ntfy: 'Kostenlose, selbst-hostbare Push-Benachrichtigungen',
|
|
|
|
|
+ pushover: 'Einfache, zuverlässige Push-Benachrichtigungen',
|
|
|
|
|
+ callmebot: 'Kostenlose WhatsApp-Benachrichtigungen über CallMeBot',
|
|
|
|
|
+ webhook: 'Generischer HTTP-POST an beliebige URL',
|
|
|
|
|
+ },
|
|
|
|
|
+ // NotificationProviderCard
|
|
|
|
|
+ lastSuccess: 'Zuletzt: {{date}}',
|
|
|
|
|
+ error: 'Fehler',
|
|
|
|
|
+ printer: 'Drucker:',
|
|
|
|
|
+ allPrinters: 'Alle Drucker',
|
|
|
|
|
+ sendTestNotification: 'Testbenachrichtigung senden',
|
|
|
|
|
+ eventSettings: 'Ereigniseinstellungen',
|
|
|
|
|
+ enabled: 'Aktiviert',
|
|
|
|
|
+ sendFromProvider: 'Benachrichtigungen von diesem Anbieter senden',
|
|
|
|
|
+ // Event categories
|
|
|
|
|
+ printEvents: 'Druckereignisse',
|
|
|
|
|
+ printerStatus: 'Druckerstatus',
|
|
|
|
|
+ amsAlarms: 'AMS-Alarme',
|
|
|
|
|
+ amsHtAlarms: 'AMS-HT-Alarme',
|
|
|
|
|
+ printQueue: 'Druckwarteschlange',
|
|
|
|
|
+ // Event tags (badges)
|
|
|
|
|
+ start: 'Start',
|
|
|
|
|
+ plateCheck: 'Plattenkontrolle',
|
|
|
|
|
+ complete: 'Abgeschlossen',
|
|
|
|
|
+ failed: 'Fehlgeschlagen',
|
|
|
|
|
+ stopped: 'Gestoppt',
|
|
|
|
|
+ progress: 'Fortschritt',
|
|
|
|
|
+ offline: 'Offline',
|
|
|
|
|
+ lowFilament: 'Filament niedrig',
|
|
|
|
|
+ maintenance: 'Wartung',
|
|
|
|
|
+ amsHumidity: 'AMS-Feuchtigkeit',
|
|
|
|
|
+ amsTemp: 'AMS-Temperatur',
|
|
|
|
|
+ amsHtHumidity: 'AMS-HT-Feuchtigkeit',
|
|
|
|
|
+ amsHtTemp: 'AMS-HT-Temperatur',
|
|
|
|
|
+ bedCooled: 'Bett abgekühlt',
|
|
|
|
|
+ quiet: 'Ruhe',
|
|
|
|
|
+ digest: 'Zusammenfassung {{time}}',
|
|
|
|
|
+ // Event labels (expanded settings)
|
|
|
|
|
+ printStarted: 'Druck gestartet',
|
|
|
|
|
+ plateNotEmpty: 'Platte nicht leer',
|
|
|
|
|
+ plateNotEmptyDescription: 'Objekte vor dem Druck erkannt',
|
|
|
|
|
+ printCompleted: 'Druck abgeschlossen',
|
|
|
|
|
+ bedCooledLabel: 'Bett abgekühlt',
|
|
|
|
|
+ bedCooledDescription: 'Bett nach dem Druck unter Schwellenwert abgekühlt',
|
|
|
|
|
+ printFailed: 'Druck fehlgeschlagen',
|
|
|
|
|
+ printStopped: 'Druck gestoppt',
|
|
|
|
|
+ progressMilestones: 'Fortschrittsmeilensteine',
|
|
|
|
|
+ progressMilestonesDescription: 'Benachrichtigung bei 25%, 50%, 75%',
|
|
|
|
|
+ printerOffline: 'Drucker offline',
|
|
|
|
|
+ printerError: 'Druckerfehler',
|
|
|
|
|
+ lowFilamentLabel: 'Filament niedrig',
|
|
|
|
|
+ maintenanceDue: 'Wartung fällig',
|
|
|
|
|
+ maintenanceDueDescription: 'Benachrichtigen, wenn Wartung erforderlich ist',
|
|
|
|
|
+ amsHumidityHigh: 'AMS-Feuchtigkeit hoch',
|
|
|
|
|
+ amsHumidityHighDescription: 'Normale AMS-Feuchtigkeit überschreitet Schwellenwert',
|
|
|
|
|
+ amsTemperatureHigh: 'AMS-Temperatur hoch',
|
|
|
|
|
+ amsTemperatureHighDescription: 'Normale AMS-Temperatur überschreitet Schwellenwert',
|
|
|
|
|
+ amsHtHumidityHigh: 'AMS-HT-Feuchtigkeit hoch',
|
|
|
|
|
+ amsHtHumidityHighDescription: 'AMS-HT-Feuchtigkeit überschreitet Schwellenwert',
|
|
|
|
|
+ amsHtTemperatureHigh: 'AMS-HT-Temperatur hoch',
|
|
|
|
|
+ amsHtTemperatureHighDescription: 'AMS-HT-Temperatur überschreitet Schwellenwert',
|
|
|
|
|
+ // Queue events
|
|
|
|
|
+ jobAdded: 'Auftrag hinzugefügt',
|
|
|
|
|
+ jobAddedDescription: 'Auftrag zur Warteschlange hinzugefügt',
|
|
|
|
|
+ jobAssigned: 'Auftrag zugewiesen',
|
|
|
|
|
+ jobAssignedDescription: 'Modellbasierter Auftrag einem Drucker zugewiesen',
|
|
|
|
|
+ jobStarted: 'Auftrag gestartet',
|
|
|
|
|
+ jobStartedDescription: 'Warteschlangenauftrag hat Druck begonnen',
|
|
|
|
|
+ jobWaiting: 'Auftrag wartet',
|
|
|
|
|
+ jobWaitingDescription: 'Auftrag wartet auf Filament',
|
|
|
|
|
+ jobSkipped: 'Auftrag übersprungen',
|
|
|
|
|
+ jobSkippedDescription: 'Auftrag übersprungen (vorheriger fehlgeschlagen)',
|
|
|
|
|
+ jobFailed: 'Auftrag fehlgeschlagen',
|
|
|
|
|
+ jobFailedDescription: 'Auftrag konnte nicht gestartet werden',
|
|
|
|
|
+ queueComplete: 'Warteschlange abgeschlossen',
|
|
|
|
|
+ queueCompleteDescription: 'Alle Warteschlangenaufträge beendet',
|
|
|
|
|
+ // Quiet hours
|
|
|
|
|
+ quietHours: 'Ruhezeiten',
|
|
|
|
|
+ noNotificationsDuring: 'Keine Benachrichtigungen während dieser Zeiten',
|
|
|
|
|
+ editProviderToChangeQuietHours: 'Anbieter bearbeiten, um Ruhezeiten zu ändern',
|
|
|
|
|
+ // Daily digest
|
|
|
|
|
+ dailyDigest: 'Tägliche Zusammenfassung',
|
|
|
|
|
+ batchNotifications: 'Benachrichtigungen zu einer täglichen Zusammenfassung bündeln',
|
|
|
|
|
+ sendAt: 'Senden um {{time}}',
|
|
|
|
|
+ editProviderToChangeDigestTime: 'Anbieter bearbeiten, um Zusammenfassungszeit zu ändern',
|
|
|
|
|
+ // Actions
|
|
|
|
|
+ edit: 'Bearbeiten',
|
|
|
|
|
+ deleteProvider: 'Benachrichtigungsanbieter löschen',
|
|
|
|
|
+ deleteConfirm: 'Sind Sie sicher, dass Sie "{{name}}" löschen möchten? Dies kann nicht rückgängig gemacht werden.',
|
|
|
|
|
+ delete: 'Löschen',
|
|
|
|
|
+ // AddNotificationModal
|
|
|
|
|
+ addTitle: 'Benachrichtigungsanbieter hinzufügen',
|
|
|
|
|
+ editTitle: 'Benachrichtigungsanbieter bearbeiten',
|
|
|
|
|
+ nameLabel: 'Name *',
|
|
|
|
|
+ namePlaceholder: 'Meine Benachrichtigungen',
|
|
|
|
|
+ providerTypeLabel: 'Anbietertyp *',
|
|
|
|
|
+ configuration: 'Konfiguration',
|
|
|
|
|
+ testConfiguration: 'Konfiguration testen',
|
|
|
|
|
+ printerFilter: 'Druckerfilter',
|
|
|
|
|
+ onlyFromPrinter: 'Nur Benachrichtigungen für Ereignisse von diesem Drucker senden',
|
|
|
|
|
+ quietHoursDnd: 'Ruhezeiten (Nicht stören)',
|
|
|
|
|
+ quietStart: 'Start',
|
|
|
|
|
+ quietEnd: 'Ende',
|
|
|
|
|
+ dailyDigestLabel: 'Tägliche Zusammenfassung',
|
|
|
|
|
+ sendDigestAt: 'Zusammenfassung senden um',
|
|
|
|
|
+ digestCollected: 'Ereignisse werden gesammelt und als einzelne Zusammenfassung zu dieser Zeit gesendet',
|
|
|
|
|
+ notificationEvents: 'Benachrichtigungsereignisse',
|
|
|
|
|
+ progressPercent: '(25%, 50%, 75%)',
|
|
|
|
|
+ bedCooledAfterPrint: '(nach Druckabschluss)',
|
|
|
|
|
+ cancel: 'Abbrechen',
|
|
|
|
|
+ save: 'Speichern',
|
|
|
|
|
+ add: 'Hinzufügen',
|
|
|
|
|
+ nameRequired: 'Name ist erforderlich',
|
|
|
|
|
+ fieldRequired: '{{field}} ist erforderlich',
|
|
|
|
|
+ // Config field labels
|
|
|
|
|
+ phoneNumber: 'Telefonnummer',
|
|
|
|
|
+ apiKey: 'API-Schlüssel',
|
|
|
|
|
+ serverUrl: 'Server-URL',
|
|
|
|
|
+ topic: 'Thema',
|
|
|
|
|
+ authToken: 'Auth-Token',
|
|
|
|
|
+ userKey: 'Benutzerschlüssel',
|
|
|
|
|
+ appToken: 'App-Token',
|
|
|
|
|
+ priority: 'Priorität',
|
|
|
|
|
+ botToken: 'Bot-Token',
|
|
|
|
|
+ chatId: 'Chat-ID',
|
|
|
|
|
+ smtpServer: 'SMTP-Server',
|
|
|
|
|
+ smtpPort: 'SMTP-Port',
|
|
|
|
|
+ security: 'Sicherheit',
|
|
|
|
|
+ authentication: 'Authentifizierung',
|
|
|
|
|
+ username: 'Benutzername',
|
|
|
|
|
+ password: 'Passwort',
|
|
|
|
|
+ fromEmail: 'Absender-E-Mail',
|
|
|
|
|
+ toEmail: 'Empfänger-E-Mail',
|
|
|
|
|
+ webhookUrl: 'Webhook-URL',
|
|
|
|
|
+ payloadFormat: 'Payload-Format',
|
|
|
|
|
+ authorization: 'Autorisierung',
|
|
|
|
|
+ titleFieldName: 'Titel-Feldname',
|
|
|
|
|
+ messageFieldName: 'Nachrichten-Feldname',
|
|
|
|
|
+ // NotificationTemplateEditor
|
|
|
|
|
+ editTemplate: 'Vorlage bearbeiten: {{name}}',
|
|
|
|
|
+ titleLabel: 'Titel',
|
|
|
|
|
+ bodyLabel: 'Inhalt',
|
|
|
|
|
+ titlePlaceholder: 'Benachrichtigungstitel...',
|
|
|
|
|
+ bodyPlaceholder: 'Benachrichtigungsinhalt...',
|
|
|
|
|
+ availableVariables: 'Verfügbare Variablen',
|
|
|
|
|
+ clickToInsert: 'Klicken, um an Cursorposition im Inhalt einzufügen',
|
|
|
|
|
+ livePreview: 'Live-Vorschau',
|
|
|
|
|
+ hide: 'Ausblenden',
|
|
|
|
|
+ show: 'Anzeigen',
|
|
|
|
|
+ loadingPreview: 'Vorschau wird geladen...',
|
|
|
|
|
+ enterTemplateContent: 'Vorlageninhalt eingeben, um Vorschau zu sehen',
|
|
|
|
|
+ titlePreview: 'Titel:',
|
|
|
|
|
+ bodyPreview: 'Inhalt:',
|
|
|
|
|
+ resetToDefault: 'Auf Standard zurücksetzen',
|
|
|
|
|
+ titleRequired: 'Titel ist erforderlich',
|
|
|
|
|
+ bodyRequired: 'Inhalt ist erforderlich',
|
|
|
|
|
+ // NotificationLogViewer
|
|
|
|
|
+ notificationLog: 'Benachrichtigungsprotokoll',
|
|
|
|
|
+ showFailedOnly: 'Nur fehlgeschlagene',
|
|
|
|
|
+ last24Hours: 'Letzte 24 Stunden',
|
|
|
|
|
+ last7Days: 'Letzte 7 Tage',
|
|
|
|
|
+ last30Days: 'Letzte 30 Tage',
|
|
|
|
|
+ last90Days: 'Letzte 90 Tage',
|
|
|
|
|
+ justNow: 'Gerade eben',
|
|
|
|
|
+ noFailedNotifications: 'Keine fehlgeschlagenen Benachrichtigungen',
|
|
|
|
|
+ noNotificationsLogged: 'Keine Benachrichtigungen protokolliert',
|
|
|
|
|
+ unknownProvider: 'Unbekannter Anbieter',
|
|
|
|
|
+ logTitle: 'Titel',
|
|
|
|
|
+ logMessage: 'Nachricht',
|
|
|
|
|
+ logError: 'Fehler',
|
|
|
|
|
+ logProvider: 'Anbieter: {{type}}',
|
|
|
|
|
+ logTime: 'Zeit: {{time}}',
|
|
|
|
|
+ refresh: 'Aktualisieren',
|
|
|
|
|
+ clearOld: 'Alte löschen',
|
|
|
|
|
+ statsSummary: 'Letzte {{days}} Tage:',
|
|
|
|
|
+ statsNotifications: 'Benachrichtigungen',
|
|
|
|
|
+ statsSent: '{{count}} gesendet',
|
|
|
|
|
+ statsFailed: '{{count}} fehlgeschlagen',
|
|
|
|
|
+ // Event type labels (for log viewer)
|
|
|
|
|
+ eventTypes: {
|
|
|
|
|
+ print_start: 'Druck gestartet',
|
|
|
|
|
+ print_complete: 'Druck abgeschlossen',
|
|
|
|
|
+ print_failed: 'Druck fehlgeschlagen',
|
|
|
|
|
+ print_stopped: 'Druck gestoppt',
|
|
|
|
|
+ print_progress: 'Fortschritt',
|
|
|
|
|
+ printer_offline: 'Drucker offline',
|
|
|
|
|
+ printer_error: 'Druckerfehler',
|
|
|
|
|
+ filament_low: 'Filament niedrig',
|
|
|
|
|
+ maintenance_due: 'Wartung fällig',
|
|
|
|
|
+ test: 'Test',
|
|
|
|
|
+ },
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
// Rich Text Editor
|
|
// Rich Text Editor
|