export default {
// Navigation
nav: {
printers: 'Drucker',
archives: 'Archiv',
queue: 'Warteschlange',
stats: 'Statistiken',
profiles: 'Profile',
maintenance: 'Wartung',
projects: 'Projekte',
files: 'Dateimanager',
settings: 'Einstellungen',
system: 'System',
collapseSidebar: 'Seitenleiste einklappen',
expandSidebar: 'Seitenleiste ausklappen',
update: 'Update',
updateAvailable: 'Update verfügbar: v{{version}}',
updateAvailableBanner: 'Version {{version}} ist verfügbar!',
viewUpdate: 'Update anzeigen',
viewOnGithub: 'Auf GitHub ansehen',
keyboardShortcuts: 'Tastaturkürzel (?)',
switchToLight: 'Zum hellen Modus wechseln',
switchToDark: 'Zum dunklen Modus wechseln',
smartSwitches: 'Smart Switches',
logout: 'Abmelden',
},
// Common
common: {
save: 'Speichern',
saving: 'Speichern...',
cancel: 'Abbrechen',
delete: 'Löschen',
edit: 'Bearbeiten',
add: 'Hinzufügen',
close: 'Schließen',
confirm: 'Bestätigen',
loading: 'Lädt...',
error: 'Fehler',
success: 'Erfolg',
warning: 'Warnung',
enabled: 'Aktiviert',
disabled: 'Deaktiviert',
yes: 'Ja',
no: 'Nein',
on: 'An',
off: 'Aus',
all: 'Alle',
none: 'Keine',
search: 'Suchen',
filter: 'Filtern',
sort: 'Sortieren',
refresh: 'Aktualisieren',
download: 'Herunterladen',
upload: 'Hochladen',
actions: 'Aktionen',
status: 'Status',
name: 'Name',
description: 'Beschreibung',
date: 'Datum',
time: 'Zeit',
hours: 'Stunden',
minutes: 'Minuten',
seconds: 'Sekunden',
days: 'Tage',
enable: 'Aktivieren',
disable: 'Deaktivieren',
permissions: 'Berechtigungen',
noPrinters: 'Keine Drucker konfiguriert',
noData: 'Keine Daten verfügbar',
linkNotFound: 'Link nicht gefunden',
required: 'Erforderlich',
optional: 'Optional',
dismiss: 'Schließen',
apply: 'Anwenden',
reset: 'Zurücksetzen',
clear: 'Leeren',
selectAll: 'Alle auswählen',
deselectAll: 'Auswahl aufheben',
noChange: '— Keine Änderung —',
unchanged: 'Unverändert',
unassigned: 'Nicht zugewiesen',
unknown: 'Unbekannt',
unknownError: 'Unbekannter Fehler',
today: 'Heute',
asap: 'Sofort',
overdue: 'Überfällig',
now: 'Jetzt',
collapse: 'Einklappen',
expand: 'Ausklappen',
viewArchive: 'Archiv anzeigen',
viewInFileManager: 'Im Dateimanager anzeigen',
addedBy: 'Hinzugefügt von {{username}}',
prints: 'Drucke',
more: '+{{count}} weitere',
ascending: 'Aufsteigend',
descending: 'Absteigend',
printer: 'Drucker',
remove: 'Entfernen',
type: 'Typ',
print: 'Drucken',
rename: 'Umbenennen',
move: 'Verschieben',
create: 'Erstellen',
duplicate: 'Duplizieren',
left: 'Links',
right: 'Rechts',
},
// Printers page
printers: {
title: 'Drucker',
addPrinter: 'Drucker hinzufügen',
editPrinter: 'Drucker bearbeiten',
deletePrinter: 'Drucker löschen',
printerName: 'Druckername',
serialNumber: 'Seriennummer',
ipAddress: 'IP-Adresse',
accessCode: 'Zugangscode',
model: 'Modell',
nozzleCount: 'Düsenanzahl',
autoArchive: 'Automatische Archivierung',
status: {
idle: 'Bereit',
printing: 'Druckt',
paused: 'Pausiert',
offline: 'Offline',
error: 'Fehler',
finished: 'Fertig',
unknown: 'Unbekannt',
},
temperatures: {
nozzle: 'Düse',
bed: 'Druckbett',
chamber: 'Kammer',
},
progress: '{{percent}}% abgeschlossen',
timeRemaining: 'Noch {{time}}',
deleteConfirm: 'Möchten Sie "{{name}}" wirklich löschen?',
maintenanceOk: 'Wartung OK',
maintenanceWarning: '{{count}} Warnung',
maintenanceWarning_plural: '{{count}} Warnungen',
maintenanceDue: '{{count}} fällig',
maintenanceDue_plural: '{{count}} fällig',
// Sort options
sort: {
name: 'Name',
status: 'Status',
model: 'Modell',
location: 'Standort',
ascending: 'Aufsteigend sortieren',
descending: 'Absteigend sortieren',
},
// Card size
cardSize: {
small: 'Kleine Karten',
medium: 'Mittlere Karten',
large: 'Große Karten',
extraLarge: 'Extra große Karten',
},
// Controls
hideOffline: 'Offline ausblenden',
powerOn: 'Einschalten',
offlinePrintersWithPlugs: 'Offline-Drucker mit Smart-Plugs',
noPrintersConfigured: 'Noch keine Drucker konfiguriert',
// Printer card
readyToPrint: 'Druckbereit',
external: 'Extern',
deleteArchives: 'Druckarchive löschen',
noLabel: 'Keine Bezeichnung',
printPreview: 'Druckvorschau',
width: 'Breite',
height: 'Höhe',
noObjectsFound: 'Keine Objekte gefunden',
objectsLoadedOnPrintStart: 'Objekte werden beim Druckstart geladen',
willBeSkipped: 'Wird übersprungen',
name: 'Name',
serialCannotBeChanged: 'Seriennummer kann nicht geändert werden',
locationHelp: 'Dient zur Gruppierung von Druckern und zum Filtern von Warteschlangenaufträgen',
// WiFi signal strength
wifiSignal: {
veryWeak: 'Sehr schwach',
weak: 'Schwach',
fair: 'Ausreichend',
good: 'Gut',
excellent: 'Ausgezeichnet',
},
// Maintenance
maintenanceUpToDate: 'Alle Wartungen aktuell - Klicken zum Anzeigen',
// Chamber light
chamberLightOn: 'Kammerbeleuchtung einschalten',
chamberLightOff: 'Kammerbeleuchtung ausschalten',
// Files
browseFiles: 'Druckerdateien durchsuchen',
// Smart plug
autoOffAfterPrint: 'Automatisches Ausschalten nach Druck',
autoOffExecuted: 'Auto-off wurde ausgeführt - Drucker einschalten zum Zurücksetzen',
// HMS errors
hmsErrors: 'HMS-Fehler',
viewHmsErrors: '{{count}} HMS-Fehler anzeigen',
// Actions
resume: 'Fortsetzen',
pause: 'Pausieren',
stop: 'Stoppen',
camera: 'Kamera',
skipObject: 'Objekt überspringen',
reconnect: 'Neu verbinden',
mqttDebug: 'MQTT-Debug',
activeNozzle: 'Aktiv: {{nozzle}} Düse',
// Firmware
firmwareUpdate: 'Firmware-Update',
firmwareInstructions: 'Gehen Sie auf dem Touchscreen des Druckers zu',
firmwareNav: 'Navigieren Sie zu',
settings: 'Einstellungen',
firmware: 'Firmware',
// Discovery
discoverPrinters: 'Drucker entdecken',
searching: 'Suche...',
manualEntry: 'Manuelle Eingabe',
addFromCloud: 'Aus Cloud hinzufügen',
// Toast messages
toast: {
printerDeleted: 'Drucker gelöscht',
printerAdded: 'Drucker hinzugefügt',
printerUpdated: 'Drucker aktualisiert',
failedToDelete: 'Drucker konnte nicht gelöscht werden',
failedToAdd: 'Drucker konnte nicht hinzugefügt werden',
failedToUpdate: 'Drucker konnte nicht aktualisiert werden',
commandSent: 'Befehl gesendet',
failedToSendCommand: 'Befehl konnte nicht gesendet werden',
turnedOn: '{{name}} eingeschaltet',
failedToPowerOn: '{{name}} konnte nicht eingeschaltet werden',
scriptTriggered: 'Skript ausgelöst',
printStopped: 'Druck gestoppt',
printPaused: 'Druck pausiert',
printResumed: 'Druck fortgesetzt',
referenceDeleted: 'Referenz gelöscht',
detectionAreaSaved: 'Erkennungsbereich gespeichert',
failedToRunScript: 'Skript konnte nicht ausgeführt werden',
failedToStopPrint: 'Druck konnte nicht gestoppt werden',
failedToPausePrint: 'Druck konnte nicht pausiert werden',
failedToResumePrint: 'Druck konnte nicht fortgesetzt werden',
failedToControlChamberLight: 'Kammerbeleuchtung konnte nicht gesteuert werden',
failedToUpdateSetting: 'Einstellung konnte nicht aktualisiert werden',
failedToSkipObjects: 'Objekte konnten nicht übersprungen werden',
failedToRereadRfid: 'RFID konnte nicht erneut gelesen werden',
failedToCheckPlate: 'Platte konnte nicht überprüft werden',
failedToUpdateLabel: 'Bezeichnung konnte nicht aktualisiert werden',
failedToDeleteReference: 'Referenz konnte nicht gelöscht werden',
failedToSaveDetectionArea: 'Erkennungsbereich konnte nicht gespeichert werden',
plateCheckEnabled: 'Plattenprüfung aktiviert',
plateCheckDisabled: 'Plattenprüfung deaktiviert',
calibrationSaved: 'Kalibrierung gespeichert!',
calibrationFailed: 'Kalibrierung fehlgeschlagen',
rfidRereadInitiated: 'RFID-Neueinlesen gestartet',
},
// Connection status
connection: {
connected: 'Verbunden',
offline: 'Offline',
},
// Queue info
queue: {
inQueue: '{{count}} Druck in Warteschlange',
inQueue_plural: '{{count}} Drucke in Warteschlange',
},
// Controls section
controls: 'Steuerung',
// RFID
rfid: {
reread: 'RFID neu lesen',
},
// Permissions
permission: {
noAdd: 'Sie haben keine Berechtigung, Drucker hinzuzufügen',
noEdit: 'Sie haben keine Berechtigung, Drucker zu bearbeiten',
noDelete: 'Sie haben keine Berechtigung, Drucker zu löschen',
noControl: 'Sie haben keine Berechtigung, Drucker zu steuern',
noFiles: 'Sie haben keine Berechtigung, auf Druckerdateien zuzugreifen',
noAmsRfid: 'Sie haben keine Berechtigung, AMS-RFID erneut zu lesen',
noSmartPlugControl: 'Sie haben keine Berechtigung, Smart Plugs zu steuern',
},
// Add/Edit modal
modal: {
addTitle: 'Drucker hinzufügen',
editTitle: 'Drucker bearbeiten',
myPrinter: 'Mein Drucker',
selectModel: 'Modell auswählen...',
locationGroup: 'Standort / Gruppe (optional)',
locationPlaceholder: 'z.B. Werkstatt, Büro, Keller',
autoArchiveLabel: 'Abgeschlossene Drucke automatisch archivieren',
fromPrinterSettings: 'Aus Druckereinstellungen',
modelOptional: 'Modell (optional)',
saveChanges: 'Änderungen speichern',
},
// Skip objects
skipObjects: {
tooltip: 'Objekte überspringen',
onlyWhilePrinting: 'Objekte überspringen (nur während des Drucks)',
requiresMultiple: 'Objekte überspringen (erfordert 2+ Objekte)',
title: 'Objekte überspringen',
matchIdsInfo: 'IDs mit Drucker-Display abgleichen',
printerShowsIds: 'Der Druckerbildschirm zeigt Objekt-IDs auf der Bauplatte',
skipSelected: 'Ausgewählte überspringen',
skipping: 'Überspringe...',
noObjectsSelected: 'Keine Objekte ausgewählt',
selectObjectsToSkip: 'Wählen Sie Objekte aus, die Sie vom aktuellen Druck überspringen möchten',
skipped: 'übersprungen',
objectsSkipped: 'Objekte übersprungen',
activeCount: '{{count}} aktiv',
waitForLayer: 'Warten Sie auf Schicht 2+ zum Überspringen von Objekten (aktuell Schicht {{layer}})',
skip: 'Überspringen',
},
// Confirm modals
confirm: {
deleteTitle: 'Drucker löschen',
deleteMessage: 'Möchten Sie "{{name}}" wirklich löschen? Alle Verbindungseinstellungen werden entfernt.',
deleteArchivesNote: 'Der gesamte Druckverlauf für diesen Drucker wird dauerhaft gelöscht.',
keepArchivesNote: 'Der Druckverlauf wird beibehalten, aber nicht mehr mit diesem Drucker verknüpft.',
stopTitle: 'Druck stoppen',
stopMessage: 'Möchten Sie den aktuellen Druck auf "{{name}}" wirklich stoppen? Der Druckauftrag wird abgebrochen.',
stopButton: 'Druck stoppen',
pauseTitle: 'Druck pausieren',
pauseMessage: 'Möchten Sie den aktuellen Druck auf "{{name}}" wirklich pausieren?',
pauseButton: 'Druck pausieren',
resumeTitle: 'Druck fortsetzen',
resumeMessage: 'Möchten Sie den Druck auf "{{name}}" fortsetzen?',
resumeButton: 'Druck fortsetzen',
powerOnTitle: 'Drucker einschalten',
powerOnMessage: 'Möchten Sie die Stromversorgung für "{{name}}" wirklich EINSCHALTEN?',
powerOnButton: 'Einschalten',
powerOffTitle: 'Drucker ausschalten',
powerOffMessage: 'Möchten Sie die Stromversorgung für "{{name}}" wirklich AUSSCHALTEN?',
powerOffWarning: 'WARNUNG: "{{name}}" druckt gerade! Möchten Sie die Stromversorgung wirklich AUSSCHALTEN? Dies unterbricht den Druck und kann den Drucker beschädigen.',
powerOffButton: 'Ausschalten',
},
// Discovery
discovery: {
title: 'Drucker entdecken',
searching: 'Suche...',
scanning: 'Scanne...',
scanProgress: 'Scanne... {{scanned}}/{{total}}',
foundPrinters: '{{count}} Drucker gefunden',
noPrintersFound: 'Keine Drucker gefunden',
noPrintersFoundSubnet: 'Keine Drucker im angegebenen Subnetz gefunden.',
noPrintersFoundNetwork: 'Keine Drucker im Netzwerk gefunden.',
allConfigured: 'Alle erkannten Drucker sind bereits konfiguriert.',
alreadyAdded: 'Bereits hinzugefügt',
select: 'Auswählen',
manualEntry: 'Manuelle Eingabe',
addFromCloud: 'Aus Cloud hinzufügen',
subnetToScan: 'Zu scannendes Subnetz',
dockerNote: 'Docker erkannt. Geben Sie das Subnetz Ihres Druckers in CIDR-Notation ein. Erfordert network_mode: host in docker-compose.yml.',
scanSubnet: 'Subnetz nach Druckern scannen',
discoverNetwork: 'Drucker im Netzwerk suchen',
scanningSubnet: 'Subnetz wird nach Bambu-Druckern gescannt...',
scanningNetwork: 'Netzwerk wird gescannt...',
serialRequired: 'Seriennummer erforderlich',
unknown: 'Unbekannt',
failedToStart: 'Erkennung konnte nicht gestartet werden',
},
// Filaments section
filaments: 'Filamente',
// Camera
openCameraOverlay: 'Kamera-Overlay öffnen',
openCameraWindow: 'Kamera in neuem Fenster öffnen',
// Firmware
firmwareUpdateAvailable: 'Firmware-Update verfügbar: {{current}} → {{latest}}',
firmwareUpdateButton: 'Update',
// Plate detection
plateDetection: {
noPermission: 'Sie haben keine Berechtigung, Drucker zu aktualisieren',
enabledClick: 'Plattenprüfung aktiviert - Klicken zum Deaktivieren',
disabledClick: 'Plattenprüfung deaktiviert - Klicken zum Aktivieren',
manageCalibration: 'Platten-Erkennungskalibrierung verwalten',
calibrationRequired: 'Kalibrierung erforderlich',
calibrationInstructions: 'Bitte stellen Sie sicher, dass die Druckplatte vollständig leer ist, und klicken Sie dann auf Kalibrieren.',
calibrationDescription: 'Die Kalibrierung erfasst ein Referenzbild der leeren Platte. Zukünftige Prüfungen vergleichen mit dieser Referenz, um Objekte zu erkennen.',
calibrationTip: 'Tipp: Sie können bis zu 5 Kalibrierungen für verschiedene Platten speichern. Das System verwendet automatisch die beste Übereinstimmung bei der Prüfung.',
plateEmpty: 'Platte erscheint leer',
objectsDetected: 'Objekte auf Platte erkannt',
confidence: 'Konfidenz',
difference: 'Differenz',
analysisPreview: 'Analysevorschau:',
analysisLegend: 'Grüner Rahmen = Erkennungsbereich, Rote Überlagerung = Unterschiede zur Kalibrierung',
savedReferences: 'Gespeicherte Referenzen ({{count}}/{{max}})',
deleteReference: 'Referenz löschen',
labelPlaceholder: 'Bezeichnung...',
clickToEdit: '{{label}} - Zum Bearbeiten klicken',
clickToAddLabel: 'Zum Hinzufügen einer Bezeichnung klicken',
},
// Fans
fans: {
partCooling: 'Bauteilkühlung',
auxiliary: 'Hilfsventilator',
chamber: 'Kammerventilator',
},
// HMS errors
clickToViewHmsErrors: 'Klicken, um HMS-Fehler anzuzeigen',
estimatedCompletion: 'Geschätzte Fertigstellungszeit',
slotOptions: 'Slot-Optionen',
// Firmware modal
firmwareModal: {
title: 'Firmware-Update',
currentVersion: 'Aktuell:',
latestVersion: 'Neueste:',
releaseNotes: 'Versionshinweise',
checkingPrereqs: 'Prüfe Voraussetzungen...',
sdCardReady: 'SD-Karte bereit. Klicken Sie unten, um die Firmware hochzuladen.',
uploadedSuccess: 'Firmware auf SD-Karte hochgeladen!',
applyInstructions: 'So wenden Sie das Update auf Ihrem Drucker an:',
step1: 'Gehen Sie auf dem Touchscreen des Druckers zu Einstellungen',
step2: 'Navigieren Sie zu Firmware',
step3: 'Wählen Sie Update von SD-Karte',
step4: 'Das Update dauert 10-20 Minuten',
done: 'Fertig',
starting: 'Starte...',
uploadFirmware: 'Firmware hochladen',
uploadedToast: 'Firmware hochgeladen! Starten Sie das Update vom Druckerbildschirm.',
},
accessCodePlaceholder: 'Leer lassen, um den aktuellen zu behalten',
// ROI editor
roi: {
title: 'Erkennungsbereich (ROI)',
xStart: 'X-Start',
yStart: 'Y-Start',
width: 'Breite',
height: 'Höhe',
instruction: 'Passen Sie den Erkennungsbereich an, um sich auf die Druckplatte zu konzentrieren. Der grüne Rahmen in der Vorschau zeigt den aktuellen Bereich.',
},
},
// Archives page
archives: {
title: 'Druckarchiv',
searchPlaceholder: 'Archiv durchsuchen...',
filterByPrinter: 'Nach Drucker filtern',
filterByStatus: 'Nach Status filtern',
sortBy: 'Sortieren nach',
sortNewest: 'Neueste zuerst',
sortOldest: 'Älteste zuerst',
sortName: 'Name',
sortDuration: 'Dauer',
sortLargest: 'Größte zuerst',
sortSmallest: 'Kleinste zuerst',
sortSize: 'Größe',
noArchives: 'Keine Archive gefunden',
noArchivesSearch: 'Keine Archive entsprechen Ihrer Suche',
noArchivesYet: 'Noch keine Archive',
loadingArchives: 'Lade Archive...',
releaseToUpload: 'Loslassen zum Hochladen',
showAll: 'Alle anzeigen',
showFavoritesOnly: 'Nur Favoriten anzeigen',
gridView: 'Rasteransicht',
listView: 'Listenansicht',
calendarView: 'Kalenderansicht',
manageTags: 'Tags verwalten',
showFailedPrints: 'Fehlgeschlagene Drucke anzeigen',
hideFailedPrints: 'Fehlgeschlagene Drucke ausblenden',
printTime: 'Druckzeit',
filamentUsed: 'Verbrauchtes Filament',
cost: 'Kosten',
reprint: 'Drucken',
preview: 'Vorschau',
deleteArchive: 'Archiv löschen',
deleteConfirm: 'Möchten Sie dieses Archiv wirklich löschen?',
favorite: 'Favorit',
unfavorite: 'Aus Favoriten entfernen',
viewDetails: 'Details anzeigen',
status: {
completed: 'Abgeschlossen',
failed: 'Fehlgeschlagen',
stopped: 'Gestoppt',
},
toast: {
source3mfAttached: 'Quell-3MF angehängt: {{filename}}',
failedUploadSource3mf: 'Fehler beim Hochladen der Quell-3MF',
source3mfRemoved: 'Quell-3MF entfernt',
failedRemoveSource3mf: 'Fehler beim Entfernen der Quell-3MF',
f3dAttached: 'F3D angehängt: {{filename}}',
failedUploadF3d: 'Fehler beim Hochladen der F3D',
f3dRemoved: 'F3D entfernt',
failedRemoveF3d: 'Fehler beim Entfernen der F3D',
timelapseAttached: 'Zeitraffer angehängt: {{filename}}',
timelapseAlreadyAttached: 'Zeitraffer bereits angehängt',
noMatchingTimelapse: 'Kein passender Zeitraffer gefunden',
failedScanTimelapse: 'Fehler beim Suchen nach Zeitraffer',
failedAttachTimelapse: 'Fehler beim Anhängen des Zeitraffers',
archiveDeleted: 'Archiv gelöscht',
failedDeleteArchive: 'Fehler beim Löschen des Archivs',
addedToFavorites: 'Zu Favoriten hinzugefügt',
removedFromFavorites: 'Aus Favoriten entfernt',
projectUpdated: 'Projekt aktualisiert',
failedUpdateProject: 'Fehler beim Aktualisieren des Projekts',
linkCopied: 'Link in die Zwischenablage kopiert',
failedCopyLink: 'Fehler beim Kopieren des Links',
photoDeleted: 'Foto gelöscht',
failedDeletePhoto: 'Fehler beim Löschen des Fotos',
failedDeleteArchives: 'Fehler beim Löschen der Archive',
failedUpdateFavorites: 'Fehler beim Aktualisieren der Favoriten',
exportDownloaded: 'Export heruntergeladen',
exportFailed: 'Export fehlgeschlagen',
},
menu: {
print: 'Drucken',
schedule: 'Planen',
openInBambuStudio: 'In Bambu Studio öffnen',
slice: 'Slicen',
externalLink: 'Externer Link',
viewOnMakerWorld: 'Auf MakerWorld ansehen',
preview3d: '3D-Vorschau',
viewTimelapse: 'Zeitraffer ansehen',
scanForTimelapse: 'Nach Zeitraffer suchen',
downloadSource3mf: 'Quell-3MF herunterladen',
uploadSource3mf: 'Quell-3MF hochladen',
replaceSource3mf: 'Quell-3MF ersetzen',
removeSource3mf: 'Quell-3MF entfernen',
uploadF3d: 'F3D hochladen',
replaceF3d: 'F3D ersetzen',
downloadF3d: 'F3D herunterladen',
removeF3d: 'F3D entfernen',
download: 'Herunterladen',
copyDownloadLink: 'Download-Link kopieren',
qrCode: 'QR-Code',
viewPhotos: 'Fotos ansehen',
viewPhotosCount: 'Fotos ansehen ({{count}})',
projectPage: 'Projektseite',
addToFavorites: 'Zu Favoriten hinzufügen',
removeFromFavorites: 'Aus Favoriten entfernen',
edit: 'Bearbeiten',
goToProject: 'Zum Projekt: {{name}}',
addToProject: 'Zu Projekt hinzufügen',
removeFromProject: 'Aus Projekt entfernen',
loading: 'Laden...',
noProjectsAvailable: 'Keine Projekte verfügbar',
select: 'Auswählen',
deselect: 'Abwählen',
delete: 'Löschen',
},
permission: {
noReprint: 'Sie haben keine Berechtigung, dieses Archiv erneut zu drucken',
noAddToQueue: 'Sie haben keine Berechtigung, zur Warteschlange hinzuzufügen',
noUpdateArchives: 'Sie haben keine Berechtigung, Archive zu aktualisieren',
noUploadFiles: 'Sie haben keine Berechtigung, Dateien hochzuladen',
noDownload: 'Sie haben keine Berechtigung, Archive herunterzuladen',
noCopyLink: 'Sie haben keine Berechtigung, Download-Links zu kopieren',
noDelete: 'Sie haben keine Berechtigung, dieses Archiv zu löschen',
noCreate: 'Sie haben keine Berechtigung, Archive zu erstellen',
},
card: {
previousPlate: 'Vorherige Platte',
nextPlate: 'Nächste Platte',
plateNumber: 'Platte {{index}}',
moreOptions: 'Rechtsklick für mehr Optionen',
addToFavorites: 'Zu Favoriten hinzufügen',
removeFromFavorites: 'Aus Favoriten entfernen',
cancelled: 'abgebrochen',
failed: 'fehlgeschlagen',
duplicate: 'Duplikat',
duplicateTitle: 'Dieses Modell wurde bereits zuvor gedruckt',
openSource3mf: 'Quell-3MF in Bambu Studio öffnen (Rechtsklick für mehr Optionen)',
downloadF3d: 'Fusion 360 Designdatei herunterladen',
viewTimelapse: 'Zeitraffer ansehen',
viewPhoto: '1 Foto ansehen',
viewPhotos: '{{count}} Fotos ansehen',
openFolder: 'Ordner öffnen: {{name}}',
slicedFile: 'Geslicte Datei - druckbereit',
sourceFile: 'Nur Quelldatei - keine AMS-Zuordnung verfügbar',
gcode: 'GCODE',
source: 'QUELLE',
project: 'Projekt: {{name}}',
estimated: 'Geschätzt: {{time}}',
actual: 'Tatsächlich: {{time}}',
accuracy: 'Genauigkeit: {{percent}}%',
filament: '{{weight}}g',
layer: '{{count}} Schicht',
layers: '{{count}} Schichten',
object: '{{count}} Objekt',
objects: '{{count}} Objekte',
slicedFor: 'Geslict für {{model}}',
uploadedBy: 'Hochgeladen von',
noPermissionReprint: 'Sie haben keine Berechtigung, erneut zu drucken',
noPermissionEdit: 'Sie haben keine Berechtigung, Archive zu bearbeiten',
noPermissionDelete: 'Sie haben keine Berechtigung, Archive zu löschen',
reprint: 'Drucken',
schedulePrint: 'Druck planen',
schedule: 'Planen',
openInBambuStudio: 'In Bambu Studio öffnen',
openInBambuStudioToSlice: 'In Bambu Studio öffnen zum Slicen',
slice: 'Slicen',
externalLink: 'Externer Link',
makerWorld: 'MakerWorld: {{designer}}',
viewProject: 'Projekt ansehen',
noExternalLink: 'Kein externer Link',
preview3d: '3D-Vorschau',
download: 'Herunterladen',
edit: 'Bearbeiten',
delete: 'Löschen',
},
modal: {
deleteArchive: 'Archiv löschen',
deleteConfirm: 'Möchten Sie "{{name}}" wirklich löschen? Diese Aktion kann nicht rückgängig gemacht werden.',
deleteButton: 'Löschen',
removeSource3mf: 'Quell-3MF entfernen',
removeSource3mfConfirm: 'Möchten Sie die Quell-3MF-Datei wirklich von "{{name}}" entfernen? Die ursprüngliche Slicer-Projektdatei wird gelöscht.',
removeButton: 'Entfernen',
removeF3d: 'F3D entfernen',
removeF3dConfirm: 'Möchten Sie die Fusion 360 Designdatei wirklich von "{{name}}" entfernen?',
timelapse: '{{name}} - Zeitraffer',
selectTimelapse: 'Zeitraffer auswählen',
selectTimelapseDesc: 'Keine automatische Übereinstimmung gefunden. Wählen Sie den Zeitraffer für diesen Druck:',
deleteArchives: 'Archive löschen',
deleteArchivesConfirm: 'Möchten Sie wirklich {{count}} Archiv(e) löschen? Diese Aktion kann nicht rückgängig gemacht werden.',
deleteCount: '{{count}} löschen',
},
page: {
title: 'Archive',
printsCount: '{{filtered}} von {{total}} Drucken',
dropFilesHere: '.3mf-Dateien hier ablegen',
releaseToUpload: 'Loslassen zum Hochladen',
only3mfSupported: 'Nur .3mf-Dateien werden unterstützt',
close: 'Schließen',
selected: '{{count}} ausgewählt',
selectAll: 'Alle auswählen',
tags: 'Tags',
project: 'Projekt',
favorite: 'Favorit',
delete: 'Löschen',
toggledFavorites: 'Favoriten für {{count}} Archiv(e) umgeschaltet',
failedUpdateFavorites: 'Fehler beim Aktualisieren der Favoriten',
archivesDeleted: '{{count}} Archiv(e) gelöscht',
failedDeleteArchives: 'Fehler beim Löschen der Archive',
photoDeleted: 'Foto gelöscht',
failedDeletePhoto: 'Fehler beim Löschen des Fotos',
},
list: {
name: 'Name',
printer: 'Drucker',
date: 'Datum',
size: 'Größe',
actions: 'Aktionen',
hasTimelapse: 'Hat Zeitraffer',
},
},
// Queue page
queue: {
title: 'Druckwarteschlange',
subtitle: 'Planen und verwalten Sie Ihre Druckaufträge',
addToQueue: 'Zur Warteschlange hinzufügen',
// Print modal
print: 'Drucken',
reprint: 'Erneut drucken',
schedulePrint: 'Druck planen',
editQueueItem: 'Warteschlangeneintrag bearbeiten',
printToPrinters: 'Auf {{count}} Druckern drucken',
queueToPrinters: 'Zu {{count}} Druckern hinzufügen',
sending: 'Wird gesendet...',
sendingProgress: 'Sende {{current}}/{{total}}...',
adding: 'Wird hinzugefügt...',
addingProgress: 'Füge hinzu {{current}}/{{total}}...',
savingProgress: 'Speichere {{current}}/{{total}}...',
clearQueue: 'Warteschlange leeren',
clearHistory: 'Verlauf löschen',
emptyQueue: 'Warteschlange ist leer',
position: 'Position',
scheduledTime: 'Geplante Zeit',
moveUp: 'Nach oben',
moveDown: 'Nach unten',
startNow: 'Jetzt starten',
printingInProgress: 'Druck läuft...',
viewArchive: 'Archiv anzeigen',
viewInFileManager: 'Im Dateimanager anzeigen',
itemCount: '{{count}} Element',
itemCount_plural: '{{count}} Elemente',
dragToReorder: 'Ziehen zum Neuordnen (nur Sofort)',
reorderHint: 'Position betrifft nur Sofort-Elemente. Geplante Elemente werden zur festgelegten Zeit ausgeführt.',
addedBy: 'Hinzugefügt von {{name}}',
// Sections
sections: {
currentlyPrinting: 'Aktuell druckend',
queued: 'In Warteschlange',
history: 'Verlauf',
},
// Status
status: {
pending: 'Ausstehend',
waiting: 'Wartend',
printing: 'Druckt',
paused: 'Pausiert',
completed: 'Abgeschlossen',
failed: 'Fehlgeschlagen',
skipped: 'Übersprungen',
cancelled: 'Abgebrochen',
},
// Summary cards
summary: {
printing: 'Druckt',
queued: 'In Warteschlange',
totalTime: 'Gesamte Wartezeit',
history: 'Verlauf',
},
// Filters
filter: {
allPrinters: 'Alle Drucker',
unassigned: 'Nicht zugewiesen',
allStatus: 'Alle Status',
allLocations: 'Alle Standorte',
any: 'Beliebig',
},
// Sort
sort: {
byPosition: 'Nach Position sortieren',
byName: 'Nach Name sortieren',
byPrinter: 'Nach Drucker sortieren',
bySchedule: 'Nach Zeitplan sortieren',
byDate: 'Nach Datum sortieren',
ascendingOldest: 'Aufsteigend (älteste zuerst)',
descendingNewest: 'Absteigend (neueste zuerst)',
},
// Badges
badges: {
staged: 'Bereitgestellt',
requiresPrevious: 'Erfordert vorherigen Erfolg',
autoPowerOff: 'Automatisch ausschalten',
},
// Empty state
empty: {
title: 'Keine Drucke geplant',
description: 'Planen Sie einen Druck von der Archivseite über die Option "Planen" im Kontextmenü oder ziehen Sie Dateien hierher.',
},
// Time
time: {
asap: 'Sofort',
overdue: 'Überfällig',
now: 'Jetzt',
lessThanMinute: 'In weniger als einer Minute',
inMinutes: 'In {{count}} Min',
inHours: 'In {{count}} Stunden',
},
// Actions
actions: {
stopPrint: 'Druck stoppen',
startPrint: 'Druck starten',
requeue: 'Erneut einreihen',
},
// Bulk edit
bulkEdit: {
title: '{{count}} Element bearbeiten',
title_plural: '{{count}} Elemente bearbeiten',
description: 'Nur geänderte Einstellungen werden auf ausgewählte Elemente angewendet.',
printer: 'Drucker',
noChange: '— Keine Änderung —',
queueOptions: 'Warteschlangenoptionen',
staged: 'Bereitgestellt (manueller Start)',
autoPowerOff: 'Nach Druck automatisch ausschalten',
requirePrevious: 'Vorherigen Erfolg erfordern',
printOptions: 'Druckoptionen',
bedLevelling: 'Bett-Nivellierung',
flowCalibration: 'Fluss-Kalibrierung',
vibrationCalibration: 'Vibrations-Kalibrierung',
layerInspection: 'Erste-Schicht-Prüfung',
timelapse: 'Zeitraffer',
useAms: 'AMS verwenden',
applyChanges: 'Änderungen übernehmen',
selectAll: 'Alle auswählen',
deselectAll: 'Auswahl aufheben',
selected: '{{count}} ausgewählt',
editSelected: 'Ausgewählte bearbeiten',
cancelSelected: 'Ausgewählte abbrechen',
},
// Confirmations
confirm: {
cancelTitle: 'Geplanten Druck abbrechen',
cancelMessage: 'Möchten Sie "{{name}}" wirklich abbrechen?',
stopTitle: 'Druck stoppen',
stopMessage: 'Möchten Sie den aktuellen Druck "{{name}}" wirklich stoppen? Der Druckauftrag wird am Drucker abgebrochen.',
removeTitle: 'Aus Verlauf entfernen',
removeMessage: 'Möchten Sie "{{name}}" wirklich aus dem Warteschlangenverlauf entfernen?',
clearHistoryTitle: 'Verlauf löschen',
clearHistoryMessage: 'Möchten Sie alle {{count}} Element(e) aus dem Verlauf entfernen?',
cancelButton: 'Druck abbrechen',
stopButton: 'Druck stoppen',
thisPrint: 'diesen Druck',
thisItem: 'dieses Element',
},
// Toast messages
toast: {
cancelled: 'Warteschlangenelement abgebrochen',
cancelFailed: 'Element konnte nicht abgebrochen werden',
removed: 'Warteschlangenelement entfernt',
removeFailed: 'Element konnte nicht entfernt werden',
stopped: 'Druck gestoppt',
stopFailed: 'Druck konnte nicht gestoppt werden',
released: 'Druck in Warteschlange freigegeben',
startFailed: 'Druck konnte nicht gestartet werden',
reorderFailed: 'Warteschlange konnte nicht neu geordnet werden',
historyCleared: '{{count}} Verlaufselement(e) gelöscht',
clearHistoryFailed: 'Verlauf konnte nicht gelöscht werden',
updateFailed: 'Elemente konnten nicht aktualisiert werden',
bulkCancelled: '{{count}} Element(e) abgebrochen',
bulkCancelFailed: 'Elemente konnten nicht abgebrochen werden',
},
// Permissions
permissions: {
noStopPrint: 'Sie haben keine Berechtigung, Drucke zu stoppen',
noStartPrint: 'Sie haben keine Berechtigung, Drucke zu starten',
noEdit: 'Sie haben keine Berechtigung, dieses Warteschlangenelement zu bearbeiten',
noCancel: 'Sie haben keine Berechtigung, dieses Warteschlangenelement abzubrechen',
noRequeue: 'Sie haben keine Berechtigung, Elemente erneut einzureihen',
noRemove: 'Sie haben keine Berechtigung, dieses Warteschlangenelement zu entfernen',
noClearHistory: 'Sie haben keine Berechtigung, den gesamten Verlauf zu löschen',
noEditItems: 'Sie haben keine Berechtigung, Warteschlangenelemente zu bearbeiten',
noCancelItems: 'Sie haben keine Berechtigung, Warteschlangenelemente abzubrechen',
},
},
// Statistics page
stats: {
title: 'Dashboard',
subtitle: 'Widgets zum Neuanordnen ziehen. Auf das Augensymbol klicken zum Ausblenden.',
overview: 'Übersicht',
totalPrints: 'Gesamtdrucke',
successRate: 'Erfolgsrate',
totalPrintTime: 'Gesamtdruckzeit',
printTime: 'Druckzeit',
totalFilament: 'Gesamtverbrauch Filament',
filamentUsed: 'Filamentverbrauch',
filamentCost: 'Filamentkosten',
totalCost: 'Gesamtkosten',
energyUsed: 'Energieverbrauch',
energyCost: 'Energiekosten',
averagePrintTime: 'Durchschnittliche Druckzeit',
printsPerDay: 'Drucke pro Tag',
byPrinter: 'Nach Drucker',
printsByPrinter: 'Drucke nach Drucker',
byMaterial: 'Nach Material',
byMonth: 'Nach Monat',
last7Days: 'Letzte 7 Tage',
last30Days: 'Letzte 30 Tage',
last90Days: 'Letzte 90 Tage',
allTime: 'Gesamt',
// Widgets
quickStats: 'Schnellstatistiken',
printActivity: 'Druckaktivität',
filamentTypes: 'Filamenttypen',
filamentTrends: 'Filamenttrends',
failureAnalysis: 'Fehleranalyse',
timeAccuracy: 'Zeitgenauigkeit',
successful: 'Erfolgreich:',
failed: 'Fehlgeschlagen:',
perfectEstimate: '100% = perfekte Schätzung',
noTimeAccuracyData: 'Noch keine Zeitgenauigkeitsdaten',
noFilamentData: 'Keine Filamentdaten verfügbar',
noPrinterData: 'Keine Druckerdaten verfügbar',
noPrintData: 'Keine Druckdaten verfügbar',
noPrintDataLast30Days: 'Keine Druckdaten in den letzten 30 Tagen',
failureReasons: 'Fehlerursachen',
topFailureReasons: 'Häufigste Fehlerursachen',
failedPrintsCount: '{{failed}} / {{total}} Drucke fehlgeschlagen',
lastWeekRate: 'Letzte Woche: {{rate}}%',
// Actions
resetLayout: 'Layout zurücksetzen',
recalculateCosts: 'Kosten neu berechnen',
recalculateCostsHint: 'Alle Archivkosten mit aktuellen Filamentpreisen neu berechnen',
exportStats: 'Statistiken exportieren',
exportAsCsv: 'Als CSV exportieren',
exportAsExcel: 'Als Excel exportieren',
hiddenCount: '{{count}} ausgeblendet',
// Toast
exportDownloaded: 'Export heruntergeladen',
exportFailed: 'Export fehlgeschlagen',
layoutReset: 'Layout zurückgesetzt',
recalculatedCosts: 'Kosten für {{count}} Archive neu berechnet',
recalculateFailed: 'Kosten konnten nicht neu berechnet werden',
// Loading
loadingStats: 'Statistiken werden geladen...',
// Permissions
noPermissionResetLayout: 'Sie haben keine Berechtigung, das Layout zurückzusetzen',
noPermissionRecalculate: 'Sie haben keine Berechtigung, Kosten neu zu berechnen',
},
// Maintenance page
maintenance: {
title: 'Wartung',
overview: 'Übersicht',
allOk: 'Alle Wartungen aktuell',
dueCount: '{{count}} Aufgabe fällig',
dueCount_plural: '{{count}} Aufgaben fällig',
warningCount: '{{count}} Warnung',
warningCount_plural: '{{count}} Warnungen',
totalPrintTime: 'Gesamtdruckzeit',
nextMaintenance: 'Nächste Wartung',
nothingDue: 'Nichts fällig',
tasks: 'Aufgaben',
lastPerformed: 'Zuletzt durchgeführt',
interval: 'Intervall',
hoursRemaining: '{{hours}}h verbleibend',
hoursOverdue: '{{hours}}h überfällig',
markDone: 'Als erledigt markieren',
performMaintenance: 'Wartung durchführen',
history: 'Verlauf',
noHistory: 'Kein Wartungsverlauf',
editPrintHours: 'Druckstunden bearbeiten',
currentHours: 'Aktuelle Stunden',
// Tabs
statusTab: 'Status',
settingsTab: 'Einstellungen',
// Status
overdueCount: '{{count}} überfällig',
dueSoonCount: '{{count}} bald fällig',
dueSoon: 'Bald fällig',
allGood: 'Alles in Ordnung',
overdueBy: 'Überfällig um {{duration}}',
dueIn: 'Fällig in {{duration}}',
timeLeft: '{{duration}} verbleibend',
// Duration formats
day: '1 Tag',
days: '{{count}} Tage',
week: '1 Woche',
weeks: '{{count}} Wochen',
month: '1 Monat',
months: '{{count}} Monate',
year: '1 Jahr',
// Settings
maintenanceTypes: 'Wartungstypen',
maintenanceTypesDescription: 'Systemtypen und Ihre benutzerdefinierten Wartungsaufgaben',
addCustomType: 'Benutzerdefinierten Typ hinzufügen',
intervalType: 'Intervalltyp',
intervalValue: 'Intervall ({{type}})',
icon: 'Symbol',
documentationLink: 'Dokumentationslink (optional)',
assignToPrinters: 'Druckern zuweisen',
selectAtLeastOnePrinter: 'Wählen Sie mindestens einen Drucker',
addType: 'Typ hinzufügen',
custom: 'Benutzerdefiniert',
printHours: 'Druckstunden',
calendarDays: 'Kalendertage',
exampleName: 'z.B. HEPA-Filter ersetzen',
viewDocumentation: 'Dokumentation anzeigen',
timeBasedInterval: 'Zeitbasiertes Intervall',
// Interval overrides
intervalOverrides: 'Intervall-Überschreibungen',
intervalOverridesDescription: 'Intervalle für bestimmte Drucker anpassen',
// Printer assignment
assignedToPrinters: 'Druckern zugewiesen:',
noPrintersAssigned: 'Keine Drucker zugewiesen',
addPrinterShort: 'Hinzufügen:',
printersAssignedClick: '{{count}} Drucker zugewiesen - klicken zum Verwalten',
removeFromPrinter: 'Von diesem Drucker entfernen',
// Types
types: {
lubricateRails: 'Linearschienen schmieren',
cleanNozzle: 'Düse/Hotend reinigen',
checkBelts: 'Riemenspannung prüfen',
cleanBuildPlate: 'Druckbett reinigen',
checkExtruder: 'Extruderzahnräder prüfen',
checkCooling: 'Kühlungslüfter prüfen',
generalInspection: 'Allgemeine Inspektion',
cleanCarbonRods: 'Kohlenstoffstangen reinigen',
checkPtfeTube: 'PTFE-Schlauch prüfen',
replaceHepaFilter: 'HEPA-Filter ersetzen',
replaceCarbonFilter: 'Aktivkohlefilter ersetzen',
lubricateLeftNozzleRail: 'Linke Düsenschiene schmieren',
},
// Toast
maintenanceComplete: 'Wartung als abgeschlossen markiert',
typeUpdated: 'Wartungstyp aktualisiert',
typeDeleted: 'Wartungstyp gelöscht',
printHoursUpdated: 'Druckstunden aktualisiert',
printerAssigned: 'Drucker zugewiesen',
printerRemoved: 'Drucker entfernt',
// Confirmation
deleteTypeConfirm: '"{{name}}" löschen?',
// Permissions
noPermissionUpdate: 'Sie haben keine Berechtigung, Wartungselemente zu aktualisieren',
noPermissionPerform: 'Sie haben keine Berechtigung, Wartungen durchzuführen',
noPermissionEditTypes: 'Sie haben keine Berechtigung, Wartungstypen zu bearbeiten',
noPermissionDeleteTypes: 'Sie haben keine Berechtigung, Wartungstypen zu löschen',
noPermissionEditHours: 'Sie haben keine Berechtigung, Druckstunden zu bearbeiten',
noPermissionRemovePrinter: 'Sie haben keine Berechtigung, Druckerzuweisungen zu entfernen',
noPermissionAssignPrinter: 'Sie haben keine Berechtigung, Drucker zuzuweisen',
noPermissionEditIntervals: 'Sie haben keine Berechtigung, Intervalle zu bearbeiten',
// Configure link
configureSettings: 'Wartungstypen und Intervalle konfigurieren',
},
// Settings page
settings: {
title: 'Einstellungen',
general: 'Allgemein',
// Tab names
tabs: {
general: 'Allgemein',
smartPlugs: 'Smart Plugs',
notifications: 'Benachrichtigungen',
filament: 'Filament',
network: 'Netzwerk',
apiKeys: 'API-Schlüssel',
virtualPrinter: 'Virtueller Drucker',
users: 'Benutzer',
backup: 'Sicherung',
},
appearance: 'Erscheinungsbild',
notifications: 'Benachrichtigungen',
smartPlugs: 'Smart Plugs',
spoolman: 'Spoolman',
updates: 'Updates',
language: 'Sprache',
languageDescription: 'Wählen Sie Ihre bevorzugte Sprache',
theme: 'Design',
themeLight: 'Hell',
themeDark: 'Dunkel',
themeSystem: 'System',
defaultView: 'Standardansicht',
defaultViewDescription: 'Seite, die beim Öffnen der App angezeigt wird',
checkForUpdates: 'Nach Updates suchen',
autoUpdate: 'Automatische Updates',
currentVersion: 'Aktuelle Version',
latestVersion: 'Neueste Version',
upToDate: 'Sie sind auf dem neuesten Stand',
updateAvailable: 'Update verfügbar',
// Notifications
notificationLanguage: 'Benachrichtigungssprache',
notificationLanguageDescription: 'Sprache für Push-Benachrichtigungen',
notificationProviders: 'Benachrichtigungsanbieter',
addProvider: 'Anbieter hinzufügen',
editProvider: 'Anbieter bearbeiten',
providerType: 'Anbietertyp',
testNotification: 'Testbenachrichtigung',
testSuccess: 'Testbenachrichtigung erfolgreich gesendet',
testFailed: 'Testbenachrichtigung konnte nicht gesendet werden',
quietHours: 'Ruhezeiten',
quietHoursDescription: 'Keine Störungen während dieser Zeiten',
quietHoursStart: 'Beginn',
quietHoursEnd: 'Ende',
events: {
title: 'Benachrichtigungsereignisse',
printStart: 'Druck gestartet',
printComplete: 'Druck abgeschlossen',
printFailed: 'Druck fehlgeschlagen',
printStopped: 'Druck gestoppt',
printProgress: 'Fortschrittsmeldungen',
printProgressDescription: 'Bei 25%, 50%, 75% benachrichtigen',
printerOffline: 'Drucker offline',
printerError: 'Druckerfehler',
filamentLow: 'Filament niedrig',
maintenanceDue: 'Wartung fällig',
maintenanceDueDescription: 'Benachrichtigen, wenn Wartung erforderlich',
},
// Smart Plugs
smartPlug: {
title: 'Smart Plugs',
add: 'Smart Plug hinzufügen',
edit: 'Smart Plug bearbeiten',
name: 'Name',
ipAddress: 'IP-Adresse',
linkedPrinter: 'Verknüpfter Drucker',
autoOn: 'Automatisch einschalten',
autoOnDescription: 'Einschalten beim Druckstart',
autoOff: 'Automatisch ausschalten',
autoOffDescription: 'Ausschalten nach Druckende',
offDelay: 'Ausschaltverzögerung',
offDelayMinutes: 'Minuten nach Druck',
offDelayTemp: 'Wenn Düse unter Temperatur',
currentState: 'Aktueller Status',
turnOn: 'Einschalten',
turnOff: 'Ausschalten',
},
// Spoolman
spoolmanEnabled: 'Spoolman-Integration aktivieren',
spoolmanUrl: 'Spoolman URL',
spoolmanConnected: 'Verbunden',
spoolmanDisconnected: 'Nicht verbunden',
// Default printer
noDefaultPrinter: 'Kein Standard (jedes Mal fragen)',
// Sidebar
sidebarOrder: 'Seitenleisten-Reihenfolge',
// Camera
saveThumbnails: 'Vorschaubilder speichern',
captureFinishPhoto: 'Abschlussfoto aufnehmen',
noPrintersConfigured: 'Keine Drucker konfiguriert',
// Archive settings
archiveMode: {
always: 'Immer Archiveintrag erstellen',
never: 'Nie Archiveintrag erstellen',
ask: 'Jedes Mal fragen',
},
// Updates
checkForUpdatesLabel: 'Nach Updates suchen',
checkPrinterFirmware: 'Drucker-Firmware prüfen',
// Queue
enableRetry: 'Wiederholung aktivieren',
// Home Assistant
homeAssistantDescription: 'Smart Plugs über Home Assistant steuern',
// MQTT
mqttConnectedTo: 'Verbunden mit',
// Prometheus
prometheusDescription: 'Druckerdaten im Prometheus-Format bereitstellen',
// Smart plugs empty state
noSmartPlugsTitle: 'Keine Smart Plugs konfiguriert',
noSmartPlugsDescription: 'Fügen Sie einen Tasmota-basierten Smart Plug hinzu, um den Energieverbrauch zu verfolgen und die Stromsteuerung zu automatisieren.',
// Notifications empty state
noProvidersTitle: 'Keine Anbieter konfiguriert',
noProvidersDescription: 'Fügen Sie einen Anbieter hinzu, um Benachrichtigungen zu erhalten.',
noTemplatesAvailable: 'Keine Vorlagen verfügbar. Starten Sie das Backend neu, um Standardvorlagen zu laden.',
// API permissions
apiPermissionView: 'Druckerstatus und Warteschlange anzeigen',
apiPermissionEdit: 'Elemente zur Druckwarteschlange hinzufügen und entfernen',
// API keys
apiKeysEmptyTitle: 'Keine API-Schlüssel',
apiKeysEmptyDescription: 'Erstellen Sie einen API-Schlüssel zur Integration mit externen Diensten.',
// Users
noUsersFound: 'Keine Benutzer gefunden',
noGroupsFound: 'Keine Gruppen gefunden',
noGroupsAvailable: 'Keine Gruppen verfügbar',
passwordsDoNotMatch: 'Passwörter stimmen nicht überein',
systemGroupWarning: 'System-Gruppennamen können nicht geändert werden',
// Auth disabled
authDisabledTitle: 'Authentifizierung ist deaktiviert',
authDisabledFeature1: 'Anmeldung zum Zugriff auf das System erforderlich',
authDisabledFeature2: 'Mehrere Benutzer mit gruppenbasierten Berechtigungen erstellen',
authDisabledFeature3: 'Zugriff mit über 50 granularen Berechtigungen steuern',
// User deletion
userHasCreated: 'Dieser Benutzer hat erstellt:',
userItemsQuestion: 'Was möchten Sie mit diesen Elementen tun?',
deleteUserConfirm: 'Möchten Sie diesen Benutzer wirklich löschen?',
actionCannotBeUndone: 'Diese Aktion kann nicht rückgängig gemacht werden.',
// Smart plugs
addFirstSmartPlug: 'Ersten Smart Plug hinzufügen',
// Notifications
providers: 'Anbieter',
log: 'Protokoll',
testAll: 'Alle testen',
testResults: 'Testergebnisse',
testPassedCount: '{{count}} bestanden',
testFailedCount: '{{count}} fehlgeschlagen',
messageTemplates: 'Nachrichtenvorlagen',
messageTemplatesDescription: 'Passen Sie Benachrichtigungen für jedes Ereignis an.',
// API Keys section
apiKeys: 'API-Schlüssel',
apiKeysDescription: 'Erstellen Sie API-Schlüssel für externe Integrationen und Webhooks.',
createKey: 'Schlüssel erstellen',
apiKeyCreated: 'API-Schlüssel erfolgreich erstellt',
apiKeyCopyWarning: 'Kopieren Sie diesen Schlüssel jetzt - er wird nicht mehr angezeigt!',
useInApiBrowser: 'Im API-Browser verwenden',
createNewApiKey: 'Neuen API-Schlüssel erstellen',
keyName: 'Schlüsselname',
keyNamePlaceholder: 'z.B. Home Assistant, OctoPrint',
readStatus: 'Status lesen',
readStatusDescription: 'Druckerstatus und Warteschlange anzeigen',
manageQueue: 'Warteschlange verwalten',
manageQueueDescription: 'Elemente zur Druckwarteschlange hinzufügen und entfernen',
controlPrinter: 'Drucker steuern',
controlPrinterDescription: 'Drucke pausieren, fortsetzen und stoppen',
unnamedKey: 'Unbenannter Schlüssel',
lastUsed: 'Zuletzt verwendet',
read: 'Lesen',
control: 'Steuern',
createFirstKey: 'Ersten Schlüssel erstellen',
webhookEndpoints: 'Webhook-Endpunkte',
webhookApiKeyHint: 'Verwenden Sie Ihren API-Schlüssel im X-API-Key-Header.',
webhook: {
getAllStatus: 'Alle Druckerstatus abrufen',
getSpecificStatus: 'Spezifischen Druckerstatus abrufen',
addToQueue: 'Zur Druckwarteschlange hinzufügen',
pausePrint: 'Druck pausieren',
resumePrint: 'Druck fortsetzen',
stopPrint: 'Druck stoppen',
},
apiBrowser: 'API-Browser',
apiBrowserDescription: 'Erkunden und testen Sie alle verfügbaren API-Endpunkte.',
apiKeyForTesting: 'API-Schlüssel zum Testen',
apiKeyPlaceholder: 'Fügen Sie hier Ihren API-Schlüssel ein, um authentifizierte Endpunkte zu testen...',
apiKeyHint: 'Dieser Schlüssel wird als X-API-Key-Header mit Anfragen gesendet.',
deleteApiKeyTitle: 'API-Schlüssel löschen',
deleteApiKeyMessage: 'Möchten Sie diesen API-Schlüssel wirklich löschen? Alle Integrationen, die diesen Schlüssel verwenden, funktionieren nicht mehr.',
deleteKey: 'Schlüssel löschen',
// Filament tab
amsDisplayThresholds: 'AMS-Anzeigeschwellenwerte',
amsThresholdsDescription: 'Konfigurieren Sie Farbschwellenwerte für AMS-Feuchtigkeits- und Temperaturanzeigen.',
humidity: 'Luftfeuchtigkeit',
goodGreen: 'Gut (grün)',
fairOrange: 'Mittel (orange)',
aboveFairBad: 'Über dem mittleren Schwellenwert wird rot angezeigt (schlecht)',
temperature: 'Temperatur',
goodBlue: 'Gut (blau)',
aboveFairHot: 'Über dem mittleren Schwellenwert wird rot angezeigt (heiß)',
historyRetention: 'Verlaufsaufbewahrung',
keepSensorHistory: 'Sensorverlauf behalten für',
historyRetentionDescription: 'Ältere Feuchtigkeits- und Temperaturdaten werden automatisch gelöscht',
printModal: 'Druckdialog',
expandCustomMapping: 'Benutzerdefinierte Zuordnung standardmäßig erweitern',
expandCustomMappingDescription: 'Bei Druck auf mehrere Drucker die AMS-Zuordnung pro Drucker erweitert anzeigen',
// User management
authentication: 'Authentifizierung',
authEnabledDescription: 'Ihre Instanz ist mit Benutzerauthentifizierung gesichert',
authDisabledDescription: 'Aktivieren Sie die Anmeldepflicht und verwalten Sie den Benutzerzugriff',
authDisabledMessage: 'Aktivieren Sie die Authentifizierung, um Benutzerkonten zu erstellen, Berechtigungen zu verwalten und Ihre Bambuddy-Instanz zu sichern.',
enableAuthentication: 'Authentifizierung aktivieren',
currentUser: 'Aktueller Benutzer',
changePassword: 'Passwort ändern',
admin: 'Admin',
users: 'Benutzer',
addUser: 'Benutzer hinzufügen',
groups: 'Gruppen',
addGroup: 'Gruppe hinzufügen',
system: 'System',
noDescription: 'Keine Beschreibung',
userCount: '{{count}} Benutzer',
permissionCount: '{{count}} Berechtigungen',
createUser: 'Benutzer erstellen',
username: 'Benutzername',
enterUsername: 'Benutzername eingeben',
password: 'Passwort',
enterPassword: 'Passwort eingeben (min. 6 Zeichen)',
confirmPassword: 'Passwort bestätigen',
confirmPasswordPlaceholder: 'Passwort bestätigen',
// Title tooltips
viewReleaseOnGitHub: 'Release auf GitHub anzeigen',
turnAllPlugsOn: 'Alle Stecker einschalten',
turnAllPlugsOff: 'Alle Stecker ausschalten',
// Modal: Clear logs
clearNotificationLogs: 'Benachrichtigungsprotokolle löschen',
clearLogsMessage: 'Dadurch werden alle Benachrichtigungsprotokolle, die älter als 30 Tage sind, dauerhaft gelöscht. Diese Aktion kann nicht rückgängig gemacht werden.',
clearLogs: 'Protokolle löschen',
// Modal: Reset UI
resetUiPreferences: 'UI-Einstellungen zurücksetzen',
resetUiPreferencesMessage: 'Dadurch werden alle UI-Einstellungen auf Standardwerte zurückgesetzt: Seitenleisten-Reihenfolge, Theme, Dashboard-Layout, Ansichtsmodi und Sortiereinstellungen. Ihre Drucker, Archive und Servereinstellungen werden NICHT beeinträchtigt. Die Seite wird nach dem Löschen neu geladen.',
resetPreferences: 'Einstellungen zurücksetzen',
// Modal: Delete group
deleteGroupTitle: 'Gruppe löschen',
deleteGroupMessage: 'Möchten Sie diese Gruppe wirklich löschen? Benutzer in dieser Gruppe verlieren diese Berechtigungen.',
deleteGroup: 'Gruppe löschen',
// Modal: Disable auth
disableAuthenticationTitle: 'Authentifizierung deaktivieren',
disableAuthenticationMessage: 'Möchten Sie die Authentifizierung wirklich deaktivieren? Dadurch wird Ihre Bambuddy-Instanz ohne Anmeldung zugänglich. Alle Benutzer bleiben in der Datenbank, aber die Authentifizierung wird deaktiviert.',
disableAuthentication: 'Authentifizierung deaktivieren',
// Additional settings
configureBambuddy: 'Bambuddy konfigurieren',
systemDefault: 'Systemstandard',
archiveSettings: 'Archiv-Einstellungen',
newWindow: 'Neues Fenster',
embeddedOverlay: 'Eingebettetes Overlay',
externalCameras: 'Externe Kameras',
costTracking: 'Kostenverfolgung',
printsOnly: 'Nur Drucke',
totalConsumption: 'Gesamtverbrauch',
dataManagement: 'Datenverwaltung',
clearNotificationLogsDescription: 'Benachrichtigungsprotokolle älter als 30 Tage löschen',
resetUiPreferencesDescription: 'Seitenleisten-Reihenfolge, Theme, Ansichtsmodi und Layout-Einstellungen zurücksetzen. Drucker, Archive und Einstellungen werden nicht beeinflusst.',
enableHomeAssistant: 'Home Assistant aktivieren',
enableMqtt: 'MQTT aktivieren',
useTls: 'TLS verwenden',
enableMetricsEndpoint: 'Metrik-Endpunkt aktivieren',
availableMetrics: 'Verfügbare Metriken',
editUser: 'Benutzer bearbeiten',
deleteUserTitle: 'Benutzer löschen',
groupName: 'Gruppenname',
// Placeholders
leaveEmptyForAnonymous: 'Leer lassen für anonym',
leaveEmptyForNoAuth: 'Leer lassen für keine Authentifizierung',
enterNewPassword: 'Neues Passwort eingeben',
confirmNewPassword: 'Neues Passwort bestätigen',
enterGroupName: 'Gruppenname eingeben',
enterDescriptionOptional: 'Beschreibung eingeben (optional)',
enterCurrentPassword: 'Aktuelles Passwort eingeben',
enterNewPasswordMin6: 'Neues Passwort eingeben (min. 6 Zeichen)',
toast: {
keyCopied: 'Schlüssel in Zwischenablage kopiert',
copyFailed: 'Schlüssel konnte nicht kopiert werden',
keyAddedToBrowser: 'Schlüssel zum API-Browser hinzugefügt',
clearLogsFailed: 'Protokolle konnten nicht gelöscht werden',
uiPreferencesReset: 'UI-Einstellungen zurückgesetzt. Wird neu geladen...',
authDisabled: 'Authentifizierung erfolgreich deaktiviert',
authDisableFailed: 'Authentifizierung konnte nicht deaktiviert werden',
apiKeyCreated: 'API-Schlüssel erstellt',
apiKeyDeleted: 'API-Schlüssel gelöscht',
userCreated: 'Benutzer erfolgreich erstellt',
userUpdated: 'Benutzer erfolgreich aktualisiert',
userDeleted: 'Benutzer erfolgreich gelöscht',
groupCreated: 'Gruppe erfolgreich erstellt',
groupUpdated: 'Gruppe erfolgreich aktualisiert',
groupDeleted: 'Gruppe erfolgreich gelöscht',
fillRequiredFields: 'Bitte füllen Sie alle erforderlichen Felder aus',
passwordsDoNotMatch: 'Passwörter stimmen nicht überein',
passwordTooShort: 'Passwort muss mindestens 6 Zeichen lang sein',
enterGroupName: 'Bitte geben Sie einen Gruppennamen ein',
settingsSaved: 'Einstellungen gespeichert',
cameraSettingsSaved: 'Kamera-Einstellungen gespeichert',
enterCameraUrl: 'Bitte geben Sie eine Kamera-URL ein',
passwordChanged: 'Passwort erfolgreich geändert',
connectionFailed: 'Verbindung fehlgeschlagen',
testFailed: 'Test fehlgeschlagen',
cameraConnected: 'Kamera verbunden{{resolution}}',
},
testConnection: 'Verbindung testen',
},
// Notifications (for push notifications)
notification: {
printStarted: {
title: 'Druck gestartet',
body: '{{printer}}: {{filename}} wird gedruckt',
},
printCompleted: {
title: 'Druck abgeschlossen',
body: '{{printer}}: {{filename}} erfolgreich abgeschlossen',
},
printFailed: {
title: 'Druck fehlgeschlagen',
body: '{{printer}}: {{filename}} ist fehlgeschlagen',
},
printStopped: {
title: 'Druck gestoppt',
body: '{{printer}}: {{filename}} wurde gestoppt',
},
printProgress: {
title: 'Druckfortschritt',
body: '{{printer}}: {{filename}} ist zu {{percent}}% abgeschlossen',
},
printerOffline: {
title: 'Drucker offline',
body: '{{printer}} ist offline',
},
printerError: {
title: 'Druckerfehler',
body: '{{printer}}: {{error}}',
},
filamentLow: {
title: 'Filament niedrig',
body: '{{printer}}: Filament geht zur Neige',
},
maintenanceDue: {
title: 'Wartung fällig',
body: '{{printer}}: {{items}} benötigen Aufmerksamkeit',
},
},
// Errors
errors: {
generic: 'Etwas ist schiefgelaufen',
networkError: 'Netzwerkfehler. Bitte überprüfen Sie Ihre Verbindung.',
notFound: 'Nicht gefunden',
unauthorized: 'Nicht autorisiert',
serverError: 'Serverfehler',
validationError: 'Bitte überprüfen Sie Ihre Eingabe',
printerConnectionFailed: 'Verbindung zum Drucker fehlgeschlagen',
saveFailed: 'Speichern fehlgeschlagen',
deleteFailed: 'Löschen fehlgeschlagen',
loadFailed: 'Laden der Daten fehlgeschlagen',
},
// HMS Errors modal
hmsErrors: {
title: 'Fehler - {{name}}',
noErrors: 'Keine Fehler',
viewOnWiki: 'Im Bambu Lab Wiki ansehen',
clearInstructions: 'Löschen Sie die Fehler am Drucker, um sie hier zu entfernen.',
},
// MQTT Debug modal
mqttDebug: {
title: 'MQTT-Debug-Protokoll',
searchPlaceholder: 'Topic oder Payload suchen...',
noMessages: 'Noch keine Nachrichten protokolliert',
startLoggingHint: 'Klicken Sie auf "Protokollierung starten", um MQTT-Nachrichten aufzuzeichnen',
noMessagesMatch: 'Keine Nachrichten entsprechen Ihrem Filter',
adjustFilterHint: 'Versuchen Sie, Ihre Such- oder Filterkriterien anzupassen',
incoming: 'Eingehend',
outgoing: 'Ausgehend',
loggingStopped: 'Protokollierung gestoppt',
loggingActive: 'Protokollierung aktiv - Nachrichten werden automatisch aktualisiert',
startLogging: 'Protokollierung starten',
stopLogging: 'Protokollierung stoppen',
clearLog: 'Protokoll löschen',
topic: 'Topic',
timestamp: 'Zeitstempel',
direction: 'Richtung',
all: 'Alle',
},
// Printer File Manager modal (printer internal storage)
printerFiles: {
title: 'Dateimanager',
storageUsed: 'Belegt:',
storageFree: 'Frei:',
filterPlaceholder: 'Dateien filtern...',
deleteButton: 'Löschen',
deleteFiles: '{{count}} Dateien löschen',
deleteFileConfirm: '"{{name}}" löschen? Dies kann nicht rückgängig gemacht werden.',
deleteFilesConfirm: '{{count}} ausgewählte Dateien löschen? Dies kann nicht rückgängig gemacht werden.',
noFiles: 'Keine Dateien auf dem Drucker',
loadingFiles: 'Dateien werden geladen...',
failedToLoad: 'Dateien konnten nicht geladen werden',
toast: {
filesDeleted: '{{count}} Datei(en) gelöscht',
deleteFailed: 'Löschen fehlgeschlagen: {{error}}',
},
},
// Confirmations
confirm: {
delete: 'Möchten Sie dies wirklich löschen?',
unsavedChanges: 'Sie haben ungespeicherte Änderungen. Möchten Sie wirklich verlassen?',
clearQueue: 'Möchten Sie die Warteschlange wirklich leeren?',
},
// Login page
login: {
title: 'Bambuddy Anmeldung',
subtitle: 'Melden Sie sich bei Ihrem Konto an',
username: 'Benutzername',
usernamePlaceholder: 'Benutzername eingeben',
password: 'Passwort',
passwordPlaceholder: 'Passwort eingeben',
signIn: 'Anmelden',
signingIn: 'Anmeldung läuft...',
forgotPassword: 'Passwort vergessen?',
loginSuccess: 'Erfolgreich angemeldet',
loginFailed: 'Anmeldung fehlgeschlagen',
enterCredentials: 'Bitte Benutzername und Passwort eingeben',
forgotPasswordTitle: 'Passwort vergessen',
forgotPasswordMessage: 'Wenn Sie Ihr Passwort vergessen haben, wenden Sie sich bitte an Ihren Systemadministrator.',
howToReset: 'So setzen Sie Ihr Passwort zurück:',
resetStep1: 'Kontaktieren Sie Ihren Bambuddy-Administrator',
resetStep2: 'Bitten Sie ihn, Ihr Passwort in der Benutzerverwaltung zurückzusetzen',
resetStep3: 'Er kann ein neues temporäres Passwort für Sie festlegen',
resetStep4: 'Melden Sie sich mit dem neuen Passwort an und ändern Sie es in den Einstellungen',
gotIt: 'Verstanden',
},
// Setup page
setup: {
title: 'Bambuddy Einrichtung',
subtitle: 'Konfigurieren Sie die Authentifizierung für Ihre Bambuddy-Instanz',
enableAuth: 'Authentifizierung aktivieren',
adminAccount: 'Admin-Konto',
adminAccountDesc: 'Wenn bereits Admin-Benutzer existieren, wird die Authentifizierung mit den vorhandenen Admin-Konten aktiviert. Lassen Sie die Felder unten leer, um vorhandene Admins zu verwenden, oder geben Sie neue Anmeldedaten ein, um einen neuen Admin-Benutzer zu erstellen.',
adminUsername: 'Admin-Benutzername',
adminPassword: 'Admin-Passwort',
optionalIfAdminExists: '(optional, wenn Admin-Benutzer existieren)',
adminUsernamePlaceholder: 'Admin-Benutzernamen eingeben (optional)',
adminPasswordPlaceholder: 'Admin-Passwort eingeben (optional)',
confirmPassword: 'Passwort bestätigen',
confirmPasswordPlaceholder: 'Admin-Passwort bestätigen',
settingUp: 'Einrichtung läuft...',
completeSetup: 'Einrichtung abschließen',
toast: {
authEnabledAdminCreated: 'Authentifizierung aktiviert und Admin-Benutzer erstellt',
authEnabledExistingAdmins: 'Authentifizierung mit vorhandenen Admin-Benutzern aktiviert',
setupCompleted: 'Einrichtung abgeschlossen',
enterBothCredentials: 'Bitte geben Sie sowohl Admin-Benutzernamen als auch Passwort ein, oder lassen Sie beide leer, um vorhandene Admin-Benutzer zu verwenden',
passwordsDoNotMatch: 'Passwörter stimmen nicht überein',
passwordTooShort: 'Passwort muss mindestens 6 Zeichen lang sein',
},
},
// Password change
changePassword: {
title: 'Passwort ändern',
currentPassword: 'Aktuelles Passwort',
currentPasswordPlaceholder: 'Aktuelles Passwort eingeben',
newPassword: 'Neues Passwort',
newPasswordPlaceholder: 'Neues Passwort eingeben (min. 6 Zeichen)',
confirmPassword: 'Neues Passwort bestätigen',
confirmPasswordPlaceholder: 'Neues Passwort bestätigen',
passwordsDoNotMatch: 'Passwörter stimmen nicht überein',
passwordTooShort: 'Passwort muss mindestens 6 Zeichen lang sein',
changing: 'Wird geändert...',
success: 'Passwort erfolgreich geändert',
failed: 'Passwortänderung fehlgeschlagen',
},
// Plate detection alert
plateAlert: {
title: 'Druck pausiert!',
message: 'Objekte auf dem Druckbett erkannt. Der Druck wurde automatisch pausiert. Bitte räumen Sie das Druckbett und setzen Sie den Druck fort.',
understand: 'Verstanden',
},
// Camera page
camera: {
title: 'Kameraansicht',
invalidPrinterId: 'Ungültige Drucker-ID',
live: 'Live',
snapshot: 'Schnappschuss',
restartStream: 'Stream neu starten',
refreshSnapshot: 'Schnappschuss aktualisieren',
fullscreen: 'Vollbild',
exitFullscreen: 'Vollbild beenden',
connectingToCamera: 'Verbinde mit Kamera...',
capturingSnapshot: 'Schnappschuss wird aufgenommen...',
connectionLost: 'Verbindung verloren',
connectionFailed: 'Kameraverbindung fehlgeschlagen',
reconnecting: 'Neuverbindung in {{countdown}}s... (Versuch {{attempt}}/{{max}})',
reconnectNow: 'Jetzt verbinden',
cameraUnavailable: 'Kamera nicht verfügbar',
cameraUnavailableDesc: 'Stellen Sie sicher, dass der Drucker eingeschaltet und verbunden ist.',
noCamera: 'Keine Kamera verfügbar',
retry: 'Erneut versuchen',
cameraStream: 'Kamera-Stream',
zoomOut: 'Verkleinern',
zoomIn: 'Vergrößern',
resetZoom: 'Zoom zurücksetzen',
recording: 'Aufnahme',
startRecording: 'Aufnahme starten',
stopRecording: 'Aufnahme stoppen',
},
// Groups management
groups: {
title: 'Gruppenverwaltung',
subtitle: 'Berechtigungsgruppen für Zugriffskontrolle verwalten',
backToSettings: 'Zurück zu Einstellungen',
createGroup: 'Gruppe erstellen',
noPermission: 'Sie haben keine Berechtigung, auf diese Seite zuzugreifen.',
system: 'System',
noDescription: 'Keine Beschreibung',
usersCount: '{{count}} Benutzer',
permissionsCount: '{{count}} Berechtigungen',
edit: 'Bearbeiten',
delete: 'Löschen',
toast: {
created: 'Gruppe erfolgreich erstellt',
updated: 'Gruppe erfolgreich aktualisiert',
deleted: 'Gruppe erfolgreich gelöscht',
enterGroupName: 'Bitte geben Sie einen Gruppennamen ein',
},
modal: {
editGroup: 'Gruppe bearbeiten',
createGroup: 'Gruppe erstellen',
cancel: 'Abbrechen',
saving: 'Speichern...',
creating: 'Erstellen...',
saveChanges: 'Änderungen speichern',
},
form: {
groupName: 'Gruppenname',
groupNamePlaceholder: 'Gruppennamen eingeben',
systemGroupWarning: 'Systemgruppennamen können nicht geändert werden',
description: 'Beschreibung',
descriptionPlaceholder: 'Beschreibung eingeben (optional)',
permissions: 'Berechtigungen ({{count}} ausgewählt)',
},
deleteModal: {
title: 'Gruppe löschen',
message: 'Sind Sie sicher, dass Sie diese Gruppe löschen möchten? Benutzer in dieser Gruppe verlieren diese Berechtigungen.',
confirm: 'Gruppe löschen',
},
},
// Users management
users: {
title: 'Benutzerverwaltung',
subtitle: 'Benutzer und deren Zugriff auf Ihre Bambuddy-Instanz verwalten',
backToSettings: 'Zurück zu Einstellungen',
createUser: 'Benutzer erstellen',
noPermission: 'Sie haben keine Berechtigung, auf diese Seite zuzugreifen.',
admin: 'Admin',
noGroups: 'Keine Gruppen',
active: 'Aktiv',
inactive: 'Inaktiv',
edit: 'Bearbeiten',
delete: 'Löschen',
system: 'System',
noGroupsAvailable: 'Keine Gruppen verfügbar',
table: {
username: 'Benutzername',
groups: 'Gruppen',
status: 'Status',
actions: 'Aktionen',
},
toast: {
created: 'Benutzer erfolgreich erstellt',
updated: 'Benutzer erfolgreich aktualisiert',
deleted: 'Benutzer erfolgreich gelöscht',
fillRequired: 'Bitte füllen Sie alle Pflichtfelder aus',
passwordsDoNotMatch: 'Passwörter stimmen nicht überein',
passwordTooShort: 'Passwort muss mindestens 6 Zeichen lang sein',
},
modal: {
createUser: 'Benutzer erstellen',
editUser: 'Benutzer bearbeiten',
cancel: 'Abbrechen',
creating: 'Erstellen...',
saving: 'Speichern...',
saveChanges: 'Änderungen speichern',
},
form: {
username: 'Benutzername',
usernamePlaceholder: 'Benutzernamen eingeben',
password: 'Passwort',
passwordPlaceholder: 'Passwort eingeben',
confirmPassword: 'Passwort bestätigen',
confirmPasswordPlaceholder: 'Passwort bestätigen',
newPasswordPlaceholder: 'Neues Passwort eingeben',
confirmNewPasswordPlaceholder: 'Neues Passwort bestätigen',
leaveBlankToKeep: 'leer lassen, um das aktuelle zu behalten',
groups: 'Gruppen',
},
deleteModal: {
title: 'Benutzer löschen',
message: 'Sind Sie sicher, dass Sie diesen Benutzer löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.',
confirm: 'Benutzer löschen',
},
},
// Stream overlay
streamOverlay: {
title: 'Stream-Overlay',
invalidPrinterId: 'Ungültige Drucker-ID',
cameraStream: 'Kamera-Stream',
progress: 'Fortschritt',
eta: 'ETA',
tomorrow: 'Morgen',
printerIdle: 'Drucker ist inaktiv',
printerOffline: 'Drucker offline',
status: {
printing: 'Druckt',
paused: 'Pausiert',
finished: 'Fertig',
failed: 'Fehlgeschlagen',
idle: 'Inaktiv',
unknown: 'Unbekannt',
},
},
// Profiles
profiles: {
title: 'Profile',
subtitle: 'Verwalten Sie Ihre Slicer-Voreinstellungen und Druckvorschub-Kalibrierungen',
tabs: {
cloud: 'Cloud-Profile',
kprofiles: 'K-Profile',
},
connectedAs: 'Verbunden als',
logout: 'Abmelden',
noLogoutPermission: 'Sie haben keine Berechtigung zum Abmelden',
failedToLoad: 'Profile konnten nicht geladen werden',
retry: 'Erneut versuchen',
time: {
justNow: 'Gerade eben',
minsAgo: 'vor {{count}}m',
hoursAgo: 'vor {{count}}h',
daysAgo: 'vor {{count}}d',
},
toast: {
loggedOut: 'Abgemeldet',
},
login: {
title: 'Mit Bambu Cloud verbinden',
subtitle: 'Synchronisieren Sie Ihre Slicer-Voreinstellungen geräteübergreifend',
email: 'E-Mail',
password: 'Passwort',
region: 'Region',
regionGlobal: 'Global',
regionChina: 'China',
verificationCode: 'Bestätigungscode',
totpCode: 'Authenticator-Code',
checkEmail: 'Prüfen Sie Ihre E-Mail ({{email}}) für einen 6-stelligen Code',
enterTotpHint: 'Geben Sie den 6-stelligen Code aus Ihrer Authenticator-App ein',
accessToken: 'Zugriffstoken',
accessTokenHint: 'Fügen Sie Ihr Bambu Lab Zugriffstoken ein (aus Bambu Studio)',
back: 'Zurück',
loginButton: 'Anmelden',
verifyButton: 'Bestätigen',
setTokenButton: 'Token setzen',
useToken: 'Stattdessen Zugriffstoken verwenden',
useEmail: 'Stattdessen mit E-Mail anmelden',
toast: {
loggedIn: 'Erfolgreich angemeldet',
codeSent: 'Bestätigungscode an Ihre E-Mail gesendet',
enterTotp: 'Geben Sie den Code aus Ihrer Authenticator-App ein',
tokenSet: 'Token erfolgreich gesetzt',
},
},
presets: {
myPreset: 'Mein Profil (bearbeitbar)',
duplicate: 'Duplizieren',
editable: 'Bearbeitbar',
failedToLoadDetails: 'Profil-Details konnten nicht geladen werden',
deleteConfirm: 'Dieses Profil löschen?',
deleteWarning: '"{{name}}" wird dauerhaft aus Bambu Cloud gelöscht. Dies kann nicht rückgängig gemacht werden.',
noDuplicatePermission: 'Sie haben keine Berechtigung zum Duplizieren von Profilen',
noEditPermission: 'Sie haben keine Berechtigung zum Bearbeiten von Profilen',
noDeletePermission: 'Sie haben keine Berechtigung zum Löschen von Profilen',
types: {
filament: 'Filament-Profil',
printer: 'Drucker-Profil',
process: 'Prozess-Profil',
},
toast: {
deleted: 'Profil gelöscht',
created: 'Profil erstellt',
updated: 'Profil aktualisiert',
duplicated: 'Profil dupliziert',
fieldAdded: 'Feld "{{key}}" hinzugefügt',
exported: 'Profil exportiert',
},
baseLabel: 'Basis: {{name}}',
currentLabel: 'Aktuell: {{name}}',
newPreset: 'Neues Profil',
editPreset: 'Profil bearbeiten',
duplicatePreset: 'Profil duplizieren',
createNewPreset: 'Neues Profil erstellen',
customizeSettings: 'Passen Sie die Einstellungen für Ihr neues Profil an',
compareWithBase: 'Mit Basis-Profil vergleichen',
compare: 'Vergleichen',
// CreatePresetModal - Basic Info
basePreset: 'Basis-Profil',
selectBasePreset: 'Basis-Profil auswählen...',
presetName: 'Profilname',
myCustomPreset: 'Mein eigenes Profil',
inheritsFrom: 'Erbt von',
dropJsonToImport: 'JSON zum Importieren ablegen',
// CreatePresetModal - Tabs
tabs: {
common: 'Allgemein',
allFields: 'Alle Felder',
},
// CreatePresetModal - All Fields Tab
availableFields: 'Verfügbare Felder',
searchFieldsPlaceholder: 'Felder suchen...',
noMatchingFields: 'Keine passenden Felder',
allFieldsAdded: 'Alle Felder hinzugefügt',
addCustomField: 'Eigenes Feld hinzufügen',
yourOverrides: 'Ihre Überschreibungen',
noOverridesYet: 'Noch keine Überschreibungen',
clickFieldsToAdd: 'Klicken Sie links auf Felder, um sie hinzuzufügen',
saveAsTemplate: 'Als Vorlage speichern',
jsonTip: 'Tipp: Ziehen Sie eine .json-Datei auf dieses Fenster, um Einstellungen zu importieren',
},
cloudView: {
searchPlaceholder: 'Profile suchen...',
templates: 'Vorlagen',
refresh: 'Aktualisieren',
newPreset: 'Neues Profil',
clearFilters: 'Filter zurücksetzen',
// Compare mode
compareMode: 'Vergleichsmodus',
selectAnotherPreset: 'Wählen Sie ein weiteres {{type}}-Profil',
clickTwoPresets: 'Klicken Sie auf zwei Profile des gleichen Typs zum Vergleichen',
selectFirst: '1. Erstes auswählen',
selectSecond: '2. Zweites auswählen',
compareNow: 'Jetzt vergleichen',
// Status row
lastSynced: 'Zuletzt synchronisiert:',
showingCount: '{{showing}} von {{total}} Profilen',
noPresetsFound: 'Keine Profile gefunden',
// Column headers
columns: {
filament: 'Filament',
process: 'Prozess',
printer: 'Drucker',
},
noFilamentPresets: 'Keine Filament-Profile',
noProcessPresets: 'Keine Prozess-Profile',
noPrinterPresets: 'Keine Drucker-Profile',
// Filters
filters: {
type: 'Typ',
owner: 'Besitzer',
printer: 'Drucker',
nozzle: 'Düse',
filament: 'Filament',
layer: 'Schicht',
all: 'Alle',
myPresets: 'Meine Profile',
builtIn: 'Voreingestellt',
process: 'Prozess',
},
// Permissions
noTemplatesPermission: 'Sie haben keine Berechtigung, Vorlagen zu verwalten',
noRefreshPermission: 'Sie haben keine Berechtigung, Profile zu aktualisieren',
noCreatePermission: 'Sie haben keine Berechtigung, Profile zu erstellen',
},
templates: {
title: 'Schnellvorlagen',
noTemplates: 'Noch keine Vorlagen',
createFirst: 'Erstellen Sie Vorlagen aus dem Preset-Editor',
typeFilter: 'Typ:',
deleteTitle: 'Vorlage löschen',
deleteWarning: 'Diese Aktion kann nicht rückgängig gemacht werden',
deleteConfirm: 'Möchten Sie "{{name}}" wirklich löschen?',
namePlaceholder: 'Vorlagenname',
descriptionPlaceholder: 'Beschreibung',
settingsJson: 'Einstellungen (JSON)',
fieldsCount: '{{count}} Felder',
shownInModals: 'In Dialogen angezeigt',
hiddenInModals: 'In Dialogen ausgeblendet',
apply: 'Anwenden',
toast: {
deleted: 'Vorlage gelöscht',
updated: 'Vorlage aktualisiert',
created: 'Vorlage erstellt',
applied: 'Vorlage angewendet',
},
},
},
// Support/Debug
support: {
debugLoggingActive: 'Debug-Protokollierung ist aktiv',
manageLogs: 'Verwalten',
},
// File manager
fileManager: {
title: 'Dateimanager',
subtitle: 'Organisieren und verwalten Sie Ihre Druckdateien',
uploadFiles: 'Dateien hochladen',
newFolder: 'Neuer Ordner',
folderName: 'Ordnername',
folderNamePlaceholder: 'z.B. Funktionsteile',
renameFile: 'Datei umbenennen',
renameFolder: 'Ordner umbenennen',
moveFiles: '{{count}} Datei(en) verschieben',
rootNoFolder: 'Stammverzeichnis (Kein Ordner)',
current: 'aktuell',
linkFolder: 'Ordner verknüpfen',
linkFolderDescription: '"{{name}}" mit einem Projekt oder Archiv verknüpfen für schnellen Zugriff.',
project: 'Projekt',
archive: 'Archiv',
noProjectsFound: 'Keine Projekte gefunden',
noArchivesFound: 'Keine Archive gefunden',
unlink: 'Verknüpfung aufheben',
link: 'Verknüpfen',
dragDropFiles: 'Dateien hierher ziehen',
dropFilesHere: 'Dateien hier ablegen',
orClickToBrowse: 'oder klicken zum Durchsuchen',
allFileTypesSupported: 'Alle Dateitypen werden unterstützt. ZIP-Dateien werden extrahiert.',
zipFilesDetected: 'ZIP-Dateien erkannt',
zipExtractOptions: 'ZIP-Dateien werden extrahiert. Wählen Sie, wie die Ordnerstruktur behandelt werden soll:',
preserveZipStructure: 'Ordnerstruktur aus ZIP beibehalten',
createFolderFromZip: 'Ordner aus ZIP-Dateiname erstellen',
stlThumbnailGeneration: 'STL-Vorschaubildgenerierung',
zipMayContainStl: 'ZIP-Dateien können STL-Dateien enthalten. Vorschaubilder können während der Extraktion generiert werden.',
thumbnailsCanBeGenerated: 'Vorschaubilder können für STL-Dateien generiert werden. Große Modelle benötigen möglicherweise mehr Zeit.',
generateThumbnailsForStl: 'Vorschaubilder für STL-Dateien generieren',
threemfDetected: '3MF-Dateien erkannt',
threemfExtractionInfo: 'Druckermodell, Material, Farbe und Druckeinstellungen werden automatisch aus 3MF-Dateien extrahiert.',
willBeExtracted: 'Wird extrahiert',
filesExtracted: '{{count}} Dateien extrahiert',
uploadComplete: 'Upload abgeschlossen: {{succeeded}} erfolgreich',
uploadFailed: '{{count}} fehlgeschlagen',
uploading: 'Hochladen...',
changeLink: 'Verknüpfung ändern...',
linkTo: 'Verknüpfen mit...',
linkToProjectOrArchive: 'Mit Projekt oder Archiv verknüpfen',
addToQueue: 'Zur Warteschlange',
schedulePrint: 'Planen',
generateThumbnail: 'Vorschaubild generieren',
generateThumbnails: 'Vorschaubilder generieren',
generateThumbnailsForMissing: 'Vorschaubilder für STL-Dateien ohne Vorschau generieren',
gridView: 'Rasteransicht',
listView: 'Listenansicht',
lowDiskSpaceWarning: 'Warnung: Wenig Speicherplatz',
lowDiskSpaceDetails: 'Nur {{free}} frei von {{total}} gesamt. Schwellenwert ist auf {{threshold}} GB eingestellt.',
files: 'Dateien',
folders: 'Ordner',
size: 'Größe',
free: 'Frei',
allFiles: 'Alle Dateien',
wrap: 'Umbrechen',
enableTextWrapping: 'Textumbruch aktivieren',
disableTextWrapping: 'Textumbruch deaktivieren',
dragToResizeTooltip: 'Ziehen zum Ändern der Größe, Doppelklick zum Zurücksetzen',
searchFiles: 'Dateien suchen...',
allTypes: 'Alle Typen',
prints: 'Drucke',
ascending: 'Aufsteigend',
descending: 'Absteigend',
resultsCount: '{{showing}} von {{total}} Dateien',
selectAll: 'Alle auswählen',
deselectAll: 'Auswahl aufheben',
selected: '{{count}} ausgewählt',
adding: 'Hinzufügen...',
loadingFiles: 'Dateien werden geladen...',
folderIsEmpty: 'Ordner ist leer',
noFilesYet: 'Noch keine Dateien',
folderEmptyDescription: 'Laden Sie Dateien hoch oder verschieben Sie Dateien in diesen Ordner.',
noFilesDescription: 'Laden Sie Dateien hoch, um Ihre Druckdateien zu organisieren.',
noMatchingFiles: 'Keine passenden Dateien',
noMatchingFilesDescription: 'Keine Dateien entsprechen Ihren aktuellen Such- oder Filterkriterien.',
clearFilters: 'Filter zurücksetzen',
printedCount: '{{count}}x gedruckt',
uploadedBy: 'Hochgeladen von',
deleteFolder: 'Ordner löschen',
deleteFile: 'Datei löschen',
deleteFilesCount: '{{count}} Dateien löschen',
deleteFolderConfirm: 'Möchten Sie diesen Ordner wirklich löschen? Alle Dateien darin werden ebenfalls gelöscht.',
deleteFileConfirm: 'Möchten Sie diese Datei wirklich löschen?',
deleteFilesConfirm: 'Möchten Sie {{count}} ausgewählte Dateien wirklich löschen? Diese Aktion kann nicht rückgängig gemacht werden.',
deleting: 'Wird gelöscht...',
noPermissionRenameFolder: 'Sie haben keine Berechtigung, Ordner umzubenennen',
noPermissionLinkFolder: 'Sie haben keine Berechtigung, Ordner zu verknüpfen',
noPermissionDeleteFolder: 'Sie haben keine Berechtigung, Ordner zu löschen',
noPermissionPrint: 'Sie haben keine Berechtigung zum Drucken',
noPermissionAddToQueue: 'Sie haben keine Berechtigung, zur Warteschlange hinzuzufügen',
noPermissionDownload: 'Sie haben keine Berechtigung, Dateien herunterzuladen',
noPermissionRenameFile: 'Sie haben keine Berechtigung, diese Datei umzubenennen',
noPermissionGenerateThumbnail: 'Sie haben keine Berechtigung, Vorschaubilder zu generieren',
noPermissionDeleteFile: 'Sie haben keine Berechtigung, diese Datei zu löschen',
noPermissionCreateFolder: 'Sie haben keine Berechtigung, Ordner zu erstellen',
noPermissionUpload: 'Sie haben keine Berechtigung, Dateien hochzuladen',
noPermissionMoveFiles: 'Sie haben keine Berechtigung, Dateien zu verschieben',
noPermissionDeleteFiles: 'Sie haben keine Berechtigung, Dateien zu löschen',
toast: {
folderCreated: 'Ordner erstellt',
folderDeleted: 'Ordner gelöscht',
fileDeleted: 'Datei gelöscht',
filesDeleted: '{{count}} Dateien gelöscht',
filesMoved: 'Dateien verschoben',
folderLinked: 'Ordner verknüpft',
folderUnlinked: 'Ordnerverknüpfung aufgehoben',
addedToQueue: '{{count}} Datei(en) zur Warteschlange hinzugefügt',
addedToQueuePartial: '{{added}} Datei(en) hinzugefügt, {{failed}} fehlgeschlagen',
failedToAddToQueue: 'Fehler beim Hinzufügen: {{error}}',
fileRenamed: 'Datei umbenannt',
folderRenamed: 'Ordner umbenannt',
thumbnailsGenerated: '{{count}} Vorschaubild(er) generiert',
thumbnailsGeneratedPartial: '{{succeeded}} Vorschaubild(er) generiert, {{failed}} fehlgeschlagen',
noStlMissingThumbnails: 'Keine STL-Dateien ohne Vorschaubild',
failedToGenerateThumbnails: 'Fehler beim Generieren der Vorschaubilder: {{error}}',
thumbnailGenerated: 'Vorschaubild generiert',
failedToGenerateThumbnail: 'Fehler beim Generieren des Vorschaubildes: {{error}}',
},
},
// Projects
projects: {
title: 'Projekte',
subtitle: 'Organisieren und verfolgen Sie Ihre 3D-Druckprojekte',
newProject: 'Neues Projekt',
editProject: 'Projekt bearbeiten',
deleteProject: 'Projekt löschen',
projectName: 'Projektname',
description: 'Beschreibung',
noProjects: 'Noch keine Projekte',
noProjectsFiltered: 'Keine {{status}} Projekte',
noProjectsFilteredHelp: 'Sie haben keine {{status}} Projekte. Projekte werden hier angezeigt, wenn sich ihr Status ändert.',
createFirst: 'Erstellen Sie Ihr erstes Projekt, um verwandte Drucke zu organisieren, den Fortschritt zu verfolgen und Ihre Builds zu verwalten.',
createFirstButton: 'Erstes Projekt erstellen',
create: 'Erstellen',
files: 'Dateien',
prints: 'Drucke',
plates: 'Platten',
parts: 'Teile',
lastModified: 'Zuletzt geändert',
deleteConfirm: 'Möchten Sie dieses Projekt wirklich löschen? Archive und Warteschlangenelemente werden getrennt, aber nicht gelöscht.',
addFiles: 'Dateien hinzufügen',
removeFile: 'Datei entfernen',
viewDetails: 'Details anzeigen',
// Modal fields
namePlaceholder: 'z.B. Voron 2.4 Build',
descriptionPlaceholder: 'Optionale Beschreibung...',
color: 'Farbe',
targetPlates: 'Ziel-Platten',
targetPlatesPlaceholder: 'z.B. 25',
targetPlatesHelp: 'Anzahl der Druckaufträge',
targetParts: 'Ziel-Teile',
targetPartsPlaceholder: 'z.B. 150',
targetPartsHelp: 'Benötigte Objekte insgesamt',
tagsLabel: 'Tags (kommagetrennt)',
tagsPlaceholder: 'z.B. voron, funktional, geschenk',
dueDate: 'Fälligkeitsdatum',
priority: 'Priorität',
priorityLow: 'Niedrig',
priorityNormal: 'Normal',
priorityHigh: 'Hoch',
priorityUrgent: 'Dringend',
// Status
statusActive: 'Aktiv',
statusCompleted: 'Abgeschlossen',
statusArchived: 'Archiviert',
done: 'Fertig',
completed: 'abgeschlossen',
failed: 'fehlgeschlagen',
inQueue: 'in Warteschlange',
noPrintsYet: 'Noch keine Drucke',
// Footer stats
printJobs: 'Druckaufträge (Platten)',
partsPrinted: 'Gedruckte Teile',
failedParts: 'Fehlgeschlagene Teile',
// Actions
import: 'Importieren',
export: 'Exportieren',
importProject: 'Projekt importieren',
exportAll: 'Alle Projekte exportieren',
loading: 'Projekte werden geladen...',
// Permissions
noEditPermission: 'Sie haben keine Berechtigung, Projekte zu bearbeiten',
noDeletePermission: 'Sie haben keine Berechtigung, Projekte zu löschen',
noCreatePermission: 'Sie haben keine Berechtigung, Projekte zu erstellen',
noImportPermission: 'Sie haben keine Berechtigung, Projekte zu importieren',
noExportPermission: 'Sie haben keine Berechtigung, Projekte zu exportieren',
// Toast
toast: {
created: 'Projekt erstellt',
updated: 'Projekt aktualisiert',
deleted: 'Projekt gelöscht',
imported: 'Projekt importiert',
multipleImported: '{{count}} Projekte importiert',
importFailed: 'Import fehlgeschlagen',
exported: 'Projekte exportiert (nur Metadaten)',
},
},
// Project detail page
projectDetail: {
notFound: 'Projekt nicht gefunden',
backToProjects: 'Zurück zu Projekten',
export: 'Exportieren',
exportProject: 'Projekt exportieren',
noExportPermission: 'Sie haben keine Berechtigung, Projekte zu exportieren',
noEditPermission: 'Sie haben keine Berechtigung, Projekte zu bearbeiten',
partOf: 'Teil von:',
priorityLabel: 'Priorität:',
noPrints: 'Noch keine Drucke in diesem Projekt',
status: {
active: 'Aktiv',
completed: 'Abgeschlossen',
archived: 'Archiviert',
},
priority: {
low: 'Niedrig',
normal: 'Normal',
high: 'Hoch',
urgent: 'Dringend',
},
dueDate: {
overdue: 'Überfällig',
today: 'Heute fällig',
daysLeft: '{{count}} Tage übrig',
},
progress: {
platesProgress: 'Platten-Fortschritt',
partsProgress: 'Teile-Fortschritt',
printJobs: 'Druckaufträge',
parts: 'Teile',
percentComplete: '{{percent}}% abgeschlossen',
remaining: '{{count}} verbleibend',
},
stats: {
printJobs: 'Druckaufträge',
total: 'gesamt',
failed: '{{count}} fehlgeschlagen',
partsPrinted: '{{count}} Teile gedruckt',
printTime: 'Druckzeit',
filamentUsed: 'Filament verbraucht',
},
cost: {
title: 'Kostenverfolgung',
filamentCost: 'Filamentkosten',
energy: 'Energie',
budget: 'Budget',
remaining: 'Verbleibend',
},
subProjects: {
title: 'Unterprojekte ({{count}})',
},
notes: {
title: 'Notizen',
noEditPermission: 'Sie haben keine Berechtigung, Notizen zu bearbeiten',
placeholder: 'Notizen zu diesem Projekt hinzufügen...',
empty: 'Noch keine Notizen. Klicken Sie auf Bearbeiten, um Notizen hinzuzufügen.',
},
files: {
title: 'Dateien',
linkFolders: 'Ordner aus dem Dateimanager verknüpfen',
forQuickAccess: 'für schnellen Zugriff auf dieses Projekt.',
fileCount: '{{count}} Datei(en)',
empty: 'Keine Ordner verknüpft. Gehen Sie zum Dateimanager und verknüpfen Sie einen Ordner mit diesem Projekt.',
},
bom: {
title: 'Stückliste',
acquired: '{{completed}}/{{total}} beschafft',
showAll: 'Alle anzeigen',
hideDone: 'Erledigte ausblenden',
addPart: 'Teil hinzufügen',
noAddPermission: 'Sie haben keine Berechtigung, Teile hinzuzufügen',
partNamePlaceholder: 'Teilename (z.B. M3x8 Schrauben)',
partName: 'Teilename',
qty: 'Menge',
price: 'Preis ({{currency}})',
sourcingUrlPlaceholder: 'Bezugsquelle-URL (optional)',
remarksPlaceholder: 'Bemerkungen (optional)',
deletePart: 'Teil löschen',
deleteConfirm: 'Möchten Sie "{{name}}" wirklich löschen?',
noUpdatePermission: 'Sie haben keine Berechtigung, Teile zu aktualisieren',
noEditPermission: 'Sie haben keine Berechtigung, Teile zu bearbeiten',
noDeletePermission: 'Sie haben keine Berechtigung, Teile zu löschen',
totalCost: 'Gesamtkosten:',
empty: 'Keine Teile in der Stückliste. Fügen Sie Hardware, Elektronik oder andere Komponenten hinzu, um zu verfolgen, was beschafft werden muss.',
},
timeline: {
title: 'Aktivitätsverlauf',
empty: 'Noch keine Aktivität.',
},
template: {
saveAsTemplate: 'Als Vorlage speichern',
noCreatePermission: 'Sie haben keine Berechtigung, Vorlagen zu erstellen',
},
queue: {
title: 'Warteschlange',
viewAll: 'Alle anzeigen',
printing: '{{count}} druckend',
queued: '{{count}} in Warteschlange',
},
prints: {
title: 'Drucke ({{count}})',
},
toast: {
projectUpdated: 'Projekt aktualisiert',
partAdded: 'Teil hinzugefügt',
partRemoved: 'Teil entfernt',
exportFailed: 'Export fehlgeschlagen',
projectExported: 'Projekt exportiert',
templateCreated: 'Vorlage erstellt',
},
},
// System info
system: {
title: 'Systeminformationen',
version: 'Version',
uptime: 'Laufzeit',
cpuUsage: 'CPU-Auslastung',
memoryUsage: 'Speicherauslastung',
diskUsage: 'Festplattenauslastung',
networkInfo: 'Netzwerkinformationen',
logs: 'Protokolle',
debugMode: 'Debug-Modus',
enableDebug: 'Debug-Protokollierung aktivieren',
disableDebug: 'Debug-Protokollierung deaktivieren',
downloadLogs: 'Protokolle herunterladen',
clearLogs: 'Protokolle löschen',
dockerInfo: 'Docker-Info',
containerName: 'Container-Name',
imageName: 'Image-Name',
platform: 'Plattform',
architecture: 'Architektur',
},
// Library (K Profiles)
library: {
title: 'Filament-Bibliothek',
addFilament: 'Filament hinzufügen',
editFilament: 'Filament bearbeiten',
deleteFilament: 'Filament löschen',
vendor: 'Hersteller',
material: 'Material',
color: 'Farbe',
kFactor: 'K-Faktor',
temperature: 'Temperatur',
noFilaments: 'Keine Filamente in der Bibliothek',
deleteConfirm: 'Möchten Sie dieses Filament wirklich löschen?',
importFromPrinter: 'Vom Drucker importieren',
exportToFile: 'In Datei exportieren',
},
// Spoolman
spoolman: {
title: 'Spoolman-Integration',
enabled: 'Spoolman aktiviert',
url: 'Spoolman URL',
connected: 'Verbunden',
disconnected: 'Nicht verbunden',
testConnection: 'Verbindung testen',
sync: 'Synchronisieren',
syncing: 'Synchronisiert...',
lastSync: 'Letzte Synchronisierung',
linkToSpoolman: 'Mit Spoolman verknüpfen',
openInSpoolman: 'In Spoolman öffnen',
unlinkSpool: 'Spule trennen',
selectSpool: 'Spule auswählen',
noUnlinkedSpools: 'Keine nicht verknüpften Spulen verfügbar',
linkSuccess: 'Spule erfolgreich mit Spoolman verknüpft',
linkFailed: 'Verknüpfung mit Spoolman fehlgeschlagen',
spoolId: 'Spulen-ID',
weight: 'Gewicht',
remaining: 'Verbleibend',
disableWeightSync: 'AMS-Gewichtsschätzung deaktivieren',
disableWeightSyncDesc: 'Verbleibende Kapazität nicht aus AMS-Schätzungen aktualisieren. Verwenden Sie dies, wenn Sie die Verbrauchserfassung von Spoolman gegenüber den prozentualen AMS-Schätzungen bevorzugen. Neue Spulen verwenden weiterhin die AMS-Schätzung als Anfangsgewicht.',
reportPartialUsage: 'Teilverbrauch bei fehlgeschlagenen Drucken melden',
reportPartialUsageDesc: 'Wenn ein Druck fehlschlägt oder abgebrochen wird, den geschätzten Filamentverbrauch bis zu diesem Zeitpunkt basierend auf dem Schichtfortschritt melden.',
},
// Timelapse
timelapse: {
title: 'Zeitraffer',
create: 'Zeitraffer erstellen',
download: 'Herunterladen',
delete: 'Löschen',
preview: 'Vorschau',
frameRate: 'Bildrate',
quality: 'Qualität',
processing: 'Wird verarbeitet...',
noTimelapses: 'Keine Zeitraffer verfügbar',
},
// AMS
ams: {
title: 'AMS',
slot: 'Slot',
empty: 'Leer',
emptySlot: 'Leerer Slot',
unknown: 'Unbekannt',
humidity: 'Luftfeuchtigkeit',
temperature: 'Temperatur',
filamentType: 'Filamenttyp',
filamentColor: 'Farbe',
remaining: 'Verbleibend',
history: 'AMS-Verlauf',
noHistory: 'Kein Verlauf verfügbar',
configureSlot: 'Slot konfigurieren',
externalSpool: 'Externe Spule',
profile: 'Profil',
kFactor: 'K-Faktor',
fill: 'Füllstand',
configure: 'Konfigurieren',
},
// Print modal
printModal: {
title: 'Druck starten',
selectPrinter: 'Drucker auswählen',
selectPlate: 'Platte auswählen',
filamentMapping: 'Filamentzuordnung',
printSettings: 'Druckeinstellungen',
bedLeveling: 'Bett-Nivellierung',
flowCalibration: 'Fluss-Kalibrierung',
vibrationCalibration: 'Vibrations-Kalibrierung',
layerInspection: 'Erste-Schicht-Prüfung',
timelapse: 'Zeitraffer',
startPrint: 'Druck starten',
addToQueue: 'Zur Warteschlange hinzufügen',
cancel: 'Abbrechen',
noPrintersAvailable: 'Keine Drucker verfügbar',
printerBusy: 'Drucker ist beschäftigt',
printerOffline: 'Drucker ist offline',
},
// Backup
backup: {
title: 'Sichern & Wiederherstellen',
createBackup: 'Sicherung erstellen',
restoreBackup: 'Sicherung wiederherstellen',
restoreDescription: 'Alle Daten aus einer Sicherungsdatei ersetzen',
downloadBackup: 'Sicherung herunterladen',
uploadBackup: 'Sicherung hochladen',
lastBackup: 'Letzte Sicherung',
autoBackup: 'Automatische Sicherung',
backupNow: 'Jetzt sichern',
restoreWarning: 'Warnung: Das Wiederherstellen einer Sicherung überschreibt alle aktuellen Daten.',
includeArchives: 'Archive einschließen',
includeSettings: 'Einstellungen einschließen',
includeProfiles: 'Profile einschließen',
backupSuccess: 'Sicherung erfolgreich erstellt',
restoreSuccess: 'Sicherung erfolgreich wiederhergestellt',
backupFailed: 'Sicherung fehlgeschlagen',
restoreFailed: 'Wiederherstellung fehlgeschlagen',
restoreNote: 'Virtueller Drucker wird während der Wiederherstellung gestoppt',
},
// Tags
tags: {
title: 'Tags',
addTag: 'Tag hinzufügen',
editTag: 'Tag bearbeiten',
deleteTag: 'Tag löschen',
tagName: 'Tag-Name',
tagColor: 'Tag-Farbe',
noTags: 'Keine Tags',
deleteConfirm: 'Möchten Sie diesen Tag wirklich löschen?',
manageTags: 'Tags verwalten',
},
// Upload modal (archives)
uploadModal: {
title: '3MF-Dateien hochladen',
dragDrop: '3MF-Dateien hierher ziehen',
or: 'oder',
browseFiles: 'Dateien durchsuchen',
extractionInfo: 'Das Druckermodell wird automatisch aus den 3MF-Datei-Metadaten extrahiert.',
uploaded: 'hochgeladen',
failed: 'fehlgeschlagen',
uploading: 'Wird hochgeladen...',
upload: 'Hochladen',
uploadFailed: 'Hochladen fehlgeschlagen',
},
// Edit archive modal
editArchive: {
title: 'Archiv bearbeiten',
name: 'Name',
namePlaceholder: 'Druckname',
printer: 'Drucker',
noPrinter: 'Kein Drucker',
project: 'Projekt',
noProject: 'Kein Projekt',
itemsPrinted: 'Gedruckte Teile',
itemsPrintedHelp: 'Anzahl der in diesem Druckauftrag produzierten Teile',
notes: 'Notizen',
notesPlaceholder: 'Notizen zu diesem Druck hinzufügen...',
externalLink: 'Externer Link',
externalLinkPlaceholder: 'https://printables.com/model/...',
externalLinkHelp: 'Link zu Printables, Thingiverse oder anderer Quelle',
tags: 'Tags',
tagsPlaceholder: 'Tags hinzufügen...',
addMoreTags: 'Weitere Tags hinzufügen...',
matchingTags: 'Übereinstimmend mit "{{query}}"',
existingTags: 'Vorhandene Tags',
clickToAdd: '(zum Hinzufügen klicken)',
status: 'Status',
failureReason: 'Fehlergrund',
selectReason: 'Grund auswählen...',
photos: 'Fotos des Druckergebnisses',
photosHelp: 'Klicken Sie auf + um Fotos Ihres Druckergebnisses hinzuzufügen',
printResult: 'Druckergebnis',
saving: 'Wird gespeichert...',
// Failure reasons
failureReasons: {
adhesionFailure: 'Haftungsfehler',
spaghettiDetached: 'Spaghetti / Abgelöst',
layerShift: 'Schichtversatz',
cloggedNozzle: 'Verstopfte Düse',
filamentRunout: 'Filament aufgebraucht',
warping: 'Verformung',
stringing: 'Fadenziehen',
underExtrusion: 'Unterextrusion',
powerFailure: 'Stromausfall',
userCancelled: 'Vom Benutzer abgebrochen',
other: 'Sonstiges',
},
// Archive statuses
statuses: {
completed: 'Abgeschlossen',
failed: 'Fehlgeschlagen',
aborted: 'Abgebrochen',
printing: 'Druckt',
},
},
// K-Profiles
kProfiles: {
title: 'K-Profile',
noPrintersConfigured: 'Keine Drucker konfiguriert',
addPrinterInSettings: 'Fügen Sie einen Drucker in den Einstellungen hinzu, um K-Profile zu verwalten',
noActivePrinters: 'Keine aktiven Drucker',
enablePrinterConnection: 'Aktivieren Sie eine Druckerverbindung, um K-Profile anzuzeigen',
loadingProfiles: 'Lade K-Profile...',
printerOffline: 'Drucker offline',
printerOfflineDesc: 'Der ausgewählte Drucker ist nicht verbunden. Schalten Sie ihn ein, um K-Profile anzuzeigen.',
noMatchingProfiles: 'Keine passenden Profile',
noMatchingProfilesDesc: 'Keine Profile entsprechen Ihren Suchkriterien',
noKProfiles: 'Keine K-Profile',
noKProfilesDesc: 'Keine Druckvorschub-Profile für {{diameter}}mm Düse gefunden',
createFirstProfile: 'Erstes Profil erstellen',
// Controls
printer: 'Drucker',
nozzle: 'Düse',
refresh: 'Aktualisieren',
addProfile: 'Profil hinzufügen',
export: 'Exportieren',
import: 'Importieren',
select: 'Auswählen',
selectAll: 'Alle auswählen',
delete: 'Löschen',
// Filters
searchPlaceholder: 'Nach Name oder Filament suchen...',
allExtruders: 'Alle Extruder',
leftOnly: 'Nur links',
rightOnly: 'Nur rechts',
allFlow: 'Alle Flusstypen',
hfOnly: 'Nur HF',
sOnly: 'Nur S',
sortName: 'Sortieren: Name',
sortKValue: 'Sortieren: K-Wert',
sortFilament: 'Sortieren: Filament',
// Dual extruder labels
leftExtruder: 'Linker Extruder',
rightExtruder: 'Rechter Extruder',
// Modal
modal: {
addTitle: 'K-Profil hinzufügen',
editTitle: 'K-Profil bearbeiten',
profileName: 'Profilname',
profileNamePlaceholder: 'Mein PLA-Profil',
kValue: 'K-Wert',
kValuePlaceholder: '0,020',
kValueHelp: 'Typischer Bereich: 0,01 - 0,06 für PLA, 0,02 - 0,10 für PETG',
filament: 'Filament',
selectFilament: 'Filament auswählen...',
noFilamentsHelp: 'Keine Filamente gefunden. Erstellen Sie zuerst ein K-Profil in Bambu Studio.',
flowType: 'Flusstyp',
highFlow: 'High Flow',
standard: 'Standard',
nozzleSize: 'Düsengröße',
extruder: 'Extruder',
extruders: 'Extruder',
left: 'Links',
right: 'Rechts',
notes: 'Notizen (lokal gespeichert)',
notesPlaceholder: 'Notizen zu diesem Profil hinzufügen...',
notesHelp: 'Notizen werden in Bambuddy gespeichert, nicht auf dem Drucker',
syncing: 'Synchronisiert mit Drucker...',
savingExtruder: 'Speichern auf Extruder {{current}}/{{total}}...',
pleaseWait: 'Bitte warten',
},
// Delete confirmation
deleteConfirm: {
title: 'Profil löschen',
cannotUndo: 'Dies kann nicht rückgängig gemacht werden',
message: 'Möchten Sie "{{name}}" wirklich vom Drucker löschen?',
},
// Bulk delete
bulkDelete: {
title: 'Profile löschen',
cannotUndo: 'Dies kann nicht rückgängig gemacht werden',
message: 'Möchten Sie wirklich {{count}} ausgewählte Profile vom Drucker löschen?',
},
// Toast
toast: {
profileSaved: 'K-Profil gespeichert',
profilesSaved: 'K-Profil auf {{count}} Extrudern gespeichert',
selectAtLeastOneExtruder: 'Bitte wählen Sie mindestens einen Extruder aus',
profileDeleted: 'K-Profil gelöscht',
profilesDeleted: '{{count}} Profile gelöscht',
exportedProfiles: '{{count}} Profile exportiert',
importedProfiles: '{{count}} von {{total}} Profilen importiert',
noProfilesToExport: 'Keine Profile zum Exportieren',
invalidFileFormat: 'Ungültiges Dateiformat',
failedToParseImport: 'Import-Datei konnte nicht gelesen werden',
failedToSaveBatch: 'K-Profile konnten nicht gespeichert werden',
noteSaved: 'Notiz gespeichert',
failedToSaveNote: 'Notiz konnte nicht gespeichert werden',
},
// Permissions
permission: {
noRead: 'Sie haben keine Berechtigung, Profile zu aktualisieren',
noCreate: 'Sie haben keine Berechtigung, Profile hinzuzufügen',
noUpdate: 'Sie haben keine Berechtigung, K-Profile zu aktualisieren',
noDelete: 'Sie haben keine Berechtigung, K-Profile zu löschen',
noExport: 'Sie haben keine Berechtigung, Profile zu exportieren',
noImport: 'Sie haben keine Berechtigung, Profile zu importieren',
},
},
// Virtual Printer
virtualPrinter: {
title: 'Virtueller Drucker',
running: 'Läuft',
stopped: 'Gestoppt',
description: {
default: 'Aktiviere einen virtuellen Drucker, der in Bambu Studio und OrcaSlicer erscheint. Dateien, die an diesen Drucker gesendet werden, werden direkt archiviert ohne zu drucken.',
proxy: 'Aktiviere einen Proxy, der Slicer-Datenverkehr an einen echten Drucker weiterleitet, um Ferndruck über jedes Netzwerk zu ermöglichen.',
},
enable: {
title: 'Virtuellen Drucker aktivieren',
visibleInSlicer: 'Sichtbar als "Bambuddy" in der Slicer-Erkennung',
proxyingTo: 'Proxy zu {{name}}',
notActive: 'Nicht aktiv',
},
model: {
title: 'Druckermodell',
description: 'Wähle welches Druckermodell emuliert werden soll.',
restartWarning: 'Das Ändern des Modells startet den virtuellen Drucker neu',
},
accessCode: {
title: 'Zugangscode',
isSet: 'Zugangscode ist gesetzt',
notSet: 'Kein Zugangscode gesetzt - erforderlich zum Aktivieren',
placeholder: '8-Zeichen-Code eingeben',
placeholderChange: 'Neuen Code eingeben zum Ändern',
hint: 'Muss genau 8 Zeichen lang sein. Wird von Slicern zur Authentifizierung verwendet.',
charCount: '({{count}}/8)',
},
targetPrinter: {
title: 'Zieldrucker',
configured: 'Proxy-Ziel konfiguriert',
notConfigured: 'Kein Zieldrucker ausgewählt - erforderlich für Proxy-Modus',
placeholder: 'Drucker auswählen...',
hint: 'Wähle den Drucker aus, an den der Slicer-Datenverkehr weitergeleitet werden soll. Der Drucker muss im LAN-Modus sein.',
noPrinters: 'Keine Drucker konfiguriert. Füge zuerst einen Drucker hinzu, um den Proxy-Modus zu verwenden.',
},
remoteInterface: {
title: 'Slicer-Netzwerkschnittstelle',
configured: 'SSDP-Proxy aktiviert',
optional: 'Optional - für SSDP-Erkennung über Netzwerke hinweg',
placeholder: 'Schnittstelle für Slicer-Netzwerk auswählen...',
hint: 'Wähle die Netzwerkschnittstelle, die mit dem Slicer verbunden ist. Ermöglicht automatische Druckererkennung in Bambu Studio.',
},
mode: {
title: 'Modus',
archive: 'Archivieren',
archiveDesc: 'Dateien sofort archivieren',
review: 'Überprüfen',
reviewDesc: 'Vor dem Archivieren überprüfen',
queue: 'Warteschlange',
queueDesc: 'Archivieren und zur Warteschlange hinzufügen',
proxy: 'Proxy',
proxyDesc: 'An echten Drucker weiterleiten',
},
setupRequired: {
title: 'Einrichtung erforderlich',
description: 'Die virtuelle Druckerfunktion erfordert zusätzliche Systemkonfiguration, bevor sie funktioniert. Dies beinhaltet Portweiterleitung, Firewall-Regeln und plattformspezifische Einstellungen.',
readGuide: 'Lese die Einrichtungsanleitung vor dem Aktivieren',
},
howItWorks: {
title: 'So funktioniert es',
titleProxy: 'So funktioniert es (Proxy-Modus)',
step1: 'Schließe die Einrichtungsanleitung für deine Plattform ab',
step2: 'Aktiviere den virtuellen Drucker und setze einen Zugangscode',
step3: 'In Bambu Studio oder OrcaSlicer gehe zu "Drucker hinzufügen"',
step4: 'Der "Bambuddy"-Drucker sollte in der Erkennungsliste erscheinen',
step5: 'Verbinde mit dem von dir gesetzten Zugangscode',
step6: 'Wenn du zu Bambuddy "druckst", wird die 3MF-Datei stattdessen archiviert',
proxyStep1: 'Wähle den Zieldrucker (muss im LAN-Modus sein)',
proxyStep2: 'Bei Netzwerkübergreifend: Wähle die Slicer-Netzwerkschnittstelle',
proxyStep3: 'Aktiviere den Proxy - Drucker erscheint per SSDP in der Slicer-Erkennung',
proxyStep4: 'Verbinde mit dem Zugangscode des Druckers',
proxyStep5: 'Drucke wie gewohnt - der Datenverkehr wird über Bambuddy weitergeleitet',
proxyStep6: 'Kamera-Streaming erfordert NAT/IP-Weiterleitung (siehe Dokumentation)',
},
status: {
title: 'Status-Details',
printerName: 'Druckername',
model: 'Modell',
serialNumber: 'Seriennummer',
mode: 'Modus',
pendingFiles: 'Ausstehende Dateien',
targetPrinter: 'Zieldrucker',
ftpPort: 'FTP-Port',
mqttPort: 'MQTT-Port',
ftpConnections: 'FTP-Verbindungen',
mqttConnections: 'MQTT-Verbindungen',
},
toast: {
updated: 'Virtuelle Druckereinstellungen aktualisiert',
failedToUpdate: 'Einstellungen konnten nicht aktualisiert werden',
accessCodeRequired: 'Bitte zuerst einen Zugangscode setzen',
targetPrinterRequired: 'Bitte zuerst einen Zieldrucker auswählen',
accessCodeEmpty: 'Zugangscode darf nicht leer sein',
accessCodeLength: 'Zugangscode muss genau 8 Zeichen lang sein',
},
},
// Model Viewer
modelViewer: {
openInSlicer: 'Im Slicer öffnen',
tabs: {
model: '3D-Modell',
gcode: 'G-Code Vorschau',
},
notAvailable: 'nicht verfügbar',
notSliced: 'nicht geslicet',
plates: 'Platten',
allPlates: 'Alle Platten',
plateNumber: 'Platte {{number}}',
plateCount: '{{count}} Platte',
plateCount_other: '{{count}} Platten',
objectCount: '{{count}} Objekt',
objectCount_other: '{{count}} Objekte',
filamentCount: '{{count}} Filament',
filamentCount_other: '{{count}} Filamente',
eta: 'ETA {{minutes}} Min',
noPreview: 'Keine Vorschau für diese Datei verfügbar',
pagination: {
pageOf: 'Seite {{current}} von {{total}}',
prev: 'Zurück',
next: 'Weiter',
},
errors: {
failedToLoad: 'Datei konnte nicht geladen werden',
noMeshes: 'Keine Meshes in 3MF-Datei gefunden',
unsupportedFormat: 'Nicht unterstütztes Dateiformat',
},
},
// Maintenance type descriptions (built-in)
maintenanceDescriptions: {
lubricateRails: 'Schmiermittel auf Linearschienen für sanfte Bewegung auftragen',
cleanNozzle: 'Hotend und Düse reinigen, um Verstopfungen zu verhindern',
checkBelts: 'Riemenspannung für präzise Drucke überprüfen',
cleanBuildPlate: 'Druckplatte für bessere Haftung reinigen',
checkExtruder: 'Extruderzahnräder auf Verschleiß prüfen',
checkCooling: 'Sicherstellen, dass Lüfter ordnungsgemäß funktionieren',
generalInspection: 'Allgemeine Druckerinspektion',
cleanCarbonRods: 'Karbonstäbe reinigen, um Reibung zu reduzieren',
checkPtfeTube: 'PTFE-Schlauch auf Verschleiß oder Beschädigung prüfen',
replaceHepaFilter: 'HEPA-Filter für Luftqualität ersetzen',
replaceCarbonFilter: 'Aktivkohlefilter ersetzen',
lubricateLeftNozzleRail: 'Linke Düsenschiene schmieren (H2-Serie)',
},
};