de.ts 217 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050
  1. export default {
  2. // Navigation
  3. nav: {
  4. printers: 'Drucker',
  5. archives: 'Archiv',
  6. queue: 'Warteschlange',
  7. stats: 'Statistiken',
  8. profiles: 'Profile',
  9. maintenance: 'Wartung',
  10. projects: 'Projekte',
  11. inventory: 'Filament',
  12. files: 'Dateimanager',
  13. notifications: 'Benachrichtigungen',
  14. settings: 'Einstellungen',
  15. system: 'System',
  16. collapseSidebar: 'Seitenleiste einklappen',
  17. expandSidebar: 'Seitenleiste ausklappen',
  18. update: 'Update',
  19. updateAvailable: 'Update verfügbar: v{{version}}',
  20. updateAvailableBanner: 'Version {{version}} ist verfügbar!',
  21. viewUpdate: 'Update anzeigen',
  22. viewOnGithub: 'Auf GitHub ansehen',
  23. keyboardShortcuts: 'Tastaturkürzel (?)',
  24. switchToLight: 'Zum hellen Modus wechseln',
  25. switchToDark: 'Zum dunklen Modus wechseln',
  26. smartSwitches: 'Smart Switches',
  27. logout: 'Abmelden',
  28. },
  29. // Common
  30. common: {
  31. save: 'Speichern',
  32. saving: 'Speichern...',
  33. cancel: 'Abbrechen',
  34. delete: 'Löschen',
  35. edit: 'Bearbeiten',
  36. add: 'Hinzufügen',
  37. close: 'Schließen',
  38. confirm: 'Bestätigen',
  39. loading: 'Lädt...',
  40. error: 'Fehler',
  41. success: 'Erfolg',
  42. warning: 'Warnung',
  43. enabled: 'Aktiviert',
  44. disabled: 'Deaktiviert',
  45. yes: 'Ja',
  46. no: 'Nein',
  47. on: 'An',
  48. off: 'Aus',
  49. all: 'Alle',
  50. none: 'Keine',
  51. search: 'Suchen',
  52. filter: 'Filtern',
  53. sort: 'Sortieren',
  54. refresh: 'Aktualisieren',
  55. download: 'Herunterladen',
  56. upload: 'Hochladen',
  57. uploading: 'Hochladen...',
  58. uploadFailed: 'Hochladen fehlgeschlagen',
  59. actions: 'Aktionen',
  60. status: 'Status',
  61. name: 'Name',
  62. description: 'Beschreibung',
  63. date: 'Datum',
  64. time: 'Zeit',
  65. hours: 'Stunden',
  66. minutes: 'Minuten',
  67. seconds: 'Sekunden',
  68. days: 'Tage',
  69. enable: 'Aktivieren',
  70. disable: 'Deaktivieren',
  71. permissions: 'Berechtigungen',
  72. noPrinters: 'Keine Drucker konfiguriert',
  73. noData: 'Keine Daten verfügbar',
  74. linkNotFound: 'Link nicht gefunden',
  75. required: 'Erforderlich',
  76. optional: 'Optional',
  77. dismiss: 'Schließen',
  78. apply: 'Anwenden',
  79. reset: 'Zurücksetzen',
  80. export: 'Exportieren',
  81. import: 'Importieren',
  82. clear: 'Leeren',
  83. selectAll: 'Alle auswählen',
  84. deselectAll: 'Auswahl aufheben',
  85. noChange: '— Keine Änderung —',
  86. unchanged: 'Unverändert',
  87. unassigned: 'Nicht zugewiesen',
  88. unknown: 'Unbekannt',
  89. unknownError: 'Unbekannter Fehler',
  90. today: 'Heute',
  91. tomorrow: 'Morgen',
  92. asap: 'Sofort',
  93. overdue: 'Überfällig',
  94. now: 'Jetzt',
  95. collapse: 'Einklappen',
  96. expand: 'Ausklappen',
  97. viewArchive: 'Archiv anzeigen',
  98. viewInFileManager: 'Im Dateimanager anzeigen',
  99. addedBy: 'Hinzugefügt von {{username}}',
  100. prints: 'Drucke',
  101. more: '+{{count}} weitere',
  102. ascending: 'Aufsteigend',
  103. descending: 'Absteigend',
  104. back: 'Zurück',
  105. copy: 'Kopieren',
  106. copied: 'Kopiert!',
  107. printer: 'Drucker',
  108. remove: 'Entfernen',
  109. type: 'Typ',
  110. print: 'Drucken',
  111. rename: 'Umbenennen',
  112. move: 'Verschieben',
  113. create: 'Erstellen',
  114. duplicate: 'Duplizieren',
  115. left: 'Links',
  116. right: 'Rechts',
  117. },
  118. // Printers page
  119. printers: {
  120. title: 'Drucker',
  121. addPrinter: 'Drucker hinzufügen',
  122. editPrinter: 'Drucker bearbeiten',
  123. deletePrinter: 'Drucker löschen',
  124. printerName: 'Druckername',
  125. serialNumber: 'Seriennummer',
  126. ipAddress: 'IP-Adresse / Hostname',
  127. accessCode: 'Zugangscode',
  128. model: 'Modell',
  129. nozzleCount: 'Düsenanzahl',
  130. autoArchive: 'Automatische Archivierung',
  131. status: {
  132. available: 'Verfügbar',
  133. idle: 'Bereit',
  134. printing: 'Druckt',
  135. paused: 'Pausiert',
  136. offline: 'Offline',
  137. problem: 'Problem',
  138. error: 'Fehler',
  139. finished: 'Fertig',
  140. unknown: 'Unbekannt',
  141. },
  142. temperatures: {
  143. nozzle: 'Düse',
  144. bed: 'Druckbett',
  145. chamber: 'Kammer',
  146. },
  147. progress: '{{percent}}% abgeschlossen',
  148. timeRemaining: 'Noch {{time}}',
  149. deleteConfirm: 'Möchten Sie "{{name}}" wirklich löschen?',
  150. maintenanceOk: 'Wartung OK',
  151. maintenanceWarning: '{{count}} Warnung',
  152. maintenanceWarning_plural: '{{count}} Warnungen',
  153. maintenanceDue: '{{count}} fällig',
  154. maintenanceDue_plural: '{{count}} fällig',
  155. // Sort options
  156. sort: {
  157. name: 'Name',
  158. status: 'Status',
  159. model: 'Modell',
  160. location: 'Standort',
  161. ascending: 'Aufsteigend sortieren',
  162. descending: 'Absteigend sortieren',
  163. },
  164. // Card size
  165. cardSize: {
  166. small: 'Kleine Karten',
  167. medium: 'Mittlere Karten',
  168. large: 'Große Karten',
  169. extraLarge: 'Extra große Karten',
  170. },
  171. // Controls
  172. hideOffline: 'Offline ausblenden',
  173. nextAvailable: 'Nächster verfügbar',
  174. powerOn: 'Einschalten',
  175. offlinePrintersWithPlugs: 'Offline-Drucker mit Smart-Plugs',
  176. noPrintersConfigured: 'Noch keine Drucker konfiguriert',
  177. search: 'Drucker suchen...',
  178. noSearchResults: 'Keine Drucker entsprechen deiner Suche oder deinen Filtern',
  179. filter: {
  180. allStatuses: 'Alle Status',
  181. allLocations: 'Alle Standorte',
  182. },
  183. // Printer card
  184. readyToPrint: 'Druckbereit',
  185. external: 'Extern',
  186. extL: 'Ext-L',
  187. extR: 'Ext-R',
  188. deleteArchives: 'Druckarchive löschen',
  189. noLabel: 'Keine Bezeichnung',
  190. printPreview: 'Druckvorschau',
  191. width: 'Breite',
  192. height: 'Höhe',
  193. noObjectsFound: 'Keine Objekte gefunden',
  194. objectsLoadedOnPrintStart: 'Objekte werden beim Druckstart geladen',
  195. willBeSkipped: 'Wird übersprungen',
  196. name: 'Name',
  197. serialCannotBeChanged: 'Seriennummer kann nicht geändert werden',
  198. locationHelp: 'Dient zur Gruppierung von Druckern und zum Filtern von Warteschlangenaufträgen',
  199. // WiFi signal strength
  200. wifiSignal: {
  201. veryWeak: 'Sehr schwach',
  202. weak: 'Schwach',
  203. fair: 'Ausreichend',
  204. good: 'Gut',
  205. excellent: 'Ausgezeichnet',
  206. },
  207. // Maintenance
  208. maintenanceUpToDate: 'Alle Wartungen aktuell - Klicken zum Anzeigen',
  209. // Chamber light
  210. chamberLightOn: 'Kammerbeleuchtung einschalten',
  211. chamberLightOff: 'Kammerbeleuchtung ausschalten',
  212. // Files
  213. files: 'Dateien',
  214. browseFiles: 'Druckerdateien durchsuchen',
  215. // Smart plug
  216. autoOffAfterPrint: 'Automatisches Ausschalten nach Druck',
  217. autoOffExecuted: 'Auto-off wurde ausgeführt - Drucker einschalten zum Zurücksetzen',
  218. // HMS errors
  219. hmsErrors: 'HMS-Fehler',
  220. viewHmsErrors: '{{count}} HMS-Fehler anzeigen',
  221. // Actions
  222. resume: 'Fortsetzen',
  223. pause: 'Pausieren',
  224. stop: 'Stoppen',
  225. camera: 'Kamera',
  226. skipObject: 'Objekt überspringen',
  227. reconnect: 'Neu verbinden',
  228. forceRefresh: 'Aktualisierung erzwingen',
  229. forceRefreshSuccess: 'Aktualisierung angefordert',
  230. mqttDebug: 'MQTT-Debug',
  231. printerInformation: 'Druckerinformationen',
  232. copyToClipboard: 'Kopieren',
  233. copied: 'Kopiert!',
  234. state: 'Zustand',
  235. wifiSignalLabel: 'WLAN-Signal',
  236. developerMode: 'Entwicklermodus',
  237. enabled: 'Aktiviert',
  238. disabled: 'Deaktiviert',
  239. addedOn: 'Hinzugefügt',
  240. sdCard: 'SD-Karte',
  241. inserted: 'Eingelegt',
  242. notInserted: 'Nicht eingelegt',
  243. totalPrintHours: 'Druckstunden',
  244. activeNozzle: 'Aktiv: {{nozzle}} Düse',
  245. nozzleRack: 'Düsenhalter',
  246. nozzleDocked: 'Angedockt',
  247. nozzleMounted: 'Montiert',
  248. nozzleActive: 'Aktiv',
  249. nozzleIdle: 'Inaktiv',
  250. nozzleDiameter: 'Durchmesser',
  251. nozzleType: 'Typ',
  252. nozzleStatus: 'Status',
  253. nozzleFilament: 'Filament',
  254. nozzleWear: 'Verschleiß',
  255. nozzleMaxTemp: 'Max Temp',
  256. nozzleSerial: 'Seriennr.',
  257. nozzleHardenedSteel: 'Gehärteter Stahl',
  258. nozzleStainlessSteel: 'Edelstahl',
  259. nozzleTungstenCarbide: 'Wolframkarbid',
  260. nozzleFlow: 'Durchfluss',
  261. nozzleHighFlow: 'High Flow',
  262. nozzleStandardFlow: 'Standard',
  263. // Firmware
  264. firmwareUpdate: 'Firmware-Update',
  265. firmwareInstructions: 'Gehen Sie auf dem Touchscreen des Druckers zu',
  266. firmwareNav: 'Navigieren Sie zu',
  267. settings: 'Einstellungen',
  268. firmware: 'Firmware',
  269. // Discovery
  270. discoverPrinters: 'Drucker entdecken',
  271. searching: 'Suche...',
  272. manualEntry: 'Manuelle Eingabe',
  273. addFromCloud: 'Aus Cloud hinzufügen',
  274. // Toast messages
  275. toast: {
  276. printerDeleted: 'Drucker gelöscht',
  277. missingSpoolAssignment: 'Druck gestartet auf {{printer}}. Fehlende Spulenzuordnung für: {{slots}}',
  278. printerAdded: 'Drucker hinzugefügt',
  279. printerUpdated: 'Drucker aktualisiert',
  280. failedToDelete: 'Drucker konnte nicht gelöscht werden',
  281. failedToAdd: 'Drucker konnte nicht hinzugefügt werden',
  282. failedToUpdate: 'Drucker konnte nicht aktualisiert werden',
  283. commandSent: 'Befehl gesendet',
  284. failedToSendCommand: 'Befehl konnte nicht gesendet werden',
  285. turnedOn: '{{name}} eingeschaltet',
  286. failedToPowerOn: '{{name}} konnte nicht eingeschaltet werden',
  287. scriptTriggered: 'Skript ausgelöst',
  288. printStopped: 'Druck gestoppt',
  289. printPaused: 'Druck pausiert',
  290. printResumed: 'Druck fortgesetzt',
  291. referenceDeleted: 'Referenz gelöscht',
  292. detectionAreaSaved: 'Erkennungsbereich gespeichert',
  293. failedToRunScript: 'Skript konnte nicht ausgeführt werden',
  294. failedToStopPrint: 'Druck konnte nicht gestoppt werden',
  295. failedToPausePrint: 'Druck konnte nicht pausiert werden',
  296. failedToResumePrint: 'Druck konnte nicht fortgesetzt werden',
  297. failedToControlChamberLight: 'Kammerbeleuchtung konnte nicht gesteuert werden',
  298. failedToSetSpeed: 'Druckgeschwindigkeit konnte nicht eingestellt werden',
  299. failedToUpdateSetting: 'Einstellung konnte nicht aktualisiert werden',
  300. failedToSkipObjects: 'Objekte konnten nicht übersprungen werden',
  301. failedToRereadRfid: 'RFID konnte nicht erneut gelesen werden',
  302. failedToCheckPlate: 'Platte konnte nicht überprüft werden',
  303. failedToUpdateLabel: 'Bezeichnung konnte nicht aktualisiert werden',
  304. failedToDeleteReference: 'Referenz konnte nicht gelöscht werden',
  305. failedToSaveDetectionArea: 'Erkennungsbereich konnte nicht gespeichert werden',
  306. plateCheckEnabled: 'Plattenprüfung aktiviert',
  307. plateCheckDisabled: 'Plattenprüfung deaktiviert',
  308. calibrationSaved: 'Kalibrierung gespeichert!',
  309. calibrationFailed: 'Kalibrierung fehlgeschlagen',
  310. rfidRereadInitiated: 'RFID-Neueinlesen gestartet',
  311. },
  312. // Connection status
  313. connection: {
  314. connected: 'Verbunden',
  315. offline: 'Offline',
  316. },
  317. // Queue info
  318. queue: {
  319. inQueue: '{{count}} Druck in Warteschlange',
  320. inQueue_plural: '{{count}} Drucke in Warteschlange',
  321. },
  322. // Controls section
  323. controls: 'Steuerung',
  324. // RFID
  325. rfid: {
  326. reread: 'RFID neu lesen',
  327. },
  328. // Permissions
  329. permission: {
  330. noAdd: 'Sie haben keine Berechtigung, Drucker hinzuzufügen',
  331. noEdit: 'Sie haben keine Berechtigung, Drucker zu bearbeiten',
  332. noDelete: 'Sie haben keine Berechtigung, Drucker zu löschen',
  333. noControl: 'Sie haben keine Berechtigung, Drucker zu steuern',
  334. noFiles: 'Sie haben keine Berechtigung, auf Druckerdateien zuzugreifen',
  335. noAmsRfid: 'Sie haben keine Berechtigung, AMS-RFID erneut zu lesen',
  336. noSmartPlugControl: 'Sie haben keine Berechtigung, Smart Plugs zu steuern',
  337. noCamera: 'Sie haben keine Berechtigung, Kameras anzuzeigen',
  338. },
  339. // Add/Edit modal
  340. modal: {
  341. addTitle: 'Drucker hinzufügen',
  342. editTitle: 'Drucker bearbeiten',
  343. myPrinter: 'Mein Drucker',
  344. selectModel: 'Modell auswählen...',
  345. locationGroup: 'Standort / Gruppe (optional)',
  346. locationPlaceholder: 'z.B. Werkstatt, Büro, Keller',
  347. autoArchiveLabel: 'Abgeschlossene Drucke automatisch archivieren',
  348. fromPrinterSettings: 'Aus Druckereinstellungen',
  349. modelOptional: 'Modell (optional)',
  350. saveChanges: 'Änderungen speichern',
  351. },
  352. // Skip objects
  353. skipObjects: {
  354. tooltip: 'Objekte überspringen',
  355. onlyWhilePrinting: 'Objekte überspringen (nur während des Drucks)',
  356. requiresMultiple: 'Objekte überspringen (erfordert 2+ Objekte)',
  357. title: 'Objekte überspringen',
  358. matchIdsInfo: 'IDs mit Drucker-Display abgleichen',
  359. printerShowsIds: 'Der Druckerbildschirm zeigt Objekt-IDs auf der Bauplatte',
  360. skipSelected: 'Ausgewählte überspringen',
  361. skipping: 'Überspringe...',
  362. noObjectsSelected: 'Keine Objekte ausgewählt',
  363. selectObjectsToSkip: 'Wählen Sie Objekte aus, die Sie vom aktuellen Druck überspringen möchten',
  364. skipped: 'übersprungen',
  365. objectsSkipped: 'Objekte übersprungen',
  366. activeCount: '{{count}} aktiv',
  367. waitForLayer: 'Warten Sie auf Schicht 2+ zum Überspringen von Objekten (aktuell Schicht {{layer}})',
  368. skip: 'Überspringen',
  369. confirmTitle: 'Objekt überspringen?',
  370. confirmMessage: 'Möchten Sie "{{name}}" wirklich überspringen? Dies kann nicht rückgängig gemacht werden.',
  371. },
  372. // Confirm modals
  373. confirm: {
  374. deleteTitle: 'Drucker löschen',
  375. deleteMessage: 'Möchten Sie "{{name}}" wirklich löschen? Alle Verbindungseinstellungen werden entfernt.',
  376. deleteArchivesNote: 'Der gesamte Druckverlauf für diesen Drucker wird dauerhaft gelöscht.',
  377. keepArchivesNote: 'Der Druckverlauf wird beibehalten, aber nicht mehr mit diesem Drucker verknüpft.',
  378. stopTitle: 'Druck stoppen',
  379. stopMessage: 'Möchten Sie den aktuellen Druck auf "{{name}}" wirklich stoppen? Der Druckauftrag wird abgebrochen.',
  380. stopButton: 'Druck stoppen',
  381. pauseTitle: 'Druck pausieren',
  382. pauseMessage: 'Möchten Sie den aktuellen Druck auf "{{name}}" wirklich pausieren?',
  383. pauseButton: 'Druck pausieren',
  384. resumeTitle: 'Druck fortsetzen',
  385. resumeMessage: 'Möchten Sie den Druck auf "{{name}}" fortsetzen?',
  386. resumeButton: 'Druck fortsetzen',
  387. powerOnTitle: 'Drucker einschalten',
  388. powerOnMessage: 'Möchten Sie die Stromversorgung für "{{name}}" wirklich EINSCHALTEN?',
  389. powerOnButton: 'Einschalten',
  390. powerOffTitle: 'Drucker ausschalten',
  391. powerOffMessage: 'Möchten Sie die Stromversorgung für "{{name}}" wirklich AUSSCHALTEN?',
  392. powerOffWarning: 'WARNUNG: "{{name}}" druckt gerade! Möchten Sie die Stromversorgung wirklich AUSSCHALTEN? Dies unterbricht den Druck und kann den Drucker beschädigen.',
  393. powerOffButton: 'Ausschalten',
  394. },
  395. // Bulk actions
  396. bulk: {
  397. select: 'Auswählen',
  398. selectAll: 'Alle auswählen',
  399. selectByLocation: 'Nach Standort auswählen',
  400. selected: '{{count}} ausgewählt',
  401. actions: {
  402. stop: 'Stoppen',
  403. pause: 'Pausieren',
  404. resume: 'Fortsetzen',
  405. clearPlate: 'Druckbett leeren',
  406. clearHMS: 'Benachrichtigungen löschen',
  407. },
  408. confirm: {
  409. stopTitle: '{{count}} Drucke stoppen',
  410. stopMessage: 'Dies wird aktive Drucke auf {{count}} Drucker(n) abbrechen. Diese Aktion kann nicht rückgängig gemacht werden.',
  411. stopButton: 'Alle stoppen',
  412. pauseTitle: '{{count}} Drucke pausieren',
  413. pauseMessage: 'Dies wird aktive Drucke auf {{count}} Drucker(n) pausieren.',
  414. pauseButton: 'Alle pausieren',
  415. clearPlateTitle: '{{count}} Druckbetten leeren',
  416. clearPlateMessage: 'Dies wird das Druckbett auf {{count}} Drucker(n) leeren und kann wartende Aufträge starten.',
  417. clearPlateButton: 'Alle leeren',
  418. },
  419. success: '{{action}} auf {{count}} Drucker(n) abgeschlossen',
  420. partial: '{{succeeded}} erfolgreich, {{failed}} fehlgeschlagen',
  421. noneApplicable: 'Keine ausgewählten Drucker sind im richtigen Zustand für diese Aktion',
  422. selectByState: 'Nach Status auswählen',
  423. },
  424. // Discovery
  425. discovery: {
  426. title: 'Drucker entdecken',
  427. searching: 'Suche...',
  428. scanning: 'Scanne...',
  429. scanProgress: 'Scanne... {{scanned}}/{{total}}',
  430. foundPrinters: '{{count}} Drucker gefunden',
  431. noPrintersFound: 'Keine Drucker gefunden',
  432. noPrintersFoundSubnet: 'Keine Drucker im angegebenen Subnetz gefunden.',
  433. noPrintersFoundNetwork: 'Keine Drucker im Netzwerk gefunden.',
  434. allConfigured: 'Alle erkannten Drucker sind bereits konfiguriert.',
  435. alreadyAdded: 'Bereits hinzugefügt',
  436. select: 'Auswählen',
  437. manualEntry: 'Manuelle Eingabe',
  438. addFromCloud: 'Aus Cloud hinzufügen',
  439. subnetToScan: 'Zu scannendes Subnetz',
  440. dockerNote: 'Docker erkannt. Geben Sie das Subnetz Ihres Druckers in CIDR-Notation ein. Erfordert network_mode: host in docker-compose.yml.',
  441. scanSubnet: 'Subnetz nach Druckern scannen',
  442. discoverNetwork: 'Drucker im Netzwerk suchen',
  443. scanningSubnet: 'Subnetz wird nach Bambu-Druckern gescannt...',
  444. scanningNetwork: 'Netzwerk wird gescannt...',
  445. serialRequired: 'Seriennummer erforderlich',
  446. unknown: 'Unbekannt',
  447. failedToStart: 'Erkennung konnte nicht gestartet werden',
  448. },
  449. // AMS Drying
  450. drying: {
  451. start: 'Trocknung starten',
  452. stop: 'Trocknung stoppen',
  453. temperature: 'Temperatur',
  454. duration: 'Dauer',
  455. hours: 'Stunden',
  456. timeRemaining: '{{time}} verbleibend',
  457. active: 'Trocknung',
  458. notSupported: 'Trocknung nicht unterstützt',
  459. powerRequired: 'AMS-Netzteil anschließen, um Trocknung zu aktivieren',
  460. startingDrying: 'Trocknung wird gestartet...',
  461. stoppingDrying: 'Trocknung wird gestoppt...',
  462. rotateTray: 'Spule während der Trocknung drehen',
  463. },
  464. // Filaments section
  465. filaments: 'Filamente',
  466. // Camera
  467. openCameraOverlay: 'Kamera-Overlay öffnen',
  468. openCameraWindow: 'Kamera in neuem Fenster öffnen',
  469. // Firmware
  470. firmwareUpdateAvailable: 'Firmware-Update verfügbar: {{current}} → {{latest}}',
  471. firmwareUpToDate: 'Firmware {{version}} — Aktuell',
  472. firmwareUpdateButton: 'Update',
  473. // Plate detection
  474. plateDetection: {
  475. noPermission: 'Sie haben keine Berechtigung, Drucker zu aktualisieren',
  476. enabledClick: 'Plattenprüfung aktiviert - Klicken zum Deaktivieren',
  477. disabledClick: 'Plattenprüfung deaktiviert - Klicken zum Aktivieren',
  478. manageCalibration: 'Platten-Erkennungskalibrierung verwalten',
  479. calibrationRequired: 'Kalibrierung erforderlich',
  480. calibrationInstructions: 'Bitte stellen Sie sicher, dass die Druckplatte <strong>vollständig leer</strong> ist, und klicken Sie dann auf Kalibrieren.',
  481. calibrationDescription: 'Die Kalibrierung erfasst ein Referenzbild der leeren Platte. Zukünftige Prüfungen vergleichen mit dieser Referenz, um Objekte zu erkennen.',
  482. calibrationTip: '<strong>Tipp:</strong> Sie können bis zu 5 Kalibrierungen für verschiedene Platten speichern. Das System verwendet automatisch die beste Übereinstimmung bei der Prüfung.',
  483. plateEmpty: 'Platte erscheint leer',
  484. objectsDetected: 'Objekte auf Platte erkannt',
  485. confidence: 'Konfidenz',
  486. difference: 'Differenz',
  487. analysisPreview: 'Analysevorschau:',
  488. analysisLegend: 'Grüner Rahmen = Erkennungsbereich, Rote Überlagerung = Unterschiede zur Kalibrierung',
  489. savedReferences: 'Gespeicherte Referenzen ({{count}}/{{max}})',
  490. deleteReference: 'Referenz löschen',
  491. labelPlaceholder: 'Bezeichnung...',
  492. clickToEdit: '{{label}} - Zum Bearbeiten klicken',
  493. clickToAddLabel: 'Zum Hinzufügen einer Bezeichnung klicken',
  494. },
  495. // Speed
  496. speed: {
  497. title: 'Druckgeschwindigkeit',
  498. silent: 'Leise (50%)',
  499. standard: 'Standard (100%)',
  500. sport: 'Sport (124%)',
  501. ludicrous: 'Ludicrous (166%)',
  502. },
  503. airduct: {
  504. title: 'Luftkanal-Modus',
  505. cooling: 'Kühlen',
  506. heating: 'Heizen',
  507. },
  508. noSdCard: 'Keine SD',
  509. door: {
  510. open: 'Offen',
  511. closed: 'Zu',
  512. },
  513. // Fans
  514. fans: {
  515. partCooling: 'Bauteilkühlung',
  516. auxiliary: 'Hilfsventilator',
  517. chamber: 'Kammerventilator',
  518. },
  519. // HMS errors
  520. clickToViewHmsErrors: 'Klicken, um HMS-Fehler anzuzeigen',
  521. estimatedCompletion: 'Geschätzte Fertigstellungszeit',
  522. plateNumber: 'Platte {{number}}',
  523. slotOptions: 'Slot-Optionen',
  524. // AMS hover popup
  525. amsPopup: {
  526. friendlyName: 'AMS-Name',
  527. friendlyNamePlaceholder: 'z. B. AMS-Anzeigename',
  528. serialNumber: 'Seriennummer',
  529. firmwareVersion: 'Firmware',
  530. save: 'Speichern',
  531. clear: 'Löschen',
  532. noEditPermission: 'Sie haben keine Berechtigung, AMS-Einheiten umzubenennen',
  533. },
  534. // Firmware modal
  535. firmwareModal: {
  536. title: 'Firmware-Update',
  537. titleUpToDate: 'Firmware-Info',
  538. currentVersion: 'Aktuell:',
  539. latestVersion: 'Neueste:',
  540. releaseNotes: 'Versionshinweise',
  541. checkingPrereqs: 'Prüfe Voraussetzungen...',
  542. sdCardReady: 'SD-Karte bereit. Klicken Sie unten, um die Firmware hochzuladen.',
  543. uploadedSuccess: 'Firmware auf SD-Karte hochgeladen!',
  544. applyInstructions: 'So wenden Sie das Update auf Ihrem Drucker an:',
  545. step1: 'Gehen Sie auf dem Touchscreen des Druckers zu <strong>Einstellungen</strong>',
  546. step2: 'Navigieren Sie zu <strong>Firmware</strong>',
  547. step3: 'Wählen Sie <strong>Update von SD-Karte</strong>',
  548. step4: 'Das Update dauert 10-20 Minuten',
  549. done: 'Fertig',
  550. starting: 'Starte...',
  551. uploadFirmware: 'Firmware hochladen',
  552. uploadFailed: 'Upload fehlgeschlagen: {{error}}',
  553. uploadedToast: 'Firmware hochgeladen! Starten Sie das Update vom Druckerbildschirm.',
  554. },
  555. accessCodePlaceholder: 'Leer lassen, um den aktuellen zu behalten',
  556. // ROI editor
  557. roi: {
  558. title: 'Erkennungsbereich (ROI)',
  559. xStart: 'X-Start',
  560. yStart: 'Y-Start',
  561. width: 'Breite',
  562. height: 'Höhe',
  563. instruction: 'Passen Sie den Erkennungsbereich an, um sich auf die Druckplatte zu konzentrieren. Der grüne Rahmen in der Vorschau zeigt den aktuellen Bereich.',
  564. },
  565. developerModeWarning: 'Der Entwickler-LAN-Modus ist nicht aktiviert auf: {{names}}. Einige Funktionen funktionieren möglicherweise nicht.',
  566. howToEnable: 'Aktivieren',
  567. incompatibleFile: 'Diese Datei wurde für {{slicedFor}} geslicet, aber dieser Drucker ist ein {{printerModel}}',
  568. dropNotPrintable: 'Nur .gcode- und .gcode.3mf-Dateien können gedruckt werden',
  569. dropToPrint: 'Zum Drucken ablegen',
  570. cannotPrint: 'Drucker beschäftigt',
  571. },
  572. // Archives page
  573. archives: {
  574. title: 'Druckarchiv',
  575. searchPlaceholder: 'Archiv durchsuchen...',
  576. filterByPrinter: 'Nach Drucker filtern',
  577. filterByStatus: 'Nach Status filtern',
  578. sortBy: 'Sortieren nach',
  579. sortNewest: 'Neueste zuerst',
  580. sortOldest: 'Älteste zuerst',
  581. sortName: 'Name',
  582. sortDuration: 'Dauer',
  583. sortLargest: 'Größte zuerst',
  584. sortSmallest: 'Kleinste zuerst',
  585. sortSize: 'Größe',
  586. noArchives: 'Keine Archive gefunden',
  587. noArchivesSearch: 'Keine Archive entsprechen Ihrer Suche',
  588. originalPrintNotVisible: 'Ursprünglicher Druck nicht sichtbar - versuchen Sie, die Filter zu löschen',
  589. noArchivesYet: 'Noch keine Archive',
  590. prints: 'Drucke',
  591. pagination: {
  592. showing: 'Zeige',
  593. to: 'bis',
  594. of: 'von',
  595. show: 'Zeige',
  596. page: 'Seite',
  597. all: 'Alle',
  598. },
  599. loadingArchives: 'Lade Archive...',
  600. releaseToUpload: 'Loslassen zum Hochladen',
  601. showAll: 'Alle anzeigen',
  602. showFavoritesOnly: 'Nur Favoriten anzeigen',
  603. gridView: 'Rasteransicht',
  604. listView: 'Listenansicht',
  605. calendarView: 'Kalenderansicht',
  606. logView: 'Druckprotokoll',
  607. manageTags: 'Tags verwalten',
  608. showFailedPrints: 'Fehlgeschlagene Drucke anzeigen',
  609. hideFailedPrints: 'Fehlgeschlagene Drucke ausblenden',
  610. hideDuplicates: 'Duplikate ausblenden',
  611. viewOriginalPrint: 'Klicken, um den ursprünglichen Druck anzuzeigen (#{{id}})',
  612. printTime: 'Druckzeit',
  613. filamentUsed: 'Verbrauchtes Filament',
  614. cost: 'Kosten',
  615. reprint: 'Drucken',
  616. preview: 'Vorschau',
  617. deleteArchive: 'Archiv löschen',
  618. deleteConfirm: 'Möchten Sie dieses Archiv wirklich löschen?',
  619. favorite: 'Favorit',
  620. unfavorite: 'Aus Favoriten entfernen',
  621. viewDetails: 'Details anzeigen',
  622. status: {
  623. completed: 'Abgeschlossen',
  624. failed: 'Fehlgeschlagen',
  625. stopped: 'Gestoppt',
  626. },
  627. toast: {
  628. source3mfAttached: 'Quell-3MF angehängt: {{filename}}',
  629. failedUploadSource3mf: 'Fehler beim Hochladen der Quell-3MF',
  630. source3mfRemoved: 'Quell-3MF entfernt',
  631. failedRemoveSource3mf: 'Fehler beim Entfernen der Quell-3MF',
  632. f3dAttached: 'F3D angehängt: {{filename}}',
  633. failedUploadF3d: 'Fehler beim Hochladen der F3D',
  634. f3dRemoved: 'F3D entfernt',
  635. failedRemoveF3d: 'Fehler beim Entfernen der F3D',
  636. timelapseAttached: 'Zeitraffer angehängt: {{filename}}',
  637. timelapseAlreadyAttached: 'Zeitraffer bereits angehängt',
  638. noMatchingTimelapse: 'Kein passender Zeitraffer gefunden',
  639. failedScanTimelapse: 'Fehler beim Suchen nach Zeitraffer',
  640. failedAttachTimelapse: 'Fehler beim Anhängen des Zeitraffers',
  641. timelapseRemoved: 'Zeitraffer entfernt',
  642. failedRemoveTimelapse: 'Fehler beim Entfernen des Zeitraffers',
  643. timelapseUploaded: 'Zeitraffer hochgeladen: {{filename}}',
  644. failedUploadTimelapse: 'Fehler beim Hochladen des Zeitraffers',
  645. archiveDeleted: 'Archiv gelöscht',
  646. failedDeleteArchive: 'Fehler beim Löschen des Archivs',
  647. addedToFavorites: 'Zu Favoriten hinzugefügt',
  648. removedFromFavorites: 'Aus Favoriten entfernt',
  649. projectUpdated: 'Projekt aktualisiert',
  650. failedUpdateProject: 'Fehler beim Aktualisieren des Projekts',
  651. linkCopied: 'Link in die Zwischenablage kopiert',
  652. failedCopyLink: 'Fehler beim Kopieren des Links',
  653. photoDeleted: 'Foto gelöscht',
  654. failedDeletePhoto: 'Fehler beim Löschen des Fotos',
  655. failedDeleteArchives: 'Fehler beim Löschen der Archive',
  656. failedUpdateFavorites: 'Fehler beim Aktualisieren der Favoriten',
  657. exportDownloaded: 'Export heruntergeladen',
  658. exportFailed: 'Export fehlgeschlagen',
  659. },
  660. menu: {
  661. print: 'Drucken',
  662. schedule: 'Planen',
  663. openInBambuStudio: 'Im Slicer öffnen',
  664. slice: 'Slicen',
  665. externalLink: 'Externer Link',
  666. viewOnMakerWorld: 'Auf MakerWorld ansehen',
  667. preview3d: '3D-Vorschau',
  668. viewTimelapse: 'Zeitraffer ansehen',
  669. scanForTimelapse: 'Nach Zeitraffer suchen',
  670. uploadTimelapse: 'Zeitraffer hochladen',
  671. removeTimelapse: 'Zeitraffer entfernen',
  672. downloadSource3mf: 'Quell-3MF herunterladen',
  673. uploadSource3mf: 'Quell-3MF hochladen',
  674. replaceSource3mf: 'Quell-3MF ersetzen',
  675. removeSource3mf: 'Quell-3MF entfernen',
  676. uploadF3d: 'F3D hochladen',
  677. replaceF3d: 'F3D ersetzen',
  678. downloadF3d: 'F3D herunterladen',
  679. removeF3d: 'F3D entfernen',
  680. download: 'Herunterladen',
  681. copyDownloadLink: 'Download-Link kopieren',
  682. qrCode: 'QR-Code',
  683. viewPhotos: 'Fotos ansehen',
  684. viewPhotosCount: 'Fotos ansehen ({{count}})',
  685. projectPage: 'Projektseite',
  686. addToFavorites: 'Zu Favoriten hinzufügen',
  687. removeFromFavorites: 'Aus Favoriten entfernen',
  688. edit: 'Bearbeiten',
  689. goToProject: 'Zum Projekt: {{name}}',
  690. addToProject: 'Zu Projekt hinzufügen',
  691. removeFromProject: 'Aus Projekt entfernen',
  692. loading: 'Laden...',
  693. noProjectsAvailable: 'Keine Projekte verfügbar',
  694. select: 'Auswählen',
  695. deselect: 'Abwählen',
  696. delete: 'Löschen',
  697. },
  698. permission: {
  699. noReprint: 'Sie haben keine Berechtigung, dieses Archiv erneut zu drucken',
  700. noAddToQueue: 'Sie haben keine Berechtigung, zur Warteschlange hinzuzufügen',
  701. noUpdateArchives: 'Sie haben keine Berechtigung, Archive zu aktualisieren',
  702. noUploadFiles: 'Sie haben keine Berechtigung, Dateien hochzuladen',
  703. noDownload: 'Sie haben keine Berechtigung, Archive herunterzuladen',
  704. noCopyLink: 'Sie haben keine Berechtigung, Download-Links zu kopieren',
  705. noDelete: 'Sie haben keine Berechtigung, dieses Archiv zu löschen',
  706. noCreate: 'Sie haben keine Berechtigung, Archive zu erstellen',
  707. },
  708. card: {
  709. previousPlate: 'Vorherige Platte',
  710. nextPlate: 'Nächste Platte',
  711. plateNumber: 'Platte {{index}}',
  712. moreOptions: 'Rechtsklick für mehr Optionen',
  713. addToFavorites: 'Zu Favoriten hinzufügen',
  714. removeFromFavorites: 'Aus Favoriten entfernen',
  715. cancelled: 'abgebrochen',
  716. failed: 'fehlgeschlagen',
  717. duplicate: 'Duplikat',
  718. duplicateTitle: 'Dieses Modell wurde bereits zuvor gedruckt',
  719. openSource3mf: 'Quell-3MF in Bambu Studio öffnen (Rechtsklick für mehr Optionen)',
  720. downloadF3d: 'Fusion 360 Designdatei herunterladen',
  721. viewTimelapse: 'Zeitraffer ansehen',
  722. viewPhoto: '1 Foto ansehen',
  723. viewPhotos: '{{count}} Fotos ansehen',
  724. openFolder: 'Ordner öffnen: {{name}}',
  725. slicedFile: 'Geslicte Datei - druckbereit',
  726. sourceFile: 'Nur Quelldatei - keine AMS-Zuordnung verfügbar',
  727. gcode: 'GCODE',
  728. source: 'QUELLE',
  729. project: 'Projekt: {{name}}',
  730. estimated: 'Geschätzt: {{time}}',
  731. actual: 'Tatsächlich: {{time}}',
  732. accuracy: 'Genauigkeit: {{percent}}%',
  733. filament: '{{weight}}g',
  734. layer: '{{count}} Schicht',
  735. layers: '{{count}} Schichten',
  736. object: '{{count}} Objekt',
  737. objects: '{{count}} Objekte',
  738. slicedFor: 'Geslict für {{model}}',
  739. uploadedBy: 'Hochgeladen von',
  740. noPermissionReprint: 'Sie haben keine Berechtigung, erneut zu drucken',
  741. noFileForReprint: 'Keine 3MF-Datei verfügbar — die Datei konnte beim Aufzeichnen des Drucks nicht vom Drucker heruntergeladen werden',
  742. noPermissionEdit: 'Sie haben keine Berechtigung, Archive zu bearbeiten',
  743. noPermissionDelete: 'Sie haben keine Berechtigung, Archive zu löschen',
  744. reprint: 'Drucken',
  745. schedulePrint: 'Druck planen',
  746. schedule: 'Planen',
  747. openInBambuStudio: 'Im Slicer öffnen',
  748. openInBambuStudioToSlice: 'Im Slicer öffnen zum Slicen',
  749. slice: 'Slicen',
  750. externalLink: 'Externer Link',
  751. makerWorld: 'MakerWorld: {{designer}}',
  752. viewProject: 'Projekt ansehen',
  753. noExternalLink: 'Kein externer Link',
  754. preview3d: '3D-Vorschau',
  755. download: 'Herunterladen',
  756. edit: 'Bearbeiten',
  757. delete: 'Löschen',
  758. },
  759. modal: {
  760. deleteArchive: 'Archiv löschen',
  761. deleteConfirm: 'Möchten Sie "{{name}}" wirklich löschen? Diese Aktion kann nicht rückgängig gemacht werden.',
  762. deleteButton: 'Löschen',
  763. removeSource3mf: 'Quell-3MF entfernen',
  764. removeSource3mfConfirm: 'Möchten Sie die Quell-3MF-Datei wirklich von "{{name}}" entfernen? Die ursprüngliche Slicer-Projektdatei wird gelöscht.',
  765. removeButton: 'Entfernen',
  766. removeF3d: 'F3D entfernen',
  767. removeF3dConfirm: 'Möchten Sie die Fusion 360 Designdatei wirklich von "{{name}}" entfernen?',
  768. removeTimelapse: 'Zeitraffer entfernen',
  769. removeTimelapseConfirm: 'Möchten Sie das Zeitraffervideo wirklich von "{{name}}" entfernen?',
  770. timelapse: '{{name}} - Zeitraffer',
  771. selectTimelapse: 'Zeitraffer auswählen',
  772. selectTimelapseDesc: 'Keine automatische Übereinstimmung gefunden. Wählen Sie den Zeitraffer für diesen Druck:',
  773. deleteArchives: 'Archive löschen',
  774. deleteArchivesConfirm: 'Möchten Sie wirklich {{count}} Archiv(e) löschen? Diese Aktion kann nicht rückgängig gemacht werden.',
  775. deleteCount: '{{count}} löschen',
  776. },
  777. page: {
  778. title: 'Archive',
  779. printsCount: '{{filtered}} von {{total}} Drucken',
  780. dropFilesHere: '.3mf-Dateien hier ablegen',
  781. releaseToUpload: 'Loslassen zum Hochladen',
  782. only3mfSupported: 'Nur .3mf-Dateien werden unterstützt',
  783. close: 'Schließen',
  784. selected: '{{count}} ausgewählt',
  785. selectAll: 'Alle auswählen',
  786. tags: 'Tags',
  787. project: 'Projekt',
  788. favorite: 'Favorit',
  789. delete: 'Löschen',
  790. toggledFavorites: 'Favoriten für {{count}} Archiv(e) umgeschaltet',
  791. failedUpdateFavorites: 'Fehler beim Aktualisieren der Favoriten',
  792. archivesDeleted: '{{count}} Archiv(e) gelöscht',
  793. failedDeleteArchives: 'Fehler beim Löschen der Archive',
  794. photoDeleted: 'Foto gelöscht',
  795. failedDeletePhoto: 'Fehler beim Löschen des Fotos',
  796. },
  797. list: {
  798. name: 'Name',
  799. printer: 'Drucker',
  800. date: 'Datum',
  801. size: 'Größe',
  802. actions: 'Aktionen',
  803. hasTimelapse: 'Hat Zeitraffer',
  804. },
  805. log: {
  806. date: 'Datum',
  807. printName: 'Druckname',
  808. printer: 'Drucker',
  809. user: 'Benutzer',
  810. status: 'Status',
  811. duration: 'Dauer',
  812. filament: 'Filament',
  813. allPrinters: 'Alle Drucker',
  814. allUsers: 'Alle Benutzer',
  815. allStatuses: 'Alle Status',
  816. cancelled: 'Abgebrochen',
  817. skipped: 'Übersprungen',
  818. dateFrom: 'Von',
  819. dateTo: 'Bis',
  820. noEntries: 'Keine Druckprotokolleinträge gefunden',
  821. showing: '{{count}} von {{total}} Einträgen',
  822. rowsPerPage: 'Zeilen',
  823. page: 'Seite',
  824. prev: 'Zurück',
  825. next: 'Weiter',
  826. clearLog: 'Protokoll löschen',
  827. clearLogTitle: 'Druckprotokoll löschen',
  828. clearLogConfirm: 'Alle Druckprotokolleinträge werden dauerhaft gelöscht. Archive und Warteschlangeneinträge sind nicht betroffen. Diese Aktion kann nicht rückgängig gemacht werden. Sind Sie sicher?',
  829. clearLogButton: 'Alle löschen',
  830. cleared: '{{count}} Protokolleinträge gelöscht',
  831. clearFailed: 'Druckprotokoll konnte nicht gelöscht werden',
  832. },
  833. },
  834. // Queue page
  835. queue: {
  836. title: 'Druckwarteschlange',
  837. subtitle: 'Planen und verwalten Sie Ihre Druckaufträge',
  838. addToQueue: 'Zur Warteschlange hinzufügen',
  839. // Print modal
  840. print: 'Drucken',
  841. reprint: 'Erneut drucken',
  842. schedulePrint: 'Druck planen',
  843. editQueueItem: 'Warteschlangeneintrag bearbeiten',
  844. printToPrinters: 'Auf {{count}} Druckern drucken',
  845. queueToPrinters: 'Zu {{count}} Druckern hinzufügen',
  846. queueSelectedPlates: '{{count}} Platten in die Warteschlange',
  847. selectAllPlates: 'Alle {{count}} Platten auswählen',
  848. deselectAll: 'Alle abwählen',
  849. printQueued: 'Druck in Warteschlange',
  850. itemsQueued: '{{count}} Einträge in Warteschlange',
  851. sending: 'Wird gesendet...',
  852. sendingProgress: 'Sende {{current}}/{{total}}...',
  853. adding: 'Wird hinzugefügt...',
  854. addingProgress: 'Füge hinzu {{current}}/{{total}}...',
  855. savingProgress: 'Speichere {{current}}/{{total}}...',
  856. clearQueue: 'Warteschlange leeren',
  857. clearHistory: 'Verlauf löschen',
  858. emptyQueue: 'Warteschlange ist leer',
  859. position: 'Position',
  860. scheduledTime: 'Geplante Zeit',
  861. moveUp: 'Nach oben',
  862. moveDown: 'Nach unten',
  863. startNow: 'Jetzt starten',
  864. printingInProgress: 'Druck läuft...',
  865. viewArchive: 'Archiv anzeigen',
  866. viewInFileManager: 'Im Dateimanager anzeigen',
  867. itemCount: '{{count}} Element',
  868. itemCount_plural: '{{count}} Elemente',
  869. dragToReorder: 'Ziehen zum Neuordnen (nur Sofort)',
  870. reorderHint: 'Position betrifft nur Sofort-Elemente. Geplante Elemente werden zur festgelegten Zeit ausgeführt.',
  871. sjf: {
  872. label: 'SJF',
  873. tooltip: 'Kürzester Auftrag zuerst — Scheduler bevorzugt kürzere Drucke',
  874. },
  875. addedBy: 'Hinzugefügt von {{name}}',
  876. nextInQueue: 'Nächster in der Warteschlange',
  877. clearPlate: 'Druckplatte freigeben & Nächsten starten',
  878. clearPlateSuccess: 'Druckplatte freigegeben — bereit für nächsten Druck',
  879. plateReady: 'Druckplatte freigegeben — bereit für nächsten Druck',
  880. plateNumber: 'Platte {{index}}',
  881. // Batch / quantity
  882. quantity: 'Menge',
  883. quantityHint: 'Erstellt {{count}} Warteschlangeneinträge',
  884. activeBatches: 'Aktive Stapel',
  885. batchProgress: '{{completed}} von {{total}} abgeschlossen',
  886. cancelBatch: 'Verbleibende abbrechen',
  887. batchCancelled: 'Verbleibende Stapeleinträge abgebrochen',
  888. cancelBatchConfirmTitle: 'Stapel abbrechen',
  889. cancelBatchConfirmMessage: 'Alle verbleibenden ausstehenden Einträge in diesem Stapel abbrechen?',
  890. batch: 'Stapel',
  891. // Sections
  892. sections: {
  893. currentlyPrinting: 'Aktuell druckend',
  894. queued: 'In Warteschlange',
  895. history: 'Verlauf',
  896. },
  897. // Status
  898. status: {
  899. pending: 'Ausstehend',
  900. waiting: 'Wartend',
  901. printing: 'Druckt',
  902. paused: 'Pausiert',
  903. completed: 'Abgeschlossen',
  904. failed: 'Fehlgeschlagen',
  905. skipped: 'Übersprungen',
  906. cancelled: 'Abgebrochen',
  907. },
  908. // Summary cards
  909. summary: {
  910. printing: 'Druckt',
  911. queued: 'In Warteschlange',
  912. totalTime: 'Gesamte Wartezeit',
  913. totalWeight: 'Gesamtgewicht der Warteschlange',
  914. history: 'Verlauf',
  915. },
  916. // Filters
  917. filter: {
  918. allPrinters: 'Alle Drucker',
  919. unassigned: 'Nicht zugewiesen',
  920. allStatus: 'Alle Status',
  921. allLocations: 'Alle Standorte',
  922. any: 'Beliebig',
  923. },
  924. // Sort
  925. sort: {
  926. byPosition: 'Nach Position sortieren',
  927. byName: 'Nach Name sortieren',
  928. byPrinter: 'Nach Drucker sortieren',
  929. bySchedule: 'Nach Zeitplan sortieren',
  930. byDate: 'Nach Datum sortieren',
  931. ascendingOldest: 'Aufsteigend (älteste zuerst)',
  932. descendingNewest: 'Absteigend (neueste zuerst)',
  933. },
  934. // Badges
  935. badges: {
  936. staged: 'Bereitgestellt',
  937. requiresPrevious: 'Erfordert vorherigen Erfolg',
  938. autoPowerOff: 'Automatisch ausschalten',
  939. gcodeInjection: 'G-code',
  940. },
  941. // Empty state
  942. empty: {
  943. title: 'Keine Drucke geplant',
  944. description: 'Planen Sie einen Druck von der Archivseite über die Option "Planen" im Kontextmenü oder ziehen Sie Dateien hierher.',
  945. },
  946. // Time
  947. time: {
  948. asap: 'Sofort',
  949. overdue: 'Überfällig',
  950. now: 'Jetzt',
  951. lessThanMinute: 'In weniger als einer Minute',
  952. inMinutes: 'In {{count}} Min',
  953. inHours: 'In {{count}} Stunden',
  954. },
  955. // Actions
  956. actions: {
  957. stopPrint: 'Druck stoppen',
  958. startPrint: 'Druck starten',
  959. requeue: 'Erneut einreihen',
  960. },
  961. // Bulk edit
  962. bulkEdit: {
  963. title: '{{count}} Element bearbeiten',
  964. title_plural: '{{count}} Elemente bearbeiten',
  965. description: 'Nur geänderte Einstellungen werden auf ausgewählte Elemente angewendet.',
  966. printer: 'Drucker',
  967. noChange: '— Keine Änderung —',
  968. queueOptions: 'Warteschlangenoptionen',
  969. staged: 'Bereitgestellt (manueller Start)',
  970. autoPowerOff: 'Nach Druck automatisch ausschalten',
  971. requirePrevious: 'Vorherigen Erfolg erfordern',
  972. printOptions: 'Druckoptionen',
  973. bedLevelling: 'Bett-Nivellierung',
  974. flowCalibration: 'Fluss-Kalibrierung',
  975. vibrationCalibration: 'Vibrations-Kalibrierung',
  976. layerInspection: 'Erste-Schicht-Prüfung',
  977. timelapse: 'Zeitraffer',
  978. useAms: 'AMS verwenden',
  979. applyChanges: 'Änderungen übernehmen',
  980. selectAll: 'Alle auswählen',
  981. deselectAll: 'Auswahl aufheben',
  982. selected: '{{count}} ausgewählt',
  983. editSelected: 'Ausgewählte bearbeiten',
  984. cancelSelected: 'Ausgewählte abbrechen',
  985. },
  986. // Confirmations
  987. confirm: {
  988. cancelTitle: 'Geplanten Druck abbrechen',
  989. cancelMessage: 'Möchten Sie "{{name}}" wirklich abbrechen?',
  990. stopTitle: 'Druck stoppen',
  991. stopMessage: 'Möchten Sie den aktuellen Druck "{{name}}" wirklich stoppen? Der Druckauftrag wird am Drucker abgebrochen.',
  992. removeTitle: 'Aus Verlauf entfernen',
  993. removeMessage: 'Möchten Sie "{{name}}" wirklich aus dem Warteschlangenverlauf entfernen?',
  994. clearHistoryTitle: 'Verlauf löschen',
  995. clearHistoryMessage: 'Möchten Sie alle {{count}} Element(e) aus dem Verlauf entfernen?',
  996. cancelButton: 'Druck abbrechen',
  997. stopButton: 'Druck stoppen',
  998. thisPrint: 'diesen Druck',
  999. thisItem: 'dieses Element',
  1000. },
  1001. // Toast messages
  1002. toast: {
  1003. cancelled: 'Warteschlangenelement abgebrochen',
  1004. cancelFailed: 'Element konnte nicht abgebrochen werden',
  1005. removed: 'Warteschlangenelement entfernt',
  1006. removeFailed: 'Element konnte nicht entfernt werden',
  1007. stopped: 'Druck gestoppt',
  1008. stopFailed: 'Druck konnte nicht gestoppt werden',
  1009. released: 'Druck in Warteschlange freigegeben',
  1010. startFailed: 'Druck konnte nicht gestartet werden',
  1011. reorderFailed: 'Warteschlange konnte nicht neu geordnet werden',
  1012. historyCleared: '{{count}} Verlaufselement(e) gelöscht',
  1013. clearHistoryFailed: 'Verlauf konnte nicht gelöscht werden',
  1014. updateFailed: 'Elemente konnten nicht aktualisiert werden',
  1015. bulkCancelled: '{{count}} Element(e) abgebrochen',
  1016. bulkCancelFailed: 'Elemente konnten nicht abgebrochen werden',
  1017. },
  1018. // Timeline view
  1019. timeline: {
  1020. listView: 'Liste',
  1021. timelineView: 'Zeitstrahl',
  1022. unassigned: 'Nicht zugewiesen',
  1023. noData: 'Keine geplanten Drucke für diesen Tag',
  1024. allDoneBy: 'Alle Drucke voraussichtlich fertig um {{time}}',
  1025. staged: 'Bereitgestellt',
  1026. filterAll: 'Alle anzeigen',
  1027. filterPrinting: 'Druckend',
  1028. filterQueued: 'Warteschlange',
  1029. time: {
  1030. anyMoment: 'jeden Moment',
  1031. minutesLeft: '{{minutes}}m übrig',
  1032. hoursLeft: '{{hours}}h übrig',
  1033. hoursMinutesLeft: '{{hours}}h {{minutes}}m übrig',
  1034. },
  1035. day: {
  1036. previous: 'Vorheriger Tag',
  1037. next: 'Nächster Tag',
  1038. today: 'Heute',
  1039. },
  1040. },
  1041. // Permissions
  1042. permissions: {
  1043. noStopPrint: 'Sie haben keine Berechtigung, Drucke zu stoppen',
  1044. noStartPrint: 'Sie haben keine Berechtigung, Drucke zu starten',
  1045. noEdit: 'Sie haben keine Berechtigung, dieses Warteschlangenelement zu bearbeiten',
  1046. noCancel: 'Sie haben keine Berechtigung, dieses Warteschlangenelement abzubrechen',
  1047. noRequeue: 'Sie haben keine Berechtigung, Elemente erneut einzureihen',
  1048. noRemove: 'Sie haben keine Berechtigung, dieses Warteschlangenelement zu entfernen',
  1049. noClearHistory: 'Sie haben keine Berechtigung, den gesamten Verlauf zu löschen',
  1050. noEditItems: 'Sie haben keine Berechtigung, Warteschlangenelemente zu bearbeiten',
  1051. noCancelItems: 'Sie haben keine Berechtigung, Warteschlangenelemente abzubrechen',
  1052. },
  1053. },
  1054. backgroundDispatch: {
  1055. unknownFile: 'Unbekannte Datei',
  1056. unknownPrinter: 'Unbekannter Drucker',
  1057. startingPrints: 'Starte Drucke',
  1058. progressSummary: '{{complete}}/{{total}} abgeschlossen • Geplant: {{dispatched}} • In Bearbeitung: {{processing}}',
  1059. expandDetails: 'Dispatch-Details ausklappen',
  1060. collapseDetails: 'Dispatch-Details einklappen',
  1061. dismissToast: 'Dispatch-Hinweis schließen',
  1062. cancelDispatchJob: 'Dispatch-Job abbrechen',
  1063. cancel: 'Abbrechen',
  1064. cancelling: 'Wird abgebrochen…',
  1065. status: {
  1066. dispatched: 'Geplant',
  1067. processing: 'In Bearbeitung',
  1068. completed: 'Abgeschlossen',
  1069. failed: 'Fehlgeschlagen',
  1070. cancelled: 'Abgebrochen',
  1071. },
  1072. toast: {
  1073. cancellingUpload: 'Upload wird abgebrochen...',
  1074. cancelled: 'Dispatch abgebrochen',
  1075. cancelFailed: 'Dispatch konnte nicht abgebrochen werden',
  1076. completeWithFailures: 'Background Dispatch abgeschlossen: {{completed}} erfolgreich, {{failed}} fehlgeschlagen',
  1077. completeSuccess: 'Background Dispatch abgeschlossen: {{completed}} erfolgreich',
  1078. printStartedRemaining: '{{completed}} Druck(e) gestartet, {{remaining}} weitere werden gesendet...',
  1079. },
  1080. },
  1081. // Statistics page
  1082. stats: {
  1083. title: 'Dashboard',
  1084. subtitle: 'Widgets zum Neuanordnen ziehen. Auf das Augensymbol klicken zum Ausblenden.',
  1085. overview: 'Übersicht',
  1086. totalPrints: 'Gesamtdrucke',
  1087. successRate: 'Erfolgsrate',
  1088. totalPrintTime: 'Gesamtdruckzeit',
  1089. printTime: 'Druckzeit',
  1090. totalFilament: 'Gesamtverbrauch Filament',
  1091. filamentUsed: 'Filamentverbrauch',
  1092. filamentCost: 'Filamentkosten',
  1093. totalCost: 'Gesamtkosten',
  1094. energyUsed: 'Energieverbrauch',
  1095. energyCost: 'Energiekosten',
  1096. energyWarmingUpTooltip: 'Die Energieerfassung sammelt noch stündliche Snapshots. Zeitraumwerte werden genau, sobald vor dem gewählten Bereich mindestens ein Snapshot vorliegt. Frühe Werte können zu niedrig sein.',
  1097. averagePrintTime: 'Durchschnittliche Druckzeit',
  1098. printsPerDay: 'Drucke pro Tag',
  1099. byPrinter: 'Nach Drucker',
  1100. printsByPrinter: 'Drucke nach Drucker',
  1101. byMaterial: 'Nach Material',
  1102. byMonth: 'Nach Monat',
  1103. last7Days: 'Letzte 7 Tage',
  1104. last30Days: 'Letzte 30 Tage',
  1105. last90Days: 'Letzte 90 Tage',
  1106. allTime: 'Gesamt',
  1107. // Widgets
  1108. quickStats: 'Schnellstatistiken',
  1109. printActivity: 'Druckaktivität',
  1110. filamentTypes: 'Filamenttypen',
  1111. filamentTrends: 'Filamenttrends',
  1112. failureAnalysis: 'Fehleranalyse',
  1113. timeAccuracy: 'Zeitgenauigkeit',
  1114. successful: 'Erfolgreich:',
  1115. failed: 'Fehlgeschlagen:',
  1116. perfectEstimate: '100% = perfekte Schätzung',
  1117. noTimeAccuracyData: 'Noch keine Zeitgenauigkeitsdaten',
  1118. noFilamentData: 'Keine Filamentdaten verfügbar',
  1119. noPrinterData: 'Keine Druckerdaten verfügbar',
  1120. noPrintData: 'Keine Druckdaten verfügbar',
  1121. noPrintDataLast30Days: 'Keine Druckdaten in den letzten 30 Tagen',
  1122. failureReasons: 'Fehlerursachen',
  1123. topFailureReasons: 'Häufigste Fehlerursachen',
  1124. failedPrintsCount: '{{failed}} / {{total}} Drucke fehlgeschlagen',
  1125. lastWeekRate: 'Letzte Woche: {{rate}}%',
  1126. // Actions
  1127. resetLayout: 'Layout zurücksetzen',
  1128. recalculateCosts: 'Kosten neu berechnen',
  1129. recalculateCostsHint: 'Alle Archivkosten mit aktuellen Filamentpreisen neu berechnen',
  1130. exportStats: 'Statistiken exportieren',
  1131. exportAsCsv: 'Als CSV exportieren',
  1132. exportAsExcel: 'Als Excel exportieren',
  1133. hiddenCount: '{{count}} ausgeblendet',
  1134. // Toast
  1135. exportDownloaded: 'Export heruntergeladen',
  1136. exportFailed: 'Export fehlgeschlagen',
  1137. layoutReset: 'Layout zurückgesetzt',
  1138. recalculatedCosts: 'Kosten für {{count}} Archive neu berechnet',
  1139. recalculateFailed: 'Kosten konnten nicht neu berechnet werden',
  1140. // Loading
  1141. loadingStats: 'Statistiken werden geladen...',
  1142. // Permissions
  1143. noPermissionResetLayout: 'Sie haben keine Berechtigung, das Layout zurückzusetzen',
  1144. noPermissionRecalculate: 'Sie haben keine Berechtigung, Kosten neu zu berechnen',
  1145. noPrintDataInRange: 'Keine Druckdaten im ausgewählten Zeitraum',
  1146. periodFilament: 'Filamentverbrauch',
  1147. periodCost: 'Kosten',
  1148. avgPerPrint: 'Durchschnitt pro Druck',
  1149. usageOverTime: 'Verbrauch im Zeitverlauf',
  1150. filamentByWeight: 'Gewicht',
  1151. printDuration: 'Druckdauer',
  1152. printerUtilization: 'Druckerauslastung',
  1153. filamentSuccess: 'Erfolg nach Material',
  1154. printHabits: 'Druckgewohnheiten',
  1155. printTimeOfDay: 'Druck-Tageszeit',
  1156. colorDistribution: 'Farbverteilung',
  1157. noColorData: 'Keine Farbdaten verfügbar',
  1158. records: 'Rekorde',
  1159. longestPrint: 'Längster Druck',
  1160. heaviestPrint: 'Schwerster Druck',
  1161. mostExpensivePrint: 'Teuerster Druck',
  1162. busiestDay: 'Aktivster Tag',
  1163. successStreak: 'Erfolgsserie',
  1164. streakPrint: 'aufeinanderfolgender Druck',
  1165. streakPrints: '{{count}} aufeinanderfolgende Drucke',
  1166. printerStats: 'Druckerstatistiken',
  1167. hours: 'Stunden',
  1168. avgPrints: 'Ø Drucke',
  1169. noArchiveData: 'Keine Druckdaten verfügbar',
  1170. filamentByTime: 'Zeitverlauf',
  1171. avgWeight: 'Ø Gewicht',
  1172. avgTime: 'Ø Zeit',
  1173. filamentByPrints: 'Drucke',
  1174. timeframe: {
  1175. 'today': 'Heute',
  1176. 'this-week': 'Diese Woche',
  1177. 'this-month': 'Dieser Monat',
  1178. 'last-7': 'Letzte 7 Tage',
  1179. 'last-30': 'Letzte 30 Tage',
  1180. 'last-90': 'Letzte 90 Tage',
  1181. 'this-year': 'Dieses Jahr',
  1182. 'all-time': 'Gesamt',
  1183. 'custom': 'Benutzerdefiniert',
  1184. from: 'Von',
  1185. to: 'Bis',
  1186. },
  1187. allUsers: 'Alle Benutzer',
  1188. noUser: 'Kein Benutzer (System)',
  1189. filterByUser: 'Nach Benutzer filtern',
  1190. },
  1191. // Maintenance page
  1192. maintenance: {
  1193. title: 'Wartung',
  1194. overview: 'Übersicht',
  1195. allOk: 'Alle Wartungen aktuell',
  1196. dueCount: '{{count}} Aufgabe fällig',
  1197. dueCount_plural: '{{count}} Aufgaben fällig',
  1198. warningCount: '{{count}} Warnung',
  1199. warningCount_plural: '{{count}} Warnungen',
  1200. totalPrintTime: 'Gesamtdruckzeit',
  1201. nextMaintenance: 'Nächste Wartung',
  1202. nothingDue: 'Nichts fällig',
  1203. tasks: 'Aufgaben',
  1204. lastPerformed: 'Zuletzt durchgeführt',
  1205. interval: 'Intervall',
  1206. hoursRemaining: '{{hours}}h verbleibend',
  1207. hoursOverdue: '{{hours}}h überfällig',
  1208. markDone: 'Als erledigt markieren',
  1209. performMaintenance: 'Wartung durchführen',
  1210. history: 'Verlauf',
  1211. noHistory: 'Kein Wartungsverlauf',
  1212. editPrintHours: 'Druckstunden bearbeiten',
  1213. currentHours: 'Aktuelle Stunden',
  1214. // Tabs
  1215. statusTab: 'Status',
  1216. settingsTab: 'Einstellungen',
  1217. // Status
  1218. overdueCount: '{{count}} überfällig',
  1219. dueSoonCount: '{{count}} bald fällig',
  1220. dueSoon: 'Bald fällig',
  1221. allGood: 'Alles in Ordnung',
  1222. overdueBy: 'Überfällig um {{duration}}',
  1223. dueIn: 'Fällig in {{duration}}',
  1224. timeLeft: '{{duration}} verbleibend',
  1225. // Duration formats
  1226. day: '1 Tag',
  1227. days: '{{count}} Tage',
  1228. week: '1 Woche',
  1229. weeks: '{{count}} Wochen',
  1230. month: '1 Monat',
  1231. months: '{{count}} Monate',
  1232. year: '1 Jahr',
  1233. // Settings
  1234. maintenanceTypes: 'Wartungstypen',
  1235. maintenanceTypesDescription: 'Systemtypen und Ihre benutzerdefinierten Wartungsaufgaben',
  1236. addCustomType: 'Benutzerdefinierten Typ hinzufügen',
  1237. restoreDefaults: 'Standardaufgaben wiederherstellen',
  1238. intervalType: 'Intervalltyp',
  1239. intervalValue: 'Intervall ({{type}})',
  1240. icon: 'Symbol',
  1241. documentationLink: 'Dokumentationslink (optional)',
  1242. assignToPrinters: 'Druckern zuweisen',
  1243. selectAtLeastOnePrinter: 'Wählen Sie mindestens einen Drucker',
  1244. addType: 'Typ hinzufügen',
  1245. custom: 'Benutzerdefiniert',
  1246. printHours: 'Druckstunden',
  1247. calendarDays: 'Kalendertage',
  1248. exampleName: 'z.B. HEPA-Filter ersetzen',
  1249. viewDocumentation: 'Dokumentation anzeigen',
  1250. timeBasedInterval: 'Zeitbasiertes Intervall',
  1251. // Interval overrides
  1252. intervalOverrides: 'Intervall-Überschreibungen',
  1253. intervalOverridesDescription: 'Intervalle für bestimmte Drucker anpassen',
  1254. // Printer assignment
  1255. assignedToPrinters: 'Druckern zugewiesen:',
  1256. noPrintersAssigned: 'Keine Drucker zugewiesen',
  1257. addPrinterShort: 'Hinzufügen:',
  1258. printersAssignedClick: '{{count}} Drucker zugewiesen - klicken zum Verwalten',
  1259. removeFromPrinter: 'Von diesem Drucker entfernen',
  1260. // Types
  1261. types: {
  1262. lubricateCarbonRods: 'Karbonstäbe schmieren',
  1263. lubricateRails: 'Linearschienen schmieren',
  1264. cleanNozzle: 'Düse/Hotend reinigen',
  1265. checkBelts: 'Riemenspannung prüfen',
  1266. cleanBuildPlate: 'Druckbett reinigen',
  1267. checkExtruder: 'Extruderzahnräder prüfen',
  1268. checkCooling: 'Kühlungslüfter prüfen',
  1269. generalInspection: 'Allgemeine Inspektion',
  1270. cleanCarbonRods: 'Kohlenstoffstangen reinigen',
  1271. lubricateSteelRods: 'Stahlstangen schmieren',
  1272. cleanSteelRods: 'Stahlstangen reinigen',
  1273. cleanLinearRails: 'Linearschienen reinigen',
  1274. checkPtfeTube: 'PTFE-Schlauch prüfen',
  1275. replaceHepaFilter: 'HEPA-Filter ersetzen',
  1276. replaceCarbonFilter: 'Aktivkohlefilter ersetzen',
  1277. lubricateLeftNozzleRail: 'Linke Düsenschiene schmieren',
  1278. },
  1279. // Toast
  1280. maintenanceComplete: 'Wartung als abgeschlossen markiert',
  1281. typeUpdated: 'Wartungstyp aktualisiert',
  1282. typeDeleted: 'Wartungstyp gelöscht',
  1283. defaultsRestored: '{{count}} Standardaufgabe(n) wiederhergestellt',
  1284. printHoursUpdated: 'Druckstunden aktualisiert',
  1285. printerAssigned: 'Drucker zugewiesen',
  1286. printerRemoved: 'Drucker entfernt',
  1287. // Confirmation
  1288. deleteTypeConfirm: '"{{name}}" löschen?',
  1289. deleteSystemTypeTitle: 'Standard-Wartungsaufgabe löschen?',
  1290. deleteSystemTypeMessage: 'Möchten Sie die Standard-Wartungsaufgabe "{{name}}" wirklich löschen?',
  1291. // Permissions
  1292. noPermissionUpdate: 'Sie haben keine Berechtigung, Wartungselemente zu aktualisieren',
  1293. noPermissionPerform: 'Sie haben keine Berechtigung, Wartungen durchzuführen',
  1294. noPermissionEditTypes: 'Sie haben keine Berechtigung, Wartungstypen zu bearbeiten',
  1295. noPermissionDeleteTypes: 'Sie haben keine Berechtigung, Wartungstypen zu löschen',
  1296. noPermissionEditHours: 'Sie haben keine Berechtigung, Druckstunden zu bearbeiten',
  1297. noPermissionRemovePrinter: 'Sie haben keine Berechtigung, Druckerzuweisungen zu entfernen',
  1298. noPermissionAssignPrinter: 'Sie haben keine Berechtigung, Drucker zuzuweisen',
  1299. noPermissionEditIntervals: 'Sie haben keine Berechtigung, Intervalle zu bearbeiten',
  1300. // Configure link
  1301. configureSettings: 'Wartungstypen und Intervalle konfigurieren',
  1302. },
  1303. // Settings page
  1304. settings: {
  1305. title: 'Einstellungen',
  1306. general: 'Allgemein',
  1307. // Tab names
  1308. tabs: {
  1309. general: 'Allgemein',
  1310. smartPlugs: 'Smart Plugs',
  1311. notifications: 'Benachrichtigungen',
  1312. queue: 'Workflow',
  1313. filament: 'Filament',
  1314. network: 'Netzwerk',
  1315. apiKeys: 'API-Schlüssel',
  1316. virtualPrinter: 'Virtueller Drucker',
  1317. spoolbuddy: 'SpoolBuddy',
  1318. failureDetection: 'Fehlererkennung',
  1319. users: 'Authentifizierung',
  1320. backup: 'Sicherung',
  1321. emailAuth: 'E-Mail-Authentifizierung',
  1322. ldap: 'LDAP',
  1323. twoFa: 'Zwei-Faktor-Auth',
  1324. oidc: 'SSO / OIDC',
  1325. },
  1326. spoolbuddy: {
  1327. infoTitle: 'SpoolBuddy-Geräte',
  1328. infoBody: 'SpoolBuddy-Kioske registrieren sich automatisch per Heartbeat. Ein Gerät hier abmelden, wenn es nicht mehr verwendet wird oder wenn ein veralteter Eintrag nach einem Daemon-Absturz übrig geblieben ist.',
  1329. duplicatesTitle: '{{count}} Geräte registriert',
  1330. duplicatesBody: 'Die Kiosk-Oberfläche verwendet nur das zuerst registrierte Gerät. Falls eines davon ein veralteter Doppeleintrag nach einem Absturz ist, kann es hier entfernt werden — ein laufendes Gerät registriert sich beim nächsten Heartbeat automatisch neu.',
  1331. empty: 'Noch keine SpoolBuddy-Geräte registriert.',
  1332. online: 'Online',
  1333. offline: 'Offline',
  1334. unregister: 'Abmelden',
  1335. unregisterSuccess: 'Gerät abgemeldet',
  1336. unregisterError: 'Gerät konnte nicht abgemeldet werden',
  1337. confirmTitle: 'SpoolBuddy-Gerät abmelden?',
  1338. confirmBody: 'Dies entfernt „{{hostname}}" ({{deviceId}}) aus der Datenbank. Ein laufendes Gerät registriert sich beim nächsten Heartbeat automatisch neu.',
  1339. ipAddress: 'IP-Adresse',
  1340. firmware: 'Firmware',
  1341. lastSeen: 'Zuletzt gesehen',
  1342. daemonUptime: 'Daemon-Laufzeit',
  1343. systemUptime: 'System-Laufzeit',
  1344. never: 'nie',
  1345. nfc: 'NFC',
  1346. scale: 'Waage',
  1347. cpuTemp: 'CPU-Temp.',
  1348. memory: 'Speicher',
  1349. disk: 'Festplatte',
  1350. update: 'Aktualisieren',
  1351. updateConfirmTitle: 'Spoolbuddy-Daemon aktualisieren?',
  1352. updateConfirmBody: 'Software-Update auf „{{hostname}}" auslösen? Der Daemon startet nach dem Update neu.',
  1353. restartBrowser: 'Browser neu starten',
  1354. restartBrowserConfirmTitle: 'Kiosk-Browser neu starten?',
  1355. restartBrowserConfirmBody: 'Kiosk-Browser auf „{{hostname}}" neu starten? Die Anzeige wird kurz schwarz.',
  1356. restartDaemon: 'Daemon neu starten',
  1357. restartDaemonConfirmTitle: 'Spoolbuddy-Daemon neu starten?',
  1358. restartDaemonConfirmBody: 'Spoolbuddy-Daemon auf „{{hostname}}" neu starten? Das Gerät ist für einige Sekunden offline.',
  1359. reboot: 'Neustart',
  1360. rebootConfirmTitle: 'Gerät neu starten?',
  1361. rebootConfirmBody: '„{{hostname}}" neu starten? Das Gerät ist für etwa eine Minute offline.',
  1362. shutdown: 'Herunterfahren',
  1363. shutdownConfirmTitle: 'Gerät herunterfahren?',
  1364. shutdownConfirmBody: '„{{hostname}}" herunterfahren? Physischer Zugriff ist nötig, um es wieder einzuschalten.',
  1365. commandConfirm: 'Bestätigen',
  1366. commandQueued: 'Befehl eingereiht',
  1367. commandError: 'Befehl konnte nicht gesendet werden',
  1368. },
  1369. ldap: {
  1370. title: 'LDAP-Authentifizierung',
  1371. enabledDesc: 'LDAP-Authentifizierung ist aktiviert',
  1372. disabledDesc: 'LDAP-Authentifizierung ist deaktiviert',
  1373. disabledHint: 'LDAP-Einstellungen unten konfigurieren und speichern, dann aktivieren.',
  1374. enabled: 'LDAP-Authentifizierung aktiviert',
  1375. disabled: 'LDAP-Authentifizierung deaktiviert',
  1376. feature1: 'Benutzer können sich mit LDAP-Anmeldedaten anmelden',
  1377. feature2: 'Lokales Admin-Konto bleibt als Fallback erhalten',
  1378. feature3: 'LDAP-Gruppen werden bei der Anmeldung BamBuddy-Gruppen zugeordnet',
  1379. serverConfig: 'LDAP-Server-Konfiguration',
  1380. serverUrl: 'Server-URL',
  1381. serverUrlHint: 'Verwenden Sie ldap:// für Standard oder ldaps:// für SSL-Verbindungen',
  1382. security: 'Sicherheit',
  1383. securityHint: 'StartTLS aktualisiert eine einfache Verbindung auf TLS. LDAPS verwendet TLS von Anfang an.',
  1384. bindDn: 'Bind-DN (Dienstkonto)',
  1385. bindPassword: 'Bind-Passwort',
  1386. searchBase: 'Such-Basis-DN',
  1387. userFilter: 'Benutzer-Suchfilter',
  1388. userFilterHint: '{username} wird durch den Anmeldenamen ersetzt. Verwenden Sie (uid={username}) für OpenLDAP.',
  1389. autoProvision: 'Benutzer automatisch anlegen',
  1390. autoProvisionHint: 'Automatisch ein BamBuddy-Konto bei der ersten LDAP-Anmeldung erstellen',
  1391. defaultGroup: 'Standardgruppe',
  1392. defaultGroupNone: '— Keine (kein Fallback) —',
  1393. defaultGroupHint: 'Fallback-Gruppe, die zugewiesen wird, wenn sich ein LDAP-Benutzer authentifiziert, aber in keiner zugeordneten LDAP-Gruppe enthalten ist. Leer lassen, um nicht zugeordnete Benutzer ohne Berechtigungen zu belassen.',
  1394. groupMapping: 'Gruppenzuordnung (JSON)',
  1395. groupMappingHint: 'LDAP-Gruppen-DNs BamBuddy-Gruppen zuordnen. Verfügbare Gruppen: ',
  1396. testConnection: 'Verbindung testen',
  1397. settingsSaved: 'LDAP-Einstellungen gespeichert',
  1398. errors: {
  1399. serverRequired: 'LDAP-Server-URL ist erforderlich',
  1400. searchBaseRequired: 'Such-Basis-DN ist erforderlich',
  1401. enableAuthFirst: 'Authentifizierung zuerst aktivieren',
  1402. configureLdapFirst: 'LDAP-Einstellungen zuerst speichern',
  1403. },
  1404. },
  1405. // Email settings
  1406. email: {
  1407. smtpSettings: 'SMTP-Konfiguration',
  1408. smtpHost: 'SMTP-Server',
  1409. smtpPort: 'SMTP-Port',
  1410. security: 'Sicherheit',
  1411. authentication: 'Authentifizierung',
  1412. username: 'Benutzername',
  1413. password: 'Passwort',
  1414. fromEmail: 'Absender-E-Mail',
  1415. fromName: 'Absendername',
  1416. testConnection: 'SMTP-Verbindung testen',
  1417. testRecipient: 'Test-Empfänger-E-Mail',
  1418. sendTest: 'Test-E-Mail senden',
  1419. sending: 'Wird gesendet...',
  1420. save: 'Einstellungen speichern',
  1421. saving: 'Wird gespeichert...',
  1422. advancedAuth: 'Erweiterte Authentifizierung',
  1423. advancedAuthEnabled: 'Erweiterte Authentifizierung ist aktiviert',
  1424. advancedAuthEnabledDesc: 'E-Mail-basierte Benutzerverwaltungsfunktionen sind aktiv. Neue Benutzer erhalten automatisch generierte Passwörter per E-Mail und können ihr Passwort über die Passwort vergessen Funktion zurücksetzen.',
  1425. advancedAuthDisabled: 'Erweiterte Authentifizierung ist deaktiviert',
  1426. advancedAuthDisabledDesc: 'Aktivieren Sie die erweiterte Authentifizierung, um E-Mail-basierte Funktionen für die Benutzerverwaltung zu aktivieren.',
  1427. enable: 'Aktivieren',
  1428. disable: 'Deaktivieren',
  1429. feature1: 'Passwörter werden automatisch generiert und an neue Benutzer gesendet',
  1430. feature2: 'Benutzer können sich mit Benutzername oder E-Mail anmelden',
  1431. feature3: 'Passwort vergessen Funktion ist verfügbar',
  1432. feature4: 'Administratoren können Benutzerpasswörter per E-Mail zurücksetzen',
  1433. // Error messages
  1434. errors: {
  1435. requiredFields: 'Bitte füllen Sie alle Pflichtfelder aus',
  1436. usernameRequired: 'Benutzername ist erforderlich, wenn Authentifizierung aktiviert ist',
  1437. enterTestEmail: 'Bitte geben Sie eine Test-E-Mail-Adresse ein',
  1438. smtpServerAndEmail: 'Bitte füllen Sie SMTP-Server und Absender-E-Mail aus, bevor Sie testen',
  1439. usernamePasswordRequired: 'Benutzername und Passwort sind erforderlich, wenn Authentifizierung aktiviert ist',
  1440. configureSmtpFirst: 'Bitte konfigurieren und testen Sie zuerst die SMTP-Einstellungen',
  1441. enableAuthFirst: 'Bitte aktivieren Sie zuerst die Authentifizierung, um E-Mail-basierte Funktionen nutzen zu können.',
  1442. },
  1443. // Success messages
  1444. success: {
  1445. settingsSaved: 'SMTP-Einstellungen erfolgreich gespeichert',
  1446. },
  1447. // Security options
  1448. securityOptions: {
  1449. starttls: 'STARTTLS (Port 587)',
  1450. ssl: 'SSL/TLS (Port 465)',
  1451. none: 'Keine (Port 25)',
  1452. },
  1453. // Authentication options
  1454. authOptions: {
  1455. enabled: 'Aktiviert',
  1456. disabled: 'Deaktiviert',
  1457. },
  1458. },
  1459. appearance: 'Erscheinungsbild',
  1460. notifications: 'Benachrichtigungen',
  1461. smartPlugs: 'Smart Plugs',
  1462. spoolman: 'Spoolman',
  1463. updates: 'Updates',
  1464. language: 'Sprache',
  1465. languageDescription: 'Wählen Sie Ihre bevorzugte Sprache',
  1466. theme: 'Design',
  1467. themeLight: 'Hell',
  1468. themeDark: 'Dunkel',
  1469. themeSystem: 'System',
  1470. defaultView: 'Standardansicht',
  1471. defaultViewDescription: 'Seite, die beim Öffnen der App angezeigt wird',
  1472. checkForUpdates: 'Nach Updates suchen',
  1473. autoUpdate: 'Automatische Updates',
  1474. currentVersion: 'Aktuelle Version',
  1475. latestVersion: 'Neueste Version',
  1476. upToDate: 'Sie sind auf dem neuesten Stand',
  1477. updateAvailable: 'Update verfügbar',
  1478. // Notifications
  1479. notificationLanguage: 'Benachrichtigungssprache',
  1480. notificationLanguageDescription: 'Sprache für Push-Benachrichtigungen',
  1481. bedCooledThreshold: 'Bett-Abkühlung Schwellenwert',
  1482. bedCooledThresholdDescription: 'Temperatur, unter der das Bett nach einem Druck als abgekühlt gilt',
  1483. userNotificationsEnabled: 'Benutzerbenachrichtigungen',
  1484. userNotificationsEnabledDescription: 'Aktiviert das Benutzerbenachrichtigungsmenü und E-Mail-Benachrichtigungen für Druckereignisse. Erfordert Erweiterte Authentifizierung.',
  1485. userNotificationsDisabledHint: 'Erweiterte Authentifizierung aktivieren, um Benutzerbenachrichtigungen zu verwenden.',
  1486. notificationProviders: 'Benachrichtigungsanbieter',
  1487. addProvider: 'Anbieter hinzufügen',
  1488. editProvider: 'Anbieter bearbeiten',
  1489. providerType: 'Anbietertyp',
  1490. testNotification: 'Testbenachrichtigung',
  1491. testSuccess: 'Testbenachrichtigung erfolgreich gesendet',
  1492. testFailed: 'Testbenachrichtigung konnte nicht gesendet werden',
  1493. quietHours: 'Ruhezeiten',
  1494. quietHoursDescription: 'Keine Störungen während dieser Zeiten',
  1495. quietHoursStart: 'Beginn',
  1496. quietHoursEnd: 'Ende',
  1497. events: {
  1498. title: 'Benachrichtigungsereignisse',
  1499. printStart: 'Druck gestartet',
  1500. printComplete: 'Druck abgeschlossen',
  1501. printFailed: 'Druck fehlgeschlagen',
  1502. printStopped: 'Druck gestoppt',
  1503. printProgress: 'Fortschrittsmeldungen',
  1504. printProgressDescription: 'Bei 25%, 50%, 75% benachrichtigen',
  1505. printerOffline: 'Drucker offline',
  1506. printerError: 'Druckerfehler',
  1507. filamentLow: 'Filament niedrig',
  1508. maintenanceDue: 'Wartung fällig',
  1509. maintenanceDueDescription: 'Benachrichtigen, wenn Wartung erforderlich',
  1510. },
  1511. // Smart Plugs
  1512. smartPlug: {
  1513. title: 'Smart Plugs',
  1514. add: 'Smart Plug hinzufügen',
  1515. edit: 'Smart Plug bearbeiten',
  1516. name: 'Name',
  1517. ipAddress: 'IP-Adresse',
  1518. linkedPrinter: 'Verknüpfter Drucker',
  1519. autoOn: 'Automatisch einschalten',
  1520. autoOnDescription: 'Einschalten beim Druckstart',
  1521. autoOff: 'Automatisch ausschalten',
  1522. autoOffDescription: 'Ausschalten nach Druckende',
  1523. offDelay: 'Ausschaltverzögerung',
  1524. offDelayMinutes: 'Minuten nach Druck',
  1525. offDelayTemp: 'Wenn Düse unter Temperatur',
  1526. currentState: 'Aktueller Status',
  1527. turnOn: 'Einschalten',
  1528. turnOff: 'Ausschalten',
  1529. },
  1530. // Filament Tracking Mode
  1531. filamentTracking: 'Filament-Verfolgung',
  1532. filamentTrackingDesc: 'Wählen Sie, wie Sie Ihre Filamentspulen verfolgen möchten. Sie können das integrierte Inventar oder einen externen Spoolman-Server verwenden.',
  1533. filamentChecks: 'Filament-Prüfungen',
  1534. disableFilamentWarnings: 'Filament-Warnungen deaktivieren',
  1535. disableFilamentWarningsDesc: 'Keine Warnungen über unzureichendes Filament beim Drucken oder Einreihen anzeigen',
  1536. preferLowestFilament: 'Niedrigsten Filamentrest bevorzugen',
  1537. preferLowestFilamentDesc: 'Bei mehreren passenden Spulen die mit dem geringsten Restfilament verwenden',
  1538. trackingModeBuiltIn: 'Integriertes Inventar',
  1539. trackingModeBuiltInDesc: 'RFID-Erkennung und Verbrauchserfassung inklusive',
  1540. trackingModeSpoolmanDesc: 'Externer Filament-Management-Server',
  1541. builtInFeatureRfid: 'Erkennt automatisch Bambu Lab RFID-Spulen im AMS',
  1542. builtInFeatureUsage: 'Erfasst den Filamentverbrauch pro Druck',
  1543. builtInFeatureCatalog: 'Spulen, Farben und K-Faktor-Profile verwalten',
  1544. builtInFeatureThirdParty: 'Drittanbieter-Spulen können Inventarspulen zugewiesen werden',
  1545. amsSyncButton: 'Gewichte vom AMS synchronisieren',
  1546. amsSyncTitle: 'Spulengewichte vom AMS synchronisieren',
  1547. amsSyncMessage: 'Alle Inventar-Spulengewichte werden mit den aktuellen AMS-Restwerten der verbundenen Drucker überschrieben. Verwenden Sie dies zur Wiederherstellung beschädigter Gewichtsdaten. Drucker müssen online sein.',
  1548. amsSyncing: 'Synchronisiere...',
  1549. amsSyncSuccess: '{{synced}} Spule(n) synchronisiert, {{skipped}} übersprungen',
  1550. amsSyncError: 'Synchronisierung der Gewichte vom AMS fehlgeschlagen',
  1551. // Spoolman settings
  1552. spoolmanUrl: 'Spoolman URL',
  1553. spoolmanUrlHint: 'URL Ihres Spoolman-Servers (z.B. http://localhost:7912)',
  1554. spoolmanConnected: 'Verbunden',
  1555. spoolmanDisconnected: 'Nicht verbunden',
  1556. status: 'Status',
  1557. connect: 'Verbinden',
  1558. disconnect: 'Trennen',
  1559. howSyncWorks: 'So funktioniert die Synchronisierung',
  1560. syncInfoRfidOnly: 'Nur offizielle Bambu Lab Spulen mit RFID werden synchronisiert',
  1561. syncInfoAutoCreate: 'Neue Spulen werden bei der ersten Synchronisierung automatisch in Spoolman erstellt',
  1562. syncInfoThirdPartySkipped: 'Nicht-Bambu-Lab-Spulen (Drittanbieter, nachgefüllt) werden übersprungen',
  1563. linkingExistingSpools: 'Vorhandene Spulen verknüpfen',
  1564. linkingExistingSpoolsDesc: 'Um vorhandene Spoolman-Spulen mit Ihrem AMS zu verknüpfen, fahren Sie über einen AMS-Slot und klicken Sie auf "Mit Spoolman verknüpfen".',
  1565. syncMode: 'Synchronisierungsmodus',
  1566. syncModeAuto: 'Automatisch',
  1567. syncModeManual: 'Nur manuell',
  1568. syncModeAutoDesc: 'AMS-Daten werden automatisch synchronisiert, wenn Änderungen erkannt werden',
  1569. syncModeManualDesc: 'Nur bei manueller Auslösung synchronisieren',
  1570. syncAmsData: 'AMS-Daten synchronisieren',
  1571. syncAmsDataDesc: 'AMS-Daten des Druckers manuell mit Spoolman synchronisieren',
  1572. allPrinters: 'Alle Drucker',
  1573. // Default printer
  1574. noDefaultPrinter: 'Kein Standard (jedes Mal fragen)',
  1575. // Sidebar
  1576. sidebarOrder: 'Seitenleisten-Reihenfolge',
  1577. // Camera
  1578. saveThumbnails: 'Vorschaubilder speichern',
  1579. captureFinishPhoto: 'Abschlussfoto aufnehmen',
  1580. noPrintersConfigured: 'Keine Drucker konfiguriert',
  1581. // Archive settings
  1582. archiveMode: {
  1583. always: 'Immer Archiveintrag erstellen',
  1584. never: 'Nie Archiveintrag erstellen',
  1585. ask: 'Jedes Mal fragen',
  1586. },
  1587. // Updates
  1588. checkForUpdatesLabel: 'Nach Updates suchen',
  1589. checkPrinterFirmware: 'Drucker-Firmware prüfen',
  1590. includeBetaUpdates: 'Beta-Versionen einschließen',
  1591. includeBetaUpdatesDesc: 'Über Beta- und Vorabversionen bei der Updateprüfung benachrichtigen',
  1592. // Queue
  1593. enableRetry: 'Wiederholung aktivieren',
  1594. // Home Assistant
  1595. homeAssistantDescription: 'Smart Plugs über Home Assistant steuern',
  1596. environmentManagedLabel: '(Umgebungsvariable)',
  1597. autoEnabledViaEnv: 'Automatisch über Umgebungsvariablen aktiviert',
  1598. urlFromEnvReadOnly: 'Wert wird über HA_URL Umgebungsvariable gesetzt (schreibgeschützt)',
  1599. tokenFromEnvReadOnly: 'Wert wird über HA_TOKEN Umgebungsvariable gesetzt (schreibgeschützt)',
  1600. // MQTT
  1601. mqttConnectedTo: 'Verbunden mit',
  1602. // Prometheus
  1603. prometheusDescription: 'Druckerdaten im Prometheus-Format bereitstellen',
  1604. // Smart plugs empty state
  1605. noSmartPlugsTitle: 'Keine Smart Plugs konfiguriert',
  1606. noSmartPlugsDescription: 'Fügen Sie einen Tasmota-basierten Smart Plug hinzu, um den Energieverbrauch zu verfolgen und die Stromsteuerung zu automatisieren.',
  1607. // Notifications empty state
  1608. noProvidersTitle: 'Keine Anbieter konfiguriert',
  1609. noProvidersDescription: 'Fügen Sie einen Anbieter hinzu, um Benachrichtigungen zu erhalten.',
  1610. noTemplatesAvailable: 'Keine Vorlagen verfügbar. Starten Sie das Backend neu, um Standardvorlagen zu laden.',
  1611. // API permissions
  1612. apiPermissionView: 'Druckerstatus und Warteschlange anzeigen',
  1613. apiPermissionEdit: 'Elemente zur Druckwarteschlange hinzufügen und entfernen',
  1614. // API keys
  1615. apiKeysEmptyTitle: 'Keine API-Schlüssel',
  1616. apiKeysEmptyDescription: 'Erstellen Sie einen API-Schlüssel zur Integration mit externen Diensten.',
  1617. // Users
  1618. noUsersFound: 'Keine Benutzer gefunden',
  1619. noGroupsFound: 'Keine Gruppen gefunden',
  1620. noGroupsAvailable: 'Keine Gruppen verfügbar',
  1621. passwordsDoNotMatch: 'Passwörter stimmen nicht überein',
  1622. systemGroupWarning: 'System-Gruppennamen können nicht geändert werden',
  1623. // Auth disabled
  1624. authDisabledTitle: 'Authentifizierung ist deaktiviert',
  1625. authDisabledFeature1: 'Anmeldung zum Zugriff auf das System erforderlich',
  1626. authDisabledFeature2: 'Mehrere Benutzer mit gruppenbasierten Berechtigungen erstellen',
  1627. authDisabledFeature3: 'Zugriff mit über 50 granularen Berechtigungen steuern',
  1628. // User deletion
  1629. userHasCreated: 'Dieser Benutzer hat erstellt:',
  1630. userItemsQuestion: 'Was möchten Sie mit diesen Elementen tun?',
  1631. deleteUserConfirm: 'Möchten Sie diesen Benutzer wirklich löschen?',
  1632. actionCannotBeUndone: 'Diese Aktion kann nicht rückgängig gemacht werden.',
  1633. // Smart plugs
  1634. addFirstSmartPlug: 'Ersten Smart Plug hinzufügen',
  1635. // Notifications
  1636. providers: 'Anbieter',
  1637. log: 'Protokoll',
  1638. testAll: 'Alle testen',
  1639. testResults: 'Testergebnisse',
  1640. testPassedCount: '{{count}} bestanden',
  1641. testFailedCount: '{{count}} fehlgeschlagen',
  1642. messageTemplates: 'Nachrichtenvorlagen',
  1643. messageTemplatesDescription: 'Passen Sie Benachrichtigungen für jedes Ereignis an.',
  1644. // API Keys section
  1645. apiKeys: 'API-Schlüssel',
  1646. apiKeysDescription: 'Erstellen Sie API-Schlüssel für externe Integrationen und Webhooks.',
  1647. createKey: 'Schlüssel erstellen',
  1648. apiKeyCreated: 'API-Schlüssel erfolgreich erstellt',
  1649. apiKeyCopyWarning: 'Kopieren Sie diesen Schlüssel jetzt - er wird nicht mehr angezeigt!',
  1650. useInApiBrowser: 'Im API-Browser verwenden',
  1651. createNewApiKey: 'Neuen API-Schlüssel erstellen',
  1652. keyName: 'Schlüsselname',
  1653. keyNamePlaceholder: 'z.B. Home Assistant, OctoPrint',
  1654. readStatus: 'Status lesen',
  1655. readStatusDescription: 'Druckerstatus und Warteschlange anzeigen',
  1656. manageQueue: 'Warteschlange verwalten',
  1657. manageQueueDescription: 'Elemente zur Druckwarteschlange hinzufügen und entfernen',
  1658. controlPrinter: 'Drucker steuern',
  1659. controlPrinterDescription: 'Drucke pausieren, fortsetzen und stoppen',
  1660. unnamedKey: 'Unbenannter Schlüssel',
  1661. lastUsed: 'Zuletzt verwendet',
  1662. read: 'Lesen',
  1663. control: 'Steuern',
  1664. createFirstKey: 'Ersten Schlüssel erstellen',
  1665. webhookEndpoints: 'Webhook-Endpunkte',
  1666. webhookApiKeyHint: 'Verwenden Sie Ihren API-Schlüssel im X-API-Key-Header.',
  1667. webhook: {
  1668. getAllStatus: 'Alle Druckerstatus abrufen',
  1669. getSpecificStatus: 'Spezifischen Druckerstatus abrufen',
  1670. addToQueue: 'Zur Druckwarteschlange hinzufügen',
  1671. pausePrint: 'Druck pausieren',
  1672. resumePrint: 'Druck fortsetzen',
  1673. stopPrint: 'Druck stoppen',
  1674. },
  1675. apiBrowser: 'API-Browser',
  1676. apiBrowserDescription: 'Erkunden und testen Sie alle verfügbaren API-Endpunkte.',
  1677. apiKeyForTesting: 'API-Schlüssel zum Testen',
  1678. apiKeyPlaceholder: 'Fügen Sie hier Ihren API-Schlüssel ein, um authentifizierte Endpunkte zu testen...',
  1679. apiKeyHint: 'Dieser Schlüssel wird als X-API-Key-Header mit Anfragen gesendet.',
  1680. deleteApiKeyTitle: 'API-Schlüssel löschen',
  1681. deleteApiKeyMessage: 'Möchten Sie diesen API-Schlüssel wirklich löschen? Alle Integrationen, die diesen Schlüssel verwenden, funktionieren nicht mehr.',
  1682. deleteKey: 'Schlüssel löschen',
  1683. // Filament tab
  1684. amsDisplayThresholds: 'AMS-Anzeigeschwellenwerte',
  1685. amsThresholdsDescription: 'Konfigurieren Sie Farbschwellenwerte für AMS-Feuchtigkeits- und Temperaturanzeigen.',
  1686. humidity: 'Luftfeuchtigkeit',
  1687. goodGreen: 'Gut (grün)',
  1688. fairOrange: 'Mittel (orange)',
  1689. aboveFairBad: 'Über dem mittleren Schwellenwert wird rot angezeigt (schlecht)',
  1690. fairAlsoDryingThreshold: 'Dieser Schwellenwert wird auch für die automatische Trocknung verwendet',
  1691. temperature: 'Temperatur',
  1692. goodBlue: 'Gut (blau)',
  1693. aboveFairHot: 'Über dem mittleren Schwellenwert wird rot angezeigt (heiß)',
  1694. historyRetention: 'Verlaufsaufbewahrung',
  1695. keepSensorHistory: 'Sensorverlauf behalten für',
  1696. historyRetentionDescription: 'Ältere Feuchtigkeits- und Temperaturdaten werden automatisch gelöscht',
  1697. defaultPrintOptions: 'Standard-Druckoptionen',
  1698. defaultPrintOptionsDescription: 'Standardwerte für Druckoptionen bei neuen Drucken festlegen. Diese können im Druckdialog pro Druck überschrieben werden.',
  1699. defaultBedLevelling: 'Bett-Nivellierung',
  1700. defaultBedLevellingDesc: 'Bett vor dem Druck automatisch nivellieren',
  1701. defaultFlowCali: 'Fluss-Kalibrierung',
  1702. defaultFlowCaliDesc: 'Extrusionsfluss kalibrieren',
  1703. defaultVibrationCali: 'Vibrationskalibrierung',
  1704. defaultVibrationCaliDesc: 'Ringing-Artefakte reduzieren',
  1705. defaultLayerInspect: 'Erste-Schicht-Inspektion',
  1706. defaultLayerInspectDesc: 'KI-Inspektion der ersten Schicht',
  1707. defaultTimelapse: 'Zeitraffer',
  1708. defaultTimelapseDesc: 'Zeitraffervideo aufnehmen',
  1709. staggeredStart: 'Staggered Start',
  1710. staggeredStartDescription: 'Default group size and interval when staggering multi-printer batch starts. Can be overridden per batch in the print modal.',
  1711. plateClear: 'Druckplatte-Bestätigung',
  1712. requirePlateClear: 'Druckplatte-Bestätigung erforderlich',
  1713. requirePlateClearDescription: 'Wenn aktiviert, wartet der Scheduler auf eine Druckplatte-Bestätigung pro Drucker, bevor geplante Drucke auf Druckern mit abgeschlossenen Aufträgen gestartet werden. Deaktivieren Sie dies für Farm-Workflows, bei denen die Platten physisch überprüft werden.',
  1714. gcodeInjection: 'G-code Injection',
  1715. gcodeInjectionDescription: 'Konfigurieren Sie benutzerdefinierten G-code, der am Anfang und/oder Ende von Drucken für Auto-Print-Systeme wie Farmloop, SwapMod, AutoClear und Printflow 3D eingefügt wird. Snippets werden pro Druckermodell konfiguriert und angewendet, wenn "G-code einfügen" bei einem Warteschlangen-Element aktiviert ist.',
  1716. gcodeInjectionNoPrinters: 'Keine Drucker gefunden. Fügen Sie Drucker hinzu, um G-code-Snippets zu konfigurieren.',
  1717. gcodeStartLabel: 'Start G-code',
  1718. gcodeEndLabel: 'End G-code',
  1719. gcodeStartPlaceholder: 'G-code, der vor dem Druckstart eingefügt wird...',
  1720. gcodeEndPlaceholder: 'G-code, der nach dem Druckende angefügt wird...',
  1721. staggerGroupSize: 'Group size',
  1722. staggerGroupSizeHelp: 'Printers to start simultaneously per group',
  1723. staggerInterval: 'Interval (minutes)',
  1724. staggerIntervalHelp: 'Delay between each group starting',
  1725. queueDrying: 'Automatische Trocknung',
  1726. queueDryingDescription: 'AMS-Filament automatisch trocknen, wenn der Drucker zwischen Warteschlangen-Drucken im Leerlauf ist. Verwendet den Feuchtigkeitsschwellenwert oben.',
  1727. queueDryingEnabled: 'Automatische Trocknung aktivieren',
  1728. queueDryingEnabledDescription: 'AMS-Trocknung automatisch starten, wenn der Drucker im Leerlauf ist und die Feuchtigkeit über dem Schwellenwert liegt',
  1729. queueDryingBlock: 'Auf Trocknung warten',
  1730. queueDryingBlockDescription: 'Druckwarteschlange blockieren, bis die Trocknung abgeschlossen ist. Wenn aus, haben Drucke Vorrang.',
  1731. ambientDryingEnabled: 'Umgebungstrocknung',
  1732. ambientDryingEnabledDescription: 'Filament auf inaktiven Druckern automatisch trocknen, wenn die Luftfeuchtigkeit den Schwellenwert überschreitet — auch ohne Warteschlange.',
  1733. dryingPresets: 'Trocknungsvoreinstellungen',
  1734. dryingPresetsDescription: 'Temperatur und Dauer pro Filamenttyp. AMS 2 Pro verwendet niedrigere Temperaturen, AMS-HT unterstützt höhere.',
  1735. dryingFilament: 'Filament',
  1736. printModal: 'Druckdialog',
  1737. expandCustomMapping: 'Benutzerdefinierte Zuordnung standardmäßig erweitern',
  1738. expandCustomMappingDescription: 'Bei Druck auf mehrere Drucker die AMS-Zuordnung pro Drucker erweitert anzeigen',
  1739. // User management
  1740. authentication: 'Authentifizierung',
  1741. authEnabledDescription: 'Ihre Instanz ist mit Benutzerauthentifizierung gesichert',
  1742. authDisabledDescription: 'Aktivieren Sie die Anmeldepflicht und verwalten Sie den Benutzerzugriff',
  1743. authDisabledMessage: 'Aktivieren Sie die Authentifizierung, um Benutzerkonten zu erstellen, Berechtigungen zu verwalten und Ihre Bambuddy-Instanz zu sichern.',
  1744. enableAuthentication: 'Authentifizierung aktivieren',
  1745. currentUser: 'Aktueller Benutzer',
  1746. changePassword: 'Passwort ändern',
  1747. admin: 'Admin',
  1748. users: 'Benutzer',
  1749. addUser: 'Benutzer hinzufügen',
  1750. groups: 'Gruppen',
  1751. addGroup: 'Gruppe hinzufügen',
  1752. system: 'System',
  1753. noDescription: 'Keine Beschreibung',
  1754. userCount: '{{count}} Benutzer',
  1755. permissionCount: '{{count}} Berechtigungen',
  1756. createUser: 'Benutzer erstellen',
  1757. username: 'Benutzername',
  1758. enterUsername: 'Benutzername eingeben',
  1759. password: 'Passwort',
  1760. enterPassword: 'Passwort eingeben (min. 6 Zeichen)',
  1761. confirmPassword: 'Passwort bestätigen',
  1762. confirmPasswordPlaceholder: 'Passwort bestätigen',
  1763. // Title tooltips
  1764. viewReleaseOnGitHub: 'Release auf GitHub anzeigen',
  1765. turnAllPlugsOn: 'Alle Stecker einschalten',
  1766. turnAllPlugsOff: 'Alle Stecker ausschalten',
  1767. // Modal: Clear logs
  1768. clearNotificationLogs: 'Benachrichtigungsprotokolle löschen',
  1769. clearLogsMessage: 'Dadurch werden alle Benachrichtigungsprotokolle, die älter als 30 Tage sind, dauerhaft gelöscht. Diese Aktion kann nicht rückgängig gemacht werden.',
  1770. clearLogs: 'Protokolle löschen',
  1771. // Modal: Reset UI
  1772. resetUiPreferences: 'UI-Einstellungen zurücksetzen',
  1773. 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.',
  1774. resetPreferences: 'Einstellungen zurücksetzen',
  1775. // Modal: Delete group
  1776. deleteGroupTitle: 'Gruppe löschen',
  1777. deleteGroupMessage: 'Möchten Sie diese Gruppe wirklich löschen? Benutzer in dieser Gruppe verlieren diese Berechtigungen.',
  1778. deleteGroup: 'Gruppe löschen',
  1779. // Modal: Disable auth
  1780. disableAuthenticationTitle: 'Authentifizierung deaktivieren',
  1781. 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.',
  1782. disableAuthentication: 'Authentifizierung deaktivieren',
  1783. // Additional settings
  1784. configureBambuddy: 'Bambuddy konfigurieren',
  1785. systemDefault: 'Systemstandard',
  1786. archiveSettings: 'Archiv-Einstellungen',
  1787. newWindow: 'Neues Fenster',
  1788. embeddedOverlay: 'Eingebettetes Overlay',
  1789. preferredSlicer: 'Bevorzugter Slicer',
  1790. preferredSlicerDescription: 'Wähle die Slicer-Anwendung zum Öffnen von Dateien',
  1791. externalCameras: 'Externe Kameras',
  1792. costTracking: 'Kostenverfolgung',
  1793. printsOnly: 'Nur Drucke',
  1794. totalConsumption: 'Gesamtverbrauch',
  1795. dataManagement: 'Datenverwaltung',
  1796. storageUsage: 'Speichernutzung',
  1797. storageUsageDescription: 'Aufschlüsselung der Datennutzung nach Kategorie',
  1798. storageUsageTotal: 'Gesamt',
  1799. storageUsageErrors: 'Fehler',
  1800. storageUsageOtherBreakdown: 'Sonstiges (enthält statische Assets, Skripte und Konfigurationsdateien)',
  1801. storageUsageSystem: 'System',
  1802. storageUsageData: 'Daten',
  1803. storageUsageUnavailable: 'Speichernutzungsinformationen nicht verfügbar',
  1804. clearNotificationLogsDescription: 'Benachrichtigungsprotokolle älter als 30 Tage löschen',
  1805. resetUiPreferencesDescription: 'Seitenleisten-Reihenfolge, Theme, Ansichtsmodi und Layout-Einstellungen zurücksetzen. Drucker, Archive und Einstellungen werden nicht beeinflusst.',
  1806. enableHomeAssistant: 'Home Assistant aktivieren',
  1807. enableMqtt: 'MQTT aktivieren',
  1808. useTls: 'TLS verwenden',
  1809. enableMetricsEndpoint: 'Metrik-Endpunkt aktivieren',
  1810. availableMetrics: 'Verfügbare Metriken',
  1811. editUser: 'Benutzer bearbeiten',
  1812. deleteUserTitle: 'Benutzer löschen',
  1813. groupName: 'Gruppenname',
  1814. // Placeholders
  1815. leaveEmptyForAnonymous: 'Leer lassen für anonym',
  1816. leaveEmptyForNoAuth: 'Leer lassen für keine Authentifizierung',
  1817. enterNewPassword: 'Neues Passwort eingeben',
  1818. confirmNewPassword: 'Neues Passwort bestätigen',
  1819. enterGroupName: 'Gruppenname eingeben',
  1820. enterDescriptionOptional: 'Beschreibung eingeben (optional)',
  1821. enterCurrentPassword: 'Aktuelles Passwort eingeben',
  1822. enterNewPasswordMin6: 'Neues Passwort eingeben (min. 6 Zeichen)',
  1823. toast: {
  1824. keyCopied: 'Schlüssel in Zwischenablage kopiert',
  1825. copyFailed: 'Schlüssel konnte nicht kopiert werden',
  1826. keyAddedToBrowser: 'Schlüssel zum API-Browser hinzugefügt',
  1827. clearLogsFailed: 'Protokolle konnten nicht gelöscht werden',
  1828. uiPreferencesReset: 'UI-Einstellungen zurückgesetzt. Wird neu geladen...',
  1829. authDisabled: 'Authentifizierung erfolgreich deaktiviert',
  1830. authDisableFailed: 'Authentifizierung konnte nicht deaktiviert werden',
  1831. apiKeyCreated: 'API-Schlüssel erstellt',
  1832. apiKeyDeleted: 'API-Schlüssel gelöscht',
  1833. userCreated: 'Benutzer erfolgreich erstellt',
  1834. userUpdated: 'Benutzer erfolgreich aktualisiert',
  1835. userDeleted: 'Benutzer erfolgreich gelöscht',
  1836. groupCreated: 'Gruppe erfolgreich erstellt',
  1837. groupUpdated: 'Gruppe erfolgreich aktualisiert',
  1838. groupDeleted: 'Gruppe erfolgreich gelöscht',
  1839. fillRequiredFields: 'Bitte füllen Sie alle erforderlichen Felder aus',
  1840. passwordsDoNotMatch: 'Passwörter stimmen nicht überein',
  1841. passwordTooShort: 'Passwort muss mindestens 6 Zeichen lang sein',
  1842. enterGroupName: 'Bitte geben Sie einen Gruppennamen ein',
  1843. settingsSaved: 'Einstellungen gespeichert',
  1844. cameraSettingsSaved: 'Kamera-Einstellungen gespeichert',
  1845. enterCameraUrl: 'Bitte geben Sie eine Kamera-URL ein',
  1846. passwordChanged: 'Passwort erfolgreich geändert',
  1847. connectionFailed: 'Verbindung fehlgeschlagen',
  1848. testFailed: 'Test fehlgeschlagen',
  1849. cameraConnected: 'Kamera verbunden{{resolution}}',
  1850. },
  1851. testConnection: 'Verbindung testen',
  1852. catalog: {
  1853. spoolCatalog: 'Spulenkatalog',
  1854. spoolCatalogDescription: 'Leerspulengewichte nach Marke/Typ. Wird für die automatische Gewichtssuche beim Hinzufügen von Spulen verwendet.',
  1855. searchCatalog: 'Katalog durchsuchen...',
  1856. addNewEntry: 'Neuen Eintrag hinzufügen',
  1857. namePlaceholder: 'Name (z.B. Bambu Lab - Plastik)',
  1858. weight: 'Gewicht',
  1859. type: 'Typ',
  1860. default: 'Standard',
  1861. custom: 'Benutzerdefiniert',
  1862. noMatch: 'Keine Einträge entsprechen Ihrer Suche',
  1863. empty: 'Keine Einträge im Katalog',
  1864. deleteEntry: 'Eintrag löschen',
  1865. deleteConfirm: 'Möchten Sie "{{name}}" wirklich löschen?',
  1866. resetCatalog: 'Katalog zurücksetzen',
  1867. resetConfirm: 'Katalog auf Standardwerte zurücksetzen? Alle benutzerdefinierten Einträge werden entfernt.',
  1868. loadFailed: 'Spulenkatalog konnte nicht geladen werden',
  1869. nameWeightRequired: 'Name und Gewicht sind erforderlich',
  1870. entryAdded: 'Eintrag hinzugefügt',
  1871. addFailed: 'Eintrag konnte nicht hinzugefügt werden',
  1872. entryUpdated: 'Eintrag aktualisiert',
  1873. updateFailed: 'Eintrag konnte nicht aktualisiert werden',
  1874. entryDeleted: 'Eintrag gelöscht',
  1875. deleteFailed: 'Eintrag konnte nicht gelöscht werden',
  1876. resetSuccess: 'Katalog auf Standardwerte zurückgesetzt',
  1877. resetFailed: 'Katalog konnte nicht zurückgesetzt werden',
  1878. exported: '{{count}} Einträge exportiert',
  1879. imported: '{{added}} Einträge importiert ({{skipped}} übersprungen)',
  1880. importFailed: 'Import fehlgeschlagen: ungültiges JSON-Format',
  1881. exportTooltip: 'Katalog als JSON exportieren',
  1882. importTooltip: 'Katalog aus JSON importieren',
  1883. resetTooltip: 'Auf Standardwerte zurücksetzen',
  1884. selectedCount: '{{count}} ausgewählt',
  1885. deleteSelected: 'Ausgewählte löschen',
  1886. bulkDeleteConfirm: 'Möchten Sie {{count}} Einträge wirklich löschen?',
  1887. bulkDeleted: '{{count}} Einträge gelöscht',
  1888. bulkDeleteFailed: 'Fehler beim Löschen der Einträge',
  1889. },
  1890. colorCatalog: {
  1891. title: 'Farbkatalog',
  1892. description: 'Filamentfarben nach Hersteller/Material. Wird für die automatische Farbsuche beim Hinzufügen von Spulen verwendet.',
  1893. searchColors: 'Farben durchsuchen...',
  1894. allManufacturers: 'Alle Hersteller',
  1895. addNewColor: 'Neue Farbe hinzufügen',
  1896. manufacturer: 'Hersteller',
  1897. colorName: 'Farbname',
  1898. hex: 'Hex',
  1899. materialOptional: 'Material (optional)',
  1900. showing: '{{filtered}} von {{total}} Farben angezeigt',
  1901. noMatch: 'Keine Farben entsprechen Ihrer Suche',
  1902. empty: 'Keine Farben im Katalog',
  1903. deleteColor: 'Farbe löschen',
  1904. deleteConfirm: 'Möchten Sie "{{name}}" wirklich löschen?',
  1905. resetCatalog: 'Farbkatalog zurücksetzen',
  1906. resetConfirm: 'Katalog auf Standardwerte zurücksetzen? Alle benutzerdefinierten Farben werden entfernt.',
  1907. sync: 'Sync',
  1908. starting: 'Starten...',
  1909. syncTooltip: 'Von FilamentColors.xyz synchronisieren (2000+ Farben)',
  1910. loadFailed: 'Farbkatalog konnte nicht geladen werden',
  1911. fieldsRequired: 'Hersteller, Farbname und Hex-Farbe sind erforderlich',
  1912. colorAdded: 'Farbe hinzugefügt',
  1913. addFailed: 'Farbe konnte nicht hinzugefügt werden',
  1914. colorUpdated: 'Farbe aktualisiert',
  1915. updateFailed: 'Farbe konnte nicht aktualisiert werden',
  1916. colorDeleted: 'Farbe gelöscht',
  1917. deleteFailed: 'Farbe konnte nicht gelöscht werden',
  1918. resetSuccess: 'Farbkatalog auf Standardwerte zurückgesetzt',
  1919. resetFailed: 'Katalog konnte nicht zurückgesetzt werden',
  1920. syncUpToDate: 'Bereits aktuell ({{count}} Farben geprüft)',
  1921. syncComplete: '{{added}} neue Farben hinzugefügt ({{skipped}} bereits vorhanden)',
  1922. syncError: 'Sync-Fehler',
  1923. syncFailed: 'Synchronisierung von FilamentColors.xyz fehlgeschlagen',
  1924. exported: '{{count}} Farben exportiert',
  1925. imported: '{{added}} Farben importiert ({{skipped}} übersprungen)',
  1926. importFailed: 'Import fehlgeschlagen: ungültiges JSON-Format',
  1927. selectedCount: '{{count}} ausgewählt',
  1928. deleteSelected: 'Ausgewählte löschen',
  1929. bulkDeleteConfirm: 'Möchten Sie {{count}} Farben wirklich löschen?',
  1930. bulkDeleted: '{{count}} Farben gelöscht',
  1931. bulkDeleteFailed: 'Fehler beim Löschen der Farben',
  1932. },
  1933. // General tab
  1934. dateFormat: 'Datumsformat',
  1935. dateFormatUs: 'US (MM/TT/JJJJ)',
  1936. dateFormatEu: 'EU (TT/MM/JJJJ)',
  1937. dateFormatIso: 'ISO (JJJJ-MM-TT)',
  1938. timeFormat: 'Zeitformat',
  1939. timeFormat12: '12-Stunden (3:30 PM)',
  1940. timeFormat24: '24-Stunden (15:30)',
  1941. defaultPrinter: 'Standarddrucker',
  1942. defaultPrinterDescription: 'Diesen Drucker für Uploads, Nachdrucke und andere Vorgänge vorauswählen.',
  1943. slicerBambuStudio: 'Bambu Studio',
  1944. slicerOrcaSlicer: 'OrcaSlicer',
  1945. sidebarOrderDescription: 'Elemente in der Seitenleiste per Drag & Drop neu anordnen. Hier auf Standardreihenfolge zurücksetzen.',
  1946. setDefault: 'Standard setzen',
  1947. sidebarOrderSetDefaultHint: 'Standard setzen übernimmt die aktuelle Menüreihenfolge für Benutzer, die ihre noch nicht angepasst haben.',
  1948. sidebarDefaultSet: 'Standard-Menüreihenfolge wurde festgelegt.',
  1949. sidebarDefaultCleared: 'Standard-Menüreihenfolge gelöscht.',
  1950. sidebarDefaultFailed: 'Festlegen der Standard-Menüreihenfolge fehlgeschlagen.',
  1951. reset: 'Zurücksetzen',
  1952. // Appearance
  1953. darkMode: 'Dunkelmodus',
  1954. lightMode: 'Hellmodus',
  1955. active: '(aktiv)',
  1956. background: 'Hintergrund',
  1957. accent: 'Akzent',
  1958. style: 'Stil',
  1959. bgNeutral: 'Neutral',
  1960. bgWarm: 'Warm',
  1961. bgCool: 'Kühl',
  1962. bgOled: 'OLED Schwarz',
  1963. bgSlate: 'Schieferblau',
  1964. bgForest: 'Waldgrün',
  1965. accentGreen: 'Grün',
  1966. accentTeal: 'Türkis',
  1967. accentBlue: 'Blau',
  1968. accentOrange: 'Orange',
  1969. accentPurple: 'Lila',
  1970. accentRed: 'Rot',
  1971. styleClassic: 'Klassisch',
  1972. styleGlow: 'Leuchtend',
  1973. styleVibrant: 'Lebendig',
  1974. themeToggleHint: 'Zwischen Hell- und Dunkelmodus mit dem Sonnen-/Mondsymbol in der Seitenleiste wechseln.',
  1975. // Archive
  1976. autoArchivePrints: 'Drucke automatisch archivieren',
  1977. autoArchiveDescription: '3MF-Dateien automatisch speichern, wenn Drucke abgeschlossen sind',
  1978. saveThumbnailsDescription: 'Vorschaubilder aus 3MF-Dateien extrahieren und speichern',
  1979. captureFinishPhotoDescription: 'Foto von der Druckerkamera aufnehmen, wenn der Druck abgeschlossen ist',
  1980. ffmpegNotInstalled: 'ffmpeg nicht installiert',
  1981. ffmpegRequired: 'Kameraaufnahme benötigt ffmpeg. Installieren über <brew>brew install ffmpeg</brew> (macOS) oder <apt>apt install ffmpeg</apt> (Linux).',
  1982. // Camera
  1983. camera: 'Kamera',
  1984. cameraViewMode: 'Kamera-Ansichtsmodus',
  1985. cameraOverlayDescription: 'Kamera öffnet sich als größenveränderbares Overlay auf dem Hauptbildschirm',
  1986. cameraWindowDescription: 'Kamera öffnet sich in einem separaten Browserfenster',
  1987. externalCamerasDescription: 'Externe Kameras konfigurieren, um die eingebaute Druckerkamera zu ersetzen. Unterstützt MJPEG-Streams, RTSP, HTTP-Snapshots und USB-Kameras (V4L2). Wenn aktiviert, wird die externe Kamera für Live-Ansicht und Abschlussfotos verwendet.',
  1988. cameraPlaceholderUsb: 'Gerätepfad (/dev/video0)',
  1989. cameraPlaceholderUrl: 'Kamera-URL (rtsp://... oder http://...)',
  1990. cameraTypeMjpeg: 'MJPEG-Stream',
  1991. cameraTypeRtsp: 'RTSP-Stream',
  1992. cameraTypeSnapshot: 'HTTP-Snapshot',
  1993. cameraTypeUsb: 'USB-Kamera (V4L2)',
  1994. cameraRotation: 'Drehung',
  1995. test: 'Testen',
  1996. connected: 'Verbunden',
  1997. disconnected: 'Getrennt',
  1998. // Cost tracking
  1999. currency: 'Währung',
  2000. defaultFilamentCost: 'Standard-Filamentkosten (pro kg)',
  2001. electricityCost: 'Stromkosten pro kWh',
  2002. energyDisplayMode: 'Energieanzeige-Modus',
  2003. energyModePrintDescription: 'Dashboard zeigt Summe der während Drucken verbrauchten Energie',
  2004. energyModeTotalDescription: 'Dashboard zeigt Gesamtenergie der Smart Plugs',
  2005. // File Manager
  2006. fileManager: 'Dateimanager',
  2007. createArchiveEntry: 'Archiveintrag beim Drucken erstellen',
  2008. createArchiveEntryDescription: 'Beim Drucken aus dem Dateimanager optional einen Archiveintrag erstellen',
  2009. lowDiskSpaceWarning: 'Warnung bei wenig Speicherplatz',
  2010. lowDiskSpaceDescription: 'Warnung anzeigen, wenn freier Speicherplatz unter diesen Schwellenwert fällt',
  2011. // Updates
  2012. printerFirmware: 'Drucker-Firmware',
  2013. checkFirmwareDescription: 'Nach Firmware-Updates von Bambu Lab suchen',
  2014. bambuddySoftware: 'Bambuddy Software',
  2015. autoCheckDescription: 'Automatisch beim Start nach neuen Versionen suchen',
  2016. checkNow: 'Jetzt prüfen',
  2017. updateAvailableVersion: 'Update verfügbar: v{{version}}',
  2018. releaseNotes: 'Versionshinweise',
  2019. updateViaDocker: 'Update über Docker Compose:',
  2020. installUpdate: 'Update installieren',
  2021. latestVersionRunning: 'Sie verwenden die neueste Version',
  2022. failedToCheckUpdates: 'Update-Prüfung fehlgeschlagen: {{error}}',
  2023. // Data Management
  2024. backupRestore: 'Sicherung & Wiederherstellung',
  2025. backupRestoreDescription: 'Einstellungen exportieren/importieren und GitHub-Backup konfigurieren',
  2026. goToBackup: 'Zur Sicherung',
  2027. // Network tab
  2028. externalUrl: 'Externe URL',
  2029. externalUrlDescription: 'Die externe URL, unter der Bambuddy erreichbar ist. Wird für Benachrichtigungsbilder und externe Integrationen verwendet.',
  2030. bambuddyUrl: 'Bambuddy-URL',
  2031. externalUrlHint: 'Protokoll und Port angeben (z.B. http://192.168.1.100:8000)',
  2032. ftpRetry: 'FTP-Wiederholung',
  2033. ftpRetryDescription: 'FTP-Operationen bei unzuverlässigem Drucker-WLAN wiederholen. Gilt für 3MF-Downloads, Druck-Uploads, Zeitraffer-Downloads und Firmware-Updates.',
  2034. autoRetryDescription: 'Fehlgeschlagene FTP-Operationen automatisch wiederholen',
  2035. retryAttempts: 'Wiederholungsversuche',
  2036. retryDelay: 'Wiederholungsverzögerung',
  2037. connectionTimeout: 'Verbindungs-Timeout',
  2038. time_one: '{{count}} Mal',
  2039. time_other: '{{count}} Mal',
  2040. second_one: '{{count}} Sekunde',
  2041. second_other: '{{count}} Sekunden',
  2042. nSeconds: '{{count}} Sekunden',
  2043. increaseForWeakWifi: 'Erhöhen für Drucker mit schwachem WLAN',
  2044. // Home Assistant
  2045. homeAssistant: 'Home Assistant',
  2046. homeAssistantFullDescription: 'Mit Home Assistant verbinden, um Smart Plugs über die HA REST-API zu steuern. Unterstützt Switch-, Light-, Input_Boolean- und Script-Entitäten.',
  2047. homeAssistantUrl: 'Home Assistant URL',
  2048. longLivedAccessToken: 'Langlebiges Zugriffstoken',
  2049. haTokenHint: 'Token in HA erstellen: Profil → Langlebige Zugriffstoken → Token erstellen',
  2050. connectionSuccessful: 'Verbindung erfolgreich',
  2051. connectionFailed: 'Verbindung fehlgeschlagen',
  2052. haConnectionSuccess: 'Erfolgreich mit Home Assistant verbunden.',
  2053. haConnectionFailed: 'Verbindung zu Home Assistant fehlgeschlagen.',
  2054. // MQTT
  2055. mqttPublishing: 'MQTT-Veröffentlichung',
  2056. mqttDescription: 'BamBuddy-Ereignisse an einen externen MQTT-Broker zur Integration mit Node-RED, Home Assistant und anderen Automatisierungssystemen veröffentlichen.',
  2057. mqttEnableDescription: 'Ereignisse an externen MQTT-Broker veröffentlichen',
  2058. brokerHostname: 'Broker-Hostname',
  2059. port: 'Port',
  2060. usernameOptional: 'Benutzername (optional)',
  2061. passwordOptional: 'Passwort (optional)',
  2062. topicPrefix: 'Topic-Präfix',
  2063. topicPrefixHint: 'Topics werden sein: {{prefix}}/printers/<serial>/status, etc.',
  2064. // Prometheus
  2065. prometheusMetrics: 'Prometheus-Metriken',
  2066. prometheusEndpointDescription: 'Druckermetriken unter <code>/api/v1/metrics</code> für Prometheus/Grafana-Überwachung bereitstellen.',
  2067. bearerTokenOptional: 'Bearer-Token (optional)',
  2068. bearerTokenHint: 'Wenn gesetzt, müssen Anfragen <code>Authorization: Bearer <token></code> enthalten',
  2069. metricsConnectionStatus: 'Verbindungsstatus',
  2070. metricsPrinterState: 'Druckerstatus (idle/printing/etc)',
  2071. metricsPrintProgress: 'Druckfortschritt 0-100%',
  2072. metricsBedTemp: 'Betttemperatur',
  2073. metricsNozzleTemp: 'Düsentemperatur',
  2074. metricsPrintsTotal: 'Gesamtdrucke nach Ergebnis',
  2075. metricsMore: '...und mehr (Schichten, Lüfter, Warteschlange, Filamentverbrauch)',
  2076. // Smart Plugs
  2077. smartPlugsDescription: 'Smart Plugs (Tasmota oder Home Assistant) verbinden, um Stromsteuerung zu automatisieren und Energieverbrauch für Ihre Drucker zu verfolgen.',
  2078. allOn: 'Alle Ein',
  2079. allOff: 'Alle Aus',
  2080. addSmartPlug: 'Smart Plug hinzufügen',
  2081. energySummary: 'Energieübersicht',
  2082. currentPower: 'Aktuelle Leistung',
  2083. plugsOnline: '{{reachable}}/{{total}} Plugs online',
  2084. today: 'Heute',
  2085. yesterday: 'Gestern',
  2086. total: 'Gesamt',
  2087. enablePlugsForSummary: 'Plugs aktivieren, um Energieübersicht zu sehen',
  2088. addNotificationProvider: 'Hinzufügen',
  2089. // Users
  2090. systemBadge: '(System)',
  2091. creating: 'Erstellen...',
  2092. changing: 'Ändern...',
  2093. deleteUserAndItems: 'Benutzer UND dessen Elemente löschen',
  2094. deleteUserKeepItems: 'Benutzer löschen, Elemente behalten (werden herrenlos)',
  2095. ok: 'OK',
  2096. // 2FA settings
  2097. twoFa: {
  2098. totpTitle: 'Authenticator-App (TOTP)',
  2099. totpDesc: 'Verwende eine Authenticator-App wie Google Authenticator, Aegis oder Authy.',
  2100. emailOtpTitle: 'E-Mail OTP',
  2101. emailOtpDesc: 'Sende einen Einmalcode an {{email}} beim Einloggen.',
  2102. emailOtpNoEmail: 'Füge eine E-Mail-Adresse zu deinem Konto hinzu, um diese Methode zu aktivieren.',
  2103. addEmailFirst: 'Dein Konto hat keine E-Mail-Adresse. Bitte einen Administrator, eine hinzuzufügen.',
  2104. setupTotp: 'Authenticator-App einrichten',
  2105. setupAuthApp: 'Authenticator-App einrichten',
  2106. setupInstructions: 'Scanne den QR-Code mit deiner Authenticator-App und bestätige mit einem Code.',
  2107. manualEntry: 'Kein Scanner? Gib dieses Secret manuell ein:',
  2108. scannedContinue: 'Code gescannt — weiter',
  2109. enterCodeToConfirm: 'Gib den 6-stelligen Code aus deiner Authenticator-App ein, um die Einrichtung zu bestätigen.',
  2110. activate: 'Aktivieren',
  2111. disableTotp: 'Authenticator deaktivieren',
  2112. disableConfirmHint: 'Gib einen gültigen TOTP-Code oder einen Backup-Code ein, um den Authenticator zu deaktivieren.',
  2113. totpDisabled: 'Authenticator-App deaktiviert.',
  2114. emailOtpEnabled: 'E-Mail OTP aktiviert.',
  2115. emailOtpDisabled: 'E-Mail OTP deaktiviert.',
  2116. smtpRequired: 'Bitte konfigurieren und testen Sie zuerst die SMTP-Einstellungen.',
  2117. invalidCode: 'Ungültiger Code. Bitte erneut versuchen.',
  2118. enableEmailOtp: 'E-Mail OTP aktivieren',
  2119. disableEmailOtp: 'E-Mail OTP deaktivieren',
  2120. emailSetupEnterCode: 'Ein Bestätigungscode wurde an Ihre E-Mail-Adresse gesendet. Geben Sie ihn unten ein, um zu bestätigen, dass Ihnen dieses Postfach gehört.',
  2121. verifyAndEnable: 'Verifizieren & Aktivieren',
  2122. emailDisablePasswordHint: 'Geben Sie Ihr Kontopasswort ein, um die Deaktivierung des E-Mail OTP zu bestätigen.',
  2123. passwordPlaceholder: 'Passwort eingeben',
  2124. backupCodesTitle: 'Backup-Codes sichern',
  2125. backupCodesWarning: 'Speichere diese Codes sicher. Jeder Code kann nur einmal verwendet werden und wird nicht erneut angezeigt.',
  2126. backupCodesRemaining: '{{count}} Backup-Codes verbleibend',
  2127. savedCodes: 'Codes gespeichert',
  2128. regenBackup: 'Backup-Codes neu generieren',
  2129. regenBackupHint: 'Gib deinen aktuellen TOTP-Code ein, um 10 neue Backup-Codes zu generieren. Alle bestehenden Codes werden ungültig.',
  2130. newBackupCodes: 'Neue Backup-Codes',
  2131. linkedAccounts: 'Verknüpfte SSO-Konten',
  2132. linkedAccountsDesc: 'Diese externen Identitätsanbieter sind mit deinem Konto verknüpft.',
  2133. oidcUnlinked: 'Konto getrennt.',
  2134. },
  2135. // OIDC provider settings
  2136. oidc: {
  2137. title: 'SSO / OIDC-Anbieter',
  2138. desc: 'Konfiguriere OpenID Connect-Anbieter für Single Sign-On.',
  2139. addProvider: 'Anbieter hinzufügen',
  2140. newProvider: 'Neuer Anbieter',
  2141. empty: 'Noch keine OIDC-Anbieter konfiguriert.',
  2142. created: 'Anbieter erstellt.',
  2143. updated: 'Anbieter aktualisiert.',
  2144. deleted: 'Anbieter gelöscht.',
  2145. deleteTitle: 'Anbieter löschen',
  2146. deleteMessage: '"{{name}}" löschen? Alle verknüpften Benutzerkonten werden getrennt.',
  2147. form: {
  2148. name: 'Anzeigename',
  2149. issuerUrl: 'Aussteller-URL',
  2150. clientId: 'Client-ID',
  2151. clientSecret: 'Client-Secret',
  2152. scopes: 'Scopes',
  2153. iconUrl: 'Symbol-URL (optional)',
  2154. enabled: 'Aktiviert',
  2155. autoCreate: 'Benutzer automatisch anlegen',
  2156. autoCreateDesc: 'Erstellt beim ersten Login automatisch ein lokales Konto.',
  2157. autoLink: 'Bestehende Konten automatisch verknüpfen',
  2158. autoLinkDesc: 'Verknüpft beim ersten Login vorhandene lokale Konten anhand der E-Mail-Adresse.',
  2159. secretHint: 'leer lassen zum Beibehalten',
  2160. secretPlaceholder: 'neues Secret',
  2161. },
  2162. },
  2163. },
  2164. // Notifications (for push notifications)
  2165. notification: {
  2166. printStarted: {
  2167. title: 'Druck gestartet',
  2168. body: '{{printer}}: {{filename}} wird gedruckt',
  2169. },
  2170. printCompleted: {
  2171. title: 'Druck abgeschlossen',
  2172. body: '{{printer}}: {{filename}} erfolgreich abgeschlossen',
  2173. },
  2174. printFailed: {
  2175. title: 'Druck fehlgeschlagen',
  2176. body: '{{printer}}: {{filename}} ist fehlgeschlagen',
  2177. },
  2178. printStopped: {
  2179. title: 'Druck gestoppt',
  2180. body: '{{printer}}: {{filename}} wurde gestoppt',
  2181. },
  2182. printProgress: {
  2183. title: 'Druckfortschritt',
  2184. body: '{{printer}}: {{filename}} ist zu {{percent}}% abgeschlossen',
  2185. },
  2186. printerOffline: {
  2187. title: 'Drucker offline',
  2188. body: '{{printer}} ist offline',
  2189. },
  2190. printerError: {
  2191. title: 'Druckerfehler',
  2192. body: '{{printer}}: {{error}}',
  2193. },
  2194. filamentLow: {
  2195. title: 'Filament niedrig',
  2196. body: '{{printer}}: Filament geht zur Neige',
  2197. },
  2198. maintenanceDue: {
  2199. title: 'Wartung fällig',
  2200. body: '{{printer}}: {{items}} benötigen Aufmerksamkeit',
  2201. },
  2202. },
  2203. // Errors
  2204. errors: {
  2205. generic: 'Etwas ist schiefgelaufen',
  2206. networkError: 'Netzwerkfehler. Bitte überprüfen Sie Ihre Verbindung.',
  2207. notFound: 'Nicht gefunden',
  2208. unauthorized: 'Nicht autorisiert',
  2209. serverError: 'Serverfehler',
  2210. validationError: 'Bitte überprüfen Sie Ihre Eingabe',
  2211. printerConnectionFailed: 'Verbindung zum Drucker fehlgeschlagen',
  2212. saveFailed: 'Speichern fehlgeschlagen',
  2213. deleteFailed: 'Löschen fehlgeschlagen',
  2214. loadFailed: 'Laden der Daten fehlgeschlagen',
  2215. },
  2216. // HMS Errors modal
  2217. hmsErrors: {
  2218. title: 'Fehler - {{name}}',
  2219. noErrors: 'Keine Fehler',
  2220. viewOnWiki: 'Im Bambu Lab Wiki ansehen',
  2221. clearInstructions: 'Löschen Sie die Fehler am Drucker, um sie hier zu entfernen.',
  2222. clearErrors: 'Fehler löschen',
  2223. clearSuccess: 'HMS-Fehler gelöscht',
  2224. clearFailed: 'HMS-Fehler konnten nicht gelöscht werden',
  2225. },
  2226. // MQTT Debug modal
  2227. mqttDebug: {
  2228. title: 'MQTT-Debug-Protokoll',
  2229. searchPlaceholder: 'Topic oder Payload suchen...',
  2230. noMessages: 'Noch keine Nachrichten protokolliert',
  2231. startLoggingHint: 'Klicken Sie auf "Protokollierung starten", um MQTT-Nachrichten aufzuzeichnen',
  2232. noMessagesMatch: 'Keine Nachrichten entsprechen Ihrem Filter',
  2233. adjustFilterHint: 'Versuchen Sie, Ihre Such- oder Filterkriterien anzupassen',
  2234. incoming: 'Eingehend',
  2235. outgoing: 'Ausgehend',
  2236. loggingStopped: 'Protokollierung gestoppt',
  2237. loggingActive: 'Protokollierung aktiv - Nachrichten werden automatisch aktualisiert',
  2238. startLogging: 'Protokollierung starten',
  2239. stopLogging: 'Protokollierung stoppen',
  2240. clearLog: 'Protokoll löschen',
  2241. topic: 'Topic',
  2242. timestamp: 'Zeitstempel',
  2243. direction: 'Richtung',
  2244. all: 'Alle',
  2245. },
  2246. // Printer File Manager modal (printer internal storage)
  2247. printerFiles: {
  2248. title: 'Dateimanager',
  2249. storageUsed: 'Belegt:',
  2250. storageFree: 'Frei:',
  2251. filterPlaceholder: 'Dateien filtern...',
  2252. deleteButton: 'Löschen',
  2253. deleteFiles: '{{count}} Dateien löschen',
  2254. deleteFileConfirm: '"{{name}}" löschen? Dies kann nicht rückgängig gemacht werden.',
  2255. deleteFilesConfirm: '{{count}} ausgewählte Dateien löschen? Dies kann nicht rückgängig gemacht werden.',
  2256. noFiles: 'Keine Dateien auf dem Drucker',
  2257. loadingFiles: 'Dateien werden geladen...',
  2258. failedToLoad: 'Dateien konnten nicht geladen werden',
  2259. toast: {
  2260. filesDeleted: '{{count}} Datei(en) gelöscht',
  2261. deleteFailed: 'Löschen fehlgeschlagen: {{error}}',
  2262. },
  2263. },
  2264. // Confirmations
  2265. confirm: {
  2266. delete: 'Möchten Sie dies wirklich löschen?',
  2267. unsavedChanges: 'Sie haben ungespeicherte Änderungen. Möchten Sie wirklich verlassen?',
  2268. clearQueue: 'Möchten Sie die Warteschlange wirklich leeren?',
  2269. },
  2270. // Login page
  2271. login: {
  2272. title: 'Bambuddy Anmeldung',
  2273. subtitle: 'Melden Sie sich bei Ihrem Konto an',
  2274. username: 'Benutzername',
  2275. usernamePlaceholder: 'Benutzername eingeben',
  2276. usernameOrEmail: 'Benutzername oder E-Mail',
  2277. usernameOrEmailPlaceholder: 'Benutzername oder @ E-Mail',
  2278. password: 'Passwort',
  2279. passwordPlaceholder: 'Passwort eingeben',
  2280. signIn: 'Anmelden',
  2281. signingIn: 'Anmeldung läuft...',
  2282. forgotPassword: 'Passwort vergessen?',
  2283. loginSuccess: 'Erfolgreich angemeldet',
  2284. loginFailed: 'Anmeldung fehlgeschlagen',
  2285. enterCredentials: 'Bitte Benutzername und Passwort eingeben',
  2286. enterEmail: 'Bitte geben Sie Ihre E-Mail-Adresse ein',
  2287. oidcLoginFailed: 'OIDC-Anmeldung fehlgeschlagen',
  2288. oidcErrors: {
  2289. providerError: 'Der Identity-Provider hat einen Fehler zurückgegeben',
  2290. missingParameters: 'Dem OIDC-Callback fehlen erforderliche Parameter',
  2291. invalidState: 'OIDC-State ist ungültig oder wurde bereits verwendet',
  2292. stateExpired: 'OIDC-Sitzung abgelaufen — bitte erneut versuchen',
  2293. providerNotFound: 'OIDC-Provider nicht gefunden',
  2294. discoveryFailed: 'OIDC-Discovery-Dokument konnte nicht abgerufen werden',
  2295. invalidDiscovery: 'OIDC-Discovery-Dokument ist ungültig',
  2296. networkError: 'Netzwerkfehler beim OIDC-Token-Austausch',
  2297. badResponse: 'Unerwartete Antwort beim OIDC-Token-Austausch',
  2298. noIdToken: 'OIDC-Provider hat kein ID-Token zurückgegeben',
  2299. validationFailed: 'OIDC-Token-Validierung fehlgeschlagen',
  2300. nonceMismatch: 'OIDC-Nonce stimmt nicht überein — möglicher Replay-Angriff',
  2301. missingSubClaim: 'OIDC-Token enthält keinen Sub-Claim',
  2302. noLinkedAccount: 'Kein lokales Konto mit dieser OIDC-Identität verknüpft',
  2303. accountInactive: 'Ihr Konto ist inaktiv',
  2304. userResolutionFailed: 'Ihr Konto konnte nicht aufgelöst werden',
  2305. internalError: 'Interner Fehler beim OIDC-Login',
  2306. tokenExchangeFailed: 'OIDC-Token-Austausch fehlgeschlagen',
  2307. },
  2308. forgotPasswordTitle: 'Passwort vergessen',
  2309. forgotPasswordMessage: 'Wenn Sie Ihr Passwort vergessen haben, wenden Sie sich bitte an Ihren Systemadministrator.',
  2310. forgotPasswordEmailMessage: 'Geben Sie Ihre E-Mail-Adresse ein und wir senden Ihnen ein neues Passwort.',
  2311. emailAddress: 'E-Mail-Adresse',
  2312. emailPlaceholder: 'ihre.email@beispiel.de',
  2313. cancel: 'Abbrechen',
  2314. sending: 'Wird gesendet...',
  2315. sendResetEmail: 'Zurücksetzungs-E-Mail senden',
  2316. howToReset: 'So setzen Sie Ihr Passwort zurück:',
  2317. resetStep1: 'Kontaktieren Sie Ihren Bambuddy-Administrator',
  2318. resetStep2: 'Bitten Sie ihn, Ihr Passwort in der Benutzerverwaltung zurückzusetzen',
  2319. resetStep3: 'Er kann ein neues temporäres Passwort für Sie festlegen',
  2320. resetStep4: 'Melden Sie sich mit dem neuen Passwort an und ändern Sie es in den Einstellungen',
  2321. gotIt: 'Verstanden',
  2322. resetPassword: {
  2323. title: 'Neues Passwort festlegen',
  2324. subtitle: 'Geben Sie unten Ihr neues Passwort ein und bestätigen Sie es.',
  2325. newPassword: 'Neues Passwort',
  2326. newPasswordPlaceholder: 'Mindestens 8 Zeichen',
  2327. confirmPassword: 'Passwort bestätigen',
  2328. confirmPasswordPlaceholder: 'Neues Passwort wiederholen',
  2329. saving: 'Wird gespeichert\u2026',
  2330. submit: 'Neues Passwort festlegen',
  2331. backToLogin: 'Zurück zur Anmeldung',
  2332. passwordsDoNotMatch: 'Passwörter stimmen nicht überein',
  2333. passwordTooShort: 'Passwort muss mindestens 8 Zeichen lang sein',
  2334. resetFailed: 'Passwort zurücksetzen fehlgeschlagen. Der Link ist möglicherweise abgelaufen.',
  2335. },
  2336. twoFA: {
  2337. title: 'Zwei-Faktor-Authentifizierung',
  2338. subtitle: 'Ihr Konto ist mit 2FA geschützt. Geben Sie unten den Bestätigungscode ein.',
  2339. methodAuthenticator: 'Authenticator-App',
  2340. methodEmail: 'E-Mail-Code',
  2341. methodBackup: 'Wiederherstellungscode',
  2342. instructionsTotp: 'Öffnen Sie Ihre Authenticator-App und geben Sie den 6-stelligen Code für Bambuddy ein.',
  2343. instructionsEmail: 'Ein 6-stelliger Code wurde an Ihre E-Mail-Adresse gesendet. Er ist 10 Minuten gültig.',
  2344. instructionsEmailNotSent: 'Klicken Sie unten, um einen Bestätigungscode per E-Mail zu erhalten.',
  2345. instructionsBackup: 'Geben Sie einen Ihrer 8-stelligen Wiederherstellungscodes ein. Jeder Code kann nur einmal verwendet werden.',
  2346. sendCodeButton: 'Code per E-Mail senden',
  2347. sendingCode: 'Wird gesendet...',
  2348. resendCode: 'Code erneut senden',
  2349. codeLabel: 'Bestätigungscode',
  2350. backupCodeLabel: 'Wiederherstellungscode',
  2351. codePlaceholder: '000000',
  2352. backupCodePlaceholder: 'XXXXXXXX',
  2353. verifyButton: 'Bestätigen',
  2354. verifyingButton: 'Wird überprüft...',
  2355. backToLogin: '← Zurück zur Anmeldung',
  2356. orContinueWith: 'oder anmelden mit',
  2357. signInWith: 'Anmelden mit {{provider}}',
  2358. enterCode: 'Bitte geben Sie den Bestätigungscode ein',
  2359. sendCodeFailed: 'Bestätigungscode konnte nicht gesendet werden',
  2360. invalidCode: 'Ungültiger Code. Bitte erneut versuchen.',
  2361. },
  2362. },
  2363. // Setup page
  2364. setup: {
  2365. title: 'Bambuddy Einrichtung',
  2366. subtitle: 'Konfigurieren Sie die Authentifizierung für Ihre Bambuddy-Instanz',
  2367. enableAuth: 'Authentifizierung aktivieren',
  2368. adminAccount: 'Admin-Konto',
  2369. 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.',
  2370. adminUsername: 'Admin-Benutzername',
  2371. adminPassword: 'Admin-Passwort',
  2372. optionalIfAdminExists: '(optional, wenn Admin-Benutzer existieren)',
  2373. adminUsernamePlaceholder: 'Admin-Benutzernamen eingeben (optional)',
  2374. adminPasswordPlaceholder: 'Admin-Passwort eingeben (optional)',
  2375. confirmPassword: 'Passwort bestätigen',
  2376. confirmPasswordPlaceholder: 'Admin-Passwort bestätigen',
  2377. settingUp: 'Einrichtung läuft...',
  2378. completeSetup: 'Einrichtung abschließen',
  2379. toast: {
  2380. authEnabledAdminCreated: 'Authentifizierung aktiviert und Admin-Benutzer erstellt',
  2381. authEnabledExistingAdmins: 'Authentifizierung mit vorhandenen Admin-Benutzern aktiviert',
  2382. setupCompleted: 'Einrichtung abgeschlossen',
  2383. enterBothCredentials: 'Bitte geben Sie sowohl Admin-Benutzernamen als auch Passwort ein, oder lassen Sie beide leer, um vorhandene Admin-Benutzer zu verwenden',
  2384. passwordsDoNotMatch: 'Passwörter stimmen nicht überein',
  2385. passwordTooShort: 'Passwort muss mindestens 6 Zeichen lang sein',
  2386. },
  2387. },
  2388. // Password change
  2389. changePassword: {
  2390. title: 'Passwort ändern',
  2391. currentPassword: 'Aktuelles Passwort',
  2392. currentPasswordPlaceholder: 'Aktuelles Passwort eingeben',
  2393. newPassword: 'Neues Passwort',
  2394. newPasswordPlaceholder: 'Neues Passwort eingeben (min. 6 Zeichen)',
  2395. confirmPassword: 'Neues Passwort bestätigen',
  2396. confirmPasswordPlaceholder: 'Neues Passwort bestätigen',
  2397. passwordsDoNotMatch: 'Passwörter stimmen nicht überein',
  2398. passwordTooShort: 'Passwort muss mindestens 6 Zeichen lang sein',
  2399. changing: 'Wird geändert...',
  2400. success: 'Passwort erfolgreich geändert',
  2401. failed: 'Passwortänderung fehlgeschlagen',
  2402. },
  2403. // Plate detection alert
  2404. plateAlert: {
  2405. title: 'Druck pausiert!',
  2406. message: 'Objekte auf dem Druckbett erkannt. Der Druck wurde automatisch pausiert. Bitte räumen Sie das Druckbett und setzen Sie den Druck fort.',
  2407. understand: 'Verstanden',
  2408. },
  2409. // Camera page
  2410. camera: {
  2411. title: 'Kameraansicht',
  2412. invalidPrinterId: 'Ungültige Drucker-ID',
  2413. live: 'Live',
  2414. snapshot: 'Schnappschuss',
  2415. restartStream: 'Stream neu starten',
  2416. refreshSnapshot: 'Schnappschuss aktualisieren',
  2417. fullscreen: 'Vollbild',
  2418. exitFullscreen: 'Vollbild beenden',
  2419. connectingToCamera: 'Verbinde mit Kamera...',
  2420. capturingSnapshot: 'Schnappschuss wird aufgenommen...',
  2421. connectionLost: 'Verbindung verloren',
  2422. connectionFailed: 'Kameraverbindung fehlgeschlagen',
  2423. reconnecting: 'Neuverbindung in {{countdown}}s... (Versuch {{attempt}}/{{max}})',
  2424. reconnectNow: 'Jetzt verbinden',
  2425. cameraUnavailable: 'Kamera nicht verfügbar',
  2426. cameraUnavailableDesc: 'Stellen Sie sicher, dass der Drucker eingeschaltet und verbunden ist.',
  2427. noCamera: 'Keine Kamera verfügbar',
  2428. retry: 'Erneut versuchen',
  2429. cameraStream: 'Kamera-Stream',
  2430. zoomOut: 'Verkleinern',
  2431. zoomIn: 'Vergrößern',
  2432. resetZoom: 'Zoom zurücksetzen',
  2433. recording: 'Aufnahme',
  2434. startRecording: 'Aufnahme starten',
  2435. stopRecording: 'Aufnahme stoppen',
  2436. chamberLight: 'Kammerbeleuchtung umschalten',
  2437. },
  2438. // Groups management
  2439. groups: {
  2440. title: 'Gruppenverwaltung',
  2441. subtitle: 'Berechtigungsgruppen für Zugriffskontrolle verwalten',
  2442. backToSettings: 'Zurück zu Einstellungen',
  2443. createGroup: 'Gruppe erstellen',
  2444. noPermission: 'Sie haben keine Berechtigung, auf diese Seite zuzugreifen.',
  2445. system: 'System',
  2446. noDescription: 'Keine Beschreibung',
  2447. usersCount: '{{count}} Benutzer',
  2448. permissionsCount: '{{count}} Berechtigungen',
  2449. edit: 'Bearbeiten',
  2450. delete: 'Löschen',
  2451. toast: {
  2452. created: 'Gruppe erfolgreich erstellt',
  2453. updated: 'Gruppe erfolgreich aktualisiert',
  2454. deleted: 'Gruppe erfolgreich gelöscht',
  2455. enterGroupName: 'Bitte geben Sie einen Gruppennamen ein',
  2456. },
  2457. modal: {
  2458. editGroup: 'Gruppe bearbeiten',
  2459. createGroup: 'Gruppe erstellen',
  2460. cancel: 'Abbrechen',
  2461. saving: 'Speichern...',
  2462. creating: 'Erstellen...',
  2463. saveChanges: 'Änderungen speichern',
  2464. },
  2465. form: {
  2466. groupName: 'Gruppenname',
  2467. groupNamePlaceholder: 'Gruppennamen eingeben',
  2468. systemGroupWarning: 'Systemgruppennamen können nicht geändert werden',
  2469. description: 'Beschreibung',
  2470. descriptionPlaceholder: 'Beschreibung eingeben (optional)',
  2471. permissions: 'Berechtigungen ({{count}} ausgewählt)',
  2472. },
  2473. deleteModal: {
  2474. title: 'Gruppe löschen',
  2475. message: 'Sind Sie sicher, dass Sie diese Gruppe löschen möchten? Benutzer in dieser Gruppe verlieren diese Berechtigungen.',
  2476. confirm: 'Gruppe löschen',
  2477. },
  2478. editor: {
  2479. title: 'Gruppe bearbeiten',
  2480. createTitle: 'Gruppe erstellen',
  2481. search: 'Berechtigungen suchen...',
  2482. selectAll: 'Alle auswählen',
  2483. clearAll: 'Alle abwählen',
  2484. permissionsSelected: '{{count}} ausgewählt',
  2485. noResults: 'Keine Berechtigungen entsprechen Ihrer Suche',
  2486. },
  2487. },
  2488. // Users management
  2489. users: {
  2490. title: 'Benutzerverwaltung',
  2491. subtitle: 'Benutzer und deren Zugriff auf Ihre Bambuddy-Instanz verwalten',
  2492. backToSettings: 'Zurück zu Einstellungen',
  2493. createUser: 'Benutzer erstellen',
  2494. noPermission: 'Sie haben keine Berechtigung, auf diese Seite zuzugreifen.',
  2495. admin: 'Admin',
  2496. noGroups: 'Keine Gruppen',
  2497. active: 'Aktiv',
  2498. inactive: 'Inaktiv',
  2499. edit: 'Bearbeiten',
  2500. delete: 'Löschen',
  2501. system: 'System',
  2502. noGroupsAvailable: 'Keine Gruppen verfügbar',
  2503. table: {
  2504. username: 'Benutzername',
  2505. groups: 'Gruppen',
  2506. status: 'Status',
  2507. actions: 'Aktionen',
  2508. },
  2509. toast: {
  2510. created: 'Benutzer erfolgreich erstellt',
  2511. updated: 'Benutzer erfolgreich aktualisiert',
  2512. deleted: 'Benutzer erfolgreich gelöscht',
  2513. fillRequired: 'Bitte füllen Sie alle Pflichtfelder aus',
  2514. passwordsDoNotMatch: 'Passwörter stimmen nicht überein',
  2515. passwordTooShort: 'Passwort muss mindestens 6 Zeichen lang sein',
  2516. },
  2517. modal: {
  2518. createUser: 'Benutzer erstellen',
  2519. editUser: 'Benutzer bearbeiten',
  2520. cancel: 'Abbrechen',
  2521. creating: 'Erstellen...',
  2522. saving: 'Speichern...',
  2523. saveChanges: 'Änderungen speichern',
  2524. advancedAuthSubtitle: 'mit erweiterter Authentifizierung',
  2525. },
  2526. form: {
  2527. username: 'Benutzername',
  2528. usernamePlaceholder: 'Benutzernamen eingeben',
  2529. email: 'E-Mail',
  2530. emailPlaceholder: 'benutzer@beispiel.de',
  2531. password: 'Passwort',
  2532. passwordPlaceholder: 'Passwort eingeben',
  2533. confirmPassword: 'Passwort bestätigen',
  2534. confirmPasswordPlaceholder: 'Passwort bestätigen',
  2535. newPasswordPlaceholder: 'Neues Passwort eingeben',
  2536. confirmNewPasswordPlaceholder: 'Neues Passwort bestätigen',
  2537. leaveBlankToKeep: 'leer lassen, um das aktuelle zu behalten',
  2538. groups: 'Gruppen',
  2539. optional: 'optional',
  2540. autoGeneratedPassword: 'Ein sicheres Passwort wird automatisch generiert und per E-Mail an den Benutzer gesendet.',
  2541. passwordManagedByAdvancedAuth: 'Das Passwort wird durch erweiterte Authentifizierung verwaltet. Verwenden Sie "Passwort zurücksetzen", um ein neues Passwort per E-Mail an den Benutzer zu senden.',
  2542. resetPassword: 'Passwort zurücksetzen',
  2543. resettingPassword: 'Passwort wird zurückgesetzt...',
  2544. },
  2545. deleteModal: {
  2546. title: 'Benutzer löschen',
  2547. message: 'Sind Sie sicher, dass Sie diesen Benutzer löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.',
  2548. confirm: 'Benutzer löschen',
  2549. },
  2550. },
  2551. // Stream overlay
  2552. streamOverlay: {
  2553. title: 'Stream-Overlay',
  2554. invalidPrinterId: 'Ungültige Drucker-ID',
  2555. cameraStream: 'Kamera-Stream',
  2556. progress: 'Fortschritt',
  2557. eta: 'ETA',
  2558. printerIdle: 'Drucker ist inaktiv',
  2559. printerOffline: 'Drucker offline',
  2560. status: {
  2561. printing: 'Druckt',
  2562. paused: 'Pausiert',
  2563. finished: 'Fertig',
  2564. failed: 'Fehlgeschlagen',
  2565. idle: 'Inaktiv',
  2566. unknown: 'Unbekannt',
  2567. },
  2568. },
  2569. // Profiles
  2570. profiles: {
  2571. title: 'Profile',
  2572. subtitle: 'Verwalten Sie Ihre Slicer-Voreinstellungen und Druckvorschub-Kalibrierungen',
  2573. tabs: {
  2574. cloud: 'Cloud-Profile',
  2575. local: 'Lokale Profile',
  2576. kprofiles: 'K-Profile',
  2577. },
  2578. localProfiles: {
  2579. title: 'Lokale Profile',
  2580. subtitle: 'Slicer-Voreinstellungen aus OrcaSlicer importieren und verwalten',
  2581. import: 'Profile importieren',
  2582. importDesc: '.bbscfg-, .bbsflmt-, .orca_filament-, .zip- oder .json-Dateien hier ablegen',
  2583. importing: 'Importiere...',
  2584. search: 'Lokale Voreinstellungen durchsuchen...',
  2585. noPresets: 'Noch keine lokalen Voreinstellungen',
  2586. badge: 'Lokal',
  2587. edit: 'Bearbeiten',
  2588. delete: 'Löschen',
  2589. cancel: 'Abbrechen',
  2590. deleteConfirmTitle: 'Voreinstellung löschen',
  2591. deleteConfirm: 'Möchten Sie diese Voreinstellung wirklich löschen? Dies kann nicht rückgängig gemacht werden.',
  2592. source: 'Quelle',
  2593. inheritsFrom: 'Erbt von',
  2594. filamentType: 'Typ',
  2595. vendor: 'Hersteller',
  2596. compatiblePrinters: 'Drucker',
  2597. nozzleTemp: 'Düsentemperatur',
  2598. cost: 'Kosten',
  2599. density: 'Dichte',
  2600. pressureAdvance: 'Druckvorschub',
  2601. filament: 'Filament',
  2602. process: 'Prozess',
  2603. printer: 'Drucker',
  2604. toast: {
  2605. importSuccess: '{{count}} Voreinstellung(en) importiert',
  2606. importSkipped: '{{count}} Voreinstellung(en) übersprungen (Duplikate)',
  2607. importError: '{{count}} Fehler beim Import',
  2608. deleted: 'Voreinstellung gelöscht',
  2609. updated: 'Voreinstellung aktualisiert',
  2610. },
  2611. },
  2612. connectedAs: 'Verbunden als',
  2613. logout: 'Abmelden',
  2614. noLogoutPermission: 'Sie haben keine Berechtigung zum Abmelden',
  2615. failedToLoad: 'Profile konnten nicht geladen werden',
  2616. retry: 'Erneut versuchen',
  2617. time: {
  2618. justNow: 'Gerade eben',
  2619. minsAgo: 'vor {{count}}m',
  2620. hoursAgo: 'vor {{count}}h',
  2621. daysAgo: 'vor {{count}}d',
  2622. },
  2623. toast: {
  2624. loggedOut: 'Abgemeldet',
  2625. },
  2626. login: {
  2627. title: 'Mit Bambu Cloud verbinden',
  2628. subtitle: 'Synchronisieren Sie Ihre Slicer-Voreinstellungen geräteübergreifend',
  2629. email: 'E-Mail',
  2630. password: 'Passwort',
  2631. region: 'Region',
  2632. regionGlobal: 'Global',
  2633. regionChina: 'China',
  2634. verificationCode: 'Bestätigungscode',
  2635. totpCode: 'Authenticator-Code',
  2636. checkEmail: 'Prüfen Sie Ihre E-Mail ({{email}}) für einen 6-stelligen Code',
  2637. enterTotpHint: 'Geben Sie den 6-stelligen Code aus Ihrer Authenticator-App ein',
  2638. accessToken: 'Zugriffstoken',
  2639. accessTokenHint: 'Fügen Sie Ihr Bambu Lab Zugriffstoken ein (aus Bambu Studio)',
  2640. back: 'Zurück',
  2641. loginButton: 'Anmelden',
  2642. verifyButton: 'Bestätigen',
  2643. setTokenButton: 'Token setzen',
  2644. useToken: 'Stattdessen Zugriffstoken verwenden',
  2645. useEmail: 'Stattdessen mit E-Mail anmelden',
  2646. toast: {
  2647. loggedIn: 'Erfolgreich angemeldet',
  2648. codeSent: 'Bestätigungscode an Ihre E-Mail gesendet',
  2649. enterTotp: 'Geben Sie den Code aus Ihrer Authenticator-App ein',
  2650. tokenSet: 'Token erfolgreich gesetzt',
  2651. },
  2652. },
  2653. presets: {
  2654. myPreset: 'Mein Profil (bearbeitbar)',
  2655. duplicate: 'Duplizieren',
  2656. editable: 'Bearbeitbar',
  2657. failedToLoadDetails: 'Profil-Details konnten nicht geladen werden',
  2658. deleteConfirm: 'Dieses Profil löschen?',
  2659. deleteWarning: '"{{name}}" wird dauerhaft aus Bambu Cloud gelöscht. Dies kann nicht rückgängig gemacht werden.',
  2660. noDuplicatePermission: 'Sie haben keine Berechtigung zum Duplizieren von Profilen',
  2661. noEditPermission: 'Sie haben keine Berechtigung zum Bearbeiten von Profilen',
  2662. noDeletePermission: 'Sie haben keine Berechtigung zum Löschen von Profilen',
  2663. types: {
  2664. filament: 'Filament-Profil',
  2665. printer: 'Drucker-Profil',
  2666. process: 'Prozess-Profil',
  2667. },
  2668. toast: {
  2669. deleted: 'Profil gelöscht',
  2670. created: 'Profil erstellt',
  2671. updated: 'Profil aktualisiert',
  2672. duplicated: 'Profil dupliziert',
  2673. fieldAdded: 'Feld "{{key}}" hinzugefügt',
  2674. exported: 'Profil exportiert',
  2675. },
  2676. baseLabel: 'Basis: {{name}}',
  2677. currentLabel: 'Aktuell: {{name}}',
  2678. newPreset: 'Neues Profil',
  2679. editPreset: 'Profil bearbeiten',
  2680. duplicatePreset: 'Profil duplizieren',
  2681. createNewPreset: 'Neues Profil erstellen',
  2682. customizeSettings: 'Passen Sie die Einstellungen für Ihr neues Profil an',
  2683. compareWithBase: 'Mit Basis-Profil vergleichen',
  2684. compare: 'Vergleichen',
  2685. // CreatePresetModal - Basic Info
  2686. basePreset: 'Basis-Profil',
  2687. selectBasePreset: 'Basis-Profil auswählen...',
  2688. presetName: 'Profilname',
  2689. myCustomPreset: 'Mein eigenes Profil',
  2690. inheritsFrom: 'Erbt von',
  2691. dropJsonToImport: 'JSON zum Importieren ablegen',
  2692. // CreatePresetModal - Tabs
  2693. tabs: {
  2694. common: 'Allgemein',
  2695. allFields: 'Alle Felder',
  2696. },
  2697. // CreatePresetModal - All Fields Tab
  2698. availableFields: 'Verfügbare Felder',
  2699. searchFieldsPlaceholder: 'Felder suchen...',
  2700. noMatchingFields: 'Keine passenden Felder',
  2701. allFieldsAdded: 'Alle Felder hinzugefügt',
  2702. addCustomField: 'Eigenes Feld hinzufügen',
  2703. yourOverrides: 'Ihre Überschreibungen',
  2704. noOverridesYet: 'Noch keine Überschreibungen',
  2705. clickFieldsToAdd: 'Klicken Sie links auf Felder, um sie hinzuzufügen',
  2706. saveAsTemplate: 'Als Vorlage speichern',
  2707. jsonTip: 'Tipp: Ziehen Sie eine .json-Datei auf dieses Fenster, um Einstellungen zu importieren',
  2708. },
  2709. cloudView: {
  2710. searchPlaceholder: 'Profile suchen...',
  2711. templates: 'Vorlagen',
  2712. refresh: 'Aktualisieren',
  2713. newPreset: 'Neues Profil',
  2714. clearFilters: 'Filter zurücksetzen',
  2715. // Compare mode
  2716. compareMode: 'Vergleichsmodus',
  2717. selectAnotherPreset: 'Wählen Sie ein weiteres {{type}}-Profil',
  2718. clickTwoPresets: 'Klicken Sie auf zwei Profile des gleichen Typs zum Vergleichen',
  2719. selectFirst: '1. Erstes auswählen',
  2720. selectSecond: '2. Zweites auswählen',
  2721. compareNow: 'Jetzt vergleichen',
  2722. // Status row
  2723. lastSynced: 'Zuletzt synchronisiert:',
  2724. showingCount: '{{showing}} von {{total}} Profilen',
  2725. noPresetsFound: 'Keine Profile gefunden',
  2726. // Column headers
  2727. columns: {
  2728. filament: 'Filament',
  2729. process: 'Prozess',
  2730. printer: 'Drucker',
  2731. },
  2732. noFilamentPresets: 'Keine Filament-Profile',
  2733. noProcessPresets: 'Keine Prozess-Profile',
  2734. noPrinterPresets: 'Keine Drucker-Profile',
  2735. // Filters
  2736. filters: {
  2737. type: 'Typ',
  2738. owner: 'Besitzer',
  2739. printer: 'Drucker',
  2740. nozzle: 'Düse',
  2741. filament: 'Filament',
  2742. layer: 'Schicht',
  2743. all: 'Alle',
  2744. myPresets: 'Meine Profile',
  2745. builtIn: 'Voreingestellt',
  2746. process: 'Prozess',
  2747. },
  2748. // Permissions
  2749. noTemplatesPermission: 'Sie haben keine Berechtigung, Vorlagen zu verwalten',
  2750. noRefreshPermission: 'Sie haben keine Berechtigung, Profile zu aktualisieren',
  2751. noCreatePermission: 'Sie haben keine Berechtigung, Profile zu erstellen',
  2752. },
  2753. templates: {
  2754. title: 'Schnellvorlagen',
  2755. noTemplates: 'Noch keine Vorlagen',
  2756. createFirst: 'Erstellen Sie Vorlagen aus dem Preset-Editor',
  2757. typeFilter: 'Typ:',
  2758. deleteTitle: 'Vorlage löschen',
  2759. deleteWarning: 'Diese Aktion kann nicht rückgängig gemacht werden',
  2760. deleteConfirm: 'Möchten Sie "{{name}}" wirklich löschen?',
  2761. namePlaceholder: 'Vorlagenname',
  2762. descriptionPlaceholder: 'Beschreibung',
  2763. settingsJson: 'Einstellungen (JSON)',
  2764. fieldsCount: '{{count}} Felder',
  2765. shownInModals: 'In Dialogen angezeigt',
  2766. hiddenInModals: 'In Dialogen ausgeblendet',
  2767. apply: 'Anwenden',
  2768. toast: {
  2769. deleted: 'Vorlage gelöscht',
  2770. updated: 'Vorlage aktualisiert',
  2771. created: 'Vorlage erstellt',
  2772. applied: 'Vorlage angewendet',
  2773. },
  2774. },
  2775. },
  2776. // Support/Debug
  2777. support: {
  2778. debugLoggingActive: 'Debug-Protokollierung ist aktiv',
  2779. manageLogs: 'Verwalten',
  2780. collectItem7: 'Drucker-Verbindungsstatus und Firmware-Versionen',
  2781. collectItem8: 'Integrationsstatus (Spoolman, MQTT, HA)',
  2782. collectItem9: 'Netzwerkschnittstellen (nur Subnetze)',
  2783. collectItem10: 'Python-Paketversionen',
  2784. collectItem11: 'Datenbankzustandsprüfungen',
  2785. collectItem12: 'Docker-Umgebungsdetails',
  2786. },
  2787. // File manager
  2788. fileManager: {
  2789. title: 'Dateimanager',
  2790. subtitle: 'Organisieren und verwalten Sie Ihre Druckdateien',
  2791. uploadFiles: 'Dateien hochladen',
  2792. newFolder: 'Neuer Ordner',
  2793. folderName: 'Ordnername',
  2794. folderNamePlaceholder: 'z.B. Funktionsteile',
  2795. renameFile: 'Datei umbenennen',
  2796. renameFolder: 'Ordner umbenennen',
  2797. moveFiles: '{{count}} Datei(en) verschieben',
  2798. rootNoFolder: 'Stammverzeichnis (Kein Ordner)',
  2799. current: 'aktuell',
  2800. linkFolder: 'Ordner verknüpfen',
  2801. linkFolderDescription: '"{{name}}" mit einem Projekt oder Archiv verknüpfen für schnellen Zugriff.',
  2802. project: 'Projekt',
  2803. archive: 'Archiv',
  2804. noProjectsFound: 'Keine Projekte gefunden',
  2805. noArchivesFound: 'Keine Archive gefunden',
  2806. unlink: 'Verknüpfung aufheben',
  2807. link: 'Verknüpfen',
  2808. dragDropFiles: 'Dateien hierher ziehen',
  2809. dropFilesHere: 'Dateien hier ablegen',
  2810. orClickToBrowse: 'oder klicken zum Durchsuchen',
  2811. allFileTypesSupported: 'Alle Dateitypen werden unterstützt. ZIP-Dateien werden extrahiert.',
  2812. zipFilesDetected: 'ZIP-Dateien erkannt',
  2813. zipExtractOptions: 'ZIP-Dateien werden extrahiert. Wählen Sie, wie die Ordnerstruktur behandelt werden soll:',
  2814. preserveZipStructure: 'Ordnerstruktur aus ZIP beibehalten',
  2815. createFolderFromZip: 'Ordner aus ZIP-Dateiname erstellen',
  2816. stlThumbnailGeneration: 'STL-Vorschaubildgenerierung',
  2817. zipMayContainStl: 'ZIP-Dateien können STL-Dateien enthalten. Vorschaubilder können während der Extraktion generiert werden.',
  2818. thumbnailsCanBeGenerated: 'Vorschaubilder können für STL-Dateien generiert werden. Große Modelle benötigen möglicherweise mehr Zeit.',
  2819. generateThumbnailsForStl: 'Vorschaubilder für STL-Dateien generieren',
  2820. threemfDetected: '3MF-Dateien erkannt',
  2821. threemfExtractionInfo: 'Druckermodell, Material, Farbe und Druckeinstellungen werden automatisch aus 3MF-Dateien extrahiert.',
  2822. willBeExtracted: 'Wird extrahiert',
  2823. filesExtracted: '{{count}} Dateien extrahiert',
  2824. uploadComplete: 'Upload abgeschlossen: {{succeeded}} erfolgreich',
  2825. uploadFailed: 'Hochladen fehlgeschlagen',
  2826. zipFilesFailed: '{{count}} Dateien fehlgeschlagen',
  2827. uploading: 'Hochladen...',
  2828. changeLink: 'Verknüpfung ändern...',
  2829. linkTo: 'Verknüpfen mit...',
  2830. linkToProjectOrArchive: 'Mit Projekt oder Archiv verknüpfen',
  2831. addToQueue: 'Zur Warteschlange',
  2832. schedulePrint: 'Planen',
  2833. generateThumbnail: 'Vorschaubild generieren',
  2834. generateThumbnails: 'Vorschaubilder generieren',
  2835. generateThumbnailsForMissing: 'Vorschaubilder für STL-Dateien ohne Vorschau generieren',
  2836. gridView: 'Rasteransicht',
  2837. listView: 'Listenansicht',
  2838. lowDiskSpaceWarning: 'Warnung: Wenig Speicherplatz',
  2839. lowDiskSpaceDetails: 'Nur {{free}} frei von {{total}} gesamt. Schwellenwert ist auf {{threshold}} GB eingestellt.',
  2840. files: 'Dateien',
  2841. folders: 'Ordner',
  2842. size: 'Größe',
  2843. free: 'Frei',
  2844. allFiles: 'Alle Dateien',
  2845. wrap: 'Umbrechen',
  2846. enableTextWrapping: 'Textumbruch aktivieren',
  2847. disableTextWrapping: 'Textumbruch deaktivieren',
  2848. dragToResizeTooltip: 'Ziehen zum Ändern der Größe, Doppelklick zum Zurücksetzen',
  2849. searchFiles: 'Dateien suchen...',
  2850. allTypes: 'Alle Typen',
  2851. prints: 'Drucke',
  2852. ascending: 'Aufsteigend',
  2853. descending: 'Absteigend',
  2854. resultsCount: '{{showing}} von {{total}} Dateien',
  2855. selectAll: 'Alle auswählen',
  2856. deselectAll: 'Auswahl aufheben',
  2857. selected: '{{count}} ausgewählt',
  2858. adding: 'Hinzufügen...',
  2859. loadingFiles: 'Dateien werden geladen...',
  2860. folderIsEmpty: 'Ordner ist leer',
  2861. noFilesYet: 'Noch keine Dateien',
  2862. folderEmptyDescription: 'Laden Sie Dateien hoch oder verschieben Sie Dateien in diesen Ordner.',
  2863. noFilesDescription: 'Laden Sie Dateien hoch, um Ihre Druckdateien zu organisieren.',
  2864. noMatchingFiles: 'Keine passenden Dateien',
  2865. noMatchingFilesDescription: 'Keine Dateien entsprechen Ihren aktuellen Such- oder Filterkriterien.',
  2866. clearFilters: 'Filter zurücksetzen',
  2867. printedCount: '{{count}}x gedruckt',
  2868. uploadedBy: 'Hochgeladen von',
  2869. deleteFolder: 'Ordner löschen',
  2870. deleteFile: 'Datei löschen',
  2871. deleteFilesCount: '{{count}} Dateien löschen',
  2872. deleteFolderConfirm: 'Möchten Sie diesen Ordner wirklich löschen? Alle Dateien darin werden ebenfalls gelöscht.',
  2873. deleteFileConfirm: 'Möchten Sie diese Datei wirklich löschen?',
  2874. deleteFilesConfirm: 'Möchten Sie {{count}} ausgewählte Dateien wirklich löschen? Diese Aktion kann nicht rückgängig gemacht werden.',
  2875. deleting: 'Wird gelöscht...',
  2876. noPermissionRenameFolder: 'Sie haben keine Berechtigung, Ordner umzubenennen',
  2877. noPermissionLinkFolder: 'Sie haben keine Berechtigung, Ordner zu verknüpfen',
  2878. noPermissionDeleteFolder: 'Sie haben keine Berechtigung, Ordner zu löschen',
  2879. noPermissionPrint: 'Sie haben keine Berechtigung zum Drucken',
  2880. noPermissionAddToQueue: 'Sie haben keine Berechtigung, zur Warteschlange hinzuzufügen',
  2881. noPermissionDownload: 'Sie haben keine Berechtigung, Dateien herunterzuladen',
  2882. noPermissionRenameFile: 'Sie haben keine Berechtigung, diese Datei umzubenennen',
  2883. noPermissionGenerateThumbnail: 'Sie haben keine Berechtigung, Vorschaubilder zu generieren',
  2884. noPermissionDeleteFile: 'Sie haben keine Berechtigung, diese Datei zu löschen',
  2885. noPermissionCreateFolder: 'Sie haben keine Berechtigung, Ordner zu erstellen',
  2886. noPermissionUpload: 'Sie haben keine Berechtigung, Dateien hochzuladen',
  2887. noPermissionMoveFiles: 'Sie haben keine Berechtigung, Dateien zu verschieben',
  2888. noPermissionDeleteFiles: 'Sie haben keine Berechtigung, Dateien zu löschen',
  2889. // External folder
  2890. linkExternal: 'Extern verknüpfen',
  2891. linkExternalFolder: 'Externen Ordner verknüpfen',
  2892. linkExternalFolderDescription: 'Ein Host-Verzeichnis (NAS, USB, Netzlaufwerk) in den Dateimanager einbinden. Dateien werden nicht kopiert — sie werden direkt vom Originalpfad gelesen.',
  2893. externalFolderNamePlaceholder: 'z.B. NAS-Drucke',
  2894. externalPath: 'Host-Pfad',
  2895. externalPathHelp: 'Absoluter Pfad zum Verzeichnis auf dem Docker-Host. Muss als Bind-Mount in den Container eingebunden sein.',
  2896. readOnly: 'Nur Lesen',
  2897. readOnlyHelp: 'verhindert Uploads und Löschungen',
  2898. showHiddenFiles: 'Versteckte Dateien anzeigen (Punkt-Dateien)',
  2899. externalFolder: 'Externer Ordner',
  2900. scanFolder: 'Scannen',
  2901. toast: {
  2902. folderCreated: 'Ordner erstellt',
  2903. folderDeleted: 'Ordner gelöscht',
  2904. fileDeleted: 'Datei gelöscht',
  2905. filesDeleted: '{{count}} Dateien gelöscht',
  2906. filesMoved: 'Dateien verschoben',
  2907. folderLinked: 'Ordner verknüpft',
  2908. folderUnlinked: 'Ordnerverknüpfung aufgehoben',
  2909. externalFolderLinked: 'Externer Ordner verknüpft und gescannt',
  2910. folderScanned: 'Scan abgeschlossen: {{added}} hinzugefügt, {{removed}} entfernt',
  2911. addedToQueue: '{{count}} Datei(en) zur Warteschlange hinzugefügt',
  2912. addedToQueuePartial: '{{added}} Datei(en) hinzugefügt, {{failed}} fehlgeschlagen',
  2913. failedToAddToQueue: 'Fehler beim Hinzufügen: {{error}}',
  2914. fileRenamed: 'Datei umbenannt',
  2915. folderRenamed: 'Ordner umbenannt',
  2916. thumbnailsGenerated: '{{count}} Vorschaubild(er) generiert',
  2917. thumbnailsGeneratedPartial: '{{succeeded}} Vorschaubild(er) generiert, {{failed}} fehlgeschlagen',
  2918. noStlMissingThumbnails: 'Keine STL-Dateien ohne Vorschaubild',
  2919. failedToGenerateThumbnails: 'Fehler beim Generieren der Vorschaubilder: {{error}}',
  2920. thumbnailGenerated: 'Vorschaubild generiert',
  2921. failedToGenerateThumbnail: 'Fehler beim Generieren des Vorschaubildes: {{error}}',
  2922. },
  2923. },
  2924. // Projects
  2925. projects: {
  2926. title: 'Projekte',
  2927. subtitle: 'Organisieren und verfolgen Sie Ihre 3D-Druckprojekte',
  2928. newProject: 'Neues Projekt',
  2929. editProject: 'Projekt bearbeiten',
  2930. deleteProject: 'Projekt löschen',
  2931. projectName: 'Projektname',
  2932. description: 'Beschreibung',
  2933. noProjects: 'Noch keine Projekte',
  2934. noProjectsFiltered: 'Keine {{status}} Projekte',
  2935. noProjectsFilteredHelp: 'Sie haben keine {{status}} Projekte. Projekte werden hier angezeigt, wenn sich ihr Status ändert.',
  2936. createFirst: 'Erstellen Sie Ihr erstes Projekt, um verwandte Drucke zu organisieren, den Fortschritt zu verfolgen und Ihre Builds zu verwalten.',
  2937. createFirstButton: 'Erstes Projekt erstellen',
  2938. create: 'Erstellen',
  2939. files: 'Dateien',
  2940. prints: 'Drucke',
  2941. plates: 'Platten',
  2942. parts: 'Teile',
  2943. lastModified: 'Zuletzt geändert',
  2944. deleteConfirm: 'Möchten Sie dieses Projekt wirklich löschen? Archive und Warteschlangenelemente werden getrennt, aber nicht gelöscht.',
  2945. addFiles: 'Dateien hinzufügen',
  2946. removeFile: 'Datei entfernen',
  2947. viewDetails: 'Details anzeigen',
  2948. // Modal fields
  2949. namePlaceholder: 'z.B. Voron 2.4 Build',
  2950. descriptionPlaceholder: 'Optionale Beschreibung...',
  2951. color: 'Farbe',
  2952. targetPlates: 'Ziel-Platten',
  2953. targetPlatesPlaceholder: 'z.B. 25',
  2954. targetPlatesHelp: 'Anzahl der Druckaufträge',
  2955. targetParts: 'Ziel-Teile',
  2956. targetPartsPlaceholder: 'z.B. 150',
  2957. targetPartsHelp: 'Benötigte Objekte insgesamt',
  2958. tagsLabel: 'Tags (kommagetrennt)',
  2959. tagsPlaceholder: 'z.B. voron, funktional, geschenk',
  2960. dueDate: 'Fälligkeitsdatum',
  2961. priority: 'Priorität',
  2962. priorityLow: 'Niedrig',
  2963. priorityNormal: 'Normal',
  2964. priorityHigh: 'Hoch',
  2965. priorityUrgent: 'Dringend',
  2966. // Status
  2967. statusActive: 'Aktiv',
  2968. statusCompleted: 'Abgeschlossen',
  2969. statusArchived: 'Archiviert',
  2970. done: 'Fertig',
  2971. completed: 'abgeschlossen',
  2972. failed: 'fehlgeschlagen',
  2973. inQueue: 'in Warteschlange',
  2974. noPrintsYet: 'Noch keine Drucke',
  2975. // Footer stats
  2976. printJobs: 'Druckaufträge (Platten)',
  2977. partsPrinted: 'Gedruckte Teile',
  2978. failedParts: 'Fehlgeschlagene Teile',
  2979. // Actions
  2980. import: 'Importieren',
  2981. export: 'Exportieren',
  2982. importProject: 'Projekt importieren',
  2983. exportAll: 'Alle Projekte exportieren',
  2984. loading: 'Projekte werden geladen...',
  2985. // Permissions
  2986. noEditPermission: 'Sie haben keine Berechtigung, Projekte zu bearbeiten',
  2987. noDeletePermission: 'Sie haben keine Berechtigung, Projekte zu löschen',
  2988. noCreatePermission: 'Sie haben keine Berechtigung, Projekte zu erstellen',
  2989. noImportPermission: 'Sie haben keine Berechtigung, Projekte zu importieren',
  2990. noExportPermission: 'Sie haben keine Berechtigung, Projekte zu exportieren',
  2991. // Toast
  2992. toast: {
  2993. created: 'Projekt erstellt',
  2994. updated: 'Projekt aktualisiert',
  2995. deleted: 'Projekt gelöscht',
  2996. imported: 'Projekt importiert',
  2997. multipleImported: '{{count}} Projekte importiert',
  2998. importFailed: 'Import fehlgeschlagen',
  2999. exported: 'Projekte exportiert (nur Metadaten)',
  3000. },
  3001. },
  3002. // Project detail page
  3003. projectDetail: {
  3004. notFound: 'Projekt nicht gefunden',
  3005. backToProjects: 'Zurück zu Projekten',
  3006. export: 'Exportieren',
  3007. exportProject: 'Projekt exportieren',
  3008. noExportPermission: 'Sie haben keine Berechtigung, Projekte zu exportieren',
  3009. noEditPermission: 'Sie haben keine Berechtigung, Projekte zu bearbeiten',
  3010. partOf: 'Teil von:',
  3011. priorityLabel: 'Priorität:',
  3012. noPrints: 'Noch keine Drucke in diesem Projekt',
  3013. status: {
  3014. active: 'Aktiv',
  3015. completed: 'Abgeschlossen',
  3016. archived: 'Archiviert',
  3017. },
  3018. priority: {
  3019. low: 'Niedrig',
  3020. normal: 'Normal',
  3021. high: 'Hoch',
  3022. urgent: 'Dringend',
  3023. },
  3024. dueDate: {
  3025. overdue: 'Überfällig',
  3026. today: 'Heute fällig',
  3027. daysLeft: '{{count}} Tage übrig',
  3028. },
  3029. progress: {
  3030. platesProgress: 'Platten-Fortschritt',
  3031. partsProgress: 'Teile-Fortschritt',
  3032. printJobs: 'Druckaufträge',
  3033. parts: 'Teile',
  3034. percentComplete: '{{percent}}% abgeschlossen',
  3035. remaining: '{{count}} verbleibend',
  3036. },
  3037. stats: {
  3038. printJobs: 'Druckaufträge',
  3039. total: 'gesamt',
  3040. failed: '{{count}} fehlgeschlagen',
  3041. partsPrinted: '{{count}} Teile gedruckt',
  3042. printTime: 'Druckzeit',
  3043. filamentUsed: 'Filament verbraucht',
  3044. },
  3045. cost: {
  3046. title: 'Kostenverfolgung',
  3047. filamentCost: 'Filamentkosten',
  3048. energy: 'Energie',
  3049. totalCost: 'Gesamtkosten',
  3050. total: 'Gesamt',
  3051. includesBom: 'inkl. Stückliste',
  3052. budget: 'Budget',
  3053. remaining: 'Verbleibend',
  3054. },
  3055. subProjects: {
  3056. title: 'Unterprojekte ({{count}})',
  3057. },
  3058. notes: {
  3059. title: 'Notizen',
  3060. noEditPermission: 'Sie haben keine Berechtigung, Notizen zu bearbeiten',
  3061. placeholder: 'Notizen zu diesem Projekt hinzufügen...',
  3062. empty: 'Noch keine Notizen. Klicken Sie auf Bearbeiten, um Notizen hinzuzufügen.',
  3063. },
  3064. files: {
  3065. title: 'Dateien',
  3066. linkFolders: 'Ordner aus dem Dateimanager verknüpfen',
  3067. forQuickAccess: 'für schnellen Zugriff auf dieses Projekt.',
  3068. fileCount: '{{count}} Datei(en)',
  3069. empty: 'Keine Ordner verknüpft. Gehen Sie zum Dateimanager und verknüpfen Sie einen Ordner mit diesem Projekt.',
  3070. noFiles: 'Keine Dateien in diesem Ordner.',
  3071. print: 'Jetzt drucken',
  3072. addToQueue: 'Zur Warteschlange',
  3073. },
  3074. bom: {
  3075. title: 'Stückliste',
  3076. acquired: '{{completed}}/{{total}} beschafft',
  3077. showAll: 'Alle anzeigen',
  3078. hideDone: 'Erledigte ausblenden',
  3079. addPart: 'Teil hinzufügen',
  3080. noAddPermission: 'Sie haben keine Berechtigung, Teile hinzuzufügen',
  3081. partNamePlaceholder: 'Teilename (z.B. M3x8 Schrauben)',
  3082. partName: 'Teilename',
  3083. qty: 'Menge',
  3084. price: 'Preis ({{currency}})',
  3085. sourcingUrlPlaceholder: 'Bezugsquelle-URL (optional)',
  3086. remarksPlaceholder: 'Bemerkungen (optional)',
  3087. deletePart: 'Teil löschen',
  3088. deleteConfirm: 'Möchten Sie "{{name}}" wirklich löschen?',
  3089. noUpdatePermission: 'Sie haben keine Berechtigung, Teile zu aktualisieren',
  3090. noEditPermission: 'Sie haben keine Berechtigung, Teile zu bearbeiten',
  3091. noDeletePermission: 'Sie haben keine Berechtigung, Teile zu löschen',
  3092. totalCost: 'Gesamtkosten:',
  3093. empty: 'Keine Teile in der Stückliste. Fügen Sie Hardware, Elektronik oder andere Komponenten hinzu, um zu verfolgen, was beschafft werden muss.',
  3094. },
  3095. timeline: {
  3096. title: 'Aktivitätsverlauf',
  3097. empty: 'Noch keine Aktivität.',
  3098. },
  3099. template: {
  3100. saveAsTemplate: 'Als Vorlage speichern',
  3101. noCreatePermission: 'Sie haben keine Berechtigung, Vorlagen zu erstellen',
  3102. },
  3103. queue: {
  3104. title: 'Warteschlange',
  3105. viewAll: 'Alle anzeigen',
  3106. printing: '{{count}} druckend',
  3107. queued: '{{count}} in Warteschlange',
  3108. },
  3109. prints: {
  3110. title: 'Drucke ({{count}})',
  3111. },
  3112. toast: {
  3113. projectUpdated: 'Projekt aktualisiert',
  3114. partAdded: 'Teil hinzugefügt',
  3115. partRemoved: 'Teil entfernt',
  3116. exportFailed: 'Export fehlgeschlagen',
  3117. projectExported: 'Projekt exportiert',
  3118. templateCreated: 'Vorlage erstellt',
  3119. },
  3120. },
  3121. // System info
  3122. system: {
  3123. title: 'Systeminformationen',
  3124. version: 'Version',
  3125. uptime: 'Laufzeit',
  3126. cpuUsage: 'CPU-Auslastung',
  3127. memoryUsage: 'Speicherauslastung',
  3128. diskUsage: 'Festplattenauslastung',
  3129. networkInfo: 'Netzwerkinformationen',
  3130. logs: 'Protokolle',
  3131. debugMode: 'Debug-Modus',
  3132. enableDebug: 'Debug-Protokollierung aktivieren',
  3133. disableDebug: 'Debug-Protokollierung deaktivieren',
  3134. downloadLogs: 'Protokolle herunterladen',
  3135. clearLogs: 'Protokolle löschen',
  3136. dockerInfo: 'Docker-Info',
  3137. containerName: 'Container-Name',
  3138. imageName: 'Image-Name',
  3139. platform: 'Plattform',
  3140. architecture: 'Architektur',
  3141. },
  3142. // Library (K Profiles)
  3143. library: {
  3144. title: 'Filament-Bibliothek',
  3145. addFilament: 'Filament hinzufügen',
  3146. editFilament: 'Filament bearbeiten',
  3147. deleteFilament: 'Filament löschen',
  3148. vendor: 'Hersteller',
  3149. material: 'Material',
  3150. color: 'Farbe',
  3151. kFactor: 'K-Faktor',
  3152. temperature: 'Temperatur',
  3153. noFilaments: 'Keine Filamente in der Bibliothek',
  3154. deleteConfirm: 'Möchten Sie dieses Filament wirklich löschen?',
  3155. importFromPrinter: 'Vom Drucker importieren',
  3156. exportToFile: 'In Datei exportieren',
  3157. },
  3158. // Spoolman
  3159. spoolman: {
  3160. title: 'Spoolman-Integration',
  3161. enabled: 'Spoolman aktiviert',
  3162. url: 'Spoolman URL',
  3163. connected: 'Verbunden',
  3164. disconnected: 'Nicht verbunden',
  3165. testConnection: 'Verbindung testen',
  3166. sync: 'Synchronisieren',
  3167. syncing: 'Synchronisiert...',
  3168. lastSync: 'Letzte Synchronisierung',
  3169. linkToSpoolman: 'Mit Spoolman verknüpfen',
  3170. openInSpoolman: 'In Spoolman öffnen',
  3171. unlinkSpool: 'Spule trennen',
  3172. unlinkConfirmTitle: 'Spule entkoppeln?',
  3173. unlinkConfirmMessage: 'Dadurch wird die Spule von Spoolman getrennt. Die Spulendaten in Spoolman bleiben unverändert.',
  3174. selectSpool: 'Spule auswählen',
  3175. noUnlinkedSpools: 'Keine nicht verknüpften Spulen verfügbar',
  3176. linkSuccess: 'Spule erfolgreich mit Spoolman verknüpft',
  3177. linkFailed: 'Verknüpfung mit Spoolman fehlgeschlagen',
  3178. unlinkSuccess: 'Spule erfolgreich von Spoolman getrennt',
  3179. unlinkFailed: 'Trennen der Spule von Spoolman fehlgeschlagen',
  3180. spoolId: 'Spulen-ID',
  3181. fillSourceLabel: '(Spoolman)',
  3182. weight: 'Gewicht',
  3183. remaining: 'Verbleibend',
  3184. disableWeightSync: 'AMS-Gewichtsschätzung deaktivieren',
  3185. 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.',
  3186. reportPartialUsage: 'Teilverbrauch bei fehlgeschlagenen Drucken melden',
  3187. reportPartialUsageDesc: 'Wenn ein Druck fehlschlägt oder abgebrochen wird, den geschätzten Filamentverbrauch bis zu diesem Zeitpunkt basierend auf dem Schichtfortschritt melden.',
  3188. },
  3189. // Inventar
  3190. inventory: {
  3191. title: 'Spulen-Inventar',
  3192. addSpool: 'Spule hinzufügen',
  3193. editSpool: 'Spule bearbeiten',
  3194. material: 'Material',
  3195. selectMaterial: 'Material auswählen...',
  3196. subtype: 'Untertyp',
  3197. brand: 'Marke',
  3198. searchBrand: 'Marke suchen...',
  3199. useCustomBrand: '"{{brand}}" verwenden',
  3200. useCustomMaterial: 'Benutzerdefiniertes Material verwenden: {{material}}',
  3201. colorName: 'Farbname',
  3202. colorNamePlaceholder: 'Jade White, Fire Red...',
  3203. color: 'Farbe',
  3204. hexColor: 'Hex-Farbe',
  3205. pickColor: 'Benutzerdefinierte Farbe wählen',
  3206. labelWeight: 'Nenngewicht',
  3207. coreWeight: 'Leergewicht der Spule',
  3208. searchSpoolWeight: 'Spulengewicht suchen...',
  3209. weightUsed: 'Verbraucht',
  3210. currentWeight: 'Restgewicht',
  3211. measuredWeight: 'Gemessenes Gewicht',
  3212. spoolName: 'Spule',
  3213. costPerKg: 'Kosten pro kg',
  3214. measuredWeightError: 'Das gemessene Gewicht muss zwischen {{min}}g und {{max}}g liegen.',
  3215. slicerFilament: 'Slicer-Filament',
  3216. slicerFilamentName: 'Slicer-Preset-Name',
  3217. slicerPreset: 'Slicer-Preset',
  3218. searchPresets: 'Filament-Presets suchen...',
  3219. selectedPreset: 'Ausgewählt',
  3220. noPresetsFound: 'Keine Presets gefunden',
  3221. tempOverrides: 'Temperatur-Überschreibungen',
  3222. note: 'Notiz',
  3223. notePlaceholder: 'Zusätzliche Notizen zu dieser Spule...',
  3224. archive: 'Archivieren',
  3225. restore: 'Wiederherstellen',
  3226. noSpools: 'Noch keine Spulen. Fügen Sie Ihre erste Spule hinzu.',
  3227. noManualSpools: 'Keine manuell hinzugefügten Spulen verfügbar. Fügen Sie zuerst eine Spule zum Inventar hinzu.',
  3228. kProfiles: 'K-Profile',
  3229. addKProfile: 'K-Profil hinzufügen',
  3230. assignSpool: 'Spule zuweisen',
  3231. unassignSpool: 'Zuweisung aufheben',
  3232. assignSuccess: 'Spule zugewiesen und AMS-Slot konfiguriert',
  3233. assignFailed: 'Spulenzuweisung fehlgeschlagen',
  3234. selectSpool: 'Wählen Sie eine Spule für diesen Slot',
  3235. assigned: 'Zugewiesen',
  3236. assigning: 'Wird zugewiesen...',
  3237. searchSpools: 'Spulen suchen...',
  3238. showAllSpools: 'Alle Spulen anzeigen',
  3239. allMaterials: 'Alle Materialien',
  3240. filterByBrand: 'Nach Marke filtern...',
  3241. showArchived: 'Archivierte anzeigen',
  3242. quickAdd: 'Schnellerfassung (Lager)',
  3243. quantity: 'Menge',
  3244. stock: 'Lager',
  3245. configured: 'Konfiguriert',
  3246. spoolsCreated: '{{count}} Spulen erstellt',
  3247. spoolCreated: 'Spule erstellt',
  3248. spoolUpdated: 'Spule aktualisiert',
  3249. spoolDeleted: 'Spule gelöscht',
  3250. spoolArchived: 'Spule archiviert',
  3251. spoolRestored: 'Spule wiederhergestellt',
  3252. deleteConfirm: 'Möchten Sie diese Spule wirklich löschen? Dies kann nicht rückgängig gemacht werden.',
  3253. archiveConfirm: 'Möchten Sie diese Spule wirklich archivieren?',
  3254. advancedSettings: 'Erweiterte Einstellungen',
  3255. filamentInfoTab: 'Filament-Info',
  3256. paProfileTab: 'PA-Profil',
  3257. filamentInfo: 'Filament',
  3258. additional: 'Zusätzlich',
  3259. loadingPresets: 'Cloud-Presets werden geladen...',
  3260. cloudConnected: 'Cloud verbunden',
  3261. cloudNotConnected: 'Cloud nicht verbunden (Standardwerte)',
  3262. recentColors: 'Zuletzt',
  3263. searchColors: 'Farben suchen...',
  3264. searchResults: 'Suchergebnisse',
  3265. allColors: 'Alle Farben',
  3266. commonColors: 'Häufige Farben',
  3267. showLess: 'Weniger',
  3268. showAll: 'Alle',
  3269. noColorsFound: 'Keine Farben gefunden',
  3270. noResults: 'Keine Ergebnisse',
  3271. selectMaterialFirst: 'Bitte zuerst ein Material im Filament-Info Tab auswählen.',
  3272. noPrintersConfigured: 'Keine Drucker konfiguriert. Fügen Sie Drucker hinzu.',
  3273. matchingFilter: 'Filter',
  3274. anyBrand: 'Jede Marke',
  3275. anyVariant: 'Jede Variante',
  3276. autoSelect: 'Auto-Auswahl',
  3277. matches: 'Treffer',
  3278. match: 'Treffer',
  3279. noMatches: 'Keine Treffer',
  3280. connected: 'Verbunden',
  3281. offline: 'Offline',
  3282. printerOffline: 'Drucker ist offline. Verbinden Sie ihn, um Kalibrierungsprofile anzuzeigen.',
  3283. noKProfilesMatch: 'Keine K-Profile stimmen mit dem gewählten Filament überein.',
  3284. leftNozzle: 'Linke Düse',
  3285. rightNozzle: 'Rechte Düse',
  3286. profilesSelected: 'Kalibrierungsprofil(e) ausgewählt',
  3287. // Stats & enhanced table
  3288. totalInventory: 'Gesamtbestand',
  3289. totalConsumed: 'Gesamtverbrauch',
  3290. byMaterial: 'Nach Material',
  3291. inPrinter: 'Im Drucker',
  3292. lowStock: 'Niedriger Bestand',
  3293. sinceTracking: 'Seit Beginn der Erfassung',
  3294. loadedInAms: 'Im AMS/Ext geladen',
  3295. remaining: 'Verbleibend',
  3296. weightCheck: 'Gewichtskontrolle',
  3297. lastWeighed: 'Zuletzt gewogen',
  3298. neverWeighed: 'Nie gewogen',
  3299. search: 'Spulen suchen...',
  3300. showing: 'Zeige',
  3301. to: 'bis',
  3302. of: 'von',
  3303. show: 'Zeige',
  3304. spools: 'Spulen',
  3305. spool: 'Spule',
  3306. page: 'Seite',
  3307. noSpoolsMatch: 'Keine Ergebnisse',
  3308. noSpoolsMatchDesc: 'Versuchen Sie, Ihre Suche oder Filter anzupassen.',
  3309. active: 'Aktiv',
  3310. archived: 'Archiviert',
  3311. all: 'Alle',
  3312. used: 'Verwendet',
  3313. new: 'Neu',
  3314. clearFilters: 'Filter löschen',
  3315. table: 'Tabelle',
  3316. cards: 'Karten',
  3317. net: 'Netto',
  3318. // Grouping
  3319. groupSimilar: 'Gruppieren',
  3320. groupedSpools: '{{count}} identische Spulen',
  3321. groupedRows: 'Zeilen',
  3322. // Column config
  3323. columns: 'Spalten',
  3324. configureColumns: 'Spalten konfigurieren',
  3325. configureColumnsDesc: 'Ziehen zum Neuordnen oder Pfeile verwenden. Sichtbarkeit mit dem Augensymbol umschalten.',
  3326. visible: 'sichtbar',
  3327. reset: 'Zurücksetzen',
  3328. cancel: 'Abbrechen',
  3329. applyChanges: 'Änderungen anwenden',
  3330. moveUp: 'Nach oben',
  3331. moveDown: 'Nach unten',
  3332. hideColumn: 'Spalte ausblenden',
  3333. showColumn: 'Spalte einblenden',
  3334. // Tag-Verknüpfung
  3335. linkToSpool: 'Mit Spule verknüpfen',
  3336. tagLinked: 'Tag mit Spule verknüpft',
  3337. tagLinkFailed: 'Tag-Verknüpfung fehlgeschlagen',
  3338. tagAlreadyLinked: 'Tag bereits mit anderer Spule verknüpft',
  3339. unknownTag: 'Unbekannter RFID-Tag erkannt',
  3340. // Verbrauchshistorie
  3341. usageHistory: 'Verbrauchshistorie',
  3342. noUsageHistory: 'Noch kein Verbrauch erfasst',
  3343. printName: 'Druckname',
  3344. weightConsumed: 'Verbrauchtes Gewicht',
  3345. clearHistory: 'Löschen',
  3346. historyCleared: 'Verbrauchshistorie gelöscht',
  3347. fillSourceLabel: '(Inv)',
  3348. lowStockThresholdError: 'Der Schwellenwert muss zwischen 0.1 und 99.9 liegen',
  3349. assignMismatchTitle: 'Material stimmt nicht überein',
  3350. assignMismatchMessage: 'Das ausgewählte Spulenmaterial "{{spoolMaterial}}" stimmt nicht mit dem Tray-Material "{{trayMaterial}}" für {{location}} überein. Trotzdem zuweisen?',
  3351. assignMismatchConfirm: 'Trotzdem zuweisen',
  3352. assignPartialMismatchMessage: 'Das Spulenmaterial "{{spoolMaterial}}" ist ähnlich, stimmt aber nicht genau mit "{{trayMaterial}}" in {{location}} überein. Möchten Sie fortfahren?',
  3353. assignProfileMismatchMessage: 'Das Spulenprofil "{{spoolProfile}}" stimmt nicht mit dem Fachprofil "{{trayProfile}}" in {{location}} überein. Möchten Sie fortfahren?',
  3354. },
  3355. // Timelapse
  3356. timelapse: {
  3357. title: 'Zeitraffer',
  3358. create: 'Zeitraffer erstellen',
  3359. download: 'Herunterladen',
  3360. delete: 'Löschen',
  3361. preview: 'Vorschau',
  3362. frameRate: 'Bildrate',
  3363. quality: 'Qualität',
  3364. processing: 'Wird verarbeitet...',
  3365. noTimelapses: 'Keine Zeitraffer verfügbar',
  3366. },
  3367. // AMS
  3368. ams: {
  3369. title: 'AMS',
  3370. slot: 'Slot',
  3371. empty: 'Leer',
  3372. emptySlot: 'Leerer Slot',
  3373. unknown: 'Unbekannt',
  3374. humidity: 'Luftfeuchtigkeit',
  3375. temperature: 'Temperatur',
  3376. filamentType: 'Filamenttyp',
  3377. filamentColor: 'Farbe',
  3378. remaining: 'Verbleibend',
  3379. history: 'AMS-Verlauf',
  3380. noHistory: 'Kein Verlauf verfügbar',
  3381. configureSlot: 'Slot konfigurieren',
  3382. externalSpool: 'Externe Spule',
  3383. profile: 'Profil',
  3384. kFactor: 'K-Faktor',
  3385. fill: 'Füllstand',
  3386. configure: 'Konfigurieren',
  3387. used: 'verwendet',
  3388. remainingUnit: 'verbleibend',
  3389. },
  3390. // Print modal
  3391. printModal: {
  3392. title: 'Druck starten',
  3393. selectPrinter: 'Drucker auswählen',
  3394. selectPlate: 'Platte auswählen',
  3395. filamentMapping: 'Filamentzuordnung',
  3396. totalCost: 'Gesamtkosten:',
  3397. slotRemainingShort: ' - {{grams}}g übrig',
  3398. printSettings: 'Druckeinstellungen',
  3399. bedLeveling: 'Bett-Nivellierung',
  3400. flowCalibration: 'Fluss-Kalibrierung',
  3401. vibrationCalibration: 'Vibrations-Kalibrierung',
  3402. layerInspection: 'Erste-Schicht-Prüfung',
  3403. timelapse: 'Zeitraffer',
  3404. startPrint: 'Druck starten',
  3405. addToQueue: 'Zur Warteschlange hinzufügen',
  3406. cancel: 'Abbrechen',
  3407. noPrintersAvailable: 'Keine Drucker verfügbar',
  3408. printerBusy: 'Drucker ist beschäftigt',
  3409. printerOffline: 'Drucker ist offline',
  3410. sameTypeDifferentColor: 'Gleicher Typ, andere Farbe',
  3411. filamentTypeNotLoaded: 'Filamenttyp nicht geladen',
  3412. openCalendar: 'Kalender öffnen',
  3413. leftNozzle: 'L',
  3414. rightNozzle: 'R',
  3415. leftNozzleTooltip: 'Linke Düse',
  3416. rightNozzleTooltip: 'Rechte Düse',
  3417. filamentOverride: 'Filament-Überschreibung',
  3418. filamentOverrideHint: 'Filamente für modellbasierte Zuweisung optional überschreiben. Der Planer wird gegen die ausgewählten Filamente statt der ursprünglichen 3MF-Werte abgleichen.',
  3419. originalFilament: 'Original',
  3420. overrideWith: 'Ersetzen mit',
  3421. resetToOriginal: 'Auf Original zurücksetzen',
  3422. insufficientFilamentTitle: 'Nicht genug Filament',
  3423. insufficientFilamentMessage: 'Einige zugewiesene Spulen haben weniger Filament als dieser Druck benötigt:',
  3424. insufficientFilamentLine: '{{printer}} - {{slot}}: benötigt {{required}}g, verbleibend {{remaining}}g',
  3425. printAnyway: 'Trotzdem drucken',
  3426. forceColorMatch: 'Farbe erzwingen',
  3427. staggerPrinterStarts: 'Stagger printer starts',
  3428. staggerGroupSize: 'Group size',
  3429. staggerInterval: 'Interval (min)',
  3430. staggerPreview: '{{printers}} printers → {{groups}} groups of {{size}}, starting every {{interval}} min',
  3431. staggerLastGroup: 'last group: {{count}}',
  3432. staggerTotal: 'total: {{minutes}} min',
  3433. staggerToPrinters: 'Gestaffelt an {{count}} Drucker senden',
  3434. gcodeInjection: 'Auto-Print G-code einfügen',
  3435. },
  3436. // Backup
  3437. backup: {
  3438. title: 'Sichern & Wiederherstellen',
  3439. createBackup: 'Sicherung erstellen',
  3440. restoreBackup: 'Sicherung wiederherstellen',
  3441. restoreDescription: 'Alle Daten aus einer Sicherungsdatei ersetzen',
  3442. downloadBackup: 'Sicherung herunterladen',
  3443. uploadBackup: 'Sicherung hochladen',
  3444. lastBackup: 'Letzte Sicherung',
  3445. autoBackup: 'Automatische Sicherung',
  3446. backupNow: 'Jetzt sichern',
  3447. restoreWarning: 'Warnung: Das Wiederherstellen einer Sicherung überschreibt alle aktuellen Daten.',
  3448. includeArchives: 'Archive einschließen',
  3449. includeSettings: 'Einstellungen einschließen',
  3450. includeProfiles: 'Profile einschließen',
  3451. backupSuccess: 'Sicherung erfolgreich erstellt',
  3452. restoreSuccess: 'Sicherung erfolgreich wiederhergestellt',
  3453. backupFailed: 'Sicherung fehlgeschlagen',
  3454. restoreFailed: 'Wiederherstellung fehlgeschlagen',
  3455. restoreNote: 'Virtueller Drucker wird während der Wiederherstellung gestoppt',
  3456. // GitHub Backup
  3457. githubBackup: 'GitHub Backup',
  3458. enabled: 'Aktiviert',
  3459. cloudLoginRequired: 'Bambu Cloud Login erforderlich. Melden Sie sich unter Profile → Cloud-Profile an, um GitHub-Backup zu aktivieren.',
  3460. cloudLoginRequiredShort: 'Cloud-Login erforderlich',
  3461. githubDescription: 'Synchronisieren Sie Ihre Profile automatisch mit einem privaten GitHub-Repository für Backup und Versionsverlauf.',
  3462. repositoryUrl: 'Repository-URL',
  3463. personalAccessToken: 'Persönlicher Zugriffstoken',
  3464. tokenSaved: '(gespeichert)',
  3465. enterNewToken: 'Neuen Token eingeben zum Aktualisieren',
  3466. tokenHint: 'Feingranularer Token mit Lese-/Schreibberechtigung für Inhalte',
  3467. branch: 'Branch',
  3468. manualOnly: 'Nur manuell',
  3469. hourly: 'Stündlich',
  3470. daily: 'Täglich',
  3471. weekly: 'Wöchentlich',
  3472. includeInBackup: 'In Sicherung einschließen',
  3473. kProfiles: 'K-Profile',
  3474. kProfilesDescription: 'Druckvorschub-Kalibrierung von verbundenen Druckern',
  3475. noPrintersConnected: 'Keine Drucker verbunden',
  3476. printersConnected: '{{connected}}/{{total}} verbunden',
  3477. cloudProfiles: 'Cloud-Profile',
  3478. cloudProfilesDescription: 'Filament-, Drucker- und Prozessprofile aus der Bambu Cloud',
  3479. appSettings: 'App-Einstellungen',
  3480. appSettingsDescription: 'Bambuddy-Konfiguration (komplette Datenbank)',
  3481. spoolInventory: 'Spulenbestand',
  3482. spoolInventoryDescription: 'Filamentspulen, Nutzungsverlauf und Kostenverfolgung',
  3483. printArchives: 'Druckarchive',
  3484. printArchivesDescription: 'Druckverlauf-Metadaten (keine GCode/3MF-Dateien)',
  3485. lastBackupAt: 'Letzte Sicherung:',
  3486. noBackupsYet: 'Noch keine Sicherungen',
  3487. next: 'Nächste:',
  3488. startingBackup: 'Sicherung wird gestartet...',
  3489. test: 'Test',
  3490. enableBackup: 'Sicherung aktivieren',
  3491. testConnection: 'Verbindung testen',
  3492. enterRepoUrl: 'Repository-URL eingeben',
  3493. enterRepoAndToken: 'Repository-URL und Zugriffstoken eingeben',
  3494. repoRequired: 'Repository-URL ist erforderlich',
  3495. tokenRequired: 'Zugriffstoken ist erforderlich',
  3496. githubBackupEnabled: 'GitHub-Backup aktiviert',
  3497. tokenUpdated: 'Token aktualisiert',
  3498. settingsSaved: 'Einstellungen gespeichert',
  3499. failedToSave: 'Speichern fehlgeschlagen: {{message}}',
  3500. backupCompleteFiles: 'Sicherung abgeschlossen - {{count}} Dateien aktualisiert',
  3501. backupSkippedNoChanges: 'Sicherung übersprungen - keine Änderungen',
  3502. backupFailed2: 'Sicherung fehlgeschlagen: {{message}}',
  3503. clearedLogs: '{{count}} Protokolle gelöscht',
  3504. failedToClearLogs: 'Protokolle löschen fehlgeschlagen: {{message}}',
  3505. // History
  3506. history: 'Verlauf',
  3507. clear: 'Löschen',
  3508. date: 'Datum',
  3509. status: 'Status',
  3510. commit: 'Commit',
  3511. // Local Backup
  3512. localBackup: 'Lokale Sicherung',
  3513. localBackupDescription: 'Erstellen Sie eine vollständige Sicherung Ihrer Bambuddy-Daten einschließlich Datenbank, Archive, Uploads und aller Dateien.',
  3514. downloadBackupLabel: 'Sicherung herunterladen',
  3515. completeBackupZip: 'Vollständige Sicherung: Datenbank + alle Dateien (ZIP)',
  3516. download: 'Herunterladen',
  3517. preparingBackup: 'Sicherung wird vorbereitet...',
  3518. creatingArchive: 'Sicherungsarchiv wird erstellt... Dies kann bei großen Archiven eine Weile dauern.',
  3519. downloadingFile: 'Sicherungsdatei wird heruntergeladen...',
  3520. backupDownloaded: 'Sicherung erfolgreich heruntergeladen',
  3521. failedToCreateBackup: 'Sicherung erstellen fehlgeschlagen: {{message}}',
  3522. restore: 'Wiederherstellen',
  3523. restoreReplacesAll: 'Wiederherstellung ersetzt alle Daten.',
  3524. restoreReplacesAllDetail: 'Ihre aktuelle Datenbank und Dateien werden vollständig ersetzt. Nach der Wiederherstellung ist ein Neustart erforderlich.',
  3525. restoreConfirmTitle: 'Sicherung wiederherstellen',
  3526. restoreConfirmMessage: 'Sind Sie sicher, dass Sie von "{{filename}}" wiederherstellen möchten? Dies ersetzt Ihre aktuelle Datenbank und alle Dateien vollständig. Die Anwendung muss nach der Wiederherstellung neu gestartet werden.',
  3527. restoreConfirmButton: 'Sicherung wiederherstellen',
  3528. uploadingFile: 'Sicherungsdatei wird hochgeladen...',
  3529. backupRestoredRestart: 'Sicherung wiederhergestellt. Bitte starten Sie Bambuddy neu.',
  3530. failedToRestore: 'Sicherung wiederherstellen fehlgeschlagen. Bitte überprüfen Sie das Dateiformat.',
  3531. reloadNow: 'Jetzt neu laden',
  3532. creatingBackup: 'Sicherung erstellen',
  3533. restoringBackup: 'Sicherung wiederherstellen',
  3534. preparing: 'Vorbereiten...',
  3535. processing: 'Verarbeiten...',
  3536. doNotClosePage: 'Bitte schließen Sie diese Seite nicht und navigieren Sie nicht weg. Dieser Vorgang kann bei großen Sicherungen mehrere Minuten dauern.',
  3537. // RestoreModal
  3538. restoring: 'Wiederherstellen...',
  3539. restoreComplete: 'Wiederherstellung abgeschlossen',
  3540. restoreFailed2: 'Wiederherstellung fehlgeschlagen',
  3541. importSettings: 'Einstellungen aus einer Sicherungsdatei importieren',
  3542. pleaseWaitRestoring: 'Bitte warten Sie, während Ihre Daten wiederhergestellt werden',
  3543. selectBackupFile: 'Klicken Sie, um eine Sicherungsdatei auszuwählen (.json oder .zip)',
  3544. duplicateHandling: 'So funktioniert die Duplikatbehandlung:',
  3545. matchPrinters: 'Drucker',
  3546. matchPrintersBy: 'abgeglichen nach Seriennummer',
  3547. matchSmartPlugs: 'Smart Plugs',
  3548. matchSmartPlugsBy: 'abgeglichen nach IP-Adresse',
  3549. matchNotificationProviders: 'Benachrichtigungsanbieter',
  3550. matchNotificationProvidersBy: 'abgeglichen nach Name',
  3551. matchFilaments: 'Filamente',
  3552. matchFilamentsBy: 'abgeglichen nach Name + Typ + Marke',
  3553. matchArchives: 'Archive',
  3554. matchArchivesBy: 'abgeglichen nach Inhaltshash (immer übersprungen)',
  3555. matchPendingUploads: 'Ausstehende Uploads',
  3556. matchPendingUploadsBy: 'abgeglichen nach Dateiname',
  3557. matchSettingsTemplates: 'Einstellungen & Vorlagen',
  3558. matchSettingsTemplatesBy: 'immer überschrieben',
  3559. replaceExisting: 'Vorhandene Daten ersetzen',
  3560. keepExisting: 'Vorhandene Daten behalten',
  3561. overwriteDescription: 'Bereits vorhandene Elemente mit Sicherungsdaten überschreiben',
  3562. keepDescription: 'Nur Elemente wiederherstellen, die noch nicht vorhanden sind',
  3563. overwriteCaution: 'Achtung:',
  3564. overwriteWarning: 'Das Überschreiben ersetzt Ihre aktuellen Konfigurationen durch Daten aus der Sicherung. Drucker-Zugangscodes werden aus Sicherheitsgründen nie überschrieben.',
  3565. cancel: 'Abbrechen',
  3566. processingBackup: 'Sicherungsdatei wird verarbeitet...',
  3567. itemsRestored: 'Wiederhergestellt',
  3568. itemsSkipped: 'Übersprungen',
  3569. restored: 'Wiederhergestellt',
  3570. skippedAlreadyExist: 'Übersprungen (bereits vorhanden)',
  3571. filesCategory: 'Dateien (3MF, Thumbnails, etc.)',
  3572. andMore: '...und {{count}} weitere',
  3573. newApiKeysGenerated: 'Neue API-Schlüssel generiert',
  3574. keysShownOnce: 'Diese Schlüssel werden nur einmal angezeigt. Kopieren Sie sie jetzt!',
  3575. copy: 'Kopieren',
  3576. noDataFound: 'In der Sicherungsdatei wurden keine Daten zur Wiederherstellung gefunden.',
  3577. close: 'Schließen',
  3578. // Scheduled local backups (#884)
  3579. scheduledBackup: 'Scheduled Backups',
  3580. scheduledBackupDescription: 'Automatically create backup snapshots on a schedule. Output directory can be mounted to a NAS or external storage.',
  3581. frequency: 'Frequency',
  3582. backupTime: 'Time',
  3583. retention: 'Retention',
  3584. retentionDescription: 'Number of backups to keep',
  3585. outputPath: 'Output Path',
  3586. outputPathPlaceholder: 'Default: {{path}}',
  3587. outputPathDescription: 'Leave empty for default location',
  3588. runNow: 'Run Now',
  3589. backupFiles: 'Backup Files',
  3590. noScheduledBackups: 'No backups yet',
  3591. deleteBackup: 'Delete',
  3592. deleteBackupConfirm: 'Delete this backup file?',
  3593. backupRunning: 'Backup in progress...',
  3594. scheduledBackupComplete: 'Backup completed successfully',
  3595. scheduledBackupFailed: 'Backup failed',
  3596. nextBackup: 'Next backup',
  3597. backupSize: 'Size',
  3598. utc: 'UTC',
  3599. defaultPathLabel: 'Default:',
  3600. // Category labels
  3601. categories: {
  3602. settings: 'Einstellungen',
  3603. notification_providers: 'Benachrichtigungsanbieter',
  3604. notification_templates: 'Benachrichtigungsvorlagen',
  3605. smart_plugs: 'Smart Plugs',
  3606. printers: 'Drucker',
  3607. filaments: 'Filamente',
  3608. maintenance_types: 'Wartungstypen',
  3609. archives: 'Archive',
  3610. projects: 'Projekte',
  3611. pending_uploads: 'Ausstehende Uploads',
  3612. external_links: 'Externe Links',
  3613. api_keys: 'API-Schlüssel',
  3614. },
  3615. },
  3616. // Tags
  3617. tags: {
  3618. title: 'Tags',
  3619. addTag: 'Tag hinzufügen',
  3620. editTag: 'Tag bearbeiten',
  3621. deleteTag: 'Tag löschen',
  3622. tagName: 'Tag-Name',
  3623. tagColor: 'Tag-Farbe',
  3624. noTags: 'Keine Tags',
  3625. deleteConfirm: 'Möchten Sie diesen Tag wirklich löschen?',
  3626. manageTags: 'Tags verwalten',
  3627. },
  3628. // Upload modal (archives)
  3629. uploadModal: {
  3630. title: '3MF-Dateien hochladen',
  3631. dragDrop: '3MF-Dateien hierher ziehen',
  3632. or: 'oder',
  3633. browseFiles: 'Dateien durchsuchen',
  3634. extractionInfo: 'Das Druckermodell wird automatisch aus den 3MF-Datei-Metadaten extrahiert.',
  3635. uploaded: 'hochgeladen',
  3636. failed: 'fehlgeschlagen',
  3637. uploading: 'Wird hochgeladen...',
  3638. upload: 'Hochladen',
  3639. uploadFailed: 'Hochladen fehlgeschlagen',
  3640. },
  3641. // Edit archive modal
  3642. editArchive: {
  3643. title: 'Archiv bearbeiten',
  3644. name: 'Name',
  3645. namePlaceholder: 'Druckname',
  3646. printer: 'Drucker',
  3647. noPrinter: 'Kein Drucker',
  3648. project: 'Projekt',
  3649. noProject: 'Kein Projekt',
  3650. itemsPrinted: 'Gedruckte Teile',
  3651. itemsPrintedHelp: 'Anzahl der in diesem Druckauftrag produzierten Teile',
  3652. notes: 'Notizen',
  3653. notesPlaceholder: 'Notizen zu diesem Druck hinzufügen...',
  3654. externalLink: 'Externer Link',
  3655. externalLinkPlaceholder: 'https://printables.com/model/...',
  3656. externalLinkHelp: 'Link zu Printables, Thingiverse oder anderer Quelle',
  3657. tags: 'Tags',
  3658. tagsPlaceholder: 'Tags hinzufügen...',
  3659. addMoreTags: 'Weitere Tags hinzufügen...',
  3660. matchingTags: 'Übereinstimmend mit "{{query}}"',
  3661. existingTags: 'Vorhandene Tags',
  3662. clickToAdd: '(zum Hinzufügen klicken)',
  3663. status: 'Status',
  3664. failureReason: 'Fehlergrund',
  3665. selectReason: 'Grund auswählen...',
  3666. photos: 'Fotos des Druckergebnisses',
  3667. photosHelp: 'Klicken Sie auf + um Fotos Ihres Druckergebnisses hinzuzufügen',
  3668. printResult: 'Druckergebnis',
  3669. saving: 'Wird gespeichert...',
  3670. // Failure reasons
  3671. failureReasons: {
  3672. adhesionFailure: 'Haftungsfehler',
  3673. spaghettiDetached: 'Spaghetti / Abgelöst',
  3674. layerShift: 'Schichtversatz',
  3675. cloggedNozzle: 'Verstopfte Düse',
  3676. filamentRunout: 'Filament aufgebraucht',
  3677. warping: 'Verformung',
  3678. stringing: 'Fadenziehen',
  3679. underExtrusion: 'Unterextrusion',
  3680. powerFailure: 'Stromausfall',
  3681. userCancelled: 'Vom Benutzer abgebrochen',
  3682. other: 'Sonstiges',
  3683. },
  3684. // Archive statuses
  3685. statuses: {
  3686. completed: 'Abgeschlossen',
  3687. failed: 'Fehlgeschlagen',
  3688. aborted: 'Abgebrochen',
  3689. printing: 'Druckt',
  3690. },
  3691. },
  3692. // K-Profiles
  3693. kProfiles: {
  3694. title: 'K-Profile',
  3695. noPrintersConfigured: 'Keine Drucker konfiguriert',
  3696. addPrinterInSettings: 'Fügen Sie einen Drucker in den Einstellungen hinzu, um K-Profile zu verwalten',
  3697. noActivePrinters: 'Keine aktiven Drucker',
  3698. enablePrinterConnection: 'Aktivieren Sie eine Druckerverbindung, um K-Profile anzuzeigen',
  3699. loadingProfiles: 'Lade K-Profile...',
  3700. printerOffline: 'Drucker offline',
  3701. printerOfflineDesc: 'Der ausgewählte Drucker ist nicht verbunden. Schalten Sie ihn ein, um K-Profile anzuzeigen.',
  3702. noMatchingProfiles: 'Keine passenden Profile',
  3703. noMatchingProfilesDesc: 'Keine Profile entsprechen Ihren Suchkriterien',
  3704. noKProfiles: 'Keine K-Profile',
  3705. noKProfilesDesc: 'Keine Druckvorschub-Profile für {{diameter}}mm Düse gefunden',
  3706. createFirstProfile: 'Erstes Profil erstellen',
  3707. // Controls
  3708. printer: 'Drucker',
  3709. nozzle: 'Düse',
  3710. refresh: 'Aktualisieren',
  3711. addProfile: 'Profil hinzufügen',
  3712. export: 'Exportieren',
  3713. import: 'Importieren',
  3714. select: 'Auswählen',
  3715. selectAll: 'Alle auswählen',
  3716. delete: 'Löschen',
  3717. // Filters
  3718. searchPlaceholder: 'Nach Name oder Filament suchen...',
  3719. allExtruders: 'Alle Extruder',
  3720. leftOnly: 'Nur links',
  3721. rightOnly: 'Nur rechts',
  3722. allFlow: 'Alle Flusstypen',
  3723. hfOnly: 'Nur HF',
  3724. sOnly: 'Nur S',
  3725. sortName: 'Sortieren: Name',
  3726. sortKValue: 'Sortieren: K-Wert',
  3727. sortFilament: 'Sortieren: Filament',
  3728. // Dual extruder labels
  3729. leftExtruder: 'Linker Extruder',
  3730. rightExtruder: 'Rechter Extruder',
  3731. // Modal
  3732. modal: {
  3733. addTitle: 'K-Profil hinzufügen',
  3734. editTitle: 'K-Profil bearbeiten',
  3735. profileName: 'Profilname',
  3736. profileNamePlaceholder: 'Mein PLA-Profil',
  3737. kValue: 'K-Wert',
  3738. kValuePlaceholder: '0,020',
  3739. kValueHelp: 'Typischer Bereich: 0,01 - 0,06 für PLA, 0,02 - 0,10 für PETG',
  3740. filament: 'Filament',
  3741. selectFilament: 'Filament auswählen...',
  3742. noFilamentsHelp: 'Keine Filamente gefunden. Erstellen Sie zuerst ein K-Profil in Bambu Studio.',
  3743. flowType: 'Flusstyp',
  3744. highFlow: 'High Flow',
  3745. standard: 'Standard',
  3746. nozzleSize: 'Düsengröße',
  3747. extruder: 'Extruder',
  3748. extruders: 'Extruder',
  3749. left: 'Links',
  3750. right: 'Rechts',
  3751. notes: 'Notizen (lokal gespeichert)',
  3752. notesPlaceholder: 'Notizen zu diesem Profil hinzufügen...',
  3753. notesHelp: 'Notizen werden in Bambuddy gespeichert, nicht auf dem Drucker',
  3754. syncing: 'Synchronisiert mit Drucker...',
  3755. savingExtruder: 'Speichern auf Extruder {{current}}/{{total}}...',
  3756. pleaseWait: 'Bitte warten',
  3757. },
  3758. // Delete confirmation
  3759. deleteConfirm: {
  3760. title: 'Profil löschen',
  3761. cannotUndo: 'Dies kann nicht rückgängig gemacht werden',
  3762. message: 'Möchten Sie "{{name}}" wirklich vom Drucker löschen?',
  3763. },
  3764. // Bulk delete
  3765. bulkDelete: {
  3766. title: 'Profile löschen',
  3767. cannotUndo: 'Dies kann nicht rückgängig gemacht werden',
  3768. message: 'Möchten Sie wirklich {{count}} ausgewählte Profile vom Drucker löschen?',
  3769. },
  3770. // Toast
  3771. toast: {
  3772. profileSaved: 'K-Profil gespeichert',
  3773. profilesSaved: 'K-Profil auf {{count}} Extrudern gespeichert',
  3774. selectAtLeastOneExtruder: 'Bitte wählen Sie mindestens einen Extruder aus',
  3775. profileDeleted: 'K-Profil gelöscht',
  3776. profilesDeleted: '{{count}} Profile gelöscht',
  3777. exportedProfiles: '{{count}} Profile exportiert',
  3778. importedProfiles: '{{count}} von {{total}} Profilen importiert',
  3779. noProfilesToExport: 'Keine Profile zum Exportieren',
  3780. invalidFileFormat: 'Ungültiges Dateiformat',
  3781. failedToParseImport: 'Import-Datei konnte nicht gelesen werden',
  3782. failedToSaveBatch: 'K-Profile konnten nicht gespeichert werden',
  3783. noteSaved: 'Notiz gespeichert',
  3784. failedToSaveNote: 'Notiz konnte nicht gespeichert werden',
  3785. },
  3786. // Permissions
  3787. permission: {
  3788. noRead: 'Sie haben keine Berechtigung, Profile zu aktualisieren',
  3789. noCreate: 'Sie haben keine Berechtigung, Profile hinzuzufügen',
  3790. noUpdate: 'Sie haben keine Berechtigung, K-Profile zu aktualisieren',
  3791. noDelete: 'Sie haben keine Berechtigung, K-Profile zu löschen',
  3792. noExport: 'Sie haben keine Berechtigung, Profile zu exportieren',
  3793. noImport: 'Sie haben keine Berechtigung, Profile zu importieren',
  3794. },
  3795. },
  3796. // Virtual Printer
  3797. virtualPrinter: {
  3798. title: 'Virtueller Drucker',
  3799. running: 'Läuft',
  3800. stopped: 'Gestoppt',
  3801. description: {
  3802. 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.',
  3803. proxy: 'Aktiviere einen Proxy, der Slicer-Datenverkehr an einen echten Drucker weiterleitet, um Ferndruck über jedes Netzwerk zu ermöglichen.',
  3804. },
  3805. enable: {
  3806. title: 'Virtuellen Drucker aktivieren',
  3807. visibleInSlicer: 'Sichtbar als "Bambuddy" in der Slicer-Erkennung',
  3808. proxyingTo: 'Proxy zu {{name}}',
  3809. notActive: 'Nicht aktiv',
  3810. },
  3811. model: {
  3812. title: 'Druckermodell',
  3813. description: 'Wähle welches Druckermodell emuliert werden soll.',
  3814. restartWarning: 'Das Ändern des Modells startet den virtuellen Drucker neu',
  3815. },
  3816. accessCode: {
  3817. title: 'Zugangscode',
  3818. isSet: 'Zugangscode ist gesetzt',
  3819. notSet: 'Kein Zugangscode gesetzt - erforderlich zum Aktivieren',
  3820. placeholder: '8-Zeichen-Code eingeben',
  3821. placeholderChange: 'Neuen Code eingeben zum Ändern',
  3822. hint: 'Muss genau 8 Zeichen lang sein. Wird von Slicern zur Authentifizierung verwendet.',
  3823. charCount: '({{count}}/8)',
  3824. },
  3825. targetPrinter: {
  3826. title: 'Zieldrucker',
  3827. configured: 'Proxy-Ziel konfiguriert',
  3828. notConfigured: 'Kein Zieldrucker ausgewählt - erforderlich für Proxy-Modus',
  3829. placeholder: 'Drucker auswählen...',
  3830. hint: 'Wähle den Drucker aus, an den der Slicer-Datenverkehr weitergeleitet werden soll. Der Drucker muss im LAN-Modus sein.',
  3831. noPrinters: 'Keine Drucker konfiguriert. Füge zuerst einen Drucker hinzu, um den Proxy-Modus zu verwenden.',
  3832. },
  3833. remoteInterface: {
  3834. title: 'Netzwerkschnittstelle überschreiben',
  3835. configured: 'Schnittstellenüberschreibung aktiv',
  3836. optional: 'Optional - verwenden wenn die automatisch erkannte IP falsch ist (z.B. mehrere NICs, Docker, VPN)',
  3837. placeholder: 'Automatisch erkennen (Standard)...',
  3838. hint: 'Überschreibt die per SSDP beworbene und im TLS-Zertifikat verwendete IP-Adresse. Nützlich wenn Bambuddy mehrere Netzwerkschnittstellen hat.',
  3839. },
  3840. mode: {
  3841. title: 'Modus',
  3842. archive: 'Archivieren',
  3843. archiveDesc: 'Dateien sofort archivieren',
  3844. review: 'Überprüfen',
  3845. reviewDesc: 'Vor dem Archivieren überprüfen',
  3846. queue: 'Warteschlange',
  3847. queueDesc: 'Archivieren und zur Warteschlange hinzufügen',
  3848. proxy: 'Proxy',
  3849. proxyDesc: 'An echten Drucker weiterleiten',
  3850. },
  3851. autoDispatch: {
  3852. title: 'Automatisch starten',
  3853. description: 'Drucke automatisch starten, wenn sie zur Warteschlange hinzugefügt werden. Wenn deaktiviert, warten Drucke auf manuellen Start.',
  3854. },
  3855. setupRequired: {
  3856. title: 'Einrichtung erforderlich',
  3857. description: 'Die virtuelle Druckerfunktion erfordert zusätzliche Systemkonfiguration, bevor sie funktioniert. Dies beinhaltet Portweiterleitung, Firewall-Regeln und plattformspezifische Einstellungen.',
  3858. readGuide: 'Lese die Einrichtungsanleitung vor dem Aktivieren',
  3859. },
  3860. howItWorks: {
  3861. title: 'So funktioniert es',
  3862. step1: 'Im selben LAN erscheinen virtuelle Drucker automatisch in deinem Slicer (Bambu Studio / OrcaSlicer). Aus anderen Netzwerken füge sie manuell per IP-Adresse und Zugangscode hinzu.',
  3863. step2: 'Im Archiv-, Überprüfungs- und Warteschlangen-Modus verwende die "Senden"-Funktion im Slicer, um 3MF-Dateien an Bambuddy zu senden. Der Slicer zeigt "Druck erfolgreich" — die Datei wird gespeichert, nicht gedruckt.',
  3864. step3: 'Im Proxy-Modus leitet der virtuelle Drucker den gesamten Datenverkehr an einen echten Drucker weiter — Drucke starten sofort wie bei einer direkten Verbindung.',
  3865. },
  3866. status: {
  3867. title: 'Status-Details',
  3868. printerName: 'Druckername',
  3869. model: 'Modell',
  3870. serialNumber: 'Seriennummer',
  3871. mode: 'Modus',
  3872. pendingFiles: 'Ausstehende Dateien',
  3873. targetPrinter: 'Zieldrucker',
  3874. ftpPort: 'FTP-Port',
  3875. mqttPort: 'MQTT-Port',
  3876. ftpConnections: 'FTP-Verbindungen',
  3877. mqttConnections: 'MQTT-Verbindungen',
  3878. },
  3879. toast: {
  3880. updated: 'Virtuelle Druckereinstellungen aktualisiert',
  3881. failedToUpdate: 'Einstellungen konnten nicht aktualisiert werden',
  3882. accessCodeRequired: 'Bitte zuerst einen Zugangscode setzen',
  3883. targetPrinterRequired: 'Bitte zuerst einen Zieldrucker auswählen',
  3884. bindIpRequired: 'Bitte zuerst eine Bind-IP setzen',
  3885. accessCodeEmpty: 'Zugangscode darf nicht leer sein',
  3886. accessCodeLength: 'Zugangscode muss genau 8 Zeichen lang sein',
  3887. created: 'Virtueller Drucker erstellt',
  3888. failedToCreate: 'Virtueller Drucker konnte nicht erstellt werden',
  3889. deleted: 'Virtueller Drucker gelöscht',
  3890. failedToDelete: 'Virtueller Drucker konnte nicht gelöscht werden',
  3891. },
  3892. list: {
  3893. title: 'Virtuelle Drucker',
  3894. add: 'Hinzufügen',
  3895. addFirst: 'Virtuellen Drucker hinzufügen',
  3896. empty: 'Keine virtuellen Drucker konfiguriert. Fügen Sie einen hinzu, um zu beginnen.',
  3897. },
  3898. bindIp: {
  3899. title: 'Bind-Interface',
  3900. placeholder: 'Interface auswählen...',
  3901. hint: 'Netzwerkinterface, an das dieser virtuelle Drucker gebunden wird. Muss pro Drucker eindeutig sein.',
  3902. },
  3903. proxy: {
  3904. accessCodeHint: 'Im Proxy-Modus den Zugangscode des Zieldruckers im Slicer verwenden. Die Verbindung wird transparent zum echten Drucker weitergeleitet.',
  3905. },
  3906. addDialog: {
  3907. title: 'Virtuellen Drucker hinzufügen',
  3908. name: 'Name',
  3909. hint: 'Sie können Zugangscode, Zieldrucker und andere Einstellungen nach dem Erstellen konfigurieren.',
  3910. create: 'Erstellen',
  3911. },
  3912. deleteConfirm: {
  3913. title: 'Virtuellen Drucker löschen',
  3914. message: 'Möchten Sie "{{name}}" wirklich löschen? Dies stoppt alle Dienste für diesen Drucker.',
  3915. },
  3916. },
  3917. // Model Viewer
  3918. modelViewer: {
  3919. openInSlicer: 'Im Slicer öffnen',
  3920. tabs: {
  3921. model: '3D-Modell',
  3922. gcode: 'G-Code Vorschau',
  3923. },
  3924. notAvailable: 'nicht verfügbar',
  3925. notSliced: 'nicht geslicet',
  3926. plates: 'Platten',
  3927. allPlates: 'Alle Platten',
  3928. plateNumber: 'Platte {{number}}',
  3929. plateCount: '{{count}} Platte',
  3930. plateCount_other: '{{count}} Platten',
  3931. objectCount: '{{count}} Objekt',
  3932. objectCount_other: '{{count}} Objekte',
  3933. filamentCount: '{{count}} Filament',
  3934. filamentCount_other: '{{count}} Filamente',
  3935. eta: 'ETA {{minutes}} Min',
  3936. noPreview: 'Keine Vorschau für diese Datei verfügbar',
  3937. pagination: {
  3938. pageOf: 'Seite {{current}} von {{total}}',
  3939. prev: 'Zurück',
  3940. next: 'Weiter',
  3941. },
  3942. errors: {
  3943. failedToLoad: 'Datei konnte nicht geladen werden',
  3944. noMeshes: 'Keine Meshes in 3MF-Datei gefunden',
  3945. unsupportedFormat: 'Nicht unterstütztes Dateiformat',
  3946. },
  3947. },
  3948. // Maintenance type descriptions (built-in)
  3949. maintenanceDescriptions: {
  3950. lubricateCarbonRods: 'Schmiermittel auf Karbonstäbe für sanfte Bewegung auftragen',
  3951. lubricateRails: 'Schmiermittel auf Linearschienen für sanfte Bewegung auftragen',
  3952. cleanNozzle: 'Hotend und Düse reinigen, um Verstopfungen zu verhindern',
  3953. checkBelts: 'Riemenspannung für präzise Drucke überprüfen',
  3954. cleanBuildPlate: 'Druckplatte für bessere Haftung reinigen',
  3955. checkExtruder: 'Extruderzahnräder auf Verschleiß prüfen',
  3956. checkCooling: 'Sicherstellen, dass Lüfter ordnungsgemäß funktionieren',
  3957. generalInspection: 'Allgemeine Druckerinspektion',
  3958. cleanCarbonRods: 'Karbonstäbe reinigen, um Reibung zu reduzieren',
  3959. lubricateSteelRods: 'Schmiermittel auf Stahlstangen für sanfte Bewegung auftragen',
  3960. cleanSteelRods: 'Stahlstangen reinigen, um Reibung zu reduzieren',
  3961. cleanLinearRails: 'Linearschienen abwischen, um Staub und Schmutz zu entfernen',
  3962. checkPtfeTube: 'PTFE-Schlauch auf Verschleiß oder Beschädigung prüfen',
  3963. replaceHepaFilter: 'HEPA-Filter für Luftqualität ersetzen',
  3964. replaceCarbonFilter: 'Aktivkohlefilter ersetzen',
  3965. lubricateLeftNozzleRail: 'Linke Düsenschiene schmieren (H2-Serie)',
  3966. },
  3967. // Smart Plugs
  3968. smartPlugs: {
  3969. offline: 'Offline',
  3970. admin: 'Admin',
  3971. openPlugAdminPage: 'Plug-Admin-Seite öffnen',
  3972. deleteSmartPlug: 'Smart Plug löschen',
  3973. turnOnSmartPlug: 'Smart Plug einschalten',
  3974. turnOffSmartPlug: 'Smart Plug ausschalten',
  3975. turnOn: 'Einschalten',
  3976. turnOff: 'Ausschalten',
  3977. addSmartPlug: {
  3978. scanningNetwork: 'Netzwerk wird durchsucht...',
  3979. chooseEntity: 'Entität auswählen...',
  3980. connectionFailed: 'Verbindung fehlgeschlagen',
  3981. searchEntities: 'Entitäten suchen...',
  3982. searchPowerSensors: 'Leistungssensoren suchen...',
  3983. searchEnergySensors: 'Energiesensoren suchen...',
  3984. placeholders: {
  3985. plugName: 'Wohnzimmer Steckdose',
  3986. mqttStateOnValue: 'ON, true, 1',
  3987. mqttSameAsPower: 'Gleich wie Leistungs-Topic oder anders',
  3988. },
  3989. },
  3990. // SmartPlugCard
  3991. linkedTo: 'Verbunden mit:',
  3992. monitorOnly: 'Nur Überwachung',
  3993. alerts: 'Alarme',
  3994. scheduleOn: 'Ein {{time}}',
  3995. scheduleOff: 'Aus {{time}}',
  3996. on: 'Ein',
  3997. off: 'Aus',
  3998. power: 'Leistung',
  3999. kwhToday: 'kWh Heute',
  4000. settings: 'Einstellungen',
  4001. automationSettings: 'Automatisierungseinstellungen',
  4002. showInSwitchbar: 'In Schaltleiste anzeigen',
  4003. quickAccessSidebar: 'Schnellzugriff über Seitenleiste',
  4004. enabled: 'Aktiviert',
  4005. enableAutomation: 'Automatisierung für diesen Stecker aktivieren',
  4006. autoOn: 'Auto Ein',
  4007. autoOnDescription: 'Einschalten wenn Druck startet',
  4008. autoOff: 'Auto Aus',
  4009. autoOffDescription: 'Ausschalten wenn Druck abgeschlossen (einmalig)',
  4010. autoOffPersistent: 'Aktiviert lassen',
  4011. autoOffPersistentDescription: 'Zwischen Drucken aktiviert bleiben statt einmalig',
  4012. turnOffDelayMode: 'Ausschaltverzögerungsmodus',
  4013. time: 'Zeit',
  4014. temp: 'Temp',
  4015. delayMinutes: 'Verzögerung (Minuten)',
  4016. tempThreshold: 'Temperaturschwelle (°C)',
  4017. tempThresholdDescription: 'Schaltet aus wenn die Düse unter diese Temperatur abkühlt',
  4018. edit: 'Bearbeiten',
  4019. deleteConfirm: 'Möchten Sie "{{name}}" wirklich löschen? Dies kann nicht rückgängig gemacht werden.',
  4020. turnOnConfirm: 'Möchten Sie "{{name}}" wirklich einschalten?',
  4021. turnOffConfirm: 'Möchten Sie "{{name}}" wirklich ausschalten? Dies unterbricht die Stromversorgung des angeschlossenen Geräts.',
  4022. failedToTurn: '{{name}}" konnte nicht {{action}} werden',
  4023. unknown: 'Unbekannt',
  4024. // AddSmartPlugModal
  4025. addTitle: 'Smart Plug hinzufügen',
  4026. editTitle: 'Smart Plug bearbeiten',
  4027. stopScanning: 'Suche beenden',
  4028. discoverTasmota: 'Tasmota Geräte suchen',
  4029. foundDevices: '{{count}} Gerät(e) gefunden - zum Auswählen klicken:',
  4030. noDevicesFound: 'Keine Tasmota Geräte in Ihrem Netzwerk gefunden',
  4031. haNotConfigured: 'Home Assistant ist nicht konfiguriert. Einrichtung unter',
  4032. haSettingsPath: 'Einstellungen → Netzwerk → Home Assistant',
  4033. selectEntity: 'Entität auswählen *',
  4034. ipAddress: 'IP-Adresse *',
  4035. nameLabel: 'Name *',
  4036. username: 'Benutzername',
  4037. password: 'Passwort',
  4038. authHint: 'Leer lassen, wenn Ihr Tasmota-Gerät keine Authentifizierung benötigt',
  4039. linkToPrinter: 'Mit Drucker verbinden',
  4040. noPrinter: 'Kein Drucker (nur manuelle Steuerung)',
  4041. linkingDescription: 'Verknüpfung ermöglicht automatisches Ein-/Ausschalten bei Druckstart/-ende',
  4042. powerAlerts: 'Leistungsalarme',
  4043. alertAbove: 'Alarm wenn über (W)',
  4044. alertBelow: 'Alarm wenn unter (W)',
  4045. alertDescription: 'Benachrichtigung wenn der Stromverbrauch diese Schwellenwerte überschreitet. Leer lassen um diese Richtung zu deaktivieren.',
  4046. dailySchedule: 'Tagesplan',
  4047. turnOnAt: 'Einschalten um',
  4048. turnOffAt: 'Ausschalten um',
  4049. scheduleDescription: 'Den Stecker automatisch täglich zu diesen Zeiten ein-/ausschalten. Leer lassen um diese Aktion zu überspringen.',
  4050. showOnPrinterCard: 'Auf Druckerkarte anzeigen',
  4051. displayOnPrinterCard: 'Schaltfläche auf Druckerkarte anzeigen',
  4052. connectedResult: 'Verbunden!',
  4053. deviceLabel: 'Gerät: {{name}} - ',
  4054. stateLabel: 'Status: {{state}}',
  4055. test: 'Test',
  4056. delete: 'Löschen',
  4057. save: 'Speichern',
  4058. add: 'Hinzufügen',
  4059. cancel: 'Abbrechen',
  4060. failedToStartScan: 'Suche konnte nicht gestartet werden',
  4061. nameRequired: 'Name ist erforderlich',
  4062. entityRequired: 'Entität ist für Home Assistant Stecker erforderlich',
  4063. mqttTopicRequired: 'Mindestens ein MQTT-Topic muss für Leistung, Energie oder Statusüberwachung konfiguriert sein',
  4064. loadingEntities: 'Entitäten werden geladen...',
  4065. loading: 'Laden...',
  4066. failedToLoadEntities: 'Entitäten konnten nicht geladen werden: {{error}}',
  4067. noEntitiesMatching: 'Keine Entitäten gefunden die "{{search}}" entsprechen',
  4068. noEntitiesAvailable: 'Keine Entitäten verfügbar',
  4069. searchingEntities: 'Alle Entitäten durchsuchen ({{count}} gefunden)',
  4070. showingEntities: 'Zeige switch, light, input_boolean ({{count}} verfügbar)',
  4071. energyMonitoringOptional: 'Energieüberwachung (Optional)',
  4072. energyMonitoringHint: 'Sensoren suchen und auswählen, die Leistungs-/Energiedaten liefern.',
  4073. powerSensorW: 'Leistungssensor (W)',
  4074. energyTodayKwh: 'Energie Heute (kWh)',
  4075. totalEnergyKwh: 'Gesamtenergie (kWh)',
  4076. noMatchingSensors: 'Keine passenden Sensoren',
  4077. none: 'Keine',
  4078. mqttNotConfigured: 'MQTT-Broker nicht konfiguriert. Broker-Adresse einstellen unter',
  4079. mqttSettingsPath: 'Einstellungen → Netzwerk → MQTT-Veröffentlichung',
  4080. mqttNotConfiguredSuffix: '(Sie müssen die Veröffentlichung nicht aktivieren, nur die Broker-Details ausfüllen).',
  4081. mqttMonitorOnlyDescription: 'MQTT-Stecker empfangen Leistungs-/Energiedaten über MQTT-Abonnement. Ein-/Ausschalten ist nicht verfügbar - verwenden Sie Ihren MQTT-Broker oder Ihr Home-Automation-System.',
  4082. powerMonitoring: 'Leistungsüberwachung',
  4083. energyMonitoring: 'Energieüberwachung',
  4084. stateMonitoring: 'Statusüberwachung',
  4085. optional: 'optional',
  4086. topic: 'Topic',
  4087. jsonPath: 'JSON-Pfad',
  4088. multiplier: 'Multiplikator',
  4089. onValue: 'EIN-Wert',
  4090. mqttPowerHint: 'JSON-Pfad extrahiert Wert aus JSON-Payload (z.B. "power_l1"). Leer lassen wenn Topic rohe numerische Werte sendet.\nMultiplikator 0.001 für mW→W, 1000 für kW→W verwenden.',
  4091. mqttEnergyHint: 'JSON-Pfad extrahiert Wert aus JSON-Payload. Leer lassen für rohe Werte.\nMultiplikator 0.001 für Wh→kWh, 1000 für MWh→kWh verwenden.',
  4092. mqttStateHint: 'JSON-Pfad extrahiert Wert aus JSON-Payload. Leer lassen für rohe Werte.\nEIN-Wert: der genaue String der "EIN" bedeutet. Leer lassen für Auto-Erkennung (ON, true, 1).',
  4093. // REST smart plug
  4094. restControl: 'Control',
  4095. restOnUrl: 'Turn ON URL',
  4096. restOffUrl: 'Turn OFF URL',
  4097. restOnBody: 'ON Request Body',
  4098. restOffBody: 'OFF Request Body',
  4099. restMethod: 'HTTP Method',
  4100. restHeaders: 'Custom Headers (JSON)',
  4101. restStatusUrl: 'Status URL',
  4102. restStatusPath: 'State JSON Path',
  4103. restStatusOnValue: 'ON Value',
  4104. restPowerUrl: 'Power URL',
  4105. restPowerPath: 'Power JSON Path',
  4106. restPowerMultiplier: 'Power Multiplikator',
  4107. restEnergyUrl: 'Energie URL',
  4108. restEnergyPath: 'Energy JSON Path',
  4109. restEnergyMultiplier: 'Energie Multiplikator',
  4110. restUrlRequired: 'At least one URL (ON or OFF) is required for REST plugs',
  4111. restHeadersHint: 'e.g. {"Authorization": "Bearer your-token"}',
  4112. restBodyHint: 'e.g. ON, {"state": "on"}',
  4113. restStatusHint: 'URL to poll for current state',
  4114. restPathHint: 'e.g. state or data.power.status',
  4115. restPowerUrlHint: 'Eigene URL für Leistungsdaten (nutzt Status URL wenn leer)',
  4116. restEnergyUrlHint: 'Eigene URL für Energiedaten (nutzt Status URL wenn leer)',
  4117. restEnergyHint: 'Jeder Wert kann eine eigene URL verwenden oder auf die Status URL zurückgreifen. Multiplikatoren für Einheitenumrechnung verwenden (z.B. 0.001 für Wh zu kWh).',
  4118. testConnection: 'Test Connection',
  4119. connectionSuccess: 'Connection successful',
  4120. noSwitchesInSwitchbar: 'Keine Schalter in der Schaltleiste',
  4121. enableSwitchbarHint: '"In Schaltleiste anzeigen" unter Einstellungen > Smart Plugs aktivieren',
  4122. },
  4123. // Notifications
  4124. notifications: {
  4125. // Provider types
  4126. providerTypes: {
  4127. callmebot: 'CallMeBot/WhatsApp',
  4128. ntfy: 'ntfy',
  4129. pushover: 'Pushover',
  4130. telegram: 'Telegram',
  4131. email: 'E-Mail',
  4132. discord: 'Discord',
  4133. webhook: 'Webhook',
  4134. homeassistant: 'Home Assistant',
  4135. },
  4136. // Provider descriptions
  4137. providerDescriptions: {
  4138. email: 'SMTP-E-Mail-Benachrichtigungen',
  4139. telegram: 'Benachrichtigungen über Telegram-Bot',
  4140. discord: 'An Discord-Kanal per Webhook senden',
  4141. ntfy: 'Kostenlose, selbst-hostbare Push-Benachrichtigungen',
  4142. pushover: 'Einfache, zuverlässige Push-Benachrichtigungen',
  4143. callmebot: 'Kostenlose WhatsApp-Benachrichtigungen über CallMeBot',
  4144. webhook: 'Generischer HTTP-POST an beliebige URL',
  4145. homeassistant: 'Dauerhafte Benachrichtigungen im Home Assistant Dashboard',
  4146. },
  4147. // NotificationProviderCard
  4148. lastSuccess: 'Zuletzt: {{date}}',
  4149. error: 'Fehler',
  4150. printer: 'Drucker:',
  4151. allPrinters: 'Alle Drucker',
  4152. sendTestNotification: 'Testbenachrichtigung senden',
  4153. eventSettings: 'Ereigniseinstellungen',
  4154. enabled: 'Aktiviert',
  4155. sendFromProvider: 'Benachrichtigungen von diesem Anbieter senden',
  4156. // Event categories
  4157. printEvents: 'Druckereignisse',
  4158. printerStatus: 'Druckerstatus',
  4159. amsAlarms: 'AMS-Alarme',
  4160. amsHtAlarms: 'AMS-HT-Alarme',
  4161. printQueue: 'Druckwarteschlange',
  4162. // Event tags (badges)
  4163. start: 'Start',
  4164. plateCheck: 'Plattenkontrolle',
  4165. complete: 'Abgeschlossen',
  4166. failed: 'Fehlgeschlagen',
  4167. stopped: 'Gestoppt',
  4168. progress: 'Fortschritt',
  4169. offline: 'Offline',
  4170. lowFilament: 'Filament niedrig',
  4171. maintenance: 'Wartung',
  4172. amsHumidity: 'AMS-Feuchtigkeit',
  4173. amsTemp: 'AMS-Temperatur',
  4174. amsHtHumidity: 'AMS-HT-Feuchtigkeit',
  4175. amsHtTemp: 'AMS-HT-Temperatur',
  4176. bedCooled: 'Bett abgekühlt',
  4177. firstLayer: 'Erste Schicht',
  4178. quiet: 'Ruhe',
  4179. digest: 'Zusammenfassung {{time}}',
  4180. // Event labels (expanded settings)
  4181. printStarted: 'Druck gestartet',
  4182. plateNotEmpty: 'Platte nicht leer',
  4183. plateNotEmptyDescription: 'Objekte vor dem Druck erkannt',
  4184. printCompleted: 'Druck abgeschlossen',
  4185. bedCooledLabel: 'Bett abgekühlt',
  4186. bedCooledDescription: 'Bett nach dem Druck unter Schwellenwert abgekühlt',
  4187. firstLayerCompleteLabel: 'Erste Schicht fertig',
  4188. firstLayerCompleteDescription: 'Benachrichtigung mit Foto nach erster Schicht',
  4189. missingSpoolAssignmentLabel: 'Fehlende Spulenzuordnung',
  4190. missingSpoolAssignmentDescription: 'Benachrichtigen, wenn ein Druck startet und benoetigte Schaechte keine zugeordnete Spule haben',
  4191. printFailed: 'Druck fehlgeschlagen',
  4192. printStopped: 'Druck gestoppt',
  4193. progressMilestones: 'Fortschrittsmeilensteine',
  4194. progressMilestonesDescription: 'Benachrichtigung bei 25%, 50%, 75%',
  4195. printerOffline: 'Drucker offline',
  4196. printerError: 'Druckerfehler',
  4197. lowFilamentLabel: 'Filament niedrig',
  4198. maintenanceDue: 'Wartung fällig',
  4199. maintenanceDueDescription: 'Benachrichtigen, wenn Wartung erforderlich ist',
  4200. amsHumidityHigh: 'AMS-Feuchtigkeit hoch',
  4201. amsHumidityHighDescription: 'Normale AMS-Feuchtigkeit überschreitet Schwellenwert',
  4202. amsTemperatureHigh: 'AMS-Temperatur hoch',
  4203. amsTemperatureHighDescription: 'Normale AMS-Temperatur überschreitet Schwellenwert',
  4204. amsHtHumidityHigh: 'AMS-HT-Feuchtigkeit hoch',
  4205. amsHtHumidityHighDescription: 'AMS-HT-Feuchtigkeit überschreitet Schwellenwert',
  4206. amsHtTemperatureHigh: 'AMS-HT-Temperatur hoch',
  4207. amsHtTemperatureHighDescription: 'AMS-HT-Temperatur überschreitet Schwellenwert',
  4208. // Queue events
  4209. jobAdded: 'Auftrag hinzugefügt',
  4210. jobAddedDescription: 'Auftrag zur Warteschlange hinzugefügt',
  4211. jobAssigned: 'Auftrag zugewiesen',
  4212. jobAssignedDescription: 'Modellbasierter Auftrag einem Drucker zugewiesen',
  4213. jobStarted: 'Auftrag gestartet',
  4214. jobStartedDescription: 'Warteschlangenauftrag hat Druck begonnen',
  4215. jobWaiting: 'Auftrag wartet',
  4216. jobWaitingDescription: 'Auftrag wartet auf Filament oder Drucker',
  4217. jobSkipped: 'Auftrag übersprungen',
  4218. jobSkippedDescription: 'Auftrag übersprungen (vorheriger fehlgeschlagen)',
  4219. jobFailed: 'Auftrag fehlgeschlagen',
  4220. jobFailedDescription: 'Auftrag konnte nicht gestartet werden',
  4221. queueComplete: 'Warteschlange abgeschlossen',
  4222. queueCompleteDescription: 'Alle Warteschlangenaufträge beendet',
  4223. // Quiet hours
  4224. quietHours: 'Ruhezeiten',
  4225. noNotificationsDuring: 'Keine Benachrichtigungen während dieser Zeiten',
  4226. editProviderToChangeQuietHours: 'Anbieter bearbeiten, um Ruhezeiten zu ändern',
  4227. // Daily digest
  4228. dailyDigest: 'Tägliche Zusammenfassung',
  4229. batchNotifications: 'Benachrichtigungen zu einer täglichen Zusammenfassung bündeln',
  4230. sendAt: 'Senden um {{time}}',
  4231. editProviderToChangeDigestTime: 'Anbieter bearbeiten, um Zusammenfassungszeit zu ändern',
  4232. // Actions
  4233. edit: 'Bearbeiten',
  4234. deleteProvider: 'Benachrichtigungsanbieter löschen',
  4235. deleteConfirm: 'Sind Sie sicher, dass Sie "{{name}}" löschen möchten? Dies kann nicht rückgängig gemacht werden.',
  4236. delete: 'Löschen',
  4237. // AddNotificationModal
  4238. addTitle: 'Benachrichtigungsanbieter hinzufügen',
  4239. editTitle: 'Benachrichtigungsanbieter bearbeiten',
  4240. nameLabel: 'Name *',
  4241. namePlaceholder: 'Meine Benachrichtigungen',
  4242. providerTypeLabel: 'Anbietertyp *',
  4243. configuration: 'Konfiguration',
  4244. testConfiguration: 'Konfiguration testen',
  4245. printerFilter: 'Druckerfilter',
  4246. onlyFromPrinter: 'Nur Benachrichtigungen für Ereignisse von diesem Drucker senden',
  4247. quietHoursDnd: 'Ruhezeiten (Nicht stören)',
  4248. quietStart: 'Start',
  4249. quietEnd: 'Ende',
  4250. dailyDigestLabel: 'Tägliche Zusammenfassung',
  4251. sendDigestAt: 'Zusammenfassung senden um',
  4252. digestCollected: 'Ereignisse werden gesammelt und als einzelne Zusammenfassung zu dieser Zeit gesendet',
  4253. notificationEvents: 'Benachrichtigungsereignisse',
  4254. progressPercent: '(25%, 50%, 75%)',
  4255. bedCooledAfterPrint: '(nach Druckabschluss)',
  4256. cancel: 'Abbrechen',
  4257. save: 'Speichern',
  4258. add: 'Hinzufügen',
  4259. nameRequired: 'Name ist erforderlich',
  4260. fieldRequired: '{{field}} ist erforderlich',
  4261. // Config field labels
  4262. phoneNumber: 'Telefonnummer',
  4263. apiKey: 'API-Schlüssel',
  4264. serverUrl: 'Server-URL',
  4265. topic: 'Thema',
  4266. authToken: 'Auth-Token',
  4267. userKey: 'Benutzerschlüssel',
  4268. appToken: 'App-Token',
  4269. priority: 'Priorität',
  4270. botToken: 'Bot-Token',
  4271. chatId: 'Chat-ID',
  4272. smtpServer: 'SMTP-Server',
  4273. smtpPort: 'SMTP-Port',
  4274. security: 'Sicherheit',
  4275. authentication: 'Authentifizierung',
  4276. username: 'Benutzername',
  4277. password: 'Passwort',
  4278. fromEmail: 'Absender-E-Mail',
  4279. toEmail: 'Empfänger-E-Mail',
  4280. webhookUrl: 'Webhook-URL',
  4281. payloadFormat: 'Payload-Format',
  4282. authorization: 'Autorisierung',
  4283. titleFieldName: 'Titel-Feldname',
  4284. messageFieldName: 'Nachrichten-Feldname',
  4285. // NotificationTemplateEditor
  4286. editTemplate: 'Vorlage bearbeiten: {{name}}',
  4287. titleLabel: 'Titel',
  4288. bodyLabel: 'Inhalt',
  4289. titlePlaceholder: 'Benachrichtigungstitel...',
  4290. bodyPlaceholder: 'Benachrichtigungsinhalt...',
  4291. availableVariables: 'Verfügbare Variablen',
  4292. clickToInsert: 'Klicken, um an Cursorposition im Inhalt einzufügen',
  4293. livePreview: 'Live-Vorschau',
  4294. hide: 'Ausblenden',
  4295. show: 'Anzeigen',
  4296. loadingPreview: 'Vorschau wird geladen...',
  4297. enterTemplateContent: 'Vorlageninhalt eingeben, um Vorschau zu sehen',
  4298. titlePreview: 'Titel:',
  4299. bodyPreview: 'Inhalt:',
  4300. resetToDefault: 'Auf Standard zurücksetzen',
  4301. titleRequired: 'Titel ist erforderlich',
  4302. bodyRequired: 'Inhalt ist erforderlich',
  4303. // NotificationLogViewer
  4304. notificationLog: 'Benachrichtigungsprotokoll',
  4305. showFailedOnly: 'Nur fehlgeschlagene',
  4306. last24Hours: 'Letzte 24 Stunden',
  4307. last7Days: 'Letzte 7 Tage',
  4308. last30Days: 'Letzte 30 Tage',
  4309. last90Days: 'Letzte 90 Tage',
  4310. justNow: 'Gerade eben',
  4311. noFailedNotifications: 'Keine fehlgeschlagenen Benachrichtigungen',
  4312. noNotificationsLogged: 'Keine Benachrichtigungen protokolliert',
  4313. unknownProvider: 'Unbekannter Anbieter',
  4314. logTitle: 'Titel',
  4315. logMessage: 'Nachricht',
  4316. logError: 'Fehler',
  4317. logProvider: 'Anbieter: {{type}}',
  4318. logTime: 'Zeit: {{time}}',
  4319. refresh: 'Aktualisieren',
  4320. clearOld: 'Alte löschen',
  4321. statsSummary: 'Letzte {{days}} Tage:',
  4322. statsNotifications: 'Benachrichtigungen',
  4323. statsSent: '{{count}} gesendet',
  4324. statsFailed: '{{count}} fehlgeschlagen',
  4325. // Event type labels (for log viewer)
  4326. eventTypes: {
  4327. print_start: 'Druck gestartet',
  4328. print_complete: 'Druck abgeschlossen',
  4329. print_failed: 'Druck fehlgeschlagen',
  4330. print_stopped: 'Druck gestoppt',
  4331. print_progress: 'Fortschritt',
  4332. printer_offline: 'Drucker offline',
  4333. printer_error: 'Druckerfehler',
  4334. filament_low: 'Filament niedrig',
  4335. maintenance_due: 'Wartung fällig',
  4336. test: 'Test',
  4337. },
  4338. // User email notification preferences
  4339. userEmail: {
  4340. title: 'Benachrichtigungen',
  4341. emailNotifications: 'E-Mail-Benachrichtigungen',
  4342. emailNotificationsDesc: 'Erhalten Sie E-Mail-Benachrichtigungen für Ihre eigenen Druckaufträge. E-Mails werden über die in der erweiterten Authentifizierung konfigurierten SMTP-Einstellungen gesendet.',
  4343. sendingTo: 'Benachrichtigungen werden gesendet an',
  4344. noEmailWarning: 'Ihr Konto hat keine E-Mail-Adresse. Wenden Sie sich an einen Administrator, um eine hinzuzufügen.',
  4345. printJobNotifications: 'Druckauftrags-Benachrichtigungen',
  4346. printJobNotificationsDesc: 'Wählen Sie aus, welche Ereignisse E-Mail-Benachrichtigungen für von Ihnen gesendete Druckaufträge auslösen.',
  4347. printJobStarts: 'Druckauftrag startet',
  4348. printJobStartsDesc: 'Benachrichtigt werden, wenn Ihr Druckauftrag beginnt.',
  4349. printJobFinishes: 'Druckauftrag fertig',
  4350. printJobFinishesDesc: 'Benachrichtigt werden, wenn Ihr Druckauftrag erfolgreich abgeschlossen wurde.',
  4351. printErrors: 'Druckfehler',
  4352. printErrorsDesc: 'Benachrichtigt werden, wenn Ihr Druckauftrag fehlschlägt oder auf einen Fehler stößt.',
  4353. printJobStops: 'Druckauftrag gestoppt',
  4354. printJobStopsDesc: 'Benachrichtigt werden, wenn Ihr Druckauftrag abgebrochen oder gestoppt wird.',
  4355. saveSuccess: 'Benachrichtigungseinstellungen gespeichert.',
  4356. saveError: 'Benachrichtigungseinstellungen konnten nicht gespeichert werden.',
  4357. },
  4358. },
  4359. // Rich Text Editor
  4360. richTextEditor: {
  4361. bold: 'Fett',
  4362. italic: 'Kursiv',
  4363. underline: 'Unterstrichen',
  4364. bulletList: 'Aufzählungsliste',
  4365. numberedList: 'Nummerierte Liste',
  4366. alignLeft: 'Linksbündig',
  4367. alignCenter: 'Zentriert',
  4368. alignRight: 'Rechtsbündig',
  4369. addLink: 'Link hinzufügen',
  4370. removeLink: 'Link entfernen',
  4371. },
  4372. // External Links
  4373. externalLinks: {
  4374. noLinksConfigured: 'Keine externen Links konfiguriert',
  4375. deleteLink: 'Link löschen',
  4376. removeCustomIcon: 'Benutzerdefiniertes Symbol entfernen',
  4377. openInNewTab: 'In neuem Tab öffnen',
  4378. placeholders: {
  4379. linkName: 'Mein Link',
  4380. },
  4381. },
  4382. // Keyboard Shortcuts Modal
  4383. keyboardShortcuts: {
  4384. title: 'Tastaturkürzel',
  4385. navigation: 'Navigation',
  4386. archivesSection: 'Archive',
  4387. kProfilesSection: 'K-Profile',
  4388. generalSection: 'Allgemein',
  4389. shortcuts: {
  4390. goToPrinters: 'Zu Drucker gehen',
  4391. goToArchives: 'Zu Archiv gehen',
  4392. goToQueue: 'Zur Warteschlange gehen',
  4393. goToStats: 'Zu Statistiken gehen',
  4394. goToProfiles: 'Zu Cloud-Profilen gehen',
  4395. goToSettings: 'Zu Einstellungen gehen',
  4396. focusSearch: 'Suche fokussieren',
  4397. openUploadModal: 'Upload-Modal öffnen',
  4398. clearSelection: 'Auswahl löschen / Eingabe aufheben',
  4399. contextMenu: 'Kontextmenü auf Karten',
  4400. refreshProfiles: 'Profile aktualisieren',
  4401. newProfile: 'Neues Profil',
  4402. exitSelectionMode: 'Auswahlmodus beenden',
  4403. showHelp: 'Diese Hilfe anzeigen',
  4404. },
  4405. footer: 'Drücken Sie Esc oder klicken Sie außerhalb, um zu schließen',
  4406. },
  4407. // Notification Log
  4408. notificationLog: {
  4409. title: 'Benachrichtigungsprotokoll',
  4410. events: {
  4411. printStarted: 'Druck gestartet',
  4412. printComplete: 'Druck abgeschlossen',
  4413. printFailed: 'Druck fehlgeschlagen',
  4414. printStopped: 'Druck gestoppt',
  4415. progress: 'Fortschritt',
  4416. printerOffline: 'Drucker offline',
  4417. printerError: 'Druckerfehler',
  4418. lowFilament: 'Wenig Filament',
  4419. maintenanceDue: 'Wartung fällig',
  4420. test: 'Test',
  4421. },
  4422. timeAgo: {
  4423. justNow: 'Gerade eben',
  4424. minutesAgo: 'vor {{minutes}}m',
  4425. hoursAgo: 'vor {{hours}}h',
  4426. },
  4427. },
  4428. // Restore/Backup Modal
  4429. restoreBackup: {
  4430. title: 'Backup wiederherstellen',
  4431. restoring: 'Wird wiederhergestellt...',
  4432. restoreComplete: 'Wiederherstellung abgeschlossen',
  4433. restoreFailed: 'Wiederherstellung fehlgeschlagen',
  4434. importSettings: 'Einstellungen aus Backup-Datei importieren',
  4435. pleaseWait: 'Bitte warten Sie, während Ihre Daten wiederhergestellt werden',
  4436. clickToSelect: 'Klicken Sie, um Backup-Datei auszuwählen (.json oder .zip)',
  4437. howDuplicateHandling: 'So funktioniert die Duplikatbehandlung:',
  4438. categories: {
  4439. printers: 'Drucker',
  4440. smartPlugs: 'Smart Plugs',
  4441. notificationProviders: 'Benachrichtigungsanbieter',
  4442. filaments: 'Filamente',
  4443. archives: 'Archive',
  4444. pendingUploads: 'Ausstehende Uploads',
  4445. settingsTemplates: 'Einstellungen & Vorlagen',
  4446. },
  4447. matchingInfo: {
  4448. printers: 'abgeglichen nach Seriennummer',
  4449. smartPlugs: 'abgeglichen nach IP-Adresse',
  4450. notificationProviders: 'abgeglichen nach Name',
  4451. filaments: 'abgeglichen nach Name + Typ + Marke',
  4452. archives: 'abgeglichen nach Inhalts-Hash',
  4453. pendingUploads: 'abgeglichen nach Dateiname',
  4454. settingsTemplates: 'immer überschrieben',
  4455. },
  4456. replaceExisting: 'Vorhandene Daten ersetzen',
  4457. keepExisting: 'Vorhandene Daten behalten',
  4458. replaceDescription: 'Bereits vorhandene Elemente mit Backup-Daten überschreiben',
  4459. keepDescription: 'Nur Elemente wiederherstellen, die noch nicht existieren',
  4460. caution: 'Vorsicht:',
  4461. cautionText: 'Das Überschreiben ersetzt Ihre aktuellen Konfigurationen durch Backup-Daten. Drucker-Zugangscodes werden aus Sicherheitsgründen niemals überschrieben.',
  4462. itemsRestored: 'Wiederhergestellte Elemente',
  4463. itemsSkipped: 'Übersprungene Elemente',
  4464. restored: 'Wiederhergestellt',
  4465. skipped: 'Übersprungen (existieren bereits)',
  4466. filesLabel: 'Dateien (3MF, Thumbnails, etc.)',
  4467. newApiKeysGenerated: 'Neue API-Schlüssel generiert',
  4468. newApiKeysWarning: 'Diese Schlüssel werden nur einmal angezeigt. Kopieren Sie sie jetzt!',
  4469. processingBackup: 'Backup-Datei wird verarbeitet...',
  4470. noDataFound: 'In der Backup-Datei wurden keine wiederherzustellenden Daten gefunden.',
  4471. failedToRestore: 'Backup konnte nicht wiederhergestellt werden. Bitte überprüfen Sie das Dateiformat.',
  4472. },
  4473. // Backup Export Modal
  4474. backupExport: {
  4475. title: 'Backup exportieren',
  4476. selectData: 'Zu exportierende Daten auswählen',
  4477. selectAll: 'Alle auswählen',
  4478. selectNone: 'Keine auswählen',
  4479. categoryDescriptions: {
  4480. settings: 'Sprache, Theme, Update-Einstellungen',
  4481. notifications: 'ntfy, Pushover, Discord, usw.',
  4482. templates: 'Benutzerdefinierte Nachrichtenvorlagen',
  4483. smartPlugs: 'Tasmota-Plug-Konfigurationen',
  4484. externalLinks: 'Seitenleiste Links zu externen Diensten',
  4485. printers: 'Druckerinformationen (Zugangscodes ausgeschlossen)',
  4486. plateDetection: 'Leere Platten-Referenzbilder',
  4487. filaments: 'Filamenttypen und -kosten',
  4488. maintenance: 'Benutzerdefinierte Wartungspläne',
  4489. archives: 'Alle Druckdaten + Dateien (3MF, Thumbnails, Fotos)',
  4490. projects: 'Projekte, BOM-Elemente und Anhänge',
  4491. pendingUploads: 'Virtueller Drucker-Uploads zur Überprüfung',
  4492. apiKeys: 'Webhook-API-Schlüssel (neue Schlüssel bei Import generiert)',
  4493. },
  4494. requiresPrinters: 'Drucker müssen ausgewählt sein',
  4495. zipFileWarning: 'ZIP-Datei wird erstellt.',
  4496. zipFileDescription: 'Enthält alle 3MF-Dateien, Thumbnails, Zeitraffer und Fotos. Dies kann eine Weile dauern und zu einer großen Datei führen.',
  4497. includeAccessCodes: 'Zugangscodes einschließen',
  4498. includeAccessCodesDescription: 'Für die Übertragung auf eine andere Maschine',
  4499. includeAccessCodesWarning: 'Zugangscodes werden im Klartext eingeschlossen. Bewahren Sie diese Backup-Datei sicher auf!',
  4500. categoriesSelected: '{{selectedCount}} Kategorien ausgewählt',
  4501. },
  4502. // Pending Uploads Panel
  4503. pendingUploads: {
  4504. placeholders: {
  4505. notes: 'Notizen zu diesem Druck hinzufügen...',
  4506. },
  4507. discardUpload: 'Upload verwerfen',
  4508. archiveAllUploads: 'Alle Uploads archivieren',
  4509. discardAllUploads: 'Alle Uploads verwerfen',
  4510. archive: 'Archivieren',
  4511. timeAgo: {
  4512. justNow: 'Gerade eben',
  4513. minutesAgo: 'vor {{minutes}}m',
  4514. hoursAgo: 'vor {{hours}}h',
  4515. daysAgo: 'vor {{days}}d',
  4516. },
  4517. },
  4518. // API Browser
  4519. apiBrowser: {
  4520. placeholders: {
  4521. requestBody: 'JSON-Anforderungstext...',
  4522. searchEndpoints: 'Endpunkte suchen...',
  4523. },
  4524. },
  4525. // Configure AMS Slot Modal
  4526. configureAmsSlot: {
  4527. title: 'AMS-Slot konfigurieren',
  4528. slotConfigured: 'Slot konfiguriert!',
  4529. configuringSlot: 'Slot wird konfiguriert:',
  4530. slotLabel: '{{ams}} Slot {{slot}}',
  4531. searchPresets: 'Voreinstellungen suchen...',
  4532. colorPlaceholder: 'Farbname oder Hex (z.B. braun, FF8800)',
  4533. clearCustomColor: 'Benutzerdefinierte Farbe löschen',
  4534. noCloudPresets: 'Keine Cloud-Voreinstellungen. Melden Sie sich bei Bambu Cloud an, um zu synchronisieren.',
  4535. noPresetsAvailable: 'Keine Voreinstellungen verfügbar. Melden Sie sich bei Bambu Cloud an oder importieren Sie lokale Profile.',
  4536. noMatchingPresets: 'Keine passenden Voreinstellungen gefunden.',
  4537. custom: 'Benutzerdefiniert',
  4538. builtin: 'Integriert',
  4539. settingsSentToPrinter: 'Einstellungen an Drucker gesendet',
  4540. filamentProfile: 'Filamentprofil',
  4541. kProfileLabel: 'K-Profil (Pressure Advance)',
  4542. filteringFor: 'Filtern nach: {{material}}',
  4543. noKProfile: 'Kein K-Profil (Standard 0.020 verwenden)',
  4544. noMatchingKProfiles: 'Keine passenden K-Profile gefunden. Standard K=0.020 wird verwendet.',
  4545. selectFilamentFirst: 'Zuerst ein Filamentprofil auswählen',
  4546. kFromCalibration: 'K={{value}} aus Druckerkalibrierung',
  4547. customColorLabel: 'Benutzerdefinierte Farbe (optional)',
  4548. presetColors: '{{name}} Farben:',
  4549. showLessColors: 'Weniger Farben anzeigen',
  4550. showMoreColors: 'Mehr Farben anzeigen',
  4551. clear: 'Löschen',
  4552. hexLabel: 'Hex: #{{hex}}',
  4553. resetting: 'Wird zurückgesetzt...',
  4554. resetSlot: 'Slot zurücksetzen',
  4555. cancel: 'Abbrechen',
  4556. configuring: 'Wird konfiguriert...',
  4557. configureSlot: 'Slot konfigurieren',
  4558. },
  4559. // GitHub Backup Settings
  4560. githubBackup: {
  4561. title: 'GitHub-Backup',
  4562. history: 'Verlauf',
  4563. downloadBackup: 'Backup herunterladen',
  4564. restoreBackup: 'Backup wiederherstellen',
  4565. noBackupsYet: 'Noch keine Backups',
  4566. },
  4567. // Email Settings
  4568. emailSettings: {
  4569. placeholders: {
  4570. fromName: 'BamBuddy',
  4571. },
  4572. },
  4573. // Tag Management Modal
  4574. tagManagement: {
  4575. searchTags: 'Tags suchen...',
  4576. renameTag: 'Tag umbenennen',
  4577. deleteTag: 'Tag löschen',
  4578. },
  4579. // Notification Template Editor
  4580. notificationTemplates: {
  4581. placeholders: {
  4582. title: 'Benachrichtigungstitel...',
  4583. body: 'Benachrichtigungstext...',
  4584. },
  4585. },
  4586. // Batch Tag Modal
  4587. batchTag: {
  4588. placeholders: {
  4589. newTag: 'Neuen Tag eingeben...',
  4590. },
  4591. },
  4592. // Photo Gallery Modal
  4593. photoGallery: {
  4594. deletePhoto: 'Foto löschen',
  4595. },
  4596. // Filament Hover Card
  4597. filamentHoverCard: {
  4598. copySpoolUuid: 'Spulen-UUID kopieren',
  4599. },
  4600. // K Profiles View
  4601. kProfilesView: {
  4602. hasNote: 'Hat Notiz',
  4603. copyProfile: 'Profil kopieren',
  4604. },
  4605. // Layout/Navigation
  4606. layout: {
  4607. openMenu: 'Menü öffnen',
  4608. noPermissionSystemInfo: 'Sie haben keine Berechtigung zum Anzeigen von Systeminformationen',
  4609. },
  4610. // Dashboard
  4611. dashboard: {
  4612. dragToReorder: 'Ziehen zum Neuordnen',
  4613. hideWidget: 'Widget ausblenden',
  4614. },
  4615. // Notification Provider Card
  4616. notificationProviderCard: {
  4617. deleteNotificationProvider: 'Benachrichtigungsanbieter löschen',
  4618. },
  4619. // File Manager Modal
  4620. fileManagerModal: {
  4621. closeFileManager: 'Dateimanager schließen',
  4622. sortFiles: 'Dateien sortieren',
  4623. goToParentFolder: 'Zum übergeordneten Ordner gehen',
  4624. threeView: '3D-Ansicht',
  4625. },
  4626. // Embedded Camera Viewer
  4627. embeddedCameraViewer: {
  4628. refreshStream: 'Stream aktualisieren',
  4629. close: 'Schließen',
  4630. zoomOut: 'Verkleinern',
  4631. resetZoom: 'Zoom zurücksetzen',
  4632. zoomIn: 'Vergrößern',
  4633. dragToResize: 'Ziehen zum Größe ändern',
  4634. },
  4635. // Timelapse Viewer
  4636. timelapseViewer: {
  4637. skipBack5s: '5s zurückspringen',
  4638. skipForward5s: '5s vorspringen',
  4639. },
  4640. // Notification Providers
  4641. notificationProviders: {
  4642. descriptions: {
  4643. email: 'SMTP-E-Mail-Benachrichtigungen',
  4644. telegram: 'Benachrichtigungen über Telegram-Bot',
  4645. discord: 'An Discord-Kanal über Webhook senden',
  4646. ntfy: 'Kostenlose, selbst hostbare Push-Benachrichtigungen',
  4647. pushover: 'Einfache, zuverlässige Push-Benachrichtigungen',
  4648. callmebot: 'Kostenlose WhatsApp-Benachrichtigungen über CallMeBot',
  4649. webhook: 'Generischer HTTP POST zu beliebiger URL',
  4650. },
  4651. },
  4652. // Log Viewer
  4653. logViewer: {
  4654. searchPlaceholder: 'Nachricht oder Logger-Name suchen...',
  4655. noLogEntries: 'Keine Logeinträge gefunden',
  4656. },
  4657. // Switchbar Popover
  4658. switchbarPopover: {
  4659. noSwitchesInSwitchbar: 'Keine Schalter in Schalterleiste',
  4660. },
  4661. // Project Page Modal
  4662. projectPageModal: {
  4663. placeholders: {
  4664. title: 'Titel',
  4665. designer: 'Designer',
  4666. license: 'Lizenz',
  4667. description: 'Beschreibung eingeben...',
  4668. profileTitle: 'Profil-Titel',
  4669. profileDescription: 'Profilbeschreibung...',
  4670. },
  4671. },
  4672. // Spoolman Settings
  4673. spoolmanSettings: {},
  4674. // Time
  4675. time: {
  4676. unknown: '-',
  4677. waiting: 'Wartend',
  4678. justNow: 'Gerade eben',
  4679. now: 'Jetzt',
  4680. minsAgo: 'vor {{count}}m',
  4681. inMins: 'in {{count}}m',
  4682. hoursAgo: 'vor {{count}}h',
  4683. inHours: 'in {{count}}h',
  4684. daysAgo: 'vor {{count}}d',
  4685. inDays: 'in {{count}}d',
  4686. },
  4687. // SpoolBuddy Kiosk
  4688. spoolbuddy: {
  4689. nav: {
  4690. dashboard: 'Dashboard',
  4691. ams: 'AMS',
  4692. inventory: 'Inventar',
  4693. writeTag: 'Schreiben',
  4694. settings: 'Einstellungen',
  4695. },
  4696. status: {
  4697. nfcReady: 'NFC bereit',
  4698. nfcOff: 'NFC aus',
  4699. offline: 'Offline',
  4700. online: 'Online',
  4701. noPrinters: 'Keine Drucker',
  4702. deviceOffline: 'Gerät offline',
  4703. waitingConnection: 'Warte auf Geräteverbindung...',
  4704. systemReady: 'System bereit',
  4705. status: 'Status',
  4706. },
  4707. dashboard: {
  4708. readyToScan: 'Bereit zum Scannen',
  4709. idleMessage: 'Spule auf die Waage legen zum Identifizieren',
  4710. nfcHint: 'NFC-Tag wird automatisch gelesen',
  4711. device: 'Gerät',
  4712. syncWeight: 'Gewicht sync.',
  4713. weightSynced: 'Synchronisiert!',
  4714. unknownTag: 'Unbekannter Tag',
  4715. newTag: 'Neuer Tag erkannt',
  4716. onScale: 'auf der Waage',
  4717. linkSpool: 'Mit Spule verknüpfen',
  4718. linkTagTitle: 'Tag mit Spule verknüpfen',
  4719. linkTag: 'Tag verknüpfen',
  4720. selectSpool: 'Spule zum Verknüpfen auswählen:',
  4721. noUntagged: 'Keine Spulen ohne Tags gefunden',
  4722. tagDetected: 'Tag erkannt',
  4723. noTag: 'Kein Tag',
  4724. tagId: 'Tag',
  4725. grossWeight: 'Bruttogewicht',
  4726. spoolSize: 'Spulengröße',
  4727. close: 'Schließen',
  4728. currentSpool: 'Aktuelle Spule',
  4729. },
  4730. modal: {
  4731. spoolDetected: 'Spule erkannt',
  4732. assignToAms: 'AMS zuweisen',
  4733. syncWeight: 'Gewicht sync.',
  4734. weightSynced: 'Synchronisiert!',
  4735. syncing: 'Synchronisiere...',
  4736. newTagDetected: 'Neuer Tag erkannt',
  4737. addToInventory: 'Zum Inventar hinzufügen',
  4738. assignToAmsTitle: 'AMS zuweisen',
  4739. selectSlot: 'Slot auswählen',
  4740. assign: 'Zuweisen',
  4741. assigning: 'Zuweisen...',
  4742. assignSuccess: 'Zugewiesen!',
  4743. assignError: 'Fehler beim Zuweisen. Bitte erneut versuchen.',
  4744. noPrinterSelected: 'Drucker auswählen...',
  4745. noAmsDetected: 'Kein AMS an diesem Drucker erkannt',
  4746. slot: 'Slot',
  4747. },
  4748. weight: {
  4749. noReading: 'Kein Messwert',
  4750. stable: 'Stabil',
  4751. measuring: 'Messen...',
  4752. tare: 'Tarieren',
  4753. calibrate: 'Kalibrieren',
  4754. },
  4755. spool: {
  4756. remaining: 'Verbleibend',
  4757. material: 'Material',
  4758. brand: 'Marke',
  4759. color: 'Farbe',
  4760. coreWeight: 'Kern',
  4761. labelWeight: 'Etikett',
  4762. scaleWeight: 'Waage',
  4763. netWeight: 'Netto',
  4764. lastUsed: 'Zuletzt verwendet',
  4765. },
  4766. ams: {
  4767. noData: 'Kein AMS erkannt',
  4768. connectAms: 'AMS anschließen um Filament-Slots zu sehen',
  4769. noPrinter: 'Kein Drucker ausgewählt',
  4770. selectPrinter: 'Drucker in der oberen Leiste auswählen',
  4771. printerDisconnected: 'Drucker getrennt',
  4772. humidity: 'Feuchtigkeit',
  4773. level: 'Stufe',
  4774. active: 'Aktiv',
  4775. slot: 'Slot',
  4776. empty: 'Leer',
  4777. },
  4778. inventory: {
  4779. search: 'Spulen suchen...',
  4780. empty: 'Keine Spulen im Inventar',
  4781. noResults: 'Keine passenden Spulen',
  4782. spools: 'Spulen',
  4783. addSpool: 'Spule hinzufügen',
  4784. },
  4785. settings: {
  4786. // Tabs
  4787. tabDevice: 'Gerät',
  4788. tabDisplay: 'Anzeige',
  4789. tabScale: 'Waage',
  4790. tabUpdates: 'Updates',
  4791. // Device tab
  4792. nfcReader: 'NFC-Leser',
  4793. type: 'Typ',
  4794. connection: 'Verbindung',
  4795. notConnected: 'N/A',
  4796. deviceInfo: 'Geräteinfo',
  4797. hostname: 'Host',
  4798. uptime: 'Betriebszeit',
  4799. systemConfig: 'Backend & Auth',
  4800. backendUrl: 'Bambuddy Backend URL',
  4801. apiToken: 'API-Token',
  4802. apiTokenPlaceholder: 'API-Token eingeben',
  4803. saveConfig: 'Konfiguration speichern',
  4804. systemQueued: 'Konfiguration in Warteschlange.',
  4805. nfcDiagnostic: 'NFC-Diagnose',
  4806. scaleDiagnostic: 'Waagen-Diagnose',
  4807. readTagDiagnostic: 'Tag-Lese-Diagnose',
  4808. testNfc: 'Leser testen',
  4809. testScale: 'Genauigkeit testen',
  4810. testReadTag: 'Tag lesen',
  4811. systemFieldsRequired: 'Backend-URL ist erforderlich.',
  4812. // Display tab
  4813. brightness: 'Helligkeit',
  4814. saved: 'Gespeichert',
  4815. noBacklight: 'Keine DSI-Hintergrundbeleuchtung erkannt. Helligkeitssteuerung erfordert ein DSI-Display.',
  4816. screenBlank: 'Bildschirm-Abschaltzeit',
  4817. screenBlankDesc: 'Bildschirm schaltet sich nach Inaktivität ab. Zum Aufwecken berühren.',
  4818. displayNote: 'Helligkeit wird als Software-Filter angewendet.',
  4819. // Scale tab
  4820. scaleCalibration: 'Waagen-Kalibrierung',
  4821. currentWeight: 'Aktuelles Gewicht',
  4822. tareOffset: 'Tara',
  4823. calFactor: 'Faktor',
  4824. knownWeight: 'Bekanntes Gewicht',
  4825. calStep1: 'Alle Gegenstände von der Waage entfernen und Nullpunkt setzen.',
  4826. calStep2: 'Bekanntes Gewicht auf die Waage legen.',
  4827. setZero: 'Nullpunkt setzen',
  4828. calibrateNow: 'Kalibrieren',
  4829. calibrated: 'Kalibriert',
  4830. tareSet: 'Tara-Befehl gesendet. Warte auf Gerät...',
  4831. tareFailed: 'Tara-Befehl fehlgeschlagen',
  4832. zeroSet: 'Nullpunkt gesetzt. Bekanntes Gewicht auf die Waage legen.',
  4833. calibrationDone: 'Kalibrierung abgeschlossen!',
  4834. calibrationFailed: 'Kalibrierung fehlgeschlagen',
  4835. lastCalibrated: 'Zuletzt kalibriert',
  4836. stable: 'Stabil',
  4837. settling: 'Stabilisierung...',
  4838. firmware: 'Firmware',
  4839. scale: 'Waage',
  4840. noDevice: 'Kein SpoolBuddy-Gerät gefunden',
  4841. // Updates tab
  4842. daemonVersion: 'Daemon-Version',
  4843. currentVersion: 'Aktuell',
  4844. versionPending: 'Warte auf Daemon...',
  4845. checking: 'Prüfe...',
  4846. checkUpdates: 'Nach Updates suchen',
  4847. updateAvailable: 'Update verfügbar',
  4848. updateInstructions: 'Update per SSH: SpoolBuddy-Installationsskript ausführen.',
  4849. upToDate: 'Aktuell',
  4850. includeBeta: 'Beta-Versionen einschließen',
  4851. },
  4852. writeTag: {
  4853. tabExisting: 'Vorhandene Spule',
  4854. tabNew: 'Neue Spule',
  4855. tabReplace: 'Tag ersetzen',
  4856. searchPlaceholder: 'Suche nach Material, Farbe, Marke...',
  4857. noUntaggedSpools: 'Keine Spulen ohne Tags',
  4858. noTaggedSpools: 'Keine Spulen mit Tags',
  4859. selectSpool: 'Spule auswählen, dann einen NTAG auf den Leser legen',
  4860. placeTag: 'NTAG auf den Leser legen',
  4861. tagReady: 'Tag erkannt — bereit zum Schreiben',
  4862. writeTag: 'Tag beschreiben',
  4863. replaceTag: 'Tag ersetzen',
  4864. writing: 'Tag wird beschrieben...',
  4865. waiting: 'Warte auf SpoolBuddy...',
  4866. writeSuccess: 'Tag erfolgreich beschrieben!',
  4867. writeFailed: 'Schreiben fehlgeschlagen',
  4868. queueFailed: 'Schreibbefehl konnte nicht eingereiht werden',
  4869. tryAgain: 'Erneut versuchen',
  4870. cancel: 'Abbrechen',
  4871. replaceWarning: 'Alter Tag wird getrennt. Neuer Tag ersetzt ihn.',
  4872. deviceOffline: 'SpoolBuddy ist offline',
  4873. material: 'Material',
  4874. colorName: 'Farbname',
  4875. color: 'Farbe',
  4876. brand: 'Marke',
  4877. weight: 'Gewicht (g)',
  4878. createSpool: 'Spule erstellen',
  4879. creating: 'Wird erstellt...',
  4880. spoolCreated: 'Spule erstellt! Bereit zum Schreiben.',
  4881. createFailed: 'Spule konnte nicht erstellt werden',
  4882. },
  4883. quickMenu: {
  4884. printerPower: 'Drucker-Strom',
  4885. systemControls: 'System',
  4886. restartDaemon: 'Daemon neustarten',
  4887. restartBrowser: 'Browser neustarten',
  4888. reboot: 'Neustart',
  4889. shutdown: 'Herunterfahren',
  4890. swipeToClose: 'Nach unten wischen zum Schließen',
  4891. confirmTitle: 'Bestätigen',
  4892. confirmShutdown: 'Möchten Sie das SpoolBuddy wirklich herunterfahren? Sie benötigen physischen Zugang, um es wieder einzuschalten.',
  4893. confirmReboot: 'Möchten Sie das SpoolBuddy wirklich neu starten?',
  4894. confirmRestartDaemon: 'SpoolBuddy-Daemon neustarten? NFC und Waage sind vorübergehend nicht verfügbar.',
  4895. confirmRestartBrowser: 'Kiosk-Browser neustarten? Das Display wird kurz schwarz.',
  4896. confirm: 'Bestätigen',
  4897. confirmPlugOn: '{{name}} einschalten?',
  4898. confirmPlugOff: '{{name}} ausschalten?',
  4899. turnOn: 'Einschalten',
  4900. turnOff: 'Ausschalten',
  4901. },
  4902. },
  4903. bugReport: {
  4904. title: 'Fehler melden',
  4905. description: 'Beschreibung',
  4906. descriptionPlaceholder: 'Was ist schiefgelaufen? Bitte beschreiben Sie das Problem...',
  4907. email: 'E-Mail (optional)',
  4908. emailPlaceholder: 'ihre@email.de',
  4909. emailPrivacy: 'Falls angegeben, wird Ihre E-Mail in einem eingeklappten Abschnitt des GitHub-Issues aufgeführt, damit der Betreuer sich melden kann.',
  4910. screenshot: 'Screenshot',
  4911. uploadOrPaste: 'Bild hochladen, einfügen oder ziehen',
  4912. dataCollectedSummary: 'Welche Daten werden im Bericht gesendet?',
  4913. dataIncluded: 'Enthalten:',
  4914. dataIncludedList: 'App-Version, Betriebssystem, Architektur, Python-Version, Datenbankstatistiken (nur Anzahl), Druckermodelle, Düsenanzahl, Firmware-Versionen, Verbindungsstatus, Integrationsstatus (Spoolman, MQTT, HA), nicht-sensible Einstellungen, Netzwerkschnittstellenanzahl, Docker-Details, Abhängigkeitsversionen.',
  4915. dataNeverIncluded: 'Nie enthalten:',
  4916. dataNeverIncludedList: 'Druckernamen, Seriennummern, Zugangscodes, Passwörter, IP-Adressen, E-Mail-Adressen, API-Schlüssel, Tokens, Webhook-URLs, Hostnamen oder Benutzernamen.',
  4917. submit: 'Absenden',
  4918. startLogging: 'Debug-Protokollierung starten',
  4919. stepEnableLogging: 'Debug-Protokollierung aktiviert',
  4920. stepReproduce: 'Problem jetzt reproduzieren',
  4921. stepStopLogging: 'Stoppen & Bericht senden',
  4922. stopAndSubmit: 'Stoppen & Senden',
  4923. maxDuration: 'Stoppt automatisch nach {{minutes}} Min.',
  4924. stoppingLogs: 'Protokolle sammeln & senden...',
  4925. submitting: 'Fehlerbericht wird gesendet...',
  4926. submitSuccess: 'Fehlerbericht erfolgreich gesendet!',
  4927. submitFailed: 'Fehlerbericht konnte nicht gesendet werden',
  4928. thankYou: 'Vielen Dank!',
  4929. submitted: 'Ihr Fehlerbericht wurde eingereicht.',
  4930. viewIssue: 'Issue ansehen',
  4931. unexpectedError: 'Ein unerwarteter Fehler ist aufgetreten',
  4932. },
  4933. failureDetection: {
  4934. title: 'KI-Fehlererkennung',
  4935. description: 'Überwacht Drucke über eine selbst gehostete Obico-ML-API und reagiert automatisch auf erkannte Fehldrucke.',
  4936. mlUrl: 'Obico-ML-API-URL',
  4937. mlUrlHint: 'Basis-URL deines selbst gehosteten Obico-ml_api-Containers (z. B. http://192.168.1.10:3333).',
  4938. test: 'Testen',
  4939. testSuccess: 'ML-API erreichbar und funktionsfähig.',
  4940. testFailed: 'ML-API konnte nicht erreicht werden.',
  4941. sensitivity: 'Empfindlichkeit',
  4942. sensitivityLow: 'Niedrig (weniger Fehlalarme)',
  4943. sensitivityMedium: 'Mittel (ausgewogen)',
  4944. sensitivityHigh: 'Hoch (frühe Erkennung, mehr Fehlalarme)',
  4945. sensitivityHint: 'Passt die Konfidenz-Schwellwerte an, die Warnungen und Fehler auslösen.',
  4946. action: 'Aktion bei erkanntem Fehler',
  4947. actionNotify: 'Nur benachrichtigen',
  4948. actionPause: 'Druck pausieren',
  4949. actionPauseOff: 'Pausieren und Strom abschalten',
  4950. pollInterval: 'Prüfintervall (Sekunden)',
  4951. pollIntervalHint: 'Wie oft jeder Drucker während eines laufenden Drucks geprüft wird. Minimum 5 s, Maximum 120 s.',
  4952. externalUrlMissing: 'Externe URL ist nicht gesetzt.',
  4953. externalUrlHint: 'Die ML-API lädt das Kamerabild per URL. Setze die Externe URL in den allgemeinen Einstellungen, damit der ML-API-Container Bambuddy erreichen kann.',
  4954. perPrinterTitle: 'Überwachte Drucker',
  4955. perPrinterHint: 'Wähle, welche Drucker vom Erkennungsdienst überwacht werden.',
  4956. monitorAll: 'Alle verbundenen Drucker überwachen',
  4957. statusTitle: 'Status',
  4958. serviceRunning: 'Dienst läuft',
  4959. thresholds: 'Niedrig / Hoch-Schwellwerte',
  4960. activePrinters: 'Aktive Drucke',
  4961. noActivePrints: 'Derzeit laufen keine Drucke.',
  4962. historyTitle: 'Letzte Erkennungen',
  4963. noHistory: 'Noch keine Erkennungen.',
  4964. },
  4965. };