| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635 |
- export default {
- // Navigation
- nav: {
- printers: 'Drucker',
- archives: 'Archiv',
- queue: 'Warteschlange',
- stats: 'Statistiken',
- profiles: 'Profile',
- maintenance: 'Wartung',
- projects: 'Projekte',
- inventory: 'Filament',
- files: 'Dateimanager',
- notifications: 'Benachrichtigungen',
- settings: 'Einstellungen',
- system: 'System',
- collapseSidebar: 'Seitenleiste einklappen',
- expandSidebar: 'Seitenleiste ausklappen',
- update: 'Update',
- updateAvailable: 'Update verfügbar: v{{version}}',
- updateAvailableBanner: 'Version {{version}} ist verfügbar!',
- viewUpdate: 'Update anzeigen',
- viewOnGithub: 'Auf GitHub ansehen',
- keyboardShortcuts: 'Tastaturkürzel (?)',
- switchToLight: 'Zum hellen Modus wechseln',
- switchToDark: 'Zum dunklen Modus wechseln',
- smartSwitches: 'Smart Switches',
- logout: 'Abmelden',
- },
- // Common
- common: {
- save: 'Speichern',
- saving: 'Speichern...',
- cancel: 'Abbrechen',
- delete: 'Löschen',
- edit: 'Bearbeiten',
- add: 'Hinzufügen',
- close: 'Schließen',
- confirm: 'Bestätigen',
- loading: 'Lädt...',
- error: 'Fehler',
- success: 'Erfolg',
- warning: 'Warnung',
- enabled: 'Aktiviert',
- disabled: 'Deaktiviert',
- yes: 'Ja',
- no: 'Nein',
- on: 'An',
- off: 'Aus',
- all: 'Alle',
- none: 'Keine',
- search: 'Suchen',
- filter: 'Filtern',
- sort: 'Sortieren',
- refresh: 'Aktualisieren',
- download: 'Herunterladen',
- upload: 'Hochladen',
- uploading: 'Hochladen...',
- uploadFailed: 'Hochladen fehlgeschlagen',
- actions: 'Aktionen',
- status: 'Status',
- name: 'Name',
- description: 'Beschreibung',
- date: 'Datum',
- time: 'Zeit',
- hours: 'Stunden',
- minutes: 'Minuten',
- seconds: 'Sekunden',
- days: 'Tage',
- enable: 'Aktivieren',
- disable: 'Deaktivieren',
- permissions: 'Berechtigungen',
- noPrinters: 'Keine Drucker konfiguriert',
- noData: 'Keine Daten verfügbar',
- linkNotFound: 'Link nicht gefunden',
- required: 'Erforderlich',
- optional: 'Optional',
- dismiss: 'Schließen',
- apply: 'Anwenden',
- reset: 'Zurücksetzen',
- export: 'Exportieren',
- import: 'Importieren',
- clear: 'Leeren',
- selectAll: 'Alle auswählen',
- deselectAll: 'Auswahl aufheben',
- noChange: '— Keine Änderung —',
- unchanged: 'Unverändert',
- unassigned: 'Nicht zugewiesen',
- unknown: 'Unbekannt',
- unknownError: 'Unbekannter Fehler',
- today: 'Heute',
- tomorrow: 'Morgen',
- asap: 'Sofort',
- overdue: 'Überfällig',
- now: 'Jetzt',
- collapse: 'Einklappen',
- expand: 'Ausklappen',
- viewArchive: 'Archiv anzeigen',
- viewInFileManager: 'Im Dateimanager anzeigen',
- addedBy: 'Hinzugefügt von {{username}}',
- prints: 'Drucke',
- more: '+{{count}} weitere',
- ascending: 'Aufsteigend',
- descending: 'Absteigend',
- printer: 'Drucker',
- remove: 'Entfernen',
- type: 'Typ',
- print: 'Drucken',
- rename: 'Umbenennen',
- move: 'Verschieben',
- create: 'Erstellen',
- duplicate: 'Duplizieren',
- left: 'Links',
- right: 'Rechts',
- },
- // Printers page
- printers: {
- title: 'Drucker',
- addPrinter: 'Drucker hinzufügen',
- editPrinter: 'Drucker bearbeiten',
- deletePrinter: 'Drucker löschen',
- printerName: 'Druckername',
- serialNumber: 'Seriennummer',
- ipAddress: 'IP-Adresse / Hostname',
- accessCode: 'Zugangscode',
- model: 'Modell',
- nozzleCount: 'Düsenanzahl',
- autoArchive: 'Automatische Archivierung',
- status: {
- available: 'Verfügbar',
- idle: 'Bereit',
- printing: 'Druckt',
- paused: 'Pausiert',
- offline: 'Offline',
- problem: 'Problem',
- error: 'Fehler',
- finished: 'Fertig',
- unknown: 'Unbekannt',
- },
- temperatures: {
- nozzle: 'Düse',
- bed: 'Druckbett',
- chamber: 'Kammer',
- },
- progress: '{{percent}}% abgeschlossen',
- timeRemaining: 'Noch {{time}}',
- deleteConfirm: 'Möchten Sie "{{name}}" wirklich löschen?',
- maintenanceOk: 'Wartung OK',
- maintenanceWarning: '{{count}} Warnung',
- maintenanceWarning_plural: '{{count}} Warnungen',
- maintenanceDue: '{{count}} fällig',
- maintenanceDue_plural: '{{count}} fällig',
- // Sort options
- sort: {
- name: 'Name',
- status: 'Status',
- model: 'Modell',
- location: 'Standort',
- ascending: 'Aufsteigend sortieren',
- descending: 'Absteigend sortieren',
- },
- // Card size
- cardSize: {
- small: 'Kleine Karten',
- medium: 'Mittlere Karten',
- large: 'Große Karten',
- extraLarge: 'Extra große Karten',
- },
- // Controls
- hideOffline: 'Offline ausblenden',
- nextAvailable: 'Nächster verfügbar',
- powerOn: 'Einschalten',
- offlinePrintersWithPlugs: 'Offline-Drucker mit Smart-Plugs',
- noPrintersConfigured: 'Noch keine Drucker konfiguriert',
- // Printer card
- readyToPrint: 'Druckbereit',
- external: 'Extern',
- extL: 'Ext-L',
- extR: 'Ext-R',
- deleteArchives: 'Druckarchive löschen',
- noLabel: 'Keine Bezeichnung',
- printPreview: 'Druckvorschau',
- width: 'Breite',
- height: 'Höhe',
- noObjectsFound: 'Keine Objekte gefunden',
- objectsLoadedOnPrintStart: 'Objekte werden beim Druckstart geladen',
- willBeSkipped: 'Wird übersprungen',
- name: 'Name',
- serialCannotBeChanged: 'Seriennummer kann nicht geändert werden',
- locationHelp: 'Dient zur Gruppierung von Druckern und zum Filtern von Warteschlangenaufträgen',
- // WiFi signal strength
- wifiSignal: {
- veryWeak: 'Sehr schwach',
- weak: 'Schwach',
- fair: 'Ausreichend',
- good: 'Gut',
- excellent: 'Ausgezeichnet',
- },
- // Maintenance
- maintenanceUpToDate: 'Alle Wartungen aktuell - Klicken zum Anzeigen',
- // Chamber light
- chamberLightOn: 'Kammerbeleuchtung einschalten',
- chamberLightOff: 'Kammerbeleuchtung ausschalten',
- // Files
- files: 'Dateien',
- browseFiles: 'Druckerdateien durchsuchen',
- // Smart plug
- autoOffAfterPrint: 'Automatisches Ausschalten nach Druck',
- autoOffExecuted: 'Auto-off wurde ausgeführt - Drucker einschalten zum Zurücksetzen',
- // HMS errors
- hmsErrors: 'HMS-Fehler',
- viewHmsErrors: '{{count}} HMS-Fehler anzeigen',
- // Actions
- resume: 'Fortsetzen',
- pause: 'Pausieren',
- stop: 'Stoppen',
- camera: 'Kamera',
- skipObject: 'Objekt überspringen',
- reconnect: 'Neu verbinden',
- mqttDebug: 'MQTT-Debug',
- printerInformation: 'Druckerinformationen',
- copyToClipboard: 'Kopieren',
- copied: 'Kopiert!',
- state: 'Zustand',
- wifiSignalLabel: 'WLAN-Signal',
- developerMode: 'Entwicklermodus',
- enabled: 'Aktiviert',
- disabled: 'Deaktiviert',
- addedOn: 'Hinzugefügt',
- sdCard: 'SD-Karte',
- inserted: 'Eingelegt',
- notInserted: 'Nicht eingelegt',
- totalPrintHours: 'Druckstunden',
- activeNozzle: 'Aktiv: {{nozzle}} Düse',
- nozzleRack: 'Düsenhalter',
- nozzleDocked: 'Angedockt',
- nozzleMounted: 'Montiert',
- nozzleActive: 'Aktiv',
- nozzleIdle: 'Inaktiv',
- nozzleDiameter: 'Durchmesser',
- nozzleType: 'Typ',
- nozzleStatus: 'Status',
- nozzleFilament: 'Filament',
- nozzleWear: 'Verschleiß',
- nozzleMaxTemp: 'Max Temp',
- nozzleSerial: 'Seriennr.',
- nozzleHardenedSteel: 'Gehärteter Stahl',
- nozzleStainlessSteel: 'Edelstahl',
- nozzleTungstenCarbide: 'Wolframkarbid',
- nozzleFlow: 'Durchfluss',
- nozzleHighFlow: 'High Flow',
- nozzleStandardFlow: 'Standard',
- // Firmware
- firmwareUpdate: 'Firmware-Update',
- firmwareInstructions: 'Gehen Sie auf dem Touchscreen des Druckers zu',
- firmwareNav: 'Navigieren Sie zu',
- settings: 'Einstellungen',
- firmware: 'Firmware',
- // Discovery
- discoverPrinters: 'Drucker entdecken',
- searching: 'Suche...',
- manualEntry: 'Manuelle Eingabe',
- addFromCloud: 'Aus Cloud hinzufügen',
- // Toast messages
- toast: {
- printerDeleted: 'Drucker gelöscht',
- missingSpoolAssignment: 'Druck gestartet auf {{printer}}. Fehlende Spulenzuordnung für: {{slots}}',
- printerAdded: 'Drucker hinzugefügt',
- printerUpdated: 'Drucker aktualisiert',
- failedToDelete: 'Drucker konnte nicht gelöscht werden',
- failedToAdd: 'Drucker konnte nicht hinzugefügt werden',
- failedToUpdate: 'Drucker konnte nicht aktualisiert werden',
- commandSent: 'Befehl gesendet',
- failedToSendCommand: 'Befehl konnte nicht gesendet werden',
- turnedOn: '{{name}} eingeschaltet',
- failedToPowerOn: '{{name}} konnte nicht eingeschaltet werden',
- scriptTriggered: 'Skript ausgelöst',
- printStopped: 'Druck gestoppt',
- printPaused: 'Druck pausiert',
- printResumed: 'Druck fortgesetzt',
- referenceDeleted: 'Referenz gelöscht',
- detectionAreaSaved: 'Erkennungsbereich gespeichert',
- failedToRunScript: 'Skript konnte nicht ausgeführt werden',
- failedToStopPrint: 'Druck konnte nicht gestoppt werden',
- failedToPausePrint: 'Druck konnte nicht pausiert werden',
- failedToResumePrint: 'Druck konnte nicht fortgesetzt werden',
- failedToControlChamberLight: 'Kammerbeleuchtung konnte nicht gesteuert werden',
- failedToSetSpeed: 'Druckgeschwindigkeit konnte nicht eingestellt werden',
- failedToUpdateSetting: 'Einstellung konnte nicht aktualisiert werden',
- failedToSkipObjects: 'Objekte konnten nicht übersprungen werden',
- failedToRereadRfid: 'RFID konnte nicht erneut gelesen werden',
- failedToCheckPlate: 'Platte konnte nicht überprüft werden',
- failedToUpdateLabel: 'Bezeichnung konnte nicht aktualisiert werden',
- failedToDeleteReference: 'Referenz konnte nicht gelöscht werden',
- failedToSaveDetectionArea: 'Erkennungsbereich konnte nicht gespeichert werden',
- plateCheckEnabled: 'Plattenprüfung aktiviert',
- plateCheckDisabled: 'Plattenprüfung deaktiviert',
- calibrationSaved: 'Kalibrierung gespeichert!',
- calibrationFailed: 'Kalibrierung fehlgeschlagen',
- rfidRereadInitiated: 'RFID-Neueinlesen gestartet',
- },
- // Connection status
- connection: {
- connected: 'Verbunden',
- offline: 'Offline',
- },
- // Queue info
- queue: {
- inQueue: '{{count}} Druck in Warteschlange',
- inQueue_plural: '{{count}} Drucke in Warteschlange',
- },
- // Controls section
- controls: 'Steuerung',
- // RFID
- rfid: {
- reread: 'RFID neu lesen',
- },
- // Permissions
- permission: {
- noAdd: 'Sie haben keine Berechtigung, Drucker hinzuzufügen',
- noEdit: 'Sie haben keine Berechtigung, Drucker zu bearbeiten',
- noDelete: 'Sie haben keine Berechtigung, Drucker zu löschen',
- noControl: 'Sie haben keine Berechtigung, Drucker zu steuern',
- noFiles: 'Sie haben keine Berechtigung, auf Druckerdateien zuzugreifen',
- noAmsRfid: 'Sie haben keine Berechtigung, AMS-RFID erneut zu lesen',
- noSmartPlugControl: 'Sie haben keine Berechtigung, Smart Plugs zu steuern',
- noCamera: 'Sie haben keine Berechtigung, Kameras anzuzeigen',
- },
- // Add/Edit modal
- modal: {
- addTitle: 'Drucker hinzufügen',
- editTitle: 'Drucker bearbeiten',
- myPrinter: 'Mein Drucker',
- selectModel: 'Modell auswählen...',
- locationGroup: 'Standort / Gruppe (optional)',
- locationPlaceholder: 'z.B. Werkstatt, Büro, Keller',
- autoArchiveLabel: 'Abgeschlossene Drucke automatisch archivieren',
- fromPrinterSettings: 'Aus Druckereinstellungen',
- modelOptional: 'Modell (optional)',
- saveChanges: 'Änderungen speichern',
- },
- // Skip objects
- skipObjects: {
- tooltip: 'Objekte überspringen',
- onlyWhilePrinting: 'Objekte überspringen (nur während des Drucks)',
- requiresMultiple: 'Objekte überspringen (erfordert 2+ Objekte)',
- title: 'Objekte überspringen',
- matchIdsInfo: 'IDs mit Drucker-Display abgleichen',
- printerShowsIds: 'Der Druckerbildschirm zeigt Objekt-IDs auf der Bauplatte',
- skipSelected: 'Ausgewählte überspringen',
- skipping: 'Überspringe...',
- noObjectsSelected: 'Keine Objekte ausgewählt',
- selectObjectsToSkip: 'Wählen Sie Objekte aus, die Sie vom aktuellen Druck überspringen möchten',
- skipped: 'übersprungen',
- objectsSkipped: 'Objekte übersprungen',
- activeCount: '{{count}} aktiv',
- waitForLayer: 'Warten Sie auf Schicht 2+ zum Überspringen von Objekten (aktuell Schicht {{layer}})',
- skip: 'Überspringen',
- confirmTitle: 'Objekt überspringen?',
- confirmMessage: 'Möchten Sie "{{name}}" wirklich überspringen? Dies kann nicht rückgängig gemacht werden.',
- },
- // Confirm modals
- confirm: {
- deleteTitle: 'Drucker löschen',
- deleteMessage: 'Möchten Sie "{{name}}" wirklich löschen? Alle Verbindungseinstellungen werden entfernt.',
- deleteArchivesNote: 'Der gesamte Druckverlauf für diesen Drucker wird dauerhaft gelöscht.',
- keepArchivesNote: 'Der Druckverlauf wird beibehalten, aber nicht mehr mit diesem Drucker verknüpft.',
- stopTitle: 'Druck stoppen',
- stopMessage: 'Möchten Sie den aktuellen Druck auf "{{name}}" wirklich stoppen? Der Druckauftrag wird abgebrochen.',
- stopButton: 'Druck stoppen',
- pauseTitle: 'Druck pausieren',
- pauseMessage: 'Möchten Sie den aktuellen Druck auf "{{name}}" wirklich pausieren?',
- pauseButton: 'Druck pausieren',
- resumeTitle: 'Druck fortsetzen',
- resumeMessage: 'Möchten Sie den Druck auf "{{name}}" fortsetzen?',
- resumeButton: 'Druck fortsetzen',
- powerOnTitle: 'Drucker einschalten',
- powerOnMessage: 'Möchten Sie die Stromversorgung für "{{name}}" wirklich EINSCHALTEN?',
- powerOnButton: 'Einschalten',
- powerOffTitle: 'Drucker ausschalten',
- powerOffMessage: 'Möchten Sie die Stromversorgung für "{{name}}" wirklich AUSSCHALTEN?',
- powerOffWarning: 'WARNUNG: "{{name}}" druckt gerade! Möchten Sie die Stromversorgung wirklich AUSSCHALTEN? Dies unterbricht den Druck und kann den Drucker beschädigen.',
- powerOffButton: 'Ausschalten',
- },
- // Discovery
- discovery: {
- title: 'Drucker entdecken',
- searching: 'Suche...',
- scanning: 'Scanne...',
- scanProgress: 'Scanne... {{scanned}}/{{total}}',
- foundPrinters: '{{count}} Drucker gefunden',
- noPrintersFound: 'Keine Drucker gefunden',
- noPrintersFoundSubnet: 'Keine Drucker im angegebenen Subnetz gefunden.',
- noPrintersFoundNetwork: 'Keine Drucker im Netzwerk gefunden.',
- allConfigured: 'Alle erkannten Drucker sind bereits konfiguriert.',
- alreadyAdded: 'Bereits hinzugefügt',
- select: 'Auswählen',
- manualEntry: 'Manuelle Eingabe',
- addFromCloud: 'Aus Cloud hinzufügen',
- subnetToScan: 'Zu scannendes Subnetz',
- dockerNote: 'Docker erkannt. Geben Sie das Subnetz Ihres Druckers in CIDR-Notation ein. Erfordert network_mode: host in docker-compose.yml.',
- scanSubnet: 'Subnetz nach Druckern scannen',
- discoverNetwork: 'Drucker im Netzwerk suchen',
- scanningSubnet: 'Subnetz wird nach Bambu-Druckern gescannt...',
- scanningNetwork: 'Netzwerk wird gescannt...',
- serialRequired: 'Seriennummer erforderlich',
- unknown: 'Unbekannt',
- failedToStart: 'Erkennung konnte nicht gestartet werden',
- },
- // AMS Drying
- drying: {
- start: 'Trocknung starten',
- stop: 'Trocknung stoppen',
- temperature: 'Temperatur',
- duration: 'Dauer',
- hours: 'Stunden',
- timeRemaining: '{{time}} verbleibend',
- active: 'Trocknung',
- notSupported: 'Trocknung nicht unterstützt',
- powerRequired: 'AMS-Netzteil anschließen, um Trocknung zu aktivieren',
- startingDrying: 'Trocknung wird gestartet...',
- stoppingDrying: 'Trocknung wird gestoppt...',
- rotateTray: 'Spule während der Trocknung drehen',
- },
- // Filaments section
- filaments: 'Filamente',
- // Camera
- openCameraOverlay: 'Kamera-Overlay öffnen',
- openCameraWindow: 'Kamera in neuem Fenster öffnen',
- // Firmware
- firmwareUpdateAvailable: 'Firmware-Update verfügbar: {{current}} → {{latest}}',
- firmwareUpToDate: 'Firmware {{version}} — Aktuell',
- firmwareUpdateButton: 'Update',
- // Plate detection
- plateDetection: {
- noPermission: 'Sie haben keine Berechtigung, Drucker zu aktualisieren',
- enabledClick: 'Plattenprüfung aktiviert - Klicken zum Deaktivieren',
- disabledClick: 'Plattenprüfung deaktiviert - Klicken zum Aktivieren',
- manageCalibration: 'Platten-Erkennungskalibrierung verwalten',
- calibrationRequired: 'Kalibrierung erforderlich',
- calibrationInstructions: 'Bitte stellen Sie sicher, dass die Druckplatte <strong>vollständig leer</strong> ist, und klicken Sie dann auf Kalibrieren.',
- calibrationDescription: 'Die Kalibrierung erfasst ein Referenzbild der leeren Platte. Zukünftige Prüfungen vergleichen mit dieser Referenz, um Objekte zu erkennen.',
- calibrationTip: '<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.',
- plateEmpty: 'Platte erscheint leer',
- objectsDetected: 'Objekte auf Platte erkannt',
- confidence: 'Konfidenz',
- difference: 'Differenz',
- analysisPreview: 'Analysevorschau:',
- analysisLegend: 'Grüner Rahmen = Erkennungsbereich, Rote Überlagerung = Unterschiede zur Kalibrierung',
- savedReferences: 'Gespeicherte Referenzen ({{count}}/{{max}})',
- deleteReference: 'Referenz löschen',
- labelPlaceholder: 'Bezeichnung...',
- clickToEdit: '{{label}} - Zum Bearbeiten klicken',
- clickToAddLabel: 'Zum Hinzufügen einer Bezeichnung klicken',
- },
- // Speed
- speed: {
- title: 'Druckgeschwindigkeit',
- silent: 'Leise (50%)',
- standard: 'Standard (100%)',
- sport: 'Sport (124%)',
- ludicrous: 'Ludicrous (166%)',
- },
- // Fans
- fans: {
- partCooling: 'Bauteilkühlung',
- auxiliary: 'Hilfsventilator',
- chamber: 'Kammerventilator',
- },
- // HMS errors
- clickToViewHmsErrors: 'Klicken, um HMS-Fehler anzuzeigen',
- estimatedCompletion: 'Geschätzte Fertigstellungszeit',
- slotOptions: 'Slot-Optionen',
- // AMS hover popup
- amsPopup: {
- friendlyName: 'AMS-Name',
- friendlyNamePlaceholder: 'z. B. AMS-Anzeigename',
- serialNumber: 'Seriennummer',
- firmwareVersion: 'Firmware',
- save: 'Speichern',
- clear: 'Löschen',
- noEditPermission: 'Sie haben keine Berechtigung, AMS-Einheiten umzubenennen',
- },
- // Firmware modal
- firmwareModal: {
- title: 'Firmware-Update',
- titleUpToDate: 'Firmware-Info',
- currentVersion: 'Aktuell:',
- latestVersion: 'Neueste:',
- releaseNotes: 'Versionshinweise',
- checkingPrereqs: 'Prüfe Voraussetzungen...',
- sdCardReady: 'SD-Karte bereit. Klicken Sie unten, um die Firmware hochzuladen.',
- uploadedSuccess: 'Firmware auf SD-Karte hochgeladen!',
- applyInstructions: 'So wenden Sie das Update auf Ihrem Drucker an:',
- step1: 'Gehen Sie auf dem Touchscreen des Druckers zu <strong>Einstellungen</strong>',
- step2: 'Navigieren Sie zu <strong>Firmware</strong>',
- step3: 'Wählen Sie <strong>Update von SD-Karte</strong>',
- step4: 'Das Update dauert 10-20 Minuten',
- done: 'Fertig',
- starting: 'Starte...',
- uploadFirmware: 'Firmware hochladen',
- uploadFailed: 'Upload fehlgeschlagen: {{error}}',
- uploadedToast: 'Firmware hochgeladen! Starten Sie das Update vom Druckerbildschirm.',
- },
- accessCodePlaceholder: 'Leer lassen, um den aktuellen zu behalten',
- // ROI editor
- roi: {
- title: 'Erkennungsbereich (ROI)',
- xStart: 'X-Start',
- yStart: 'Y-Start',
- width: 'Breite',
- height: 'Höhe',
- instruction: 'Passen Sie den Erkennungsbereich an, um sich auf die Druckplatte zu konzentrieren. Der grüne Rahmen in der Vorschau zeigt den aktuellen Bereich.',
- },
- developerModeWarning: 'Der Entwickler-LAN-Modus ist nicht aktiviert auf: {{names}}. Einige Funktionen funktionieren möglicherweise nicht.',
- howToEnable: 'Aktivieren',
- incompatibleFile: 'Diese Datei wurde für {{slicedFor}} geslicet, aber dieser Drucker ist ein {{printerModel}}',
- dropNotPrintable: 'Nur .gcode- und .gcode.3mf-Dateien können gedruckt werden',
- dropToPrint: 'Zum Drucken ablegen',
- cannotPrint: 'Drucker beschäftigt',
- },
- // Archives page
- archives: {
- title: 'Druckarchiv',
- searchPlaceholder: 'Archiv durchsuchen...',
- filterByPrinter: 'Nach Drucker filtern',
- filterByStatus: 'Nach Status filtern',
- sortBy: 'Sortieren nach',
- sortNewest: 'Neueste zuerst',
- sortOldest: 'Älteste zuerst',
- sortName: 'Name',
- sortDuration: 'Dauer',
- sortLargest: 'Größte zuerst',
- sortSmallest: 'Kleinste zuerst',
- sortSize: 'Größe',
- noArchives: 'Keine Archive gefunden',
- noArchivesSearch: 'Keine Archive entsprechen Ihrer Suche',
- originalPrintNotVisible: 'Ursprünglicher Druck nicht sichtbar - versuchen Sie, die Filter zu löschen',
- noArchivesYet: 'Noch keine Archive',
- prints: 'Drucke',
- pagination: {
- showing: 'Zeige',
- to: 'bis',
- of: 'von',
- show: 'Zeige',
- page: 'Seite',
- all: 'Alle',
- },
- loadingArchives: 'Lade Archive...',
- releaseToUpload: 'Loslassen zum Hochladen',
- showAll: 'Alle anzeigen',
- showFavoritesOnly: 'Nur Favoriten anzeigen',
- gridView: 'Rasteransicht',
- listView: 'Listenansicht',
- calendarView: 'Kalenderansicht',
- logView: 'Druckprotokoll',
- manageTags: 'Tags verwalten',
- showFailedPrints: 'Fehlgeschlagene Drucke anzeigen',
- hideFailedPrints: 'Fehlgeschlagene Drucke ausblenden',
- hideDuplicates: 'Duplikate ausblenden',
- viewOriginalPrint: 'Klicken, um den ursprünglichen Druck anzuzeigen (#{{id}})',
- printTime: 'Druckzeit',
- filamentUsed: 'Verbrauchtes Filament',
- cost: 'Kosten',
- reprint: 'Drucken',
- preview: 'Vorschau',
- deleteArchive: 'Archiv löschen',
- deleteConfirm: 'Möchten Sie dieses Archiv wirklich löschen?',
- favorite: 'Favorit',
- unfavorite: 'Aus Favoriten entfernen',
- viewDetails: 'Details anzeigen',
- status: {
- completed: 'Abgeschlossen',
- failed: 'Fehlgeschlagen',
- stopped: 'Gestoppt',
- },
- toast: {
- source3mfAttached: 'Quell-3MF angehängt: {{filename}}',
- failedUploadSource3mf: 'Fehler beim Hochladen der Quell-3MF',
- source3mfRemoved: 'Quell-3MF entfernt',
- failedRemoveSource3mf: 'Fehler beim Entfernen der Quell-3MF',
- f3dAttached: 'F3D angehängt: {{filename}}',
- failedUploadF3d: 'Fehler beim Hochladen der F3D',
- f3dRemoved: 'F3D entfernt',
- failedRemoveF3d: 'Fehler beim Entfernen der F3D',
- timelapseAttached: 'Zeitraffer angehängt: {{filename}}',
- timelapseAlreadyAttached: 'Zeitraffer bereits angehängt',
- noMatchingTimelapse: 'Kein passender Zeitraffer gefunden',
- failedScanTimelapse: 'Fehler beim Suchen nach Zeitraffer',
- failedAttachTimelapse: 'Fehler beim Anhängen des Zeitraffers',
- timelapseRemoved: 'Zeitraffer entfernt',
- failedRemoveTimelapse: 'Fehler beim Entfernen des Zeitraffers',
- timelapseUploaded: 'Zeitraffer hochgeladen: {{filename}}',
- failedUploadTimelapse: 'Fehler beim Hochladen des Zeitraffers',
- archiveDeleted: 'Archiv gelöscht',
- failedDeleteArchive: 'Fehler beim Löschen des Archivs',
- addedToFavorites: 'Zu Favoriten hinzugefügt',
- removedFromFavorites: 'Aus Favoriten entfernt',
- projectUpdated: 'Projekt aktualisiert',
- failedUpdateProject: 'Fehler beim Aktualisieren des Projekts',
- linkCopied: 'Link in die Zwischenablage kopiert',
- failedCopyLink: 'Fehler beim Kopieren des Links',
- photoDeleted: 'Foto gelöscht',
- failedDeletePhoto: 'Fehler beim Löschen des Fotos',
- failedDeleteArchives: 'Fehler beim Löschen der Archive',
- failedUpdateFavorites: 'Fehler beim Aktualisieren der Favoriten',
- exportDownloaded: 'Export heruntergeladen',
- exportFailed: 'Export fehlgeschlagen',
- },
- menu: {
- print: 'Drucken',
- schedule: 'Planen',
- openInBambuStudio: 'Im Slicer öffnen',
- slice: 'Slicen',
- externalLink: 'Externer Link',
- viewOnMakerWorld: 'Auf MakerWorld ansehen',
- preview3d: '3D-Vorschau',
- viewTimelapse: 'Zeitraffer ansehen',
- scanForTimelapse: 'Nach Zeitraffer suchen',
- uploadTimelapse: 'Zeitraffer hochladen',
- removeTimelapse: 'Zeitraffer entfernen',
- downloadSource3mf: 'Quell-3MF herunterladen',
- uploadSource3mf: 'Quell-3MF hochladen',
- replaceSource3mf: 'Quell-3MF ersetzen',
- removeSource3mf: 'Quell-3MF entfernen',
- uploadF3d: 'F3D hochladen',
- replaceF3d: 'F3D ersetzen',
- downloadF3d: 'F3D herunterladen',
- removeF3d: 'F3D entfernen',
- download: 'Herunterladen',
- copyDownloadLink: 'Download-Link kopieren',
- qrCode: 'QR-Code',
- viewPhotos: 'Fotos ansehen',
- viewPhotosCount: 'Fotos ansehen ({{count}})',
- projectPage: 'Projektseite',
- addToFavorites: 'Zu Favoriten hinzufügen',
- removeFromFavorites: 'Aus Favoriten entfernen',
- edit: 'Bearbeiten',
- goToProject: 'Zum Projekt: {{name}}',
- addToProject: 'Zu Projekt hinzufügen',
- removeFromProject: 'Aus Projekt entfernen',
- loading: 'Laden...',
- noProjectsAvailable: 'Keine Projekte verfügbar',
- select: 'Auswählen',
- deselect: 'Abwählen',
- delete: 'Löschen',
- },
- permission: {
- noReprint: 'Sie haben keine Berechtigung, dieses Archiv erneut zu drucken',
- noAddToQueue: 'Sie haben keine Berechtigung, zur Warteschlange hinzuzufügen',
- noUpdateArchives: 'Sie haben keine Berechtigung, Archive zu aktualisieren',
- noUploadFiles: 'Sie haben keine Berechtigung, Dateien hochzuladen',
- noDownload: 'Sie haben keine Berechtigung, Archive herunterzuladen',
- noCopyLink: 'Sie haben keine Berechtigung, Download-Links zu kopieren',
- noDelete: 'Sie haben keine Berechtigung, dieses Archiv zu löschen',
- noCreate: 'Sie haben keine Berechtigung, Archive zu erstellen',
- },
- card: {
- previousPlate: 'Vorherige Platte',
- nextPlate: 'Nächste Platte',
- plateNumber: 'Platte {{index}}',
- moreOptions: 'Rechtsklick für mehr Optionen',
- addToFavorites: 'Zu Favoriten hinzufügen',
- removeFromFavorites: 'Aus Favoriten entfernen',
- cancelled: 'abgebrochen',
- failed: 'fehlgeschlagen',
- duplicate: 'Duplikat',
- duplicateTitle: 'Dieses Modell wurde bereits zuvor gedruckt',
- openSource3mf: 'Quell-3MF in Bambu Studio öffnen (Rechtsklick für mehr Optionen)',
- downloadF3d: 'Fusion 360 Designdatei herunterladen',
- viewTimelapse: 'Zeitraffer ansehen',
- viewPhoto: '1 Foto ansehen',
- viewPhotos: '{{count}} Fotos ansehen',
- openFolder: 'Ordner öffnen: {{name}}',
- slicedFile: 'Geslicte Datei - druckbereit',
- sourceFile: 'Nur Quelldatei - keine AMS-Zuordnung verfügbar',
- gcode: 'GCODE',
- source: 'QUELLE',
- project: 'Projekt: {{name}}',
- estimated: 'Geschätzt: {{time}}',
- actual: 'Tatsächlich: {{time}}',
- accuracy: 'Genauigkeit: {{percent}}%',
- filament: '{{weight}}g',
- layer: '{{count}} Schicht',
- layers: '{{count}} Schichten',
- object: '{{count}} Objekt',
- objects: '{{count}} Objekte',
- slicedFor: 'Geslict für {{model}}',
- uploadedBy: 'Hochgeladen von',
- noPermissionReprint: 'Sie haben keine Berechtigung, erneut zu drucken',
- noFileForReprint: 'Keine 3MF-Datei verfügbar — die Datei konnte beim Aufzeichnen des Drucks nicht vom Drucker heruntergeladen werden',
- noPermissionEdit: 'Sie haben keine Berechtigung, Archive zu bearbeiten',
- noPermissionDelete: 'Sie haben keine Berechtigung, Archive zu löschen',
- reprint: 'Drucken',
- schedulePrint: 'Druck planen',
- schedule: 'Planen',
- openInBambuStudio: 'Im Slicer öffnen',
- openInBambuStudioToSlice: 'Im Slicer öffnen zum Slicen',
- slice: 'Slicen',
- externalLink: 'Externer Link',
- makerWorld: 'MakerWorld: {{designer}}',
- viewProject: 'Projekt ansehen',
- noExternalLink: 'Kein externer Link',
- preview3d: '3D-Vorschau',
- download: 'Herunterladen',
- edit: 'Bearbeiten',
- delete: 'Löschen',
- },
- modal: {
- deleteArchive: 'Archiv löschen',
- deleteConfirm: 'Möchten Sie "{{name}}" wirklich löschen? Diese Aktion kann nicht rückgängig gemacht werden.',
- deleteButton: 'Löschen',
- removeSource3mf: 'Quell-3MF entfernen',
- removeSource3mfConfirm: 'Möchten Sie die Quell-3MF-Datei wirklich von "{{name}}" entfernen? Die ursprüngliche Slicer-Projektdatei wird gelöscht.',
- removeButton: 'Entfernen',
- removeF3d: 'F3D entfernen',
- removeF3dConfirm: 'Möchten Sie die Fusion 360 Designdatei wirklich von "{{name}}" entfernen?',
- removeTimelapse: 'Zeitraffer entfernen',
- removeTimelapseConfirm: 'Möchten Sie das Zeitraffervideo wirklich von "{{name}}" entfernen?',
- timelapse: '{{name}} - Zeitraffer',
- selectTimelapse: 'Zeitraffer auswählen',
- selectTimelapseDesc: 'Keine automatische Übereinstimmung gefunden. Wählen Sie den Zeitraffer für diesen Druck:',
- deleteArchives: 'Archive löschen',
- deleteArchivesConfirm: 'Möchten Sie wirklich {{count}} Archiv(e) löschen? Diese Aktion kann nicht rückgängig gemacht werden.',
- deleteCount: '{{count}} löschen',
- },
- page: {
- title: 'Archive',
- printsCount: '{{filtered}} von {{total}} Drucken',
- dropFilesHere: '.3mf-Dateien hier ablegen',
- releaseToUpload: 'Loslassen zum Hochladen',
- only3mfSupported: 'Nur .3mf-Dateien werden unterstützt',
- close: 'Schließen',
- selected: '{{count}} ausgewählt',
- selectAll: 'Alle auswählen',
- tags: 'Tags',
- project: 'Projekt',
- favorite: 'Favorit',
- delete: 'Löschen',
- toggledFavorites: 'Favoriten für {{count}} Archiv(e) umgeschaltet',
- failedUpdateFavorites: 'Fehler beim Aktualisieren der Favoriten',
- archivesDeleted: '{{count}} Archiv(e) gelöscht',
- failedDeleteArchives: 'Fehler beim Löschen der Archive',
- photoDeleted: 'Foto gelöscht',
- failedDeletePhoto: 'Fehler beim Löschen des Fotos',
- },
- list: {
- name: 'Name',
- printer: 'Drucker',
- date: 'Datum',
- size: 'Größe',
- actions: 'Aktionen',
- hasTimelapse: 'Hat Zeitraffer',
- },
- log: {
- date: 'Datum',
- printName: 'Druckname',
- printer: 'Drucker',
- user: 'Benutzer',
- status: 'Status',
- duration: 'Dauer',
- filament: 'Filament',
- allPrinters: 'Alle Drucker',
- allUsers: 'Alle Benutzer',
- allStatuses: 'Alle Status',
- cancelled: 'Abgebrochen',
- skipped: 'Übersprungen',
- dateFrom: 'Von',
- dateTo: 'Bis',
- noEntries: 'Keine Druckprotokolleinträge gefunden',
- showing: '{{count}} von {{total}} Einträgen',
- rowsPerPage: 'Zeilen',
- page: 'Seite',
- prev: 'Zurück',
- next: 'Weiter',
- clearLog: 'Protokoll löschen',
- clearLogTitle: 'Druckprotokoll löschen',
- 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?',
- clearLogButton: 'Alle löschen',
- cleared: '{{count}} Protokolleinträge gelöscht',
- clearFailed: 'Druckprotokoll konnte nicht gelöscht werden',
- },
- },
- // Queue page
- queue: {
- title: 'Druckwarteschlange',
- subtitle: 'Planen und verwalten Sie Ihre Druckaufträge',
- addToQueue: 'Zur Warteschlange hinzufügen',
- // Print modal
- print: 'Drucken',
- reprint: 'Erneut drucken',
- schedulePrint: 'Druck planen',
- editQueueItem: 'Warteschlangeneintrag bearbeiten',
- printToPrinters: 'Auf {{count}} Druckern drucken',
- queueToPrinters: 'Zu {{count}} Druckern hinzufügen',
- queueSelectedPlates: '{{count}} Platten in die Warteschlange',
- selectAllPlates: 'Alle {{count}} Platten auswählen',
- deselectAll: 'Alle abwählen',
- printQueued: 'Druck in Warteschlange',
- itemsQueued: '{{count}} Einträge in Warteschlange',
- sending: 'Wird gesendet...',
- sendingProgress: 'Sende {{current}}/{{total}}...',
- adding: 'Wird hinzugefügt...',
- addingProgress: 'Füge hinzu {{current}}/{{total}}...',
- savingProgress: 'Speichere {{current}}/{{total}}...',
- clearQueue: 'Warteschlange leeren',
- clearHistory: 'Verlauf löschen',
- emptyQueue: 'Warteschlange ist leer',
- position: 'Position',
- scheduledTime: 'Geplante Zeit',
- moveUp: 'Nach oben',
- moveDown: 'Nach unten',
- startNow: 'Jetzt starten',
- printingInProgress: 'Druck läuft...',
- viewArchive: 'Archiv anzeigen',
- viewInFileManager: 'Im Dateimanager anzeigen',
- itemCount: '{{count}} Element',
- itemCount_plural: '{{count}} Elemente',
- dragToReorder: 'Ziehen zum Neuordnen (nur Sofort)',
- reorderHint: 'Position betrifft nur Sofort-Elemente. Geplante Elemente werden zur festgelegten Zeit ausgeführt.',
- addedBy: 'Hinzugefügt von {{name}}',
- nextInQueue: 'Nächster in der Warteschlange',
- clearPlate: 'Druckplatte freigeben & Nächsten starten',
- clearPlateSuccess: 'Druckplatte freigegeben — bereit für nächsten Druck',
- plateReady: 'Druckplatte freigegeben — bereit für nächsten Druck',
- plateNumber: 'Platte {{index}}',
- // Sections
- sections: {
- currentlyPrinting: 'Aktuell druckend',
- queued: 'In Warteschlange',
- history: 'Verlauf',
- },
- // Status
- status: {
- pending: 'Ausstehend',
- waiting: 'Wartend',
- printing: 'Druckt',
- paused: 'Pausiert',
- completed: 'Abgeschlossen',
- failed: 'Fehlgeschlagen',
- skipped: 'Übersprungen',
- cancelled: 'Abgebrochen',
- },
- // Summary cards
- summary: {
- printing: 'Druckt',
- queued: 'In Warteschlange',
- totalTime: 'Gesamte Wartezeit',
- totalWeight: 'Gesamtgewicht der Warteschlange',
- history: 'Verlauf',
- },
- // Filters
- filter: {
- allPrinters: 'Alle Drucker',
- unassigned: 'Nicht zugewiesen',
- allStatus: 'Alle Status',
- allLocations: 'Alle Standorte',
- any: 'Beliebig',
- },
- // Sort
- sort: {
- byPosition: 'Nach Position sortieren',
- byName: 'Nach Name sortieren',
- byPrinter: 'Nach Drucker sortieren',
- bySchedule: 'Nach Zeitplan sortieren',
- byDate: 'Nach Datum sortieren',
- ascendingOldest: 'Aufsteigend (älteste zuerst)',
- descendingNewest: 'Absteigend (neueste zuerst)',
- },
- // Badges
- badges: {
- staged: 'Bereitgestellt',
- requiresPrevious: 'Erfordert vorherigen Erfolg',
- autoPowerOff: 'Automatisch ausschalten',
- },
- // Empty state
- empty: {
- title: 'Keine Drucke geplant',
- description: 'Planen Sie einen Druck von der Archivseite über die Option "Planen" im Kontextmenü oder ziehen Sie Dateien hierher.',
- },
- // Time
- time: {
- asap: 'Sofort',
- overdue: 'Überfällig',
- now: 'Jetzt',
- lessThanMinute: 'In weniger als einer Minute',
- inMinutes: 'In {{count}} Min',
- inHours: 'In {{count}} Stunden',
- },
- // Actions
- actions: {
- stopPrint: 'Druck stoppen',
- startPrint: 'Druck starten',
- requeue: 'Erneut einreihen',
- },
- // Bulk edit
- bulkEdit: {
- title: '{{count}} Element bearbeiten',
- title_plural: '{{count}} Elemente bearbeiten',
- description: 'Nur geänderte Einstellungen werden auf ausgewählte Elemente angewendet.',
- printer: 'Drucker',
- noChange: '— Keine Änderung —',
- queueOptions: 'Warteschlangenoptionen',
- staged: 'Bereitgestellt (manueller Start)',
- autoPowerOff: 'Nach Druck automatisch ausschalten',
- requirePrevious: 'Vorherigen Erfolg erfordern',
- printOptions: 'Druckoptionen',
- bedLevelling: 'Bett-Nivellierung',
- flowCalibration: 'Fluss-Kalibrierung',
- vibrationCalibration: 'Vibrations-Kalibrierung',
- layerInspection: 'Erste-Schicht-Prüfung',
- timelapse: 'Zeitraffer',
- useAms: 'AMS verwenden',
- applyChanges: 'Änderungen übernehmen',
- selectAll: 'Alle auswählen',
- deselectAll: 'Auswahl aufheben',
- selected: '{{count}} ausgewählt',
- editSelected: 'Ausgewählte bearbeiten',
- cancelSelected: 'Ausgewählte abbrechen',
- },
- // Confirmations
- confirm: {
- cancelTitle: 'Geplanten Druck abbrechen',
- cancelMessage: 'Möchten Sie "{{name}}" wirklich abbrechen?',
- stopTitle: 'Druck stoppen',
- stopMessage: 'Möchten Sie den aktuellen Druck "{{name}}" wirklich stoppen? Der Druckauftrag wird am Drucker abgebrochen.',
- removeTitle: 'Aus Verlauf entfernen',
- removeMessage: 'Möchten Sie "{{name}}" wirklich aus dem Warteschlangenverlauf entfernen?',
- clearHistoryTitle: 'Verlauf löschen',
- clearHistoryMessage: 'Möchten Sie alle {{count}} Element(e) aus dem Verlauf entfernen?',
- cancelButton: 'Druck abbrechen',
- stopButton: 'Druck stoppen',
- thisPrint: 'diesen Druck',
- thisItem: 'dieses Element',
- },
- // Toast messages
- toast: {
- cancelled: 'Warteschlangenelement abgebrochen',
- cancelFailed: 'Element konnte nicht abgebrochen werden',
- removed: 'Warteschlangenelement entfernt',
- removeFailed: 'Element konnte nicht entfernt werden',
- stopped: 'Druck gestoppt',
- stopFailed: 'Druck konnte nicht gestoppt werden',
- released: 'Druck in Warteschlange freigegeben',
- startFailed: 'Druck konnte nicht gestartet werden',
- reorderFailed: 'Warteschlange konnte nicht neu geordnet werden',
- historyCleared: '{{count}} Verlaufselement(e) gelöscht',
- clearHistoryFailed: 'Verlauf konnte nicht gelöscht werden',
- updateFailed: 'Elemente konnten nicht aktualisiert werden',
- bulkCancelled: '{{count}} Element(e) abgebrochen',
- bulkCancelFailed: 'Elemente konnten nicht abgebrochen werden',
- },
- // Timeline view
- timeline: {
- listView: 'Liste',
- timelineView: 'Zeitstrahl',
- unassigned: 'Nicht zugewiesen',
- noData: 'Keine geplanten Drucke für diesen Tag',
- allDoneBy: 'Alle Drucke voraussichtlich fertig um {{time}}',
- staged: 'Bereitgestellt',
- filterAll: 'Alle anzeigen',
- filterPrinting: 'Druckend',
- filterQueued: 'Warteschlange',
- time: {
- anyMoment: 'jeden Moment',
- minutesLeft: '{{minutes}}m übrig',
- hoursLeft: '{{hours}}h übrig',
- hoursMinutesLeft: '{{hours}}h {{minutes}}m übrig',
- },
- day: {
- previous: 'Vorheriger Tag',
- next: 'Nächster Tag',
- today: 'Heute',
- },
- },
- // Permissions
- permissions: {
- noStopPrint: 'Sie haben keine Berechtigung, Drucke zu stoppen',
- noStartPrint: 'Sie haben keine Berechtigung, Drucke zu starten',
- noEdit: 'Sie haben keine Berechtigung, dieses Warteschlangenelement zu bearbeiten',
- noCancel: 'Sie haben keine Berechtigung, dieses Warteschlangenelement abzubrechen',
- noRequeue: 'Sie haben keine Berechtigung, Elemente erneut einzureihen',
- noRemove: 'Sie haben keine Berechtigung, dieses Warteschlangenelement zu entfernen',
- noClearHistory: 'Sie haben keine Berechtigung, den gesamten Verlauf zu löschen',
- noEditItems: 'Sie haben keine Berechtigung, Warteschlangenelemente zu bearbeiten',
- noCancelItems: 'Sie haben keine Berechtigung, Warteschlangenelemente abzubrechen',
- },
- },
- backgroundDispatch: {
- unknownFile: 'Unbekannte Datei',
- unknownPrinter: 'Unbekannter Drucker',
- startingPrints: 'Starte Drucke',
- progressSummary: '{{complete}}/{{total}} abgeschlossen • Geplant: {{dispatched}} • In Bearbeitung: {{processing}}',
- expandDetails: 'Dispatch-Details ausklappen',
- collapseDetails: 'Dispatch-Details einklappen',
- dismissToast: 'Dispatch-Hinweis schließen',
- cancelDispatchJob: 'Dispatch-Job abbrechen',
- cancel: 'Abbrechen',
- cancelling: 'Wird abgebrochen…',
- status: {
- dispatched: 'Geplant',
- processing: 'In Bearbeitung',
- completed: 'Abgeschlossen',
- failed: 'Fehlgeschlagen',
- cancelled: 'Abgebrochen',
- },
- toast: {
- cancellingUpload: 'Upload wird abgebrochen...',
- cancelled: 'Dispatch abgebrochen',
- cancelFailed: 'Dispatch konnte nicht abgebrochen werden',
- completeWithFailures: 'Background Dispatch abgeschlossen: {{completed}} erfolgreich, {{failed}} fehlgeschlagen',
- completeSuccess: 'Background Dispatch abgeschlossen: {{completed}} erfolgreich',
- printStartedRemaining: '{{completed}} Druck(e) gestartet, {{remaining}} weitere werden gesendet...',
- },
- },
- // Statistics page
- stats: {
- title: 'Dashboard',
- subtitle: 'Widgets zum Neuanordnen ziehen. Auf das Augensymbol klicken zum Ausblenden.',
- overview: 'Übersicht',
- totalPrints: 'Gesamtdrucke',
- successRate: 'Erfolgsrate',
- totalPrintTime: 'Gesamtdruckzeit',
- printTime: 'Druckzeit',
- totalFilament: 'Gesamtverbrauch Filament',
- filamentUsed: 'Filamentverbrauch',
- filamentCost: 'Filamentkosten',
- totalCost: 'Gesamtkosten',
- energyUsed: 'Energieverbrauch',
- energyCost: 'Energiekosten',
- averagePrintTime: 'Durchschnittliche Druckzeit',
- printsPerDay: 'Drucke pro Tag',
- byPrinter: 'Nach Drucker',
- printsByPrinter: 'Drucke nach Drucker',
- byMaterial: 'Nach Material',
- byMonth: 'Nach Monat',
- last7Days: 'Letzte 7 Tage',
- last30Days: 'Letzte 30 Tage',
- last90Days: 'Letzte 90 Tage',
- allTime: 'Gesamt',
- // Widgets
- quickStats: 'Schnellstatistiken',
- printActivity: 'Druckaktivität',
- filamentTypes: 'Filamenttypen',
- filamentTrends: 'Filamenttrends',
- failureAnalysis: 'Fehleranalyse',
- timeAccuracy: 'Zeitgenauigkeit',
- successful: 'Erfolgreich:',
- failed: 'Fehlgeschlagen:',
- perfectEstimate: '100% = perfekte Schätzung',
- noTimeAccuracyData: 'Noch keine Zeitgenauigkeitsdaten',
- noFilamentData: 'Keine Filamentdaten verfügbar',
- noPrinterData: 'Keine Druckerdaten verfügbar',
- noPrintData: 'Keine Druckdaten verfügbar',
- noPrintDataLast30Days: 'Keine Druckdaten in den letzten 30 Tagen',
- failureReasons: 'Fehlerursachen',
- topFailureReasons: 'Häufigste Fehlerursachen',
- failedPrintsCount: '{{failed}} / {{total}} Drucke fehlgeschlagen',
- lastWeekRate: 'Letzte Woche: {{rate}}%',
- // Actions
- resetLayout: 'Layout zurücksetzen',
- recalculateCosts: 'Kosten neu berechnen',
- recalculateCostsHint: 'Alle Archivkosten mit aktuellen Filamentpreisen neu berechnen',
- exportStats: 'Statistiken exportieren',
- exportAsCsv: 'Als CSV exportieren',
- exportAsExcel: 'Als Excel exportieren',
- hiddenCount: '{{count}} ausgeblendet',
- // Toast
- exportDownloaded: 'Export heruntergeladen',
- exportFailed: 'Export fehlgeschlagen',
- layoutReset: 'Layout zurückgesetzt',
- recalculatedCosts: 'Kosten für {{count}} Archive neu berechnet',
- recalculateFailed: 'Kosten konnten nicht neu berechnet werden',
- // Loading
- loadingStats: 'Statistiken werden geladen...',
- // Permissions
- noPermissionResetLayout: 'Sie haben keine Berechtigung, das Layout zurückzusetzen',
- noPermissionRecalculate: 'Sie haben keine Berechtigung, Kosten neu zu berechnen',
- noPrintDataInRange: 'Keine Druckdaten im ausgewählten Zeitraum',
- periodFilament: 'Filamentverbrauch',
- periodCost: 'Kosten',
- avgPerPrint: 'Durchschnitt pro Druck',
- usageOverTime: 'Verbrauch im Zeitverlauf',
- filamentByWeight: 'Gewicht',
- printDuration: 'Druckdauer',
- printerUtilization: 'Druckerauslastung',
- filamentSuccess: 'Erfolg nach Material',
- printHabits: 'Druckgewohnheiten',
- printTimeOfDay: 'Druck-Tageszeit',
- colorDistribution: 'Farbverteilung',
- noColorData: 'Keine Farbdaten verfügbar',
- records: 'Rekorde',
- longestPrint: 'Längster Druck',
- heaviestPrint: 'Schwerster Druck',
- mostExpensivePrint: 'Teuerster Druck',
- busiestDay: 'Aktivster Tag',
- successStreak: 'Erfolgsserie',
- streakPrint: 'aufeinanderfolgender Druck',
- streakPrints: '{{count}} aufeinanderfolgende Drucke',
- printerStats: 'Druckerstatistiken',
- hours: 'Stunden',
- avgPrints: 'Ø Drucke',
- noArchiveData: 'Keine Druckdaten verfügbar',
- filamentByTime: 'Zeitverlauf',
- avgWeight: 'Ø Gewicht',
- avgTime: 'Ø Zeit',
- filamentByPrints: 'Drucke',
- timeframe: {
- 'today': 'Heute',
- 'this-week': 'Diese Woche',
- 'this-month': 'Dieser Monat',
- 'last-7': 'Letzte 7 Tage',
- 'last-30': 'Letzte 30 Tage',
- 'last-90': 'Letzte 90 Tage',
- 'this-year': 'Dieses Jahr',
- 'all-time': 'Gesamt',
- 'custom': 'Benutzerdefiniert',
- from: 'Von',
- to: 'Bis',
- },
- allUsers: 'Alle Benutzer',
- noUser: 'Kein Benutzer (System)',
- filterByUser: 'Nach Benutzer filtern',
- },
- // Maintenance page
- maintenance: {
- title: 'Wartung',
- overview: 'Übersicht',
- allOk: 'Alle Wartungen aktuell',
- dueCount: '{{count}} Aufgabe fällig',
- dueCount_plural: '{{count}} Aufgaben fällig',
- warningCount: '{{count}} Warnung',
- warningCount_plural: '{{count}} Warnungen',
- totalPrintTime: 'Gesamtdruckzeit',
- nextMaintenance: 'Nächste Wartung',
- nothingDue: 'Nichts fällig',
- tasks: 'Aufgaben',
- lastPerformed: 'Zuletzt durchgeführt',
- interval: 'Intervall',
- hoursRemaining: '{{hours}}h verbleibend',
- hoursOverdue: '{{hours}}h überfällig',
- markDone: 'Als erledigt markieren',
- performMaintenance: 'Wartung durchführen',
- history: 'Verlauf',
- noHistory: 'Kein Wartungsverlauf',
- editPrintHours: 'Druckstunden bearbeiten',
- currentHours: 'Aktuelle Stunden',
- // Tabs
- statusTab: 'Status',
- settingsTab: 'Einstellungen',
- // Status
- overdueCount: '{{count}} überfällig',
- dueSoonCount: '{{count}} bald fällig',
- dueSoon: 'Bald fällig',
- allGood: 'Alles in Ordnung',
- overdueBy: 'Überfällig um {{duration}}',
- dueIn: 'Fällig in {{duration}}',
- timeLeft: '{{duration}} verbleibend',
- // Duration formats
- day: '1 Tag',
- days: '{{count}} Tage',
- week: '1 Woche',
- weeks: '{{count}} Wochen',
- month: '1 Monat',
- months: '{{count}} Monate',
- year: '1 Jahr',
- // Settings
- maintenanceTypes: 'Wartungstypen',
- maintenanceTypesDescription: 'Systemtypen und Ihre benutzerdefinierten Wartungsaufgaben',
- addCustomType: 'Benutzerdefinierten Typ hinzufügen',
- restoreDefaults: 'Standardaufgaben wiederherstellen',
- intervalType: 'Intervalltyp',
- intervalValue: 'Intervall ({{type}})',
- icon: 'Symbol',
- documentationLink: 'Dokumentationslink (optional)',
- assignToPrinters: 'Druckern zuweisen',
- selectAtLeastOnePrinter: 'Wählen Sie mindestens einen Drucker',
- addType: 'Typ hinzufügen',
- custom: 'Benutzerdefiniert',
- printHours: 'Druckstunden',
- calendarDays: 'Kalendertage',
- exampleName: 'z.B. HEPA-Filter ersetzen',
- viewDocumentation: 'Dokumentation anzeigen',
- timeBasedInterval: 'Zeitbasiertes Intervall',
- // Interval overrides
- intervalOverrides: 'Intervall-Überschreibungen',
- intervalOverridesDescription: 'Intervalle für bestimmte Drucker anpassen',
- // Printer assignment
- assignedToPrinters: 'Druckern zugewiesen:',
- noPrintersAssigned: 'Keine Drucker zugewiesen',
- addPrinterShort: 'Hinzufügen:',
- printersAssignedClick: '{{count}} Drucker zugewiesen - klicken zum Verwalten',
- removeFromPrinter: 'Von diesem Drucker entfernen',
- // Types
- types: {
- lubricateCarbonRods: 'Karbonstäbe schmieren',
- lubricateRails: 'Linearschienen schmieren',
- cleanNozzle: 'Düse/Hotend reinigen',
- checkBelts: 'Riemenspannung prüfen',
- cleanBuildPlate: 'Druckbett reinigen',
- checkExtruder: 'Extruderzahnräder prüfen',
- checkCooling: 'Kühlungslüfter prüfen',
- generalInspection: 'Allgemeine Inspektion',
- cleanCarbonRods: 'Kohlenstoffstangen reinigen',
- lubricateSteelRods: 'Stahlstangen schmieren',
- cleanSteelRods: 'Stahlstangen reinigen',
- cleanLinearRails: 'Linearschienen reinigen',
- checkPtfeTube: 'PTFE-Schlauch prüfen',
- replaceHepaFilter: 'HEPA-Filter ersetzen',
- replaceCarbonFilter: 'Aktivkohlefilter ersetzen',
- lubricateLeftNozzleRail: 'Linke Düsenschiene schmieren',
- },
- // Toast
- maintenanceComplete: 'Wartung als abgeschlossen markiert',
- typeUpdated: 'Wartungstyp aktualisiert',
- typeDeleted: 'Wartungstyp gelöscht',
- defaultsRestored: '{{count}} Standardaufgabe(n) wiederhergestellt',
- printHoursUpdated: 'Druckstunden aktualisiert',
- printerAssigned: 'Drucker zugewiesen',
- printerRemoved: 'Drucker entfernt',
- // Confirmation
- deleteTypeConfirm: '"{{name}}" löschen?',
- deleteSystemTypeTitle: 'Standard-Wartungsaufgabe löschen?',
- deleteSystemTypeMessage: 'Möchten Sie die Standard-Wartungsaufgabe "{{name}}" wirklich löschen?',
- // Permissions
- noPermissionUpdate: 'Sie haben keine Berechtigung, Wartungselemente zu aktualisieren',
- noPermissionPerform: 'Sie haben keine Berechtigung, Wartungen durchzuführen',
- noPermissionEditTypes: 'Sie haben keine Berechtigung, Wartungstypen zu bearbeiten',
- noPermissionDeleteTypes: 'Sie haben keine Berechtigung, Wartungstypen zu löschen',
- noPermissionEditHours: 'Sie haben keine Berechtigung, Druckstunden zu bearbeiten',
- noPermissionRemovePrinter: 'Sie haben keine Berechtigung, Druckerzuweisungen zu entfernen',
- noPermissionAssignPrinter: 'Sie haben keine Berechtigung, Drucker zuzuweisen',
- noPermissionEditIntervals: 'Sie haben keine Berechtigung, Intervalle zu bearbeiten',
- // Configure link
- configureSettings: 'Wartungstypen und Intervalle konfigurieren',
- },
- // Settings page
- settings: {
- title: 'Einstellungen',
- general: 'Allgemein',
- // Tab names
- tabs: {
- general: 'Allgemein',
- smartPlugs: 'Smart Plugs',
- notifications: 'Benachrichtigungen',
- queue: 'Workflow',
- filament: 'Filament',
- network: 'Netzwerk',
- apiKeys: 'API-Schlüssel',
- virtualPrinter: 'Virtueller Drucker',
- users: 'Authentifizierung',
- backup: 'Sicherung',
- emailAuth: 'E-Mail-Authentifizierung',
- },
- // Email settings
- email: {
- smtpSettings: 'SMTP-Konfiguration',
- smtpHost: 'SMTP-Server',
- smtpPort: 'SMTP-Port',
- security: 'Sicherheit',
- authentication: 'Authentifizierung',
- username: 'Benutzername',
- password: 'Passwort',
- fromEmail: 'Absender-E-Mail',
- fromName: 'Absendername',
- testConnection: 'SMTP-Verbindung testen',
- testRecipient: 'Test-Empfänger-E-Mail',
- sendTest: 'Test-E-Mail senden',
- sending: 'Wird gesendet...',
- save: 'Einstellungen speichern',
- saving: 'Wird gespeichert...',
- advancedAuth: 'Erweiterte Authentifizierung',
- advancedAuthEnabled: 'Erweiterte Authentifizierung ist aktiviert',
- 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.',
- advancedAuthDisabled: 'Erweiterte Authentifizierung ist deaktiviert',
- advancedAuthDisabledDesc: 'Aktivieren Sie die erweiterte Authentifizierung, um E-Mail-basierte Funktionen für die Benutzerverwaltung zu aktivieren.',
- enable: 'Aktivieren',
- disable: 'Deaktivieren',
- feature1: 'Passwörter werden automatisch generiert und an neue Benutzer gesendet',
- feature2: 'Benutzer können sich mit Benutzername oder E-Mail anmelden',
- feature3: 'Passwort vergessen Funktion ist verfügbar',
- feature4: 'Administratoren können Benutzerpasswörter per E-Mail zurücksetzen',
- // Error messages
- errors: {
- requiredFields: 'Bitte füllen Sie alle Pflichtfelder aus',
- usernameRequired: 'Benutzername ist erforderlich, wenn Authentifizierung aktiviert ist',
- enterTestEmail: 'Bitte geben Sie eine Test-E-Mail-Adresse ein',
- smtpServerAndEmail: 'Bitte füllen Sie SMTP-Server und Absender-E-Mail aus, bevor Sie testen',
- usernamePasswordRequired: 'Benutzername und Passwort sind erforderlich, wenn Authentifizierung aktiviert ist',
- configureSmtpFirst: 'Bitte konfigurieren und testen Sie zuerst die SMTP-Einstellungen',
- enableAuthFirst: 'Bitte aktivieren Sie zuerst die Authentifizierung, um E-Mail-basierte Funktionen nutzen zu können.',
- },
- // Success messages
- success: {
- settingsSaved: 'SMTP-Einstellungen erfolgreich gespeichert',
- },
- // Security options
- securityOptions: {
- starttls: 'STARTTLS (Port 587)',
- ssl: 'SSL/TLS (Port 465)',
- none: 'Keine (Port 25)',
- },
- // Authentication options
- authOptions: {
- enabled: 'Aktiviert',
- disabled: 'Deaktiviert',
- },
- },
- appearance: 'Erscheinungsbild',
- notifications: 'Benachrichtigungen',
- smartPlugs: 'Smart Plugs',
- spoolman: 'Spoolman',
- updates: 'Updates',
- language: 'Sprache',
- languageDescription: 'Wählen Sie Ihre bevorzugte Sprache',
- theme: 'Design',
- themeLight: 'Hell',
- themeDark: 'Dunkel',
- themeSystem: 'System',
- defaultView: 'Standardansicht',
- defaultViewDescription: 'Seite, die beim Öffnen der App angezeigt wird',
- checkForUpdates: 'Nach Updates suchen',
- autoUpdate: 'Automatische Updates',
- currentVersion: 'Aktuelle Version',
- latestVersion: 'Neueste Version',
- upToDate: 'Sie sind auf dem neuesten Stand',
- updateAvailable: 'Update verfügbar',
- // Notifications
- notificationLanguage: 'Benachrichtigungssprache',
- notificationLanguageDescription: 'Sprache für Push-Benachrichtigungen',
- bedCooledThreshold: 'Bett-Abkühlung Schwellenwert',
- bedCooledThresholdDescription: 'Temperatur, unter der das Bett nach einem Druck als abgekühlt gilt',
- userNotificationsEnabled: 'Benutzerbenachrichtigungen',
- userNotificationsEnabledDescription: 'Aktiviert das Benutzerbenachrichtigungsmenü und E-Mail-Benachrichtigungen für Druckereignisse. Erfordert Erweiterte Authentifizierung.',
- userNotificationsDisabledHint: 'Erweiterte Authentifizierung aktivieren, um Benutzerbenachrichtigungen zu verwenden.',
- notificationProviders: 'Benachrichtigungsanbieter',
- addProvider: 'Anbieter hinzufügen',
- editProvider: 'Anbieter bearbeiten',
- providerType: 'Anbietertyp',
- testNotification: 'Testbenachrichtigung',
- testSuccess: 'Testbenachrichtigung erfolgreich gesendet',
- testFailed: 'Testbenachrichtigung konnte nicht gesendet werden',
- quietHours: 'Ruhezeiten',
- quietHoursDescription: 'Keine Störungen während dieser Zeiten',
- quietHoursStart: 'Beginn',
- quietHoursEnd: 'Ende',
- events: {
- title: 'Benachrichtigungsereignisse',
- printStart: 'Druck gestartet',
- printComplete: 'Druck abgeschlossen',
- printFailed: 'Druck fehlgeschlagen',
- printStopped: 'Druck gestoppt',
- printProgress: 'Fortschrittsmeldungen',
- printProgressDescription: 'Bei 25%, 50%, 75% benachrichtigen',
- printerOffline: 'Drucker offline',
- printerError: 'Druckerfehler',
- filamentLow: 'Filament niedrig',
- maintenanceDue: 'Wartung fällig',
- maintenanceDueDescription: 'Benachrichtigen, wenn Wartung erforderlich',
- },
- // Smart Plugs
- smartPlug: {
- title: 'Smart Plugs',
- add: 'Smart Plug hinzufügen',
- edit: 'Smart Plug bearbeiten',
- name: 'Name',
- ipAddress: 'IP-Adresse',
- linkedPrinter: 'Verknüpfter Drucker',
- autoOn: 'Automatisch einschalten',
- autoOnDescription: 'Einschalten beim Druckstart',
- autoOff: 'Automatisch ausschalten',
- autoOffDescription: 'Ausschalten nach Druckende',
- offDelay: 'Ausschaltverzögerung',
- offDelayMinutes: 'Minuten nach Druck',
- offDelayTemp: 'Wenn Düse unter Temperatur',
- currentState: 'Aktueller Status',
- turnOn: 'Einschalten',
- turnOff: 'Ausschalten',
- },
- // Filament Tracking Mode
- filamentTracking: 'Filament-Verfolgung',
- filamentTrackingDesc: 'Wählen Sie, wie Sie Ihre Filamentspulen verfolgen möchten. Sie können das integrierte Inventar oder einen externen Spoolman-Server verwenden.',
- filamentChecks: 'Filament-Prüfungen',
- disableFilamentWarnings: 'Filament-Warnungen deaktivieren',
- disableFilamentWarningsDesc: 'Keine Warnungen über unzureichendes Filament beim Drucken oder Einreihen anzeigen',
- trackingModeBuiltIn: 'Integriertes Inventar',
- trackingModeBuiltInDesc: 'RFID-Erkennung und Verbrauchserfassung inklusive',
- trackingModeSpoolmanDesc: 'Externer Filament-Management-Server',
- builtInFeatureRfid: 'Erkennt automatisch Bambu Lab RFID-Spulen im AMS',
- builtInFeatureUsage: 'Erfasst den Filamentverbrauch pro Druck',
- builtInFeatureCatalog: 'Spulen, Farben und K-Faktor-Profile verwalten',
- builtInFeatureThirdParty: 'Drittanbieter-Spulen können Inventarspulen zugewiesen werden',
- amsSyncButton: 'Gewichte vom AMS synchronisieren',
- amsSyncTitle: 'Spulengewichte vom AMS synchronisieren',
- 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.',
- amsSyncing: 'Synchronisiere...',
- amsSyncSuccess: '{{synced}} Spule(n) synchronisiert, {{skipped}} übersprungen',
- amsSyncError: 'Synchronisierung der Gewichte vom AMS fehlgeschlagen',
- // Spoolman settings
- spoolmanUrl: 'Spoolman URL',
- spoolmanUrlHint: 'URL Ihres Spoolman-Servers (z.B. http://localhost:7912)',
- spoolmanConnected: 'Verbunden',
- spoolmanDisconnected: 'Nicht verbunden',
- status: 'Status',
- connect: 'Verbinden',
- disconnect: 'Trennen',
- howSyncWorks: 'So funktioniert die Synchronisierung',
- syncInfoRfidOnly: 'Nur offizielle Bambu Lab Spulen mit RFID werden synchronisiert',
- syncInfoAutoCreate: 'Neue Spulen werden bei der ersten Synchronisierung automatisch in Spoolman erstellt',
- syncInfoThirdPartySkipped: 'Nicht-Bambu-Lab-Spulen (Drittanbieter, nachgefüllt) werden übersprungen',
- linkingExistingSpools: 'Vorhandene Spulen verknüpfen',
- 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".',
- syncMode: 'Synchronisierungsmodus',
- syncModeAuto: 'Automatisch',
- syncModeManual: 'Nur manuell',
- syncModeAutoDesc: 'AMS-Daten werden automatisch synchronisiert, wenn Änderungen erkannt werden',
- syncModeManualDesc: 'Nur bei manueller Auslösung synchronisieren',
- syncAmsData: 'AMS-Daten synchronisieren',
- syncAmsDataDesc: 'AMS-Daten des Druckers manuell mit Spoolman synchronisieren',
- allPrinters: 'Alle Drucker',
- // Default printer
- noDefaultPrinter: 'Kein Standard (jedes Mal fragen)',
- // Sidebar
- sidebarOrder: 'Seitenleisten-Reihenfolge',
- // Camera
- saveThumbnails: 'Vorschaubilder speichern',
- captureFinishPhoto: 'Abschlussfoto aufnehmen',
- noPrintersConfigured: 'Keine Drucker konfiguriert',
- // Archive settings
- archiveMode: {
- always: 'Immer Archiveintrag erstellen',
- never: 'Nie Archiveintrag erstellen',
- ask: 'Jedes Mal fragen',
- },
- // Updates
- checkForUpdatesLabel: 'Nach Updates suchen',
- checkPrinterFirmware: 'Drucker-Firmware prüfen',
- includeBetaUpdates: 'Beta-Versionen einschließen',
- includeBetaUpdatesDesc: 'Über Beta- und Vorabversionen bei der Updateprüfung benachrichtigen',
- // Queue
- enableRetry: 'Wiederholung aktivieren',
- // Home Assistant
- homeAssistantDescription: 'Smart Plugs über Home Assistant steuern',
- environmentManagedLabel: '(Umgebungsvariable)',
- autoEnabledViaEnv: 'Automatisch über Umgebungsvariablen aktiviert',
- urlFromEnvReadOnly: 'Wert wird über HA_URL Umgebungsvariable gesetzt (schreibgeschützt)',
- tokenFromEnvReadOnly: 'Wert wird über HA_TOKEN Umgebungsvariable gesetzt (schreibgeschützt)',
- // MQTT
- mqttConnectedTo: 'Verbunden mit',
- // Prometheus
- prometheusDescription: 'Druckerdaten im Prometheus-Format bereitstellen',
- // Smart plugs empty state
- noSmartPlugsTitle: 'Keine Smart Plugs konfiguriert',
- noSmartPlugsDescription: 'Fügen Sie einen Tasmota-basierten Smart Plug hinzu, um den Energieverbrauch zu verfolgen und die Stromsteuerung zu automatisieren.',
- // Notifications empty state
- noProvidersTitle: 'Keine Anbieter konfiguriert',
- noProvidersDescription: 'Fügen Sie einen Anbieter hinzu, um Benachrichtigungen zu erhalten.',
- noTemplatesAvailable: 'Keine Vorlagen verfügbar. Starten Sie das Backend neu, um Standardvorlagen zu laden.',
- // API permissions
- apiPermissionView: 'Druckerstatus und Warteschlange anzeigen',
- apiPermissionEdit: 'Elemente zur Druckwarteschlange hinzufügen und entfernen',
- // API keys
- apiKeysEmptyTitle: 'Keine API-Schlüssel',
- apiKeysEmptyDescription: 'Erstellen Sie einen API-Schlüssel zur Integration mit externen Diensten.',
- // Users
- noUsersFound: 'Keine Benutzer gefunden',
- noGroupsFound: 'Keine Gruppen gefunden',
- noGroupsAvailable: 'Keine Gruppen verfügbar',
- passwordsDoNotMatch: 'Passwörter stimmen nicht überein',
- systemGroupWarning: 'System-Gruppennamen können nicht geändert werden',
- // Auth disabled
- authDisabledTitle: 'Authentifizierung ist deaktiviert',
- authDisabledFeature1: 'Anmeldung zum Zugriff auf das System erforderlich',
- authDisabledFeature2: 'Mehrere Benutzer mit gruppenbasierten Berechtigungen erstellen',
- authDisabledFeature3: 'Zugriff mit über 50 granularen Berechtigungen steuern',
- // User deletion
- userHasCreated: 'Dieser Benutzer hat erstellt:',
- userItemsQuestion: 'Was möchten Sie mit diesen Elementen tun?',
- deleteUserConfirm: 'Möchten Sie diesen Benutzer wirklich löschen?',
- actionCannotBeUndone: 'Diese Aktion kann nicht rückgängig gemacht werden.',
- // Smart plugs
- addFirstSmartPlug: 'Ersten Smart Plug hinzufügen',
- // Notifications
- providers: 'Anbieter',
- log: 'Protokoll',
- testAll: 'Alle testen',
- testResults: 'Testergebnisse',
- testPassedCount: '{{count}} bestanden',
- testFailedCount: '{{count}} fehlgeschlagen',
- messageTemplates: 'Nachrichtenvorlagen',
- messageTemplatesDescription: 'Passen Sie Benachrichtigungen für jedes Ereignis an.',
- // API Keys section
- apiKeys: 'API-Schlüssel',
- apiKeysDescription: 'Erstellen Sie API-Schlüssel für externe Integrationen und Webhooks.',
- createKey: 'Schlüssel erstellen',
- apiKeyCreated: 'API-Schlüssel erfolgreich erstellt',
- apiKeyCopyWarning: 'Kopieren Sie diesen Schlüssel jetzt - er wird nicht mehr angezeigt!',
- useInApiBrowser: 'Im API-Browser verwenden',
- createNewApiKey: 'Neuen API-Schlüssel erstellen',
- keyName: 'Schlüsselname',
- keyNamePlaceholder: 'z.B. Home Assistant, OctoPrint',
- readStatus: 'Status lesen',
- readStatusDescription: 'Druckerstatus und Warteschlange anzeigen',
- manageQueue: 'Warteschlange verwalten',
- manageQueueDescription: 'Elemente zur Druckwarteschlange hinzufügen und entfernen',
- controlPrinter: 'Drucker steuern',
- controlPrinterDescription: 'Drucke pausieren, fortsetzen und stoppen',
- unnamedKey: 'Unbenannter Schlüssel',
- lastUsed: 'Zuletzt verwendet',
- read: 'Lesen',
- control: 'Steuern',
- createFirstKey: 'Ersten Schlüssel erstellen',
- webhookEndpoints: 'Webhook-Endpunkte',
- webhookApiKeyHint: 'Verwenden Sie Ihren API-Schlüssel im X-API-Key-Header.',
- webhook: {
- getAllStatus: 'Alle Druckerstatus abrufen',
- getSpecificStatus: 'Spezifischen Druckerstatus abrufen',
- addToQueue: 'Zur Druckwarteschlange hinzufügen',
- pausePrint: 'Druck pausieren',
- resumePrint: 'Druck fortsetzen',
- stopPrint: 'Druck stoppen',
- },
- apiBrowser: 'API-Browser',
- apiBrowserDescription: 'Erkunden und testen Sie alle verfügbaren API-Endpunkte.',
- apiKeyForTesting: 'API-Schlüssel zum Testen',
- apiKeyPlaceholder: 'Fügen Sie hier Ihren API-Schlüssel ein, um authentifizierte Endpunkte zu testen...',
- apiKeyHint: 'Dieser Schlüssel wird als X-API-Key-Header mit Anfragen gesendet.',
- deleteApiKeyTitle: 'API-Schlüssel löschen',
- deleteApiKeyMessage: 'Möchten Sie diesen API-Schlüssel wirklich löschen? Alle Integrationen, die diesen Schlüssel verwenden, funktionieren nicht mehr.',
- deleteKey: 'Schlüssel löschen',
- // Filament tab
- amsDisplayThresholds: 'AMS-Anzeigeschwellenwerte',
- amsThresholdsDescription: 'Konfigurieren Sie Farbschwellenwerte für AMS-Feuchtigkeits- und Temperaturanzeigen.',
- humidity: 'Luftfeuchtigkeit',
- goodGreen: 'Gut (grün)',
- fairOrange: 'Mittel (orange)',
- aboveFairBad: 'Über dem mittleren Schwellenwert wird rot angezeigt (schlecht)',
- fairAlsoDryingThreshold: 'Dieser Schwellenwert wird auch für die automatische Trocknung verwendet',
- temperature: 'Temperatur',
- goodBlue: 'Gut (blau)',
- aboveFairHot: 'Über dem mittleren Schwellenwert wird rot angezeigt (heiß)',
- historyRetention: 'Verlaufsaufbewahrung',
- keepSensorHistory: 'Sensorverlauf behalten für',
- historyRetentionDescription: 'Ältere Feuchtigkeits- und Temperaturdaten werden automatisch gelöscht',
- staggeredStart: 'Staggered Start',
- staggeredStartDescription: 'Default group size and interval when staggering multi-printer batch starts. Can be overridden per batch in the print modal.',
- plateClear: 'Druckplatte-Bestätigung',
- requirePlateClear: 'Druckplatte-Bestätigung erforderlich',
- requirePlateClearDescription: 'Wenn aktiviert, wartet der Scheduler auf eine Druckplatte-Bestätigung pro Drucker, bevor geplante Drucke auf Druckern mit abgeschlossenen Aufträgen gestartet werden. Deaktivieren Sie dies für Farm-Workflows, bei denen die Platten physisch überprüft werden.',
- staggerGroupSize: 'Group size',
- staggerGroupSizeHelp: 'Printers to start simultaneously per group',
- staggerInterval: 'Interval (minutes)',
- staggerIntervalHelp: 'Delay between each group starting',
- queueDrying: 'Automatische Trocknung',
- queueDryingDescription: 'AMS-Filament automatisch trocknen, wenn der Drucker zwischen Warteschlangen-Drucken im Leerlauf ist. Verwendet den Feuchtigkeitsschwellenwert oben.',
- queueDryingEnabled: 'Automatische Trocknung aktivieren',
- queueDryingEnabledDescription: 'AMS-Trocknung automatisch starten, wenn der Drucker im Leerlauf ist und die Feuchtigkeit über dem Schwellenwert liegt',
- queueDryingBlock: 'Auf Trocknung warten',
- queueDryingBlockDescription: 'Druckwarteschlange blockieren, bis die Trocknung abgeschlossen ist. Wenn aus, haben Drucke Vorrang.',
- ambientDryingEnabled: 'Umgebungstrocknung',
- ambientDryingEnabledDescription: 'Filament auf inaktiven Druckern automatisch trocknen, wenn die Luftfeuchtigkeit den Schwellenwert überschreitet — auch ohne Warteschlange.',
- dryingPresets: 'Trocknungsvoreinstellungen',
- dryingPresetsDescription: 'Temperatur und Dauer pro Filamenttyp. AMS 2 Pro verwendet niedrigere Temperaturen, AMS-HT unterstützt höhere.',
- dryingFilament: 'Filament',
- printModal: 'Druckdialog',
- expandCustomMapping: 'Benutzerdefinierte Zuordnung standardmäßig erweitern',
- expandCustomMappingDescription: 'Bei Druck auf mehrere Drucker die AMS-Zuordnung pro Drucker erweitert anzeigen',
- // User management
- authentication: 'Authentifizierung',
- authEnabledDescription: 'Ihre Instanz ist mit Benutzerauthentifizierung gesichert',
- authDisabledDescription: 'Aktivieren Sie die Anmeldepflicht und verwalten Sie den Benutzerzugriff',
- authDisabledMessage: 'Aktivieren Sie die Authentifizierung, um Benutzerkonten zu erstellen, Berechtigungen zu verwalten und Ihre Bambuddy-Instanz zu sichern.',
- enableAuthentication: 'Authentifizierung aktivieren',
- currentUser: 'Aktueller Benutzer',
- changePassword: 'Passwort ändern',
- admin: 'Admin',
- users: 'Benutzer',
- addUser: 'Benutzer hinzufügen',
- groups: 'Gruppen',
- addGroup: 'Gruppe hinzufügen',
- system: 'System',
- noDescription: 'Keine Beschreibung',
- userCount: '{{count}} Benutzer',
- permissionCount: '{{count}} Berechtigungen',
- createUser: 'Benutzer erstellen',
- username: 'Benutzername',
- enterUsername: 'Benutzername eingeben',
- password: 'Passwort',
- enterPassword: 'Passwort eingeben (min. 6 Zeichen)',
- confirmPassword: 'Passwort bestätigen',
- confirmPasswordPlaceholder: 'Passwort bestätigen',
- // Title tooltips
- viewReleaseOnGitHub: 'Release auf GitHub anzeigen',
- turnAllPlugsOn: 'Alle Stecker einschalten',
- turnAllPlugsOff: 'Alle Stecker ausschalten',
- // Modal: Clear logs
- clearNotificationLogs: 'Benachrichtigungsprotokolle löschen',
- clearLogsMessage: 'Dadurch werden alle Benachrichtigungsprotokolle, die älter als 30 Tage sind, dauerhaft gelöscht. Diese Aktion kann nicht rückgängig gemacht werden.',
- clearLogs: 'Protokolle löschen',
- // Modal: Reset UI
- resetUiPreferences: 'UI-Einstellungen zurücksetzen',
- resetUiPreferencesMessage: 'Dadurch werden alle UI-Einstellungen auf Standardwerte zurückgesetzt: Seitenleisten-Reihenfolge, Theme, Dashboard-Layout, Ansichtsmodi und Sortiereinstellungen. Ihre Drucker, Archive und Servereinstellungen werden NICHT beeinträchtigt. Die Seite wird nach dem Löschen neu geladen.',
- resetPreferences: 'Einstellungen zurücksetzen',
- // Modal: Delete group
- deleteGroupTitle: 'Gruppe löschen',
- deleteGroupMessage: 'Möchten Sie diese Gruppe wirklich löschen? Benutzer in dieser Gruppe verlieren diese Berechtigungen.',
- deleteGroup: 'Gruppe löschen',
- // Modal: Disable auth
- disableAuthenticationTitle: 'Authentifizierung deaktivieren',
- disableAuthenticationMessage: 'Möchten Sie die Authentifizierung wirklich deaktivieren? Dadurch wird Ihre Bambuddy-Instanz ohne Anmeldung zugänglich. Alle Benutzer bleiben in der Datenbank, aber die Authentifizierung wird deaktiviert.',
- disableAuthentication: 'Authentifizierung deaktivieren',
- // Additional settings
- configureBambuddy: 'Bambuddy konfigurieren',
- systemDefault: 'Systemstandard',
- archiveSettings: 'Archiv-Einstellungen',
- newWindow: 'Neues Fenster',
- embeddedOverlay: 'Eingebettetes Overlay',
- preferredSlicer: 'Bevorzugter Slicer',
- preferredSlicerDescription: 'Wähle die Slicer-Anwendung zum Öffnen von Dateien',
- externalCameras: 'Externe Kameras',
- costTracking: 'Kostenverfolgung',
- printsOnly: 'Nur Drucke',
- totalConsumption: 'Gesamtverbrauch',
- dataManagement: 'Datenverwaltung',
- storageUsage: 'Speichernutzung',
- storageUsageDescription: 'Aufschlüsselung der Datennutzung nach Kategorie',
- storageUsageTotal: 'Gesamt',
- storageUsageErrors: 'Fehler',
- storageUsageOtherBreakdown: 'Sonstiges (enthält statische Assets, Skripte und Konfigurationsdateien)',
- storageUsageSystem: 'System',
- storageUsageData: 'Daten',
- storageUsageUnavailable: 'Speichernutzungsinformationen nicht verfügbar',
- clearNotificationLogsDescription: 'Benachrichtigungsprotokolle älter als 30 Tage löschen',
- resetUiPreferencesDescription: 'Seitenleisten-Reihenfolge, Theme, Ansichtsmodi und Layout-Einstellungen zurücksetzen. Drucker, Archive und Einstellungen werden nicht beeinflusst.',
- enableHomeAssistant: 'Home Assistant aktivieren',
- enableMqtt: 'MQTT aktivieren',
- useTls: 'TLS verwenden',
- enableMetricsEndpoint: 'Metrik-Endpunkt aktivieren',
- availableMetrics: 'Verfügbare Metriken',
- editUser: 'Benutzer bearbeiten',
- deleteUserTitle: 'Benutzer löschen',
- groupName: 'Gruppenname',
- // Placeholders
- leaveEmptyForAnonymous: 'Leer lassen für anonym',
- leaveEmptyForNoAuth: 'Leer lassen für keine Authentifizierung',
- enterNewPassword: 'Neues Passwort eingeben',
- confirmNewPassword: 'Neues Passwort bestätigen',
- enterGroupName: 'Gruppenname eingeben',
- enterDescriptionOptional: 'Beschreibung eingeben (optional)',
- enterCurrentPassword: 'Aktuelles Passwort eingeben',
- enterNewPasswordMin6: 'Neues Passwort eingeben (min. 6 Zeichen)',
- toast: {
- keyCopied: 'Schlüssel in Zwischenablage kopiert',
- copyFailed: 'Schlüssel konnte nicht kopiert werden',
- keyAddedToBrowser: 'Schlüssel zum API-Browser hinzugefügt',
- clearLogsFailed: 'Protokolle konnten nicht gelöscht werden',
- uiPreferencesReset: 'UI-Einstellungen zurückgesetzt. Wird neu geladen...',
- authDisabled: 'Authentifizierung erfolgreich deaktiviert',
- authDisableFailed: 'Authentifizierung konnte nicht deaktiviert werden',
- apiKeyCreated: 'API-Schlüssel erstellt',
- apiKeyDeleted: 'API-Schlüssel gelöscht',
- userCreated: 'Benutzer erfolgreich erstellt',
- userUpdated: 'Benutzer erfolgreich aktualisiert',
- userDeleted: 'Benutzer erfolgreich gelöscht',
- groupCreated: 'Gruppe erfolgreich erstellt',
- groupUpdated: 'Gruppe erfolgreich aktualisiert',
- groupDeleted: 'Gruppe erfolgreich gelöscht',
- fillRequiredFields: 'Bitte füllen Sie alle erforderlichen Felder aus',
- passwordsDoNotMatch: 'Passwörter stimmen nicht überein',
- passwordTooShort: 'Passwort muss mindestens 6 Zeichen lang sein',
- enterGroupName: 'Bitte geben Sie einen Gruppennamen ein',
- settingsSaved: 'Einstellungen gespeichert',
- cameraSettingsSaved: 'Kamera-Einstellungen gespeichert',
- enterCameraUrl: 'Bitte geben Sie eine Kamera-URL ein',
- passwordChanged: 'Passwort erfolgreich geändert',
- connectionFailed: 'Verbindung fehlgeschlagen',
- testFailed: 'Test fehlgeschlagen',
- cameraConnected: 'Kamera verbunden{{resolution}}',
- },
- testConnection: 'Verbindung testen',
- catalog: {
- spoolCatalog: 'Spulenkatalog',
- spoolCatalogDescription: 'Leerspulengewichte nach Marke/Typ. Wird für die automatische Gewichtssuche beim Hinzufügen von Spulen verwendet.',
- searchCatalog: 'Katalog durchsuchen...',
- addNewEntry: 'Neuen Eintrag hinzufügen',
- namePlaceholder: 'Name (z.B. Bambu Lab - Plastik)',
- weight: 'Gewicht',
- type: 'Typ',
- default: 'Standard',
- custom: 'Benutzerdefiniert',
- noMatch: 'Keine Einträge entsprechen Ihrer Suche',
- empty: 'Keine Einträge im Katalog',
- deleteEntry: 'Eintrag löschen',
- deleteConfirm: 'Möchten Sie "{{name}}" wirklich löschen?',
- resetCatalog: 'Katalog zurücksetzen',
- resetConfirm: 'Katalog auf Standardwerte zurücksetzen? Alle benutzerdefinierten Einträge werden entfernt.',
- loadFailed: 'Spulenkatalog konnte nicht geladen werden',
- nameWeightRequired: 'Name und Gewicht sind erforderlich',
- entryAdded: 'Eintrag hinzugefügt',
- addFailed: 'Eintrag konnte nicht hinzugefügt werden',
- entryUpdated: 'Eintrag aktualisiert',
- updateFailed: 'Eintrag konnte nicht aktualisiert werden',
- entryDeleted: 'Eintrag gelöscht',
- deleteFailed: 'Eintrag konnte nicht gelöscht werden',
- resetSuccess: 'Katalog auf Standardwerte zurückgesetzt',
- resetFailed: 'Katalog konnte nicht zurückgesetzt werden',
- exported: '{{count}} Einträge exportiert',
- imported: '{{added}} Einträge importiert ({{skipped}} übersprungen)',
- importFailed: 'Import fehlgeschlagen: ungültiges JSON-Format',
- exportTooltip: 'Katalog als JSON exportieren',
- importTooltip: 'Katalog aus JSON importieren',
- resetTooltip: 'Auf Standardwerte zurücksetzen',
- selectedCount: '{{count}} ausgewählt',
- deleteSelected: 'Ausgewählte löschen',
- bulkDeleteConfirm: 'Möchten Sie {{count}} Einträge wirklich löschen?',
- bulkDeleted: '{{count}} Einträge gelöscht',
- bulkDeleteFailed: 'Fehler beim Löschen der Einträge',
- },
- colorCatalog: {
- title: 'Farbkatalog',
- description: 'Filamentfarben nach Hersteller/Material. Wird für die automatische Farbsuche beim Hinzufügen von Spulen verwendet.',
- searchColors: 'Farben durchsuchen...',
- allManufacturers: 'Alle Hersteller',
- addNewColor: 'Neue Farbe hinzufügen',
- manufacturer: 'Hersteller',
- colorName: 'Farbname',
- hex: 'Hex',
- materialOptional: 'Material (optional)',
- showing: '{{filtered}} von {{total}} Farben angezeigt',
- noMatch: 'Keine Farben entsprechen Ihrer Suche',
- empty: 'Keine Farben im Katalog',
- deleteColor: 'Farbe löschen',
- deleteConfirm: 'Möchten Sie "{{name}}" wirklich löschen?',
- resetCatalog: 'Farbkatalog zurücksetzen',
- resetConfirm: 'Katalog auf Standardwerte zurücksetzen? Alle benutzerdefinierten Farben werden entfernt.',
- sync: 'Sync',
- starting: 'Starten...',
- syncTooltip: 'Von FilamentColors.xyz synchronisieren (2000+ Farben)',
- loadFailed: 'Farbkatalog konnte nicht geladen werden',
- fieldsRequired: 'Hersteller, Farbname und Hex-Farbe sind erforderlich',
- colorAdded: 'Farbe hinzugefügt',
- addFailed: 'Farbe konnte nicht hinzugefügt werden',
- colorUpdated: 'Farbe aktualisiert',
- updateFailed: 'Farbe konnte nicht aktualisiert werden',
- colorDeleted: 'Farbe gelöscht',
- deleteFailed: 'Farbe konnte nicht gelöscht werden',
- resetSuccess: 'Farbkatalog auf Standardwerte zurückgesetzt',
- resetFailed: 'Katalog konnte nicht zurückgesetzt werden',
- syncUpToDate: 'Bereits aktuell ({{count}} Farben geprüft)',
- syncComplete: '{{added}} neue Farben hinzugefügt ({{skipped}} bereits vorhanden)',
- syncError: 'Sync-Fehler',
- syncFailed: 'Synchronisierung von FilamentColors.xyz fehlgeschlagen',
- exported: '{{count}} Farben exportiert',
- imported: '{{added}} Farben importiert ({{skipped}} übersprungen)',
- importFailed: 'Import fehlgeschlagen: ungültiges JSON-Format',
- selectedCount: '{{count}} ausgewählt',
- deleteSelected: 'Ausgewählte löschen',
- bulkDeleteConfirm: 'Möchten Sie {{count}} Farben wirklich löschen?',
- bulkDeleted: '{{count}} Farben gelöscht',
- bulkDeleteFailed: 'Fehler beim Löschen der Farben',
- },
- // General tab
- dateFormat: 'Datumsformat',
- dateFormatUs: 'US (MM/TT/JJJJ)',
- dateFormatEu: 'EU (TT/MM/JJJJ)',
- dateFormatIso: 'ISO (JJJJ-MM-TT)',
- timeFormat: 'Zeitformat',
- timeFormat12: '12-Stunden (3:30 PM)',
- timeFormat24: '24-Stunden (15:30)',
- defaultPrinter: 'Standarddrucker',
- defaultPrinterDescription: 'Diesen Drucker für Uploads, Nachdrucke und andere Vorgänge vorauswählen.',
- slicerBambuStudio: 'Bambu Studio',
- slicerOrcaSlicer: 'OrcaSlicer',
- sidebarOrderDescription: 'Elemente in der Seitenleiste per Drag & Drop neu anordnen. Hier auf Standardreihenfolge zurücksetzen.',
- setDefault: 'Standard setzen',
- sidebarOrderSetDefaultHint: 'Standard setzen übernimmt die aktuelle Menüreihenfolge für Benutzer, die ihre noch nicht angepasst haben.',
- sidebarDefaultSet: 'Standard-Menüreihenfolge wurde festgelegt.',
- sidebarDefaultCleared: 'Standard-Menüreihenfolge gelöscht.',
- sidebarDefaultFailed: 'Festlegen der Standard-Menüreihenfolge fehlgeschlagen.',
- reset: 'Zurücksetzen',
- // Appearance
- darkMode: 'Dunkelmodus',
- lightMode: 'Hellmodus',
- active: '(aktiv)',
- background: 'Hintergrund',
- accent: 'Akzent',
- style: 'Stil',
- bgNeutral: 'Neutral',
- bgWarm: 'Warm',
- bgCool: 'Kühl',
- bgOled: 'OLED Schwarz',
- bgSlate: 'Schieferblau',
- bgForest: 'Waldgrün',
- accentGreen: 'Grün',
- accentTeal: 'Türkis',
- accentBlue: 'Blau',
- accentOrange: 'Orange',
- accentPurple: 'Lila',
- accentRed: 'Rot',
- styleClassic: 'Klassisch',
- styleGlow: 'Leuchtend',
- styleVibrant: 'Lebendig',
- themeToggleHint: 'Zwischen Hell- und Dunkelmodus mit dem Sonnen-/Mondsymbol in der Seitenleiste wechseln.',
- // Archive
- autoArchivePrints: 'Drucke automatisch archivieren',
- autoArchiveDescription: '3MF-Dateien automatisch speichern, wenn Drucke abgeschlossen sind',
- saveThumbnailsDescription: 'Vorschaubilder aus 3MF-Dateien extrahieren und speichern',
- captureFinishPhotoDescription: 'Foto von der Druckerkamera aufnehmen, wenn der Druck abgeschlossen ist',
- ffmpegNotInstalled: 'ffmpeg nicht installiert',
- ffmpegRequired: 'Kameraaufnahme benötigt ffmpeg. Installieren über <brew>brew install ffmpeg</brew> (macOS) oder <apt>apt install ffmpeg</apt> (Linux).',
- // Camera
- camera: 'Kamera',
- cameraViewMode: 'Kamera-Ansichtsmodus',
- cameraOverlayDescription: 'Kamera öffnet sich als größenveränderbares Overlay auf dem Hauptbildschirm',
- cameraWindowDescription: 'Kamera öffnet sich in einem separaten Browserfenster',
- externalCamerasDescription: 'Externe Kameras konfigurieren, um die eingebaute Druckerkamera zu ersetzen. Unterstützt MJPEG-Streams, RTSP, HTTP-Snapshots und USB-Kameras (V4L2). Wenn aktiviert, wird die externe Kamera für Live-Ansicht und Abschlussfotos verwendet.',
- cameraPlaceholderUsb: 'Gerätepfad (/dev/video0)',
- cameraPlaceholderUrl: 'Kamera-URL (rtsp://... oder http://...)',
- cameraTypeMjpeg: 'MJPEG-Stream',
- cameraTypeRtsp: 'RTSP-Stream',
- cameraTypeSnapshot: 'HTTP-Snapshot',
- cameraTypeUsb: 'USB-Kamera (V4L2)',
- cameraRotation: 'Drehung',
- test: 'Testen',
- connected: 'Verbunden',
- disconnected: 'Getrennt',
- // Cost tracking
- currency: 'Währung',
- defaultFilamentCost: 'Standard-Filamentkosten (pro kg)',
- electricityCost: 'Stromkosten pro kWh',
- energyDisplayMode: 'Energieanzeige-Modus',
- energyModePrintDescription: 'Dashboard zeigt Summe der während Drucken verbrauchten Energie',
- energyModeTotalDescription: 'Dashboard zeigt Gesamtenergie der Smart Plugs',
- // File Manager
- fileManager: 'Dateimanager',
- createArchiveEntry: 'Archiveintrag beim Drucken erstellen',
- createArchiveEntryDescription: 'Beim Drucken aus dem Dateimanager optional einen Archiveintrag erstellen',
- lowDiskSpaceWarning: 'Warnung bei wenig Speicherplatz',
- lowDiskSpaceDescription: 'Warnung anzeigen, wenn freier Speicherplatz unter diesen Schwellenwert fällt',
- // Updates
- printerFirmware: 'Drucker-Firmware',
- checkFirmwareDescription: 'Nach Firmware-Updates von Bambu Lab suchen',
- bambuddySoftware: 'Bambuddy Software',
- autoCheckDescription: 'Automatisch beim Start nach neuen Versionen suchen',
- checkNow: 'Jetzt prüfen',
- updateAvailableVersion: 'Update verfügbar: v{{version}}',
- releaseNotes: 'Versionshinweise',
- updateViaDocker: 'Update über Docker Compose:',
- installUpdate: 'Update installieren',
- latestVersionRunning: 'Sie verwenden die neueste Version',
- failedToCheckUpdates: 'Update-Prüfung fehlgeschlagen: {{error}}',
- // Data Management
- backupRestore: 'Sicherung & Wiederherstellung',
- backupRestoreDescription: 'Einstellungen exportieren/importieren und GitHub-Backup konfigurieren',
- goToBackup: 'Zur Sicherung',
- // Network tab
- externalUrl: 'Externe URL',
- externalUrlDescription: 'Die externe URL, unter der Bambuddy erreichbar ist. Wird für Benachrichtigungsbilder und externe Integrationen verwendet.',
- bambuddyUrl: 'Bambuddy-URL',
- externalUrlHint: 'Protokoll und Port angeben (z.B. http://192.168.1.100:8000)',
- ftpRetry: 'FTP-Wiederholung',
- ftpRetryDescription: 'FTP-Operationen bei unzuverlässigem Drucker-WLAN wiederholen. Gilt für 3MF-Downloads, Druck-Uploads, Zeitraffer-Downloads und Firmware-Updates.',
- autoRetryDescription: 'Fehlgeschlagene FTP-Operationen automatisch wiederholen',
- retryAttempts: 'Wiederholungsversuche',
- retryDelay: 'Wiederholungsverzögerung',
- connectionTimeout: 'Verbindungs-Timeout',
- time_one: '{{count}} Mal',
- time_other: '{{count}} Mal',
- second_one: '{{count}} Sekunde',
- second_other: '{{count}} Sekunden',
- nSeconds: '{{count}} Sekunden',
- increaseForWeakWifi: 'Erhöhen für Drucker mit schwachem WLAN',
- // Home Assistant
- homeAssistant: 'Home Assistant',
- homeAssistantFullDescription: 'Mit Home Assistant verbinden, um Smart Plugs über die HA REST-API zu steuern. Unterstützt Switch-, Light-, Input_Boolean- und Script-Entitäten.',
- homeAssistantUrl: 'Home Assistant URL',
- longLivedAccessToken: 'Langlebiges Zugriffstoken',
- haTokenHint: 'Token in HA erstellen: Profil → Langlebige Zugriffstoken → Token erstellen',
- connectionSuccessful: 'Verbindung erfolgreich',
- connectionFailed: 'Verbindung fehlgeschlagen',
- haConnectionSuccess: 'Erfolgreich mit Home Assistant verbunden.',
- haConnectionFailed: 'Verbindung zu Home Assistant fehlgeschlagen.',
- // MQTT
- mqttPublishing: 'MQTT-Veröffentlichung',
- mqttDescription: 'BamBuddy-Ereignisse an einen externen MQTT-Broker zur Integration mit Node-RED, Home Assistant und anderen Automatisierungssystemen veröffentlichen.',
- mqttEnableDescription: 'Ereignisse an externen MQTT-Broker veröffentlichen',
- brokerHostname: 'Broker-Hostname',
- port: 'Port',
- usernameOptional: 'Benutzername (optional)',
- passwordOptional: 'Passwort (optional)',
- topicPrefix: 'Topic-Präfix',
- topicPrefixHint: 'Topics werden sein: {{prefix}}/printers/<serial>/status, etc.',
- // Prometheus
- prometheusMetrics: 'Prometheus-Metriken',
- prometheusEndpointDescription: 'Druckermetriken unter <code>/api/v1/metrics</code> für Prometheus/Grafana-Überwachung bereitstellen.',
- bearerTokenOptional: 'Bearer-Token (optional)',
- bearerTokenHint: 'Wenn gesetzt, müssen Anfragen <code>Authorization: Bearer <token></code> enthalten',
- metricsConnectionStatus: 'Verbindungsstatus',
- metricsPrinterState: 'Druckerstatus (idle/printing/etc)',
- metricsPrintProgress: 'Druckfortschritt 0-100%',
- metricsBedTemp: 'Betttemperatur',
- metricsNozzleTemp: 'Düsentemperatur',
- metricsPrintsTotal: 'Gesamtdrucke nach Ergebnis',
- metricsMore: '...und mehr (Schichten, Lüfter, Warteschlange, Filamentverbrauch)',
- // Smart Plugs
- smartPlugsDescription: 'Smart Plugs (Tasmota oder Home Assistant) verbinden, um Stromsteuerung zu automatisieren und Energieverbrauch für Ihre Drucker zu verfolgen.',
- allOn: 'Alle Ein',
- allOff: 'Alle Aus',
- addSmartPlug: 'Smart Plug hinzufügen',
- energySummary: 'Energieübersicht',
- currentPower: 'Aktuelle Leistung',
- plugsOnline: '{{reachable}}/{{total}} Plugs online',
- today: 'Heute',
- yesterday: 'Gestern',
- total: 'Gesamt',
- enablePlugsForSummary: 'Plugs aktivieren, um Energieübersicht zu sehen',
- addNotificationProvider: 'Hinzufügen',
- // Users
- systemBadge: '(System)',
- creating: 'Erstellen...',
- changing: 'Ändern...',
- deleteUserAndItems: 'Benutzer UND dessen Elemente löschen',
- deleteUserKeepItems: 'Benutzer löschen, Elemente behalten (werden herrenlos)',
- ok: 'OK',
- },
- // Notifications (for push notifications)
- notification: {
- printStarted: {
- title: 'Druck gestartet',
- body: '{{printer}}: {{filename}} wird gedruckt',
- },
- printCompleted: {
- title: 'Druck abgeschlossen',
- body: '{{printer}}: {{filename}} erfolgreich abgeschlossen',
- },
- printFailed: {
- title: 'Druck fehlgeschlagen',
- body: '{{printer}}: {{filename}} ist fehlgeschlagen',
- },
- printStopped: {
- title: 'Druck gestoppt',
- body: '{{printer}}: {{filename}} wurde gestoppt',
- },
- printProgress: {
- title: 'Druckfortschritt',
- body: '{{printer}}: {{filename}} ist zu {{percent}}% abgeschlossen',
- },
- printerOffline: {
- title: 'Drucker offline',
- body: '{{printer}} ist offline',
- },
- printerError: {
- title: 'Druckerfehler',
- body: '{{printer}}: {{error}}',
- },
- filamentLow: {
- title: 'Filament niedrig',
- body: '{{printer}}: Filament geht zur Neige',
- },
- maintenanceDue: {
- title: 'Wartung fällig',
- body: '{{printer}}: {{items}} benötigen Aufmerksamkeit',
- },
- },
- // Errors
- errors: {
- generic: 'Etwas ist schiefgelaufen',
- networkError: 'Netzwerkfehler. Bitte überprüfen Sie Ihre Verbindung.',
- notFound: 'Nicht gefunden',
- unauthorized: 'Nicht autorisiert',
- serverError: 'Serverfehler',
- validationError: 'Bitte überprüfen Sie Ihre Eingabe',
- printerConnectionFailed: 'Verbindung zum Drucker fehlgeschlagen',
- saveFailed: 'Speichern fehlgeschlagen',
- deleteFailed: 'Löschen fehlgeschlagen',
- loadFailed: 'Laden der Daten fehlgeschlagen',
- },
- // HMS Errors modal
- hmsErrors: {
- title: 'Fehler - {{name}}',
- noErrors: 'Keine Fehler',
- viewOnWiki: 'Im Bambu Lab Wiki ansehen',
- clearInstructions: 'Löschen Sie die Fehler am Drucker, um sie hier zu entfernen.',
- clearErrors: 'Fehler löschen',
- clearSuccess: 'HMS-Fehler gelöscht',
- clearFailed: 'HMS-Fehler konnten nicht gelöscht werden',
- },
- // MQTT Debug modal
- mqttDebug: {
- title: 'MQTT-Debug-Protokoll',
- searchPlaceholder: 'Topic oder Payload suchen...',
- noMessages: 'Noch keine Nachrichten protokolliert',
- startLoggingHint: 'Klicken Sie auf "Protokollierung starten", um MQTT-Nachrichten aufzuzeichnen',
- noMessagesMatch: 'Keine Nachrichten entsprechen Ihrem Filter',
- adjustFilterHint: 'Versuchen Sie, Ihre Such- oder Filterkriterien anzupassen',
- incoming: 'Eingehend',
- outgoing: 'Ausgehend',
- loggingStopped: 'Protokollierung gestoppt',
- loggingActive: 'Protokollierung aktiv - Nachrichten werden automatisch aktualisiert',
- startLogging: 'Protokollierung starten',
- stopLogging: 'Protokollierung stoppen',
- clearLog: 'Protokoll löschen',
- topic: 'Topic',
- timestamp: 'Zeitstempel',
- direction: 'Richtung',
- all: 'Alle',
- },
- // Printer File Manager modal (printer internal storage)
- printerFiles: {
- title: 'Dateimanager',
- storageUsed: 'Belegt:',
- storageFree: 'Frei:',
- filterPlaceholder: 'Dateien filtern...',
- deleteButton: 'Löschen',
- deleteFiles: '{{count}} Dateien löschen',
- deleteFileConfirm: '"{{name}}" löschen? Dies kann nicht rückgängig gemacht werden.',
- deleteFilesConfirm: '{{count}} ausgewählte Dateien löschen? Dies kann nicht rückgängig gemacht werden.',
- noFiles: 'Keine Dateien auf dem Drucker',
- loadingFiles: 'Dateien werden geladen...',
- failedToLoad: 'Dateien konnten nicht geladen werden',
- toast: {
- filesDeleted: '{{count}} Datei(en) gelöscht',
- deleteFailed: 'Löschen fehlgeschlagen: {{error}}',
- },
- },
- // Confirmations
- confirm: {
- delete: 'Möchten Sie dies wirklich löschen?',
- unsavedChanges: 'Sie haben ungespeicherte Änderungen. Möchten Sie wirklich verlassen?',
- clearQueue: 'Möchten Sie die Warteschlange wirklich leeren?',
- },
- // Login page
- login: {
- title: 'Bambuddy Anmeldung',
- subtitle: 'Melden Sie sich bei Ihrem Konto an',
- username: 'Benutzername',
- usernamePlaceholder: 'Benutzername eingeben',
- usernameOrEmail: 'Benutzername oder E-Mail',
- usernameOrEmailPlaceholder: 'Benutzername oder @ E-Mail',
- password: 'Passwort',
- passwordPlaceholder: 'Passwort eingeben',
- signIn: 'Anmelden',
- signingIn: 'Anmeldung läuft...',
- forgotPassword: 'Passwort vergessen?',
- loginSuccess: 'Erfolgreich angemeldet',
- loginFailed: 'Anmeldung fehlgeschlagen',
- enterCredentials: 'Bitte Benutzername und Passwort eingeben',
- forgotPasswordTitle: 'Passwort vergessen',
- forgotPasswordMessage: 'Wenn Sie Ihr Passwort vergessen haben, wenden Sie sich bitte an Ihren Systemadministrator.',
- forgotPasswordEmailMessage: 'Geben Sie Ihre E-Mail-Adresse ein und wir senden Ihnen ein neues Passwort.',
- emailAddress: 'E-Mail-Adresse',
- emailPlaceholder: 'ihre.email@beispiel.de',
- cancel: 'Abbrechen',
- sending: 'Wird gesendet...',
- sendResetEmail: 'Zurücksetzungs-E-Mail senden',
- howToReset: 'So setzen Sie Ihr Passwort zurück:',
- resetStep1: 'Kontaktieren Sie Ihren Bambuddy-Administrator',
- resetStep2: 'Bitten Sie ihn, Ihr Passwort in der Benutzerverwaltung zurückzusetzen',
- resetStep3: 'Er kann ein neues temporäres Passwort für Sie festlegen',
- resetStep4: 'Melden Sie sich mit dem neuen Passwort an und ändern Sie es in den Einstellungen',
- gotIt: 'Verstanden',
- },
- // Setup page
- setup: {
- title: 'Bambuddy Einrichtung',
- subtitle: 'Konfigurieren Sie die Authentifizierung für Ihre Bambuddy-Instanz',
- enableAuth: 'Authentifizierung aktivieren',
- adminAccount: 'Admin-Konto',
- adminAccountDesc: 'Wenn bereits Admin-Benutzer existieren, wird die Authentifizierung mit den vorhandenen Admin-Konten aktiviert. Lassen Sie die Felder unten leer, um vorhandene Admins zu verwenden, oder geben Sie neue Anmeldedaten ein, um einen neuen Admin-Benutzer zu erstellen.',
- adminUsername: 'Admin-Benutzername',
- adminPassword: 'Admin-Passwort',
- optionalIfAdminExists: '(optional, wenn Admin-Benutzer existieren)',
- adminUsernamePlaceholder: 'Admin-Benutzernamen eingeben (optional)',
- adminPasswordPlaceholder: 'Admin-Passwort eingeben (optional)',
- confirmPassword: 'Passwort bestätigen',
- confirmPasswordPlaceholder: 'Admin-Passwort bestätigen',
- settingUp: 'Einrichtung läuft...',
- completeSetup: 'Einrichtung abschließen',
- toast: {
- authEnabledAdminCreated: 'Authentifizierung aktiviert und Admin-Benutzer erstellt',
- authEnabledExistingAdmins: 'Authentifizierung mit vorhandenen Admin-Benutzern aktiviert',
- setupCompleted: 'Einrichtung abgeschlossen',
- enterBothCredentials: 'Bitte geben Sie sowohl Admin-Benutzernamen als auch Passwort ein, oder lassen Sie beide leer, um vorhandene Admin-Benutzer zu verwenden',
- passwordsDoNotMatch: 'Passwörter stimmen nicht überein',
- passwordTooShort: 'Passwort muss mindestens 6 Zeichen lang sein',
- },
- },
- // Password change
- changePassword: {
- title: 'Passwort ändern',
- currentPassword: 'Aktuelles Passwort',
- currentPasswordPlaceholder: 'Aktuelles Passwort eingeben',
- newPassword: 'Neues Passwort',
- newPasswordPlaceholder: 'Neues Passwort eingeben (min. 6 Zeichen)',
- confirmPassword: 'Neues Passwort bestätigen',
- confirmPasswordPlaceholder: 'Neues Passwort bestätigen',
- passwordsDoNotMatch: 'Passwörter stimmen nicht überein',
- passwordTooShort: 'Passwort muss mindestens 6 Zeichen lang sein',
- changing: 'Wird geändert...',
- success: 'Passwort erfolgreich geändert',
- failed: 'Passwortänderung fehlgeschlagen',
- },
- // Plate detection alert
- plateAlert: {
- title: 'Druck pausiert!',
- message: 'Objekte auf dem Druckbett erkannt. Der Druck wurde automatisch pausiert. Bitte räumen Sie das Druckbett und setzen Sie den Druck fort.',
- understand: 'Verstanden',
- },
- // Camera page
- camera: {
- title: 'Kameraansicht',
- invalidPrinterId: 'Ungültige Drucker-ID',
- live: 'Live',
- snapshot: 'Schnappschuss',
- restartStream: 'Stream neu starten',
- refreshSnapshot: 'Schnappschuss aktualisieren',
- fullscreen: 'Vollbild',
- exitFullscreen: 'Vollbild beenden',
- connectingToCamera: 'Verbinde mit Kamera...',
- capturingSnapshot: 'Schnappschuss wird aufgenommen...',
- connectionLost: 'Verbindung verloren',
- connectionFailed: 'Kameraverbindung fehlgeschlagen',
- reconnecting: 'Neuverbindung in {{countdown}}s... (Versuch {{attempt}}/{{max}})',
- reconnectNow: 'Jetzt verbinden',
- cameraUnavailable: 'Kamera nicht verfügbar',
- cameraUnavailableDesc: 'Stellen Sie sicher, dass der Drucker eingeschaltet und verbunden ist.',
- noCamera: 'Keine Kamera verfügbar',
- retry: 'Erneut versuchen',
- cameraStream: 'Kamera-Stream',
- zoomOut: 'Verkleinern',
- zoomIn: 'Vergrößern',
- resetZoom: 'Zoom zurücksetzen',
- recording: 'Aufnahme',
- startRecording: 'Aufnahme starten',
- stopRecording: 'Aufnahme stoppen',
- chamberLight: 'Kammerbeleuchtung umschalten',
- },
- // Groups management
- groups: {
- title: 'Gruppenverwaltung',
- subtitle: 'Berechtigungsgruppen für Zugriffskontrolle verwalten',
- backToSettings: 'Zurück zu Einstellungen',
- createGroup: 'Gruppe erstellen',
- noPermission: 'Sie haben keine Berechtigung, auf diese Seite zuzugreifen.',
- system: 'System',
- noDescription: 'Keine Beschreibung',
- usersCount: '{{count}} Benutzer',
- permissionsCount: '{{count}} Berechtigungen',
- edit: 'Bearbeiten',
- delete: 'Löschen',
- toast: {
- created: 'Gruppe erfolgreich erstellt',
- updated: 'Gruppe erfolgreich aktualisiert',
- deleted: 'Gruppe erfolgreich gelöscht',
- enterGroupName: 'Bitte geben Sie einen Gruppennamen ein',
- },
- modal: {
- editGroup: 'Gruppe bearbeiten',
- createGroup: 'Gruppe erstellen',
- cancel: 'Abbrechen',
- saving: 'Speichern...',
- creating: 'Erstellen...',
- saveChanges: 'Änderungen speichern',
- },
- form: {
- groupName: 'Gruppenname',
- groupNamePlaceholder: 'Gruppennamen eingeben',
- systemGroupWarning: 'Systemgruppennamen können nicht geändert werden',
- description: 'Beschreibung',
- descriptionPlaceholder: 'Beschreibung eingeben (optional)',
- permissions: 'Berechtigungen ({{count}} ausgewählt)',
- },
- deleteModal: {
- title: 'Gruppe löschen',
- message: 'Sind Sie sicher, dass Sie diese Gruppe löschen möchten? Benutzer in dieser Gruppe verlieren diese Berechtigungen.',
- confirm: 'Gruppe löschen',
- },
- editor: {
- title: 'Gruppe bearbeiten',
- createTitle: 'Gruppe erstellen',
- search: 'Berechtigungen suchen...',
- selectAll: 'Alle auswählen',
- clearAll: 'Alle abwählen',
- permissionsSelected: '{{count}} ausgewählt',
- noResults: 'Keine Berechtigungen entsprechen Ihrer Suche',
- },
- },
- // Users management
- users: {
- title: 'Benutzerverwaltung',
- subtitle: 'Benutzer und deren Zugriff auf Ihre Bambuddy-Instanz verwalten',
- backToSettings: 'Zurück zu Einstellungen',
- createUser: 'Benutzer erstellen',
- noPermission: 'Sie haben keine Berechtigung, auf diese Seite zuzugreifen.',
- admin: 'Admin',
- noGroups: 'Keine Gruppen',
- active: 'Aktiv',
- inactive: 'Inaktiv',
- edit: 'Bearbeiten',
- delete: 'Löschen',
- system: 'System',
- noGroupsAvailable: 'Keine Gruppen verfügbar',
- table: {
- username: 'Benutzername',
- groups: 'Gruppen',
- status: 'Status',
- actions: 'Aktionen',
- },
- toast: {
- created: 'Benutzer erfolgreich erstellt',
- updated: 'Benutzer erfolgreich aktualisiert',
- deleted: 'Benutzer erfolgreich gelöscht',
- fillRequired: 'Bitte füllen Sie alle Pflichtfelder aus',
- passwordsDoNotMatch: 'Passwörter stimmen nicht überein',
- passwordTooShort: 'Passwort muss mindestens 6 Zeichen lang sein',
- },
- modal: {
- createUser: 'Benutzer erstellen',
- editUser: 'Benutzer bearbeiten',
- cancel: 'Abbrechen',
- creating: 'Erstellen...',
- saving: 'Speichern...',
- saveChanges: 'Änderungen speichern',
- advancedAuthSubtitle: 'mit erweiterter Authentifizierung',
- },
- form: {
- username: 'Benutzername',
- usernamePlaceholder: 'Benutzernamen eingeben',
- email: 'E-Mail',
- emailPlaceholder: 'benutzer@beispiel.de',
- password: 'Passwort',
- passwordPlaceholder: 'Passwort eingeben',
- confirmPassword: 'Passwort bestätigen',
- confirmPasswordPlaceholder: 'Passwort bestätigen',
- newPasswordPlaceholder: 'Neues Passwort eingeben',
- confirmNewPasswordPlaceholder: 'Neues Passwort bestätigen',
- leaveBlankToKeep: 'leer lassen, um das aktuelle zu behalten',
- groups: 'Gruppen',
- optional: 'optional',
- autoGeneratedPassword: 'Ein sicheres Passwort wird automatisch generiert und per E-Mail an den Benutzer gesendet.',
- 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.',
- resetPassword: 'Passwort zurücksetzen',
- resettingPassword: 'Passwort wird zurückgesetzt...',
- },
- deleteModal: {
- title: 'Benutzer löschen',
- message: 'Sind Sie sicher, dass Sie diesen Benutzer löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.',
- confirm: 'Benutzer löschen',
- },
- },
- // Stream overlay
- streamOverlay: {
- title: 'Stream-Overlay',
- invalidPrinterId: 'Ungültige Drucker-ID',
- cameraStream: 'Kamera-Stream',
- progress: 'Fortschritt',
- eta: 'ETA',
- printerIdle: 'Drucker ist inaktiv',
- printerOffline: 'Drucker offline',
- status: {
- printing: 'Druckt',
- paused: 'Pausiert',
- finished: 'Fertig',
- failed: 'Fehlgeschlagen',
- idle: 'Inaktiv',
- unknown: 'Unbekannt',
- },
- },
- // Profiles
- profiles: {
- title: 'Profile',
- subtitle: 'Verwalten Sie Ihre Slicer-Voreinstellungen und Druckvorschub-Kalibrierungen',
- tabs: {
- cloud: 'Cloud-Profile',
- local: 'Lokale Profile',
- kprofiles: 'K-Profile',
- },
- localProfiles: {
- title: 'Lokale Profile',
- subtitle: 'Slicer-Voreinstellungen aus OrcaSlicer importieren und verwalten',
- import: 'Profile importieren',
- importDesc: '.bbscfg-, .bbsflmt-, .orca_filament-, .zip- oder .json-Dateien hier ablegen',
- importing: 'Importiere...',
- search: 'Lokale Voreinstellungen durchsuchen...',
- noPresets: 'Noch keine lokalen Voreinstellungen',
- badge: 'Lokal',
- edit: 'Bearbeiten',
- delete: 'Löschen',
- cancel: 'Abbrechen',
- deleteConfirmTitle: 'Voreinstellung löschen',
- deleteConfirm: 'Möchten Sie diese Voreinstellung wirklich löschen? Dies kann nicht rückgängig gemacht werden.',
- source: 'Quelle',
- inheritsFrom: 'Erbt von',
- filamentType: 'Typ',
- vendor: 'Hersteller',
- compatiblePrinters: 'Drucker',
- nozzleTemp: 'Düsentemperatur',
- cost: 'Kosten',
- density: 'Dichte',
- pressureAdvance: 'Druckvorschub',
- filament: 'Filament',
- process: 'Prozess',
- printer: 'Drucker',
- toast: {
- importSuccess: '{{count}} Voreinstellung(en) importiert',
- importSkipped: '{{count}} Voreinstellung(en) übersprungen (Duplikate)',
- importError: '{{count}} Fehler beim Import',
- deleted: 'Voreinstellung gelöscht',
- updated: 'Voreinstellung aktualisiert',
- },
- },
- connectedAs: 'Verbunden als',
- logout: 'Abmelden',
- noLogoutPermission: 'Sie haben keine Berechtigung zum Abmelden',
- failedToLoad: 'Profile konnten nicht geladen werden',
- retry: 'Erneut versuchen',
- time: {
- justNow: 'Gerade eben',
- minsAgo: 'vor {{count}}m',
- hoursAgo: 'vor {{count}}h',
- daysAgo: 'vor {{count}}d',
- },
- toast: {
- loggedOut: 'Abgemeldet',
- },
- login: {
- title: 'Mit Bambu Cloud verbinden',
- subtitle: 'Synchronisieren Sie Ihre Slicer-Voreinstellungen geräteübergreifend',
- email: 'E-Mail',
- password: 'Passwort',
- region: 'Region',
- regionGlobal: 'Global',
- regionChina: 'China',
- verificationCode: 'Bestätigungscode',
- totpCode: 'Authenticator-Code',
- checkEmail: 'Prüfen Sie Ihre E-Mail ({{email}}) für einen 6-stelligen Code',
- enterTotpHint: 'Geben Sie den 6-stelligen Code aus Ihrer Authenticator-App ein',
- accessToken: 'Zugriffstoken',
- accessTokenHint: 'Fügen Sie Ihr Bambu Lab Zugriffstoken ein (aus Bambu Studio)',
- back: 'Zurück',
- loginButton: 'Anmelden',
- verifyButton: 'Bestätigen',
- setTokenButton: 'Token setzen',
- useToken: 'Stattdessen Zugriffstoken verwenden',
- useEmail: 'Stattdessen mit E-Mail anmelden',
- toast: {
- loggedIn: 'Erfolgreich angemeldet',
- codeSent: 'Bestätigungscode an Ihre E-Mail gesendet',
- enterTotp: 'Geben Sie den Code aus Ihrer Authenticator-App ein',
- tokenSet: 'Token erfolgreich gesetzt',
- },
- },
- presets: {
- myPreset: 'Mein Profil (bearbeitbar)',
- duplicate: 'Duplizieren',
- editable: 'Bearbeitbar',
- failedToLoadDetails: 'Profil-Details konnten nicht geladen werden',
- deleteConfirm: 'Dieses Profil löschen?',
- deleteWarning: '"{{name}}" wird dauerhaft aus Bambu Cloud gelöscht. Dies kann nicht rückgängig gemacht werden.',
- noDuplicatePermission: 'Sie haben keine Berechtigung zum Duplizieren von Profilen',
- noEditPermission: 'Sie haben keine Berechtigung zum Bearbeiten von Profilen',
- noDeletePermission: 'Sie haben keine Berechtigung zum Löschen von Profilen',
- types: {
- filament: 'Filament-Profil',
- printer: 'Drucker-Profil',
- process: 'Prozess-Profil',
- },
- toast: {
- deleted: 'Profil gelöscht',
- created: 'Profil erstellt',
- updated: 'Profil aktualisiert',
- duplicated: 'Profil dupliziert',
- fieldAdded: 'Feld "{{key}}" hinzugefügt',
- exported: 'Profil exportiert',
- },
- baseLabel: 'Basis: {{name}}',
- currentLabel: 'Aktuell: {{name}}',
- newPreset: 'Neues Profil',
- editPreset: 'Profil bearbeiten',
- duplicatePreset: 'Profil duplizieren',
- createNewPreset: 'Neues Profil erstellen',
- customizeSettings: 'Passen Sie die Einstellungen für Ihr neues Profil an',
- compareWithBase: 'Mit Basis-Profil vergleichen',
- compare: 'Vergleichen',
- // CreatePresetModal - Basic Info
- basePreset: 'Basis-Profil',
- selectBasePreset: 'Basis-Profil auswählen...',
- presetName: 'Profilname',
- myCustomPreset: 'Mein eigenes Profil',
- inheritsFrom: 'Erbt von',
- dropJsonToImport: 'JSON zum Importieren ablegen',
- // CreatePresetModal - Tabs
- tabs: {
- common: 'Allgemein',
- allFields: 'Alle Felder',
- },
- // CreatePresetModal - All Fields Tab
- availableFields: 'Verfügbare Felder',
- searchFieldsPlaceholder: 'Felder suchen...',
- noMatchingFields: 'Keine passenden Felder',
- allFieldsAdded: 'Alle Felder hinzugefügt',
- addCustomField: 'Eigenes Feld hinzufügen',
- yourOverrides: 'Ihre Überschreibungen',
- noOverridesYet: 'Noch keine Überschreibungen',
- clickFieldsToAdd: 'Klicken Sie links auf Felder, um sie hinzuzufügen',
- saveAsTemplate: 'Als Vorlage speichern',
- jsonTip: 'Tipp: Ziehen Sie eine .json-Datei auf dieses Fenster, um Einstellungen zu importieren',
- },
- cloudView: {
- searchPlaceholder: 'Profile suchen...',
- templates: 'Vorlagen',
- refresh: 'Aktualisieren',
- newPreset: 'Neues Profil',
- clearFilters: 'Filter zurücksetzen',
- // Compare mode
- compareMode: 'Vergleichsmodus',
- selectAnotherPreset: 'Wählen Sie ein weiteres {{type}}-Profil',
- clickTwoPresets: 'Klicken Sie auf zwei Profile des gleichen Typs zum Vergleichen',
- selectFirst: '1. Erstes auswählen',
- selectSecond: '2. Zweites auswählen',
- compareNow: 'Jetzt vergleichen',
- // Status row
- lastSynced: 'Zuletzt synchronisiert:',
- showingCount: '{{showing}} von {{total}} Profilen',
- noPresetsFound: 'Keine Profile gefunden',
- // Column headers
- columns: {
- filament: 'Filament',
- process: 'Prozess',
- printer: 'Drucker',
- },
- noFilamentPresets: 'Keine Filament-Profile',
- noProcessPresets: 'Keine Prozess-Profile',
- noPrinterPresets: 'Keine Drucker-Profile',
- // Filters
- filters: {
- type: 'Typ',
- owner: 'Besitzer',
- printer: 'Drucker',
- nozzle: 'Düse',
- filament: 'Filament',
- layer: 'Schicht',
- all: 'Alle',
- myPresets: 'Meine Profile',
- builtIn: 'Voreingestellt',
- process: 'Prozess',
- },
- // Permissions
- noTemplatesPermission: 'Sie haben keine Berechtigung, Vorlagen zu verwalten',
- noRefreshPermission: 'Sie haben keine Berechtigung, Profile zu aktualisieren',
- noCreatePermission: 'Sie haben keine Berechtigung, Profile zu erstellen',
- },
- templates: {
- title: 'Schnellvorlagen',
- noTemplates: 'Noch keine Vorlagen',
- createFirst: 'Erstellen Sie Vorlagen aus dem Preset-Editor',
- typeFilter: 'Typ:',
- deleteTitle: 'Vorlage löschen',
- deleteWarning: 'Diese Aktion kann nicht rückgängig gemacht werden',
- deleteConfirm: 'Möchten Sie "{{name}}" wirklich löschen?',
- namePlaceholder: 'Vorlagenname',
- descriptionPlaceholder: 'Beschreibung',
- settingsJson: 'Einstellungen (JSON)',
- fieldsCount: '{{count}} Felder',
- shownInModals: 'In Dialogen angezeigt',
- hiddenInModals: 'In Dialogen ausgeblendet',
- apply: 'Anwenden',
- toast: {
- deleted: 'Vorlage gelöscht',
- updated: 'Vorlage aktualisiert',
- created: 'Vorlage erstellt',
- applied: 'Vorlage angewendet',
- },
- },
- },
- // Support/Debug
- support: {
- debugLoggingActive: 'Debug-Protokollierung ist aktiv',
- manageLogs: 'Verwalten',
- collectItem7: 'Drucker-Verbindungsstatus und Firmware-Versionen',
- collectItem8: 'Integrationsstatus (Spoolman, MQTT, HA)',
- collectItem9: 'Netzwerkschnittstellen (nur Subnetze)',
- collectItem10: 'Python-Paketversionen',
- collectItem11: 'Datenbankzustandsprüfungen',
- collectItem12: 'Docker-Umgebungsdetails',
- },
- // File manager
- fileManager: {
- title: 'Dateimanager',
- subtitle: 'Organisieren und verwalten Sie Ihre Druckdateien',
- uploadFiles: 'Dateien hochladen',
- newFolder: 'Neuer Ordner',
- folderName: 'Ordnername',
- folderNamePlaceholder: 'z.B. Funktionsteile',
- renameFile: 'Datei umbenennen',
- renameFolder: 'Ordner umbenennen',
- moveFiles: '{{count}} Datei(en) verschieben',
- rootNoFolder: 'Stammverzeichnis (Kein Ordner)',
- current: 'aktuell',
- linkFolder: 'Ordner verknüpfen',
- linkFolderDescription: '"{{name}}" mit einem Projekt oder Archiv verknüpfen für schnellen Zugriff.',
- project: 'Projekt',
- archive: 'Archiv',
- noProjectsFound: 'Keine Projekte gefunden',
- noArchivesFound: 'Keine Archive gefunden',
- unlink: 'Verknüpfung aufheben',
- link: 'Verknüpfen',
- dragDropFiles: 'Dateien hierher ziehen',
- dropFilesHere: 'Dateien hier ablegen',
- orClickToBrowse: 'oder klicken zum Durchsuchen',
- allFileTypesSupported: 'Alle Dateitypen werden unterstützt. ZIP-Dateien werden extrahiert.',
- zipFilesDetected: 'ZIP-Dateien erkannt',
- zipExtractOptions: 'ZIP-Dateien werden extrahiert. Wählen Sie, wie die Ordnerstruktur behandelt werden soll:',
- preserveZipStructure: 'Ordnerstruktur aus ZIP beibehalten',
- createFolderFromZip: 'Ordner aus ZIP-Dateiname erstellen',
- stlThumbnailGeneration: 'STL-Vorschaubildgenerierung',
- zipMayContainStl: 'ZIP-Dateien können STL-Dateien enthalten. Vorschaubilder können während der Extraktion generiert werden.',
- thumbnailsCanBeGenerated: 'Vorschaubilder können für STL-Dateien generiert werden. Große Modelle benötigen möglicherweise mehr Zeit.',
- generateThumbnailsForStl: 'Vorschaubilder für STL-Dateien generieren',
- threemfDetected: '3MF-Dateien erkannt',
- threemfExtractionInfo: 'Druckermodell, Material, Farbe und Druckeinstellungen werden automatisch aus 3MF-Dateien extrahiert.',
- willBeExtracted: 'Wird extrahiert',
- filesExtracted: '{{count}} Dateien extrahiert',
- uploadComplete: 'Upload abgeschlossen: {{succeeded}} erfolgreich',
- uploadFailed: 'Hochladen fehlgeschlagen',
- zipFilesFailed: '{{count}} Dateien fehlgeschlagen',
- uploading: 'Hochladen...',
- changeLink: 'Verknüpfung ändern...',
- linkTo: 'Verknüpfen mit...',
- linkToProjectOrArchive: 'Mit Projekt oder Archiv verknüpfen',
- addToQueue: 'Zur Warteschlange',
- schedulePrint: 'Planen',
- generateThumbnail: 'Vorschaubild generieren',
- generateThumbnails: 'Vorschaubilder generieren',
- generateThumbnailsForMissing: 'Vorschaubilder für STL-Dateien ohne Vorschau generieren',
- gridView: 'Rasteransicht',
- listView: 'Listenansicht',
- lowDiskSpaceWarning: 'Warnung: Wenig Speicherplatz',
- lowDiskSpaceDetails: 'Nur {{free}} frei von {{total}} gesamt. Schwellenwert ist auf {{threshold}} GB eingestellt.',
- files: 'Dateien',
- folders: 'Ordner',
- size: 'Größe',
- free: 'Frei',
- allFiles: 'Alle Dateien',
- wrap: 'Umbrechen',
- enableTextWrapping: 'Textumbruch aktivieren',
- disableTextWrapping: 'Textumbruch deaktivieren',
- dragToResizeTooltip: 'Ziehen zum Ändern der Größe, Doppelklick zum Zurücksetzen',
- searchFiles: 'Dateien suchen...',
- allTypes: 'Alle Typen',
- prints: 'Drucke',
- ascending: 'Aufsteigend',
- descending: 'Absteigend',
- resultsCount: '{{showing}} von {{total}} Dateien',
- selectAll: 'Alle auswählen',
- deselectAll: 'Auswahl aufheben',
- selected: '{{count}} ausgewählt',
- adding: 'Hinzufügen...',
- loadingFiles: 'Dateien werden geladen...',
- folderIsEmpty: 'Ordner ist leer',
- noFilesYet: 'Noch keine Dateien',
- folderEmptyDescription: 'Laden Sie Dateien hoch oder verschieben Sie Dateien in diesen Ordner.',
- noFilesDescription: 'Laden Sie Dateien hoch, um Ihre Druckdateien zu organisieren.',
- noMatchingFiles: 'Keine passenden Dateien',
- noMatchingFilesDescription: 'Keine Dateien entsprechen Ihren aktuellen Such- oder Filterkriterien.',
- clearFilters: 'Filter zurücksetzen',
- printedCount: '{{count}}x gedruckt',
- uploadedBy: 'Hochgeladen von',
- deleteFolder: 'Ordner löschen',
- deleteFile: 'Datei löschen',
- deleteFilesCount: '{{count}} Dateien löschen',
- deleteFolderConfirm: 'Möchten Sie diesen Ordner wirklich löschen? Alle Dateien darin werden ebenfalls gelöscht.',
- deleteFileConfirm: 'Möchten Sie diese Datei wirklich löschen?',
- deleteFilesConfirm: 'Möchten Sie {{count}} ausgewählte Dateien wirklich löschen? Diese Aktion kann nicht rückgängig gemacht werden.',
- deleting: 'Wird gelöscht...',
- noPermissionRenameFolder: 'Sie haben keine Berechtigung, Ordner umzubenennen',
- noPermissionLinkFolder: 'Sie haben keine Berechtigung, Ordner zu verknüpfen',
- noPermissionDeleteFolder: 'Sie haben keine Berechtigung, Ordner zu löschen',
- noPermissionPrint: 'Sie haben keine Berechtigung zum Drucken',
- noPermissionAddToQueue: 'Sie haben keine Berechtigung, zur Warteschlange hinzuzufügen',
- noPermissionDownload: 'Sie haben keine Berechtigung, Dateien herunterzuladen',
- noPermissionRenameFile: 'Sie haben keine Berechtigung, diese Datei umzubenennen',
- noPermissionGenerateThumbnail: 'Sie haben keine Berechtigung, Vorschaubilder zu generieren',
- noPermissionDeleteFile: 'Sie haben keine Berechtigung, diese Datei zu löschen',
- noPermissionCreateFolder: 'Sie haben keine Berechtigung, Ordner zu erstellen',
- noPermissionUpload: 'Sie haben keine Berechtigung, Dateien hochzuladen',
- noPermissionMoveFiles: 'Sie haben keine Berechtigung, Dateien zu verschieben',
- noPermissionDeleteFiles: 'Sie haben keine Berechtigung, Dateien zu löschen',
- // External folder
- linkExternal: 'Extern verknüpfen',
- linkExternalFolder: 'Externen Ordner verknüpfen',
- linkExternalFolderDescription: 'Ein Host-Verzeichnis (NAS, USB, Netzlaufwerk) in den Dateimanager einbinden. Dateien werden nicht kopiert — sie werden direkt vom Originalpfad gelesen.',
- externalFolderNamePlaceholder: 'z.B. NAS-Drucke',
- externalPath: 'Host-Pfad',
- externalPathHelp: 'Absoluter Pfad zum Verzeichnis auf dem Docker-Host. Muss als Bind-Mount in den Container eingebunden sein.',
- readOnly: 'Nur Lesen',
- readOnlyHelp: 'verhindert Uploads und Löschungen',
- showHiddenFiles: 'Versteckte Dateien anzeigen (Punkt-Dateien)',
- externalFolder: 'Externer Ordner',
- scanFolder: 'Scannen',
- toast: {
- folderCreated: 'Ordner erstellt',
- folderDeleted: 'Ordner gelöscht',
- fileDeleted: 'Datei gelöscht',
- filesDeleted: '{{count}} Dateien gelöscht',
- filesMoved: 'Dateien verschoben',
- folderLinked: 'Ordner verknüpft',
- folderUnlinked: 'Ordnerverknüpfung aufgehoben',
- externalFolderLinked: 'Externer Ordner verknüpft und gescannt',
- folderScanned: 'Scan abgeschlossen: {{added}} hinzugefügt, {{removed}} entfernt',
- addedToQueue: '{{count}} Datei(en) zur Warteschlange hinzugefügt',
- addedToQueuePartial: '{{added}} Datei(en) hinzugefügt, {{failed}} fehlgeschlagen',
- failedToAddToQueue: 'Fehler beim Hinzufügen: {{error}}',
- fileRenamed: 'Datei umbenannt',
- folderRenamed: 'Ordner umbenannt',
- thumbnailsGenerated: '{{count}} Vorschaubild(er) generiert',
- thumbnailsGeneratedPartial: '{{succeeded}} Vorschaubild(er) generiert, {{failed}} fehlgeschlagen',
- noStlMissingThumbnails: 'Keine STL-Dateien ohne Vorschaubild',
- failedToGenerateThumbnails: 'Fehler beim Generieren der Vorschaubilder: {{error}}',
- thumbnailGenerated: 'Vorschaubild generiert',
- failedToGenerateThumbnail: 'Fehler beim Generieren des Vorschaubildes: {{error}}',
- },
- },
- // Projects
- projects: {
- title: 'Projekte',
- subtitle: 'Organisieren und verfolgen Sie Ihre 3D-Druckprojekte',
- newProject: 'Neues Projekt',
- editProject: 'Projekt bearbeiten',
- deleteProject: 'Projekt löschen',
- projectName: 'Projektname',
- description: 'Beschreibung',
- noProjects: 'Noch keine Projekte',
- noProjectsFiltered: 'Keine {{status}} Projekte',
- noProjectsFilteredHelp: 'Sie haben keine {{status}} Projekte. Projekte werden hier angezeigt, wenn sich ihr Status ändert.',
- createFirst: 'Erstellen Sie Ihr erstes Projekt, um verwandte Drucke zu organisieren, den Fortschritt zu verfolgen und Ihre Builds zu verwalten.',
- createFirstButton: 'Erstes Projekt erstellen',
- create: 'Erstellen',
- files: 'Dateien',
- prints: 'Drucke',
- plates: 'Platten',
- parts: 'Teile',
- lastModified: 'Zuletzt geändert',
- deleteConfirm: 'Möchten Sie dieses Projekt wirklich löschen? Archive und Warteschlangenelemente werden getrennt, aber nicht gelöscht.',
- addFiles: 'Dateien hinzufügen',
- removeFile: 'Datei entfernen',
- viewDetails: 'Details anzeigen',
- // Modal fields
- namePlaceholder: 'z.B. Voron 2.4 Build',
- descriptionPlaceholder: 'Optionale Beschreibung...',
- color: 'Farbe',
- targetPlates: 'Ziel-Platten',
- targetPlatesPlaceholder: 'z.B. 25',
- targetPlatesHelp: 'Anzahl der Druckaufträge',
- targetParts: 'Ziel-Teile',
- targetPartsPlaceholder: 'z.B. 150',
- targetPartsHelp: 'Benötigte Objekte insgesamt',
- tagsLabel: 'Tags (kommagetrennt)',
- tagsPlaceholder: 'z.B. voron, funktional, geschenk',
- dueDate: 'Fälligkeitsdatum',
- priority: 'Priorität',
- priorityLow: 'Niedrig',
- priorityNormal: 'Normal',
- priorityHigh: 'Hoch',
- priorityUrgent: 'Dringend',
- // Status
- statusActive: 'Aktiv',
- statusCompleted: 'Abgeschlossen',
- statusArchived: 'Archiviert',
- done: 'Fertig',
- completed: 'abgeschlossen',
- failed: 'fehlgeschlagen',
- inQueue: 'in Warteschlange',
- noPrintsYet: 'Noch keine Drucke',
- // Footer stats
- printJobs: 'Druckaufträge (Platten)',
- partsPrinted: 'Gedruckte Teile',
- failedParts: 'Fehlgeschlagene Teile',
- // Actions
- import: 'Importieren',
- export: 'Exportieren',
- importProject: 'Projekt importieren',
- exportAll: 'Alle Projekte exportieren',
- loading: 'Projekte werden geladen...',
- // Permissions
- noEditPermission: 'Sie haben keine Berechtigung, Projekte zu bearbeiten',
- noDeletePermission: 'Sie haben keine Berechtigung, Projekte zu löschen',
- noCreatePermission: 'Sie haben keine Berechtigung, Projekte zu erstellen',
- noImportPermission: 'Sie haben keine Berechtigung, Projekte zu importieren',
- noExportPermission: 'Sie haben keine Berechtigung, Projekte zu exportieren',
- // Toast
- toast: {
- created: 'Projekt erstellt',
- updated: 'Projekt aktualisiert',
- deleted: 'Projekt gelöscht',
- imported: 'Projekt importiert',
- multipleImported: '{{count}} Projekte importiert',
- importFailed: 'Import fehlgeschlagen',
- exported: 'Projekte exportiert (nur Metadaten)',
- },
- },
- // Project detail page
- projectDetail: {
- notFound: 'Projekt nicht gefunden',
- backToProjects: 'Zurück zu Projekten',
- export: 'Exportieren',
- exportProject: 'Projekt exportieren',
- noExportPermission: 'Sie haben keine Berechtigung, Projekte zu exportieren',
- noEditPermission: 'Sie haben keine Berechtigung, Projekte zu bearbeiten',
- partOf: 'Teil von:',
- priorityLabel: 'Priorität:',
- noPrints: 'Noch keine Drucke in diesem Projekt',
- status: {
- active: 'Aktiv',
- completed: 'Abgeschlossen',
- archived: 'Archiviert',
- },
- priority: {
- low: 'Niedrig',
- normal: 'Normal',
- high: 'Hoch',
- urgent: 'Dringend',
- },
- dueDate: {
- overdue: 'Überfällig',
- today: 'Heute fällig',
- daysLeft: '{{count}} Tage übrig',
- },
- progress: {
- platesProgress: 'Platten-Fortschritt',
- partsProgress: 'Teile-Fortschritt',
- printJobs: 'Druckaufträge',
- parts: 'Teile',
- percentComplete: '{{percent}}% abgeschlossen',
- remaining: '{{count}} verbleibend',
- },
- stats: {
- printJobs: 'Druckaufträge',
- total: 'gesamt',
- failed: '{{count}} fehlgeschlagen',
- partsPrinted: '{{count}} Teile gedruckt',
- printTime: 'Druckzeit',
- filamentUsed: 'Filament verbraucht',
- },
- cost: {
- title: 'Kostenverfolgung',
- filamentCost: 'Filamentkosten',
- energy: 'Energie',
- totalCost: 'Gesamtkosten',
- total: 'Gesamt',
- includesBom: 'inkl. Stückliste',
- budget: 'Budget',
- remaining: 'Verbleibend',
- },
- subProjects: {
- title: 'Unterprojekte ({{count}})',
- },
- notes: {
- title: 'Notizen',
- noEditPermission: 'Sie haben keine Berechtigung, Notizen zu bearbeiten',
- placeholder: 'Notizen zu diesem Projekt hinzufügen...',
- empty: 'Noch keine Notizen. Klicken Sie auf Bearbeiten, um Notizen hinzuzufügen.',
- },
- files: {
- title: 'Dateien',
- linkFolders: 'Ordner aus dem Dateimanager verknüpfen',
- forQuickAccess: 'für schnellen Zugriff auf dieses Projekt.',
- fileCount: '{{count}} Datei(en)',
- empty: 'Keine Ordner verknüpft. Gehen Sie zum Dateimanager und verknüpfen Sie einen Ordner mit diesem Projekt.',
- },
- bom: {
- title: 'Stückliste',
- acquired: '{{completed}}/{{total}} beschafft',
- showAll: 'Alle anzeigen',
- hideDone: 'Erledigte ausblenden',
- addPart: 'Teil hinzufügen',
- noAddPermission: 'Sie haben keine Berechtigung, Teile hinzuzufügen',
- partNamePlaceholder: 'Teilename (z.B. M3x8 Schrauben)',
- partName: 'Teilename',
- qty: 'Menge',
- price: 'Preis ({{currency}})',
- sourcingUrlPlaceholder: 'Bezugsquelle-URL (optional)',
- remarksPlaceholder: 'Bemerkungen (optional)',
- deletePart: 'Teil löschen',
- deleteConfirm: 'Möchten Sie "{{name}}" wirklich löschen?',
- noUpdatePermission: 'Sie haben keine Berechtigung, Teile zu aktualisieren',
- noEditPermission: 'Sie haben keine Berechtigung, Teile zu bearbeiten',
- noDeletePermission: 'Sie haben keine Berechtigung, Teile zu löschen',
- totalCost: 'Gesamtkosten:',
- empty: 'Keine Teile in der Stückliste. Fügen Sie Hardware, Elektronik oder andere Komponenten hinzu, um zu verfolgen, was beschafft werden muss.',
- },
- timeline: {
- title: 'Aktivitätsverlauf',
- empty: 'Noch keine Aktivität.',
- },
- template: {
- saveAsTemplate: 'Als Vorlage speichern',
- noCreatePermission: 'Sie haben keine Berechtigung, Vorlagen zu erstellen',
- },
- queue: {
- title: 'Warteschlange',
- viewAll: 'Alle anzeigen',
- printing: '{{count}} druckend',
- queued: '{{count}} in Warteschlange',
- },
- prints: {
- title: 'Drucke ({{count}})',
- },
- toast: {
- projectUpdated: 'Projekt aktualisiert',
- partAdded: 'Teil hinzugefügt',
- partRemoved: 'Teil entfernt',
- exportFailed: 'Export fehlgeschlagen',
- projectExported: 'Projekt exportiert',
- templateCreated: 'Vorlage erstellt',
- },
- },
- // System info
- system: {
- title: 'Systeminformationen',
- version: 'Version',
- uptime: 'Laufzeit',
- cpuUsage: 'CPU-Auslastung',
- memoryUsage: 'Speicherauslastung',
- diskUsage: 'Festplattenauslastung',
- networkInfo: 'Netzwerkinformationen',
- logs: 'Protokolle',
- debugMode: 'Debug-Modus',
- enableDebug: 'Debug-Protokollierung aktivieren',
- disableDebug: 'Debug-Protokollierung deaktivieren',
- downloadLogs: 'Protokolle herunterladen',
- clearLogs: 'Protokolle löschen',
- dockerInfo: 'Docker-Info',
- containerName: 'Container-Name',
- imageName: 'Image-Name',
- platform: 'Plattform',
- architecture: 'Architektur',
- },
- // Library (K Profiles)
- library: {
- title: 'Filament-Bibliothek',
- addFilament: 'Filament hinzufügen',
- editFilament: 'Filament bearbeiten',
- deleteFilament: 'Filament löschen',
- vendor: 'Hersteller',
- material: 'Material',
- color: 'Farbe',
- kFactor: 'K-Faktor',
- temperature: 'Temperatur',
- noFilaments: 'Keine Filamente in der Bibliothek',
- deleteConfirm: 'Möchten Sie dieses Filament wirklich löschen?',
- importFromPrinter: 'Vom Drucker importieren',
- exportToFile: 'In Datei exportieren',
- },
- // Spoolman
- spoolman: {
- title: 'Spoolman-Integration',
- enabled: 'Spoolman aktiviert',
- url: 'Spoolman URL',
- connected: 'Verbunden',
- disconnected: 'Nicht verbunden',
- testConnection: 'Verbindung testen',
- sync: 'Synchronisieren',
- syncing: 'Synchronisiert...',
- lastSync: 'Letzte Synchronisierung',
- linkToSpoolman: 'Mit Spoolman verknüpfen',
- openInSpoolman: 'In Spoolman öffnen',
- unlinkSpool: 'Spule trennen',
- unlinkConfirmTitle: 'Spule entkoppeln?',
- unlinkConfirmMessage: 'Dadurch wird die Spule von Spoolman getrennt. Die Spulendaten in Spoolman bleiben unverändert.',
- selectSpool: 'Spule auswählen',
- noUnlinkedSpools: 'Keine nicht verknüpften Spulen verfügbar',
- linkSuccess: 'Spule erfolgreich mit Spoolman verknüpft',
- linkFailed: 'Verknüpfung mit Spoolman fehlgeschlagen',
- unlinkSuccess: 'Spule erfolgreich von Spoolman getrennt',
- unlinkFailed: 'Trennen der Spule von Spoolman fehlgeschlagen',
- spoolId: 'Spulen-ID',
- fillSourceLabel: '(Spoolman)',
- weight: 'Gewicht',
- remaining: 'Verbleibend',
- disableWeightSync: 'AMS-Gewichtsschätzung deaktivieren',
- disableWeightSyncDesc: 'Verbleibende Kapazität nicht aus AMS-Schätzungen aktualisieren. Verwenden Sie dies, wenn Sie die Verbrauchserfassung von Spoolman gegenüber den prozentualen AMS-Schätzungen bevorzugen. Neue Spulen verwenden weiterhin die AMS-Schätzung als Anfangsgewicht.',
- reportPartialUsage: 'Teilverbrauch bei fehlgeschlagenen Drucken melden',
- reportPartialUsageDesc: 'Wenn ein Druck fehlschlägt oder abgebrochen wird, den geschätzten Filamentverbrauch bis zu diesem Zeitpunkt basierend auf dem Schichtfortschritt melden.',
- },
- // Inventar
- inventory: {
- title: 'Spulen-Inventar',
- addSpool: 'Spule hinzufügen',
- editSpool: 'Spule bearbeiten',
- material: 'Material',
- selectMaterial: 'Material auswählen...',
- subtype: 'Untertyp',
- brand: 'Marke',
- searchBrand: 'Marke suchen...',
- useCustomBrand: '"{{brand}}" verwenden',
- useCustomMaterial: 'Benutzerdefiniertes Material verwenden: {{material}}',
- colorName: 'Farbname',
- colorNamePlaceholder: 'Jade White, Fire Red...',
- color: 'Farbe',
- hexColor: 'Hex-Farbe',
- pickColor: 'Benutzerdefinierte Farbe wählen',
- labelWeight: 'Nenngewicht',
- coreWeight: 'Leergewicht der Spule',
- searchSpoolWeight: 'Spulengewicht suchen...',
- weightUsed: 'Verbraucht',
- currentWeight: 'Restgewicht',
- measuredWeight: 'Gemessenes Gewicht',
- spoolName: 'Spule',
- costPerKg: 'Kosten pro kg',
- measuredWeightError: 'Das gemessene Gewicht muss zwischen {{min}}g und {{max}}g liegen.',
- slicerFilament: 'Slicer-Filament',
- slicerFilamentName: 'Slicer-Preset-Name',
- slicerPreset: 'Slicer-Preset',
- searchPresets: 'Filament-Presets suchen...',
- selectedPreset: 'Ausgewählt',
- noPresetsFound: 'Keine Presets gefunden',
- tempOverrides: 'Temperatur-Überschreibungen',
- note: 'Notiz',
- notePlaceholder: 'Zusätzliche Notizen zu dieser Spule...',
- archive: 'Archivieren',
- restore: 'Wiederherstellen',
- noSpools: 'Noch keine Spulen. Fügen Sie Ihre erste Spule hinzu.',
- noManualSpools: 'Keine manuell hinzugefügten Spulen verfügbar. Fügen Sie zuerst eine Spule zum Inventar hinzu.',
- kProfiles: 'K-Profile',
- addKProfile: 'K-Profil hinzufügen',
- assignSpool: 'Spule zuweisen',
- unassignSpool: 'Zuweisung aufheben',
- assignSuccess: 'Spule zugewiesen und AMS-Slot konfiguriert',
- assignFailed: 'Spulenzuweisung fehlgeschlagen',
- selectSpool: 'Wählen Sie eine Spule für diesen Slot',
- assigned: 'Zugewiesen',
- assigning: 'Wird zugewiesen...',
- searchSpools: 'Spulen suchen...',
- allMaterials: 'Alle Materialien',
- filterByBrand: 'Nach Marke filtern...',
- showArchived: 'Archivierte anzeigen',
- quickAdd: 'Schnellerfassung (Lager)',
- quantity: 'Menge',
- stock: 'Lager',
- configured: 'Konfiguriert',
- spoolsCreated: '{{count}} Spulen erstellt',
- spoolCreated: 'Spule erstellt',
- spoolUpdated: 'Spule aktualisiert',
- spoolDeleted: 'Spule gelöscht',
- spoolArchived: 'Spule archiviert',
- spoolRestored: 'Spule wiederhergestellt',
- deleteConfirm: 'Möchten Sie diese Spule wirklich löschen? Dies kann nicht rückgängig gemacht werden.',
- archiveConfirm: 'Möchten Sie diese Spule wirklich archivieren?',
- advancedSettings: 'Erweiterte Einstellungen',
- filamentInfoTab: 'Filament-Info',
- paProfileTab: 'PA-Profil',
- filamentInfo: 'Filament',
- additional: 'Zusätzlich',
- loadingPresets: 'Cloud-Presets werden geladen...',
- cloudConnected: 'Cloud verbunden',
- cloudNotConnected: 'Cloud nicht verbunden (Standardwerte)',
- recentColors: 'Zuletzt',
- searchColors: 'Farben suchen...',
- searchResults: 'Suchergebnisse',
- allColors: 'Alle Farben',
- commonColors: 'Häufige Farben',
- showLess: 'Weniger',
- showAll: 'Alle',
- noColorsFound: 'Keine Farben gefunden',
- noResults: 'Keine Ergebnisse',
- selectMaterialFirst: 'Bitte zuerst ein Material im Filament-Info Tab auswählen.',
- noPrintersConfigured: 'Keine Drucker konfiguriert. Fügen Sie Drucker hinzu.',
- matchingFilter: 'Filter',
- anyBrand: 'Jede Marke',
- anyVariant: 'Jede Variante',
- autoSelect: 'Auto-Auswahl',
- matches: 'Treffer',
- match: 'Treffer',
- noMatches: 'Keine Treffer',
- connected: 'Verbunden',
- offline: 'Offline',
- printerOffline: 'Drucker ist offline. Verbinden Sie ihn, um Kalibrierungsprofile anzuzeigen.',
- noKProfilesMatch: 'Keine K-Profile stimmen mit dem gewählten Filament überein.',
- leftNozzle: 'Linke Düse',
- rightNozzle: 'Rechte Düse',
- profilesSelected: 'Kalibrierungsprofil(e) ausgewählt',
- // Stats & enhanced table
- totalInventory: 'Gesamtbestand',
- totalConsumed: 'Gesamtverbrauch',
- byMaterial: 'Nach Material',
- inPrinter: 'Im Drucker',
- lowStock: 'Niedriger Bestand',
- sinceTracking: 'Seit Beginn der Erfassung',
- loadedInAms: 'Im AMS/Ext geladen',
- remaining: 'Verbleibend',
- weightCheck: 'Gewichtskontrolle',
- lastWeighed: 'Zuletzt gewogen',
- neverWeighed: 'Nie gewogen',
- search: 'Spulen suchen...',
- showing: 'Zeige',
- to: 'bis',
- of: 'von',
- show: 'Zeige',
- spools: 'Spulen',
- spool: 'Spule',
- page: 'Seite',
- noSpoolsMatch: 'Keine Ergebnisse',
- noSpoolsMatchDesc: 'Versuchen Sie, Ihre Suche oder Filter anzupassen.',
- active: 'Aktiv',
- archived: 'Archiviert',
- all: 'Alle',
- used: 'Verwendet',
- new: 'Neu',
- clearFilters: 'Filter löschen',
- table: 'Tabelle',
- cards: 'Karten',
- net: 'Netto',
- // Grouping
- groupSimilar: 'Gruppieren',
- groupedSpools: '{{count}} identische Spulen',
- groupedRows: 'Zeilen',
- // Column config
- columns: 'Spalten',
- configureColumns: 'Spalten konfigurieren',
- configureColumnsDesc: 'Ziehen zum Neuordnen oder Pfeile verwenden. Sichtbarkeit mit dem Augensymbol umschalten.',
- visible: 'sichtbar',
- reset: 'Zurücksetzen',
- cancel: 'Abbrechen',
- applyChanges: 'Änderungen anwenden',
- moveUp: 'Nach oben',
- moveDown: 'Nach unten',
- hideColumn: 'Spalte ausblenden',
- showColumn: 'Spalte einblenden',
- // Tag-Verknüpfung
- linkToSpool: 'Mit Spule verknüpfen',
- tagLinked: 'Tag mit Spule verknüpft',
- tagLinkFailed: 'Tag-Verknüpfung fehlgeschlagen',
- tagAlreadyLinked: 'Tag bereits mit anderer Spule verknüpft',
- unknownTag: 'Unbekannter RFID-Tag erkannt',
- // Verbrauchshistorie
- usageHistory: 'Verbrauchshistorie',
- noUsageHistory: 'Noch kein Verbrauch erfasst',
- printName: 'Druckname',
- weightConsumed: 'Verbrauchtes Gewicht',
- clearHistory: 'Löschen',
- historyCleared: 'Verbrauchshistorie gelöscht',
- fillSourceLabel: '(Inv)',
- lowStockThresholdError: 'Der Schwellenwert muss zwischen 0.1 und 99.9 liegen',
- assignMismatchTitle: 'Material stimmt nicht überein',
- assignMismatchMessage: 'Das ausgewählte Spulenmaterial "{{spoolMaterial}}" stimmt nicht mit dem Tray-Material "{{trayMaterial}}" für {{location}} überein. Trotzdem zuweisen?',
- assignMismatchConfirm: 'Trotzdem zuweisen',
- assignPartialMismatchMessage: 'Das Spulenmaterial "{{spoolMaterial}}" ist ähnlich, stimmt aber nicht genau mit "{{trayMaterial}}" in {{location}} überein. Möchten Sie fortfahren?',
- assignProfileMismatchMessage: 'Das Spulenprofil "{{spoolProfile}}" stimmt nicht mit dem Fachprofil "{{trayProfile}}" in {{location}} überein. Möchten Sie fortfahren?',
- },
- // Timelapse
- timelapse: {
- title: 'Zeitraffer',
- create: 'Zeitraffer erstellen',
- download: 'Herunterladen',
- delete: 'Löschen',
- preview: 'Vorschau',
- frameRate: 'Bildrate',
- quality: 'Qualität',
- processing: 'Wird verarbeitet...',
- noTimelapses: 'Keine Zeitraffer verfügbar',
- },
- // AMS
- ams: {
- title: 'AMS',
- slot: 'Slot',
- empty: 'Leer',
- emptySlot: 'Leerer Slot',
- unknown: 'Unbekannt',
- humidity: 'Luftfeuchtigkeit',
- temperature: 'Temperatur',
- filamentType: 'Filamenttyp',
- filamentColor: 'Farbe',
- remaining: 'Verbleibend',
- history: 'AMS-Verlauf',
- noHistory: 'Kein Verlauf verfügbar',
- configureSlot: 'Slot konfigurieren',
- externalSpool: 'Externe Spule',
- profile: 'Profil',
- kFactor: 'K-Faktor',
- fill: 'Füllstand',
- configure: 'Konfigurieren',
- used: 'verwendet',
- remainingUnit: 'verbleibend',
- },
- // Print modal
- printModal: {
- title: 'Druck starten',
- selectPrinter: 'Drucker auswählen',
- selectPlate: 'Platte auswählen',
- filamentMapping: 'Filamentzuordnung',
- totalCost: 'Gesamtkosten:',
- slotRemainingShort: ' - {{grams}}g übrig',
- printSettings: 'Druckeinstellungen',
- bedLeveling: 'Bett-Nivellierung',
- flowCalibration: 'Fluss-Kalibrierung',
- vibrationCalibration: 'Vibrations-Kalibrierung',
- layerInspection: 'Erste-Schicht-Prüfung',
- timelapse: 'Zeitraffer',
- startPrint: 'Druck starten',
- addToQueue: 'Zur Warteschlange hinzufügen',
- cancel: 'Abbrechen',
- noPrintersAvailable: 'Keine Drucker verfügbar',
- printerBusy: 'Drucker ist beschäftigt',
- printerOffline: 'Drucker ist offline',
- sameTypeDifferentColor: 'Gleicher Typ, andere Farbe',
- filamentTypeNotLoaded: 'Filamenttyp nicht geladen',
- openCalendar: 'Kalender öffnen',
- leftNozzle: 'L',
- rightNozzle: 'R',
- leftNozzleTooltip: 'Linke Düse',
- rightNozzleTooltip: 'Rechte Düse',
- filamentOverride: 'Filament-Überschreibung',
- filamentOverrideHint: 'Filamente für modellbasierte Zuweisung optional überschreiben. Der Planer wird gegen die ausgewählten Filamente statt der ursprünglichen 3MF-Werte abgleichen.',
- originalFilament: 'Original',
- overrideWith: 'Ersetzen mit',
- resetToOriginal: 'Auf Original zurücksetzen',
- insufficientFilamentTitle: 'Nicht genug Filament',
- insufficientFilamentMessage: 'Einige zugewiesene Spulen haben weniger Filament als dieser Druck benötigt:',
- insufficientFilamentLine: '{{printer}} - {{slot}}: benötigt {{required}}g, verbleibend {{remaining}}g',
- printAnyway: 'Trotzdem drucken',
- forceColorMatch: 'Farbe erzwingen',
- staggerPrinterStarts: 'Stagger printer starts',
- staggerGroupSize: 'Group size',
- staggerInterval: 'Interval (min)',
- staggerPreview: '{{printers}} printers → {{groups}} groups of {{size}}, starting every {{interval}} min',
- staggerLastGroup: 'last group: {{count}}',
- staggerTotal: 'total: {{minutes}} min',
- staggerToPrinters: 'Gestaffelt an {{count}} Drucker senden',
- },
- // Backup
- backup: {
- title: 'Sichern & Wiederherstellen',
- createBackup: 'Sicherung erstellen',
- restoreBackup: 'Sicherung wiederherstellen',
- restoreDescription: 'Alle Daten aus einer Sicherungsdatei ersetzen',
- downloadBackup: 'Sicherung herunterladen',
- uploadBackup: 'Sicherung hochladen',
- lastBackup: 'Letzte Sicherung',
- autoBackup: 'Automatische Sicherung',
- backupNow: 'Jetzt sichern',
- restoreWarning: 'Warnung: Das Wiederherstellen einer Sicherung überschreibt alle aktuellen Daten.',
- includeArchives: 'Archive einschließen',
- includeSettings: 'Einstellungen einschließen',
- includeProfiles: 'Profile einschließen',
- backupSuccess: 'Sicherung erfolgreich erstellt',
- restoreSuccess: 'Sicherung erfolgreich wiederhergestellt',
- backupFailed: 'Sicherung fehlgeschlagen',
- restoreFailed: 'Wiederherstellung fehlgeschlagen',
- restoreNote: 'Virtueller Drucker wird während der Wiederherstellung gestoppt',
- // GitHub Backup
- githubBackup: 'GitHub Backup',
- enabled: 'Aktiviert',
- cloudLoginRequired: 'Bambu Cloud Login erforderlich. Melden Sie sich unter Profile → Cloud-Profile an, um GitHub-Backup zu aktivieren.',
- cloudLoginRequiredShort: 'Cloud-Login erforderlich',
- githubDescription: 'Synchronisieren Sie Ihre Profile automatisch mit einem privaten GitHub-Repository für Backup und Versionsverlauf.',
- repositoryUrl: 'Repository-URL',
- personalAccessToken: 'Persönlicher Zugriffstoken',
- tokenSaved: '(gespeichert)',
- enterNewToken: 'Neuen Token eingeben zum Aktualisieren',
- tokenHint: 'Feingranularer Token mit Lese-/Schreibberechtigung für Inhalte',
- branch: 'Branch',
- manualOnly: 'Nur manuell',
- hourly: 'Stündlich',
- daily: 'Täglich',
- weekly: 'Wöchentlich',
- includeInBackup: 'In Sicherung einschließen',
- kProfiles: 'K-Profile',
- kProfilesDescription: 'Druckvorschub-Kalibrierung von verbundenen Druckern',
- noPrintersConnected: 'Keine Drucker verbunden',
- printersConnected: '{{connected}}/{{total}} verbunden',
- cloudProfiles: 'Cloud-Profile',
- cloudProfilesDescription: 'Filament-, Drucker- und Prozessprofile aus der Bambu Cloud',
- appSettings: 'App-Einstellungen',
- appSettingsDescription: 'Bambuddy-Konfiguration (komplette Datenbank)',
- lastBackupAt: 'Letzte Sicherung:',
- noBackupsYet: 'Noch keine Sicherungen',
- next: 'Nächste:',
- startingBackup: 'Sicherung wird gestartet...',
- test: 'Test',
- enableBackup: 'Sicherung aktivieren',
- testConnection: 'Verbindung testen',
- enterRepoUrl: 'Repository-URL eingeben',
- enterRepoAndToken: 'Repository-URL und Zugriffstoken eingeben',
- repoRequired: 'Repository-URL ist erforderlich',
- tokenRequired: 'Zugriffstoken ist erforderlich',
- githubBackupEnabled: 'GitHub-Backup aktiviert',
- tokenUpdated: 'Token aktualisiert',
- settingsSaved: 'Einstellungen gespeichert',
- failedToSave: 'Speichern fehlgeschlagen: {{message}}',
- backupCompleteFiles: 'Sicherung abgeschlossen - {{count}} Dateien aktualisiert',
- backupSkippedNoChanges: 'Sicherung übersprungen - keine Änderungen',
- backupFailed2: 'Sicherung fehlgeschlagen: {{message}}',
- clearedLogs: '{{count}} Protokolle gelöscht',
- failedToClearLogs: 'Protokolle löschen fehlgeschlagen: {{message}}',
- // History
- history: 'Verlauf',
- clear: 'Löschen',
- date: 'Datum',
- status: 'Status',
- commit: 'Commit',
- // Local Backup
- localBackup: 'Lokale Sicherung',
- localBackupDescription: 'Erstellen Sie eine vollständige Sicherung Ihrer Bambuddy-Daten einschließlich Datenbank, Archive, Uploads und aller Dateien.',
- downloadBackupLabel: 'Sicherung herunterladen',
- completeBackupZip: 'Vollständige Sicherung: Datenbank + alle Dateien (ZIP)',
- download: 'Herunterladen',
- preparingBackup: 'Sicherung wird vorbereitet...',
- creatingArchive: 'Sicherungsarchiv wird erstellt... Dies kann bei großen Archiven eine Weile dauern.',
- downloadingFile: 'Sicherungsdatei wird heruntergeladen...',
- backupDownloaded: 'Sicherung erfolgreich heruntergeladen',
- failedToCreateBackup: 'Sicherung erstellen fehlgeschlagen: {{message}}',
- restore: 'Wiederherstellen',
- restoreReplacesAll: 'Wiederherstellung ersetzt alle Daten.',
- restoreReplacesAllDetail: 'Ihre aktuelle Datenbank und Dateien werden vollständig ersetzt. Nach der Wiederherstellung ist ein Neustart erforderlich.',
- restoreConfirmTitle: 'Sicherung wiederherstellen',
- restoreConfirmMessage: 'Sind Sie sicher, dass Sie von "{{filename}}" wiederherstellen möchten? Dies ersetzt Ihre aktuelle Datenbank und alle Dateien vollständig. Die Anwendung muss nach der Wiederherstellung neu gestartet werden.',
- restoreConfirmButton: 'Sicherung wiederherstellen',
- uploadingFile: 'Sicherungsdatei wird hochgeladen...',
- backupRestoredRestart: 'Sicherung wiederhergestellt. Bitte starten Sie Bambuddy neu.',
- failedToRestore: 'Sicherung wiederherstellen fehlgeschlagen. Bitte überprüfen Sie das Dateiformat.',
- reloadNow: 'Jetzt neu laden',
- creatingBackup: 'Sicherung erstellen',
- restoringBackup: 'Sicherung wiederherstellen',
- preparing: 'Vorbereiten...',
- processing: 'Verarbeiten...',
- doNotClosePage: 'Bitte schließen Sie diese Seite nicht und navigieren Sie nicht weg. Dieser Vorgang kann bei großen Sicherungen mehrere Minuten dauern.',
- // RestoreModal
- restoring: 'Wiederherstellen...',
- restoreComplete: 'Wiederherstellung abgeschlossen',
- restoreFailed2: 'Wiederherstellung fehlgeschlagen',
- importSettings: 'Einstellungen aus einer Sicherungsdatei importieren',
- pleaseWaitRestoring: 'Bitte warten Sie, während Ihre Daten wiederhergestellt werden',
- selectBackupFile: 'Klicken Sie, um eine Sicherungsdatei auszuwählen (.json oder .zip)',
- duplicateHandling: 'So funktioniert die Duplikatbehandlung:',
- matchPrinters: 'Drucker',
- matchPrintersBy: 'abgeglichen nach Seriennummer',
- matchSmartPlugs: 'Smart Plugs',
- matchSmartPlugsBy: 'abgeglichen nach IP-Adresse',
- matchNotificationProviders: 'Benachrichtigungsanbieter',
- matchNotificationProvidersBy: 'abgeglichen nach Name',
- matchFilaments: 'Filamente',
- matchFilamentsBy: 'abgeglichen nach Name + Typ + Marke',
- matchArchives: 'Archive',
- matchArchivesBy: 'abgeglichen nach Inhaltshash (immer übersprungen)',
- matchPendingUploads: 'Ausstehende Uploads',
- matchPendingUploadsBy: 'abgeglichen nach Dateiname',
- matchSettingsTemplates: 'Einstellungen & Vorlagen',
- matchSettingsTemplatesBy: 'immer überschrieben',
- replaceExisting: 'Vorhandene Daten ersetzen',
- keepExisting: 'Vorhandene Daten behalten',
- overwriteDescription: 'Bereits vorhandene Elemente mit Sicherungsdaten überschreiben',
- keepDescription: 'Nur Elemente wiederherstellen, die noch nicht vorhanden sind',
- overwriteCaution: 'Achtung:',
- overwriteWarning: 'Das Überschreiben ersetzt Ihre aktuellen Konfigurationen durch Daten aus der Sicherung. Drucker-Zugangscodes werden aus Sicherheitsgründen nie überschrieben.',
- cancel: 'Abbrechen',
- processingBackup: 'Sicherungsdatei wird verarbeitet...',
- itemsRestored: 'Wiederhergestellt',
- itemsSkipped: 'Übersprungen',
- restored: 'Wiederhergestellt',
- skippedAlreadyExist: 'Übersprungen (bereits vorhanden)',
- filesCategory: 'Dateien (3MF, Thumbnails, etc.)',
- andMore: '...und {{count}} weitere',
- newApiKeysGenerated: 'Neue API-Schlüssel generiert',
- keysShownOnce: 'Diese Schlüssel werden nur einmal angezeigt. Kopieren Sie sie jetzt!',
- copy: 'Kopieren',
- noDataFound: 'In der Sicherungsdatei wurden keine Daten zur Wiederherstellung gefunden.',
- close: 'Schließen',
- // Category labels
- categories: {
- settings: 'Einstellungen',
- notification_providers: 'Benachrichtigungsanbieter',
- notification_templates: 'Benachrichtigungsvorlagen',
- smart_plugs: 'Smart Plugs',
- printers: 'Drucker',
- filaments: 'Filamente',
- maintenance_types: 'Wartungstypen',
- archives: 'Archive',
- projects: 'Projekte',
- pending_uploads: 'Ausstehende Uploads',
- external_links: 'Externe Links',
- api_keys: 'API-Schlüssel',
- },
- },
- // Tags
- tags: {
- title: 'Tags',
- addTag: 'Tag hinzufügen',
- editTag: 'Tag bearbeiten',
- deleteTag: 'Tag löschen',
- tagName: 'Tag-Name',
- tagColor: 'Tag-Farbe',
- noTags: 'Keine Tags',
- deleteConfirm: 'Möchten Sie diesen Tag wirklich löschen?',
- manageTags: 'Tags verwalten',
- },
- // Upload modal (archives)
- uploadModal: {
- title: '3MF-Dateien hochladen',
- dragDrop: '3MF-Dateien hierher ziehen',
- or: 'oder',
- browseFiles: 'Dateien durchsuchen',
- extractionInfo: 'Das Druckermodell wird automatisch aus den 3MF-Datei-Metadaten extrahiert.',
- uploaded: 'hochgeladen',
- failed: 'fehlgeschlagen',
- uploading: 'Wird hochgeladen...',
- upload: 'Hochladen',
- uploadFailed: 'Hochladen fehlgeschlagen',
- },
- // Edit archive modal
- editArchive: {
- title: 'Archiv bearbeiten',
- name: 'Name',
- namePlaceholder: 'Druckname',
- printer: 'Drucker',
- noPrinter: 'Kein Drucker',
- project: 'Projekt',
- noProject: 'Kein Projekt',
- itemsPrinted: 'Gedruckte Teile',
- itemsPrintedHelp: 'Anzahl der in diesem Druckauftrag produzierten Teile',
- notes: 'Notizen',
- notesPlaceholder: 'Notizen zu diesem Druck hinzufügen...',
- externalLink: 'Externer Link',
- externalLinkPlaceholder: 'https://printables.com/model/...',
- externalLinkHelp: 'Link zu Printables, Thingiverse oder anderer Quelle',
- tags: 'Tags',
- tagsPlaceholder: 'Tags hinzufügen...',
- addMoreTags: 'Weitere Tags hinzufügen...',
- matchingTags: 'Übereinstimmend mit "{{query}}"',
- existingTags: 'Vorhandene Tags',
- clickToAdd: '(zum Hinzufügen klicken)',
- status: 'Status',
- failureReason: 'Fehlergrund',
- selectReason: 'Grund auswählen...',
- photos: 'Fotos des Druckergebnisses',
- photosHelp: 'Klicken Sie auf + um Fotos Ihres Druckergebnisses hinzuzufügen',
- printResult: 'Druckergebnis',
- saving: 'Wird gespeichert...',
- // Failure reasons
- failureReasons: {
- adhesionFailure: 'Haftungsfehler',
- spaghettiDetached: 'Spaghetti / Abgelöst',
- layerShift: 'Schichtversatz',
- cloggedNozzle: 'Verstopfte Düse',
- filamentRunout: 'Filament aufgebraucht',
- warping: 'Verformung',
- stringing: 'Fadenziehen',
- underExtrusion: 'Unterextrusion',
- powerFailure: 'Stromausfall',
- userCancelled: 'Vom Benutzer abgebrochen',
- other: 'Sonstiges',
- },
- // Archive statuses
- statuses: {
- completed: 'Abgeschlossen',
- failed: 'Fehlgeschlagen',
- aborted: 'Abgebrochen',
- printing: 'Druckt',
- },
- },
- // K-Profiles
- kProfiles: {
- title: 'K-Profile',
- noPrintersConfigured: 'Keine Drucker konfiguriert',
- addPrinterInSettings: 'Fügen Sie einen Drucker in den Einstellungen hinzu, um K-Profile zu verwalten',
- noActivePrinters: 'Keine aktiven Drucker',
- enablePrinterConnection: 'Aktivieren Sie eine Druckerverbindung, um K-Profile anzuzeigen',
- loadingProfiles: 'Lade K-Profile...',
- printerOffline: 'Drucker offline',
- printerOfflineDesc: 'Der ausgewählte Drucker ist nicht verbunden. Schalten Sie ihn ein, um K-Profile anzuzeigen.',
- noMatchingProfiles: 'Keine passenden Profile',
- noMatchingProfilesDesc: 'Keine Profile entsprechen Ihren Suchkriterien',
- noKProfiles: 'Keine K-Profile',
- noKProfilesDesc: 'Keine Druckvorschub-Profile für {{diameter}}mm Düse gefunden',
- createFirstProfile: 'Erstes Profil erstellen',
- // Controls
- printer: 'Drucker',
- nozzle: 'Düse',
- refresh: 'Aktualisieren',
- addProfile: 'Profil hinzufügen',
- export: 'Exportieren',
- import: 'Importieren',
- select: 'Auswählen',
- selectAll: 'Alle auswählen',
- delete: 'Löschen',
- // Filters
- searchPlaceholder: 'Nach Name oder Filament suchen...',
- allExtruders: 'Alle Extruder',
- leftOnly: 'Nur links',
- rightOnly: 'Nur rechts',
- allFlow: 'Alle Flusstypen',
- hfOnly: 'Nur HF',
- sOnly: 'Nur S',
- sortName: 'Sortieren: Name',
- sortKValue: 'Sortieren: K-Wert',
- sortFilament: 'Sortieren: Filament',
- // Dual extruder labels
- leftExtruder: 'Linker Extruder',
- rightExtruder: 'Rechter Extruder',
- // Modal
- modal: {
- addTitle: 'K-Profil hinzufügen',
- editTitle: 'K-Profil bearbeiten',
- profileName: 'Profilname',
- profileNamePlaceholder: 'Mein PLA-Profil',
- kValue: 'K-Wert',
- kValuePlaceholder: '0,020',
- kValueHelp: 'Typischer Bereich: 0,01 - 0,06 für PLA, 0,02 - 0,10 für PETG',
- filament: 'Filament',
- selectFilament: 'Filament auswählen...',
- noFilamentsHelp: 'Keine Filamente gefunden. Erstellen Sie zuerst ein K-Profil in Bambu Studio.',
- flowType: 'Flusstyp',
- highFlow: 'High Flow',
- standard: 'Standard',
- nozzleSize: 'Düsengröße',
- extruder: 'Extruder',
- extruders: 'Extruder',
- left: 'Links',
- right: 'Rechts',
- notes: 'Notizen (lokal gespeichert)',
- notesPlaceholder: 'Notizen zu diesem Profil hinzufügen...',
- notesHelp: 'Notizen werden in Bambuddy gespeichert, nicht auf dem Drucker',
- syncing: 'Synchronisiert mit Drucker...',
- savingExtruder: 'Speichern auf Extruder {{current}}/{{total}}...',
- pleaseWait: 'Bitte warten',
- },
- // Delete confirmation
- deleteConfirm: {
- title: 'Profil löschen',
- cannotUndo: 'Dies kann nicht rückgängig gemacht werden',
- message: 'Möchten Sie "{{name}}" wirklich vom Drucker löschen?',
- },
- // Bulk delete
- bulkDelete: {
- title: 'Profile löschen',
- cannotUndo: 'Dies kann nicht rückgängig gemacht werden',
- message: 'Möchten Sie wirklich {{count}} ausgewählte Profile vom Drucker löschen?',
- },
- // Toast
- toast: {
- profileSaved: 'K-Profil gespeichert',
- profilesSaved: 'K-Profil auf {{count}} Extrudern gespeichert',
- selectAtLeastOneExtruder: 'Bitte wählen Sie mindestens einen Extruder aus',
- profileDeleted: 'K-Profil gelöscht',
- profilesDeleted: '{{count}} Profile gelöscht',
- exportedProfiles: '{{count}} Profile exportiert',
- importedProfiles: '{{count}} von {{total}} Profilen importiert',
- noProfilesToExport: 'Keine Profile zum Exportieren',
- invalidFileFormat: 'Ungültiges Dateiformat',
- failedToParseImport: 'Import-Datei konnte nicht gelesen werden',
- failedToSaveBatch: 'K-Profile konnten nicht gespeichert werden',
- noteSaved: 'Notiz gespeichert',
- failedToSaveNote: 'Notiz konnte nicht gespeichert werden',
- },
- // Permissions
- permission: {
- noRead: 'Sie haben keine Berechtigung, Profile zu aktualisieren',
- noCreate: 'Sie haben keine Berechtigung, Profile hinzuzufügen',
- noUpdate: 'Sie haben keine Berechtigung, K-Profile zu aktualisieren',
- noDelete: 'Sie haben keine Berechtigung, K-Profile zu löschen',
- noExport: 'Sie haben keine Berechtigung, Profile zu exportieren',
- noImport: 'Sie haben keine Berechtigung, Profile zu importieren',
- },
- },
- // Virtual Printer
- virtualPrinter: {
- title: 'Virtueller Drucker',
- running: 'Läuft',
- stopped: 'Gestoppt',
- description: {
- default: 'Aktiviere einen virtuellen Drucker, der in Bambu Studio und OrcaSlicer erscheint. Dateien, die an diesen Drucker gesendet werden, werden direkt archiviert ohne zu drucken.',
- proxy: 'Aktiviere einen Proxy, der Slicer-Datenverkehr an einen echten Drucker weiterleitet, um Ferndruck über jedes Netzwerk zu ermöglichen.',
- },
- enable: {
- title: 'Virtuellen Drucker aktivieren',
- visibleInSlicer: 'Sichtbar als "Bambuddy" in der Slicer-Erkennung',
- proxyingTo: 'Proxy zu {{name}}',
- notActive: 'Nicht aktiv',
- },
- model: {
- title: 'Druckermodell',
- description: 'Wähle welches Druckermodell emuliert werden soll.',
- restartWarning: 'Das Ändern des Modells startet den virtuellen Drucker neu',
- },
- accessCode: {
- title: 'Zugangscode',
- isSet: 'Zugangscode ist gesetzt',
- notSet: 'Kein Zugangscode gesetzt - erforderlich zum Aktivieren',
- placeholder: '8-Zeichen-Code eingeben',
- placeholderChange: 'Neuen Code eingeben zum Ändern',
- hint: 'Muss genau 8 Zeichen lang sein. Wird von Slicern zur Authentifizierung verwendet.',
- charCount: '({{count}}/8)',
- },
- targetPrinter: {
- title: 'Zieldrucker',
- configured: 'Proxy-Ziel konfiguriert',
- notConfigured: 'Kein Zieldrucker ausgewählt - erforderlich für Proxy-Modus',
- placeholder: 'Drucker auswählen...',
- hint: 'Wähle den Drucker aus, an den der Slicer-Datenverkehr weitergeleitet werden soll. Der Drucker muss im LAN-Modus sein.',
- noPrinters: 'Keine Drucker konfiguriert. Füge zuerst einen Drucker hinzu, um den Proxy-Modus zu verwenden.',
- },
- remoteInterface: {
- title: 'Netzwerkschnittstelle überschreiben',
- configured: 'Schnittstellenüberschreibung aktiv',
- optional: 'Optional - verwenden wenn die automatisch erkannte IP falsch ist (z.B. mehrere NICs, Docker, VPN)',
- placeholder: 'Automatisch erkennen (Standard)...',
- hint: 'Überschreibt die per SSDP beworbene und im TLS-Zertifikat verwendete IP-Adresse. Nützlich wenn Bambuddy mehrere Netzwerkschnittstellen hat.',
- },
- mode: {
- title: 'Modus',
- archive: 'Archivieren',
- archiveDesc: 'Dateien sofort archivieren',
- review: 'Überprüfen',
- reviewDesc: 'Vor dem Archivieren überprüfen',
- queue: 'Warteschlange',
- queueDesc: 'Archivieren und zur Warteschlange hinzufügen',
- proxy: 'Proxy',
- proxyDesc: 'An echten Drucker weiterleiten',
- },
- autoDispatch: {
- title: 'Automatisch starten',
- description: 'Drucke automatisch starten, wenn sie zur Warteschlange hinzugefügt werden. Wenn deaktiviert, warten Drucke auf manuellen Start.',
- },
- setupRequired: {
- title: 'Einrichtung erforderlich',
- description: 'Die virtuelle Druckerfunktion erfordert zusätzliche Systemkonfiguration, bevor sie funktioniert. Dies beinhaltet Portweiterleitung, Firewall-Regeln und plattformspezifische Einstellungen.',
- readGuide: 'Lese die Einrichtungsanleitung vor dem Aktivieren',
- },
- howItWorks: {
- title: 'So funktioniert es',
- 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.',
- 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.',
- step3: 'Im Proxy-Modus leitet der virtuelle Drucker den gesamten Datenverkehr an einen echten Drucker weiter — Drucke starten sofort wie bei einer direkten Verbindung.',
- },
- status: {
- title: 'Status-Details',
- printerName: 'Druckername',
- model: 'Modell',
- serialNumber: 'Seriennummer',
- mode: 'Modus',
- pendingFiles: 'Ausstehende Dateien',
- targetPrinter: 'Zieldrucker',
- ftpPort: 'FTP-Port',
- mqttPort: 'MQTT-Port',
- ftpConnections: 'FTP-Verbindungen',
- mqttConnections: 'MQTT-Verbindungen',
- },
- toast: {
- updated: 'Virtuelle Druckereinstellungen aktualisiert',
- failedToUpdate: 'Einstellungen konnten nicht aktualisiert werden',
- accessCodeRequired: 'Bitte zuerst einen Zugangscode setzen',
- targetPrinterRequired: 'Bitte zuerst einen Zieldrucker auswählen',
- bindIpRequired: 'Bitte zuerst eine Bind-IP setzen',
- accessCodeEmpty: 'Zugangscode darf nicht leer sein',
- accessCodeLength: 'Zugangscode muss genau 8 Zeichen lang sein',
- created: 'Virtueller Drucker erstellt',
- failedToCreate: 'Virtueller Drucker konnte nicht erstellt werden',
- deleted: 'Virtueller Drucker gelöscht',
- failedToDelete: 'Virtueller Drucker konnte nicht gelöscht werden',
- },
- list: {
- title: 'Virtuelle Drucker',
- add: 'Hinzufügen',
- addFirst: 'Virtuellen Drucker hinzufügen',
- empty: 'Keine virtuellen Drucker konfiguriert. Fügen Sie einen hinzu, um zu beginnen.',
- },
- bindIp: {
- title: 'Bind-Interface',
- placeholder: 'Interface auswählen...',
- hint: 'Netzwerkinterface, an das dieser virtuelle Drucker gebunden wird. Muss pro Drucker eindeutig sein.',
- },
- proxy: {
- accessCodeHint: 'Im Proxy-Modus den Zugangscode des Zieldruckers im Slicer verwenden. Die Verbindung wird transparent zum echten Drucker weitergeleitet.',
- },
- addDialog: {
- title: 'Virtuellen Drucker hinzufügen',
- name: 'Name',
- hint: 'Sie können Zugangscode, Zieldrucker und andere Einstellungen nach dem Erstellen konfigurieren.',
- create: 'Erstellen',
- },
- deleteConfirm: {
- title: 'Virtuellen Drucker löschen',
- message: 'Möchten Sie "{{name}}" wirklich löschen? Dies stoppt alle Dienste für diesen Drucker.',
- },
- },
- // Model Viewer
- modelViewer: {
- openInSlicer: 'Im Slicer öffnen',
- tabs: {
- model: '3D-Modell',
- gcode: 'G-Code Vorschau',
- },
- notAvailable: 'nicht verfügbar',
- notSliced: 'nicht geslicet',
- plates: 'Platten',
- allPlates: 'Alle Platten',
- plateNumber: 'Platte {{number}}',
- plateCount: '{{count}} Platte',
- plateCount_other: '{{count}} Platten',
- objectCount: '{{count}} Objekt',
- objectCount_other: '{{count}} Objekte',
- filamentCount: '{{count}} Filament',
- filamentCount_other: '{{count}} Filamente',
- eta: 'ETA {{minutes}} Min',
- noPreview: 'Keine Vorschau für diese Datei verfügbar',
- pagination: {
- pageOf: 'Seite {{current}} von {{total}}',
- prev: 'Zurück',
- next: 'Weiter',
- },
- errors: {
- failedToLoad: 'Datei konnte nicht geladen werden',
- noMeshes: 'Keine Meshes in 3MF-Datei gefunden',
- unsupportedFormat: 'Nicht unterstütztes Dateiformat',
- },
- },
- // Maintenance type descriptions (built-in)
- maintenanceDescriptions: {
- lubricateCarbonRods: 'Schmiermittel auf Karbonstäbe für sanfte Bewegung auftragen',
- lubricateRails: 'Schmiermittel auf Linearschienen für sanfte Bewegung auftragen',
- cleanNozzle: 'Hotend und Düse reinigen, um Verstopfungen zu verhindern',
- checkBelts: 'Riemenspannung für präzise Drucke überprüfen',
- cleanBuildPlate: 'Druckplatte für bessere Haftung reinigen',
- checkExtruder: 'Extruderzahnräder auf Verschleiß prüfen',
- checkCooling: 'Sicherstellen, dass Lüfter ordnungsgemäß funktionieren',
- generalInspection: 'Allgemeine Druckerinspektion',
- cleanCarbonRods: 'Karbonstäbe reinigen, um Reibung zu reduzieren',
- lubricateSteelRods: 'Schmiermittel auf Stahlstangen für sanfte Bewegung auftragen',
- cleanSteelRods: 'Stahlstangen reinigen, um Reibung zu reduzieren',
- cleanLinearRails: 'Linearschienen abwischen, um Staub und Schmutz zu entfernen',
- checkPtfeTube: 'PTFE-Schlauch auf Verschleiß oder Beschädigung prüfen',
- replaceHepaFilter: 'HEPA-Filter für Luftqualität ersetzen',
- replaceCarbonFilter: 'Aktivkohlefilter ersetzen',
- lubricateLeftNozzleRail: 'Linke Düsenschiene schmieren (H2-Serie)',
- },
- // Smart Plugs
- smartPlugs: {
- offline: 'Offline',
- admin: 'Admin',
- openPlugAdminPage: 'Plug-Admin-Seite öffnen',
- deleteSmartPlug: 'Smart Plug löschen',
- turnOnSmartPlug: 'Smart Plug einschalten',
- turnOffSmartPlug: 'Smart Plug ausschalten',
- turnOn: 'Einschalten',
- turnOff: 'Ausschalten',
- addSmartPlug: {
- scanningNetwork: 'Netzwerk wird durchsucht...',
- chooseEntity: 'Entität auswählen...',
- connectionFailed: 'Verbindung fehlgeschlagen',
- searchEntities: 'Entitäten suchen...',
- searchPowerSensors: 'Leistungssensoren suchen...',
- searchEnergySensors: 'Energiesensoren suchen...',
- placeholders: {
- plugName: 'Wohnzimmer Steckdose',
- mqttStateOnValue: 'ON, true, 1',
- mqttSameAsPower: 'Gleich wie Leistungs-Topic oder anders',
- },
- },
- // SmartPlugCard
- linkedTo: 'Verbunden mit:',
- monitorOnly: 'Nur Überwachung',
- alerts: 'Alarme',
- scheduleOn: 'Ein {{time}}',
- scheduleOff: 'Aus {{time}}',
- on: 'Ein',
- off: 'Aus',
- power: 'Leistung',
- kwhToday: 'kWh Heute',
- settings: 'Einstellungen',
- automationSettings: 'Automatisierungseinstellungen',
- showInSwitchbar: 'In Schaltleiste anzeigen',
- quickAccessSidebar: 'Schnellzugriff über Seitenleiste',
- enabled: 'Aktiviert',
- enableAutomation: 'Automatisierung für diesen Stecker aktivieren',
- autoOn: 'Auto Ein',
- autoOnDescription: 'Einschalten wenn Druck startet',
- autoOff: 'Auto Aus',
- autoOffDescription: 'Ausschalten wenn Druck abgeschlossen (einmalig)',
- autoOffPersistent: 'Aktiviert lassen',
- autoOffPersistentDescription: 'Zwischen Drucken aktiviert bleiben statt einmalig',
- turnOffDelayMode: 'Ausschaltverzögerungsmodus',
- time: 'Zeit',
- temp: 'Temp',
- delayMinutes: 'Verzögerung (Minuten)',
- tempThreshold: 'Temperaturschwelle (°C)',
- tempThresholdDescription: 'Schaltet aus wenn die Düse unter diese Temperatur abkühlt',
- edit: 'Bearbeiten',
- deleteConfirm: 'Möchten Sie "{{name}}" wirklich löschen? Dies kann nicht rückgängig gemacht werden.',
- turnOnConfirm: 'Möchten Sie "{{name}}" wirklich einschalten?',
- turnOffConfirm: 'Möchten Sie "{{name}}" wirklich ausschalten? Dies unterbricht die Stromversorgung des angeschlossenen Geräts.',
- failedToTurn: '{{name}}" konnte nicht {{action}} werden',
- unknown: 'Unbekannt',
- // AddSmartPlugModal
- addTitle: 'Smart Plug hinzufügen',
- editTitle: 'Smart Plug bearbeiten',
- stopScanning: 'Suche beenden',
- discoverTasmota: 'Tasmota Geräte suchen',
- foundDevices: '{{count}} Gerät(e) gefunden - zum Auswählen klicken:',
- noDevicesFound: 'Keine Tasmota Geräte in Ihrem Netzwerk gefunden',
- haNotConfigured: 'Home Assistant ist nicht konfiguriert. Einrichtung unter',
- haSettingsPath: 'Einstellungen → Netzwerk → Home Assistant',
- selectEntity: 'Entität auswählen *',
- ipAddress: 'IP-Adresse *',
- nameLabel: 'Name *',
- username: 'Benutzername',
- password: 'Passwort',
- authHint: 'Leer lassen, wenn Ihr Tasmota-Gerät keine Authentifizierung benötigt',
- linkToPrinter: 'Mit Drucker verbinden',
- noPrinter: 'Kein Drucker (nur manuelle Steuerung)',
- linkingDescription: 'Verknüpfung ermöglicht automatisches Ein-/Ausschalten bei Druckstart/-ende',
- powerAlerts: 'Leistungsalarme',
- alertAbove: 'Alarm wenn über (W)',
- alertBelow: 'Alarm wenn unter (W)',
- alertDescription: 'Benachrichtigung wenn der Stromverbrauch diese Schwellenwerte überschreitet. Leer lassen um diese Richtung zu deaktivieren.',
- dailySchedule: 'Tagesplan',
- turnOnAt: 'Einschalten um',
- turnOffAt: 'Ausschalten um',
- scheduleDescription: 'Den Stecker automatisch täglich zu diesen Zeiten ein-/ausschalten. Leer lassen um diese Aktion zu überspringen.',
- showOnPrinterCard: 'Auf Druckerkarte anzeigen',
- displayOnPrinterCard: 'Schaltfläche auf Druckerkarte anzeigen',
- connectedResult: 'Verbunden!',
- deviceLabel: 'Gerät: {{name}} - ',
- stateLabel: 'Status: {{state}}',
- test: 'Test',
- delete: 'Löschen',
- save: 'Speichern',
- add: 'Hinzufügen',
- cancel: 'Abbrechen',
- failedToStartScan: 'Suche konnte nicht gestartet werden',
- nameRequired: 'Name ist erforderlich',
- entityRequired: 'Entität ist für Home Assistant Stecker erforderlich',
- mqttTopicRequired: 'Mindestens ein MQTT-Topic muss für Leistung, Energie oder Statusüberwachung konfiguriert sein',
- loadingEntities: 'Entitäten werden geladen...',
- loading: 'Laden...',
- failedToLoadEntities: 'Entitäten konnten nicht geladen werden: {{error}}',
- noEntitiesMatching: 'Keine Entitäten gefunden die "{{search}}" entsprechen',
- noEntitiesAvailable: 'Keine Entitäten verfügbar',
- searchingEntities: 'Alle Entitäten durchsuchen ({{count}} gefunden)',
- showingEntities: 'Zeige switch, light, input_boolean ({{count}} verfügbar)',
- energyMonitoringOptional: 'Energieüberwachung (Optional)',
- energyMonitoringHint: 'Sensoren suchen und auswählen, die Leistungs-/Energiedaten liefern.',
- powerSensorW: 'Leistungssensor (W)',
- energyTodayKwh: 'Energie Heute (kWh)',
- totalEnergyKwh: 'Gesamtenergie (kWh)',
- noMatchingSensors: 'Keine passenden Sensoren',
- none: 'Keine',
- mqttNotConfigured: 'MQTT-Broker nicht konfiguriert. Broker-Adresse einstellen unter',
- mqttSettingsPath: 'Einstellungen → Netzwerk → MQTT-Veröffentlichung',
- mqttNotConfiguredSuffix: '(Sie müssen die Veröffentlichung nicht aktivieren, nur die Broker-Details ausfüllen).',
- mqttMonitorOnlyDescription: 'MQTT-Stecker empfangen Leistungs-/Energiedaten über MQTT-Abonnement. Ein-/Ausschalten ist nicht verfügbar - verwenden Sie Ihren MQTT-Broker oder Ihr Home-Automation-System.',
- powerMonitoring: 'Leistungsüberwachung',
- energyMonitoring: 'Energieüberwachung',
- stateMonitoring: 'Statusüberwachung',
- optional: 'optional',
- topic: 'Topic',
- jsonPath: 'JSON-Pfad',
- multiplier: 'Multiplikator',
- onValue: 'EIN-Wert',
- mqttPowerHint: 'JSON-Pfad extrahiert Wert aus JSON-Payload (z.B. "power_l1"). Leer lassen wenn Topic rohe numerische Werte sendet.\nMultiplikator 0.001 für mW→W, 1000 für kW→W verwenden.',
- mqttEnergyHint: 'JSON-Pfad extrahiert Wert aus JSON-Payload. Leer lassen für rohe Werte.\nMultiplikator 0.001 für Wh→kWh, 1000 für MWh→kWh verwenden.',
- mqttStateHint: 'JSON-Pfad extrahiert Wert aus JSON-Payload. Leer lassen für rohe Werte.\nEIN-Wert: der genaue String der "EIN" bedeutet. Leer lassen für Auto-Erkennung (ON, true, 1).',
- noSwitchesInSwitchbar: 'Keine Schalter in der Schaltleiste',
- enableSwitchbarHint: '"In Schaltleiste anzeigen" unter Einstellungen > Smart Plugs aktivieren',
- },
- // Notifications
- notifications: {
- // Provider types
- providerTypes: {
- callmebot: 'CallMeBot/WhatsApp',
- ntfy: 'ntfy',
- pushover: 'Pushover',
- telegram: 'Telegram',
- email: 'E-Mail',
- discord: 'Discord',
- webhook: 'Webhook',
- homeassistant: 'Home Assistant',
- },
- // Provider descriptions
- providerDescriptions: {
- email: 'SMTP-E-Mail-Benachrichtigungen',
- telegram: 'Benachrichtigungen über Telegram-Bot',
- discord: 'An Discord-Kanal per Webhook senden',
- ntfy: 'Kostenlose, selbst-hostbare Push-Benachrichtigungen',
- pushover: 'Einfache, zuverlässige Push-Benachrichtigungen',
- callmebot: 'Kostenlose WhatsApp-Benachrichtigungen über CallMeBot',
- webhook: 'Generischer HTTP-POST an beliebige URL',
- homeassistant: 'Dauerhafte Benachrichtigungen im Home Assistant Dashboard',
- },
- // NotificationProviderCard
- lastSuccess: 'Zuletzt: {{date}}',
- error: 'Fehler',
- printer: 'Drucker:',
- allPrinters: 'Alle Drucker',
- sendTestNotification: 'Testbenachrichtigung senden',
- eventSettings: 'Ereigniseinstellungen',
- enabled: 'Aktiviert',
- sendFromProvider: 'Benachrichtigungen von diesem Anbieter senden',
- // Event categories
- printEvents: 'Druckereignisse',
- printerStatus: 'Druckerstatus',
- amsAlarms: 'AMS-Alarme',
- amsHtAlarms: 'AMS-HT-Alarme',
- printQueue: 'Druckwarteschlange',
- // Event tags (badges)
- start: 'Start',
- plateCheck: 'Plattenkontrolle',
- complete: 'Abgeschlossen',
- failed: 'Fehlgeschlagen',
- stopped: 'Gestoppt',
- progress: 'Fortschritt',
- offline: 'Offline',
- lowFilament: 'Filament niedrig',
- maintenance: 'Wartung',
- amsHumidity: 'AMS-Feuchtigkeit',
- amsTemp: 'AMS-Temperatur',
- amsHtHumidity: 'AMS-HT-Feuchtigkeit',
- amsHtTemp: 'AMS-HT-Temperatur',
- bedCooled: 'Bett abgekühlt',
- firstLayer: 'Erste Schicht',
- quiet: 'Ruhe',
- digest: 'Zusammenfassung {{time}}',
- // Event labels (expanded settings)
- printStarted: 'Druck gestartet',
- plateNotEmpty: 'Platte nicht leer',
- plateNotEmptyDescription: 'Objekte vor dem Druck erkannt',
- printCompleted: 'Druck abgeschlossen',
- bedCooledLabel: 'Bett abgekühlt',
- bedCooledDescription: 'Bett nach dem Druck unter Schwellenwert abgekühlt',
- firstLayerCompleteLabel: 'Erste Schicht fertig',
- firstLayerCompleteDescription: 'Benachrichtigung mit Foto nach erster Schicht',
- missingSpoolAssignmentLabel: 'Fehlende Spulenzuordnung',
- missingSpoolAssignmentDescription: 'Benachrichtigen, wenn ein Druck startet und benoetigte Schaechte keine zugeordnete Spule haben',
- printFailed: 'Druck fehlgeschlagen',
- printStopped: 'Druck gestoppt',
- progressMilestones: 'Fortschrittsmeilensteine',
- progressMilestonesDescription: 'Benachrichtigung bei 25%, 50%, 75%',
- printerOffline: 'Drucker offline',
- printerError: 'Druckerfehler',
- lowFilamentLabel: 'Filament niedrig',
- maintenanceDue: 'Wartung fällig',
- maintenanceDueDescription: 'Benachrichtigen, wenn Wartung erforderlich ist',
- amsHumidityHigh: 'AMS-Feuchtigkeit hoch',
- amsHumidityHighDescription: 'Normale AMS-Feuchtigkeit überschreitet Schwellenwert',
- amsTemperatureHigh: 'AMS-Temperatur hoch',
- amsTemperatureHighDescription: 'Normale AMS-Temperatur überschreitet Schwellenwert',
- amsHtHumidityHigh: 'AMS-HT-Feuchtigkeit hoch',
- amsHtHumidityHighDescription: 'AMS-HT-Feuchtigkeit überschreitet Schwellenwert',
- amsHtTemperatureHigh: 'AMS-HT-Temperatur hoch',
- amsHtTemperatureHighDescription: 'AMS-HT-Temperatur überschreitet Schwellenwert',
- // Queue events
- jobAdded: 'Auftrag hinzugefügt',
- jobAddedDescription: 'Auftrag zur Warteschlange hinzugefügt',
- jobAssigned: 'Auftrag zugewiesen',
- jobAssignedDescription: 'Modellbasierter Auftrag einem Drucker zugewiesen',
- jobStarted: 'Auftrag gestartet',
- jobStartedDescription: 'Warteschlangenauftrag hat Druck begonnen',
- jobWaiting: 'Auftrag wartet',
- jobWaitingDescription: 'Auftrag wartet auf Filament oder Drucker',
- jobSkipped: 'Auftrag übersprungen',
- jobSkippedDescription: 'Auftrag übersprungen (vorheriger fehlgeschlagen)',
- jobFailed: 'Auftrag fehlgeschlagen',
- jobFailedDescription: 'Auftrag konnte nicht gestartet werden',
- queueComplete: 'Warteschlange abgeschlossen',
- queueCompleteDescription: 'Alle Warteschlangenaufträge beendet',
- // Quiet hours
- quietHours: 'Ruhezeiten',
- noNotificationsDuring: 'Keine Benachrichtigungen während dieser Zeiten',
- editProviderToChangeQuietHours: 'Anbieter bearbeiten, um Ruhezeiten zu ändern',
- // Daily digest
- dailyDigest: 'Tägliche Zusammenfassung',
- batchNotifications: 'Benachrichtigungen zu einer täglichen Zusammenfassung bündeln',
- sendAt: 'Senden um {{time}}',
- editProviderToChangeDigestTime: 'Anbieter bearbeiten, um Zusammenfassungszeit zu ändern',
- // Actions
- edit: 'Bearbeiten',
- deleteProvider: 'Benachrichtigungsanbieter löschen',
- deleteConfirm: 'Sind Sie sicher, dass Sie "{{name}}" löschen möchten? Dies kann nicht rückgängig gemacht werden.',
- delete: 'Löschen',
- // AddNotificationModal
- addTitle: 'Benachrichtigungsanbieter hinzufügen',
- editTitle: 'Benachrichtigungsanbieter bearbeiten',
- nameLabel: 'Name *',
- namePlaceholder: 'Meine Benachrichtigungen',
- providerTypeLabel: 'Anbietertyp *',
- configuration: 'Konfiguration',
- testConfiguration: 'Konfiguration testen',
- printerFilter: 'Druckerfilter',
- onlyFromPrinter: 'Nur Benachrichtigungen für Ereignisse von diesem Drucker senden',
- quietHoursDnd: 'Ruhezeiten (Nicht stören)',
- quietStart: 'Start',
- quietEnd: 'Ende',
- dailyDigestLabel: 'Tägliche Zusammenfassung',
- sendDigestAt: 'Zusammenfassung senden um',
- digestCollected: 'Ereignisse werden gesammelt und als einzelne Zusammenfassung zu dieser Zeit gesendet',
- notificationEvents: 'Benachrichtigungsereignisse',
- progressPercent: '(25%, 50%, 75%)',
- bedCooledAfterPrint: '(nach Druckabschluss)',
- cancel: 'Abbrechen',
- save: 'Speichern',
- add: 'Hinzufügen',
- nameRequired: 'Name ist erforderlich',
- fieldRequired: '{{field}} ist erforderlich',
- // Config field labels
- phoneNumber: 'Telefonnummer',
- apiKey: 'API-Schlüssel',
- serverUrl: 'Server-URL',
- topic: 'Thema',
- authToken: 'Auth-Token',
- userKey: 'Benutzerschlüssel',
- appToken: 'App-Token',
- priority: 'Priorität',
- botToken: 'Bot-Token',
- chatId: 'Chat-ID',
- smtpServer: 'SMTP-Server',
- smtpPort: 'SMTP-Port',
- security: 'Sicherheit',
- authentication: 'Authentifizierung',
- username: 'Benutzername',
- password: 'Passwort',
- fromEmail: 'Absender-E-Mail',
- toEmail: 'Empfänger-E-Mail',
- webhookUrl: 'Webhook-URL',
- payloadFormat: 'Payload-Format',
- authorization: 'Autorisierung',
- titleFieldName: 'Titel-Feldname',
- messageFieldName: 'Nachrichten-Feldname',
- // NotificationTemplateEditor
- editTemplate: 'Vorlage bearbeiten: {{name}}',
- titleLabel: 'Titel',
- bodyLabel: 'Inhalt',
- titlePlaceholder: 'Benachrichtigungstitel...',
- bodyPlaceholder: 'Benachrichtigungsinhalt...',
- availableVariables: 'Verfügbare Variablen',
- clickToInsert: 'Klicken, um an Cursorposition im Inhalt einzufügen',
- livePreview: 'Live-Vorschau',
- hide: 'Ausblenden',
- show: 'Anzeigen',
- loadingPreview: 'Vorschau wird geladen...',
- enterTemplateContent: 'Vorlageninhalt eingeben, um Vorschau zu sehen',
- titlePreview: 'Titel:',
- bodyPreview: 'Inhalt:',
- resetToDefault: 'Auf Standard zurücksetzen',
- titleRequired: 'Titel ist erforderlich',
- bodyRequired: 'Inhalt ist erforderlich',
- // NotificationLogViewer
- notificationLog: 'Benachrichtigungsprotokoll',
- showFailedOnly: 'Nur fehlgeschlagene',
- last24Hours: 'Letzte 24 Stunden',
- last7Days: 'Letzte 7 Tage',
- last30Days: 'Letzte 30 Tage',
- last90Days: 'Letzte 90 Tage',
- justNow: 'Gerade eben',
- noFailedNotifications: 'Keine fehlgeschlagenen Benachrichtigungen',
- noNotificationsLogged: 'Keine Benachrichtigungen protokolliert',
- unknownProvider: 'Unbekannter Anbieter',
- logTitle: 'Titel',
- logMessage: 'Nachricht',
- logError: 'Fehler',
- logProvider: 'Anbieter: {{type}}',
- logTime: 'Zeit: {{time}}',
- refresh: 'Aktualisieren',
- clearOld: 'Alte löschen',
- statsSummary: 'Letzte {{days}} Tage:',
- statsNotifications: 'Benachrichtigungen',
- statsSent: '{{count}} gesendet',
- statsFailed: '{{count}} fehlgeschlagen',
- // Event type labels (for log viewer)
- eventTypes: {
- print_start: 'Druck gestartet',
- print_complete: 'Druck abgeschlossen',
- print_failed: 'Druck fehlgeschlagen',
- print_stopped: 'Druck gestoppt',
- print_progress: 'Fortschritt',
- printer_offline: 'Drucker offline',
- printer_error: 'Druckerfehler',
- filament_low: 'Filament niedrig',
- maintenance_due: 'Wartung fällig',
- test: 'Test',
- },
- // User email notification preferences
- userEmail: {
- title: 'Benachrichtigungen',
- emailNotifications: 'E-Mail-Benachrichtigungen',
- 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.',
- sendingTo: 'Benachrichtigungen werden gesendet an',
- noEmailWarning: 'Ihr Konto hat keine E-Mail-Adresse. Wenden Sie sich an einen Administrator, um eine hinzuzufügen.',
- printJobNotifications: 'Druckauftrags-Benachrichtigungen',
- printJobNotificationsDesc: 'Wählen Sie aus, welche Ereignisse E-Mail-Benachrichtigungen für von Ihnen gesendete Druckaufträge auslösen.',
- printJobStarts: 'Druckauftrag startet',
- printJobStartsDesc: 'Benachrichtigt werden, wenn Ihr Druckauftrag beginnt.',
- printJobFinishes: 'Druckauftrag fertig',
- printJobFinishesDesc: 'Benachrichtigt werden, wenn Ihr Druckauftrag erfolgreich abgeschlossen wurde.',
- printErrors: 'Druckfehler',
- printErrorsDesc: 'Benachrichtigt werden, wenn Ihr Druckauftrag fehlschlägt oder auf einen Fehler stößt.',
- printJobStops: 'Druckauftrag gestoppt',
- printJobStopsDesc: 'Benachrichtigt werden, wenn Ihr Druckauftrag abgebrochen oder gestoppt wird.',
- saveSuccess: 'Benachrichtigungseinstellungen gespeichert.',
- saveError: 'Benachrichtigungseinstellungen konnten nicht gespeichert werden.',
- },
- },
- // Rich Text Editor
- richTextEditor: {
- bold: 'Fett',
- italic: 'Kursiv',
- underline: 'Unterstrichen',
- bulletList: 'Aufzählungsliste',
- numberedList: 'Nummerierte Liste',
- alignLeft: 'Linksbündig',
- alignCenter: 'Zentriert',
- alignRight: 'Rechtsbündig',
- addLink: 'Link hinzufügen',
- removeLink: 'Link entfernen',
- },
- // External Links
- externalLinks: {
- noLinksConfigured: 'Keine externen Links konfiguriert',
- deleteLink: 'Link löschen',
- removeCustomIcon: 'Benutzerdefiniertes Symbol entfernen',
- openInNewTab: 'In neuem Tab öffnen',
- placeholders: {
- linkName: 'Mein Link',
- },
- },
- // Keyboard Shortcuts Modal
- keyboardShortcuts: {
- title: 'Tastaturkürzel',
- navigation: 'Navigation',
- archivesSection: 'Archive',
- kProfilesSection: 'K-Profile',
- generalSection: 'Allgemein',
- shortcuts: {
- goToPrinters: 'Zu Drucker gehen',
- goToArchives: 'Zu Archiv gehen',
- goToQueue: 'Zur Warteschlange gehen',
- goToStats: 'Zu Statistiken gehen',
- goToProfiles: 'Zu Cloud-Profilen gehen',
- goToSettings: 'Zu Einstellungen gehen',
- focusSearch: 'Suche fokussieren',
- openUploadModal: 'Upload-Modal öffnen',
- clearSelection: 'Auswahl löschen / Eingabe aufheben',
- contextMenu: 'Kontextmenü auf Karten',
- refreshProfiles: 'Profile aktualisieren',
- newProfile: 'Neues Profil',
- exitSelectionMode: 'Auswahlmodus beenden',
- showHelp: 'Diese Hilfe anzeigen',
- },
- footer: 'Drücken Sie Esc oder klicken Sie außerhalb, um zu schließen',
- },
- // Notification Log
- notificationLog: {
- title: 'Benachrichtigungsprotokoll',
- events: {
- printStarted: 'Druck gestartet',
- printComplete: 'Druck abgeschlossen',
- printFailed: 'Druck fehlgeschlagen',
- printStopped: 'Druck gestoppt',
- progress: 'Fortschritt',
- printerOffline: 'Drucker offline',
- printerError: 'Druckerfehler',
- lowFilament: 'Wenig Filament',
- maintenanceDue: 'Wartung fällig',
- test: 'Test',
- },
- timeAgo: {
- justNow: 'Gerade eben',
- minutesAgo: 'vor {{minutes}}m',
- hoursAgo: 'vor {{hours}}h',
- },
- },
- // Restore/Backup Modal
- restoreBackup: {
- title: 'Backup wiederherstellen',
- restoring: 'Wird wiederhergestellt...',
- restoreComplete: 'Wiederherstellung abgeschlossen',
- restoreFailed: 'Wiederherstellung fehlgeschlagen',
- importSettings: 'Einstellungen aus Backup-Datei importieren',
- pleaseWait: 'Bitte warten Sie, während Ihre Daten wiederhergestellt werden',
- clickToSelect: 'Klicken Sie, um Backup-Datei auszuwählen (.json oder .zip)',
- howDuplicateHandling: 'So funktioniert die Duplikatbehandlung:',
- categories: {
- printers: 'Drucker',
- smartPlugs: 'Smart Plugs',
- notificationProviders: 'Benachrichtigungsanbieter',
- filaments: 'Filamente',
- archives: 'Archive',
- pendingUploads: 'Ausstehende Uploads',
- settingsTemplates: 'Einstellungen & Vorlagen',
- },
- matchingInfo: {
- printers: 'abgeglichen nach Seriennummer',
- smartPlugs: 'abgeglichen nach IP-Adresse',
- notificationProviders: 'abgeglichen nach Name',
- filaments: 'abgeglichen nach Name + Typ + Marke',
- archives: 'abgeglichen nach Inhalts-Hash',
- pendingUploads: 'abgeglichen nach Dateiname',
- settingsTemplates: 'immer überschrieben',
- },
- replaceExisting: 'Vorhandene Daten ersetzen',
- keepExisting: 'Vorhandene Daten behalten',
- replaceDescription: 'Bereits vorhandene Elemente mit Backup-Daten überschreiben',
- keepDescription: 'Nur Elemente wiederherstellen, die noch nicht existieren',
- caution: 'Vorsicht:',
- cautionText: 'Das Überschreiben ersetzt Ihre aktuellen Konfigurationen durch Backup-Daten. Drucker-Zugangscodes werden aus Sicherheitsgründen niemals überschrieben.',
- itemsRestored: 'Wiederhergestellte Elemente',
- itemsSkipped: 'Übersprungene Elemente',
- restored: 'Wiederhergestellt',
- skipped: 'Übersprungen (existieren bereits)',
- filesLabel: 'Dateien (3MF, Thumbnails, etc.)',
- newApiKeysGenerated: 'Neue API-Schlüssel generiert',
- newApiKeysWarning: 'Diese Schlüssel werden nur einmal angezeigt. Kopieren Sie sie jetzt!',
- processingBackup: 'Backup-Datei wird verarbeitet...',
- noDataFound: 'In der Backup-Datei wurden keine wiederherzustellenden Daten gefunden.',
- failedToRestore: 'Backup konnte nicht wiederhergestellt werden. Bitte überprüfen Sie das Dateiformat.',
- },
- // Backup Export Modal
- backupExport: {
- title: 'Backup exportieren',
- selectData: 'Zu exportierende Daten auswählen',
- selectAll: 'Alle auswählen',
- selectNone: 'Keine auswählen',
- categoryDescriptions: {
- settings: 'Sprache, Theme, Update-Einstellungen',
- notifications: 'ntfy, Pushover, Discord, usw.',
- templates: 'Benutzerdefinierte Nachrichtenvorlagen',
- smartPlugs: 'Tasmota-Plug-Konfigurationen',
- externalLinks: 'Seitenleiste Links zu externen Diensten',
- printers: 'Druckerinformationen (Zugangscodes ausgeschlossen)',
- plateDetection: 'Leere Platten-Referenzbilder',
- filaments: 'Filamenttypen und -kosten',
- maintenance: 'Benutzerdefinierte Wartungspläne',
- archives: 'Alle Druckdaten + Dateien (3MF, Thumbnails, Fotos)',
- projects: 'Projekte, BOM-Elemente und Anhänge',
- pendingUploads: 'Virtueller Drucker-Uploads zur Überprüfung',
- apiKeys: 'Webhook-API-Schlüssel (neue Schlüssel bei Import generiert)',
- },
- requiresPrinters: 'Drucker müssen ausgewählt sein',
- zipFileWarning: 'ZIP-Datei wird erstellt.',
- zipFileDescription: 'Enthält alle 3MF-Dateien, Thumbnails, Zeitraffer und Fotos. Dies kann eine Weile dauern und zu einer großen Datei führen.',
- includeAccessCodes: 'Zugangscodes einschließen',
- includeAccessCodesDescription: 'Für die Übertragung auf eine andere Maschine',
- includeAccessCodesWarning: 'Zugangscodes werden im Klartext eingeschlossen. Bewahren Sie diese Backup-Datei sicher auf!',
- categoriesSelected: '{{selectedCount}} Kategorien ausgewählt',
- },
- // Pending Uploads Panel
- pendingUploads: {
- placeholders: {
- notes: 'Notizen zu diesem Druck hinzufügen...',
- },
- discardUpload: 'Upload verwerfen',
- archiveAllUploads: 'Alle Uploads archivieren',
- discardAllUploads: 'Alle Uploads verwerfen',
- archive: 'Archivieren',
- timeAgo: {
- justNow: 'Gerade eben',
- minutesAgo: 'vor {{minutes}}m',
- hoursAgo: 'vor {{hours}}h',
- daysAgo: 'vor {{days}}d',
- },
- },
- // API Browser
- apiBrowser: {
- placeholders: {
- requestBody: 'JSON-Anforderungstext...',
- searchEndpoints: 'Endpunkte suchen...',
- },
- },
- // Configure AMS Slot Modal
- configureAmsSlot: {
- title: 'AMS-Slot konfigurieren',
- slotConfigured: 'Slot konfiguriert!',
- configuringSlot: 'Slot wird konfiguriert:',
- slotLabel: '{{ams}} Slot {{slot}}',
- searchPresets: 'Voreinstellungen suchen...',
- colorPlaceholder: 'Farbname oder Hex (z.B. braun, FF8800)',
- clearCustomColor: 'Benutzerdefinierte Farbe löschen',
- noCloudPresets: 'Keine Cloud-Voreinstellungen. Melden Sie sich bei Bambu Cloud an, um zu synchronisieren.',
- noPresetsAvailable: 'Keine Voreinstellungen verfügbar. Melden Sie sich bei Bambu Cloud an oder importieren Sie lokale Profile.',
- noMatchingPresets: 'Keine passenden Voreinstellungen gefunden.',
- custom: 'Benutzerdefiniert',
- builtin: 'Integriert',
- settingsSentToPrinter: 'Einstellungen an Drucker gesendet',
- filamentProfile: 'Filamentprofil',
- kProfileLabel: 'K-Profil (Pressure Advance)',
- filteringFor: 'Filtern nach: {{material}}',
- noKProfile: 'Kein K-Profil (Standard 0.020 verwenden)',
- noMatchingKProfiles: 'Keine passenden K-Profile gefunden. Standard K=0.020 wird verwendet.',
- selectFilamentFirst: 'Zuerst ein Filamentprofil auswählen',
- kFromCalibration: 'K={{value}} aus Druckerkalibrierung',
- customColorLabel: 'Benutzerdefinierte Farbe (optional)',
- presetColors: '{{name}} Farben:',
- showLessColors: 'Weniger Farben anzeigen',
- showMoreColors: 'Mehr Farben anzeigen',
- clear: 'Löschen',
- hexLabel: 'Hex: #{{hex}}',
- resetting: 'Wird zurückgesetzt...',
- resetSlot: 'Slot zurücksetzen',
- cancel: 'Abbrechen',
- configuring: 'Wird konfiguriert...',
- configureSlot: 'Slot konfigurieren',
- },
- // GitHub Backup Settings
- githubBackup: {
- title: 'GitHub-Backup',
- history: 'Verlauf',
- downloadBackup: 'Backup herunterladen',
- restoreBackup: 'Backup wiederherstellen',
- noBackupsYet: 'Noch keine Backups',
- },
- // Email Settings
- emailSettings: {
- placeholders: {
- fromName: 'BamBuddy',
- },
- },
- // Tag Management Modal
- tagManagement: {
- searchTags: 'Tags suchen...',
- renameTag: 'Tag umbenennen',
- deleteTag: 'Tag löschen',
- },
- // Notification Template Editor
- notificationTemplates: {
- placeholders: {
- title: 'Benachrichtigungstitel...',
- body: 'Benachrichtigungstext...',
- },
- },
- // Batch Tag Modal
- batchTag: {
- placeholders: {
- newTag: 'Neuen Tag eingeben...',
- },
- },
- // Photo Gallery Modal
- photoGallery: {
- deletePhoto: 'Foto löschen',
- },
- // Filament Hover Card
- filamentHoverCard: {
- copySpoolUuid: 'Spulen-UUID kopieren',
- },
- // K Profiles View
- kProfilesView: {
- hasNote: 'Hat Notiz',
- copyProfile: 'Profil kopieren',
- },
- // Layout/Navigation
- layout: {
- openMenu: 'Menü öffnen',
- noPermissionSystemInfo: 'Sie haben keine Berechtigung zum Anzeigen von Systeminformationen',
- },
- // Dashboard
- dashboard: {
- dragToReorder: 'Ziehen zum Neuordnen',
- hideWidget: 'Widget ausblenden',
- },
- // Notification Provider Card
- notificationProviderCard: {
- deleteNotificationProvider: 'Benachrichtigungsanbieter löschen',
- },
- // File Manager Modal
- fileManagerModal: {
- closeFileManager: 'Dateimanager schließen',
- sortFiles: 'Dateien sortieren',
- goToParentFolder: 'Zum übergeordneten Ordner gehen',
- threeView: '3D-Ansicht',
- },
- // Embedded Camera Viewer
- embeddedCameraViewer: {
- refreshStream: 'Stream aktualisieren',
- close: 'Schließen',
- zoomOut: 'Verkleinern',
- resetZoom: 'Zoom zurücksetzen',
- zoomIn: 'Vergrößern',
- dragToResize: 'Ziehen zum Größe ändern',
- },
- // Timelapse Viewer
- timelapseViewer: {
- skipBack5s: '5s zurückspringen',
- skipForward5s: '5s vorspringen',
- },
- // Notification Providers
- notificationProviders: {
- descriptions: {
- email: 'SMTP-E-Mail-Benachrichtigungen',
- telegram: 'Benachrichtigungen über Telegram-Bot',
- discord: 'An Discord-Kanal über Webhook senden',
- ntfy: 'Kostenlose, selbst hostbare Push-Benachrichtigungen',
- pushover: 'Einfache, zuverlässige Push-Benachrichtigungen',
- callmebot: 'Kostenlose WhatsApp-Benachrichtigungen über CallMeBot',
- webhook: 'Generischer HTTP POST zu beliebiger URL',
- },
- },
- // Log Viewer
- logViewer: {
- searchPlaceholder: 'Nachricht oder Logger-Name suchen...',
- noLogEntries: 'Keine Logeinträge gefunden',
- },
- // Switchbar Popover
- switchbarPopover: {
- noSwitchesInSwitchbar: 'Keine Schalter in Schalterleiste',
- },
- // Project Page Modal
- projectPageModal: {
- placeholders: {
- title: 'Titel',
- designer: 'Designer',
- license: 'Lizenz',
- description: 'Beschreibung eingeben...',
- profileTitle: 'Profil-Titel',
- profileDescription: 'Profilbeschreibung...',
- },
- },
- // Spoolman Settings
- spoolmanSettings: {},
- // Time
- time: {
- unknown: '-',
- waiting: 'Wartend',
- justNow: 'Gerade eben',
- now: 'Jetzt',
- minsAgo: 'vor {{count}}m',
- inMins: 'in {{count}}m',
- hoursAgo: 'vor {{count}}h',
- inHours: 'in {{count}}h',
- daysAgo: 'vor {{count}}d',
- inDays: 'in {{count}}d',
- },
- // SpoolBuddy Kiosk
- spoolbuddy: {
- nav: {
- dashboard: 'Dashboard',
- ams: 'AMS',
- inventory: 'Inventar',
- writeTag: 'Schreiben',
- settings: 'Einstellungen',
- },
- status: {
- nfcReady: 'NFC bereit',
- nfcOff: 'NFC aus',
- offline: 'Offline',
- online: 'Online',
- noPrinters: 'Keine Drucker',
- deviceOffline: 'Gerät offline',
- waitingConnection: 'Warte auf Geräteverbindung...',
- systemReady: 'System bereit',
- status: 'Status',
- },
- dashboard: {
- readyToScan: 'Bereit zum Scannen',
- idleMessage: 'Spule auf die Waage legen zum Identifizieren',
- nfcHint: 'NFC-Tag wird automatisch gelesen',
- device: 'Gerät',
- syncWeight: 'Gewicht sync.',
- weightSynced: 'Synchronisiert!',
- unknownTag: 'Unbekannter Tag',
- newTag: 'Neuer Tag erkannt',
- onScale: 'auf der Waage',
- linkSpool: 'Mit Spule verknüpfen',
- linkTagTitle: 'Tag mit Spule verknüpfen',
- linkTag: 'Tag verknüpfen',
- selectSpool: 'Spule zum Verknüpfen auswählen:',
- noUntagged: 'Keine Spulen ohne Tags gefunden',
- tagDetected: 'Tag erkannt',
- noTag: 'Kein Tag',
- tagId: 'Tag',
- grossWeight: 'Bruttogewicht',
- spoolSize: 'Spulengröße',
- close: 'Schließen',
- currentSpool: 'Aktuelle Spule',
- },
- modal: {
- spoolDetected: 'Spule erkannt',
- assignToAms: 'AMS zuweisen',
- syncWeight: 'Gewicht sync.',
- weightSynced: 'Synchronisiert!',
- syncing: 'Synchronisiere...',
- newTagDetected: 'Neuer Tag erkannt',
- addToInventory: 'Zum Inventar hinzufügen',
- assignToAmsTitle: 'AMS zuweisen',
- selectSlot: 'Slot auswählen',
- assign: 'Zuweisen',
- assigning: 'Zuweisen...',
- assignSuccess: 'Zugewiesen!',
- assignError: 'Fehler beim Zuweisen. Bitte erneut versuchen.',
- noPrinterSelected: 'Drucker auswählen...',
- noAmsDetected: 'Kein AMS an diesem Drucker erkannt',
- slot: 'Slot',
- },
- weight: {
- noReading: 'Kein Messwert',
- stable: 'Stabil',
- measuring: 'Messen...',
- tare: 'Tarieren',
- calibrate: 'Kalibrieren',
- },
- spool: {
- remaining: 'Verbleibend',
- material: 'Material',
- brand: 'Marke',
- color: 'Farbe',
- coreWeight: 'Kern',
- labelWeight: 'Etikett',
- scaleWeight: 'Waage',
- netWeight: 'Netto',
- lastUsed: 'Zuletzt verwendet',
- },
- ams: {
- noData: 'Kein AMS erkannt',
- connectAms: 'AMS anschließen um Filament-Slots zu sehen',
- noPrinter: 'Kein Drucker ausgewählt',
- selectPrinter: 'Drucker in der oberen Leiste auswählen',
- printerDisconnected: 'Drucker getrennt',
- humidity: 'Feuchtigkeit',
- level: 'Stufe',
- active: 'Aktiv',
- slot: 'Slot',
- empty: 'Leer',
- },
- inventory: {
- search: 'Spulen suchen...',
- empty: 'Keine Spulen im Inventar',
- noResults: 'Keine passenden Spulen',
- spools: 'Spulen',
- addSpool: 'Spule hinzufügen',
- },
- settings: {
- // Tabs
- tabDevice: 'Gerät',
- tabDisplay: 'Anzeige',
- tabScale: 'Waage',
- tabUpdates: 'Updates',
- // Device tab
- nfcReader: 'NFC-Leser',
- type: 'Typ',
- connection: 'Verbindung',
- notConnected: 'N/A',
- deviceInfo: 'Geräteinfo',
- hostname: 'Host',
- uptime: 'Betriebszeit',
- systemConfig: 'Backend & Auth',
- backendUrl: 'Bambuddy Backend URL',
- apiToken: 'API-Token',
- apiTokenPlaceholder: 'API-Token eingeben',
- saveConfig: 'Konfiguration speichern',
- systemQueued: 'Konfiguration in Warteschlange.',
- nfcDiagnostic: 'NFC-Diagnose',
- scaleDiagnostic: 'Waagen-Diagnose',
- readTagDiagnostic: 'Tag-Lese-Diagnose',
- testNfc: 'Leser testen',
- testScale: 'Genauigkeit testen',
- testReadTag: 'Tag lesen',
- systemFieldsRequired: 'Backend-URL ist erforderlich.',
- // Display tab
- brightness: 'Helligkeit',
- saved: 'Gespeichert',
- noBacklight: 'Keine DSI-Hintergrundbeleuchtung erkannt. Helligkeitssteuerung erfordert ein DSI-Display.',
- screenBlank: 'Bildschirm-Abschaltzeit',
- screenBlankDesc: 'Bildschirm schaltet sich nach Inaktivität ab. Zum Aufwecken berühren.',
- displayNote: 'Helligkeit wird als Software-Filter angewendet.',
- // Scale tab
- scaleCalibration: 'Waagen-Kalibrierung',
- currentWeight: 'Aktuelles Gewicht',
- tareOffset: 'Tara',
- calFactor: 'Faktor',
- knownWeight: 'Bekanntes Gewicht',
- calStep1: 'Alle Gegenstände von der Waage entfernen und Nullpunkt setzen.',
- calStep2: 'Bekanntes Gewicht auf die Waage legen.',
- setZero: 'Nullpunkt setzen',
- calibrateNow: 'Kalibrieren',
- calibrated: 'Kalibriert',
- tareSet: 'Tara-Befehl gesendet. Warte auf Gerät...',
- tareFailed: 'Tara-Befehl fehlgeschlagen',
- zeroSet: 'Nullpunkt gesetzt. Bekanntes Gewicht auf die Waage legen.',
- calibrationDone: 'Kalibrierung abgeschlossen!',
- calibrationFailed: 'Kalibrierung fehlgeschlagen',
- lastCalibrated: 'Zuletzt kalibriert',
- stable: 'Stabil',
- settling: 'Stabilisierung...',
- firmware: 'Firmware',
- scale: 'Waage',
- noDevice: 'Kein SpoolBuddy-Gerät gefunden',
- // Updates tab
- daemonVersion: 'Daemon-Version',
- currentVersion: 'Aktuell',
- versionPending: 'Warte auf Daemon...',
- checking: 'Prüfe...',
- checkUpdates: 'Nach Updates suchen',
- updateAvailable: 'Update verfügbar',
- updateInstructions: 'Update per SSH: SpoolBuddy-Installationsskript ausführen.',
- upToDate: 'Aktuell',
- includeBeta: 'Beta-Versionen einschließen',
- },
- writeTag: {
- tabExisting: 'Vorhandene Spule',
- tabNew: 'Neue Spule',
- tabReplace: 'Tag ersetzen',
- searchPlaceholder: 'Suche nach Material, Farbe, Marke...',
- noUntaggedSpools: 'Keine Spulen ohne Tags',
- noTaggedSpools: 'Keine Spulen mit Tags',
- selectSpool: 'Spule auswählen, dann einen NTAG auf den Leser legen',
- placeTag: 'NTAG auf den Leser legen',
- tagReady: 'Tag erkannt — bereit zum Schreiben',
- writeTag: 'Tag beschreiben',
- replaceTag: 'Tag ersetzen',
- writing: 'Tag wird beschrieben...',
- waiting: 'Warte auf SpoolBuddy...',
- writeSuccess: 'Tag erfolgreich beschrieben!',
- writeFailed: 'Schreiben fehlgeschlagen',
- queueFailed: 'Schreibbefehl konnte nicht eingereiht werden',
- tryAgain: 'Erneut versuchen',
- cancel: 'Abbrechen',
- replaceWarning: 'Alter Tag wird getrennt. Neuer Tag ersetzt ihn.',
- deviceOffline: 'SpoolBuddy ist offline',
- material: 'Material',
- colorName: 'Farbname',
- color: 'Farbe',
- brand: 'Marke',
- weight: 'Gewicht (g)',
- createSpool: 'Spule erstellen',
- creating: 'Wird erstellt...',
- spoolCreated: 'Spule erstellt! Bereit zum Schreiben.',
- createFailed: 'Spule konnte nicht erstellt werden',
- },
- },
- bugReport: {
- title: 'Fehler melden',
- description: 'Beschreibung',
- descriptionPlaceholder: 'Was ist schiefgelaufen? Bitte beschreiben Sie das Problem...',
- email: 'E-Mail (optional)',
- emailPlaceholder: 'ihre@email.de',
- emailPrivacy: 'Falls angegeben, wird Ihre E-Mail in einem eingeklappten Abschnitt des GitHub-Issues aufgeführt, damit der Betreuer sich melden kann.',
- screenshot: 'Screenshot',
- uploadOrPaste: 'Bild hochladen, einfügen oder ziehen',
- dataCollectedSummary: 'Welche Daten werden im Bericht gesendet?',
- dataIncluded: 'Enthalten:',
- 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.',
- dataNeverIncluded: 'Nie enthalten:',
- dataNeverIncludedList: 'Druckernamen, Seriennummern, Zugangscodes, Passwörter, IP-Adressen, E-Mail-Adressen, API-Schlüssel, Tokens, Webhook-URLs, Hostnamen oder Benutzernamen.',
- submit: 'Absenden',
- startLogging: 'Debug-Protokollierung starten',
- stepEnableLogging: 'Debug-Protokollierung aktiviert',
- stepReproduce: 'Problem jetzt reproduzieren',
- stepStopLogging: 'Stoppen & Bericht senden',
- stopAndSubmit: 'Stoppen & Senden',
- maxDuration: 'Stoppt automatisch nach {{minutes}} Min.',
- stoppingLogs: 'Protokolle sammeln & senden...',
- submitting: 'Fehlerbericht wird gesendet...',
- submitSuccess: 'Fehlerbericht erfolgreich gesendet!',
- submitFailed: 'Fehlerbericht konnte nicht gesendet werden',
- thankYou: 'Vielen Dank!',
- submitted: 'Ihr Fehlerbericht wurde eingereicht.',
- viewIssue: 'Issue ansehen',
- unexpectedError: 'Ein unerwarteter Fehler ist aufgetreten',
- },
- };
|