de.ts 235 KB

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