ru.ts 517 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209
  1. export default {
  2. nav: {
  3. printers: "Принтеры",
  4. archives: "Архив",
  5. queue: "Очередь печати",
  6. stats: "Статистика",
  7. profiles: "Профили",
  8. maintenance: "Обслуживание",
  9. projects: "Проекты",
  10. inventory: "Филамент",
  11. finance: "Финансы",
  12. files: "Файловый менеджер",
  13. makerworld: "MakerWorld",
  14. notifications: "Уведомления",
  15. settings: "Настройки",
  16. system: "Система",
  17. collapseSidebar: "Свернуть боковую панель",
  18. expandSidebar: "Развернуть боковую панель",
  19. update: "Обновить",
  20. updateAvailable: "Доступно обновление: v{{version}}",
  21. updateAvailableBanner: "Доступна версия {{version}}!",
  22. viewUpdate: "Посмотреть обновление",
  23. viewOnGithub: "Открыть на GitHub",
  24. keyboardShortcuts: "Горячие клавиши (?)",
  25. switchToLight: "Включить светлую тему",
  26. switchToDark: "Включить тёмную тему",
  27. switchToSystem: "Использовать системную тему",
  28. smartSwitches: "Умные выключатели",
  29. logout: "Выйти",
  30. installApp: "Установить приложение",
  31. installAppSuccess: "Bambuddy установлен",
  32. },
  33. common: {
  34. plusNMore: 'ещё {{count}}',
  35. save: "Сохранить",
  36. saving: "Сохранение...",
  37. cancel: "Отмена",
  38. delete: "Удалить",
  39. edit: "Изменить",
  40. add: "Добавить",
  41. close: "Закрыть",
  42. confirm: "Подтвердить",
  43. loading: "Загрузка...",
  44. error: "Ошибка",
  45. errorLoading: "Не удалось загрузить данные",
  46. retry: "Повторить",
  47. success: "Готово",
  48. warning: "Предупреждение",
  49. enabled: "Включено",
  50. disabled: "Отключено",
  51. yes: "Да",
  52. no: "Нет",
  53. on: "Вкл.",
  54. off: "Выкл.",
  55. all: "Все",
  56. none: "Нет",
  57. search: "Поиск",
  58. filter: "Фильтр",
  59. sort: "Сортировка",
  60. refresh: "Обновить",
  61. download: "Скачать",
  62. upload: "Загрузить",
  63. uploading: "Загрузка...",
  64. uploadFailed: "Ошибка загрузки",
  65. actions: "Действия",
  66. status: "Состояние",
  67. name: "Название",
  68. description: "Описание",
  69. date: "Дата",
  70. time: "Время",
  71. hours: "часов",
  72. minutes: "минут",
  73. seconds: "секунд",
  74. days: "дней",
  75. enable: "Включить",
  76. disable: "Отключить",
  77. permissions: "Разрешения",
  78. noPrinters: "Принтеры не настроены",
  79. noData: "Нет данных",
  80. linkNotFound: "Ссылка не найдена",
  81. required: "Обязательно",
  82. optional: "Необязательно",
  83. dismiss: "Закрыть",
  84. apply: "Применить",
  85. reset: "Сбросить",
  86. export: "Экспорт",
  87. import: "Импорт",
  88. clear: "Очистить",
  89. selectAll: "Выбрать все",
  90. deselectAll: "Снять выделение",
  91. noChange: "— Без изменений —",
  92. unchanged: "Без изменений",
  93. unassigned: "Не назначено",
  94. unknown: "Неизвестно",
  95. unknownError: "Неизвестная ошибка",
  96. today: "Сегодня",
  97. tomorrow: "Завтра",
  98. asap: "Как можно скорее",
  99. overdue: "Просрочено",
  100. now: "Сейчас",
  101. collapse: "Свернуть",
  102. expand: "Развернуть",
  103. previous: "Назад",
  104. next: "Далее",
  105. viewArchive: "Открыть архив",
  106. viewInFileManager: "Открыть в файловом менеджере",
  107. addedBy: "Добавил: {{username}}",
  108. prints: "печатей",
  109. more: "ещё +{{count}}",
  110. ascending: "По возрастанию",
  111. descending: "По убыванию",
  112. back: "Назад",
  113. copy: "Копировать",
  114. copied: "Скопировано!",
  115. printer: "Принтер",
  116. remove: "Удалить",
  117. type: "Тип",
  118. print: "Печать",
  119. rename: "Переименовать",
  120. move: "Переместить",
  121. create: "Создать",
  122. duplicate: "Дублировать",
  123. left: "Левый",
  124. right: "Правый",
  125. user: "Пользователь",
  126. run: "Запустить",
  127. running: "Выполняется...",
  128. },
  129. finance: {
  130. allTypes: "Все типы",
  131. allCostCenters: "Все центры затрат",
  132. title: "Финансы",
  133. subtitle: "Кошелёк, личные операции и центры затрат",
  134. noAccess: "У вас нет разрешения на просмотр финансовых данных.",
  135. personalView: "Личный режим",
  136. adminView: "Режим администратора",
  137. createCostCenter: "Создать центр затрат",
  138. adjustWallet: "Изменить кошелёк",
  139. addManualPrint: "Добавить печать вручную",
  140. manageMembers: "Управление участниками центра затрат",
  141. currentBalance: "Личный баланс",
  142. transactions: "Операции",
  143. personalTransactions: "Личные операции",
  144. costCenters: "Центры затрат",
  145. availableForPrinting: "Доступен для назначения печати",
  146. costCenterName: "Название",
  147. budgetType: "Тип бюджета",
  148. monthlyBudget: "Месячный бюджет",
  149. totalBudget: "Общий бюджет",
  150. noBudget: "Без бюджета",
  151. create: "Создать",
  152. selectUser: "Выберите пользователя",
  153. transactionType: "Тип",
  154. amount: "Сумма",
  155. noCostCenter: "Без центра затрат",
  156. descriptionOptional: "Описание (необязательно)",
  157. applyAdjustment: "Применить изменение",
  158. memberCanPrint: "Участник может печатать",
  159. addMember: "Добавить участника",
  160. canPrint: "Может печатать",
  161. noMembers: "Участники не назначены.",
  162. editCostCenter: "Изменить центр затрат",
  163. myCostCenters: "Мои центры затрат",
  164. costCentersHint: "Проверяйте бюджетные лимиты и контролируйте расходы",
  165. noCostCenters: "Центры затрат не найдены.",
  166. owner: "Владелец",
  167. balance: "Баланс счёта",
  168. unlimited: "Без ограничений",
  169. budgetPolicyHint: "Баланс счёта используется для учёта затрат. Печать ограничивается только бюджетом выбранного центра затрат; без бюджета ограничений нет.",
  170. budget: "Бюджет",
  171. shared: "Общий",
  172. cannotEditPrivateCostCenter: "Личные центры затрат нельзя редактировать здесь",
  173. recentTransactions: "Недавние операции",
  174. transactionsHint: "Фильтр по типу и центру затрат",
  175. first: "Первая",
  176. prev: "Предыдущая",
  177. next: "Следующая",
  178. last: "Последняя",
  179. pageNumberOf: "Страница {{page}} из {{total}}",
  180. noTransactions: "Нет доступных операций.",
  181. noTransactionsForFilter: "Нет операций, соответствующих выбранным фильтрам.",
  182. costCenter: "Центр затрат",
  183. balanceAfter: "Баланс после операции",
  184. userWithId: "Пользователь №{{id}}",
  185. partial: "Частично",
  186. editTransaction: "Изменить операцию",
  187. selectCostCenter: "Выберите центр затрат...",
  188. costCenterRequired: "Выберите центр затрат",
  189. amountExample: "например, 4,00",
  190. manualAdjustmentExample: "например, ручная корректировка",
  191. userRequired: "Выберите пользователя",
  192. amountInvalid: "Сумма должна быть допустимым числом",
  193. createdCostCenter: "Центр затрат создан",
  194. createCostCenterFailed: "Не удалось создать центр затрат",
  195. transactionDeleted: "Операция удалена",
  196. deleteTransactionFailed: "Не удалось удалить операцию",
  197. transactionEdited: "Операция обновлена, бухгалтерская книга пересчитана",
  198. editTransactionFailed: "Не удалось изменить операцию",
  199. manualPrintCreated: "Расход на печать добавлен, бухгалтерская книга пересчитана",
  200. manualPrintFailed: "Не удалось добавить печать вручную",
  201. memberSaved: "Участник сохранён",
  202. memberSaveFailed: "Не удалось сохранить участника",
  203. memberRemoved: "Участник удалён",
  204. memberRemoveFailed: "Не удалось удалить участника",
  205. costCenterNameRequired: "Необходимо указать название центра затрат",
  206. costCenterUpdated: "Центр затрат обновлён",
  207. costCenterUpdateFailed: "Не удалось обновить центр затрат",
  208. confirmDeleteCostCenter: "Удалить центр затрат «{{name}}»?",
  209. costCenterDeleted: "Центр затрат удалён",
  210. costCenterDeleteFailed: "Не удалось удалить центр затрат",
  211. deleteTransactionConfirm: "Удалить эту операцию? Балансы будут пересчитаны автоматически.",
  212. deposit: "Пополнение",
  213. withdraw: "Списание",
  214. printCharge: "Расход на печать",
  215. deleteTransaction: "Удалить операцию",
  216. },
  217. printers: {
  218. title: "Принтеры",
  219. addPrinter: "Добавить принтер",
  220. addPreflight: {
  221. checking: "Проверка подключения...",
  222. warning: "Некоторые проверки подключения не пройдены. Принтер может отображаться как отключённый. Проверьте результаты ниже, исправьте возможные проблемы или сохраните настройки как есть.",
  223. back: "Назад",
  224. saveAnyway: "Всё равно сохранить",
  225. },
  226. editPrinter: "Изменить принтер",
  227. deletePrinter: "Удалить принтер",
  228. printerName: "Название принтера",
  229. serialNumber: "Серийный номер",
  230. ipAddress: "IP-адрес / имя хоста",
  231. accessCode: "Код доступа",
  232. model: "Модель",
  233. nozzleCount: "Количество сопел",
  234. autoArchive: "Автоматически архивировать",
  235. status: {
  236. available: "Доступен",
  237. idle: "Ожидает",
  238. printing: "Печать",
  239. paused: "Приостановлен",
  240. offline: "Не в сети",
  241. problem: "Проблема",
  242. error: "Ошибка",
  243. finished: "Завершено",
  244. unknown: "Неизвестно",
  245. },
  246. temperatures: {
  247. nozzle: "Сопло",
  248. bed: "Стол",
  249. chamber: "Камера",
  250. },
  251. heaterHistory: {
  252. title: "История нагрева",
  253. openLabel: "Открыть историю нагрева",
  254. nozzle: "Сопло",
  255. nozzle2: "Сопло 2",
  256. bed: "Стол",
  257. chamber: "Камера",
  258. error: "Не удалось загрузить историю",
  259. empty: "Данные пока не записывались",
  260. },
  261. progress: "Выполнено {{percent}}%",
  262. timeRemaining: "Осталось {{time}}",
  263. deleteConfirm: "Удалить принтер «{{name}}»?",
  264. maintenanceOk: "Обслуживание в норме",
  265. maintenanceWarning: "{{count}} предупреждение",
  266. maintenanceWarning_plural: "{{count}} предупреждений",
  267. maintenanceDue: "Требуется: {{count}}",
  268. maintenanceDue_plural: "Требуется: {{count}}",
  269. sort: {
  270. name: "Название",
  271. status: "Состояние",
  272. model: "Модель",
  273. location: "Расположение",
  274. eta: "Время завершения",
  275. ascending: "По возрастанию",
  276. descending: "По убыванию",
  277. },
  278. cardSize: {
  279. small: "Маленькие карточки",
  280. medium: "Средние карточки",
  281. large: "Большие карточки",
  282. extraLarge: "Очень большие карточки",
  283. },
  284. pageView: {
  285. openCamWallPage: "Открыть стену камер как отдельную страницу",
  286. cards: "Карточки",
  287. camWall: "Стена камер",
  288. },
  289. camWall: {
  290. page: {
  291. tokenRejected: "Эта ссылка на стену камер больше недействительна. Возможно, срок действия токена истёк или он был отозван.",
  292. loadFailed: "Не удалось загрузить принтеры.",
  293. },
  294. noPrinters: "Нет принтеров для отображения",
  295. noSignal: "Нет сигнала",
  296. live: "Онлайн",
  297. snap: "Снимок",
  298. off: "Выкл.",
  299. summary: "Онлайн: {{live}}, снимки: {{snap}}, всего: {{total}}",
  300. layer: "Слой {{cur}}/{{total}}",
  301. timeLeft: "Осталось {{time}}",
  302. statusMode: {
  303. off: "Выкл.",
  304. compact: "Компактный",
  305. full: "Полный",
  306. },
  307. settings: {
  308. title: "Настройки стены камер",
  309. maxLive: "Максимум онлайн-трансляций",
  310. maxLiveHint: "Сколько камер одновременно показывать в реальном времени. Остальные будут обновляться снимками.",
  311. snapshotInterval: "Интервал снимков, с",
  312. snapshotIntervalHint: "Как часто обновлять снимки камер без онлайн-трансляции.",
  313. statusOverlay: "Наложение состояния",
  314. statusOverlayHint: "Компактный режим: только состояние. Полный: прогресс, слой и оставшееся время.",
  315. },
  316. },
  317. hideOffline: "Скрыть принтеры не в сети",
  318. nextAvailable: "Ближайший доступный",
  319. powerOn: "Включить питание",
  320. offlinePrintersWithPlugs: "Принтеры не в сети с умными розетками",
  321. noPrintersConfigured: "Принтеры пока не настроены",
  322. search: "Поиск принтеров...",
  323. noSearchResults: "Нет принтеров, соответствующих поиску или фильтрам",
  324. filter: {
  325. allStatuses: "Все состояния",
  326. allLocations: "Все расположения",
  327. },
  328. toolbar: {
  329. filters: "Фильтры",
  330. view: "Вид",
  331. actions: "Действия",
  332. },
  333. readyToPrint: "Готов к печати",
  334. external: "Внешняя подача",
  335. extL: "Внешняя, левое",
  336. extR: "Внешняя, правое",
  337. deleteArchives: "Удалить архивы печати",
  338. noLabel: "Без метки",
  339. printPreview: "Предпросмотр печати",
  340. width: "Ширина",
  341. height: "Высота",
  342. noObjectsFound: "Объекты не найдены",
  343. objectsLoadedOnPrintStart: "Объекты загрузятся после начала печати",
  344. willBeSkipped: "Будет пропущен",
  345. name: "Название",
  346. serialCannotBeChanged: "Серийный номер нельзя изменить",
  347. locationHelp: "Используется для группировки принтеров и фильтрации заданий в очереди",
  348. wifiSignal: {
  349. veryWeak: "Очень слабый",
  350. weak: "Слабый",
  351. fair: "Средний",
  352. good: "Хороший",
  353. excellent: "Отличный",
  354. },
  355. maintenanceUpToDate: "Обслуживание выполнено — нажмите для просмотра",
  356. maintenance: {
  357. title: "На обслуживании",
  358. subtitle: "Принтер приостановлен: подключение отключено, задания из очереди не назначаются, уведомления не отправляются.",
  359. pillLabel: "Обслуживание",
  360. exitButton: "Завершить обслуживание",
  361. menuEnter: "Перевести в режим обслуживания",
  362. menuExit: "Выйти из режима обслуживания",
  363. toastEntered: "Принтер {{name}} переведён в режим обслуживания",
  364. toastExited: "Принтер {{name}} снова в работе",
  365. confirmMidPrintTitle: "Перевести в режим обслуживания во время печати?",
  366. confirmMidPrintMessage: "Принтер {{name}} сейчас печатает. Режим обслуживания отключит MQTT, отслеживание прогресса и уведомление о завершении этого задания. Продолжить?",
  367. editFieldLabel: "Режим обслуживания",
  368. editFieldHelp: "Отключает для принтера MQTT, назначение заданий из очереди и уведомления. Используйте при ремонте, параллельных установках Bambuddy или временной приостановке.",
  369. },
  370. chamberLightOn: "Включить подсветку камеры",
  371. chamberLightOff: "Выключить подсветку камеры",
  372. files: "Файлы",
  373. browseFiles: "Открыть файлы принтера",
  374. autoOffAfterPrint: "Автовыключение после печати",
  375. autoOffExecuted: "Автовыключение выполнено — включите принтер для сброса состояния",
  376. hmsErrors: "Ошибки HMS",
  377. viewHmsErrors: "Показать ошибки HMS: {{count}}",
  378. resume: "Продолжить",
  379. pause: "Пауза",
  380. stop: "Стоп",
  381. camera: "Камера",
  382. skipObject: "Пропустить объект",
  383. reconnect: "Переподключить",
  384. forceRefresh: "Принудительно обновить",
  385. forceRefreshSuccess: "Запрошено обновление данных",
  386. mqttDebug: "Отладка MQTT",
  387. printerInformation: "Информация о принтере",
  388. copyToClipboard: "Копировать",
  389. copied: "Скопировано!",
  390. state: "Состояние",
  391. wifiSignalLabel: "Сигнал Wi‑Fi",
  392. developerMode: "Режим разработчика",
  393. enabled: "Включён",
  394. disabled: "Отключён",
  395. addedOn: "Добавлен",
  396. sdCard: "SD-карта",
  397. inserted: "Установлена",
  398. notInserted: "Не установлена",
  399. totalPrintHours: "Часов печати",
  400. activeNozzle: "Активное сопло: {{nozzle}}",
  401. amsSwitchInletTooltip: "Переключатель тракта филамента IN-{{inlet}} ({{side}}) — подаёт на оба сопла",
  402. nozzleRack: "Держатель сопел",
  403. nozzleDocked: "В держателе",
  404. nozzleMounted: "Установлено",
  405. nozzleActive: "Активно",
  406. nozzleIdle: "Ожидание",
  407. nozzleDiameter: "Диаметр",
  408. nozzleType: "Тип",
  409. nozzleStatus: "Состояние",
  410. nozzleFilament: "Филамент",
  411. nozzleWear: "Износ",
  412. nozzleMaxTemp: "Макс. температура",
  413. nozzleSerial: "Серийный номер",
  414. nozzleHardenedSteel: "Закалённая сталь",
  415. nozzleStainlessSteel: "Нержавеющая сталь",
  416. nozzleTungstenCarbide: "Карбид вольфрама",
  417. nozzleFlow: "Производительность",
  418. nozzleHighFlow: "Высокопоточное",
  419. nozzleStandardFlow: "Стандартное",
  420. firmwareUpdate: "Обновление прошивки",
  421. firmwareInstructions: "На сенсорном экране принтера откройте",
  422. firmwareNav: "Перейдите в раздел",
  423. settings: "Настройки",
  424. firmware: "Прошивка",
  425. discoverPrinters: "Найти принтеры",
  426. searching: "Поиск...",
  427. manualEntry: "Добавить вручную",
  428. addFromCloud: "Добавить из облака",
  429. toast: {
  430. printerDeleted: "Принтер удалён",
  431. missingSpoolAssignment: "На принтере {{printer}} началась печать. Не назначены катушки для слотов: {{slots}}",
  432. killSwitchTriggered: 'Аварийный выключатель биллинга остановил несанкционированную печать на {{printer}}: {{filename}}',
  433. billingChargeFailed: 'Не удалось начислить стоимость {{filename}} на {{printer}}. Резерв бюджета сохранён; проверьте журналы сервера.',
  434. assignmentVerified: "Филамент загружен в слот {{slot}} ({{printer}})",
  435. assignmentVerifiedNoKprofile: "Слот {{slot}} на {{printer}} загружен, но профиль калибровки потока (K-профиль) не применён",
  436. assignmentNotConfirmed: "Не удалось подтвердить назначение слота {{slot}} на {{printer}} — проверьте слот AMS",
  437. printerAdded: "Принтер добавлен",
  438. printerUpdated: "Настройки принтера обновлены",
  439. failedToDelete: "Не удалось удалить принтер",
  440. failedToAdd: "Не удалось добавить принтер",
  441. connectionFailedNotAdded: "Не удалось подключиться к принтеру. Проверьте IP-адрес, серийный номер и код доступа, а также убедитесь, что включён режим «Только локальная сеть». Принтер не добавлен.",
  442. failedToUpdate: "Не удалось обновить настройки принтера",
  443. commandSent: "Команда отправлена",
  444. failedToSendCommand: "Не удалось отправить команду",
  445. turnedOn: "Питание {{name}} включено",
  446. failedToPowerOn: "Не удалось включить {{name}}",
  447. scriptTriggered: "Сценарий запущен",
  448. printStopped: "Печать остановлена",
  449. printPaused: "Печать приостановлена",
  450. printResumed: "Печать продолжена",
  451. referenceDeleted: "Эталон удалён",
  452. detectionAreaSaved: "Область обнаружения сохранена",
  453. failedToRunScript: "Не удалось запустить сценарий",
  454. failedToStopPrint: "Не удалось остановить печать",
  455. failedToPausePrint: "Не удалось приостановить печать",
  456. failedToResumePrint: "Не удалось продолжить печать",
  457. failedToControlChamberLight: "Не удалось изменить состояние подсветки камеры",
  458. failedToSetSpeed: "Не удалось изменить скорость печати",
  459. failedToUpdateSetting: "Не удалось изменить настройку",
  460. failedToSkipObjects: "Не удалось пропустить объекты",
  461. failedToRereadRfid: "Не удалось повторно считать RFID",
  462. failedToCheckPlate: "Не удалось проверить пластину",
  463. failedToUpdateLabel: "Не удалось обновить метку",
  464. failedToDeleteReference: "Не удалось удалить эталон",
  465. failedToSaveDetectionArea: "Не удалось сохранить область обнаружения",
  466. plateCheckEnabled: "Проверка пластины включена",
  467. plateCheckDisabled: "Проверка пластины отключена",
  468. calibrationSaved: "Калибровка сохранена",
  469. calibrationFailed: "Не удалось выполнить калибровку",
  470. rfidRereadInitiated: "Запущено повторное считывание RFID",
  471. loadInitiated: "Загрузка филамента…",
  472. unloadInitiated: "Выгрузка филамента…",
  473. failedToLoad: "Не удалось загрузить филамент",
  474. failedToUnload: "Не удалось выгрузить филамент",
  475. },
  476. connection: {
  477. connected: "Подключён",
  478. offline: "Не в сети",
  479. },
  480. plateStatus: {
  481. markCleared: "Отметить пластину как очищенную",
  482. cleared: "Пластина очищена",
  483. notCleared: "Пластина не очищена",
  484. inUse: "Пластина используется",
  485. },
  486. queue: {
  487. inQueue: "В очереди: {{count}} задание",
  488. inQueue_plural: "В очереди: {{count}} заданий",
  489. },
  490. controls: "Управление",
  491. rfid: {
  492. reread: "Повторно считать RFID",
  493. },
  494. ams: {
  495. load: "Загрузить",
  496. unload: "Выгрузить",
  497. feedTitle: "В какое сопло загрузить {{slot}}?",
  498. feedPrompt: "Filament Track Switch может направить этот слот в любой из хотэндов. Выберите, в какой подавать.",
  499. feedLeft: "Левое сопло",
  500. feedRight: "Правое сопло",
  501. feedAlreadyLoaded: "Уже загружено",
  502. switchNotReady: "Filament Track Switch ещё не настроен. Назначьте каждой AMS вход на принтере и повторите попытку.",
  503. },
  504. bedJog: {
  505. limitWarning: "При ручном перемещении ограничения хода не контролируются: из-за ошибки прошивки Bambu программные концевики игнорируются для удалённых команд. Перемещайте осторожно, чтобы избежать столкновения.",
  506. title: "Ручное перемещение",
  507. bed: "Стол",
  508. step: "Шаг (мм)",
  509. up: "Поднять стол",
  510. down: "Опустить стол",
  511. disabledWhilePrinting: "Недоступно во время печати",
  512. notHomedTitle: "Принтер не выполнил парковку по осям",
  513. notHomedMessage: "После последней печати принтер не выполнял Home. Сначала запустите автоматическую парковку для безопасного позиционирования (парковка печатающей головы и поиск нуля по X, Y и Z) либо продолжите перемещение — программные концевики будут отключены.",
  514. homeZ: "Автопарковка",
  515. moveAnyway: "Всё равно переместить",
  516. homingStarted: "Выполняется автопарковка…",
  517. },
  518. permission: {
  519. noAdd: "У вас нет разрешения на добавление принтеров",
  520. noEdit: "У вас нет разрешения на изменение принтеров",
  521. noDelete: "У вас нет разрешения на удаление принтеров",
  522. noControl: "У вас нет разрешения на управление принтерами",
  523. noFiles: "У вас нет разрешения на доступ к файлам принтера",
  524. noAmsRfid: "У вас нет разрешения на повторное считывание RFID AMS",
  525. noSmartPlugControl: "У вас нет разрешения на управление умными розетками",
  526. noCamera: "У вас нет разрешения на просмотр камер",
  527. },
  528. modal: {
  529. addTitle: "Добавить принтер",
  530. editTitle: "Изменить принтер",
  531. myPrinter: "Мой принтер",
  532. selectModel: "Выберите модель…",
  533. locationGroup: "Расположение / группа (необязательно)",
  534. locationPlaceholder: "например: Мастерская, Офис, Подвал",
  535. autoArchiveLabel: "Автоматически архивировать завершённые печати",
  536. fromPrinterSettings: "Из настроек принтера",
  537. modelOptional: "Модель (необязательно)",
  538. saveChanges: "Сохранить изменения",
  539. },
  540. skipObjects: {
  541. tooltip: "Пропустить объекты",
  542. onlyWhilePrinting: "Пропуск объектов доступен только во время печати",
  543. requiresMultiple: "Для пропуска требуется не менее двух объектов",
  544. title: "Пропустить объекты",
  545. matchIdsInfo: "Сопоставьте идентификаторы с экраном принтера",
  546. printerShowsIds: "На экране принтера отображаются идентификаторы объектов на пластине",
  547. skipSelected: "Пропустить выбранные",
  548. skipping: "Пропуск…",
  549. noObjectsSelected: "Объекты не выбраны",
  550. selectObjectsToSkip: "Выберите объекты, которые нужно исключить из текущей печати",
  551. skipped: "пропущен",
  552. objectsSkipped: "Объекты пропущены",
  553. activeCount: "Активно: {{count}}",
  554. waitForLayer: "Пропуск объектов доступен со второго слоя (сейчас слой {{layer}})",
  555. skip: "Пропустить",
  556. confirmTitle: "Пропустить объект?",
  557. confirmMessage: "Пропустить объект «{{name}}»? Это действие нельзя отменить.",
  558. confirmAllMessage: "Выбраны все оставшиеся объекты. Это остановит задание печати. Продолжить?",
  559. confirmMultipleMessage: "Пропустить выбранные объекты ({{count}})? Это действие нельзя отменить.",
  560. },
  561. confirm: {
  562. deleteTitle: "Удалить принтер",
  563. deleteMessage: "Удалить принтер «{{name}}»? Все параметры подключения будут удалены.",
  564. deleteArchivesNote: "Вся история печати этого принтера будет удалена безвозвратно.",
  565. keepArchivesNote: "История печати сохранится, но больше не будет связана с этим принтером.",
  566. stopTitle: "Остановить печать",
  567. stopMessage: "Остановить текущую печать на принтере «{{name}}»? Задание будет отменено.",
  568. stopButton: "Остановить печать",
  569. pauseTitle: "Приостановить печать",
  570. pauseMessage: "Приостановить текущую печать на принтере «{{name}}»?",
  571. pauseButton: "Приостановить печать",
  572. resumeTitle: "Продолжить печать",
  573. resumeMessage: "Продолжить печать на принтере «{{name}}»?",
  574. resumeButton: "Продолжить печать",
  575. powerOnTitle: "Включить принтер",
  576. powerOnMessage: "Включить питание принтера «{{name}}»?",
  577. powerOnButton: "Включить питание",
  578. powerOffTitle: "Выключить принтер",
  579. powerOffMessage: "Выключить питание принтера «{{name}}»?",
  580. powerOffWarning: "ВНИМАНИЕ: принтер «{{name}}» сейчас печатает. Выключение питания прервёт печать и может повредить принтер. Продолжить?",
  581. powerOffButton: "Выключить питание",
  582. haToggleTitle: "Переключить «{{name}}»",
  583. haToggleMessage: "Переключить сущность Home Assistant {{entity}}? Если она сейчас включена, питание может отключиться.",
  584. haToggleWarning: "ВНИМАНИЕ: принтер «{{name}}» сейчас печатает. Переключение {{entity}} может отключить питание и прервать печать. Продолжить?",
  585. haToggleButton: "Переключить",
  586. },
  587. bulk: {
  588. select: "Выбрать",
  589. selectAll: "Выбрать все",
  590. selectByLocation: "Выбрать по расположению",
  591. selected: "Выбрано: {{count}}",
  592. actions: {
  593. stop: "Стоп",
  594. pause: "Пауза",
  595. resume: "Продолжить",
  596. clearPlate: "Освободить стол",
  597. clearHMS: "Очистить уведомления",
  598. },
  599. confirm: {
  600. stopTitle: "Остановить печати: {{count}}",
  601. stopMessage: "Активные печати на {{count}} принтерах будут отменены. Это действие нельзя отменить.",
  602. stopButton: "Остановить все",
  603. pauseTitle: "Приостановить печати: {{count}}",
  604. pauseMessage: "Активные печати на {{count}} принтерах будут приостановлены.",
  605. pauseButton: "Приостановить все",
  606. clearPlateTitle: "Освободить столы: {{count}}",
  607. clearPlateMessage: "Столы на {{count}} принтерах будут отмечены как свободные; после этого могут запуститься задания из очереди.",
  608. clearPlateButton: "Освободить все",
  609. },
  610. success: "Действие «{{action}}» выполнено на {{count}} принтерах",
  611. partial: "Успешно: {{succeeded}}, с ошибкой: {{failed}}",
  612. noneApplicable: "Ни один из выбранных принтеров не находится в подходящем состоянии",
  613. selectByState: "Выбрать по состоянию",
  614. },
  615. discovery: {
  616. title: "Поиск принтеров",
  617. searching: "Поиск…",
  618. scanning: "Сканирование…",
  619. scanProgress: "Сканирование: {{scanned}}/{{total}}",
  620. foundPrinters: "Найдено принтеров: {{count}}",
  621. noPrintersFound: "Принтеры не найдены",
  622. noPrintersFoundSubnet: "В указанной подсети принтеры не найдены.",
  623. noPrintersFoundNetwork: "Принтеры в сети не найдены.",
  624. allConfigured: "Все найденные принтеры уже настроены.",
  625. alreadyAdded: "Уже добавлен",
  626. select: "Выбрать",
  627. manualEntry: "Добавить вручную",
  628. addFromCloud: "Добавить из облака",
  629. subnetToScan: "Подсеть для сканирования",
  630. dockerNote: "Обнаружен Docker. Укажите подсеть принтера в формате CIDR. В docker-compose.yml требуется network_mode: host.",
  631. scanSubnet: "Сканировать подсеть",
  632. discoverNetwork: "Найти принтеры в сети",
  633. scanningSubnet: "Поиск принтеров Bambu в подсети…",
  634. scanningNetwork: "Сканирование сети…",
  635. serialRequired: "Требуется серийный номер",
  636. unknown: "Неизвестно",
  637. failedToStart: "Не удалось запустить поиск",
  638. customSubnetOption: "Другая подсеть…",
  639. customSubnetLabel: "Другая подсеть (CIDR)",
  640. customSubnetNote: "Используйте другую подсеть, если принтер находится в иной сети. Порты FTP (990) и MQTT (8883) должны быть доступны через маршрутизатор.",
  641. },
  642. drying: {
  643. start: "Начать сушку",
  644. stop: "Остановить сушку",
  645. temperature: "Температура",
  646. duration: "Продолжительность",
  647. hours: "ч",
  648. timeRemaining: "осталось {{time}}",
  649. active: "Сушка",
  650. targetSummary: "{{filament}} при {{temp}} °C",
  651. notSupported: "Сушка не поддерживается",
  652. powerRequired: "Подключите адаптер питания AMS, чтобы включить сушку",
  653. cannotDryNow: "AMS сейчас не может начать сушку",
  654. startingDrying: "Запуск сушки...",
  655. toastCommandSent: "Команда сушки отправлена",
  656. toastStopped: "Сушка остановлена",
  657. toastNotStarted: "Принтер принял команду, но AMS не начал сушку. Убедитесь, что адаптер питания AMS подключён, а принтер не занят.",
  658. screenOnly: "На этом принтере управлять сушкой AMS можно только с экрана самого принтера (ограничение Bambu)",
  659. stoppingDrying: "Остановка сушки...",
  660. rotateTray: "Вращать катушку во время сушки",
  661. rotateUnavailableReason: "Недоступно: слот этого AMS сейчас подаёт филамент в печатающую головку. Катушка зафиксирована подающей трубкой и не может вращаться. Сначала выгрузите филамент.",
  662. startMode: "Время начала",
  663. modeNow: "Сейчас",
  664. modeDelay: "После задержки",
  665. modeAtTime: "По времени",
  666. schedule: "Запланировать",
  667. scheduledFor: "Сушка запланирована на {{time}}",
  668. scheduledAsap: "Сушка запланирована (ожидание принтера)",
  669. cancelScheduled: "Отменить запланированную сушку",
  670. scheduleFailed: "Не удалось запланировать сушку",
  671. retractFilament: "Извлеките филамент из выхода AMS, чтобы начать сушку",
  672. waitingAmsNotFound: "Ожидание обнаружения AMS",
  673. waitingOffline: "Ожидание подключения принтера",
  674. waitingPrinterBusy: "Ожидание освобождения принтера",
  675. waitingAlreadyDrying: "Ожидание завершения текущего цикла сушки",
  676. waitingInterrupted: "Прервано, возобновится, когда принтер освободится",
  677. scheduleFailedReason: "Не удалось выполнить запланированную сушку: {{reason}}",
  678. scheduleFailedUnknown: "Неизвестная ошибка",
  679. dismissFailed: "Скрыть",
  680. },
  681. amsBackup: {
  682. titleOn: "Резервный филамент AMS включён. Нажмите, чтобы отключить.",
  683. titleOff: "Резервный филамент AMS выключен. Нажмите, чтобы включить.",
  684. titleUnknown: "Состояние резервного филамента AMS недоступно для этого принтера.",
  685. toastEnabled: "Резервный филамент AMS включён",
  686. toastDisabled: "Резервный филамент AMS отключён",
  687. modalTitle: "Резервный филамент AMS",
  688. modalHelp: "Когда активный слот опустеет, принтер по очереди использует подходящие слоты с тем же профилем и цветом в указанном порядке.",
  689. modalNoSlots: "Филамент не загружен.",
  690. modalNoPairs: "Резервных пар нет: ни у двух слотов не совпадают профиль филамента и цвет.",
  691. extruderRightShort: "П",
  692. extruderLeftShort: "Л",
  693. stateOn: "Включено",
  694. stateOff: "Отключено",
  695. stateUnknown: "Не поддерживается этим принтером",
  696. },
  697. activeJobSlot: {
  698. title: "Этот слот используется как филамент {{n}} в текущей печати",
  699. ariaLabel: "Слот {{n}} текущей печати",
  700. },
  701. expectedSlot: {
  702. title: "Принтер ожидает филамент в этом слоте",
  703. ariaLabel: "Ожидаемый слот филамента {{n}}",
  704. label: "{{ams}} · Слот {{slot}}",
  705. external: "Внешняя катушка",
  706. },
  707. filaments: "Филаменты",
  708. externalSpool: {
  709. hide: "Скрыть внешнюю катушку",
  710. show: "Показать внешнюю катушку",
  711. },
  712. openCameraOverlay: "Открыть камеру поверх интерфейса",
  713. openCameraWindow: "Открыть камеру в новом окне",
  714. firmwareUpdateAvailable: "Доступно обновление прошивки: {{current}} → {{latest}}",
  715. firmwareUpToDate: "Прошивка {{version}} — актуальная версия",
  716. firmwareUpdateButton: "Обновить",
  717. plateDetection: {
  718. noPermission: "У вас нет прав на изменение настроек принтера",
  719. enabledClick: "Проверка пластины включена — нажмите, чтобы отключить",
  720. disabledClick: "Проверка пластины отключена — нажмите, чтобы включить",
  721. manageCalibration: "Управление калибровкой проверки пластины",
  722. calibrationRequired: "Требуется калибровка",
  723. calibrationInstructions: "Убедитесь, что печатная пластина <strong>полностью пустая</strong>, затем нажмите «Калибровать».",
  724. calibrationDescription: "При калибровке сохраняется эталонное изображение пустой пластины. При последующих проверках система сравнивает снимок с эталоном и обнаруживает посторонние объекты.",
  725. calibrationTip: "<strong>Совет:</strong> можно сохранить до 5 калибровок для разных пластин. При проверке система автоматически выберет наиболее подходящий эталон.",
  726. plateEmpty: "Пластина выглядит пустой",
  727. objectsDetected: "На пластине обнаружены объекты",
  728. confidence: "Уверенность",
  729. difference: "Различие",
  730. analysisPreview: "Предпросмотр анализа:",
  731. analysisLegend: "Зелёная рамка — область обнаружения, красная заливка — отличия от калибровочного снимка",
  732. savedReferences: "Сохранённые эталоны ({{count}}/{{max}})",
  733. deleteReference: "Удалить эталон",
  734. labelPlaceholder: "Метка...",
  735. clickToEdit: "{{label}} — нажмите для изменения",
  736. clickToAddLabel: "Нажмите, чтобы добавить метку",
  737. },
  738. speed: {
  739. title: "Скорость печати",
  740. silent: "Тихий (50%)",
  741. standard: "Стандартный (100%)",
  742. sport: "Спортивный (124%)",
  743. ludicrous: "Безумный (166%)",
  744. },
  745. airduct: {
  746. title: "Режим воздуховода",
  747. cooling: "Охлаждение",
  748. heating: "Нагрев",
  749. },
  750. noSdCard: "Нет SD-карты",
  751. door: {
  752. open: "Открыта",
  753. closed: "Закрыта",
  754. },
  755. fans: {
  756. partCooling: "Вентилятор обдува модели",
  757. auxiliary: "Дополнительный вентилятор",
  758. leftAuxiliary: "Левый дополнительный вентилятор",
  759. exhaust: "Вытяжка",
  760. chamber: "Вентилятор камеры",
  761. },
  762. clickToViewHmsErrors: "Нажмите, чтобы посмотреть ошибки HMS",
  763. aiDetection: {
  764. safe: "Безопасно",
  765. warning: "Предупреждение",
  766. failure: "Сбой",
  767. idle: "Ожидает",
  768. error: "Не проверяется",
  769. unknown: "Запуск",
  770. tooltipError: "Обнаружение сбоев с помощью ИИ не проверяет эту печать: {{reason}} - нажмите для подробностей",
  771. tooltipUnknown: "Обнаружение сбоев с помощью ИИ: ожидание первого результата - нажмите для подробностей",
  772. errorHint: "Эта печать не проверяется. Обнаружение возобновится автоматически после устранения проблемы, указанной ниже.",
  773. tooltip: "Обнаружение сбоев с помощью ИИ: {{status}} (оценка {{score}}) - нажмите для подробностей",
  774. tooltipIdle: "Обнаружение сбоев с помощью ИИ включено - мониторинг начнётся со следующей печати - нажмите для подробностей",
  775. modalTitle: "Обнаружение сбоев с помощью ИИ - {{name}}",
  776. currentStatus: "Статус",
  777. score: "Оценка",
  778. framesAnalyzed: "Проанализировано кадров",
  779. idleHint: "Сейчас ни одна печать не отслеживается. Мониторинг начнётся автоматически со следующей печати.",
  780. lastError: "Последняя ошибка",
  781. openSettings: "Открыть настройки",
  782. },
  783. estimatedCompletion: "Расчётное время завершения",
  784. plateNumber: "Пластина {{number}}",
  785. slotOptions: "Параметры слота",
  786. amsPopup: {
  787. friendlyName: "Имя AMS",
  788. friendlyNamePlaceholder: "Например, левый AMS",
  789. serialNumber: "Серийный номер",
  790. firmwareVersion: "Прошивка",
  791. save: "Сохранить",
  792. clear: "Очистить",
  793. noEditPermission: "У вас нет прав на переименование модулей AMS",
  794. },
  795. firmwareModal: {
  796. title: "Обновление прошивки",
  797. titleUpToDate: "Сведения о прошивке",
  798. currentVersion: "Текущая:",
  799. latestVersion: "Последняя:",
  800. releaseNotes: "Примечания к выпуску",
  801. checkingPrereqs: "Проверка условий...",
  802. sdCardReady: "SD-карта готова. Нажмите ниже, чтобы загрузить прошивку.",
  803. uploadedSuccess: "Прошивка загружена на SD-карту!",
  804. applyInstructions: "Чтобы установить обновление на принтер:",
  805. step1: "На экране принтера откройте <strong>Настройки</strong>",
  806. step2: "Перейдите в раздел <strong>Прошивка</strong>",
  807. step3: "Выберите <strong>Обновить с SD-карты</strong>",
  808. step4: "Обновление займёт 10–20 минут",
  809. done: "Готово",
  810. starting: "Запуск...",
  811. uploadFirmware: "Загрузить прошивку",
  812. uploadFailed: "Не удалось начать загрузку: {{error}}",
  813. uploadedToast: "Прошивка загружена. Запустите обновление с экрана принтера.",
  814. availableVersions: "Доступные версии",
  815. usable: "Доступна",
  816. unavailable: "Недоступна",
  817. installed: "Установлена",
  818. newerBadge: "новее",
  819. olderBadge: "старее",
  820. currentBadge: "текущая",
  821. },
  822. accessCodePlaceholder: "Оставьте пустым, чтобы сохранить текущий",
  823. roi: {
  824. title: "Область обнаружения (ROI)",
  825. xStart: "Начало X",
  826. yStart: "Начало Y",
  827. width: "Ширина",
  828. height: "Высота",
  829. instruction: "Настройте область обнаружения так, чтобы она охватывала печатную пластину. Зелёная рамка в предпросмотре показывает текущую область.",
  830. },
  831. developerModeWarning: "Режим LAN для разработчиков не включён на: {{names}}. Некоторые функции могут не работать.",
  832. howToEnable: "Как включить",
  833. incompatibleFile: "Файл подготовлен для {{slicedFor}}, а выбранный принтер — {{printerModel}}",
  834. dropNotPrintable: "Для печати подходят только файлы .gcode и .gcode.3mf",
  835. dropToPrint: "Перетащите файл для печати",
  836. dropToQueue: "Перетащите файл в очередь",
  837. },
  838. archives: {
  839. media: {
  840. title: 'Видео печати',
  841. download: 'Скачать видео печати',
  842. searching: 'Поиск видео на принтере…',
  843. searchFailed: 'Не удалось проверить видео на принтере.',
  844. none: 'Для этой печати не найдены таймлапсы или фрагменты IP-камеры.',
  845. attachedTimelapse: 'Прикреплённый таймлапс',
  846. printerFiles: 'Файлы, оставшиеся на принтере',
  847. downloadSelected: 'Скачать выбранное',
  848. printerMissing: 'Принтер больше не настроен',
  849. timelapseUnavailable: 'Не удалось прочитать каталог таймлапсов',
  850. ipcamUnavailable: 'Не удалось прочитать каталог IP-камеры',
  851. },
  852. title: "Архив печати",
  853. no3mfBanner: {
  854. title: "Некоторые последние задания сохранены без миниатюр",
  855. body: "Слайсер не оставил файл .gcode.3mf на SD-карте принтера, поэтому Bambuddy не смог получить миниатюру и метаданные слайсера. Обычно это происходит, если в слайсере отключена настройка «Сохранять отправленные файлы во внешнем хранилище» (вкладка «Устройство» в Bambu Studio / OrcaSlicer).",
  856. docsLink: "См. шаг 4 установки",
  857. docsLinkInternalStorage: 'Почему так происходит',
  858. titleInternalStorage: 'Некоторые недавние печати остались во внутренней памяти принтера',
  859. bodyInternalStorage: 'Bambu Studio сохранил нарезанный файл во внутренней памяти принтера, а не на карте, поэтому Bambuddy было нечего читать по FTP. На серии H2 и P2S кнопка «Печать» всегда делает так: выбор есть только в «Отправить», и там по умолчанию тоже «Кэш». Эти печати по-прежнему архивируются с именем и временем, только без миниатюры и метаданных слайсера. Чтобы архивы были полными, запускайте печать из Bambuddy или нарезайте в OrcaSlicer, либо в Bambu Studio используйте «Отправить» с «Внешним накопителем», а печать запускайте после этого. Во всех случаях в принтере нужна карта или флешка.',
  860. titleNoExternalStorage: 'Некоторые недавние печати не удалось архивировать — в принтере нет накопителя',
  861. bodyNoExternalStorage: 'Принтер не видит ни карты, ни флешки в слоте, поэтому нарезанному файлу некуда было попасть, а Bambuddy нечего читать. Вставьте накопитель, и следующая печать будет заархивирована полностью.',
  862. titleInternalHistory: 'Некоторые недавние печати запущены из файла, который уже был на принтере',
  863. bodyInternalHistory: 'Эти печати шли из собственной библиотеки принтера — повторная печать с его экрана, запуск из Handy или файл, отправленный раньше и напечатанный позже. Bambuddy читает файлы печати по FTP, а он отдаёт только карту или флешку, тогда как принтер держит эту библиотеку в области, куда FTP не достаёт, — читать 3MF было негде. Настройки слайсера тут ничего не меняют: для этих печатей ничего не отправлялось. Они по-прежнему архивируются с именем и временем, а в «Редактировании архива» израсходованный филамент можно указать вручную. Чтобы архив был полным, запускайте печать из Bambuddy или из своего слайсера.',
  864. titleFtpsCooloff: 'Некоторые недавние печати не удалось заархивировать — принтер отклонил файловое соединение',
  865. bodyFtpsCooloff: 'Bambuddy открыл порт передачи файлов принтера (FTPS 990), и принтер ответил чем-то, что не является TLS, поэтому прочитать с него ничего не удалось. Эти печати всё равно сохранены в архиве с названием и временем, только без миниатюры и метаданных слайсера. Это не настройка слайсера и не то, что вы меняли: те же модели и прошивки нормально работают на других установках, а затронутый принтер обычно позже начинает работать сам. После такой ошибки Bambuddy приостанавливает передачи к этому принтеру на пять минут и возвращается за файлом, когда пауза заканчивается, поэтому короткий эпизод исправляется сам; если карточка так и осталась пустой, значит отказ продлился дольше повторной попытки. Что именно это вызывает, пока неизвестно. Если повторяется, включите отладочное журналирование на странице Система и приложите пакет поддержки к своему сообщению.',
  866. dismissLabel: "Закрыть это уведомление",
  867. },
  868. searchPlaceholder: "Поиск в архиве...",
  869. filterByPrinter: "Фильтр по принтеру",
  870. filterByStatus: "Фильтр по состоянию",
  871. sortBy: "Сортировать по",
  872. sortNewest: "Сначала новые",
  873. sortOldest: "Сначала старые",
  874. sortName: "Названию",
  875. sortDuration: "Длительности",
  876. sortLargest: "Сначала большие",
  877. sortSmallest: "Сначала маленькие",
  878. sortSize: "Размеру",
  879. noArchives: "Архивы не найдены",
  880. noArchivesSearch: "По вашему запросу ничего не найдено",
  881. originalPrintNotVisible: "Исходная печать не отображается — попробуйте сбросить фильтры",
  882. noArchivesYet: "Архив пока пуст",
  883. prints: "печатей",
  884. pagination: {
  885. showing: "Показано",
  886. to: "–",
  887. of: "из",
  888. show: "Показывать",
  889. page: "Страница",
  890. all: "Все",
  891. },
  892. loadingArchives: "Загрузка архива...",
  893. releaseToUpload: "Отпустите файлы для загрузки",
  894. showAll: "Показать все",
  895. showFavoritesOnly: "Только избранное",
  896. gridView: "Плитка",
  897. listView: "Список",
  898. calendarView: "Календарь",
  899. logView: "Журнал печати",
  900. manageTags: "Управление тегами",
  901. showFailedPrints: "Показывать неудачные печати",
  902. hideFailedPrints: "Скрывать неудачные печати",
  903. hideDuplicates: "Скрывать дубликаты",
  904. viewOriginalPrint: "Открыть исходную печать №{{id}}",
  905. printTime: "Время печати",
  906. filamentUsed: "Израсходовано филамента",
  907. cost: "Стоимость",
  908. preview: "Предпросмотр",
  909. deleteArchive: "Удалить запись из архива",
  910. deleteConfirm: "Удалить эту запись из архива?",
  911. favorite: "В избранное",
  912. unfavorite: "Удалить из избранного",
  913. viewDetails: "Подробнее",
  914. status: {
  915. completed: "Завершено",
  916. failed: "Ошибка",
  917. stopped: "Остановлено",
  918. },
  919. toast: {
  920. source3mfAttached: "Исходный 3MF прикреплён: {{filename}}",
  921. failedUploadSource3mf: "Не удалось загрузить исходный 3MF",
  922. source3mfRemoved: "Исходный 3MF удалён",
  923. failedRemoveSource3mf: "Не удалось удалить исходный 3MF",
  924. f3dAttached: "F3D прикреплён: {{filename}}",
  925. failedUploadF3d: "Не удалось загрузить F3D",
  926. f3dRemoved: "F3D удалён",
  927. failedRemoveF3d: "Не удалось удалить F3D",
  928. timelapseAttached: "Таймлапс прикреплён: {{filename}}",
  929. timelapseAlreadyAttached: "Таймлапс уже прикреплён",
  930. noMatchingTimelapse: "Подходящий таймлапс не найден",
  931. failedScanTimelapse: "Не удалось найти таймлапс",
  932. failedAttachTimelapse: "Не удалось прикрепить таймлапс",
  933. timelapseRemoved: "Таймлапс удалён",
  934. failedRemoveTimelapse: "Не удалось удалить таймлапс",
  935. timelapseUploaded: "Таймлапс загружен: {{filename}}",
  936. failedUploadTimelapse: "Не удалось загрузить таймлапс",
  937. archiveDeleted: "Запись удалена из архива",
  938. failedDeleteArchive: "Не удалось удалить запись из архива",
  939. addedToFavorites: "Добавлено в избранное",
  940. removedFromFavorites: "Удалено из избранного",
  941. projectUpdated: "Проект обновлён",
  942. failedUpdateProject: "Не удалось обновить проект",
  943. linkCopied: "Ссылка скопирована",
  944. failedCopyLink: "Не удалось скопировать ссылку",
  945. photoDeleted: "Фотография удалена",
  946. failedDeletePhoto: "Не удалось удалить фотографию",
  947. failedDeleteArchives: "Не удалось удалить записи из архива",
  948. failedUpdateFavorites: "Не удалось обновить избранное",
  949. exportDownloaded: "Экспортированный файл скачан",
  950. exportFailed: "Ошибка экспорта",
  951. },
  952. menu: {
  953. print: "Печать",
  954. openInBambuStudio: "Открыть в слайсере",
  955. slice: "Нарезать",
  956. externalLink: "Внешняя ссылка",
  957. viewOnMakerWorld: "Открыть на MakerWorld",
  958. preview3d: "3D-просмотр",
  959. viewTimelapse: "Посмотреть таймлапс",
  960. scanForTimelapse: "Найти таймлапс",
  961. uploadTimelapse: "Загрузить таймлапс",
  962. removeTimelapse: "Удалить таймлапс",
  963. downloadSource3mf: "Скачать исходный 3MF",
  964. uploadSource3mf: "Загрузить исходный 3MF",
  965. replaceSource3mf: "Заменить исходный 3MF",
  966. removeSource3mf: "Удалить исходный 3MF",
  967. uploadF3d: "Загрузить F3D",
  968. replaceF3d: "Заменить F3D",
  969. downloadF3d: "Скачать F3D",
  970. removeF3d: "Удалить F3D",
  971. download: "Скачать",
  972. copyDownloadLink: "Скопировать ссылку для скачивания",
  973. qrCode: "QR-код",
  974. viewPhotos: "Посмотреть фотографии",
  975. viewPhotosCount: "Фотографии ({{count}})",
  976. projectPage: "Страница проекта",
  977. addToFavorites: "Добавить в избранное",
  978. removeFromFavorites: "Удалить из избранного",
  979. edit: "Изменить",
  980. printLog: "Журнал печати",
  981. goToProject: "Открыть проект: {{name}}",
  982. addToProject: "Добавить в проект",
  983. removeFromProject: "Удалить из проекта",
  984. loading: "Загрузка...",
  985. noProjectsAvailable: "Нет доступных проектов",
  986. searchProjects: "Поиск проектов…",
  987. select: "Выбрать",
  988. deselect: "Снять выделение",
  989. delete: "Удалить",
  990. },
  991. permission: {
  992. noReprint: "У вас нет разрешения на повторную печать этой записи",
  993. noAddToQueue: "У вас нет разрешения на добавление в очередь",
  994. noUpdateArchives: "У вас нет разрешения на изменение архива",
  995. noUploadFiles: "У вас нет разрешения на загрузку файлов",
  996. noDownload: "У вас нет разрешения на скачивание файлов из архива",
  997. noCopyLink: "У вас нет разрешения на копирование ссылок для скачивания",
  998. noDelete: "У вас нет разрешения на удаление этой записи",
  999. noEdit: "У вас нет разрешения на изменение этой записи",
  1000. noCreate: "У вас нет разрешения на создание записей в архиве",
  1001. },
  1002. platePicker: {
  1003. title: "Выберите пластину для предпросмотра",
  1004. hint: "В этой записи несколько пластин. Выберите пластину, которую нужно открыть в просмотрщике G-code.",
  1005. plateLabel: "Пластина {{index}}",
  1006. objectCount: "{{count}} объект",
  1007. objectCount_plural: "{{count}} объектов",
  1008. noGcode: "В этой записи нет нарезанного G-code для предпросмотра. Сначала откройте файл в Bambu Studio и выполните нарезку.",
  1009. },
  1010. card: {
  1011. previousPlate: "Предыдущая пластина",
  1012. nextPlate: "Следующая пластина",
  1013. plateNumber: "Пластина {{index}}",
  1014. moreOptions: "Щёлкните правой кнопкой для дополнительных действий",
  1015. addToFavorites: "Добавить в избранное",
  1016. removeFromFavorites: "Удалить из избранного",
  1017. cancelled: "отменено",
  1018. failed: "ошибка",
  1019. duplicate: "дубликат",
  1020. duplicateTitle: "Эта модель уже печаталась",
  1021. openSource3mf: "Открыть исходный 3MF в Bambu Studio (щёлкните правой кнопкой для дополнительных действий)",
  1022. downloadF3d: "Скачать файл проекта Fusion 360",
  1023. viewTimelapse: "Посмотреть таймлапс",
  1024. viewPhoto: "Посмотреть фотографию",
  1025. viewPhotos: "Посмотреть фотографии: {{count}}",
  1026. openFolder: "Открыть папку: {{name}}",
  1027. slicedFile: "Нарезанный файл — готов к печати",
  1028. sourceFile: "Только исходный файл — сопоставление AMS недоступно",
  1029. gcode: "G-CODE",
  1030. source: "ИСХОДНИК",
  1031. project: "Проект: {{name}}",
  1032. runsBadge: "Печатей: {{count}}",
  1033. runsBadgeTitle: "Всего печатей: {{count}}, успешных: {{successful}}, неудачных: {{failed}}. Нажмите, чтобы открыть полный журнал.",
  1034. estimated: "Расчётное время: {{time}}",
  1035. actual: "Фактическое время: {{time}}",
  1036. accuracy: "Точность оценки: {{percent}}%",
  1037. filament: "{{weight}} г",
  1038. layer: "{{count}} слой",
  1039. layers: "{{count}} слоёв",
  1040. object: "{{count}} объект",
  1041. objects: "{{count}} объектов",
  1042. slicedFor: "Нарезано для {{model}}",
  1043. uploadedBy: "Загрузил",
  1044. noPermissionReprint: "У вас нет разрешения на повторную печать",
  1045. noFileForReprint: "Файл 3MF недоступен: при сохранении задания не удалось скачать его с принтера",
  1046. slicerAmsMapping: "Маппинг AMS сохранён ({{printer}})",
  1047. slicerAmsMappingTooltip: "Выбор ячеек AMS, сделанный слайсером, сохранён для принтера {{printer}}. Номера ячеек имеют смысл только на нём, поэтому повторная печать использует их только при отправке снова на {{printer}}.",
  1048. noPermissionEdit: "У вас нет разрешения на изменение архива",
  1049. noPermissionDelete: "У вас нет разрешения на удаление записей из архива",
  1050. openInBambuStudio: "Открыть в слайсере",
  1051. openInBambuStudioToSlice: "Открыть в слайсере для нарезки",
  1052. slice: "Нарезать",
  1053. externalLink: "Внешняя ссылка",
  1054. makerWorld: "MakerWorld: {{designer}}",
  1055. viewProject: "Открыть проект",
  1056. noExternalLink: "Внешняя ссылка не указана",
  1057. preview3d: "3D-просмотр",
  1058. download: "Скачать",
  1059. edit: "Изменить",
  1060. delete: "Удалить",
  1061. },
  1062. runLog: {
  1063. title: "Журнал печати",
  1064. modalTitle: "Журнал печати — {{name}}",
  1065. modalTitleFallback: "эта запись",
  1066. empty: "Для этой записи пока нет событий печати.",
  1067. col: {
  1068. date: "Дата",
  1069. status: "Состояние",
  1070. duration: "Длительность",
  1071. filament: "Филамент",
  1072. cost: "Стоимость",
  1073. },
  1074. status: {
  1075. completed: "Завершено",
  1076. failed: "Ошибка",
  1077. cancelled: "Отменено",
  1078. stopped: "Остановлено",
  1079. skipped: "Пропущено",
  1080. printing: "Печать",
  1081. },
  1082. },
  1083. modal: {
  1084. deleteArchive: "Удаление записи из архива",
  1085. deleteConfirm: "Удалить «{{name}}»? Это действие нельзя отменить.",
  1086. deleteButton: "Удалить",
  1087. deletePurgeStats: "Также исключить эту печать из краткой статистики: филамент, время, стоимость и энергия",
  1088. deleteQueueItemsWarning: "Также будут удалены связанные элементы очереди: {{count}}.",
  1089. deleteBlockedByPrinting: "Удаление невозможно: сейчас печатаются связанные элементы очереди ({{count}}). Сначала остановите печать.",
  1090. removeSource3mf: "Удаление исходного 3MF",
  1091. removeSource3mfConfirm: "Удалить исходный файл 3MF из «{{name}}»? Исходный проект слайсера будет удалён.",
  1092. removeButton: "Удалить",
  1093. removeF3d: "Удаление F3D",
  1094. removeF3dConfirm: "Удалить файл проекта Fusion 360 из «{{name}}»?",
  1095. removeTimelapse: "Удаление таймлапса",
  1096. removeTimelapseConfirm: "Удалить видео таймлапса из «{{name}}»?",
  1097. timelapse: "{{name}} — таймлапс",
  1098. selectTimelapse: "Выбор таймлапса",
  1099. selectTimelapseDesc: "Автоматически найти совпадение не удалось. Выберите таймлапс для этой печати:",
  1100. deleteArchives: "Удаление записей из архива",
  1101. deleteArchivesConfirm: "Удалить записи из архива ({{count}})? Это действие нельзя отменить.",
  1102. deleteCount: "Удалить: {{count}}",
  1103. },
  1104. page: {
  1105. title: "Архив",
  1106. printsCount: "Показано {{filtered}} из {{total}} печатей",
  1107. dropFilesHere: "Перетащите сюда файлы .3mf",
  1108. releaseToUpload: "Отпустите файлы для загрузки",
  1109. only3mfSupported: "Поддерживаются только файлы .3mf",
  1110. close: "Закрыть",
  1111. selected: "Выбрано: {{count}}",
  1112. selectAll: "Выбрать все",
  1113. tags: "Теги",
  1114. project: "Проект",
  1115. favorite: "Избранное",
  1116. delete: "Удалить",
  1117. toggledFavorites: "Избранное изменено для записей: {{count}}",
  1118. failedUpdateFavorites: "Не удалось обновить избранное",
  1119. archivesDeleted: "Удалено записей: {{count}}",
  1120. failedDeleteArchives: "Не удалось удалить записи из архива",
  1121. photoDeleted: "Фотография удалена",
  1122. failedDeletePhoto: "Не удалось удалить фотографию",
  1123. },
  1124. list: {
  1125. name: "Название",
  1126. printer: "Принтер",
  1127. date: "Дата",
  1128. size: "Размер",
  1129. actions: "Действия",
  1130. hasTimelapse: "Есть таймлапс",
  1131. },
  1132. log: {
  1133. date: "Дата",
  1134. printName: "Название печати",
  1135. printer: "Принтер",
  1136. user: "Пользователь",
  1137. status: "Состояние",
  1138. duration: "Длительность",
  1139. filament: "Филамент",
  1140. filamentUsed: 'Израсходовано филамента',
  1141. cost: 'Стоимость',
  1142. energy: 'Энергия',
  1143. energyCost: 'Стоимость энергии',
  1144. completedAt: 'Завершено',
  1145. columns: 'Столбцы',
  1146. sortBy: 'Сортировать по: {{column}}',
  1147. allPrinters: "Все принтеры",
  1148. allUsers: "Все пользователи",
  1149. allStatuses: "Все состояния",
  1150. cancelled: "Отменено",
  1151. skipped: "Пропущено",
  1152. dateFrom: "С",
  1153. dateTo: "По",
  1154. noEntries: "Записи журнала не найдены",
  1155. showing: "Показано {{count}} из {{total}} записей",
  1156. rowsPerPage: "Строк",
  1157. page: "Страница",
  1158. prev: "Назад",
  1159. next: "Далее",
  1160. clearLog: "Очистить журнал",
  1161. clearLogTitle: "Очистка журнала печати",
  1162. clearLogConfirm: "Все записи журнала печати будут удалены без возможности восстановления. Архив и очередь не изменятся. Продолжить?",
  1163. clearLogButton: "Очистить всё",
  1164. cleared: "Удалено записей журнала: {{count}}",
  1165. clearFailed: "Не удалось очистить журнал печати",
  1166. deleteEntryTitle: "Удаление записи журнала",
  1167. deleteEntryConfirm: "Запись будет удалена из журнала, а её вклад в расход филамента, время и стоимость исчезнет из краткой статистики. Связанная запись архива, если она существует, не изменится. Это действие нельзя отменить.",
  1168. entryDeleted: "Запись журнала удалена",
  1169. entryDeleteFailed: "Не удалось удалить запись журнала",
  1170. editEntryTitle: "Изменение записи журнала",
  1171. editEntryDescription: "Укажите результат этой печати. Виджет анализа отказов группирует данные по этим значениям, поэтому изменения сразу отразятся в статистике.",
  1172. entryUpdated: "Запись журнала обновлена",
  1173. entryUpdateFailed: "Не удалось обновить запись журнала",
  1174. statuses: {
  1175. completed: "Завершено",
  1176. failed: "Ошибка",
  1177. stopped: "Остановлено",
  1178. cancelled: "Отменено",
  1179. skipped: "Пропущено",
  1180. },
  1181. },
  1182. },
  1183. dispatchToast: {
  1184. untitled: "Задание печати",
  1185. startingPrints: "Запуск печати",
  1186. progressSummary: "Завершено: {{complete}}/{{total}} • Обрабатывается: {{processing}}",
  1187. expandDetails: "Показать подробности отправки",
  1188. collapseDetails: "Скрыть подробности отправки",
  1189. awaitingPrinter: "Ожидание принтера…",
  1190. status: {
  1191. processing: "Обработка",
  1192. completed: "Завершено",
  1193. failed: "Ошибка",
  1194. },
  1195. failed: {
  1196. generic: "Не удалось отправить задание",
  1197. upload_failed: "Не удалось загрузить файл на принтер",
  1198. start_command_failed: "Принтер отклонил команду запуска",
  1199. },
  1200. dismiss: "Закрыть",
  1201. },
  1202. pipelineRuns: {
  1203. title: "Запуски конвейеров",
  1204. loading: "Загрузка…",
  1205. empty: "Конвейеры ещё не запускались.",
  1206. filter: {
  1207. pipeline: "Конвейер",
  1208. status: "Состояние",
  1209. target: "Назначение",
  1210. all: "Все",
  1211. allPipelines: "Все конвейеры",
  1212. allStatus: "Все состояния",
  1213. allTargets: "Все назначения",
  1214. clear: "Сбросить фильтры",
  1215. noMatches: "Нет запусков, соответствующих выбранным фильтрам.",
  1216. },
  1217. totalCount_one: "{{n}} запуск",
  1218. totalCount_other: "{{n}} запусков",
  1219. copies: "Копий: {{n}}",
  1220. failedCount: "Ошибок: {{n}}",
  1221. copyN: "Копия {{n}}",
  1222. retryFailed: "Повторить неудачные",
  1223. retryOf: "повтор запуска №{{n}}",
  1224. pagination: "{{start}}–{{end}} из {{total}}",
  1225. cancelledByUser: "Отменено пользователем",
  1226. toast: {
  1227. cancelled: "Запуск отменён",
  1228. cancelFailed: "Не удалось отменить запуск",
  1229. retryStarted: "Повторный запуск начат",
  1230. retryFailed: "Повторный запуск не удался",
  1231. cleared: "Удалено запусков: {{n}}",
  1232. clearFailed: "Не удалось очистить журнал",
  1233. },
  1234. clearLog: "Очистить журнал",
  1235. clearConfirmTitle: "Очистить журнал?",
  1236. clearConfirmBody: "Удалить все завершённые, неудачные, отменённые и частично неудачные запуски конвейеров? Выполняющиеся запуски сохранятся. Это действие нельзя отменить.",
  1237. clearConfirmAction: "Очистить",
  1238. jobStatus: {
  1239. pending: "ожидание",
  1240. awaiting_printer: "ожидание принтера",
  1241. queued: "в очереди",
  1242. printing: "печать",
  1243. completed: "завершено",
  1244. failed: "ошибка",
  1245. cancelled: "отменено",
  1246. },
  1247. },
  1248. queue: {
  1249. title: "Очередь печати",
  1250. subtitle: "Планирование и управление заданиями печати",
  1251. filamentShort: {
  1252. rowBadge: "Для назначенной катушки недостаточно филамента",
  1253. rowTooltip: "Планировщик отметил это задание. Нажмите «Запустить», чтобы увидеть нехватку по каждому слоту и решить, печатать ли всё равно.",
  1254. confirmTitle: "Недостаточно филамента",
  1255. confirmIntro: "Назначенной катушки недостаточно как минимум для одного слота. Всё равно запустить печать?",
  1256. lineItem: "Слот {{slot}}: требуется {{required}} г, осталось {{remaining}} г",
  1257. unknown: "неизвестно",
  1258. printAnyway: "Всё равно печатать",
  1259. },
  1260. slicerAmsMapping: {
  1261. rowBadge: "Ячейки AMS сохранены для этого принтера",
  1262. rowTooltip: "У этого архива сохранены точные ячейки AMS, выбранные слайсером, — для принтера, на который нацелено это задание. Повторная печать на нём может использовать те же катушки вместо повторного подбора по типу и цвету.",
  1263. },
  1264. editQueueItem: "Изменить задание в очереди",
  1265. selectAllPlates: "Выбрать все пластины ({{count}})",
  1266. deselectAll: "Снять выделение",
  1267. printQueued: "Задание добавлено в очередь",
  1268. printQueuedWillStartWhenIdle: "Запустится, когда принтер освободится",
  1269. itemsQueued: "Добавлено в очередь: {{count}}",
  1270. sending: "Отправка...",
  1271. sendingProgress: "Отправка {{current}} из {{total}}...",
  1272. adding: "Добавление...",
  1273. addingProgress: "Добавление {{current}} из {{total}}...",
  1274. savingProgress: "Сохранение {{current}} из {{total}}...",
  1275. clearQueue: "Очистить очередь",
  1276. clearHistory: "Очистить историю",
  1277. emptyQueue: "Очередь пуста",
  1278. position: "Позиция",
  1279. scheduledTime: "Запланированное время",
  1280. moveUp: "Переместить вверх",
  1281. moveDown: "Переместить вниз",
  1282. startNow: "Запустить сейчас",
  1283. printingInProgress: "Идёт печать...",
  1284. viewArchive: "Открыть архив",
  1285. viewInFileManager: "Открыть в файловом менеджере",
  1286. itemCount: "{{count}} задание",
  1287. itemCount_plural: "{{count}} заданий",
  1288. dragToReorder: "Перетащите для изменения порядка (только задания «как можно скорее»)",
  1289. reorderHint: "Позиция влияет только на задания «как можно скорее». Запланированные задания запускаются в указанное время.",
  1290. sjf: {
  1291. label: "SJF",
  1292. tooltip: "Shortest Job First — планировщик отдаёт приоритет более коротким заданиям",
  1293. },
  1294. addedBy: "Добавил: {{name}}",
  1295. nextInQueue: "Следующее в очереди",
  1296. clearPlateSuccess: "Пластина очищена — можно запускать следующую печать",
  1297. plateNumber: "Пластина {{index}}",
  1298. quantity: "Количество",
  1299. quantityHint: "Будет создано заданий: {{count}}",
  1300. plateQuantityLabel: "Повторы: {{plate}}",
  1301. plateQuantityTotal_one: "Всего запусков: {{count}}",
  1302. plateQuantityTotal_other: "Всего запусков: {{count}}",
  1303. batchOrders: {
  1304. title: "Пакетные заказы",
  1305. emptyTitle: "Пакетных заказов нет",
  1306. emptyDescription: "Поставьте в очередь файл с несколькими столами или несколько копий одного стола — заказ появится здесь вместе с прогрессом.",
  1307. filter: {
  1308. active: "Активные",
  1309. completed: "Завершённые",
  1310. cancelled: "Отменённые",
  1311. all: "Все",
  1312. },
  1313. status: {
  1314. active: "Активен",
  1315. completed: "Завершён",
  1316. cancelled: "Отменён",
  1317. },
  1318. noTargets: "Только группировка",
  1319. noTargetsHint: "Создан до появления целевых количеств по столам, поэтому отслеживает поставленные в очередь запуски, а не цель.",
  1320. dispatchRemaining: "Поставить в очередь: {{count}}",
  1321. dispatchPlate: "Поставить остаток",
  1322. strandedPlate: "Нет запуска для копирования настроек",
  1323. strandedNotice: "Не удаётся поставить в очередь {{runs}} из {{owed}} ещё не выполненных запусков: для этой пластины не осталось запуска в очереди или завершённого, из которого можно скопировать настройки. Поставьте пластину в очередь один раз из файла или отмените заказ.",
  1324. dispatched: "Оставшиеся запуски для «{{name}}» поставлены в очередь",
  1325. plateProgress: "Готово {{completed}} из {{target}}",
  1326. remaining: "Осталось: {{count}}",
  1327. failed: "Неудачных: {{count}}",
  1328. printing: "Печатается: {{count}}",
  1329. wholeFile: "Весь файл",
  1330. due: "Срок: {{date}}",
  1331. costSoFar: "{{amount}} потрачено",
  1332. costRemaining: "(ещё {{amount}})",
  1333. },
  1334. activeBatches: "Активные партии",
  1335. batchProgress: "Выполнено {{completed}} из {{total}}",
  1336. cancelBatch: "Отменить оставшиеся",
  1337. batchCancelled: "Оставшиеся задания партии отменены",
  1338. cancelBatchConfirmTitle: "Отменить партию",
  1339. cancelBatchConfirmMessage: "Закрыть этот заказ? Запуски, ещё стоящие в очереди, будут отменены, и заказ перестанет требовать то, что не произведено.",
  1340. batch: {
  1341. defaultName: "Партия",
  1342. label: "{{count}} задание",
  1343. label_plural: "{{count}} заданий",
  1344. pendingCount: "Ожидает: {{count}}",
  1345. pendingCount_plural: "Ожидают: {{count}}",
  1346. expand: "Развернуть партию",
  1347. collapse: "Свернуть партию",
  1348. groupAsBatch: "Объединить в партию…",
  1349. groupAsBatchDescription: "Объединить выбранные задания ({{count}}) в одну сворачиваемую партию.",
  1350. nameLabel: "Название партии",
  1351. namePlaceholder: "Например: подарки к пятнице",
  1352. create: "Создать партию",
  1353. ungroup: "Разгруппировать",
  1354. ungroupConfirmTitle: "Разгруппировать партию?",
  1355. ungroupConfirmMessage: "Задания останутся в очереди, но больше не будут объединены в одну группу.",
  1356. dragGroup: "Перетащить группу",
  1357. },
  1358. tabs: {
  1359. batches: "Партии",
  1360. queue: "Очередь",
  1361. history: "История",
  1362. timeline: "Временная шкала",
  1363. pipelines: "Конвейеры",
  1364. },
  1365. layout: {
  1366. flatList: "Список",
  1367. byPrinter: "По принтерам",
  1368. groupByPrinter: "Группировать по принтерам",
  1369. },
  1370. history: {
  1371. emptyTitle: "История пока пуста",
  1372. emptyDescription: "Здесь появятся завершённые, отменённые и неудачные задания.",
  1373. showMore: "Показать ещё",
  1374. showingCount: "Показано {{shown}} из {{total}}",
  1375. },
  1376. dragGhost: {
  1377. multiCount: "{{count}} заданий",
  1378. batch: "{{name}} ({{count}} копия)",
  1379. batch_plural: "{{name}} ({{count}} копий)",
  1380. },
  1381. sections: {
  1382. currentlyPrinting: "Сейчас печатается",
  1383. queued: "В очереди",
  1384. history: "История",
  1385. },
  1386. status: {
  1387. pending: "Ожидает",
  1388. waiting: "Ожидание",
  1389. printing: "Печать",
  1390. paused: "Приостановлено",
  1391. completed: "Завершено",
  1392. failed: "Ошибка",
  1393. skipped: "Пропущено",
  1394. cancelled: "Отменено",
  1395. },
  1396. summary: {
  1397. printing: "Печатается",
  1398. queued: "В очереди",
  1399. totalTime: "Общее время очереди",
  1400. totalWeight: "Общий вес очереди",
  1401. history: "История",
  1402. },
  1403. filter: {
  1404. allPrinters: "Все принтеры",
  1405. unassigned: "Не назначено",
  1406. allStatus: "Все состояния",
  1407. allLocations: "Все расположения",
  1408. any: "Любое",
  1409. },
  1410. sort: {
  1411. byPosition: "По позиции",
  1412. byName: "По названию",
  1413. byPrinter: "По принтеру",
  1414. bySchedule: "По времени запуска",
  1415. byDate: "По дате",
  1416. ascendingOldest: "По возрастанию (сначала старые)",
  1417. descendingNewest: "По убыванию (сначала новые)",
  1418. },
  1419. badges: {
  1420. staged: "Подготовлено",
  1421. requiresPrevious: "Требуется успешное предыдущее задание",
  1422. autoPowerOff: "Автоотключение питания",
  1423. gcodeInjection: "G-code",
  1424. },
  1425. empty: {
  1426. title: "Нет запланированных заданий",
  1427. description: "Запланируйте печать на странице архива через пункт «Запланировать» в контекстном меню либо перетащите сюда файлы.",
  1428. },
  1429. time: {
  1430. etaIfStartedNow: "Время завершения, если запустить это задание сейчас",
  1431. whenFree: "Когда принтер освободится",
  1432. overdue: "Просрочено",
  1433. now: "Сейчас",
  1434. lessThanMinute: "Меньше чем через минуту",
  1435. inMinutes: "Через {{count}} мин",
  1436. inHours: "Через {{count}} ч",
  1437. },
  1438. actions: {
  1439. startPrint: "Запустить печать",
  1440. stopPrint: "Остановить печать",
  1441. requeue: "Вернуть в очередь",
  1442. },
  1443. bulkEdit: {
  1444. title: "Изменить {{count}} задание",
  1445. title_plural: "Изменить задания: {{count}}",
  1446. description: "К выбранным заданиям будут применены только изменённые параметры.",
  1447. printer: "Принтер",
  1448. noChange: "— Без изменений —",
  1449. queueOptions: "Параметры очереди",
  1450. staged: "Подготовлено (ручной запуск)",
  1451. autoPowerOff: "Отключить питание после печати",
  1452. requirePrevious: "Требовать успешного завершения предыдущего задания",
  1453. printOptions: "Параметры печати",
  1454. bedLevelling: "Калибровка стола",
  1455. flowCalibration: "Калибровка потока",
  1456. vibrationCalibration: "Калибровка вибраций",
  1457. layerInspection: "Проверка первого слоя",
  1458. timelapse: "Таймлапс",
  1459. useAms: "Использовать AMS",
  1460. nozzleOffsetCali: "Калибровка смещения сопел",
  1461. applyChanges: "Применить изменения",
  1462. selectAll: "Выбрать все",
  1463. deselectAll: "Снять выделение",
  1464. selected: "Выбрано: {{count}}",
  1465. editSelected: "Изменить выбранные",
  1466. cancelSelected: "Отменить выбранные",
  1467. },
  1468. confirm: {
  1469. cancelTitle: "Отменить запланированную печать",
  1470. cancelMessage: "Отменить задание «{{name}}»?",
  1471. stopTitle: "Остановить печать",
  1472. stopMessage: "Остановить текущую печать «{{name}}»? Задание на принтере будет отменено.",
  1473. removeTitle: "Удалить из истории",
  1474. removeMessage: "Удалить «{{name}}» из истории очереди?",
  1475. clearHistoryTitle: "Очистить историю",
  1476. clearHistoryMessage: "Удалить все записи из истории ({{count}})?",
  1477. cancelButton: "Отменить печать",
  1478. stopButton: "Остановить печать",
  1479. thisPrint: "эту печать",
  1480. thisItem: "это задание",
  1481. },
  1482. toast: {
  1483. cancelled: "Задание отменено",
  1484. cancelFailed: "Не удалось отменить задание",
  1485. removed: "Задание удалено",
  1486. keptForOrder: "Отменено, а не удалено: только из этого запуска заказ может снова поставить эту пластину в очередь",
  1487. historyKeptForOrders: "Сохранено {{kept}}, они ещё нужны заказам.",
  1488. removeFailed: "Не удалось удалить задание",
  1489. stopped: "Печать остановлена",
  1490. stopFailed: "Не удалось остановить печать",
  1491. released: "Задание передано в очередь",
  1492. startFailed: "Не удалось запустить печать",
  1493. reorderFailed: "Не удалось изменить порядок очереди",
  1494. historyCleared: "Удалено записей истории: {{count}}",
  1495. clearHistoryFailed: "Не удалось очистить историю",
  1496. updateFailed: "Не удалось обновить задания",
  1497. bulkCancelled: "Отменено заданий: {{count}}",
  1498. bulkCancelFailed: "Не удалось отменить задания",
  1499. batchCreated: "Партия «{{name}}» создана",
  1500. batchCreateFailed: "Не удалось создать партию",
  1501. batchUngrouped: "Разгруппировано заданий: {{count}}",
  1502. batchUngroupFailed: "Не удалось разгруппировать партию",
  1503. resumedAfterFailure: "Очередь возобновлена — восстановлено заданий: {{restored}}",
  1504. resumeAfterFailureFailed: "Не удалось возобновить очередь",
  1505. },
  1506. resumeAfterFailure: {
  1507. banner: "Очередь принтера {{printer}} заблокирована из-за ошибки предыдущей печати — пропущено заданий: {{count}}",
  1508. bannerHint: "Устраните проблему с принтером, затем возобновите очередь, чтобы вернуть пропущенные задания и снять блокировку.",
  1509. button: "Возобновить после ошибки",
  1510. confirmTitle: "Возобновить очередь после ошибки?",
  1511. confirmMessage: "Вернуть пропущенные задания ({{count}}) для принтера {{printer}} в состояние ожидания и снять блокировку. Перед продолжением убедитесь, что принтер готов.",
  1512. },
  1513. timeline: {
  1514. listView: "Список",
  1515. timelineView: "Временная шкала",
  1516. unassigned: "Не назначено",
  1517. noData: "На этот день печать не запланирована",
  1518. nothingCommitted: "В этом интервале нет заданий с фиксированным временем. Подготовленные и ожидающие задания, а также задания «как можно скорее» на свободных принтерах не показываются — задайте время запуска или выпустите подготовленное задание в очередь.",
  1519. allDoneBy: "Расчётное завершение всех заданий: {{time}}",
  1520. staged: "Подготовлено",
  1521. filterAll: "Показать все",
  1522. filterPrinting: "Печатается",
  1523. filterQueued: "В очереди",
  1524. time: {
  1525. anyMoment: "в любой момент",
  1526. minutesLeft: "осталось {{minutes}} мин",
  1527. hoursLeft: "осталось {{hours}} ч",
  1528. hoursMinutesLeft: "осталось {{hours}} ч {{minutes}} мин",
  1529. },
  1530. day: {
  1531. previous: "Предыдущий день",
  1532. next: "Следующий день",
  1533. today: "Сегодня",
  1534. },
  1535. window: {
  1536. back12h: "Назад на 12 часов",
  1537. forward12h: "Вперёд на 12 часов",
  1538. now: "Сейчас",
  1539. },
  1540. printerColumnHeader: "Принтер",
  1541. },
  1542. permissions: {
  1543. noStopPrint: "У вас нет разрешения останавливать печать",
  1544. noStartPrint: "У вас нет разрешения запускать печать",
  1545. noEdit: "У вас нет разрешения изменять это задание",
  1546. noCancel: "У вас нет разрешения отменять это задание",
  1547. noRequeue: "У вас нет разрешения возвращать задания в очередь",
  1548. noRemove: "У вас нет разрешения удалять это задание",
  1549. noClearHistory: "У вас нет разрешения очищать историю",
  1550. noEditItems: "У вас нет разрешения изменять задания очереди",
  1551. noCancelItems: "У вас нет разрешения отменять задания очереди",
  1552. },
  1553. },
  1554. stats: {
  1555. title: "Статистика",
  1556. subtitle: "Перетаскивайте виджеты для изменения порядка. Нажмите значок глаза, чтобы скрыть виджет.",
  1557. overview: "Обзор",
  1558. totalPrints: "Всего печатей",
  1559. successRate: "Успешность",
  1560. totalPrintTime: "Общее время печати",
  1561. printTime: "Время печати",
  1562. totalFilament: "Всего использовано филамента",
  1563. filamentUsed: "Использовано филамента",
  1564. filamentCost: "Стоимость филамента",
  1565. totalCost: "Общая стоимость",
  1566. energyUsed: "Потреблено энергии",
  1567. energyCost: "Стоимость энергии",
  1568. energyWarmingUpTooltip: "Учёт энергии ещё накапливает почасовые снимки. Итоги за выбранный период станут точными, когда появится хотя бы один снимок до начала этого периода. Первые значения могут быть занижены.",
  1569. averagePrintTime: "Среднее время печати",
  1570. printsPerDay: "Печатей в день",
  1571. byPrinter: "По принтерам",
  1572. printsByPrinter: "Печати по принтерам",
  1573. byMaterial: "По материалам",
  1574. byMonth: "По месяцам",
  1575. last7Days: "Последние 7 дней",
  1576. last30Days: "Последние 30 дней",
  1577. last90Days: "Последние 90 дней",
  1578. allTime: "За всё время",
  1579. quickStats: "Краткая статистика",
  1580. printActivity: "Активность печати",
  1581. filamentTypes: "Типы филамента",
  1582. filamentTrends: "Расход филамента",
  1583. failureAnalysis: "Анализ неудач",
  1584. timeAccuracy: "Точность оценки времени",
  1585. successful: "Успешно:",
  1586. failed: "Неудачно:",
  1587. cancelled: "Отменено:",
  1588. perfectEstimate: "100% — точное совпадение с оценкой",
  1589. noTimeAccuracyData: "Данных о точности оценки времени пока нет",
  1590. noFilamentData: "Нет данных о филаменте",
  1591. noPrinterData: "Нет данных о принтерах",
  1592. noPrintData: "Нет данных о печати",
  1593. noPrintDataLast30Days: "За последние 30 дней данных о печати нет",
  1594. failureReasons: "Причины неудач",
  1595. topFailureReasons: "Основные причины неудач",
  1596. failedPrintsCount: "Неудачных печатей: {{failed}} из {{total}}",
  1597. lastWeekRate: "За прошлую неделю: {{rate}}%",
  1598. resetLayout: "Сбросить расположение",
  1599. recalculateCosts: "Пересчитать стоимость",
  1600. recalculateCostsHint: "Пересчитать стоимость всех архивных заданий по текущим ценам филамента",
  1601. exportStats: "Экспорт статистики",
  1602. exportAsCsv: "Экспорт в CSV",
  1603. exportAsExcel: "Экспорт в Excel",
  1604. hiddenCount: "Скрыто: {{count}}",
  1605. exportDownloaded: "Файл экспорта скачан",
  1606. exportFailed: "Не удалось экспортировать данные",
  1607. layoutReset: "Расположение сброшено",
  1608. recalculatedCosts: "Пересчитана стоимость архивов: {{count}}",
  1609. recalculateFailed: "Не удалось пересчитать стоимость",
  1610. loadingStats: "Загрузка статистики...",
  1611. noPermissionResetLayout: "У вас нет разрешения сбрасывать расположение",
  1612. noPermissionRecalculate: "У вас нет разрешения пересчитывать стоимость",
  1613. noPrintDataInRange: "В выбранном периоде нет данных о печати",
  1614. periodFilament: "Филамент за период",
  1615. periodCost: "Стоимость за период",
  1616. avgPerPrint: "В среднем на печать",
  1617. usageOverTime: "Расход по времени",
  1618. energyOverTime: "Энергия по времени",
  1619. filamentByWeight: "По весу",
  1620. printDuration: "Продолжительность печати",
  1621. printerUtilization: "Загрузка принтеров",
  1622. filamentSuccess: "Успешность по материалам",
  1623. printHabits: "Характер печати",
  1624. printTimeOfDay: "Время суток",
  1625. colorDistribution: "Распределение по цветам",
  1626. noColorData: "Нет данных о цветах",
  1627. records: "Рекорды",
  1628. longestPrint: "Самая долгая печать",
  1629. heaviestPrint: "Самая тяжёлая печать",
  1630. mostExpensivePrint: "Самая дорогая печать",
  1631. busiestDay: "Самый загруженный день",
  1632. successStreak: "Серия успешных печатей",
  1633. streakPrint: "успешная печать подряд",
  1634. streakPrints: "{{count}} успешных печатей подряд",
  1635. printerStats: "Статистика принтеров",
  1636. hours: "часов",
  1637. avgPrints: "В среднем печатей",
  1638. noArchiveData: "Нет данных о печати",
  1639. filamentByTime: "По времени",
  1640. avgWeight: "Средний вес",
  1641. avgTime: "Среднее время",
  1642. filamentByPrints: "По количеству печатей",
  1643. timeframe: {
  1644. today: "Сегодня",
  1645. "this-week": "Эта неделя",
  1646. "this-month": "Этот месяц",
  1647. "last-7": "Последние 7 дней",
  1648. "last-30": "Последние 30 дней",
  1649. "last-90": "Последние 90 дней",
  1650. "this-year": "Этот год",
  1651. "all-time": "За всё время",
  1652. custom: "Произвольный период",
  1653. from: "С",
  1654. to: "По",
  1655. },
  1656. allUsers: "Все пользователи",
  1657. noUser: "Без пользователя (система)",
  1658. filterByUser: "Фильтр по пользователю",
  1659. },
  1660. maintenance: {
  1661. title: "Обслуживание",
  1662. overview: "Обзор",
  1663. allOk: "Всё обслуживание выполнено вовремя",
  1664. dueCount: "Требуется выполнить: {{count}}",
  1665. dueCount_plural: "Требуется выполнить: {{count}}",
  1666. warningCount: "Предупреждений: {{count}}",
  1667. warningCount_plural: "Предупреждений: {{count}}",
  1668. totalPrintTime: "Общее время печати",
  1669. nextMaintenance: "Следующее обслуживание",
  1670. nothingDue: "Пока ничего не требуется",
  1671. tasks: "Задачи",
  1672. lastPerformed: "Последнее выполнение",
  1673. interval: "Интервал",
  1674. hoursRemaining: "Осталось {{hours}} ч",
  1675. hoursOverdue: "Просрочено на {{hours}} ч",
  1676. markDone: "Отметить выполненным",
  1677. performMaintenance: "Выполнить обслуживание",
  1678. history: "История",
  1679. noHistory: "История обслуживания пуста",
  1680. editPrintHours: "Изменить часы печати",
  1681. currentHours: "Текущие часы",
  1682. statusTab: "Состояние",
  1683. settingsTab: "Настройки",
  1684. overdueCount: "Просрочено: {{count}}",
  1685. dueSoonCount: "Скоро потребуется: {{count}}",
  1686. dueSoon: "Скоро потребуется",
  1687. allGood: "Всё в порядке",
  1688. overdueBy: "Просрочено на {{duration}}",
  1689. dueIn: "Через {{duration}}",
  1690. timeLeft: "Осталось {{duration}}",
  1691. day: "1 день",
  1692. days: "{{count}} дней",
  1693. week: "1 неделя",
  1694. weeks: "{{count}} недель",
  1695. month: "1 месяц",
  1696. months: "{{count}} месяцев",
  1697. year: "1 год",
  1698. maintenanceTypes: "Виды обслуживания",
  1699. maintenanceTypesDescription: "Системные и пользовательские задачи обслуживания",
  1700. addCustomType: "Добавить пользовательскую задачу",
  1701. restoreDefaults: "Восстановить стандартные задачи",
  1702. intervalType: "Тип интервала",
  1703. intervalValue: "Интервал ({{type}})",
  1704. icon: "Значок",
  1705. documentationLink: "Ссылка на документацию (необязательно)",
  1706. assignToPrinters: "Назначить принтерам",
  1707. selectAtLeastOnePrinter: "Выберите хотя бы один принтер",
  1708. addType: "Добавить вид",
  1709. custom: "Пользовательский",
  1710. printHours: "Часы печати",
  1711. calendarDays: "Календарные дни",
  1712. exampleName: "Например: заменить HEPA-фильтр",
  1713. viewDocumentation: "Открыть документацию",
  1714. timeBasedInterval: "Интервал по времени",
  1715. intervalOverrides: "Переопределение интервалов",
  1716. intervalOverridesDescription: "Настройка отдельных интервалов для конкретных принтеров",
  1717. assignedToPrinters: "Назначено принтерам:",
  1718. noPrintersAssigned: "Не назначено ни одному принтеру",
  1719. addPrinterShort: "Добавить:",
  1720. printersAssignedClick: "Назначено принтерам: {{count}} — нажмите для управления",
  1721. removeFromPrinter: "Убрать с этого принтера",
  1722. types: {
  1723. lubricateCarbonRods: "Смазать карбоновые валы",
  1724. lubricateRails: "Смазать линейные направляющие",
  1725. cleanNozzle: "Очистить сопло/хотэнд",
  1726. checkBelts: "Проверить натяжение ремней",
  1727. cleanBuildPlate: "Очистить печатную пластину",
  1728. checkExtruder: "Проверить шестерни экструдера",
  1729. checkCooling: "Проверить вентиляторы охлаждения",
  1730. generalInspection: "Общий осмотр",
  1731. cleanCarbonRods: "Очистить карбоновые валы",
  1732. lubricateSteelRods: "Смазать стальные валы",
  1733. cleanSteelRods: "Очистить стальные валы",
  1734. cleanLinearRails: "Очистить линейные направляющие",
  1735. checkPtfeTube: "Проверить PTFE-трубку",
  1736. replaceHepaFilter: "Заменить HEPA-фильтр",
  1737. replaceCarbonFilter: "Заменить угольный фильтр",
  1738. lubricateLeftNozzleRail: "Смазать направляющую левого сопла",
  1739. },
  1740. maintenanceComplete: "Обслуживание отмечено выполненным",
  1741. typeUpdated: "Вид обслуживания обновлён",
  1742. typeDeleted: "Вид обслуживания удалён",
  1743. defaultsRestored: "Восстановлено стандартных задач: {{count}}",
  1744. printHoursUpdated: "Часы печати обновлены",
  1745. printerAssigned: "Принтер назначен",
  1746. printerRemoved: "Принтер удалён из назначения",
  1747. deleteTypeConfirm: "Удалить «{{name}}»?",
  1748. deleteSystemTypeTitle: "Удалить стандартную задачу обслуживания?",
  1749. deleteSystemTypeMessage: "Удалить стандартную задачу обслуживания «{{name}}»?",
  1750. noPermissionUpdate: "У вас нет разрешения обновлять задачи обслуживания",
  1751. noPermissionPerform: "У вас нет разрешения отмечать обслуживание выполненным",
  1752. noPermissionEditTypes: "У вас нет разрешения изменять виды обслуживания",
  1753. noPermissionDeleteTypes: "У вас нет разрешения удалять виды обслуживания",
  1754. noPermissionEditHours: "У вас нет разрешения изменять часы печати",
  1755. noPermissionRemovePrinter: "У вас нет разрешения удалять назначения принтеров",
  1756. noPermissionAssignPrinter: "У вас нет разрешения назначать принтеры",
  1757. noPermissionEditIntervals: "У вас нет разрешения изменять интервалы",
  1758. configureSettings: "Настроить виды обслуживания и интервалы",
  1759. },
  1760. settings: {
  1761. sliceEngine: 'Движок нарезки',
  1762. sliceEngineSidecar: 'Серверный sidecar',
  1763. sliceEngineSidecarHint: 'Нарезка выполняется на сервере, в контейнере sidecar слайсера.',
  1764. sliceEngineBrowser: 'В браузере',
  1765. sliceEngineBrowserHint: 'Нарезка выполняется на этом устройстве, без участия сервера.',
  1766. title: "Настройки",
  1767. general: "Общие",
  1768. tabs: {
  1769. general: "Общие",
  1770. smartPlugs: "Умные розетки",
  1771. sensors: "Датчики",
  1772. notifications: "Уведомления",
  1773. queue: "Рабочий процесс",
  1774. queueDispatch: "Очередь и отправка",
  1775. queuePipelines: "Конвейеры",
  1776. filament: "Филамент",
  1777. network: "Сеть",
  1778. apiKeys: "Ключи API",
  1779. virtualPrinter: "Виртуальный принтер",
  1780. spoolbuddy: "SpoolBuddy",
  1781. failureDetection: "Обнаружение сбоев",
  1782. users: "Аутентификация",
  1783. backup: "Резервное копирование",
  1784. emailAuth: "Аутентификация по email",
  1785. ldap: "LDAP",
  1786. twoFa: "Двухфакторная аутентификация",
  1787. oidc: "SSO / OIDC",
  1788. security: "Безопасность",
  1789. },
  1790. spoolbuddy: {
  1791. infoTitle: "Устройства SpoolBuddy",
  1792. infoBody: "Киоски SpoolBuddy регистрируются автоматически по сигналам активности. Удалите регистрацию устройства, если оно больше не используется или после сбоя демона остался устаревший дубликат.",
  1793. duplicatesTitle: "Зарегистрировано устройств: {{count}}",
  1794. duplicatesBody: "Интерфейс киоска использует только первое зарегистрированное устройство. Если один из экземпляров — устаревший дубликат после сбоя, удалите его регистрацию: работающее устройство зарегистрируется снова при следующем сигнале активности.",
  1795. empty: "Устройства SpoolBuddy пока не зарегистрированы.",
  1796. online: "В сети",
  1797. offline: "Не в сети",
  1798. unregister: "Удалить регистрацию",
  1799. unregisterSuccess: "Регистрация устройства удалена",
  1800. unregisterError: "Не удалось удалить регистрацию устройства",
  1801. confirmTitle: "Удалить регистрацию устройства SpoolBuddy?",
  1802. confirmBody: "Устройство «{{hostname}}» ({{deviceId}}) будет удалено из базы данных. Если оно работает, то зарегистрируется снова при следующем сигнале активности.",
  1803. ipAddress: "IP-адрес",
  1804. firmware: "Прошивка",
  1805. lastSeen: "Последняя активность",
  1806. daemonUptime: "Время работы демона",
  1807. systemUptime: "Время работы системы",
  1808. never: "никогда",
  1809. nfc: "NFC",
  1810. scale: "Весы",
  1811. cpuTemp: "Температура ЦП",
  1812. cpuLoad: "Загрузка ЦП",
  1813. memory: "Память",
  1814. disk: "Диск",
  1815. update: "Обновить",
  1816. updateConfirmTitle: "Обновить демон SpoolBuddy?",
  1817. updateConfirmBody: "Запустить обновление ПО на «{{hostname}}»? После установки обновления демон будет перезапущен.",
  1818. restartBrowser: "Перезапустить браузер",
  1819. restartBrowserConfirmTitle: "Перезапустить браузер киоска?",
  1820. restartBrowserConfirmBody: "Перезапустить браузер киоска на «{{hostname}}»? Экран ненадолго погаснет.",
  1821. restartDaemon: "Перезапустить демон",
  1822. restartDaemonConfirmTitle: "Перезапустить демон SpoolBuddy?",
  1823. restartDaemonConfirmBody: "Перезапустить демон SpoolBuddy на «{{hostname}}»? Устройство на несколько секунд пропадёт из сети.",
  1824. reboot: "Перезагрузить",
  1825. rebootConfirmTitle: "Перезагрузить устройство?",
  1826. rebootConfirmBody: "Перезагрузить «{{hostname}}»? Устройство будет недоступно около минуты.",
  1827. shutdown: "Выключить",
  1828. shutdownConfirmTitle: "Выключить устройство?",
  1829. shutdownConfirmBody: "Выключить «{{hostname}}»? Для повторного включения потребуется физический доступ.",
  1830. commandConfirm: "Подтвердить",
  1831. commandQueued: "Команда поставлена в очередь",
  1832. commandError: "Не удалось отправить команду",
  1833. },
  1834. ldap: {
  1835. title: "Аутентификация LDAP",
  1836. enabledDesc: "Аутентификация LDAP включена",
  1837. disabledDesc: "Аутентификация LDAP отключена",
  1838. disabledHint: "Настройте и сохраните параметры LDAP ниже, затем включите аутентификацию.",
  1839. enabled: "Аутентификация LDAP включена",
  1840. disabled: "Аутентификация LDAP отключена",
  1841. feature1: "Пользователи могут входить с учётными данными LDAP",
  1842. feature2: "Локальная учётная запись администратора остаётся резервным способом входа",
  1843. feature3: "При входе группы LDAP сопоставляются с группами Bambuddy",
  1844. serverConfig: "Настройка сервера LDAP",
  1845. serverUrl: "Адрес сервера",
  1846. serverUrlHint: "Используйте ldaps:// для SSL либо ldap:// с StartTLS",
  1847. security: "Безопасность",
  1848. securityHint: "StartTLS переводит обычное соединение на TLS. LDAPS использует TLS с самого начала.",
  1849. bindDn: "Bind DN (служебная учётная запись)",
  1850. bindPassword: "Пароль Bind",
  1851. searchBase: "Базовый DN поиска",
  1852. userFilter: "Фильтр поиска пользователей",
  1853. userFilterHint: "{username} заменяется именем пользователя при входе. Для OpenLDAP используйте (uid={username}).",
  1854. advanced: "Дополнительно",
  1855. autoProvision: "Автоматически создавать пользователей",
  1856. autoProvisionHint: "Автоматически создавать учётную запись Bambuddy при первом входе через LDAP",
  1857. defaultGroup: "Группа по умолчанию",
  1858. defaultGroupNone: "— Нет (без резервной группы) —",
  1859. defaultGroupHint: "Резервная группа для пользователя LDAP, который успешно вошёл, но не состоит ни в одной сопоставленной группе LDAP. Оставьте пустым, чтобы такие пользователи не получали разрешений.",
  1860. groupMapping: "Сопоставление групп (JSON)",
  1861. groupMappingHint: "Сопоставьте DN групп LDAP с группами Bambuddy. Доступные группы: ",
  1862. testConnection: "Проверить подключение",
  1863. settingsSaved: "Настройки LDAP сохранены",
  1864. errors: {
  1865. serverRequired: "Укажите адрес сервера LDAP",
  1866. searchBaseRequired: "Укажите базовый DN поиска",
  1867. enableAuthFirst: "Сначала включите аутентификацию",
  1868. configureLdapFirst: "Сначала сохраните настройки LDAP",
  1869. },
  1870. },
  1871. email: {
  1872. smtpSettings: "Настройка SMTP",
  1873. smtpHost: "SMTP-сервер",
  1874. smtpPort: "Порт SMTP",
  1875. security: "Безопасность",
  1876. authentication: "Аутентификация",
  1877. username: "Имя пользователя",
  1878. password: "Пароль",
  1879. fromEmail: "Адрес отправителя",
  1880. fromName: "Имя отправителя",
  1881. testConnection: "Проверить подключение SMTP",
  1882. testRecipient: "Адрес получателя тестового письма",
  1883. sendTest: "Отправить тестовое письмо",
  1884. sending: "Отправка...",
  1885. save: "Сохранить настройки",
  1886. saving: "Сохранение...",
  1887. advancedAuth: "Расширенная аутентификация",
  1888. advancedAuthEnabled: "Расширенная аутентификация включена",
  1889. advancedAuthEnabledDesc: "Функции управления пользователями через email активны. Новые пользователи получают автоматически созданные пароли по почте и могут сбрасывать пароль через функцию восстановления.",
  1890. advancedAuthDisabled: "Расширенная аутентификация отключена",
  1891. advancedAuthDisabledDesc: "Включите расширенную аутентификацию, чтобы использовать почтовые функции управления пользователями.",
  1892. enable: "Включить",
  1893. disable: "Отключить",
  1894. feature1: "Пароли для новых пользователей создаются автоматически и отправляются по email",
  1895. feature2: "Пользователи могут входить по имени или адресу электронной почты",
  1896. feature3: "Доступно восстановление забытого пароля",
  1897. feature4: "Администраторы могут сбрасывать пароли пользователей по email",
  1898. errors: {
  1899. requiredFields: "Заполните все обязательные поля",
  1900. usernameRequired: "При включённой аутентификации требуется имя пользователя",
  1901. enterTestEmail: "Введите адрес для тестового письма",
  1902. smtpServerAndEmail: "Перед проверкой укажите SMTP-сервер и адрес отправителя",
  1903. usernamePasswordRequired: "При включённой аутентификации требуются имя пользователя и пароль",
  1904. configureSmtpFirst: "Сначала настройте и проверьте SMTP",
  1905. enableAuthFirst: "Чтобы использовать почтовые функции, сначала включите аутентификацию.",
  1906. },
  1907. success: {
  1908. settingsSaved: "Настройки SMTP сохранены",
  1909. },
  1910. securityOptions: {
  1911. starttls: "STARTTLS (порт 587)",
  1912. ssl: "SSL/TLS (порт 465)",
  1913. none: "Без шифрования (порт 25)",
  1914. },
  1915. authOptions: {
  1916. enabled: "Включена",
  1917. disabled: "Отключена",
  1918. },
  1919. },
  1920. appearance: "Внешний вид",
  1921. notifications: "Уведомления",
  1922. smartPlugs: "Умные розетки",
  1923. spoolman: "Spoolman",
  1924. updates: "Обновления",
  1925. language: "Язык",
  1926. languageDescription: "Выберите предпочитаемый язык",
  1927. theme: "Тема",
  1928. themeLight: "Светлая",
  1929. themeDark: "Тёмная",
  1930. themeSystem: "Системная",
  1931. defaultView: "Страница по умолчанию",
  1932. defaultViewDescription: "Страница, которая открывается при запуске приложения",
  1933. checkForUpdates: "Проверить обновления",
  1934. autoUpdate: "Автоматическое обновление",
  1935. currentVersion: "Текущая версия",
  1936. latestVersion: "Последняя версия",
  1937. upToDate: "Установлена последняя версия",
  1938. updateAvailable: "Доступно обновление",
  1939. notificationLanguage: "Язык уведомлений",
  1940. notificationLanguageDescription: "Язык push-уведомлений",
  1941. bedCooledThreshold: "Порог остывания стола",
  1942. bedCooledThresholdDescription: "Температура, ниже которой стол после печати считается остывшим",
  1943. userNotificationsEnabled: "Пользовательские уведомления",
  1944. userNotificationsEnabledDescription: "Включить меню пользовательских и почтовых уведомлений о событиях печати. Требуется расширенная аутентификация.",
  1945. userNotificationsDisabledHint: "Для пользовательских уведомлений включите расширенную аутентификацию.",
  1946. notificationProviders: "Провайдеры уведомлений",
  1947. addProvider: "Добавить провайдера",
  1948. editProvider: "Изменить провайдера",
  1949. providerType: "Тип провайдера",
  1950. testNotification: "Проверить уведомление",
  1951. testSuccess: "Тестовое уведомление успешно отправлено",
  1952. testFailed: "Не удалось отправить тестовое уведомление",
  1953. quietHours: "Тихие часы",
  1954. quietHoursDescription: "Не беспокоить в указанный период",
  1955. quietHoursStart: "Начало",
  1956. quietHoursEnd: "Окончание",
  1957. events: {
  1958. title: "События уведомлений",
  1959. printStart: "Печать началась",
  1960. printComplete: "Печать завершена",
  1961. printFailed: "Ошибка печати",
  1962. printStopped: "Печать остановлена",
  1963. printProgress: "Этапы выполнения",
  1964. printProgressDescription: "Уведомлять при 25%, 50% и 75%",
  1965. printerOffline: "Принтер не в сети",
  1966. printerError: "Ошибка принтера",
  1967. filamentLow: "Филамент заканчивается",
  1968. maintenanceDue: "Требуется обслуживание",
  1969. maintenanceDueDescription: "Уведомлять, когда наступил срок обслуживания",
  1970. },
  1971. smartPlug: {
  1972. title: "Умные розетки",
  1973. add: "Добавить умную розетку",
  1974. edit: "Изменить умную розетку",
  1975. name: "Название",
  1976. ipAddress: "IP-адрес",
  1977. linkedPrinter: "Связанный принтер",
  1978. autoOn: "Автоматическое включение",
  1979. autoOnDescription: "Включать при начале печати",
  1980. autoOff: "Автоматическое выключение",
  1981. autoOffDescription: "Выключать после завершения печати",
  1982. offDelay: "Задержка выключения",
  1983. offDelayMinutes: "Минут после печати",
  1984. offDelayTemp: "Когда сопло остынет ниже заданной температуры",
  1985. currentState: "Текущее состояние",
  1986. turnOn: "Включить",
  1987. turnOff: "Выключить",
  1988. },
  1989. filamentTracking: "Учёт филамента",
  1990. filamentTrackingDesc: "Выберите способ учёта катушек: встроенный инвентарь или внешний сервер Spoolman.",
  1991. autoAddUnknownRfid: "Автоматически добавлять неизвестные RFID-катушки",
  1992. autoAddUnknownRfidDesc: "Автоматически создавать запись в инвентаре при обнаружении катушки с неизвестной RFID-меткой. Отключите, если регистрируете новые катушки заранее, чтобы избежать дубликатов.",
  1993. filamentChecks: "Проверки филамента",
  1994. disableFilamentWarnings: "Отключить предупреждения о филаменте",
  1995. disableFilamentWarningsDesc: "Не показывать предупреждения о нехватке филамента при запуске печати или добавлении в очередь",
  1996. preferLowestFilament: "Предпочитать катушку с наименьшим остатком",
  1997. preferLowestFilamentDesc: "Если подходят несколько катушек, использовать катушку с наименьшим остатком филамента",
  1998. preferLowestFilamentBackupNote: "Работает только при включённом AMS Filament Backup: иначе принтер не сможет переключиться на вторую катушку после окончания выбранной.",
  1999. trackingModeBuiltIn: "Встроенный инвентарь",
  2000. trackingModeBuiltInDesc: "Автоматическое сопоставление RFID и учёт расхода",
  2001. trackingModeSpoolmanDesc: "Внешний сервер управления филаментом",
  2002. builtInFeatureRfid: "Автоматически определяет официальные RFID-катушки Bambu Lab в AMS",
  2003. builtInFeatureUsage: "Учитывает расход филамента для каждой печати",
  2004. builtInFeatureCatalog: "Управление катушками, цветами и профилями K-фактора",
  2005. builtInFeatureThirdParty: "Сторонние катушки можно связать с катушками инвентаря",
  2006. amsSyncButton: "Синхронизировать вес из AMS",
  2007. amsSyncTitle: "Синхронизация веса катушек из AMS",
  2008. amsSyncMessage: "Вес всех катушек инвентаря будет заменён текущими значениями остатка из AMS подключённых принтеров. Используйте это для восстановления повреждённых данных о весе. Принтеры должны быть в сети.",
  2009. amsSyncing: "Синхронизация...",
  2010. amsSyncSuccess: "Синхронизировано катушек: {{synced}}, пропущено: {{skipped}}",
  2011. amsSyncError: "Не удалось синхронизировать вес из AMS",
  2012. spoolmanAmsSyncButton: "Синхронизировать вес Spoolman из AMS",
  2013. spoolmanAmsSyncTitle: "Синхронизация веса катушек Spoolman из AMS",
  2014. spoolmanAmsSyncMessage: "Вес всех катушек Spoolman будет обновлён по текущим значениям остатка из AMS подключённых принтеров. Принтеры должны быть в сети.",
  2015. spoolmanAmsSyncing: "Синхронизация...",
  2016. spoolmanAmsSyncSuccess: "Синхронизировано катушек: {{synced}}, пропущено: {{skipped}}",
  2017. spoolmanAmsSyncError: "Не удалось синхронизировать вес Spoolman из AMS",
  2018. spoolmanAmsSyncErrorUnreachable: "Не удалось синхронизировать вес Spoolman: сервер недоступен",
  2019. spoolmanAmsSyncErrorNotConfigured: "Не удалось синхронизировать вес Spoolman: сервер не настроен",
  2020. spoolmanNotConfigured: "Spoolman не настроен",
  2021. spoolmanFilamentCatalogTitle: "Каталог филамента Spoolman",
  2022. spoolmanFilamentCatalogDesc: "Названия филаментов и масса пустых катушек из Spoolman. Здесь можно изменить название и массу катушки; остальные свойства редактируются непосредственно в Spoolman.",
  2023. spoolmanUrl: "Адрес Spoolman",
  2024. spoolmanUrlHint: "Адрес сервера Spoolman, например http://localhost:7912",
  2025. spoolmanConnected: "Подключён",
  2026. spoolmanDisconnected: "Отключён",
  2027. status: "Состояние",
  2028. connect: "Подключить",
  2029. disconnect: "Отключить",
  2030. howSyncWorks: "Как работает синхронизация",
  2031. syncInfoRfidOnly: "Синхронизируются только официальные RFID-катушки Bambu Lab",
  2032. syncInfoAutoCreate: "Новые катушки автоматически создаются в Spoolman при первой синхронизации",
  2033. syncInfoThirdPartySkipped: "Неофициальные катушки Bambu Lab, сторонние и перезаправленные катушки пропускаются",
  2034. linkingExistingSpools: "Привязка существующих катушек",
  2035. linkingExistingSpoolsDesc: "Чтобы привязать существующую катушку Spoolman к AMS, наведите указатель на слот AMS и нажмите «Привязать к Spoolman».",
  2036. syncMode: "Режим синхронизации",
  2037. syncModeAuto: "Автоматически",
  2038. syncModeManual: "Только вручную",
  2039. syncModeAutoDesc: "Данные AMS синхронизируются автоматически при обнаружении изменений",
  2040. syncModeManualDesc: "Синхронизация выполняется только вручную",
  2041. syncAmsData: "Синхронизировать данные AMS",
  2042. syncAmsDataDesc: "Вручную синхронизировать данные AMS принтера со Spoolman",
  2043. allPrinters: "Все принтеры",
  2044. noDefaultPrinter: "Без принтера по умолчанию (спрашивать каждый раз)",
  2045. sidebarOrder: "Порядок пунктов боковой панели",
  2046. saveThumbnails: "Сохранять миниатюры",
  2047. captureFinishPhoto: "Снимок после завершения",
  2048. noPrintersConfigured: "Принтеры не настроены",
  2049. archiveMode: {
  2050. always: "Всегда создавать запись в архиве",
  2051. never: "Не создавать запись в архиве",
  2052. ask: "Спрашивать каждый раз",
  2053. },
  2054. checkForUpdatesLabel: "Проверять обновления",
  2055. checkPrinterFirmware: "Проверять прошивку принтера",
  2056. includeBetaUpdates: "Включать бета-версии",
  2057. includeBetaUpdatesDesc: "Уведомлять о бета- и предварительных версиях при проверке обновлений",
  2058. localLogin: {
  2059. disable: "Отключить локальный вход по имени пользователя и паролю",
  2060. disableHint: "Если включено, вход возможен только через провайдеров SSO. На LDAP это не влияет. Чтобы сохранить аварийный способ входа, задайте на сервере BAMBUDDY_LOCAL_LOGIN=true.",
  2061. },
  2062. enableRetry: "Включить повторные попытки",
  2063. homeAssistantDescription: "Управление умными розетками через Home Assistant",
  2064. environmentManagedLabel: "(управляется окружением)",
  2065. autoEnabledViaEnv: "Автоматически включено переменными окружения",
  2066. urlFromEnvReadOnly: "Значение задано переменной окружения HA_URL (только чтение)",
  2067. tokenFromEnvReadOnly: "Значение задано переменной окружения HA_TOKEN (только чтение)",
  2068. mqttConnectedTo: "Подключено к",
  2069. prometheusDescription: "Экспортировать данные принтеров в формате Prometheus",
  2070. noSmartPlugsTitle: "Умные розетки не настроены",
  2071. noSmartPlugsDescription: "Добавьте умную розетку на базе Tasmota для учёта энергии и автоматизации питания.",
  2072. noProvidersTitle: "Провайдеры не настроены",
  2073. noProvidersDescription: "Добавьте провайдера для получения уведомлений.",
  2074. noTemplatesAvailable: "Шаблоны отсутствуют. Перезапустите бэкенд, чтобы создать стандартные шаблоны.",
  2075. apiPermissionView: "Просмотр состояния принтеров и очереди",
  2076. apiPermissionEdit: "Добавление и удаление заданий из очереди печати",
  2077. apiKeysEmptyTitle: "Ключей API нет",
  2078. apiKeysEmptyDescription: "Создайте ключ API для интеграции с внешними сервисами.",
  2079. noUsersFound: "Пользователи не найдены",
  2080. noGroupsFound: "Группы не найдены",
  2081. noGroupsAvailable: "Доступных групп нет",
  2082. passwordsDoNotMatch: "Пароли не совпадают",
  2083. systemGroupWarning: "Названия системных групп изменить нельзя",
  2084. authDisabledTitle: "Аутентификация отключена",
  2085. authDisabledFeature1: "Требовать вход для доступа к системе",
  2086. authDisabledFeature2: "Создавать нескольких пользователей с групповыми разрешениями",
  2087. authDisabledFeature3: "Управлять доступом с помощью более чем 50 отдельных разрешений",
  2088. userHasCreated: "Этот пользователь создал:",
  2089. userItemsQuestion: "Что сделать с этими объектами?",
  2090. deleteUserConfirm: "Удалить этого пользователя?",
  2091. actionCannotBeUndone: "Это действие нельзя отменить.",
  2092. addFirstSmartPlug: "Добавить первую умную розетку",
  2093. providers: "Провайдеры",
  2094. log: "Журнал",
  2095. testAll: "Проверить все",
  2096. testResults: "Результаты проверки",
  2097. testPassedCount: "Успешно: {{count}}",
  2098. testFailedCount: "Ошибок: {{count}}",
  2099. messageTemplates: "Шаблоны сообщений",
  2100. messageTemplatesDescription: "Настройте тексты уведомлений для каждого события.",
  2101. apiKeys: "Ключи API",
  2102. apiKeysDescription: "Создавайте ключи API для внешних интеграций и вебхуков.",
  2103. createKey: "Создать ключ",
  2104. apiKeyCreated: "Ключ API успешно создан",
  2105. apiKeyCopyWarning: "Скопируйте ключ сейчас — повторно он показан не будет!",
  2106. useInApiBrowser: "Использовать в обозревателе API",
  2107. apiKeyQrButton: "QR-код",
  2108. apiKeyQrTitle: "Сканирование для настройки",
  2109. apiKeyQrCaption: "Отсканируйте мобильным приложением, чтобы добавить этот сервер и ключ API.",
  2110. apiKeyQrWarning: "QR-код содержит секретный ключ API — не передавайте его и не публикуйте снимок экрана.",
  2111. createNewApiKey: "Создать ключ API",
  2112. keyName: "Название ключа",
  2113. keyNamePlaceholder: "например, Home Assistant или OctoPrint",
  2114. readStatus: "Чтение состояния",
  2115. readStatusDescription: "Просмотр состояния принтеров, очереди, библиотеки, архива и конвейеров слайсера",
  2116. manageQueue: "Управление очередью",
  2117. manageQueueDescription: "Добавление и удаление заданий из очереди печати. Вместе с «Управление библиотекой» — запуск конвейеров слайсера",
  2118. controlPrinter: "Управление принтером",
  2119. controlPrinterDescription: "Пауза, продолжение и остановка печати",
  2120. manageLibrary: "Управление библиотекой",
  2121. manageLibraryDescription: "Загрузка, переименование, удаление и слайсинг файлов библиотеки; импорт моделей из MakerWorld. Вместе с «Управление очередью» — запуск конвейеров слайсера",
  2122. manageInventory: "Управление запасами",
  2123. manageInventoryDescription: "Создание, изменение и удаление катушек и записей учёта. Требуется для киосков SpoolBuddy: сканирование NFC, показания весов и системные команды киоска.",
  2124. manageMaintenance: "Управление обслуживанием",
  2125. manageMaintenanceDescription: "Регистрация выполненного обслуживания, сброс счётчиков, изменение интервалов и управление каталогом видов обслуживания. Подходит для автоматизаций Home Assistant, которые отмечают, например, «сопло очищено», без предоставления более широких прав управления принтером.",
  2126. manageArchives: "Управление архивом",
  2127. manageArchivesDescription: "Изменение и удаление записей архива печати, включая старые задания и их вклад в статистику. Подходит для автоматизаций очистки истории печати.",
  2128. manageProjects: "Управление проектами",
  2129. manageProjectsDescription: "Создание, изменение и удаление проектов, а также добавление в них архивных заданий. Подходит для автоматизаций, распределяющих печати по проектам.",
  2130. libraryBadge: "Библиотека",
  2131. inventoryBadge: "Запасы",
  2132. maintenanceBadge: "Обслуживание",
  2133. archivesBadge: "Архив",
  2134. projectsBadge: "Проекты",
  2135. cloudAccess: "Разрешить доступ к облаку",
  2136. cloudAccessDescription: "Чтение пресетов и филаментов Bambu Cloud от вашего имени. Требуется вход в Bambu Cloud.",
  2137. cloudBadge: "Облако",
  2138. updateEnergyCost: "Обновление тарифа на электроэнергию",
  2139. updateEnergyCostDescription: "Разрешить этому ключу отправлять новую цену за кВт⋅ч методом POST в /settings/electricity-price. Полезно для автоматизаций динамического тарифа Home Assistant (Tibber, Octopus и т. п.). Это единственный параметр настроек, доступный для записи через ключ API.",
  2140. energyCostBadge: "Энергия",
  2141. legacyKey: "Устаревший",
  2142. legacyKeyTooltip: "Создан до появления привязки к пользователям; пересоздайте для доступа к облаку",
  2143. unnamedKey: "Ключ без названия",
  2144. lastUsed: "Последнее использование",
  2145. read: "Чтение",
  2146. control: "Управление",
  2147. createFirstKey: "Создать первый ключ",
  2148. webhookEndpoints: "Конечные точки вебхуков",
  2149. webhookApiKeyHint: "Передавайте ключ API в заголовке X-API-Key.",
  2150. webhook: {
  2151. getAllStatus: "Получить состояние всех принтеров",
  2152. getSpecificStatus: "Получить состояние выбранного принтера",
  2153. addToQueue: "Добавить в очередь печати",
  2154. pausePrint: "Приостановить печать",
  2155. resumePrint: "Продолжить печать",
  2156. stopPrint: "Остановить печать",
  2157. },
  2158. apiBrowser: "Обозреватель API",
  2159. apiBrowserDescription: "Просмотр и проверка всех доступных конечных точек API.",
  2160. apiKeyForTesting: "Ключ API для проверки",
  2161. apiKeyPlaceholder: "Вставьте ключ API для проверки защищённых конечных точек…",
  2162. apiKeyHint: "Ключ будет передан в запросе в заголовке X-API-Key.",
  2163. deleteApiKeyTitle: "Удаление ключа API",
  2164. deleteApiKeyMessage: "Удалить этот ключ API? Все использующие его интеграции перестанут работать.",
  2165. deleteKey: "Удалить ключ",
  2166. amsDisplayThresholds: "Пороговые значения AMS",
  2167. amsThresholdsDescription: "Настройте цветовые пороги индикаторов влажности и температуры AMS.",
  2168. humidity: "Влажность",
  2169. goodGreen: "Норма (зелёный)",
  2170. fairOrange: "Допустимо (оранжевый)",
  2171. aboveFairBad: "Выше допустимого порога отображается красным",
  2172. fairAlsoDryingThreshold: "Этот порог также запускает автоматическую сушку, если она включена",
  2173. fairBelowDryingFloor: "Автоматическая сушка не может достичь этого значения: при работающем нагревателе AMS показывает {{floor}} % и выше, поэтому каждый цикл завершался бы и тут же запускался снова. Установите значение выше {{floor}} %, если используете автоматическую сушку.",
  2174. temperature: "Температура",
  2175. goodBlue: "Норма (синий)",
  2176. aboveFairHot: "Выше допустимого порога отображается красным как перегрев",
  2177. tempAlarmThreshold: "Тревога выше",
  2178. tempAlarmSeparateFromBand: "Уведомления отправляет только порог тревоги — «хорошо» и «допустимо» лишь окрашивают индикатор. Оставьте поле пустым, чтобы срабатывать по допустимому порогу, как раньше.",
  2179. tempAlarmMustBePositive: "Порог 0 или меньше игнорируется — тревога срабатывает по допустимому порогу.",
  2180. historyRetention: "Хранение истории",
  2181. keepSensorHistory: "Хранить историю датчиков",
  2182. historyRetentionDescription: "Более старые данные влажности и температуры будут удаляться автоматически",
  2183. defaultPrintOptions: "Параметры печати по умолчанию",
  2184. defaultPrintOptionsDescription: "Задайте значения по умолчанию для новых заданий. Их можно изменить отдельно в диалоге запуска печати.",
  2185. defaultBedLevelling: "Калибровка стола",
  2186. defaultBedLevellingDesc: "Автоматически выровнять стол перед печатью",
  2187. defaultFlowCali: "Калибровка потока",
  2188. defaultFlowCaliDesc: "Калибровать поток экструзии",
  2189. defaultVibrationCali: "Калибровка вибраций",
  2190. defaultVibrationCaliDesc: "Уменьшить артефакты звона",
  2191. defaultLayerInspect: "Проверка первого слоя",
  2192. defaultLayerInspectDesc: "Проверка первого слоя системой компьютерного зрения",
  2193. defaultTimelapse: "Таймлапс",
  2194. defaultTimelapseDesc: "Записывать таймлапс",
  2195. defaultNozzleOffsetCali: "Калибровка смещения сопел",
  2196. defaultNozzleOffsetCaliDesc: "Калибровать взаимное смещение сопел экструдеров",
  2197. tempFanPresetsTitle: "Пресеты температуры и вентиляторов",
  2198. tempFanPresetsDescription: "Настройте значения быстрого выбора в меню температуры и скорости вентиляторов карточки принтера. Кнопка «Выкл.» отображается всегда.",
  2199. tempFanPresetsNozzle: "Температура сопла",
  2200. tempFanPresetsBed: "Температура стола",
  2201. tempFanPresetsChamber: "Температура камеры",
  2202. tempFanPresetsFan: "Скорость вентилятора",
  2203. tempFanPresetsReset: "Восстановить значения по умолчанию",
  2204. concurrentUploadsTitle: "Одновременные загрузки",
  2205. concurrentUploadsDescription: "Количество принтеров, на которые очередь может одновременно отправлять файлы. Передача файлов на принтеры выполняется медленно: крупная модель может загружаться несколько минут, а каждый принтер ждёт своей очереди. В большом парке увеличение этого значения сокращает ожидание последних принтеров в группе. Уменьшите его, если сеть или сервер Bambuddy плохо справляются с параллельной передачей.",
  2206. concurrentUploadsLabel: "Одновременно загружать на принтеры",
  2207. concurrentUploadsHelp: "Значение 1 отправляет файл только на один принтер за раз, как в прежнем режиме. По умолчанию: 4.",
  2208. staggeredStart: "Поэтапный запуск",
  2209. staggeredStartDescription: "Размер группы и интервал по умолчанию при поэтапном запуске партии на нескольких принтерах. Для каждой партии значения можно изменить в окне запуска печати.",
  2210. preheatTitle: "Преднагрев и выдержка",
  2211. preheatDescription: "Нагреть стол и, если поддерживается, камеру, затем выдержать температуру перед запуском каждого задания очереди. Полезно для инженерных пластиков (PA, ABS) на принтерах без активного нагревателя камеры: во время выдержки стол прогревает камеру излучением. Целевая температура стола берётся из файла печати; поведение камеры зависит от модели принтера.",
  2212. preheatEnabled: "Включить преднагрев и выдержку",
  2213. preheatEnabledDesc: "Если выключено, задания очереди отправляются сразу. Для каждого задания можно задать отдельное значение.",
  2214. preheatFilamentTargetsLabel: "Целевая температура камеры по типу филамента (°C)",
  2215. preheatFilamentTargetsHint: "Bambuddy выбирает наибольшее значение среди задействованных слотов AMS. Печать, для всех слотов которой получается 0 — PLA, PETG, TPU, PVA, — полностью пропускает прогрев и начинается сразу.",
  2216. preheatFilamentTargetsReset: "Восстановить значения по умолчанию",
  2217. preheatFilamentTargetsDefaultRow: "Прочее / без сопоставления",
  2218. preheatMaxWait: "Максимальное ожидание (с)",
  2219. preheatMaxWaitHelp: "Предельное время прогрева камеры, после которого процесс продолжится.",
  2220. preheatSoak: "Выдержка (с)",
  2221. preheatSoakHelp: "Время выдержки после достижения цели или истечения максимального ожидания.",
  2222. preheatHardwareTitle: "Поведение по моделям принтеров:",
  2223. preheatHardwareDetail: "H2C/H2D/H2D Pro/H2S/X2D/X1E активно нагревают камеру командой M141. X1C/P2S измеряют температуру камеры, но прогревают её только теплом стола. У P1S/P1P/A1/A1 Mini нет датчика камеры — применяется только таймер выдержки.",
  2224. preheatPerItemDesc: "Нагревать стол и камеру перед запуском этого задания. По умолчанию используется общий переключатель «Настройки → Рабочий процесс».",
  2225. preheatOverride_inherit: "Наследовать",
  2226. preheatOverride_on: "Включено",
  2227. preheatOverride_off: "Выключено",
  2228. calibrationMode_off: "Выключено",
  2229. calibrationMode_on: "Включено",
  2230. calibrationMode_auto: "Авто",
  2231. preheatTargetOverride: "Переопределение температуры камеры (°C; пусто — значение для филамента)",
  2232. preheatTargetOverrideHelp: "0 нагревает стол и выполняет выдержку без камеры. Если поле пустое, печать, которой камера не нужна, полностью пропускает прогрев.",
  2233. plateClear: "Подтверждение очистки пластины",
  2234. requirePlateClear: "Требовать подтверждение очистки пластины",
  2235. requirePlateClearDescription: "Если включено, планировщик не запускает следующее задание на принтере с завершённой печатью, пока не подтверждена очистка пластины. Отключение также скрывает индикатор состояния пластины и кнопку «Пластина очищена» на карточках принтеров.",
  2236. keepBedWarm: 'Держать стол тёплым между печатями',
  2237. keepBedWarmDesc: 'Пока ожидается подтверждение очистки пластины, стол поддерживается при указанной ниже температуре подогрева, чтобы камера оставалась тёплой, — или при температуре стола следующей печати, если она выше. Применяется только если следующая печать требует нагрева камеры (ASA, ABS, PA, PC и др.). Требуется включённое подтверждение очистки пластины.',
  2238. keepWarmBedTemp: 'Температура стола при поддержании тепла (°C)',
  2239. keepWarmBedTempHelp: 'Используется, когда стол служит для нагрева камеры: при поддержании тепла и при предварительном нагреве, если в файле печати нет температуры стола. Более высокая температура из файла всегда имеет приоритет.',
  2240. keepWarmMaxMinutes: 'Прекратить подогрев через (минут)',
  2241. keepWarmMaxMinutesHelp: 'Если пластина не освобождена за это время, нагреватели выключаются, а не остаются включёнными бесконечно.',
  2242. gcodeInjection: "Вставка G-кода",
  2243. gcodeInjectionDescription: "Настройте G-код, добавляемый в начало и/или конец печати для систем автоматического запуска, таких как Farmloop, SwapMod, AutoClear и Printflow 3D. Фрагменты задаются отдельно для каждой модели принтера и применяются, когда для задания очереди включена вставка G-кода.",
  2244. gcodeInjectionNoPrinters: "Принтеры не найдены. Добавьте принтеры, чтобы настроить фрагменты G-кода.",
  2245. gcodeStartLabel: "Начальный G-код",
  2246. gcodeEndLabel: "Завершающий G-код",
  2247. gcodeStartPlaceholder: "G-код, добавляемый перед началом печати…",
  2248. gcodeEndPlaceholder: "G-код, добавляемый после завершения печати…",
  2249. staggerGroupSize: "Размер группы",
  2250. staggerGroupSizeHelp: "Количество принтеров, запускаемых одновременно",
  2251. staggerInterval: "Интервал (мин)",
  2252. staggerIntervalHelp: "Задержка между запуском групп",
  2253. queueDrying: "Автоматическая сушка в очереди",
  2254. queueDryingDescription: "Автоматически сушить филамент в AMS, когда принтер простаивает между заданиями очереди. Запуск определяется указанным выше порогом влажности.",
  2255. queueDryingEnabled: "Включить автоматическую сушку",
  2256. queueDryingEnabledDescription: "Автоматически запускать сушку AMS, когда принтер простаивает и влажность выше порога",
  2257. queueDryingBlock: "Ожидать завершения сушки",
  2258. queueDryingBlockDescription: "Блокировать очередь печати до завершения сушки. Если выключено, печать имеет приоритет.",
  2259. ambientDryingEnabled: "Фоновая сушка",
  2260. ambientDryingEnabledDescription: "Автоматически сушить филамент на простаивающих принтерах при превышении порога влажности, даже если очередь пуста.",
  2261. printDryingEnabled: "Продолжать сушку во время печати",
  2262. printDryingEnabledDescription: "Разрешить автоматической сушке продолжаться во время печати на поддерживаемом оборудовании (H2D, H2C, H2S, P2S, H2D Pro, X2D, X1C, A2L с актуальной прошивкой). Для защиты катушек температура автоматически ограничивается на 5 °C ниже пресета сушки в простое.",
  2263. dryingPresets: "Пресеты сушки",
  2264. dryingPresetsDescription: "Температура и длительность для каждого типа филамента. AMS 2 Pro использует более низкие температуры, AMS-HT поддерживает более высокие.",
  2265. dryingFilament: "Филамент",
  2266. humidityThresholds: "Пороги влажности",
  2267. humidityThresholdsDescription: "Порог запуска автоматической сушки и предупреждений для каждого типа филамента. При смешанной загрузке AMS используется наименьший порог.",
  2268. humidityThresholdCol: "Порог",
  2269. humidityThresholdDefault: "По умолчанию (неизвестные типы)",
  2270. printModal: "Окно запуска печати",
  2271. expandCustomMapping: "Разворачивать пользовательское сопоставление",
  2272. expandCustomMappingDescription: "При печати на нескольких принтерах сразу показывать развёрнутое сопоставление AMS для каждого принтера",
  2273. authentication: "Аутентификация",
  2274. authEnabledDescription: "Доступ к экземпляру защищён аутентификацией пользователей",
  2275. authDisabledDescription: "Включите, чтобы требовать вход и управлять доступом пользователей",
  2276. authDisabledMessage: "Включите аутентификацию, чтобы создавать учётные записи, управлять правами и защитить экземпляр Bambuddy.",
  2277. enableAuthentication: "Включить аутентификацию",
  2278. currentUser: "Текущий пользователь",
  2279. changePassword: "Изменить пароль",
  2280. admin: "Администратор",
  2281. users: "Пользователи",
  2282. addUser: "Добавить пользователя",
  2283. groups: "Группы",
  2284. addGroup: "Добавить группу",
  2285. system: "Система",
  2286. noDescription: "Нет описания",
  2287. userCount: "Пользователей: {{count}}",
  2288. permissionCount: "Разрешений: {{count}}",
  2289. createUser: "Создать пользователя",
  2290. username: "Имя пользователя",
  2291. enterUsername: "Введите имя пользователя",
  2292. password: "Пароль",
  2293. enterPassword: "Введите пароль",
  2294. passwordRequirements: "Не менее 8 символов: одна заглавная и одна строчная буква, одна цифра и один специальный символ.",
  2295. confirmPassword: "Подтвердите пароль",
  2296. confirmPasswordPlaceholder: "Повторите пароль",
  2297. viewReleaseOnGitHub: "Открыть выпуск на GitHub",
  2298. turnAllPlugsOn: "Включить все розетки",
  2299. turnAllPlugsOff: "Выключить все розетки",
  2300. clearNotificationLogs: "Очистить журнал уведомлений",
  2301. clearLogsMessage: "Все записи журнала уведомлений старше 30 дней будут безвозвратно удалены. Это действие нельзя отменить.",
  2302. clearLogs: "Очистить журнал",
  2303. resetUiPreferences: "Сбросить настройки интерфейса",
  2304. resetUiPreferencesMessage: "Будут сброшены порядок боковой панели, тема, компоновка панели, режимы отображения и сортировка. Принтеры, архивы и серверные настройки НЕ изменятся. После очистки страница перезагрузится.",
  2305. resetPreferences: "Сбросить настройки",
  2306. deleteGroupTitle: "Удаление группы",
  2307. deleteGroupMessage: "Удалить эту группу? Пользователи группы потеряют назначенные ей разрешения.",
  2308. deleteGroup: "Удалить группу",
  2309. disableAuthenticationTitle: "Отключение аутентификации",
  2310. disableAuthenticationMessage: "Отключить аутентификацию? Bambuddy станет доступен без входа. Все пользователи останутся в базе данных, но проверка учётных данных выполняться не будет.",
  2311. disableAuthentication: "Отключить аутентификацию",
  2312. configureBambuddy: "Настроить Bambuddy",
  2313. systemDefault: "Системное значение",
  2314. archiveSettings: "Настройки архива",
  2315. newWindow: "Новое окно",
  2316. embeddedOverlay: "Встроенное наложение",
  2317. preferredSlicer: "Предпочитаемый слайсер",
  2318. preferredSlicerDescription: "Слайсер для нарезки внутри приложения через API-службу",
  2319. openInSlicerLabel: "Открывать в слайсере",
  2320. openInSlicerInherit: "Как для API-слайсера",
  2321. openInSlicerDescription: "Настольный слайсер, который открывается кнопкой «Открыть в слайсере». Оставьте «Как для API-слайсера», чтобы наследовать настройку, либо выберите другой локальный слайсер.",
  2322. orcaslicerKnownIssuesWarning: "В OrcaSlicer 2.3.2 и 2.4.0-dev известны ошибки CLI, мешающие нарезке многих 3MF от Bambu: #12426 (сбой на раскрашенных файлах с несколькими экструдерами) и #13386 (слишком строгая проверка диапазонов параметров). До исправления рекомендуется Bambu Studio.",
  2323. useSlicerApi: "Использовать API слайсера",
  2324. useSlicerApiDescription: "Если включено, действия «Нарезать» открывают встроенное окно и обращаются к API-службе слайсера. Если выключено, файл передаётся настольному слайсеру через URI-схему.",
  2325. slicerCard: "Слайсер",
  2326. orcaslicerApiUrl: "URL API-службы OrcaSlicer",
  2327. bambuStudioApiUrl: "URL API-службы Bambu Studio",
  2328. slicerStallTimeout: 'Тайм-аут простоя слайсера (минуты)',
  2329. slicerStallTimeoutDescription: 'Прервать нарезку, если sidecar не сообщает о прогрессе в течение этого времени. Тяжёлые модели, которые продолжают сообщать о прогрессе, не прерываются, сколько бы времени ни потребовалось. Для sidecar без отчёта о прогрессе это значение используется как общий лимит времени.',
  2330. slicerApiUrlDescription: "URL контейнера API-службы слайсера. Оставьте пустым, чтобы использовать значения переменных окружения SLICER_API_URL или BAMBU_STUDIO_API_URL.",
  2331. externalCameras: "Внешние камеры",
  2332. costTracking: "Учёт затрат",
  2333. billingEnabled: "Включить расчёты",
  2334. billingEnabledDescription: "Списывать с пользователей стоимость печати и включить финансовые функции",
  2335. printerKillSwitch: "Автоостановка несанкционированной печати",
  2336. printerKillSwitchDescription: "Немедленно останавливает печать, начатую без разрешения.",
  2337. financeBudgetReset: "Ежемесячный сброс финансового бюджета",
  2338. financeBudgetResetDay: "День сброса",
  2339. financeBudgetResetDayHelp: "В коротких месяцах сброс выполняется в последний день месяца.",
  2340. financeBudgetResetTimezone: "Часовой пояс сброса",
  2341. financeBudgetResetTimezoneHelp: "Начало бюджетного периода рассчитывается в этом часовом поясе.",
  2342. rebuildLedger: "Пересчитать книгу кошелька",
  2343. rebuildLedgerStarted: "Пересчёт книги запущен",
  2344. rebuildLedgerConfirmTitle: "Пересчитать книгу кошелька?",
  2345. rebuildLedgerConfirmMessage: "Книга кошелька будет пересчитана для исправления исторических значений баланса. Запускайте это действие только если понимаете его последствия.",
  2346. rebuildLedgerInProgress: "Запуск пересчёта...",
  2347. printsOnly: "Только печать",
  2348. totalConsumption: "Общее потребление",
  2349. dataManagement: "Управление данными",
  2350. storageUsage: "Использование хранилища",
  2351. storageUsageDescription: "Распределение занятого места по категориям",
  2352. storageUsageTotal: "Всего",
  2353. storageUsageErrors: "Ошибки",
  2354. storageUsageOtherBreakdown: "Прочее (статические ресурсы, скрипты и конфигурационные файлы)",
  2355. storageUsageSystem: "Система",
  2356. storageUsageData: "Данные",
  2357. storageUsageUnavailable: "Сведения об использовании хранилища недоступны",
  2358. clearNotificationLogsDescription: "Удалить записи журнала уведомлений старше 30 дней",
  2359. resetUiPreferencesDescription: "Сбросить порядок боковой панели, тему, режимы отображения и компоновку. Принтеры, архивы и настройки не изменятся.",
  2360. enableHomeAssistant: "Включить Home Assistant",
  2361. enableMqtt: "Включить MQTT",
  2362. useTls: "Использовать TLS",
  2363. enableMetricsEndpoint: "Включить endpoint метрик",
  2364. availableMetrics: "Доступные метрики",
  2365. editUser: "Изменить пользователя",
  2366. deleteUserTitle: "Удаление пользователя",
  2367. groupName: "Название группы",
  2368. leaveEmptyForAnonymous: "Оставьте пустым для анонимного доступа",
  2369. leaveEmptyForNoAuth: "Оставьте пустым, чтобы не использовать аутентификацию",
  2370. enterNewPassword: "Введите новый пароль",
  2371. confirmNewPassword: "Повторите новый пароль",
  2372. enterGroupName: "Введите название группы",
  2373. enterDescriptionOptional: "Введите описание (необязательно)",
  2374. enterCurrentPassword: "Введите текущий пароль",
  2375. enterNewPasswordMin6: "Введите новый пароль (не менее 6 символов)",
  2376. toast: {
  2377. keyCopied: "Ключ скопирован в буфер обмена",
  2378. copyFailed: "Не удалось скопировать ключ",
  2379. keyAddedToBrowser: "Ключ добавлен в обозреватель API",
  2380. clearLogsFailed: "Не удалось очистить журнал",
  2381. uiPreferencesReset: "Настройки интерфейса сброшены. Обновление страницы…",
  2382. authDisabled: "Аутентификация отключена",
  2383. authDisableFailed: "Не удалось отключить аутентификацию",
  2384. apiKeyCreated: "Ключ API создан",
  2385. apiKeyDeleted: "Ключ API удалён",
  2386. userCreated: "Пользователь создан",
  2387. userUpdated: "Пользователь обновлён",
  2388. userDeleted: "Пользователь удалён",
  2389. groupCreated: "Группа создана",
  2390. groupUpdated: "Группа обновлена",
  2391. groupDeleted: "Группа удалена",
  2392. fillRequiredFields: "Заполните все обязательные поля",
  2393. passwordsDoNotMatch: "Пароли не совпадают",
  2394. passwordTooShort: "Пароль должен содержать не менее 8 символов",
  2395. passwordNeedsUppercase: "Пароль должен содержать хотя бы одну заглавную букву",
  2396. passwordNeedsLowercase: "Пароль должен содержать хотя бы одну строчную букву",
  2397. passwordNeedsDigit: "Пароль должен содержать хотя бы одну цифру",
  2398. passwordNeedsSpecial: "Пароль должен содержать хотя бы один специальный символ",
  2399. enterGroupName: "Введите название группы",
  2400. settingsSaved: "Настройки сохранены",
  2401. noPermissionUpdate: "У вас нет прав на изменение настроек",
  2402. cameraSettingsSaved: "Настройки камеры сохранены",
  2403. enterCameraUrl: "Введите URL камеры",
  2404. passwordChanged: "Пароль изменён",
  2405. connectionFailed: "Не удалось подключиться",
  2406. testFailed: "Проверка завершилась ошибкой",
  2407. cameraConnected: "Камера подключена{{resolution}}",
  2408. cameraConnectedCoalesced: "Камера подключена{{resolution}} (используется уже выполняющийся захват)",
  2409. },
  2410. testConnection: "Проверить подключение",
  2411. catalog: {
  2412. spoolCatalog: "Каталог катушек",
  2413. spoolCatalogDescription: "Масса пустых катушек по производителю и типу. Используется для автоматического определения массы при добавлении катушек.",
  2414. searchCatalog: "Поиск по каталогу…",
  2415. addNewEntry: "Добавить запись",
  2416. namePlaceholder: "Название (например, Bambu Lab — пластик)",
  2417. weight: "Масса",
  2418. type: "Тип",
  2419. default: "Стандартная",
  2420. custom: "Пользовательская",
  2421. noMatch: "Ничего не найдено",
  2422. empty: "Каталог пуст",
  2423. deleteEntry: "Удалить запись",
  2424. deleteConfirm: "Удалить «{{name}}»?",
  2425. resetCatalog: "Сбросить каталог",
  2426. resetConfirm: "Сбросить каталог к исходному состоянию? Все пользовательские записи будут удалены.",
  2427. loadFailed: "Не удалось загрузить каталог катушек",
  2428. nameWeightRequired: "Укажите название и массу",
  2429. entryAdded: "Запись добавлена",
  2430. addFailed: "Не удалось добавить запись",
  2431. entryUpdated: "Запись обновлена",
  2432. updateFailed: "Не удалось обновить запись",
  2433. entryDeleted: "Запись удалена",
  2434. deleteFailed: "Не удалось удалить запись",
  2435. resetSuccess: "Каталог сброшен к исходному состоянию",
  2436. resetFailed: "Не удалось сбросить каталог",
  2437. exported: "Экспортировано записей: {{count}}",
  2438. imported: "Импортировано записей: {{added}}, пропущено: {{skipped}}",
  2439. importFailed: "Не удалось импортировать: неверный формат JSON",
  2440. exportTooltip: "Экспортировать каталог в JSON",
  2441. importTooltip: "Импортировать каталог из JSON",
  2442. resetTooltip: "Сбросить к исходному состоянию",
  2443. selectedCount: "Выбрано: {{count}}",
  2444. deleteSelected: "Удалить выбранные",
  2445. bulkDeleteConfirm: "Удалить выбранные записи ({{count}})?",
  2446. bulkDeleted: "Удалено записей: {{count}}",
  2447. bulkDeleteFailed: "Не удалось удалить записи",
  2448. material: "Материал",
  2449. spoolWeight: "Масса катушки",
  2450. color: "Цвет",
  2451. updateSpoolWeight: "Обновить массу катушки",
  2452. filamentUpdated: "Филамент обновлён",
  2453. filamentUpdateFailed: "Не удалось обновить филамент",
  2454. filamentUpdateInvalid: "Некорректные данные филамента",
  2455. keepExistingSpoolWeight: "Сохранить прежнюю массу у существующих катушек",
  2456. keepExistingSpoolWeightDesc: "Катушки, уже созданные с этим типом филамента, сохранят прежнюю массу тары. Для новых катушек будет использоваться обновлённое значение.",
  2457. applyToAllSpools: "Применить ко всем катушкам",
  2458. applyToAllSpoolsDesc: "Все расчёты массы для катушек этого типа немедленно начнут использовать новую массу тары.",
  2459. },
  2460. colorCatalog: {
  2461. title: "Каталог цветов",
  2462. description: "Цвета филамента по производителю и материалу. Используются для автоматического определения цвета при добавлении катушек.",
  2463. searchColors: "Поиск цветов…",
  2464. allManufacturers: "Все производители",
  2465. addNewColor: "Добавить цвет",
  2466. manufacturer: "Производитель",
  2467. colorName: "Название цвета",
  2468. hex: "HEX",
  2469. materialOptional: "Материал (необязательно)",
  2470. showing: "Показано {{filtered}} из {{total}} цветов",
  2471. noMatch: "Подходящие цвета не найдены",
  2472. empty: "Каталог цветов пуст",
  2473. deleteColor: "Удалить цвет",
  2474. deleteConfirm: "Удалить «{{name}}»?",
  2475. resetCatalog: "Сбросить каталог цветов",
  2476. resetConfirm: "Сбросить каталог к исходному состоянию? Все пользовательские цвета будут удалены.",
  2477. sync: "Синхронизировать",
  2478. starting: "Запуск…",
  2479. syncTooltip: "Синхронизировать с FilamentColors.xyz (более 2000 цветов; может занять около минуты)",
  2480. loadFailed: "Не удалось загрузить каталог цветов",
  2481. fieldsRequired: "Укажите производителя, название цвета и HEX-код",
  2482. colorAdded: "Цвет добавлен",
  2483. addFailed: "Не удалось добавить цвет",
  2484. colorUpdated: "Цвет обновлён",
  2485. updateFailed: "Не удалось обновить цвет",
  2486. colorDeleted: "Цвет удалён",
  2487. deleteFailed: "Не удалось удалить цвет",
  2488. resetSuccess: "Каталог цветов сброшен к исходному состоянию",
  2489. resetFailed: "Не удалось сбросить каталог цветов",
  2490. syncUpToDate: "Каталог уже актуален (проверено цветов: {{count}})",
  2491. syncComplete: "Добавлено новых цветов: {{added}}, уже существовало: {{skipped}}",
  2492. syncError: "Ошибка синхронизации",
  2493. syncFailed: "Не удалось синхронизировать каталог с FilamentColors.xyz",
  2494. exported: "Экспортировано цветов: {{count}}",
  2495. imported: "Импортировано цветов: {{added}}, пропущено: {{skipped}}",
  2496. importFailed: "Не удалось импортировать: неверный формат JSON",
  2497. selectedCount: "Выбрано: {{count}}",
  2498. deleteSelected: "Удалить выбранные",
  2499. bulkDeleteConfirm: "Удалить выбранные цвета ({{count}})?",
  2500. bulkDeleted: "Удалено цветов: {{count}}",
  2501. bulkDeleteFailed: "Не удалось удалить цвета",
  2502. },
  2503. dateFormat: "Формат даты",
  2504. dateFormatUs: "США (ММ/ДД/ГГГГ)",
  2505. dateFormatEu: "Европа (ДД/ММ/ГГГГ)",
  2506. dateFormatIso: "ISO (ГГГГ-ММ-ДД)",
  2507. timeFormat: "Формат времени",
  2508. timeFormat12: "12-часовой (3:30 PM)",
  2509. timeFormat24: "24-часовой (15:30)",
  2510. defaultPrinter: "Принтер по умолчанию",
  2511. defaultPrinterDescription: "Предварительно выбирать этот принтер при загрузке файлов, повторной печати и других операциях.",
  2512. slicerBambuStudio: "Bambu Studio",
  2513. slicerOrcaSlicer: "OrcaSlicer",
  2514. sidebarOrderDescription: "Изменяйте порядок, видимость и пользовательские ссылки в настройках боковой панели.",
  2515. setDefault: "Сделать стандартным",
  2516. sidebarOrderSetDefaultHint: "Текущий порядок меню будет применяться к пользователям, которые ещё не настроили его самостоятельно.",
  2517. sidebarDefaultSet: "Стандартный порядок меню сохранён.",
  2518. sidebarDefaultCleared: "Стандартный порядок меню сброшен.",
  2519. sidebarDefaultFailed: "Не удалось сохранить стандартный порядок меню.",
  2520. reset: "Сбросить",
  2521. darkMode: "Тёмная тема",
  2522. lightMode: "Светлая тема",
  2523. active: "(активна)",
  2524. background: "Фон",
  2525. accent: "Акцент",
  2526. style: "Стиль",
  2527. bgNeutral: "Нейтральный",
  2528. bgWarm: "Тёплый",
  2529. bgCool: "Холодный",
  2530. bgOled: "Чёрный OLED",
  2531. bgSlate: "Сланцево-синий",
  2532. bgForest: "Лесной зелёный",
  2533. accentGreen: "Зелёный",
  2534. accentTeal: "Бирюзовый",
  2535. accentBlue: "Синий",
  2536. accentOrange: "Оранжевый",
  2537. accentPurple: "Фиолетовый",
  2538. accentRed: "Красный",
  2539. styleClassic: "Классический",
  2540. styleGlow: "Свечение",
  2541. styleVibrant: "Насыщенный",
  2542. themeToggleHint: "Переключайте тёмную, светлую и системную тему значком в боковой панели.",
  2543. progressInTitle: "Прогресс во вкладке",
  2544. progressInTitleDescription: "Показывает процент текущей печати и кольцо прогресса во вкладке браузера.",
  2545. autoArchivePrints: "Автоматически архивировать печать",
  2546. autoArchiveDescription: "Автоматически сохранять 3MF после завершения печати",
  2547. saveThumbnailsDescription: "Извлекать и сохранять изображения предпросмотра из 3MF",
  2548. captureFinishPhotoDescription: "Сделать снимок камерой принтера после завершения печати. Во время печати Bambuddy записывает короткий таймлапс, чтобы получить кадр до опускания стола. Если таймлапс был включён для задания, файл сохранится; иначе после получения снимка он будет автоматически удалён.",
  2549. finishPhotoRestorePlate: "Поднимать стол для финального снимка",
  2550. finishPhotoRestorePlateDescription: "По окончании печати принтер опускает стол примерно на 100 мм, и готовая модель оказывается ниже кадра камеры. Bambuddy поднимает стол обратно чуть выше последнего напечатанного слоя, делает снимок и снова опускает его. Пропускается, если высота печати неизвестна или в очереди есть другое задание.",
  2551. ffmpegNotInstalled: "ffmpeg не установлен",
  2552. ffmpegRequired: "Для захвата изображения требуется ffmpeg. Установите его командой <brew>brew install ffmpeg</brew> в macOS или <apt>apt install ffmpeg</apt> в Linux.",
  2553. camera: "Камера",
  2554. cameraViewMode: "Режим просмотра камеры",
  2555. cameraOverlayDescription: "Камера открывается поверх основного экрана в окне с изменяемым размером",
  2556. cameraWindowDescription: "Камера открывается в отдельном окне браузера",
  2557. externalCamerasDescription: "Настройка внешних камер вместо встроенной камеры принтера. Поддерживаются потоки MJPEG, RTSP, HTTP-снимки и USB-камеры V4L2. Внешняя камера используется для просмотра в реальном времени и снимков после завершения печати.",
  2558. cameraPlaceholderUsb: "Путь к устройству (/dev/video0)",
  2559. cameraPlaceholderUrl: "URL камеры (rtsp://… или http://…)",
  2560. cameraTypeMjpeg: "Поток MJPEG",
  2561. cameraTypeRtsp: "Поток RTSP",
  2562. cameraTypeSnapshot: "HTTP-снимок",
  2563. cameraTypeUsb: "USB-камера (V4L2)",
  2564. cameraSnapshotUrl: "URL снимка (необязательно)",
  2565. cameraSnapshotUrlPlaceholder: "http://192.168.1.61:1984/api/frame.jpeg?src=printer",
  2566. cameraSnapshotUrlHelp: "URL одиночного кадра для миниатюр уведомлений, снимков после печати, кадров послойного таймлапса и распознавания пластины. Для таймлапса и распознавания пластины должны быть отдельно включены соответствующие настройки принтера; этот URL задаёт лишь источник изображения. Оставьте пустым, чтобы получать кадры из указанного выше видеопотока. Полезно для go2rtc (/api/frame.jpeg) и IP-камер с отдельным endpoint снимка.",
  2567. cameraRotation: "Поворот",
  2568. test: "Проверить",
  2569. connected: "Подключено",
  2570. disconnected: "Отключено",
  2571. currency: "Валюта",
  2572. defaultFilamentCost: "Стоимость филамента по умолчанию (за кг)",
  2573. electricityCost: "Стоимость электроэнергии за кВт·ч",
  2574. energyDisplayMode: "Режим отображения энергии",
  2575. energyModePrintDescription: "На панели показывается сумма энергии, израсходованной во время печати",
  2576. energyModeTotalDescription: "На панели показывается полный расход энергии по данным умных розеток",
  2577. fileManager: "Файловый менеджер",
  2578. createArchiveEntry: "Создавать запись в архиве при печати",
  2579. createArchiveEntryDescription: "При запуске печати из файлового менеджера при необходимости создавать запись в архиве",
  2580. lowDiskSpaceWarning: "Предупреждение о нехватке места",
  2581. lowDiskSpaceDescription: "Показывать предупреждение, когда свободного места остаётся меньше указанного порога",
  2582. printerFirmware: "Прошивка принтера",
  2583. checkFirmwareDescription: "Проверять наличие обновлений прошивки принтера у Bambu Lab",
  2584. bambuddySoftware: "Программное обеспечение Bambuddy",
  2585. autoCheckDescription: "Автоматически проверять наличие новых версий при запуске",
  2586. checkNow: "Проверить сейчас",
  2587. updateAvailableVersion: "Доступно обновление: v{{version}}",
  2588. releaseNotes: "Примечания к выпуску",
  2589. updateViaDocker: "Обновление через Docker Compose:",
  2590. composeDirectory: "Каталог Compose",
  2591. composeDirectoryHint: "Каталог с вашим docker-compose.yml. Оставьте пустым, чтобы не добавлять cd.",
  2592. copyUpdateCommand: "Скопировать команду обновления",
  2593. updateViaHomeAssistant: "Обновления устанавливаются через Home Assistant Supervisor. Чтобы установить новую версию, откройте в Home Assistant: Настройки → Дополнения → Bambuddy.",
  2594. updateViaWindowsInstaller: "В Windows обновление выполняется повторным запуском установщика. Скачайте новую версию ниже — данные, настройки и принтеры сохранятся.",
  2595. downloadWindowsInstaller: "Скачать установщик v{{version}}",
  2596. installUpdate: "Установить обновление",
  2597. latestVersionRunning: "Установлена последняя версия",
  2598. failedToCheckUpdates: "Не удалось проверить обновления: {{error}}",
  2599. backupRestore: "Резервное копирование и восстановление",
  2600. backupRestoreDescription: "Экспорт и импорт настроек, а также резервное копирование в GitHub",
  2601. goToBackup: "Перейти к резервным копиям",
  2602. externalUrl: "Внешний URL",
  2603. externalUrlDescription: "Внешний адрес, по которому доступен Bambuddy. Используется для изображений в уведомлениях и внешних интеграций.",
  2604. bambuddyUrl: "URL Bambuddy",
  2605. externalUrlHint: "Укажите протокол и порт, например http://192.168.1.100:8000",
  2606. ftpRetry: "Повтор FTP-операций",
  2607. ftpRetryDescription: "Повторять FTP-операции при нестабильном Wi‑Fi принтера. Применяется к скачиванию 3MF и таймлапсов, загрузке заданий и обновлению прошивки.",
  2608. autoRetryDescription: "Автоматически повторять неудачные FTP-операции",
  2609. retryAttempts: "Количество попыток",
  2610. retryDelay: "Задержка между попытками",
  2611. connectionTimeout: "Тайм-аут подключения",
  2612. time_one: "{{count}} раз",
  2613. time_other: "{{count}} раз",
  2614. second_one: "{{count}} секунда",
  2615. second_other: "{{count}} секунд",
  2616. nSeconds: "{{count}} секунд",
  2617. increaseForWeakWifi: "Увеличьте для принтеров со слабым Wi‑Fi",
  2618. homeAssistant: "Home Assistant",
  2619. homeAssistantFullDescription: "Подключение к Home Assistant для управления умными розетками через REST API. Поддерживаются сущности switch, light, input_boolean и script.",
  2620. homeAssistantUrl: "URL Home Assistant",
  2621. longLivedAccessToken: "Долгосрочный токен доступа",
  2622. haTokenHint: "Создайте токен в Home Assistant: Профиль → Долгосрочные токены доступа → Создать токен",
  2623. connectionSuccessful: "Подключение установлено",
  2624. connectionFailed: "Подключиться не удалось",
  2625. haConnectionSuccess: "Подключение к Home Assistant установлено.",
  2626. haConnectionFailed: "Не удалось подключиться к Home Assistant.",
  2627. mqttPublishing: "Публикация MQTT",
  2628. mqttDescription: "Публикация событий Bambuddy во внешнем MQTT-брокере для интеграции с Node-RED, Home Assistant и другими системами автоматизации.",
  2629. mqttEnableDescription: "Публиковать события во внешнем MQTT-брокере",
  2630. brokerHostname: "Имя хоста брокера",
  2631. port: "Порт",
  2632. usernameOptional: "Имя пользователя (необязательно)",
  2633. passwordOptional: "Пароль (необязательно)",
  2634. topicPrefix: "Префикс топиков",
  2635. topicPrefixHint: "Топики будут иметь вид {{prefix}}/printers/<serial>/status и т. п.",
  2636. prometheusMetrics: "Метрики Prometheus",
  2637. prometheusEndpointDescription: "Публиковать метрики принтеров по адресу <code>/api/v1/metrics</code> для мониторинга в Prometheus/Grafana.",
  2638. bearerTokenOptional: "Bearer-токен (необязательно)",
  2639. bearerTokenHint: "Если задан, запросы должны содержать <code>Authorization: Bearer <token></code>",
  2640. metricsConnectionStatus: "Состояние подключения",
  2641. metricsPrinterState: "Состояние принтера (ожидание, печать и т. п.)",
  2642. metricsPrintProgress: "Прогресс печати, 0–100 %",
  2643. metricsBedTemp: "Температура стола",
  2644. metricsNozzleTemp: "Температура сопла",
  2645. metricsPrintsTotal: "Общее количество заданий по результату",
  2646. metricsMore: "…и другие данные: слои, вентиляторы, очередь, расход филамента",
  2647. smartPlugsDescription: "Подключение умных розеток Tasmota или Home Assistant для автоматического управления питанием принтеров и учёта энергопотребления.",
  2648. allOn: "Включить все",
  2649. allOff: "Выключить все",
  2650. addSmartPlug: "Добавить умную розетку",
  2651. energySummary: "Сводка энергопотребления",
  2652. currentPower: "Текущая мощность",
  2653. plugsOnline: "Розеток в сети: {{reachable}}/{{total}}",
  2654. today: "Сегодня",
  2655. yesterday: "Вчера",
  2656. total: "Всего",
  2657. enablePlugsForSummary: "Включите розетки, чтобы увидеть сводку энергопотребления",
  2658. addNotificationProvider: "Добавить",
  2659. systemBadge: "(системная)",
  2660. creating: "Создание…",
  2661. changing: "Изменение…",
  2662. deleteUserAndItems: "Удалить пользователя И его объекты",
  2663. deleteUserKeepItems: "Удалить пользователя, объекты оставить без владельца",
  2664. ok: "ОК",
  2665. twoFa: {
  2666. totpTitle: "Приложение-аутентификатор (TOTP)",
  2667. totpDesc: "Использовать приложение-аутентификатор, например Google Authenticator, Aegis или Authy.",
  2668. emailOtpTitle: "Одноразовый код по электронной почте",
  2669. emailOtpDesc: "Отправлять одноразовый код на {{email}} при входе.",
  2670. emailOtpNoEmail: "Добавьте адрес электронной почты в учётную запись, чтобы включить этот способ.",
  2671. addEmailFirst: "В вашей учётной записи нет адреса электронной почты. Перед включением одноразовых кодов попросите администратора добавить его.",
  2672. setupTotp: "Настроить приложение-аутентификатор",
  2673. setupAuthApp: "Настроить приложение-аутентификатор",
  2674. setupInstructions: "Отсканируйте QR-код приложением-аутентификатором, затем подтвердите настройку кодом.",
  2675. manualEntry: "Не получается отсканировать? Введите этот секрет вручную:",
  2676. scannedContinue: "Код отсканирован — продолжить",
  2677. enterCodeToConfirm: "Для подтверждения настройки введите шестизначный код из приложения-аутентификатора.",
  2678. activate: "Активировать",
  2679. disableTotp: "Отключить аутентификатор",
  2680. disableConfirmHint: "Чтобы отключить аутентификатор, введите действующий код TOTP или резервный код.",
  2681. totpDisabled: "Приложение-аутентификатор отключено.",
  2682. emailOtpEnabled: "Одноразовые коды по электронной почте включены.",
  2683. emailOtpDisabled: "Одноразовые коды по электронной почте отключены.",
  2684. smtpRequired: "Сначала настройте и проверьте SMTP.",
  2685. invalidCode: "Неверный код. Повторите попытку.",
  2686. enableEmailOtp: "Включить одноразовые коды по электронной почте",
  2687. disableEmailOtp: "Отключить одноразовые коды по электронной почте",
  2688. emailSetupEnterCode: "Код подтверждения отправлен на вашу электронную почту. Введите его ниже, чтобы подтвердить доступ к этому почтовому ящику.",
  2689. verifyAndEnable: "Подтвердить и включить",
  2690. emailDisablePasswordHint: "Чтобы подтвердить отключение одноразовых кодов по электронной почте, введите пароль учётной записи.",
  2691. passwordPlaceholder: "Введите пароль",
  2692. backupCodesTitle: "Сохраните резервные коды",
  2693. backupCodesWarning: "Сохраните эти коды в надёжном месте. Каждый код можно использовать только один раз; повторно они показаны не будут.",
  2694. backupCodesRemaining: "Осталось резервных кодов: {{count}}",
  2695. savedCodes: "Я сохранил коды",
  2696. regenBackup: "Создать новые резервные коды",
  2697. regenBackupHint: "Введите текущий код TOTP, чтобы создать 10 новых резервных кодов. Все существующие резервные коды станут недействительными.",
  2698. newBackupCodes: "Новые резервные коды",
  2699. linkedAccounts: "Связанные учётные записи SSO",
  2700. linkedAccountsDesc: "Эти внешние провайдеры идентификации связаны с вашей учётной записью.",
  2701. oidcUnlinked: "Учётная запись отсоединена.",
  2702. },
  2703. sessionPolicy: {
  2704. title: "Политика сеансов",
  2705. description: "Максимальный срок действия сеанса для новых входов пользователей. Уже выданные токены сохраняют исходный срок действия.",
  2706. preset24h: "24 часа",
  2707. preset7d: "7 дней",
  2708. preset30d: "30 дней",
  2709. customHoursLabel: "Срок действия сеанса в часах",
  2710. hoursSuffix: "часов",
  2711. warning: "Длительные сеансы снижают защиту автоматическим выходом. Рекомендуется только для доверенных установок с одним пользователем.",
  2712. },
  2713. oidc: {
  2714. title: "Провайдеры SSO / OIDC",
  2715. desc: "Настройка провайдеров OpenID Connect для единого входа через внешние службы идентификации.",
  2716. addProvider: "Добавить провайдера",
  2717. newProvider: "Новый провайдер",
  2718. empty: "Провайдеры OIDC пока не настроены.",
  2719. created: "Провайдер создан.",
  2720. updated: "Провайдер обновлён.",
  2721. deleted: "Провайдер удалён.",
  2722. refreshIcon: "Обновить значок",
  2723. removeIcon: "Удалить значок",
  2724. iconRefreshed: "Значок обновлён.",
  2725. iconRemoved: "Значок удалён.",
  2726. iconFetchFailed: "Не удалось получить значок по URL провайдера.",
  2727. deleteTitle: "Удалить провайдера",
  2728. deleteMessage: "Удалить «{{name}}»? Все связанные учётные записи пользователей будут отсоединены.",
  2729. form: {
  2730. name: "Отображаемое имя",
  2731. issuerUrl: "URL издателя",
  2732. clientId: "Идентификатор клиента",
  2733. clientSecret: "Секрет клиента",
  2734. scopes: "Области доступа",
  2735. iconUrl: "URL значка (необязательно)",
  2736. enabled: "Включён",
  2737. autoCreate: "Автоматически создавать пользователей",
  2738. autoCreateDesc: "Автоматически создавать локальную учётную запись при первом входе.",
  2739. autoLink: "Автоматически связывать существующие учётные записи",
  2740. autoLinkDesc: "При первом входе связывать локальные учётные записи по совпадающему адресу электронной почты.",
  2741. secretHint: "оставьте пустым, чтобы сохранить текущий",
  2742. secretPlaceholder: "новый секрет",
  2743. emailClaim: "Поле электронной почты",
  2744. emailClaimDesc: "Поле JWT, используемое как адрес электронной почты. Для Azure Entra ID, который не передаёт email_verified, используйте preferred_username или upn. Указывайте только доверенные поля.",
  2745. emailClaimPlaceholder: "email",
  2746. emailClaimCustomClaimAutoLinkWarning: "Пользовательское поле безопасно для автоматического связывания только тогда, когда его значение назначается администратором арендатора, например upn или preferred_username в Azure Entra ID. Не включайте автоматическое связывание, если ваш IdP позволяет пользователям самостоятельно задавать это поле.",
  2747. requireEmailVerified: "Требовать подтверждённый адрес электронной почты",
  2748. requireEmailVerifiedDesc: "Принимать адрес электронной почты только в том случае, если провайдер пометил его как подтверждённый.",
  2749. requireEmailVerifiedWarning: "Предупреждение: адрес будет принят даже без подтверждения. Используйте только с доверенными провайдерами.",
  2750. requireEmailVerifiedAutoLink: "Чтобы изменить этот параметр, сначала отключите автоматическое связывание.",
  2751. defaultGroup: "Группа по умолчанию",
  2752. defaultGroupDesc: "Группа для автоматически созданных пользователей. Если не задана, используется группа «Наблюдатели».",
  2753. defaultGroupViewersFallback: "Наблюдатели (по умолчанию)",
  2754. autologin: "Автоматический вход",
  2755. autologinDesc: "Сразу перенаправлять неавторизованных посетителей к этому провайдеру. Этот флаг может быть установлен только у одного провайдера.",
  2756. },
  2757. },
  2758. encryption: {
  2759. title: "Состояние шифрования MFA",
  2760. enabledFromEnv: "Шифрование данных включено; ключ получен из переменной окружения MFA_ENCRYPTION_KEY",
  2761. enabledFromFile: "Шифрование данных включено; ключ загружен из каталога данных",
  2762. enabledGenerated: "Шифрование данных включено с автоматически созданным ключом",
  2763. notConfigured: "Шифрование хранимых данных не настроено",
  2764. notConfiguredDesc: "Секреты TOTP и client_secret провайдеров OIDC хранятся открытым текстом. Задайте MFA_ENCRYPTION_KEY или перезапустите Bambuddy с доступным для записи каталогом данных, чтобы ключ был создан автоматически.",
  2765. allEncrypted: "Все секреты MFA зашифрованы при хранении.",
  2766. legacyRowsLabel: "Старые записи открытым текстом",
  2767. encryptedRowsLabel: "Зашифрованные записи",
  2768. legacyRowsWarning: "Обнаружено старых записей открытым текстом: {{count}}. Чтобы перенести их в зашифрованное хранилище, повторно сохраните провайдера OIDC или заново подключите приложение-аутентификатор пользователя.",
  2769. backupHint: "Автоматически созданный ключ хранится в DATA_DIR/.mfa_encryption_key и включается в локальные ZIP-копии. Храните резервные копии в безопасном месте либо задайте MFA_ENCRYPTION_KEY явно.",
  2770. decryptionBrokenTitle: "Отсутствует ключ шифрования",
  2771. decryptionBrokenError: "Невозможно расшифровать записей: {{count}}, поскольку ключ шифрования больше недоступен. Для восстановления верните прежний MFA_ENCRYPTION_KEY или файл DATA_DIR/.mfa_encryption_key.",
  2772. migrationErrorWarning: "Не удалось повторно зашифровать старых записей при запуске: {{count}}. Проверьте журнал сервера и перезапустите Bambuddy для повторной попытки.",
  2773. },
  2774. pipelineLimits: {
  2775. title: "Ограничения конвейеров слайсера",
  2776. maxCopiesLabel: "Максимум копий за запуск",
  2777. maxCopiesDesc: "Верхний предел количества копий, которое оператор может запросить при запуске конвейера. Жёсткое серверное ограничение — 1000.",
  2778. },
  2779. pipelines: {
  2780. title: "Конвейеры слайсера",
  2781. subtitle: "Повторно используемые наборы профилей: принтер, процесс, филаменты и тип стола. Сохраните набор в окне нарезки и применяйте его к следующему файлу одним нажатием.",
  2782. loading: "Загрузка конвейеров...",
  2783. loadError: "Не удалось загрузить конвейеры.",
  2784. confirmDelete: "Удалить этот конвейер? Отменить действие нельзя.",
  2785. staleWarning: "Один или несколько связанных профилей больше не существуют. Чтобы исправить конвейер, повторно сохраните его из окна нарезки.",
  2786. empty: {
  2787. title: "Конвейеров пока нет.",
  2788. howto: "Откройте окно нарезки любого файла, выберите принтер, процесс, филаменты и тип стола, затем нажмите «Сохранить как конвейер». Сохранённые конвейеры появятся здесь.",
  2789. },
  2790. field: {
  2791. name: "Название конвейера",
  2792. description: "Описание",
  2793. targetPrinter: "Целевой принтер",
  2794. noTarget: "— Цель не задана —",
  2795. targetKind: "Тип цели",
  2796. targetKindSpecific: "Конкретный принтер",
  2797. targetKindClass: "Класс принтеров",
  2798. targetModelClass: "Модель принтера",
  2799. fanoutStrategy: "Стратегия распределения",
  2800. fanout: {
  2801. max_parallel: "Максимум параллельно — распределять между любыми свободными подходящими принтерами",
  2802. round_robin: "По кругу — последовательно чередовать подходящие принтеры",
  2803. fill_one_first: "Сначала один — назначить все копии одному принтеру",
  2804. },
  2805. fanoutShort: {
  2806. max_parallel: "параллельно",
  2807. round_robin: "по кругу",
  2808. fill_one_first: "сначала один",
  2809. },
  2810. },
  2811. action: {
  2812. save: "Сохранить",
  2813. cancel: "Отмена",
  2814. rename: "Переименовать",
  2815. delete: "Удалить",
  2816. },
  2817. slot: {
  2818. printer: "Принтер",
  2819. process: "Процесс",
  2820. filament: "Филамент",
  2821. filamentN: "Филамент {{n}}",
  2822. filamentAll: "Все слоты: {{n}}",
  2823. bed: "Стол",
  2824. },
  2825. group: {
  2826. profiles: "Профили",
  2827. filaments: "Филаменты",
  2828. },
  2829. searchPlaceholder: "Поиск конвейеров...",
  2830. filterTargetType: "Фильтр по типу цели",
  2831. filterTarget: "Фильтр по цели",
  2832. filter: {
  2833. all: "Все цели",
  2834. noTarget: "Цель не задана",
  2835. count: "{{shown}} из {{total}}",
  2836. noMatches: "Нет конвейеров, соответствующих текущим фильтрам.",
  2837. },
  2838. toast: {
  2839. saved: "Конвейер сохранён",
  2840. saveFailed: "Не удалось сохранить",
  2841. deleted: "Конвейер удалён",
  2842. deleteFailed: "Не удалось удалить",
  2843. },
  2844. noTargetHint: "Чтобы запустить, задайте целевой принтер",
  2845. noTargetWarning: "Перед запуском конвейера задайте целевой принтер.",
  2846. runs: {
  2847. lastRun: "Последний запуск",
  2848. status: {
  2849. queued: "в очереди",
  2850. slicing: "нарезка",
  2851. dispatching: "назначение",
  2852. in_progress: "печать",
  2853. completed: "завершено",
  2854. failed: "ошибка",
  2855. partial_failure: "частичная ошибка",
  2856. cancelled: "отменено",
  2857. },
  2858. },
  2859. },
  2860. },
  2861. notification: {
  2862. printStarted: {
  2863. title: "Печать началась",
  2864. body: "{{printer}}: началась печать файла {{filename}}",
  2865. },
  2866. printCompleted: {
  2867. title: "Печать завершена",
  2868. body: "{{printer}}: файл {{filename}} успешно напечатан",
  2869. },
  2870. printFailed: {
  2871. title: "Ошибка печати",
  2872. body: "{{printer}}: печать файла {{filename}} завершилась ошибкой",
  2873. },
  2874. printStopped: {
  2875. title: "Печать остановлена",
  2876. body: "{{printer}}: печать файла {{filename}} остановлена",
  2877. },
  2878. printProgress: {
  2879. title: "Ход печати",
  2880. body: "{{printer}}: файл {{filename}} напечатан на {{percent}}%",
  2881. },
  2882. printerOffline: {
  2883. title: "Принтер не в сети",
  2884. body: "{{printer}} не в сети",
  2885. },
  2886. printerError: {
  2887. title: "Ошибка принтера",
  2888. body: "{{printer}}: {{error}}",
  2889. },
  2890. filamentLow: {
  2891. title: "Заканчивается филамент",
  2892. body: "{{printer}}: осталось мало филамента",
  2893. },
  2894. maintenanceDue: {
  2895. title: "Требуется обслуживание",
  2896. body: "{{printer}}: требуют внимания: {{items}}",
  2897. },
  2898. },
  2899. errors: {
  2900. generic: "Что-то пошло не так",
  2901. networkError: "Ошибка сети. Проверьте подключение.",
  2902. notFound: "Не найдено",
  2903. unauthorized: "Доступ не разрешён",
  2904. serverError: "Ошибка сервера",
  2905. validationError: "Проверьте введённые данные",
  2906. printerConnectionFailed: "Не удалось подключиться к принтеру",
  2907. saveFailed: "Не удалось сохранить изменения",
  2908. deleteFailed: "Не удалось удалить",
  2909. loadFailed: "Не удалось загрузить данные",
  2910. },
  2911. hmsErrors: {
  2912. title: "Ошибки — {{name}}",
  2913. noErrors: "Ошибок нет",
  2914. viewOnWiki: "Открыть в Bambu Lab Wiki",
  2915. mqttVerifyFailedRemedy: "Включите режим разработчика на принтере, перезагрузите принтер и запустите задание снова.",
  2916. unknownCode: "Неизвестный код HMS — подробности см. в Bambu Lab Wiki.",
  2917. clearInstructions: "Устраните ошибки на принтере, чтобы они исчезли из этого списка.",
  2918. clearErrors: "Очистить ошибки",
  2919. clearSuccess: "Ошибки HMS очищены",
  2920. clearFailed: "Не удалось очистить ошибки HMS",
  2921. actionSuccess: "Команда отправлена принтеру",
  2922. actionFailed: "Не удалось отправить команду",
  2923. runoutExpectedSlot: "Филамент закончился в {{ranOut}}. Теперь принтер ожидает совместимый филамент в {{expected}}. Установите катушку в {{expected}}, затем выберите «Повторить».",
  2924. runoutExpectedSlotOnly: "Принтер ожидает совместимый филамент в {{expected}}. Установите туда катушку, затем выберите «Повторить».",
  2925. runoutSlotUnknown: "Филамент закончился, и печать приостановлена. Bambuddy не смог определить, какой слот теперь ожидает принтер. Проверьте запрошенный слот на экране принтера.",
  2926. actions: {
  2927. RESUME_PRINTING: "Продолжить печать",
  2928. RESUME_PRINTING_DEFECTS: "Продолжить (дефекты допустимы)",
  2929. RESUME_PRINTING_PROBELM_SOLVED: "Продолжить (проблема устранена)",
  2930. STOP_PRINTING: "Остановить печать",
  2931. CHECK_ASSISTANT: "Проверить помощник",
  2932. FILAMENT_EXTRUDED: "Филамент выдавливается — продолжить",
  2933. RETRY_FILAMENT_EXTRUDED: "Филамент ещё не выходит — повторить",
  2934. CONTINUE: "Готово — продолжить",
  2935. LOAD_VIRTUAL_TRAY: "Загрузить филамент",
  2936. OK_BUTTON: "ОК",
  2937. FILAMENT_LOAD_RESUME: "Филамент загружен — продолжить",
  2938. JUMP_TO_LIVEVIEW: "Открыть камеру",
  2939. NO_REMINDER_NEXT_TIME: "Больше не напоминать",
  2940. REFRESH_NOZZLE: "Проверить ещё раз",
  2941. IGNORE_NO_REMINDER_NEXT_TIME: "Игнорировать и больше не напоминать",
  2942. IGNORE_RESUME: "Игнорировать и продолжить",
  2943. PROBLEM_SOLVED_RESUME: "Проблема устранена — продолжить",
  2944. TURN_OFF_FIRE_ALARM: "Понятно, отключить пожарную тревогу",
  2945. RETRY_PROBLEM_SOLVED: "Повторить (проблема устранена)",
  2946. CANCLE: "Отмена",
  2947. STOP_DRYING: "Остановить сушку",
  2948. PROCEED: "Продолжить",
  2949. OK_JUMP_RACK: "ОК",
  2950. ABORT: "Прервать",
  2951. DISABLE_PURIFICATION: "Отключить очистку воздуха для этой печати",
  2952. DONT_REMIND_NEXT_TIME: "Больше не напоминать",
  2953. DBL_CHECK_CANCEL: "Отмена",
  2954. DBL_CHECK_DONE: "Готово",
  2955. DBL_CHECK_RETRY: "Повторить",
  2956. DBL_CHECK_RESUME: "Продолжить",
  2957. DBL_CHECK_OK: "Подтвердить",
  2958. REMOVE_CLOSE_BTN: "Закрыть",
  2959. },
  2960. },
  2961. mqttDebug: {
  2962. title: "Журнал отладки MQTT",
  2963. searchPlaceholder: "Поиск по теме или содержимому...",
  2964. noMessages: "Сообщений пока нет",
  2965. startLoggingHint: "Нажмите «Начать запись», чтобы перехватывать сообщения MQTT",
  2966. noMessagesMatch: "Нет сообщений, соответствующих фильтру",
  2967. adjustFilterHint: "Измените запрос или параметры фильтра",
  2968. incoming: "Входящие",
  2969. outgoing: "Исходящие",
  2970. loggingStopped: "Запись остановлена",
  2971. loggingActive: "Запись активна — сообщения обновляются автоматически",
  2972. startLogging: "Начать запись",
  2973. stopLogging: "Остановить запись",
  2974. clearLog: "Очистить журнал",
  2975. topic: "Тема",
  2976. timestamp: "Время",
  2977. direction: "Направление",
  2978. all: "Все",
  2979. },
  2980. printerFiles: {
  2981. zipStarted_one: 'Начато скачивание ZIP для {{count}} файла',
  2982. zipStarted_other: 'Начато скачивание ZIP для {{count}} файлов',
  2983. zipPartial: 'Начато скачивание ZIP с {{successful}} из {{total}} файлов; остальные получить не удалось',
  2984. downloadFailed: 'Ошибка скачивания: {{error}}',
  2985. unknownError: 'Неизвестная ошибка',
  2986. shiftSelectHint: 'Щёлкните с Shift, чтобы выбрать диапазон',
  2987. selectFile: 'Выбрать {{name}}',
  2988. deselectFile: 'Снять выбор с {{name}}',
  2989. title: "Файлы принтера",
  2990. storageUsed: "Занято:",
  2991. storageFree: "Свободно:",
  2992. filterPlaceholder: "Фильтр файлов...",
  2993. deleteButton: "Удалить",
  2994. deleteFiles: "Удалить файлы: {{count}}",
  2995. deleteFileConfirm: "Удалить «{{name}}»? Это действие нельзя отменить.",
  2996. deleteFilesConfirm: "Удалить выбранные файлы ({{count}})? Это действие нельзя отменить.",
  2997. noFiles: "На принтере нет файлов",
  2998. printerUnavailable: 'Файловая служба принтера недоступна. Повторите попытку, когда принтер будет доступен.',
  2999. loadingFiles: "Загрузка файлов...",
  3000. failedToLoad: "Не удалось загрузить файлы",
  3001. toast: {
  3002. filesDeleted: "Удалено файлов: {{count}}",
  3003. deleteFailed: "Не удалось удалить: {{error}}",
  3004. },
  3005. },
  3006. confirm: {
  3007. delete: "Удалить этот объект?",
  3008. unsavedChanges: "Есть несохранённые изменения. Всё равно уйти со страницы?",
  3009. clearQueue: "Очистить очередь печати?",
  3010. },
  3011. login: {
  3012. title: "Вход в Bambuddy",
  3013. subtitle: "Войдите в свою учётную запись",
  3014. username: "Имя пользователя",
  3015. usernamePlaceholder: "Введите имя пользователя",
  3016. usernameOrEmail: "Имя пользователя или email",
  3017. usernameOrEmailPlaceholder: "Имя пользователя или email",
  3018. password: "Пароль",
  3019. passwordPlaceholder: "Введите пароль",
  3020. signIn: "Войти",
  3021. signingIn: "Вход...",
  3022. rememberMe: "Запомнить меня",
  3023. forgotPassword: "Забыли пароль?",
  3024. autologinFailed: "Автоматический вход через SSO не выполнен. Выберите провайдера ниже.",
  3025. localDisabledNotice: "Локальный вход отключён. Используйте одного из SSO-провайдеров ниже.",
  3026. loginSuccess: "Вход выполнен",
  3027. loginFailed: "Не удалось войти",
  3028. enterCredentials: "Введите имя пользователя и пароль",
  3029. enterEmail: "Введите адрес электронной почты",
  3030. oidcLoginFailed: "Ошибка входа через OIDC",
  3031. oidcErrors: {
  3032. providerError: "Провайдер удостоверений вернул ошибку",
  3033. missingParameters: "В ответе OIDC отсутствуют обязательные параметры",
  3034. invalidState: "Состояние OIDC недействительно или уже использовано",
  3035. stateExpired: "Сеанс входа OIDC истёк — повторите попытку",
  3036. providerNotFound: "Провайдер OIDC не найден",
  3037. discoveryFailed: "Не удалось получить документ обнаружения OIDC",
  3038. invalidDiscovery: "Документ обнаружения OIDC недействителен",
  3039. networkError: "Сетевая ошибка при обмене токена OIDC",
  3040. badResponse: "Неожиданный ответ при обмене токена OIDC",
  3041. noIdToken: "Провайдер OIDC не вернул ID-токен",
  3042. validationFailed: "Не удалось проверить токен OIDC",
  3043. nonceMismatch: "Несовпадение nonce OIDC — возможна атака повторного воспроизведения",
  3044. missingSubClaim: "В токене OIDC отсутствует поле sub",
  3045. noLinkedAccount: "С этой учётной записью OIDC не связана локальная учётная запись",
  3046. accountInactive: "Учётная запись неактивна",
  3047. userResolutionFailed: "Не удалось определить учётную запись",
  3048. internalError: "Внутренняя ошибка при входе через OIDC",
  3049. tokenExchangeFailed: "Не удалось обменять токен OIDC",
  3050. },
  3051. forgotPasswordTitle: "Восстановление пароля",
  3052. forgotPasswordMessage: "Обратитесь к системному администратору для сброса пароля.",
  3053. forgotPasswordEmailMessage: "Введите адрес электронной почты, и мы отправим новый пароль.",
  3054. emailAddress: "Адрес электронной почты",
  3055. emailPlaceholder: "your.email@example.com",
  3056. cancel: "Отмена",
  3057. sending: "Отправка...",
  3058. sendResetEmail: "Отправить письмо для сброса",
  3059. howToReset: "Как сбросить пароль:",
  3060. resetStep1: "Свяжитесь с администратором Bambuddy",
  3061. resetStep2: "Попросите сбросить пароль в разделе управления пользователями",
  3062. resetStep3: "Администратор задаст новый временный пароль",
  3063. resetStep4: "Войдите с новым паролем и измените его в настройках",
  3064. gotIt: "Понятно",
  3065. resetPassword: {
  3066. title: "Новый пароль",
  3067. subtitle: "Введите и подтвердите новый пароль.",
  3068. newPassword: "Новый пароль",
  3069. newPasswordPlaceholder: "Не менее 8 символов",
  3070. confirmPassword: "Подтверждение пароля",
  3071. confirmPasswordPlaceholder: "Повторите новый пароль",
  3072. saving: "Сохранение…",
  3073. submit: "Установить новый пароль",
  3074. backToLogin: "Вернуться ко входу",
  3075. passwordsDoNotMatch: "Пароли не совпадают",
  3076. passwordTooShort: "Пароль должен содержать не менее 8 символов",
  3077. resetFailed: "Не удалось сбросить пароль. Возможно, ссылка устарела.",
  3078. },
  3079. twoFA: {
  3080. title: "Двухфакторная аутентификация",
  3081. subtitle: "Учётная запись защищена 2FA. Введите код подтверждения.",
  3082. methodAuthenticator: "Приложение-аутентификатор",
  3083. methodEmail: "Код по email",
  3084. methodBackup: "Резервный код",
  3085. instructionsTotp: "Откройте приложение-аутентификатор и введите шестизначный код Bambuddy.",
  3086. instructionsEmail: "Шестизначный код отправлен на вашу электронную почту. Он действует 10 минут.",
  3087. instructionsEmailNotSent: "Нажмите кнопку ниже, чтобы получить код подтверждения по email.",
  3088. instructionsBackup: "Введите один из восьмизначных резервных кодов восстановления. Каждый код используется только один раз.",
  3089. sendCodeButton: "Отправить код по email",
  3090. sendingCode: "Отправка...",
  3091. resendCode: "Отправить код повторно",
  3092. codeLabel: "Код подтверждения",
  3093. backupCodeLabel: "Резервный код",
  3094. codePlaceholder: "000000",
  3095. backupCodePlaceholder: "XXXXXXXX",
  3096. verifyButton: "Подтвердить",
  3097. verifyingButton: "Проверка...",
  3098. backToLogin: "← Вернуться ко входу",
  3099. orContinueWith: "или продолжить через",
  3100. signInWith: "Войти через {{provider}}",
  3101. enterCode: "Введите код подтверждения",
  3102. sendCodeFailed: "Не удалось отправить код подтверждения",
  3103. invalidCode: "Неверный код. Повторите попытку.",
  3104. },
  3105. },
  3106. setup: {
  3107. title: "Настройка Bambuddy",
  3108. subtitle: "Настройте аутентификацию для этого экземпляра Bambuddy",
  3109. enableAuth: "Включить аутентификацию",
  3110. adminAccount: "Учётная запись администратора",
  3111. adminAccountDesc: "Если администраторы уже существуют, аутентификация будет включена с использованием существующих учётных записей. Оставьте поля пустыми или введите данные для создания нового администратора.",
  3112. adminUsername: "Имя администратора",
  3113. adminPassword: "Пароль администратора",
  3114. optionalIfAdminExists: "(необязательно, если администратор уже существует)",
  3115. adminUsernamePlaceholder: "Введите имя администратора (необязательно)",
  3116. adminPasswordPlaceholder: "Введите пароль администратора (необязательно)",
  3117. confirmPassword: "Подтвердите пароль",
  3118. confirmPasswordPlaceholder: "Повторите пароль администратора",
  3119. settingUp: "Настройка...",
  3120. completeSetup: "Завершить настройку",
  3121. toast: {
  3122. authEnabledAdminCreated: "Аутентификация включена, администратор создан",
  3123. authEnabledExistingAdmins: "Аутентификация включена для существующих администраторов",
  3124. setupCompleted: "Настройка завершена",
  3125. enterBothCredentials: "Введите имя и пароль администратора либо оставьте оба поля пустыми",
  3126. passwordsDoNotMatch: "Пароли не совпадают",
  3127. passwordTooShort: "Пароль должен содержать не менее 6 символов",
  3128. },
  3129. },
  3130. changePassword: {
  3131. title: "Изменение пароля",
  3132. currentPassword: "Текущий пароль",
  3133. currentPasswordPlaceholder: "Введите текущий пароль",
  3134. newPassword: "Новый пароль",
  3135. newPasswordPlaceholder: "Введите новый пароль (не менее 6 символов)",
  3136. confirmPassword: "Подтвердите новый пароль",
  3137. confirmPasswordPlaceholder: "Повторите новый пароль",
  3138. passwordsDoNotMatch: "Пароли не совпадают",
  3139. passwordTooShort: "Пароль должен содержать не менее 6 символов",
  3140. changing: "Изменение...",
  3141. success: "Пароль изменён",
  3142. failed: "Не удалось изменить пароль",
  3143. },
  3144. plateAlert: {
  3145. title: "Печать приостановлена!",
  3146. message: "На печатной пластине обнаружены объекты. Печать автоматически приостановлена. Очистите пластину и продолжите печать.",
  3147. understand: "Понятно",
  3148. },
  3149. camera: {
  3150. title: "Камера",
  3151. invalidPrinterId: "Неверный идентификатор принтера",
  3152. live: "Прямой эфир",
  3153. snapshot: "Снимок",
  3154. restartStream: "Перезапустить поток",
  3155. refreshSnapshot: "Обновить снимок",
  3156. fullscreen: "На весь экран",
  3157. exitFullscreen: "Выйти из полноэкранного режима",
  3158. connectingToCamera: "Подключение к камере...",
  3159. capturingSnapshot: "Создание снимка...",
  3160. connectionLost: "Соединение потеряно",
  3161. connectionFailed: "Не удалось подключиться к камере",
  3162. reconnecting: "Повторное подключение через {{countdown}} с... (попытка {{attempt}} из {{max}})",
  3163. reconnectNow: "Подключиться сейчас",
  3164. cameraUnavailable: "Камера недоступна",
  3165. cameraUnavailableDesc: "Убедитесь, что принтер включён и подключён к сети.",
  3166. noCamera: "Камера отсутствует",
  3167. retry: "Повторить",
  3168. cameraStream: "Видеопоток камеры",
  3169. zoomOut: "Уменьшить",
  3170. zoomIn: "Увеличить",
  3171. resetZoom: "Сбросить масштаб",
  3172. recording: "Запись",
  3173. startRecording: "Начать запись",
  3174. stopRecording: "Остановить запись",
  3175. chamberLight: "Переключить освещение камеры принтера",
  3176. unavailable: "Камера недоступна",
  3177. diagnose: {
  3178. button: "Диагностика",
  3179. modalTitle: "Диагностика камеры",
  3180. running: "Выполняется диагностика...",
  3181. runFailed: "Не удалось выполнить диагностику: {{error}}",
  3182. retry: "Запустить снова",
  3183. stage: {
  3184. tcp_reachable: "Доступность по сети",
  3185. first_frame: "Получение кадра",
  3186. live_stream_active: "Активный видеопоток",
  3187. },
  3188. summary: {
  3189. all_ok: "Камера работает. Все этапы диагностики завершены успешно.",
  3190. live_stream_active_healthy: "Камера уже передаёт свежие кадры — дополнительная проверка не требуется.",
  3191. printer_unreachable: "Принтер недоступен. Проверьте IP-адрес, сетевое подключение и питание принтера.",
  3192. camera_port_closed: "Принтер доступен, но порт камеры закрыт. Убедитесь, что в настройках принтера включены режим «Только LAN» и режим разработчика.",
  3193. no_frame: "Подключение к камере установлено, но кадры не поступают. Повторите попытку или проверьте, включена ли камера в настройках принтера.",
  3194. unknown_failure: "Диагностика камеры завершилась неизвестной ошибкой. Подробности см. в журнале поддержки.",
  3195. },
  3196. meta: {
  3197. protocol: "Протокол",
  3198. port: "Порт",
  3199. profile: "Профиль",
  3200. },
  3201. },
  3202. },
  3203. groups: {
  3204. title: "Управление группами",
  3205. subtitle: "Настройка групп разрешений для контроля доступа",
  3206. backToSettings: "Вернуться к настройкам",
  3207. createGroup: "Создать группу",
  3208. noPermission: "У вас нет доступа к этой странице.",
  3209. system: "Системная",
  3210. noDescription: "Без описания",
  3211. usersCount: "Пользователей: {{count}}",
  3212. permissionsCount: "Разрешений: {{count}}",
  3213. edit: "Изменить",
  3214. delete: "Удалить",
  3215. toast: {
  3216. created: "Группа создана",
  3217. updated: "Группа обновлена",
  3218. deleted: "Группа удалена",
  3219. enterGroupName: "Введите название группы",
  3220. },
  3221. modal: {
  3222. editGroup: "Изменение группы",
  3223. createGroup: "Создание группы",
  3224. cancel: "Отмена",
  3225. saving: "Сохранение...",
  3226. creating: "Создание...",
  3227. saveChanges: "Сохранить изменения",
  3228. },
  3229. form: {
  3230. groupName: "Название группы",
  3231. groupNamePlaceholder: "Введите название группы",
  3232. systemGroupWarning: "Названия системных групп изменить нельзя",
  3233. description: "Описание",
  3234. descriptionPlaceholder: "Введите описание (необязательно)",
  3235. permissions: "Разрешения (выбрано: {{count}})",
  3236. },
  3237. deleteModal: {
  3238. title: "Удаление группы",
  3239. message: "Удалить эту группу? Входящие в неё пользователи потеряют соответствующие разрешения.",
  3240. confirm: "Удалить группу",
  3241. },
  3242. editor: {
  3243. title: "Изменение группы",
  3244. createTitle: "Создание группы",
  3245. search: "Поиск разрешений...",
  3246. selectAll: "Выбрать все",
  3247. clearAll: "Очистить выбор",
  3248. permissionsSelected: "Выбрано: {{count}}",
  3249. noResults: "Нет разрешений, соответствующих запросу",
  3250. websocketHint: "Необходимо для обновлений в реальном времени. Без этого интерфейс будет периодически опрашивать сервер.",
  3251. },
  3252. },
  3253. users: {
  3254. title: "Управление пользователями",
  3255. subtitle: "Управление пользователями и их доступом к Bambuddy",
  3256. backToSettings: "Вернуться к настройкам",
  3257. createUser: "Создать пользователя",
  3258. noPermission: "У вас нет доступа к этой странице.",
  3259. admin: "Администратор",
  3260. noGroups: "Без групп",
  3261. active: "Активен",
  3262. inactive: "Отключён",
  3263. edit: "Изменить",
  3264. delete: "Удалить",
  3265. system: "Системный",
  3266. noGroupsAvailable: "Нет доступных групп",
  3267. table: {
  3268. username: "Имя пользователя",
  3269. groups: "Группы",
  3270. status: "Состояние",
  3271. actions: "Действия",
  3272. },
  3273. toast: {
  3274. created: "Пользователь создан",
  3275. updated: "Пользователь обновлён",
  3276. deleted: "Пользователь удалён",
  3277. fillRequired: "Заполните все обязательные поля",
  3278. passwordsDoNotMatch: "Пароли не совпадают",
  3279. passwordTooShort: "Пароль должен содержать не менее 6 символов",
  3280. ldapProvisioned: "Пользователь LDAP «{{username}}» добавлен",
  3281. },
  3282. modal: {
  3283. createUser: "Создание пользователя",
  3284. editUser: "Изменение пользователя",
  3285. cancel: "Отмена",
  3286. creating: "Создание...",
  3287. saving: "Сохранение...",
  3288. saveChanges: "Сохранить изменения",
  3289. advancedAuthSubtitle: "с расширенной аутентификацией",
  3290. tabsAriaLabel: "Источник пользователя",
  3291. localTab: "Локальный",
  3292. ldapTab: "LDAP",
  3293. ldapSearchLabel: "Поиск в каталоге",
  3294. ldapSearchPlaceholder: "Введите имя пользователя, имя или email...",
  3295. ldapMinChars: "Для поиска введите не менее 2 символов",
  3296. ldapTypeToSearch: "Начните вводить запрос для поиска в каталоге LDAP",
  3297. ldapSearching: "Поиск в каталоге...",
  3298. ldapNoResults: "В каталоге нет подходящих пользователей",
  3299. ldapSearchError: "Ошибка поиска в каталоге. Проверьте состояние сервера LDAP.",
  3300. ldapAlreadyProvisioned: "Уже добавлен",
  3301. ldapSelectedLabel: "Выбран",
  3302. ldapProvision: "Добавить пользователя",
  3303. ldapProvisioning: "Добавление...",
  3304. ldapErrorProvision: "Не удалось добавить пользователя. Проверьте сервер LDAP и повторите попытку.",
  3305. },
  3306. form: {
  3307. username: "Имя пользователя",
  3308. usernamePlaceholder: "Введите имя пользователя",
  3309. email: "Электронная почта",
  3310. emailPlaceholder: "user@example.com",
  3311. password: "Пароль",
  3312. passwordPlaceholder: "Введите пароль",
  3313. confirmPassword: "Подтверждение пароля",
  3314. confirmPasswordPlaceholder: "Повторите пароль",
  3315. newPasswordPlaceholder: "Введите новый пароль",
  3316. confirmNewPasswordPlaceholder: "Повторите новый пароль",
  3317. leaveBlankToKeep: "оставьте пустым, чтобы сохранить текущий",
  3318. groups: "Группы",
  3319. optional: "необязательно",
  3320. autoGeneratedPassword: "Надёжный пароль будет создан автоматически и отправлен пользователю по email.",
  3321. passwordManagedByAdvancedAuth: "Пароль управляется расширенной аутентификацией. Используйте «Сбросить пароль», чтобы отправить пользователю новый пароль по email.",
  3322. resetPassword: "Сбросить пароль",
  3323. resettingPassword: "Сброс пароля...",
  3324. },
  3325. deleteModal: {
  3326. title: "Удаление пользователя",
  3327. message: "Удалить этого пользователя? Это действие нельзя отменить.",
  3328. confirm: "Удалить пользователя",
  3329. },
  3330. },
  3331. streamOverlay: {
  3332. title: "Оформление трансляции",
  3333. invalidPrinterId: "Неверный идентификатор принтера",
  3334. cameraStream: "Видеопоток камеры",
  3335. progress: "Прогресс",
  3336. eta: "Осталось",
  3337. printerIdle: "Принтер простаивает",
  3338. printerOffline: "Принтер не в сети",
  3339. builder: {
  3340. title: "Оформление трансляции",
  3341. description: "Собирает адрес оформления трансляции: полноэкранное изображение камеры с наложенными данными о печати — для OBS, настенного экрана или любого источника-браузера. Выберите нужные поля и скопируйте адрес.",
  3342. printer: "Принтер",
  3343. size: "Размер текста",
  3344. sizeSmall: "Мелкий",
  3345. sizeMedium: "Средний",
  3346. sizeLarge: "Крупный",
  3347. fps: "Частота кадров",
  3348. fpsHint: "Камеры A1 и P1 выдают не более примерно 5 кадров в секунду, какое бы значение вы ни задали.",
  3349. token: "Токен оформления трансляции (необязательно)",
  3350. tokenHint: "Нужен только при включённом входе: у OBS нет собственного сеанса. Создайте его выше с областью «Оформление трансляции».",
  3351. tokenWarning: "Этот адрес содержит токен: любой, кто его прочитает, увидит трансляцию и имя файла. Отзовите токен, чтобы закрыть доступ.",
  3352. fields: "Показываемые поля",
  3353. fieldPrinter: "Имя принтера",
  3354. fieldFilename: "Имя файла",
  3355. fieldStatus: "Состояние",
  3356. fieldProgress: "Полоса прогресса",
  3357. fieldLayers: "Количество слоёв",
  3358. fieldEta: "Оставшееся время и время окончания",
  3359. fieldCamera: "Изображение камеры",
  3360. chamberHint: "Температура камеры показывается только на моделях с настоящим датчиком: P1 и A1 сообщают бессмысленное значение, поэтому она опускается.",
  3361. urlTitle: "Адрес оформления",
  3362. open: "Открыть",
  3363. showPreview: "Показать предпросмотр",
  3364. hidePreview: "Скрыть предпросмотр",
  3365. previewTitle: "Предпросмотр оформления",
  3366. },
  3367. status: {
  3368. printing: "Печать",
  3369. paused: "Приостановлено",
  3370. finished: "Завершено",
  3371. failed: "Ошибка",
  3372. idle: "Ожидание",
  3373. unknown: "Неизвестно",
  3374. },
  3375. },
  3376. profiles: {
  3377. title: "Профили",
  3378. subtitle: "Управление профилями слайсера и калибровками Pressure Advance",
  3379. tabs: {
  3380. bambuCloud: "Bambu Cloud",
  3381. orcaCloud: "Orca Cloud",
  3382. local: "Локальные профили",
  3383. kprofiles: "K-профили",
  3384. },
  3385. orcaCloud: {
  3386. connectedAs: "Подключено как",
  3387. connectedShort: "Подключено к Orca Cloud",
  3388. logout: "Отключиться",
  3389. noLogoutPermission: "У вас нет разрешения отключаться от Orca Cloud",
  3390. noConnectPermission: "У вас нет разрешения подключаться к Orca Cloud",
  3391. retry: "Повторить",
  3392. connectButton: "Подключить Orca Cloud",
  3393. connect: {
  3394. title: "Подключение к Orca Cloud",
  3395. description: "Войдите в Orca Cloud, чтобы синхронизировать профили слайсера с Bambuddy.",
  3396. },
  3397. device: {
  3398. title: "Разрешите доступ Bambuddy в Orca Cloud",
  3399. instruction: "Откройте Orca Cloud и подтвердите этот код. После подтверждения Bambuddy подключится автоматически.",
  3400. codeLabel: "Код сопряжения",
  3401. openButton: "Открыть страницу подтверждения Orca Cloud",
  3402. manualHint: "Либо откройте {{url}} и введите указанный выше код.",
  3403. waiting: "Ожидание подтверждения…",
  3404. cancel: "Отмена",
  3405. },
  3406. profiles: {
  3407. title: "Ваши профили Orca Cloud ({{count}})",
  3408. refresh: "Обновить",
  3409. empty: "В вашей учётной записи Orca Cloud пока нет профилей.",
  3410. },
  3411. toast: {
  3412. disconnected: "Orca Cloud отключён",
  3413. },
  3414. errors: {
  3415. startFailed: "Не удалось начать вход в Orca Cloud.",
  3416. denied: "Сопряжение отклонено в Orca Cloud.",
  3417. expired: "Срок действия кода сопряжения истёк. Нажмите «Подключить», чтобы повторить попытку.",
  3418. pollFailed: "Соединение было потеряно во время ожидания подтверждения. Повторите попытку.",
  3419. },
  3420. },
  3421. localProfiles: {
  3422. title: "Локальные профили",
  3423. subtitle: "Импорт профилей OrcaSlicer и управление ими",
  3424. import: "Импортировать профили",
  3425. importDesc: "Перетащите сюда файлы .bbscfg, .bbsflmt, .orca_filament, .zip или .json",
  3426. importing: "Импорт...",
  3427. search: "Поиск локальных профилей...",
  3428. noPresets: "Локальных профилей пока нет",
  3429. noSearchResults: "Нет профилей, соответствующих запросу",
  3430. badge: "Локальный",
  3431. edit: "Изменить",
  3432. delete: "Удалить",
  3433. cancel: "Отмена",
  3434. deleteConfirmTitle: "Удаление профиля",
  3435. deleteConfirm: "Удалить этот профиль? Это действие нельзя отменить.",
  3436. source: "Источник",
  3437. inheritsFrom: "Наследует",
  3438. filamentType: "Тип",
  3439. vendor: "Производитель",
  3440. compatiblePrinters: "Принтеры",
  3441. nozzleTemp: "Температура сопла",
  3442. cost: "Стоимость",
  3443. density: "Плотность",
  3444. pressureAdvance: "Опережение давления",
  3445. filament: "Филамент",
  3446. process: "Процесс",
  3447. printer: "Принтер",
  3448. toast: {
  3449. importSuccess: "Импортировано профилей: {{count}}",
  3450. importSkipped: "Пропущено дубликатов: {{count}}",
  3451. importError: "Ошибок при импорте: {{count}}",
  3452. deleted: "Профиль удалён",
  3453. updated: "Профиль обновлён",
  3454. },
  3455. },
  3456. connectedAs: "Подключено как",
  3457. signInExpiredTitle: "Срок авторизации в Bambu Cloud истёк",
  3458. signInExpiredBody: "Bambu Lab больше не принимает сохранённый токен. Выполните вход снова, чтобы восстановить облачные профили, импорт из MakerWorld и проверку прошивок.",
  3459. logout: "Выйти",
  3460. noLogoutPermission: "У вас нет разрешения выходить из учётной записи",
  3461. failedToLoad: "Не удалось загрузить профили",
  3462. retry: "Повторить",
  3463. time: {
  3464. justNow: "Только что",
  3465. minsAgo: "{{count}} мин назад",
  3466. hoursAgo: "{{count}} ч назад",
  3467. daysAgo: "{{count}} дн назад",
  3468. },
  3469. toast: {
  3470. loggedOut: "Вы вышли из учётной записи",
  3471. },
  3472. login: {
  3473. title: "Подключение к Bambu Cloud",
  3474. subtitle: "Синхронизация профилей слайсера между устройствами",
  3475. email: "Электронная почта",
  3476. password: "Пароль",
  3477. region: "Регион",
  3478. regionGlobal: "Глобальный",
  3479. regionChina: "Китай",
  3480. verificationCode: "Код подтверждения",
  3481. totpCode: "Код приложения-аутентификатора",
  3482. checkEmail: "Проверьте почту {{email}}: туда отправлен шестизначный код",
  3483. enterTotpHint: "Введите шестизначный код из приложения-аутентификатора",
  3484. accessToken: "Токен доступа",
  3485. accessTokenHint: "Вставьте токен доступа Bambu Cloud. Для учётных записей китайского региона, привязанных к телефону, доступен только этот способ: вход по email не поддерживается. Инструкцию по получению токена из cookie MakerWorld см. в wiki.",
  3486. back: "Назад",
  3487. loginButton: "Войти",
  3488. verifyButton: "Подтвердить",
  3489. setTokenButton: "Сохранить токен",
  3490. useToken: "Использовать токен доступа",
  3491. captchaTitle: "Bambu Cloud требует пройти CAPTCHA",
  3492. captchaBody: "Bambu требует от вашей сети пройти CAPTCHA, прежде чем принять вход, и ответить на эту проверку из Bambuddy невозможно. Дело не в почте и не в пароле. Блокировка привязана к вашему публичному IP-адресу и обычно снимается сама в течение нескольких часов, а повторные попытки только продлевают её. Чтобы войти сейчас, используйте токен доступа из сессии браузера.",
  3493. useEmail: "Войти по email",
  3494. toast: {
  3495. loggedIn: "Вход выполнен",
  3496. codeSent: "Код подтверждения отправлен по email",
  3497. enterTotp: "Введите код из приложения-аутентификатора",
  3498. tokenSet: "Токен сохранён",
  3499. },
  3500. },
  3501. presets: {
  3502. myPreset: "Мой профиль (редактируемый)",
  3503. duplicate: "Создать копию",
  3504. editable: "Редактируемый",
  3505. failedToLoadDetails: "Не удалось загрузить сведения о профиле",
  3506. deleteConfirm: "Удалить этот профиль?",
  3507. deleteWarning: "Профиль «{{name}}» будет безвозвратно удалён из Bambu Cloud. Это действие нельзя отменить.",
  3508. noDuplicatePermission: "У вас нет разрешения копировать профили",
  3509. noEditPermission: "У вас нет разрешения редактировать профили",
  3510. noDeletePermission: "У вас нет разрешения удалять профили",
  3511. types: {
  3512. filament: "Профиль филамента",
  3513. printer: "Профиль принтера",
  3514. process: "Профиль процесса",
  3515. },
  3516. toast: {
  3517. deleted: "Профиль удалён",
  3518. created: "Профиль создан",
  3519. updated: "Профиль обновлён",
  3520. duplicated: "Копия профиля создана",
  3521. fieldAdded: "Добавлено поле «{{key}}»",
  3522. exported: "Профиль экспортирован",
  3523. },
  3524. baseLabel: "Базовый: {{name}}",
  3525. currentLabel: "Текущий: {{name}}",
  3526. newPreset: "Новый профиль",
  3527. editPreset: "Изменение профиля",
  3528. duplicatePreset: "Копирование профиля",
  3529. createNewPreset: "Создание профиля",
  3530. customizeSettings: "Настройте параметры нового профиля",
  3531. compareWithBase: "Сравнить с базовым профилем",
  3532. compare: "Сравнить",
  3533. basePreset: "Базовый профиль",
  3534. selectBasePreset: "Выберите базовый профиль...",
  3535. presetName: "Название профиля",
  3536. myCustomPreset: "Мой профиль",
  3537. inheritsFrom: "Наследует от",
  3538. dropJsonToImport: "Перетащите JSON для импорта",
  3539. tabs: {
  3540. common: "Основные",
  3541. allFields: "Все поля",
  3542. },
  3543. availableFields: "Доступные поля",
  3544. searchFieldsPlaceholder: "Поиск полей...",
  3545. noMatchingFields: "Нет подходящих полей",
  3546. allFieldsAdded: "Все поля добавлены",
  3547. addCustomField: "Добавить произвольное поле",
  3548. yourOverrides: "Ваши переопределения",
  3549. noOverridesYet: "Переопределений пока нет",
  3550. clickFieldsToAdd: "Нажимайте поля слева, чтобы добавить их",
  3551. saveAsTemplate: "Сохранить как шаблон",
  3552. jsonTip: "Совет: перетащите файл .json в это окно, чтобы импортировать настройки",
  3553. },
  3554. cloudView: {
  3555. searchPlaceholder: "Поиск профилей...",
  3556. templates: "Шаблоны",
  3557. refresh: "Обновить",
  3558. newPreset: "Новый профиль",
  3559. clearFilters: "Сбросить фильтры",
  3560. compareMode: "Режим сравнения",
  3561. selectAnotherPreset: "Выберите другой профиль типа «{{type}}»",
  3562. clickTwoPresets: "Выберите два профиля одного типа для сравнения",
  3563. selectFirst: "1. Выберите первый",
  3564. selectSecond: "2. Выберите второй",
  3565. compareNow: "Сравнить",
  3566. lastSynced: "Последняя синхронизация:",
  3567. showingCount: "Показано {{showing}} из {{total}} профилей",
  3568. noPresetsFound: "Профили не найдены",
  3569. columns: {
  3570. filament: "Филамент",
  3571. process: "Процесс",
  3572. printer: "Принтер",
  3573. },
  3574. noFilamentPresets: "Нет профилей филамента",
  3575. noProcessPresets: "Нет профилей процесса",
  3576. noPrinterPresets: "Нет профилей принтера",
  3577. filters: {
  3578. type: "Тип",
  3579. owner: "Владелец",
  3580. printer: "Принтер",
  3581. nozzle: "Сопло",
  3582. filament: "Филамент",
  3583. layer: "Слой",
  3584. all: "Все",
  3585. myPresets: "Мои профили",
  3586. builtIn: "Встроенные",
  3587. process: "Процесс",
  3588. },
  3589. noTemplatesPermission: "У вас нет разрешения управлять шаблонами",
  3590. noRefreshPermission: "У вас нет разрешения обновлять профили",
  3591. noCreatePermission: "У вас нет разрешения создавать профили",
  3592. },
  3593. templates: {
  3594. title: "Быстрые шаблоны",
  3595. noTemplates: "Шаблонов пока нет",
  3596. createFirst: "Создавайте шаблоны в редакторе профилей",
  3597. typeFilter: "Тип:",
  3598. deleteTitle: "Удаление шаблона",
  3599. deleteWarning: "Это действие нельзя отменить",
  3600. deleteConfirm: "Удалить шаблон «{{name}}»?",
  3601. namePlaceholder: "Название шаблона",
  3602. descriptionPlaceholder: "Описание",
  3603. settingsJson: "Настройки (JSON)",
  3604. fieldsCount: "Полей: {{count}}",
  3605. shownInModals: "Показывается в окнах",
  3606. hiddenInModals: "Скрыт в окнах",
  3607. apply: "Применить",
  3608. toast: {
  3609. deleted: "Шаблон удалён",
  3610. updated: "Шаблон обновлён",
  3611. created: "Шаблон создан",
  3612. applied: "Шаблон применён",
  3613. },
  3614. },
  3615. },
  3616. support: {
  3617. debugLoggingActive: "Отладочное журналирование включено",
  3618. manageLogs: "Управление",
  3619. collectItem7: "Подключение принтеров и версии прошивок",
  3620. collectItem8: "Состояние интеграций (Spoolman, MQTT, HA)",
  3621. collectItem9: "Сетевые интерфейсы (только подсети)",
  3622. collectItem10: "Версии пакетов Python",
  3623. collectItem11: "Проверка состояния базы данных",
  3624. collectItem12: "Сведения о среде Docker",
  3625. bundleGenerating: "Формирование пакета...",
  3626. bundleStepConnection: "Проверка подключения принтеров",
  3627. bundleStepVirtualPrinters: "Проверка настройки виртуальных принтеров",
  3628. bundleStepLogScan: "Поиск известных проблем в последних журналах",
  3629. bundleStepBuild: "Создание ZIP-пакета для поддержки",
  3630. },
  3631. fileManager: {
  3632. variants: {
  3633. badge: 'Версий: {{count}}',
  3634. groupAction: 'Сгруппировать как версии',
  3635. groupTooltip: 'Пометить эти файлы как одну задачу, нарезанную для разных принтеров',
  3636. grouped: 'Файлов сгруппировано как версии: {{count}}',
  3637. printAlternatives: 'Печать (вариантов: {{count}})',
  3638. },
  3639. title: "Файловый менеджер",
  3640. subtitle: "Организация и управление файлами для печати",
  3641. uploadFiles: "Загрузить файлы",
  3642. newFolder: "Новая папка",
  3643. folderName: "Имя папки",
  3644. folderNamePlaceholder: "например, Функциональные детали",
  3645. renameFile: "Переименовать файл",
  3646. renameFolder: "Переименовать папку",
  3647. invalidFilenameChar: "Символ «{{char}}» нельзя использовать в именах файлов печати. SD-карта принтера не принимает: < > : \" / \\ | ? *",
  3648. moveFiles: "Переместить файлы ({{count}})",
  3649. rootNoFolder: "Корень (без папки)",
  3650. current: "текущая",
  3651. linkFolder: "Связать папку",
  3652. linkFolderDescription: "Связать «{{name}}» с проектом или архивом для быстрого доступа.",
  3653. project: "Проект",
  3654. archive: "Архив",
  3655. noProjectsFound: "Проекты не найдены",
  3656. noArchivesFound: "Архивы не найдены",
  3657. unlink: "Отвязать",
  3658. link: "Связать",
  3659. dragDropFiles: "Перетащите файлы сюда",
  3660. dropFilesHere: "Перетащите файлы сюда",
  3661. releaseToUpload: "Отпустите для загрузки",
  3662. orClickToBrowse: "или нажмите для выбора",
  3663. allFileTypesSupported: "Поддерживаются все типы файлов. ZIP-архивы будут распакованы.",
  3664. zipFilesDetected: "Обнаружены ZIP-архивы",
  3665. zipExtractOptions: "ZIP-архивы будут распакованы. Выберите способ обработки структуры папок:",
  3666. preserveZipStructure: "Сохранить структуру папок из ZIP",
  3667. createFolderFromZip: "Создать папку с именем ZIP-файла",
  3668. stlThumbnailGeneration: "Создание миниатюр STL",
  3669. zipMayContainStl: "ZIP-архивы могут содержать STL-файлы. Миниатюры можно создать при распаковке.",
  3670. thumbnailsCanBeGenerated: "Для STL-файлов можно создать миниатюры. Обработка крупных моделей может занять больше времени.",
  3671. generateThumbnailsForStl: "Создать миниатюры для STL-файлов",
  3672. threemfDetected: "Обнаружены файлы 3MF",
  3673. threemfExtractionInfo: "Модель принтера, материал, цвет и параметры печати будут автоматически извлечены из файлов 3MF.",
  3674. willBeExtracted: "Будут извлечены",
  3675. filesExtracted: "Извлечено файлов: {{count}}",
  3676. uploadComplete: "Загрузка завершена: успешно — {{succeeded}}",
  3677. uploadFailed: "Ошибка загрузки",
  3678. zipFilesFailed: "Не удалось обработать файлов: {{count}}",
  3679. uploading: "Загрузка...",
  3680. changeLink: "Изменить связь...",
  3681. linkTo: "Связать с...",
  3682. linkToProjectOrArchive: "Связать с проектом или архивом",
  3683. generateThumbnail: "Создать миниатюру",
  3684. generateThumbnails: "Создать миниатюры",
  3685. generateThumbnailsForMissing: "Создать отсутствующие миниатюры для STL-файлов",
  3686. gridView: "Плитка",
  3687. listView: "Список",
  3688. lowDiskSpaceWarning: "Мало свободного места",
  3689. lowDiskSpaceDetails: "Свободно только {{free}} из {{total}}. Порог предупреждения в настройках: {{threshold}} ГБ.",
  3690. files: "Файлы",
  3691. folders: "Папки",
  3692. size: "Размер",
  3693. free: "Свободно",
  3694. allFiles: "Все файлы",
  3695. allExternal: "Внешние",
  3696. externalIsEmpty: "Внешних файлов нет",
  3697. externalEmptyDescription: "Здесь появятся файлы из подключённых внешних папок.",
  3698. wrap: "Перенос строк",
  3699. enableTextWrapping: "Включить перенос строк",
  3700. disableTextWrapping: "Отключить перенос строк",
  3701. collapse: "Свернуть",
  3702. collapseFoldersByDefault: "Сворачивать папки по умолчанию",
  3703. expandFoldersByDefault: "Разворачивать папки по умолчанию",
  3704. folderSort: "Сортировка папок",
  3705. folderSortByName: "По имени",
  3706. folderSortByActivity: "По последней активности",
  3707. dragToResizeTooltip: "Перетащите для изменения размера, двойной щелчок — сброс",
  3708. searchFiles: "Поиск файлов...",
  3709. searchSubfoldersHint: "С учётом вложенных папок",
  3710. readme: {
  3711. truncated: "Показано не полностью",
  3712. show: "Показать README",
  3713. hide: "Скрыть README",
  3714. label: "README",
  3715. },
  3716. tags: {
  3717. title: "Метки",
  3718. subtitle: "Помечайте файлы для сквозной фильтрации: игрушки, безопасно для детей, только PETG и что угодно ещё.",
  3719. manage: "Метки",
  3720. manageTitle: "Управление каталогом меток",
  3721. add: "Новая метка",
  3722. edit: "Переименовать метку",
  3723. name: "Название",
  3724. fileCount: "Файлы",
  3725. empty: "Меток пока нет. Создайте первую, чтобы начать помечать файлы.",
  3726. noMatches: "Подходящие метки не найдены.",
  3727. createPlaceholder: "например, игрушки, детям, petg",
  3728. createButton: "Создать",
  3729. nameRequired: "Укажите название.",
  3730. searchPlaceholder: "Фильтр меток...",
  3731. created: "Метка создана.",
  3732. updated: "Метка переименована.",
  3733. deleted: "Метка удалена.",
  3734. saveFailed: "Не удалось сохранить метку.",
  3735. deleteFailed: "Не удалось удалить метку.",
  3736. applyFailed: "Не удалось применить метки.",
  3737. applyAdd: "Добавить метки",
  3738. applyRemove: "Удалить метки",
  3739. applyAddSuccess: "Добавлено меток: {{count}}; обработано файлов: {{files}}.",
  3740. applyRemoveSuccess: "Удалено меток: {{count}}; обработано файлов: {{files}}.",
  3741. actionAdd: "Добавить к выбранным файлам",
  3742. actionRemove: "Удалить с выбранных файлов",
  3743. tagAction: "Метки",
  3744. bulkTitle: "Метки для выбранных файлов ({{count}})",
  3745. bulkTooltip: "Добавить или удалить метки у всех выбранных файлов.",
  3746. noPermission: "У вас нет прав на изменение меток файлов.",
  3747. filterLabel: "Фильтр по меткам:",
  3748. clearAll: "Очистить всё",
  3749. confirmDelete: "Удалить метку «{{name}}»?",
  3750. confirmDeleteMessage: "Метка будет удалена из каталога. Остальные метки файлов сохранятся.",
  3751. confirmDeleteInUseMessage: "Эта метка назначена файлам ({{count}}). При удалении метка исчезнет у всех файлов; сами файлы не изменятся.",
  3752. editAria: "Изменить {{name}}",
  3753. deleteAria: "Удалить {{name}}",
  3754. },
  3755. allTypes: "Все типы",
  3756. prints: "Файлы печати",
  3757. ascending: "По возрастанию",
  3758. descending: "По убыванию",
  3759. showModified: "Показать даты изменения",
  3760. hideModified: "Скрыть даты изменения",
  3761. lastModified: "Изменено",
  3762. lastActivity: "Последняя активность",
  3763. resultsCount: "Показано {{showing}} из {{total}} файлов",
  3764. selectAll: "Выбрать всё",
  3765. deselectAll: "Снять выделение",
  3766. selected: "Выбрано: {{count}}",
  3767. adding: "Добавление...",
  3768. loadingFiles: "Загрузка файлов...",
  3769. folderIsEmpty: "Папка пуста",
  3770. noFilesYet: "Файлов пока нет",
  3771. folderEmptyDescription: "Загрузите или переместите файлы в эту папку.",
  3772. noFilesDescription: "Загрузите файлы, чтобы начать упорядочивать материалы для печати.",
  3773. noMatchingFiles: "Подходящие файлы не найдены",
  3774. noMatchingFilesDescription: "Нет файлов, соответствующих текущему поиску или фильтрам.",
  3775. clearFilters: "Сбросить фильтры",
  3776. printedCount: "Напечатано: {{count}}×",
  3777. uploadedBy: "Загрузил",
  3778. deleteFolder: "Удалить папку",
  3779. deleteFile: "Удалить файл",
  3780. deleteFilesCount: "Удалить файлы ({{count}})",
  3781. deleteFolderConfirm: "Удалить эту папку? Все находящиеся в ней файлы также будут удалены.",
  3782. deleteFileConfirm: "Удалить этот файл?",
  3783. deleteFilesConfirm: "Удалить выбранные файлы ({{count}})? Это действие нельзя отменить.",
  3784. deleting: "Удаление...",
  3785. noPermissionRenameFolder: "У вас нет прав на переименование папок",
  3786. noPermissionLinkFolder: "У вас нет прав на связывание папок",
  3787. noPermissionDeleteFolder: "У вас нет прав на удаление папок",
  3788. onlyEmptyFoldersDeletable: "Вы можете удалять только пустые папки",
  3789. noPermissionPrint: "У вас нет прав на запуск печати",
  3790. noPermissionAddToQueue: "У вас нет прав на добавление в очередь",
  3791. noPermissionSlice: "У вас нет прав на нарезку файлов",
  3792. noPermissionDownload: "У вас нет прав на скачивание файлов",
  3793. noPermissionPreview: 'У вас нет прав на предварительный просмотр файлов',
  3794. preview3d: '3D-просмотр',
  3795. noPermissionRenameFile: "У вас нет прав на переименование этого файла",
  3796. noPermissionGenerateThumbnail: "У вас нет прав на создание миниатюр",
  3797. noPermissionDeleteFile: "У вас нет прав на удаление этого файла",
  3798. noPermissionCreateFolder: "У вас нет прав на создание папок",
  3799. noPermissionUpload: "У вас нет прав на загрузку файлов",
  3800. noPermissionMoveFiles: "У вас нет прав на перемещение файлов",
  3801. noPermissionDeleteFiles: "У вас нет прав на удаление файлов",
  3802. linkExternal: "Подключить внешнюю папку",
  3803. linkExternalFolder: "Подключить внешнюю папку",
  3804. linkExternalFolderDescription: "Подключить каталог хоста (NAS, USB-накопитель или сетевой ресурс) к файловому менеджеру. Файлы не копируются — Bambuddy обращается к ним по исходному пути.",
  3805. externalFolderNamePlaceholder: "например, Модели на NAS",
  3806. externalPath: "Путь на хосте",
  3807. externalPathHelp: "Абсолютный путь к каталогу на хосте Docker. Каталог должен быть подключён к контейнеру через bind mount.",
  3808. readOnly: "Только чтение",
  3809. readOnlyHelp: "запрещает загрузку и удаление файлов",
  3810. showHiddenFiles: "Показывать скрытые файлы (dotfiles)",
  3811. externalFolder: "Внешняя папка",
  3812. scanFolder: "Сканировать",
  3813. toast: {
  3814. folderCreated: "Папка создана",
  3815. openInSlicerFailed: "Не удалось открыть в слайсере",
  3816. folderDeleted: "Папка удалена",
  3817. fileDeleted: "Файл удалён",
  3818. filesDeleted: "Удалено файлов: {{count}}",
  3819. filesMoved: "Файлы перемещены",
  3820. folderLinked: "Папка связана",
  3821. folderUnlinked: "Связь с папкой удалена",
  3822. externalFolderLinked: "Внешняя папка подключена и просканирована",
  3823. folderScanned: "Сканирование завершено: добавлено — {{added}}, удалено — {{removed}}",
  3824. addedToQueue: "Добавлено в очередь файлов: {{count}}",
  3825. addedToQueuePartial: "Добавлено файлов: {{added}}, ошибок: {{failed}}",
  3826. failedToAddToQueue: "Не удалось добавить файлы: {{error}}",
  3827. fileRenamed: "Файл переименован",
  3828. folderRenamed: "Папка переименована",
  3829. thumbnailsGenerated: "Создано миниатюр: {{count}}",
  3830. thumbnailsGeneratedPartial: "Создано миниатюр: {{succeeded}}, ошибок: {{failed}}",
  3831. noStlMissingThumbnails: "Нет STL-файлов без миниатюр",
  3832. failedToGenerateThumbnails: "Не удалось создать миниатюры: {{error}}",
  3833. thumbnailGenerated: "Миниатюра создана",
  3834. failedToGenerateThumbnail: "Не удалось создать миниатюру: {{error}}",
  3835. },
  3836. },
  3837. projects: {
  3838. parentLabel: "Родительский проект",
  3839. parentNone: "Нет (проект верхнего уровня)",
  3840. parentHint: "Вложите этот проект в другой, чтобы его показатели суммировались в главном проекте",
  3841. partOf: "Часть проекта {{name}}",
  3842. subProjectCount: "Подпроектов: {{count}}",
  3843. subProjectsOf: "Подпроекты проекта {{name}}",
  3844. collapseSubProjects: "Свернуть подпроекты",
  3845. expandSubProjects: "Развернуть подпроекты",
  3846. title: "Проекты",
  3847. subtitle: "Организация и отслеживание проектов 3D-печати",
  3848. newProject: "Новый проект",
  3849. editProject: "Изменить проект",
  3850. deleteProject: "Удалить проект",
  3851. projectName: "Название проекта",
  3852. description: "Описание",
  3853. noProjects: "Проектов пока нет",
  3854. noProjectsFiltered: "Нет проектов со статусом «{{status}}»",
  3855. noProjectsFilteredHelp: "У вас нет проектов со статусом «{{status}}». Они появятся здесь после изменения статуса.",
  3856. createFirst: "Создайте первый проект, чтобы объединять связанные печати, отслеживать ход работ и управлять сборкой.",
  3857. createFirstButton: "Создать первый проект",
  3858. create: "Создать",
  3859. files: "Файлы",
  3860. prints: "Печати",
  3861. plates: "пластин",
  3862. parts: "деталей",
  3863. lastModified: "Последнее изменение",
  3864. deleteConfirm: "Удалить этот проект? Архивные записи и элементы очереди будут отвязаны, но не удалены.",
  3865. addFiles: "Добавить файлы",
  3866. removeFile: "Убрать файл",
  3867. viewDetails: "Подробнее",
  3868. namePlaceholder: "например, Сборка Voron 2.4",
  3869. descriptionPlaceholder: "Необязательное описание...",
  3870. urlLabel: "URL",
  3871. urlPlaceholder: "https://makerworld.com/...",
  3872. urlInvalid: "URL должен начинаться с http:// или https://",
  3873. openExternalUrl: "Открыть страницу проекта",
  3874. coverImageLabel: "Обложка",
  3875. coverImageAlt: "Обложка проекта",
  3876. coverImageUpload: "Загрузить",
  3877. coverImageReplace: "Заменить",
  3878. coverImageRemove: "Удалить",
  3879. color: "Цвет",
  3880. targetPlates: "План по пластинам",
  3881. targetPlatesPlaceholder: "например, 25",
  3882. targetPlatesHelp: "Количество заданий печати",
  3883. targetParts: "План по деталям",
  3884. targetPartsPlaceholder: "например, 150",
  3885. targetPartsHelp: "Общее требуемое количество объектов",
  3886. targetSets: "Копий на файл",
  3887. targetSetsPlaceholder: "напр. 10",
  3888. targetSetsHelp: "Сколько раз нужно напечатать каждый печатаемый файл",
  3889. tagsLabel: "Метки (через запятую)",
  3890. tagsPlaceholder: "например, voron, функциональное, подарок",
  3891. dueDate: "Срок",
  3892. priority: "Приоритет",
  3893. priorityLow: "Низкий",
  3894. priorityNormal: "Обычный",
  3895. priorityHigh: "Высокий",
  3896. priorityUrgent: "Срочный",
  3897. statusActive: "Активный",
  3898. statusCompleted: "Завершён",
  3899. statusArchived: "В архиве",
  3900. done: "Готово",
  3901. completed: "завершено",
  3902. failed: "ошибка",
  3903. inQueue: "в очереди",
  3904. noPrintsYet: "Печатей пока нет",
  3905. printJobs: "Задания печати (пластины)",
  3906. partsPrinted: "Напечатано деталей",
  3907. failedParts: "Неудачных деталей",
  3908. import: "Импорт",
  3909. export: "Экспорт",
  3910. importProject: "Импортировать проект",
  3911. exportAll: "Экспортировать все проекты",
  3912. loading: "Загрузка проектов...",
  3913. noEditPermission: "У вас нет прав на изменение проектов",
  3914. noDeletePermission: "У вас нет прав на удаление проектов",
  3915. noCreatePermission: "У вас нет прав на создание проектов",
  3916. noImportPermission: "У вас нет прав на импорт проектов",
  3917. noExportPermission: "У вас нет прав на экспорт проектов",
  3918. toast: {
  3919. created: "Проект создан",
  3920. updated: "Проект обновлён",
  3921. deleted: "Проект удалён",
  3922. imported: "Проект импортирован",
  3923. multipleImported: "Импортировано проектов: {{count}}",
  3924. importFailed: "Не удалось импортировать проект",
  3925. exported: "Проекты экспортированы (только метаданные)",
  3926. },
  3927. },
  3928. projectDetail: {
  3929. notFound: "Проект не найден",
  3930. backToProjects: "Вернуться к проектам",
  3931. export: "Экспорт",
  3932. exportProject: "Экспортировать проект",
  3933. noExportPermission: "У вас нет прав на экспорт проектов",
  3934. noEditPermission: "У вас нет прав на изменение проектов",
  3935. partOf: "Входит в:",
  3936. priorityLabel: "Приоритет:",
  3937. noPrints: "В этом проекте пока нет печатей",
  3938. status: {
  3939. active: "Активный",
  3940. completed: "Завершён",
  3941. archived: "В архиве",
  3942. },
  3943. priority: {
  3944. low: "Низкий",
  3945. normal: "Обычный",
  3946. high: "Высокий",
  3947. urgent: "Срочный",
  3948. },
  3949. dueDate: {
  3950. overdue: "Срок истёк",
  3951. today: "Срок сегодня",
  3952. daysLeft: "Осталось дней: {{count}}",
  3953. },
  3954. progress: {
  3955. platesProgress: "Выполнение по пластинам",
  3956. partsProgress: "Выполнение по деталям",
  3957. setsProgress: "Полные комплекты",
  3958. sets: "комплектов",
  3959. setsHint: "Комплект готов, когда каждый печатаемый файл достиг этого количества",
  3960. printJobs: "заданий печати",
  3961. parts: "деталей",
  3962. percentComplete: "Выполнено {{percent}}%",
  3963. remaining: "Осталось: {{count}}",
  3964. },
  3965. stats: {
  3966. printJobs: "Задания печати",
  3967. total: "всего",
  3968. failed: "Неудачных: {{count}}",
  3969. partsPrinted: "Напечатано деталей: {{count}}",
  3970. printTime: "Время печати",
  3971. filamentUsed: "Израсходовано филамента",
  3972. },
  3973. cost: {
  3974. title: "Учёт стоимости",
  3975. filamentCost: "Стоимость филамента",
  3976. energy: "Электроэнергия",
  3977. totalCost: "Общая стоимость",
  3978. total: "Итого",
  3979. includesBom: "включая спецификацию",
  3980. budget: "Бюджет",
  3981. remaining: "Остаток",
  3982. },
  3983. subProjects: {
  3984. title: "Подпроекты ({{count}})",
  3985. jobs: "Заданий: {{count}}",
  3986. },
  3987. rollup: {
  3988. title: "Включая подпроекты: {{count}}",
  3989. progress: "Общий прогресс",
  3990. percentComplete: "Завершено {{percent}}%",
  3991. },
  3992. notes: {
  3993. title: "Заметки",
  3994. noEditPermission: "У вас нет прав на изменение заметок",
  3995. placeholder: "Добавьте заметки о проекте...",
  3996. empty: "Заметок пока нет. Нажмите «Изменить», чтобы добавить.",
  3997. },
  3998. files: {
  3999. title: "Файлы",
  4000. linkFolders: "Свяжите папки из файлового менеджера",
  4001. forQuickAccess: "с этим проектом для быстрого доступа.",
  4002. fileCount: "Файлов: {{count}}",
  4003. empty: "Связанных папок нет. Откройте файловый менеджер и свяжите папку с проектом.",
  4004. printedCount: "Напечатано {{count}} раз",
  4005. progressTooltip: "{{done}} из {{target}} завершённых печатей",
  4006. noFiles: "В этой папке нет файлов.",
  4007. },
  4008. bom: {
  4009. title: "Спецификация",
  4010. acquired: "Приобретено: {{completed}}/{{total}}",
  4011. showAll: "Показать всё",
  4012. hideDone: "Скрыть готовое",
  4013. addPart: "Добавить позицию",
  4014. noAddPermission: "У вас нет прав на добавление позиций",
  4015. partNamePlaceholder: "Название позиции (например, винты M3×8)",
  4016. partName: "Название позиции",
  4017. qty: "Кол-во",
  4018. price: "Цена ({{currency}})",
  4019. sourcingUrlPlaceholder: "Ссылка на поставщика (необязательно)",
  4020. remarksPlaceholder: "Примечание (необязательно)",
  4021. deletePart: "Удалить позицию",
  4022. deleteConfirm: "Удалить «{{name}}»?",
  4023. noUpdatePermission: "У вас нет прав на обновление позиций",
  4024. noEditPermission: "У вас нет прав на изменение позиций",
  4025. noDeletePermission: "У вас нет прав на удаление позиций",
  4026. totalCost: "Общая стоимость:",
  4027. empty: "В спецификации пока нет позиций. Добавьте крепёж, электронику и другие компоненты, закупку которых нужно отслеживать.",
  4028. },
  4029. timeline: {
  4030. title: "Хронология активности",
  4031. empty: "Активности пока нет.",
  4032. },
  4033. template: {
  4034. saveAsTemplate: "Сохранить как шаблон",
  4035. noCreatePermission: "У вас нет прав на создание шаблонов",
  4036. },
  4037. queue: {
  4038. title: "Очередь",
  4039. viewAll: "Показать всё",
  4040. printing: "Печатается: {{count}}",
  4041. queued: "В очереди: {{count}}",
  4042. },
  4043. prints: {
  4044. title: "Печати ({{count}})",
  4045. },
  4046. toast: {
  4047. projectUpdated: "Проект обновлён",
  4048. partAdded: "Позиция добавлена",
  4049. partRemoved: "Позиция удалена",
  4050. exportFailed: "Не удалось экспортировать",
  4051. projectExported: "Проект экспортирован",
  4052. templateCreated: "Шаблон создан",
  4053. },
  4054. },
  4055. system: {
  4056. title: "Информация о системе",
  4057. version: "Версия",
  4058. uptime: "Время работы",
  4059. cpuUsage: "Загрузка процессора",
  4060. memoryUsage: "Использование памяти",
  4061. diskUsage: "Использование диска",
  4062. networkInfo: "Сетевая информация",
  4063. logs: "Журналы",
  4064. debugMode: "Режим отладки",
  4065. enableDebug: "Включить журналирование отладки",
  4066. disableDebug: "Отключить журналирование отладки",
  4067. downloadLogs: "Скачать журналы",
  4068. clearLogs: "Очистить журналы",
  4069. dockerInfo: "Информация о Docker",
  4070. containerName: "Имя контейнера",
  4071. imageName: "Имя образа",
  4072. platform: "Платформа",
  4073. architecture: "Архитектура",
  4074. },
  4075. sponsors: {
  4076. sectionTitle: "Независимый проект на поддержке сообщества",
  4077. tagline: "Bambuddy бесплатен и остаётся таким благодаря добровольной поддержке пользователей. Без венчурного капитала и привязки к облаку.",
  4078. viewSupporters: "Посмотреть сторонников проекта",
  4079. toastPrints: "С Bambuddy выполнено печатей: {{count}}. Проект остаётся бесплатным благодаря поддержке сообщества.",
  4080. toastCost: "С помощью Bambuddy учтено филамента на сумму {{total}}. Посмотрите, кто помогает проекту оставаться независимым.",
  4081. toastArchives: "С Bambuddy архивировано печатей: {{count}}. Посмотрите, кто помогает проекту оставаться независимым.",
  4082. toastAnniversary: "Вы уже год с Bambuddy! Посмотрите, кто помогает проекту оставаться независимым.",
  4083. toastVersionUpdate: "Обновлено до версии {{version}}. Bambuddy остаётся бесплатным благодаря поддержке сообщества.",
  4084. toastBusiness: "Используете Bambuddy для {{count}} принтеров? Для команд доступен план поддержки с приоритетным исправлением ошибок, выставлением счетов и прямой связью с разработчиком.",
  4085. businessCta: "Bambuddy для бизнеса",
  4086. businessTitle: "Bambuddy для бизнеса",
  4087. businessTagline: "Вы используете {{count}} принтеров. Для команд и печатных ферм доступны приоритетная поддержка, коммерческая лицензия и выставление счетов.",
  4088. },
  4089. library: {
  4090. title: "Библиотека филаментов",
  4091. addFilament: "Добавить филамент",
  4092. editFilament: "Изменить филамент",
  4093. deleteFilament: "Удалить филамент",
  4094. vendor: "Производитель",
  4095. material: "Материал",
  4096. color: "Цвет",
  4097. kFactor: "Коэффициент K",
  4098. temperature: "Температура",
  4099. noFilaments: "В библиотеке нет филаментов",
  4100. deleteConfirm: "Удалить этот филамент?",
  4101. importFromPrinter: "Импортировать с принтера",
  4102. exportToFile: "Экспортировать в файл",
  4103. runWithPipeline: {
  4104. actionLabel: "Запустить через конвейер",
  4105. noPermission: "У вас нет прав на запуск конвейеров",
  4106. modalTitle: "Запуск через конвейер",
  4107. confirmTitle: "Подтверждение запуска",
  4108. confirmIntro: "Предварительная проверка обнаружила проблемы",
  4109. sourceHint: "Источник",
  4110. pipelineHint: "Конвейер",
  4111. targetHint: "Назначение",
  4112. pipelineListAria: "Доступные конвейеры",
  4113. runAnyway: "Всё равно запустить",
  4114. loading: "Загрузка…",
  4115. empty: "Сохранённых конвейеров пока нет. Откройте диалог нарезки и нажмите «Сохранить как конвейер».",
  4116. noTarget: "Целевой принтер не задан",
  4117. noTargetMessage: "Для этого конвейера не задан целевой принтер. Откройте его в настройках и выберите принтер.",
  4118. copies: "Копии",
  4119. copiesHint: "макс. {{n}}",
  4120. classTarget: "Любой {{model}}",
  4121. toast: {
  4122. started: "Конвейер запущен",
  4123. failed: "Не удалось запустить конвейер",
  4124. },
  4125. issue: {
  4126. printerNotSet: "Для этого конвейера не задан целевой принтер.",
  4127. printerNotFound: "Целевой принтер больше не существует.",
  4128. printerDisabled: "Целевой принтер отключён.",
  4129. printerOffline: "Целевой принтер не в сети.",
  4130. filamentType: "Слот филамента {{slot}}: ожидается {{expected}}, в AMS установлен {{actual}}",
  4131. filamentColor: "Слот филамента {{slot}}: цвет отличается (ожидается {{expected}}, в AMS установлен {{actual}})",
  4132. amsSlotMissing: "Слот AMS {{slot}} недоступен на этом принтере",
  4133. filamentUnverified: "Филамент в слоте {{slot}} выбран из облачного или стандартного профиля и не может быть проверен заранее.",
  4134. noClassMatches: "Ни один принтер в этой установке не соответствует целевому классу модели конвейера ({{expected}}).",
  4135. classNotSet: "В качестве цели конвейера выбран класс принтера, но модель не указана.",
  4136. },
  4137. },
  4138. },
  4139. slicerSettings: {
  4140. presetValuesOutdatedSidecar: 'Показаны значения по умолчанию слайсера: ваш sidecar старше этой функции и не может сообщить значения профиля. Обновите образ sidecar, чтобы увидеть их. Всё, что вы не измените, по-прежнему берётся из профиля.',
  4141. presetValuesNotConfigured: 'Показаны значения по умолчанию слайсера: sidecar не настроен, поэтому значения профиля прочитать нельзя. Всё, что вы не измените, по-прежнему берётся из профиля.',
  4142. presetValuesSidecarUnavailable: 'Показаны значения по умолчанию слайсера: sidecar не ответил, поэтому значения профиля прочитать нельзя. Всё, что вы не измените, по-прежнему берётся из профиля.',
  4143. presetValuesUnavailable: 'Показаны значения по умолчанию слайсера: значения выбранного профиля прочитать не удалось. Всё, что вы не измените, по-прежнему берётся из профиля.',
  4144. filamentDefault: 'По умолчанию',
  4145. fromFile: 'из файла',
  4146. fromFileHint: 'Автор модели изменил этот параметр в исходном файле. Значение: {{value}}.',
  4147. fromFilePrinterCoupled: 'принтер автора',
  4148. fromFilePrinterCoupledHint: 'Подобрано под принтер, для которого создан файл, — на вашем значение может быть неверным или вне диапазона.',
  4149. fromFileOverridesPreset: 'переопределяет пресет',
  4150. fromFileOverridesPresetHint:
  4151. 'В файле задано {{value}}, а выбранный пресет использует {{preset}}. Отмечайте, только если приоритет должен быть у файла.',
  4152. useFromFile: 'Использовать значение из исходного файла для «{{option}}»',
  4153. otherFromFile: 'Другие параметры из этого файла',
  4154. fromFileSummary: "Дизайнер изменил в этом файле {{count}} параметров процесса. Применяются только отмеченные.",
  4155. fromFileUseAll: "Использовать настройки дизайнера",
  4156. fromFileUseAllHint: "Отмечает параметры, которые переносятся на другие принтеры. Подогнанные под принтер дизайнера и задающие выбранный пресет остаются выключенными.",
  4157. fromFileClear: "Снять {{count}}",
  4158. loading: 'Загрузка настроек слайсера…',
  4159. mode: {
  4160. simple: 'Простой',
  4161. advanced: 'Расширенный',
  4162. expert: 'Эксперт',
  4163. },
  4164. searchPlaceholder: 'Поиск параметров',
  4165. resetAll: 'Сбросить: {{count}}',
  4166. resetOption: 'Сбросить к значению по умолчанию',
  4167. noMatches: 'Нет параметров, соответствующих запросу.',
  4168. },
  4169. slice: {
  4170. filamentSlotUnset: 'не задано',
  4171. processSettingsEmbedded: 'Не используется, пока включено «Использовать встроенные настройки файла» — нарезкой управляют настройки самого файла.',
  4172. processSettingsInactive: 'Не активно',
  4173. presetsHidden: 'скрыто: {{count}}',
  4174. showAllPresets: 'Показать все',
  4175. showFewerPresets: 'Показать меньше',
  4176. processSettings: 'Параметры процесса',
  4177. processSettingsHint: 'Настройте выбранный профиль для этой нарезки. Всё, что вы не измените, останется как задано в профиле.',
  4178. processSettingsChanged: 'изменено: {{count}}',
  4179. processSettingsUnchanged: 'Значения профиля',
  4180. title: "Нарезка модели",
  4181. action: "Нарезать",
  4182. actionAll: "Нарезать все пластины ({{count}})",
  4183. actionAllTitle: "Нарезать все пластины в один многостольный результат и сохранить в одном архиве. Выбор филаментов охватывает все слоты, используемые проектом.",
  4184. allPlatesToggle: "Нарезать все пластины ({{count}})",
  4185. slicing: "Нарезка…",
  4186. printer: "Профиль принтера",
  4187. process: "Профиль процесса",
  4188. filament: "Профиль филамента",
  4189. filamentSlot: "Филамент {{index}} ({{type}})",
  4190. filamentColour: "Цвет филамента",
  4191. selectPreset: "— Выберите профиль —",
  4192. loadingPresets: "Загрузка профилей…",
  4193. analyzingPlateFilaments: "Анализ филаментов пластины…",
  4194. analyzingPlateFilamentsHint: "Выполняется предварительная нарезка, чтобы определить, какие слоты AMS используются на этой пластине. Результат кэшируется, поэтому повторное открытие будет мгновенным.",
  4195. previewToast: "Анализ {{name}} — {{elapsed}}",
  4196. previewWithProgress: "Анализ {{name}} — {{stage}} ({{percent}}%) — {{elapsed}}",
  4197. notUsedByPlate: "— не используется на этой пластине",
  4198. noPresetsForSlot: "Нет доступных профилей",
  4199. otherPrinters: "Другие принтеры",
  4200. presetsLoadFailed: "Не удалось загрузить профили. Сначала импортируйте их в разделе «Настройки → Профили».",
  4201. refreshPresets: "Обновить",
  4202. refreshPresetsTitle: "Обновить профили — получить свежие облачные и встроенные списки. Используйте после удаления профиля в Bambu Studio или Bambu Handy.",
  4203. allPresetsRequired: "Необходимо выбрать все профили",
  4204. useEmbedded: "Использовать встроенные настройки файла",
  4205. useEmbeddedHint: "Нарезать так, как задумал автор модели (стенки, заполнение, филамент), вместо профилей выше. Доступно, потому что ваш принтер совпадает с указанным в файле.",
  4206. autoOrient: 'Автоматически ориентировать объекты',
  4207. autoOrientHint: 'Слайсер повернёт каждый объект на сторону, которая печатается лучше всего. Ориентация из файла будет заменена.',
  4208. autoArrange: 'Автоматически разместить на столе',
  4209. autoArrangeHint: 'Слайсер расставит объекты так, чтобы они не перекрывались. Расположение из файла будет заменено.',
  4210. enqueuing: "Отправка задания на нарезку…",
  4211. queued: "В очереди…",
  4212. failed: "Ошибка нарезки. Проверьте журналы вспомогательного сервиса слайсера.",
  4213. startedToast: "Фоновая нарезка {{name}}…",
  4214. queuedToast: "В очереди: {{name}} — {{elapsed}}",
  4215. runningToast: "Нарезка {{name}} — {{elapsed}}",
  4216. runningWithProgress: "{{name}} — {{stage}} ({{percent}}%) — {{elapsed}}",
  4217. runningWithProgressMultiPlate: "Пластина {{plateIndex}} из {{plateCount}} • {{name}} — {{stage}} ({{percent}}%) — {{elapsed}}",
  4218. completedToast: "Нарезка {{name}} завершена",
  4219. externalWriteFallbackToast: "Сохранено во внутренней библиотеке: не удалось записать во внешнюю папку",
  4220. failedTitle: "Ошибка нарезки",
  4221. failedToast: "Не удалось нарезать {{name}}: {{detail}}",
  4222. tier: {
  4223. local: "Импортированные",
  4224. cloud: "Bambu Cloud",
  4225. orcaCloud: "Orca Cloud",
  4226. standard: "Стандартные",
  4227. },
  4228. cloud: {
  4229. notAuthenticated: "Войдите в Bambu Cloud («Настройки → Профили → Bambu Cloud»), чтобы увидеть облачные профили.",
  4230. expired: "Сессия Bambu Cloud истекла. Войдите снова, чтобы обновить облачные профили.",
  4231. unreachable: "Bambu Cloud сейчас недоступен. Локальные и стандартные профили продолжат работать.",
  4232. },
  4233. orcaCloud: {
  4234. notAuthenticated: "Войдите в Orca Cloud («Профили → Orca Cloud»), чтобы увидеть профили Orca.",
  4235. expired: "Сессия Orca Cloud истекла. Войдите снова, чтобы обновить профили Orca.",
  4236. unreachable: "Orca Cloud сейчас недоступен. Остальные профили продолжат работать.",
  4237. },
  4238. bedType: {
  4239. label: "Печатная пластина",
  4240. auto: "Авто (из профиля процесса)",
  4241. coolPlate: "Холодная пластина",
  4242. coolPlateSuperTack: "Холодная пластина SuperTack",
  4243. engineering: "Инженерная пластина",
  4244. highTemp: "Высокотемпературная пластина",
  4245. texturedPEI: "Текстурированная PEI-пластина",
  4246. smoothPEI: "Гладкая PEI-пластина",
  4247. },
  4248. pipelines: {
  4249. label: "Конвейер",
  4250. applyAria: "Применить конвейер",
  4251. applyPrompt: "Применить конвейер…",
  4252. empty: "Нет сохранённых конвейеров",
  4253. saveButton: "Сохранить как конвейер",
  4254. saveTitle: "Сохранить текущий набор из четырёх профилей как повторно используемый конвейер",
  4255. namePlaceholder: "Название конвейера",
  4256. nameAria: "Название нового конвейера",
  4257. toast: {
  4258. applied: "Применён конвейер «{{name}}»",
  4259. saved: "Конвейер сохранён",
  4260. saveFailed: "Не удалось сохранить",
  4261. },
  4262. },
  4263. },
  4264. spoolman: {
  4265. title: "Интеграция со Spoolman",
  4266. enabled: "Spoolman включён",
  4267. url: "URL Spoolman",
  4268. connected: "Подключено",
  4269. disconnected: "Нет подключения",
  4270. testConnection: "Проверить подключение",
  4271. sync: "Синхронизировать",
  4272. syncing: "Синхронизация…",
  4273. lastSync: "Последняя синхронизация",
  4274. linkToSpoolman: "Связать со Spoolman",
  4275. openInSpoolman: "Открыть в Spoolman",
  4276. unlinkSpool: "Отвязать катушку",
  4277. unlinkConfirmTitle: "Снять назначение катушки?",
  4278. unlinkConfirmMessage: "Катушка будет удалена из этого слота. Данные самой катушки останутся без изменений.",
  4279. selectSpool: "Выбрать катушку",
  4280. noUnlinkedSpools: "Нет свободных катушек",
  4281. linkSuccess: "Катушка успешно назначена",
  4282. linkFailed: "Не удалось назначить катушку",
  4283. unlinkSuccess: "Назначение катушки снято",
  4284. unlinkFailed: "Не удалось снять назначение катушки",
  4285. linkedSpool: "Назначенная катушка",
  4286. spoolId: "ID катушки",
  4287. fillSourceLabel: "(Spoolman)",
  4288. weight: "Масса",
  4289. remaining: "Остаток",
  4290. disableWeightSync: "Отключить синхронизацию расчётной массы AMS",
  4291. disableWeightSyncDesc: "Не обновлять остаток по оценке AMS. Используйте это, если предпочитаете учёт расхода Spoolman процентной оценке AMS. Для новых катушек оценка AMS всё равно будет использована как начальная масса.",
  4292. reportPartialUsage: "Учитывать частичный расход при неудачной печати",
  4293. reportPartialUsageDesc: "Если печать завершилась ошибкой или была отменена, учитывать примерный расход филамента до этого момента по прогрессу слоёв.",
  4294. },
  4295. locations: {
  4296. title: "Места хранения",
  4297. subtitle: "Управление полками, ящиками и другими физическими местами хранения катушек",
  4298. add: "Добавить место",
  4299. addShort: "Добавить",
  4300. edit: "Изменить место",
  4301. name: "Название",
  4302. spools: "Катушки",
  4303. sensors: "Датчики",
  4304. empty: "Мест хранения пока нет. Создайте первую полку или ящик.",
  4305. manage: "Места хранения",
  4306. createPlaceholder: "например, Полка A или Ящик 1",
  4307. nameRequired: "Укажите название места хранения",
  4308. created: "Место хранения создано",
  4309. updated: "Место хранения обновлено",
  4310. deleted: "Место хранения удалено",
  4311. saveFailed: "Не удалось сохранить место хранения",
  4312. deleteFailed: "Не удалось удалить место хранения",
  4313. deleteBlocked: "Перед удалением переместите из этого места все катушки",
  4314. confirmDelete: "Удалить «{{name}}»?",
  4315. confirmDeleteMessage: "Это место будет удалено из каталога. Сначала необходимо переместить все катушки.",
  4316. confirmDeleteMessageWithSensors: 'Это место будет удалено из каталога. Сначала необходимо переместить все катушки. Подключённые датчики также будут удалены.',
  4317. },
  4318. inventory: {
  4319. title: "Учёт катушек",
  4320. subtitle: "Управление катушками",
  4321. addToInventory: "Добавить в учёт",
  4322. addToInventoryPending: "Добавление…",
  4323. addToInventorySuccess: "Катушка добавлена в учёт",
  4324. addToInventoryFailed: "Не удалось добавить катушку в учёт",
  4325. unknownSpoolTitle: "Обнаружен новый филамент",
  4326. unknownSpoolMessage: "В {{location}} обнаружена катушка с неизвестной RFID-меткой. Добавить её в учёт?",
  4327. unknownSpoolSlot: "Слот",
  4328. bulk: {
  4329. selectAllVisible: "Выбрать все видимые",
  4330. selectRow: "Выбрать строку",
  4331. selectGroup: "Выбрать группу",
  4332. selectionCount: "Выбрано: {{count}}",
  4333. edit: "Изменить",
  4334. printLabels: "Печать этикеток",
  4335. resetUsage: "Сбросить расход",
  4336. restore: "Восстановить",
  4337. archive: "Архивировать",
  4338. delete: "Удалить",
  4339. clearSelection: "Снять выделение",
  4340. editTitle: "Массовое изменение катушек",
  4341. editSubtitle: "Изменения применятся к {{count}} выбранным катушкам. Обновятся только отмеченные поля.",
  4342. editHint: "Введите значение в поле, чтобы включить его обновление. Будут отправлены только отмеченные строки. Пустое поле не изменяет катушки; очистить значение можно только при редактировании отдельной катушки.",
  4343. useCustom: "Использовать «{{value}}»",
  4344. toggleField: "Включить или отключить обновление этого поля",
  4345. changeCount: "Будет обновлено полей: {{count}}.",
  4346. applyPending: "Применение…",
  4347. applyButton: "Применить к {{count}} катушкам",
  4348. deleteTitle: "Удалить выбранные катушки",
  4349. archiveTitle: "Архивировать выбранные катушки",
  4350. restoreTitle: "Восстановить выбранные катушки",
  4351. resetUsageTitle: "Сбросить расход выбранных катушек",
  4352. deleteMessage: "Безвозвратно удалить {{count}} катушек? Это действие нельзя отменить.",
  4353. archiveMessage: "Архивировать {{count}} катушек? Позже их можно будет восстановить.",
  4354. restoreMessage: "Восстановить {{count}} архивных катушек?",
  4355. resetUsageMessage: "Сбросить счётчик «Израсходовано всего» у {{count}} катушек? Текущий остаток массы сохранится.",
  4356. updateSuccess: "Обновлено катушек: {{count}}",
  4357. updateFailed: "Ошибка массового обновления",
  4358. updatePartial: "Обновлено: {{ok}}, с ошибкой: {{failed}}",
  4359. updateAllFailed: "Не удалось обновить все {{count}} катушек. Выделение сохранено для повторной попытки.",
  4360. deleteSuccess: "Удалено катушек: {{count}}",
  4361. deleteFailed: "Ошибка массового удаления",
  4362. deletePartial: "Удалено: {{ok}}, с ошибкой: {{failed}}",
  4363. deleteAllFailed: "Не удалось удалить все {{count}} катушек. Выделение сохранено для повторной попытки.",
  4364. archiveSuccess: "Архивировано катушек: {{count}}",
  4365. archiveFailed: "Ошибка массового архивирования",
  4366. archivePartial: "Архивировано: {{ok}}, с ошибкой: {{failed}}",
  4367. archiveAllFailed: "Не удалось архивировать все {{count}} катушек. Выделение сохранено для повторной попытки.",
  4368. restoreSuccess: "Восстановлено катушек: {{count}}",
  4369. restoreFailed: "Ошибка массового восстановления",
  4370. restorePartial: "Восстановлено: {{ok}}, с ошибкой: {{failed}}",
  4371. restoreAllFailed: "Не удалось восстановить все {{count}} катушек. Выделение сохранено для повторной попытки.",
  4372. invalidHex: "Введите 6 шестнадцатеричных символов (RRGGBB) или 8 (RRGGBBAA), иначе поле не будет применено.",
  4373. },
  4374. spoolmanMixedContentTitle: "Spoolman не загружается через HTTPS: браузер заблокировал смешанное содержимое",
  4375. spoolmanMixedContentBody: "Bambuddy открыт через HTTPS (через обратный прокси), а URL Spoolman всё ещё использует обычный HTTP. Браузер блокирует такое смешанное содержимое, поэтому встроенный интерфейс Spoolman не отображается. Для работы Spoolman должен быть доступен по HTTPS.",
  4376. spoolmanMixedContentFixReverseProxy: "Разместите Spoolman за тем же обратным прокси, что и Bambuddy (Traefik / Nginx / Caddy), включите HTTPS и укажите новый HTTPS-адрес Spoolman в настройках.",
  4377. spoolmanMixedContentFixOpenNewTab: "В качестве обходного решения откройте Spoolman по HTTP в новой вкладке. Ограничение смешанного содержимого действует только для встроенных фреймов.",
  4378. spoolmanOpenInNewTab: "Открыть Spoolman в новой вкладке",
  4379. labels: {
  4380. title: "Печать этикеток катушек",
  4381. selectedCount: "Выбрано: {{count}}",
  4382. pickSpools: "Выберите катушки для печати этикеток:",
  4383. monochrome: "Монохромный режим (чёрно-белый принтер)",
  4384. monochromeHint: "Убирает образец цвета и расширяет область текста",
  4385. startingPosition: "Начальная позиция этикетки",
  4386. startingPositionRange: "Только для листовых шаблонов: L7160 — 1–21; 5160 — 1–30.",
  4387. startingPositionInvalid: "Введите целое число от 1 до {{capacity}}.",
  4388. startingPositionFirst: "Печать начинается с позиции 1.",
  4389. startingPositionSkipped: "Позиции с 1 по {{lastPosition}} останутся пустыми на первом листе.",
  4390. startingPositionRangeError: "Начальная позиция для этого листа должна быть от 1 до {{capacity}}.",
  4391. searchPlaceholder: "Поиск по названию, бренду или #ID",
  4392. filterByMaterial: "Материал:",
  4393. allMaterials: "Все",
  4394. selectVisible: "Выбрать все видимые ({{count}})",
  4395. deselectVisible: "Снять выделение с видимых",
  4396. clearAll: "Очистить выбор",
  4397. noSpoolsToShow: "Нет катушек для отображения. Измените фильтр и повторите попытку.",
  4398. noMatches: "Нет катушек, соответствующих поиску или фильтру.",
  4399. printOne: "Напечатать этикетку этой катушки",
  4400. printLabels: "Печать этикеток…",
  4401. bulkTitle: "Выберите катушки для печати этикеток из {{count}} отображаемых",
  4402. noSpoolsTitle: "Нет катушек для печати этикеток",
  4403. error: "Не удалось создать этикетки: {{msg}}",
  4404. sortBy: {
  4405. label: "Сортировка:",
  4406. id: "По ID",
  4407. color: "По цвету",
  4408. },
  4409. templates: {
  4410. amsHolderSmall: {
  4411. label: "Держатель AMS — малый (74 × 33 мм)",
  4412. hint: "Одна этикетка на страницу; соответствует печатной этикетке для модели MakerWorld 752566 (AMS Filament Label Holder).",
  4413. },
  4414. amsHolderLarge: {
  4415. label: "Держатель AMS — большой (75 × 55 мм)",
  4416. hint: "Одна этикетка на страницу; подходит для варианта держателя AMS с картонной вставкой. Достаточно места для образца цвета, бренда, материала, ID и QR-кода.",
  4417. },
  4418. box40x30: {
  4419. label: "Этикетка для коробки (40 × 30 мм)",
  4420. hint: "Одна этикетка на страницу; распространённый размер рулона DK/Brother, подходит для пакетов с филаментом и контейнеров хранения.",
  4421. },
  4422. box: {
  4423. label: "Этикетка для коробки (62 × 29 мм)",
  4424. hint: "Одна этикетка на страницу; размер для малых этикеток Brother PT/QL и Dymo.",
  4425. },
  4426. averyL7160: {
  4427. label: "Avery L7160 — лист A4 (38,1 × 63,5 мм × 21)",
  4428. hint: "Европейский формат: 21 этикетка на листе A4.",
  4429. },
  4430. avery5160: {
  4431. label: "Avery 5160 — лист US Letter (25,4 × 66,7 мм × 30)",
  4432. hint: "Американский формат: 30 этикеток на листе Letter.",
  4433. },
  4434. },
  4435. },
  4436. csv: {
  4437. importButton: "Импорт CSV",
  4438. exportButton: "Экспорт CSV",
  4439. modalTitle: "Импорт катушек из CSV",
  4440. selectFile: "Выберите CSV-файл или перетащите его сюда",
  4441. dragHint: "Заголовок: material (обязательно), brand, subtype, color_name, rgba, …",
  4442. parsing: "Чтение файла…",
  4443. previewError: "Не удалось прочитать CSV-файл",
  4444. validCount: "Корректных: {{count}}",
  4445. errorCount: "Ошибок: {{count}}",
  4446. skippedCount: "Пропущено: {{count}}",
  4447. colRow: "Строка",
  4448. colStatus: "Состояние",
  4449. colColor: "Цвет",
  4450. colorResolved: "Цвет подставлен из каталога",
  4451. colorCrossMaterial: "Цвет взят у другого материала: точного совпадения в каталоге нет",
  4452. duplicateExisting: "Катушка с таким материалом, брендом и цветом уже существует, но запись всё равно будет импортирована как новая катушка",
  4453. spoolmanHint: "В режиме Spoolman используйте встроенный импорт и экспорт CSV в Spoolman.",
  4454. importValidRows: "Импортировать {{count}} корректных строк",
  4455. noValidRows: "Нет корректных строк",
  4456. importing: "Импорт…",
  4457. importSuccess: "Импортировано катушек: {{count}}",
  4458. importError: "Ошибка импорта",
  4459. exportError: "Ошибка экспорта",
  4460. },
  4461. addSpool: "Добавить катушку",
  4462. editSpool: "Изменить катушку",
  4463. copySpool: "Копировать катушку",
  4464. material: "Материал",
  4465. selectMaterial: "Выберите материал…",
  4466. subtype: "Подтип",
  4467. brand: "Бренд",
  4468. searchBrand: "Поиск бренда…",
  4469. useCustomBrand: "Использовать «{{brand}}»",
  4470. useCustomMaterial: "Использовать свой материал: {{material}}",
  4471. suggestedOptions: "Рекомендуемые",
  4472. allOptions: "Все",
  4473. colorName: "Название цвета",
  4474. colorNamePlaceholder: "Jade White, Fire Red…",
  4475. color: "Цвет",
  4476. hexColor: "Цвет HEX",
  4477. pickColor: "Выбрать свой цвет",
  4478. labelWeight: "Номинальная масса",
  4479. coreWeight: "Масса пустой катушки",
  4480. searchSpoolWeight: "Поиск массы катушки…",
  4481. weightUsed: "Израсходовано",
  4482. currentWeight: "Остаток массы",
  4483. measuredWeight: "Измеренная масса",
  4484. spoolName: "Катушка",
  4485. costPerKg: "Стоимость за кг",
  4486. storageLocation: "Место хранения",
  4487. temperature: "Температура",
  4488. humidity: "Влажность",
  4489. battery: "Батарея",
  4490. storageLocationPlaceholder: "например, Полка A, Ящик 1",
  4491. openInInventory: "Открыть в учёте",
  4492. measuredWeightError: "Измеренная масса должна быть от {{min}} до {{max}} г.",
  4493. slicerFilament: "Филамент слайсера",
  4494. slicerFilamentName: "Название пресета слайсера",
  4495. slicerPreset: "Пресет слайсера",
  4496. searchPresets: "Поиск пресетов филамента…",
  4497. selectedPreset: "Выбрано",
  4498. noPresetsFound: "Пресеты не найдены",
  4499. tempOverrides: "Переопределение температур",
  4500. note: "Примечание",
  4501. notePlaceholder: "Дополнительные сведения об этой катушке…",
  4502. category: "Категория",
  4503. categoryPlaceholder: "например, Производство, Прототип, Клиент A",
  4504. categoryNone: "Без категории",
  4505. storageLocationNone: "Место не указано",
  4506. lowStockThresholdOverride: "Порог малого остатка (эта катушка)",
  4507. lowStockThresholdOverrideHelp: "Оставьте пустым, чтобы использовать общий порог ({{global}}%).",
  4508. clearRfid: "Очистить RFID-метку",
  4509. rfidCleared: "RFID-метка очищена",
  4510. archive: "Архивировать",
  4511. restore: "Восстановить",
  4512. noSpools: "Катушек пока нет. Добавьте первую катушку.",
  4513. noAvailableSpools: "Нет доступных катушек. Добавьте катушку в учёт или сначала освободите её в другом слоте.",
  4514. kProfiles: "K-профили",
  4515. addKProfile: "Добавить K-профиль",
  4516. assignSpool: "Назначить катушку",
  4517. unassignSpool: "Снять назначение",
  4518. assignSuccess: "Катушка назначена, слот AMS настроен",
  4519. assignPendingInsert: "Катушка назначена. Слот будет настроен после её установки.",
  4520. assignFailed: "Не удалось назначить катушку",
  4521. selectSpool: "Выберите катушку для назначения этому слоту",
  4522. assigned: "Назначено",
  4523. assigning: "Назначение…",
  4524. searchSpools: "Поиск катушек…",
  4525. showAllSpools: "Показать все катушки",
  4526. spoolmanSpools: "Катушки Spoolman",
  4527. allMaterials: "Все материалы",
  4528. filterByBrand: "Фильтр по бренду…",
  4529. showArchived: "Показывать архивные",
  4530. quickAdd: "Быстрое добавление",
  4531. quantity: "Количество",
  4532. stock: "На складе",
  4533. configured: "Настроено",
  4534. spoolsCreated: "Создано катушек: {{count}}",
  4535. spoolsPartiallyCreated: "Создано {{created}} из {{total}} катушек; часть операций завершилась ошибкой",
  4536. spoolCreated: "Катушка создана",
  4537. spoolUpdated: "Катушка обновлена",
  4538. spoolDeleted: "Катушка удалена",
  4539. deepLinkSpoolNotFound: "Катушка не найдена",
  4540. deepLinkFetchFailed: "Не удалось загрузить катушку. Повторите попытку.",
  4541. spoolArchived: "Катушка архивирована",
  4542. spoolRestored: "Катушка восстановлена",
  4543. kProfileSaveFailed: "Не удалось сохранить настройки K-профиля",
  4544. syncWeightSpoolNotFound: "Катушка не найдена: возможно, она была удалена",
  4545. syncWeightSpoolmanUnreachable: "Spoolman недоступен. Повторите попытку позже.",
  4546. syncWeightFailed: "Не удалось синхронизировать массу",
  4547. spoolmanUnreachable: "Spoolman недоступен. Повторите попытку позже.",
  4548. deleteSpoolNotFound: "Катушка не найдена: возможно, она уже удалена",
  4549. deleteFailed: "Не удалось удалить катушку",
  4550. archiveSpoolNotFound: "Катушка не найдена: возможно, она уже удалена",
  4551. archiveFailed: "Не удалось архивировать катушку",
  4552. restoreSpoolNotFound: "Катушка не найдена: возможно, она уже удалена",
  4553. restoreFailed: "Не удалось восстановить катушку",
  4554. saveFailed: "Не удалось сохранить изменения",
  4555. tagClearFailed: "Не удалось очистить метку",
  4556. deleteConfirm: "Удалить эту катушку без возможности восстановления?",
  4557. archiveConfirm: "Архивировать эту катушку?",
  4558. advancedSettings: "Расширенные настройки",
  4559. filamentInfoTab: "Сведения о филаменте",
  4560. paProfileTab: "Профиль PA",
  4561. colorAndCostTab: 'Цвет и стоимость',
  4562. printersTab: 'Принтеры',
  4563. filamentInfo: "Филамент",
  4564. additional: "Дополнительно",
  4565. loadingPresets: "Загрузка облачных пресетов…",
  4566. cloudConnected: "Облако подключено",
  4567. cloudNotConnected: "Облако не подключено; используются значения по умолчанию",
  4568. recentColors: "Недавние",
  4569. searchColors: "Поиск цветов…",
  4570. searchResults: "Результаты поиска",
  4571. allColors: "Все цвета",
  4572. commonColors: "Основные цвета",
  4573. showLess: "Показать меньше",
  4574. showAll: "Показать все",
  4575. noColorsFound: "Нет цветов, соответствующих запросу",
  4576. noResults: "Совпадений не найдено",
  4577. extraColorsLabel: "Дополнительные цвета",
  4578. extraColorsPlaceholder: "EC984C,#6CD4BC,A66EB9,D87694",
  4579. extraColorsHint: "Вставьте от 2 до 8 HEX-цветов через запятую. Они будут отображены как градиент.",
  4580. extraColorsInvalid: "Пропущены некорректные HEX-значения: {{tokens}}",
  4581. colorEffectLabel: "Эффект",
  4582. colorEffect: {
  4583. none: "Нет",
  4584. sparkle: "Блёстки",
  4585. wood: "Дерево",
  4586. marble: "Мрамор",
  4587. glow: "Свечение",
  4588. matte: "Матовый",
  4589. silk: "Шёлк",
  4590. galaxy: "Галактика",
  4591. rainbow: "Радуга",
  4592. metal: "Металл",
  4593. translucent: "Полупрозрачный",
  4594. gradient: "Градиент",
  4595. dualColor: "Двухцветный",
  4596. triColor: "Трёхцветный",
  4597. multicolor: "Многоцветный",
  4598. },
  4599. selectMaterialFirst: "Сначала выберите материал на вкладке «Сведения о филаменте».",
  4600. noPrintersConfigured: "Принтеры не настроены. Добавьте принтеры, чтобы использовать профили PA.",
  4601. matchingFilter: "Совпадающие",
  4602. anyBrand: "Любой бренд",
  4603. anyVariant: "Любой вариант",
  4604. autoSelect: "Автовыбор",
  4605. matches: "совпадений",
  4606. match: "совпадение",
  4607. noMatches: "Нет совпадений",
  4608. connected: "Подключён",
  4609. offline: "Не в сети",
  4610. printerOffline: "Принтер не в сети. Подключите его для просмотра калибровочных профилей.",
  4611. noKProfilesMatch: "Нет K-профилей, соответствующих выбранному филаменту.",
  4612. leftNozzle: "Левое сопло",
  4613. rightNozzle: "Правое сопло",
  4614. profilesSelected: "выбрано калибровочных профилей",
  4615. // Printers tab: per-model filament preset + per-hotend K profile
  4616. filamentPreset: 'Пресет филамента',
  4617. presetUseSpoolDefault: 'Использовать пресет катушки',
  4618. presetInherited: 'наследуется',
  4619. presetOverride: 'переопределён',
  4620. presetNeedsModel: 'Этот принтер ещё не сообщил свою модель, поэтому у него не может быть собственного пресета.',
  4621. autoMatchPresets: 'Подобрать автоматически',
  4622. autoMatchPresetsHint: 'Найти вариант пресета катушки, в названии которого указана каждая модель',
  4623. kProfilesPerPrinter: 'K-профили',
  4624. kProfileNotSet: 'Не задан',
  4625. kProfileFlowMismatch: 'Этот профиль измерен на сопле {{profile}}, но установлено сопло {{fitted}}, поэтому он не будет применён',
  4626. nozzle: 'Сопло',
  4627. unknownModel: 'Неизвестная модель',
  4628. onePrinter: '1 принтер',
  4629. nPrinters: 'Принтеров: {{n}}',
  4630. filamentPresetsLoadFailed: 'Не удалось загрузить пресеты по моделям для этой катушки',
  4631. filamentPresetSaveFailed: 'Не удалось сохранить пресеты по моделям',
  4632. totalInventory: "Всего в учёте",
  4633. totalConsumed: "Израсходовано всего",
  4634. byMaterial: "По материалам",
  4635. inPrinter: "В принтерах",
  4636. lowStock: "Малый остаток",
  4637. sinceTracking: "С начала учёта",
  4638. resetConsumedCounter: "Сбросить счётчик",
  4639. resetConsumedCounterTooltip: "Обнулить счётчик израсходованных граммов для этой катушки. Остаток массы не изменится.",
  4640. resetConsumedCounterConfirm: "Сбросить счётчик расхода этой катушки до 0? Последующие печати будут учитываться заново. Сама катушка, расчёт остатка и настройки не изменятся.",
  4641. resetAllConsumedCounters: "Сбросить все счётчики",
  4642. resetAllConsumedCountersTooltip: "Обнулить счётчик израсходованных граммов у всех катушек. Остатки массы не изменятся.",
  4643. resetAllConsumedCountersConfirm: "Сбросить счётчик расхода до 0 у всех {{count}} катушек, включая архивные? Показатель «Израсходовано всего» будет очищен, а будущие печати начнут учитываться с нуля. Катушки и их остатки не изменятся.",
  4644. consumedCounterReset: "Счётчик сброшен",
  4645. allConsumedCountersReset: "Счётчик сброшен у {{count}} катушек",
  4646. resetConsumedCounterFailed: "Не удалось сбросить счётчик",
  4647. loadedInAms: "Загружено в AMS/внешний слот",
  4648. remaining: "Остаток",
  4649. weightCheck: "Проверка массы",
  4650. lastWeighed: "Последнее взвешивание",
  4651. neverWeighed: "Не взвешивалась",
  4652. search: "Поиск катушек…",
  4653. showing: "Показано",
  4654. to: "–",
  4655. of: "из",
  4656. show: "Показывать",
  4657. spools: "катушек",
  4658. spool: "катушка",
  4659. page: "Страница",
  4660. noSpoolsMatch: "Ничего не найдено",
  4661. noSpoolsMatchDesc: "Измените поисковый запрос или фильтры.",
  4662. active: "Активные",
  4663. archived: "Архивные",
  4664. all: "Все",
  4665. used: "Израсходовано",
  4666. new: "Новые",
  4667. clearFilters: "Сбросить фильтры",
  4668. table: "Таблица",
  4669. cards: "Карточки",
  4670. net: "Нетто",
  4671. groupSimilar: "Группировать",
  4672. groupedSpools: "Одинаковых катушек: {{count}}",
  4673. groupedRows: "строк",
  4674. columns: "Столбцы",
  4675. configureColumns: "Настроить столбцы",
  4676. configureColumnsDesc: "Перетаскивайте столбцы или используйте стрелки для изменения порядка. Видимость переключается значком глаза.",
  4677. visible: "видимых",
  4678. reset: "Сбросить",
  4679. cancel: "Отмена",
  4680. applyChanges: "Применить изменения",
  4681. moveUp: "Переместить вверх",
  4682. moveDown: "Переместить вниз",
  4683. hideColumn: "Скрыть столбец",
  4684. showColumn: "Показать столбец",
  4685. linkToSpool: "Связать с катушкой",
  4686. tagLinked: "Метка связана с катушкой",
  4687. tagLinkFailed: "Не удалось связать метку",
  4688. tagAlreadyLinked: "Метка уже связана с другой катушкой",
  4689. unknownTag: "Обнаружена неизвестная RFID-метка",
  4690. usageHistory: "История расхода",
  4691. noUsageHistory: "Расход пока не зарегистрирован",
  4692. printName: "Название печати",
  4693. weightConsumed: "Израсходованная масса",
  4694. clearHistory: "Очистить",
  4695. historyCleared: "История расхода очищена",
  4696. fillSourceLabel: "(Учёт)",
  4697. lowStockThresholdError: "Порог должен быть от 0,1 до 99,9",
  4698. assignMismatchTitle: "Несоответствие материала",
  4699. assignMismatchMessage: "Материал выбранной катушки «{{spoolMaterial}}» не соответствует материалу слота «{{trayMaterial}}» в {{location}}. Всё равно назначить?",
  4700. assignMismatchConfirm: "Всё равно назначить",
  4701. assignPartialMismatchMessage: "Материал катушки «{{spoolMaterial}}» похож, но не совпадает точно с «{{trayMaterial}}» в {{location}}. Продолжить?",
  4702. assignProfileMismatchMessage: "Профиль катушки «{{spoolProfile}}» не соответствует профилю слота «{{trayProfile}}» в {{location}}. Продолжить?",
  4703. assignReconfigureNote: "Слот AMS будет перенастроен на профиль катушки.",
  4704. spoolmanFilamentCatalog: "Каталог филаментов Spoolman",
  4705. pickFromSpoolmanCatalog: "Выбрать из каталога Spoolman…",
  4706. spoolmanFilamentSelected: "Филамент выбран из каталога Spoolman",
  4707. spoolmanFilamentUnlinked: "Связь с каталогом филаментов удалена",
  4708. noSpoolmanFilaments: "В каталоге Spoolman филаменты не найдены",
  4709. spoolmanFilamentColorSwatch: "Цвет филамента",
  4710. spoolWeightManagedBySpoolman: "Масса пустой катушки задаётся в Spoolman для каждого типа филамента",
  4711. spoolmanCatalogLoadFailed: "Не удалось загрузить каталог филаментов Spoolman",
  4712. },
  4713. timelapse: {
  4714. title: "Таймлапс",
  4715. create: "Создать таймлапс",
  4716. download: "Скачать",
  4717. delete: "Удалить",
  4718. preview: "Предпросмотр",
  4719. frameRate: "Частота кадров",
  4720. quality: "Качество",
  4721. processing: "Обработка...",
  4722. noTimelapses: "Таймлапсы отсутствуют",
  4723. },
  4724. ams: {
  4725. title: "AMS",
  4726. slot: "Слот",
  4727. empty: "Пусто",
  4728. emptySlot: "Пустой слот",
  4729. slotEmpty: "Пусто",
  4730. slotUnconfigured: "?",
  4731. emptySlotReset: "Филамент не назначен",
  4732. unknown: "Неизвестно",
  4733. humidity: "Влажность",
  4734. temperature: "Температура",
  4735. filamentType: "Тип филамента",
  4736. filamentColor: "Цвет",
  4737. remaining: "Остаток",
  4738. history: "История AMS",
  4739. noHistory: "История отсутствует",
  4740. configureSlot: "Настроить слот",
  4741. externalSpool: "Внешняя катушка",
  4742. profile: "Профиль",
  4743. kFactor: "Коэффициент K",
  4744. kFactorShort: "K",
  4745. fill: "Заполнить",
  4746. configure: "Настроить",
  4747. used: "использовано",
  4748. remainingUnit: "осталось",
  4749. },
  4750. printModal: {
  4751. variants: {
  4752. editNote: 'Эти варианты заданы при добавлении в очередь. Чтобы изменить их, отмените и добавьте заново.',
  4753. title: 'Варианты принтера',
  4754. help: 'Одна задача, одно место в очереди. Первый подходящий освободившийся принтер напечатает свой файл.',
  4755. unknownModel: 'Неизвестная модель',
  4756. plateFor: 'Стол для {{filename}}',
  4757. moveUp: 'Вверх',
  4758. moveDown: 'Вниз',
  4759. queued: 'В очереди, вариантов: {{count}}',
  4760. },
  4761. selectPrinter: "Выберите принтер",
  4762. selectPlate: "Выберите пластину",
  4763. filamentMapping: "Сопоставление филаментов",
  4764. useArchiveMapping: "Маппинг",
  4765. useArchiveMappingTooltip: "Выбрать все ячейки из маппинга AMS, сохранённого с этим архивом (от слайсера), вместо подбора по типу/цвету.",
  4766. clickToChangeSlot: "Нажмите, чтобы изменить назначение ячейки",
  4767. reRead: "Перечитать",
  4768. plateN: "Пластина {{n}}",
  4769. plateFilamentsUnreadable: "Не удалось определить филаменты выбранной пластины, поэтому их невозможно сопоставить. Снимите выбор с этой пластины, чтобы добавить остальные в очередь.",
  4770. totalCost: "Общая стоимость:",
  4771. slotRemainingShort: " — осталось {{grams}} г",
  4772. printSettings: "Настройки печати",
  4773. bedLeveling: "Калибровка стола",
  4774. flowCalibration: "Калибровка потока",
  4775. vibrationCalibration: "Калибровка вибраций",
  4776. layerInspection: "Проверка первого слоя",
  4777. timelapse: "Таймлапс",
  4778. cancel: "Отмена",
  4779. noPrintersAvailable: "Нет доступных принтеров",
  4780. printerBusy: "Принтер занят",
  4781. printerOffline: "Принтер не в сети",
  4782. sameTypeDifferentColor: "Тот же тип, другой цвет",
  4783. filamentTypeNotLoaded: "Филамент этого типа не загружен",
  4784. statusReady: "Готово",
  4785. statusColorMismatch: "Цвет не совпадает",
  4786. statusTypeNotFound: "Тип не найден",
  4787. requiredTooltip: "Требуется: {{name}} - {{color}}",
  4788. manuallySelected: "Выбрано вручную",
  4789. autoMatched: "Подобрано автоматически",
  4790. selectSlot: "Выбрать слот",
  4791. sameTypeDifferentColorDetail: "Тот же тип, другой цвет: нужен {{required}}, в слоте {{loaded}}",
  4792. requiredTypeNotInPrinter: "Требуемый тип филамента не найден в принтере.",
  4793. whenToPrint: "Когда печатать",
  4794. asap: "Как можно скорее",
  4795. queue: "В очередь",
  4796. schedule: "По расписанию",
  4797. dateTime: "Дата и время",
  4798. invalidDateTime: "Введите корректные дату и время",
  4799. openCalendar: "Открыть календарь",
  4800. requireManualStart: "Требовать ручного запуска",
  4801. requirePreviousSuccess: "Запускать только после успешной предыдущей печати",
  4802. autoOffAfter: "Выключить принтер после завершения",
  4803. helpAsap: "Задание будет добавлено в начало очереди и запустится, как только подходящий принтер освободится.",
  4804. helpSchedule: "Задание запустится в указанное время, если принтер свободен. Если принтер занят, оно будет ждать освобождения.",
  4805. helpQueue: "Задание будет добавлено в конец очереди.",
  4806. leftNozzle: "Л",
  4807. rightNozzle: "П",
  4808. leftNozzleTooltip: "Левое сопло",
  4809. rightNozzleTooltip: "Правое сопло",
  4810. ftsSameInletHint: "Все филаменты для этой печати подключены к переключателю тракта филамента IN-{{inlet}}. Смена между филаментами на одном входе идёт медленнее — переставьте один в AMS на другом входе.",
  4811. rackPosition: "Позиция в стойке",
  4812. rackPositionTooltip: "Каким соплом из стойки печатать этот филамент. Позиции нумеруются так же, как на принтере.",
  4813. rackEmptyPosition: "Эта позиция в стойке пуста",
  4814. rackWrongNozzle: "Установлено сопло {{has}}; этому филаменту нужно {{needs}}",
  4815. filamentOverride: "Переопределение филаментов",
  4816. filamentOverrideHint: "При необходимости замените филаменты для назначения по модели. Планировщик будет сопоставлять выбранные филаменты вместо исходных значений из 3MF.",
  4817. originalFilament: "Исходный",
  4818. overrideWith: "Заменить на",
  4819. resetToOriginal: "Вернуть исходный",
  4820. insufficientFilamentTitle: "Недостаточно филамента",
  4821. waitingForAmsStatus: "Ожидание состояния AMS от принтера {{printer}}…",
  4822. insufficientFilamentMessage: "На некоторых назначенных катушках осталось меньше филамента, чем требуется для этой печати:",
  4823. insufficientFilamentLine: "{{printer}} — {{slot}}: требуется {{required}} г, осталось {{remaining}} г",
  4824. insufficientFilamentLinePooled: "{{printer}} — {{slot}}: требуется {{required}} г, доступно {{remaining}} г на подходящих катушках (резервный филамент AMS)",
  4825. printAnyway: "Всё равно печатать",
  4826. forceColorMatch: "Обязательно учитывать цвет",
  4827. staggerPrinterStarts: "Запускать принтеры с задержкой",
  4828. staggerGroupSize: "Размер группы",
  4829. staggerInterval: "Интервал (мин)",
  4830. staggerPreview: "{{printers}} принтеров → {{groups}} групп по {{size}}, запуск каждые {{interval}} мин",
  4831. staggerLastGroup: "последняя группа: {{count}}",
  4832. staggerTotal: "всего: {{minutes}} мин",
  4833. staggerToPrinters: "Распределить запуск для {{count}} принтеров",
  4834. gcodeInjection: "Добавить G-code автозапуска",
  4835. insufficientBudget: "Недостаточно бюджета",
  4836. unlimitedNoBudget: "Без ограничений — лимит бюджета не задан.",
  4837. noPrintableCostCenters: "Нет активного центра затрат, доступного для печати. Попросите администратора предоставить вам доступ к печати.",
  4838. },
  4839. backup: {
  4840. includesEncryptionKey: "Локальные резервные копии включают файл ключа шифрования MFA (DATA_DIR/.mfa_encryption_key), поэтому ZIP-архив является самодостаточным. Считайте этот ZIP конфиденциальным: любой, у кого есть файл, сможет расшифровать сохранённые в нём секреты клиента OIDC и TOTP.",
  4841. title: "Резервное копирование и восстановление",
  4842. createBackup: "Создать резервную копию",
  4843. restoreBackup: "Восстановить из копии",
  4844. restoreDescription: "Заменить все данные данными из резервной копии",
  4845. downloadBackup: "Скачать резервную копию",
  4846. uploadBackup: "Загрузить резервную копию",
  4847. lastBackup: "Последняя копия",
  4848. autoBackup: "Автоматическое резервное копирование",
  4849. backupNow: "Создать копию сейчас",
  4850. restoreWarning: "Внимание: восстановление из резервной копии перезапишет все текущие данные.",
  4851. includeArchives: "Включить архивы",
  4852. includeSettings: "Включить настройки",
  4853. includeProfiles: "Включить профили",
  4854. backupSuccess: "Резервная копия успешно создана",
  4855. restoreSuccess: "Резервная копия успешно восстановлена",
  4856. backupFailed: "Не удалось создать резервную копию",
  4857. restoreFailed: "Не удалось выполнить восстановление",
  4858. restoreNote: "На время восстановления виртуальный принтер будет остановлен",
  4859. githubBackup: "Резервная копия в Git",
  4860. enabled: "Включено",
  4861. cloudLoginRequired: "Требуется вход в Bambu Cloud. Войдите в разделе «Профили → Облачные профили», чтобы включить резервное копирование в GitHub.",
  4862. cloudLoginRequiredShort: "Требуется вход в облако",
  4863. githubDescription: "Автоматически синхронизировать профили с приватным репозиторием GitHub для резервного копирования и хранения истории версий.",
  4864. repoIsPrivate: "Репозиторий приватный — резервное копирование безопасно.",
  4865. repoIsPublicWarning: "Репозиторий ПУБЛИЧНЫЙ. Резервные копии Bambuddy содержат учётные данные MQTT, токены Home Assistant и Prometheus, адрес электронной почты Bambu Cloud и коды доступа к принтерам из K-профилей. Сохранение заблокировано, пока репозиторий не будет сделан приватным в настройках провайдера.",
  4866. repoVisibilityUnknown: "Не удалось определить видимость репозитория. Bambuddy отказывается создавать резервные копии в репозитории, приватность которого не подтверждена; сохранение будет заблокировано.",
  4867. repositoryUrl: "URL репозитория",
  4868. repoUrlPlaceholderGitHub: "https://github.com/username/repo-name",
  4869. repoUrlPlaceholderGitea: "https://gitea.example.com/username/repo-name",
  4870. repoUrlPlaceholderForgejo: "https://forgejo.example.com/username/repo-name",
  4871. repoUrlPlaceholderGitLab: "https://gitlab.com/username/repo-name",
  4872. allowInsecureHttp: "Разрешить небезопасный HTTP",
  4873. allowInsecureHttpHint: "Включайте для локальных серверов в частной сети без TLS",
  4874. personalAccessToken: "Персональный токен доступа",
  4875. tokenSaved: "(сохранён)",
  4876. enterNewToken: "Введите новый токен для обновления",
  4877. tokenHintGitHub: "Токен с точечными правами на чтение и запись Contents либо классический токен с областью repo.",
  4878. tokenHintGitLab: "Токен с областью api либо read_repository вместе с write_repository.",
  4879. tokenHintGitea: "Токен с областью write:repository.",
  4880. tokenHintForgejo: "Токен с областью write:repository. Достаточно токена, ограниченного только этим репозиторием.",
  4881. branch: "Ветка",
  4882. provider: "Git-провайдер",
  4883. providerGitHub: "GitHub",
  4884. providerGitLab: "GitLab",
  4885. providerGitea: "Gitea",
  4886. providerForgejo: "Forgejo",
  4887. manualOnly: "Только вручную",
  4888. hourly: "Ежечасно",
  4889. daily: "Ежедневно",
  4890. weekly: "Еженедельно",
  4891. includeInBackup: "Включить в резервную копию",
  4892. kProfiles: "K-профили",
  4893. kProfilesDescription: "Калибровки Pressure Advance с подключённых принтеров",
  4894. noPrintersConnected: "Нет подключённых принтеров",
  4895. printersConnected: "Подключено {{connected}} из {{total}}",
  4896. cloudProfiles: "Облачные профили",
  4897. cloudProfilesDescription: "Предустановки филамента, принтера и процесса из Bambu Cloud и Orca Cloud",
  4898. cloudProfilesAccounts: "Подключённые аккаунты — Bambu Cloud: {{bambu}}, Orca Cloud: {{orca}}",
  4899. appSettings: "Настройки приложения",
  4900. appSettingsDescription: "Конфигурация Bambuddy (полная база данных)",
  4901. spoolInventory: "Учёт катушек",
  4902. spoolInventoryDescription: "Катушки филамента, история расхода и учёт стоимости",
  4903. printArchives: "Архив печати",
  4904. printArchivesDescription: "Метаданные истории печати без файлов G-code и 3MF",
  4905. lastBackupAt: "Последняя копия:",
  4906. noBackupsYet: "Резервных копий пока нет",
  4907. next: "Следующая:",
  4908. startingBackup: "Запуск резервного копирования...",
  4909. test: "Проверить",
  4910. enableBackup: "Включить резервное копирование",
  4911. testConnection: "Проверить соединение",
  4912. enterRepoUrl: "Введите URL репозитория",
  4913. enterRepoAndToken: "Введите URL репозитория и токен доступа",
  4914. repoRequired: "Необходимо указать URL репозитория",
  4915. tokenRequired: "Необходимо указать токен доступа",
  4916. githubBackupEnabled: "Резервное копирование в GitHub включено",
  4917. tokenUpdated: "Токен обновлён",
  4918. settingsSaved: "Настройки сохранены",
  4919. failedToSave: "Не удалось сохранить: {{message}}",
  4920. backupCompleteFiles: "Резервное копирование завершено — обновлено файлов: {{count}}",
  4921. backupSkippedNoChanges: "Резервное копирование пропущено — изменений нет",
  4922. backupFailed2: "Ошибка резервного копирования: {{message}}",
  4923. clearedLogs: "Очищено записей журнала: {{count}}",
  4924. failedToClearLogs: "Не удалось очистить журнал: {{message}}",
  4925. // Restore from Git backup (#2656)
  4926. restoreFromGit: {
  4927. button: 'Восстановить из Git',
  4928. title: 'Восстановление из резервной копии Git',
  4929. subtitle: 'Выберите коммит и данные для восстановления',
  4930. commitLabel: 'Коммит резервной копии',
  4931. latestCommit: 'Последняя резервная копия (вершина ветки)',
  4932. categoriesLabel: 'Что восстановить',
  4933. inspecting: 'Чтение содержимого резервной копии...',
  4934. itemCount: '{{count}} в резервной копии',
  4935. overwriteLabel: 'Перезаписывать существующие записи',
  4936. overwriteOn: 'Существующие записи будут обновлены из резервной копии.',
  4937. overwriteOff: 'Добавляются только отсутствующие записи, существующие не изменяются.',
  4938. selectedCount: 'Выбрано: {{count}}',
  4939. restoring: 'Восстановление...',
  4940. confirmTitle: 'Восстановить из резервной копии?',
  4941. confirmMessage: 'Выбранные категории будут восстановлены из этого коммита. Отсутствующие записи будут добавлены, существующие останутся без изменений.',
  4942. confirmMessageOverwrite: 'Выбранные категории будут восстановлены из этого коммита с перезаписью уже существующих локальных записей. Отменить это действие нельзя.',
  4943. kprofilesOverwriteCaveat: 'K-профили — исключение: запись в слот всегда заменяет калибровку на принтере.',
  4944. tally: 'восстановлено: {{restored}}, пропущено: {{skipped}}, с ошибкой: {{failed}}',
  4945. reloadHint: 'Перезагрузите Bambuddy, чтобы восстановленные данные отобразились везде.',
  4946. partialHint: 'Перечисленные выше категории завершены и сохранены. Отсутствующие категории не выполнялись.',
  4947. failed: 'Не удалось выполнить восстановление.',
  4948. loadFailed: 'Не удалось прочитать репозиторий резервных копий.',
  4949. details: {
  4950. notPresent: 'Отсутствует в этом коммите резервной копии',
  4951. unreadableJson: 'Нечитаемый JSON: {{paths}}',
  4952. settingsNoPayload: 'В данных нет настроек',
  4953. settingsCredentialsWillSkip: 'Ключей, похожих на учётные данные, будет пропущено: {{count}}',
  4954. settingsCompanionWillSkip: 'Ключей, похожих на учётные данные, будет пропущено: {{count}}, а зависящие от них переключатели ({{companion}}) останутся выключенными',
  4955. settingsCompanionOnlyWillSkip: 'Переключатели ({{companion}}) останутся выключенными - учётные данные, нужные каждому из них, нельзя восстановить из резервной копии',
  4956. spoolsUsageCount: 'включая записей расхода: {{count}}',
  4957. archivesMetadataOnly: 'Только метаданные - файлы 3MF и миниатюры не входят в резервную копию Git',
  4958. kprofilesPrinterCount: 'по {{count}} принтерам',
  4959. },
  4960. notes: {
  4961. noData: 'В этой резервной копии нет данных такого типа',
  4962. archivesPrinterMissing: 'Некоторые архивы ссылались на несуществующие принтеры - связь очищена',
  4963. archivesProjectMissing: 'Некоторые архивы ссылались на несуществующие проекты - связь очищена',
  4964. archivesOwnerCleared: 'Некоторые архивы ссылались на несуществующих пользователей - владелец очищен, поэтому они видны только пользователям с правом archives:read_all, пока администратор не назначит владельца заново',
  4965. archivesOwnerUnmatched: 'Некоторые архивы указывают владельца, которого нет в этом экземпляре - владелец очищен, а не угадан по идентификатору пользователя из резервной копии, поэтому они видны только пользователям с правом archives:read_all, пока администратор не назначит владельца заново',
  4966. archivesOwnerUnknown: 'Некоторые архивы восстановлены без владельца - в этой резервной копии он не записан, поэтому они видны только пользователям с правом archives:read_all, пока администратор не назначит владельца',
  4967. archivesUndeleted: 'Архивы, удалённые после резервного копирования, снова видны - перезапись была включена',
  4968. archivesMetadataOnly: 'Восстановленные архивы содержат только метаданные - файлы 3MF и миниатюры не входят в резервную копию Git',
  4969. spoolUsageUnresolved: 'Записей расхода пропущено: {{count}} - их катушки нет в списке катушек этой резервной копии, поэтому привязать их не к чему.',
  4970. spoolUsageUnlinked: 'Записей расхода восстановлено без связи с историей печати: {{count}} - выберите «Архивы печати» вместе с «Инвентарём катушек», чтобы сохранить связь.',
  4971. spoolTagKept: 'Меток катушек оставлено без изменений: {{count}} - резервная копия стёрла бы метку, отсканированную позже, или перенесла бы её на другую катушку.',
  4972. settingsCredentialsSkipped: 'Ключей, похожих на учётные данные, пропущено: {{count}} - введите секреты вручную',
  4973. settingsAuthSkipped: 'Настроек аутентификации пропущено: {{count}} - меняйте их в разделе «Настройки > Аутентификация», чтобы продолжали работать проверки блокировки',
  4974. settingsCompanionSkipped: '{{keys}} оставлены выключенными - нужные им учётные данные нельзя восстановить из резервной копии, и в этом экземпляре они не сохранены, поэтому включение оставило бы интеграцию без аутентификации',
  4975. settingsMqttRelayFailed: 'Настройки MQTT восстановлены, но переподключить реле не удалось - перезапустите Bambuddy',
  4976. kprofilesAlwaysOverwrite: 'K-профили всегда перезаписывают соответствующий слот на принтере',
  4977. kprofilesAckUnreliable: 'Принтер, который не отвечает, всё равно считается восстановленным - проверьте профили на принтере',
  4978. kprofilesPrinterMissing: 'Нет принтера с серийным номером {{serial}} - пропущено',
  4979. kprofilesPrinterOffline: '{{printer}} ({{serial}}) не подключён - пропущено',
  4980. kprofilesUnknownNozzle: 'Неожиданный диаметр сопла {{nozzle}} для {{serial}} - отправлено как есть',
  4981. kprofilesUnmatched: 'Профилей для {{nozzle}} без соответствия на {{printer}}: {{count}} - добавлены как новые профили',
  4982. kprofilesSendFailed: 'Не удалось отправить профили {{nozzle}} на {{printer}} ({{serial}})',
  4983. kprofilesRefused: '{{printer}} ({{serial}}) отклонил профили {{nozzle}}: {{reason}}',
  4984. kprofilesStepFailed: 'Не удалось завершить этап K-профилей - {{reason}}. Всё, что было восстановлено до него, сохранено.',
  4985. },
  4986. },
  4987. history: "История",
  4988. clear: "Очистить",
  4989. date: "Дата",
  4990. status: "Статус",
  4991. trigger: "Тип",
  4992. triggers: {
  4993. manual: "Резервная копия (вручную)",
  4994. scheduled: "Резервная копия (по расписанию)",
  4995. restore: "Восстановление",
  4996. },
  4997. commit: "Коммит",
  4998. localBackup: "Локальная резервная копия",
  4999. localBackupDescription: "Создать полную резервную копию данных Bambuddy, включая базу данных, архивы, загрузки и все файлы.",
  5000. downloadBackupLabel: "Скачать резервную копию",
  5001. completeBackupZip: "Полная копия: база данных и все файлы (ZIP)",
  5002. download: "Скачать",
  5003. preparingBackup: "Подготовка резервной копии...",
  5004. creatingArchive: "Создание архива резервной копии... Для больших архивов это может занять некоторое время.",
  5005. downloadingFile: "Скачивание файла резервной копии...",
  5006. backupDownloaded: "Резервная копия успешно скачана",
  5007. failedToCreateBackup: "Не удалось создать резервную копию: {{message}}",
  5008. restore: "Восстановить",
  5009. restoreReplacesAll: "Восстановление заменит все данные.",
  5010. restoreReplacesAllDetail: "Текущая база данных и файлы будут полностью заменены. После восстановления потребуется перезапуск.",
  5011. restoreConfirmTitle: "Восстановление из резервной копии",
  5012. restoreConfirmMessage: "Восстановить данные из файла «{{filename}}»? Текущая база данных и все файлы будут полностью заменены. После восстановления приложение потребуется перезапустить.",
  5013. restoreConfirmButton: "Восстановить",
  5014. uploadingFile: "Загрузка файла резервной копии...",
  5015. backupRestoredRestart: "Резервная копия восстановлена. Перезапустите Bambuddy.",
  5016. failedToRestore: "Не удалось восстановить резервную копию. Проверьте формат файла.",
  5017. reloadNow: "Перезагрузить сейчас",
  5018. creatingBackup: "Создание резервной копии",
  5019. restoringBackup: "Восстановление данных",
  5020. preparing: "Подготовка...",
  5021. processing: "Обработка...",
  5022. doNotClosePage: "Не закрывайте эту страницу и не переходите на другую. Для больших резервных копий операция может занять несколько минут.",
  5023. restoring: "Восстановление...",
  5024. restoreComplete: "Восстановление завершено",
  5025. restoreFailed2: "Ошибка восстановления",
  5026. importSettings: "Импортировать настройки из файла резервной копии",
  5027. pleaseWaitRestoring: "Подождите, пока данные восстанавливаются",
  5028. selectBackupFile: "Нажмите, чтобы выбрать файл резервной копии (.json или .zip)",
  5029. duplicateHandling: "Правила обработки дубликатов:",
  5030. matchPrinters: "Принтеры",
  5031. matchPrintersBy: "сопоставляются по серийному номеру",
  5032. matchSmartPlugs: "Умные розетки",
  5033. matchSmartPlugsBy: "сопоставляются по IP-адресу",
  5034. matchNotificationProviders: "Провайдеры уведомлений",
  5035. matchNotificationProvidersBy: "сопоставляются по имени",
  5036. matchFilaments: "Филаменты",
  5037. matchFilamentsBy: "сопоставляются по имени, типу и бренду",
  5038. matchArchives: "Архивы",
  5039. matchArchivesBy: "сопоставляются по хешу содержимого и всегда пропускаются",
  5040. matchPendingUploads: "Ожидающие загрузки",
  5041. matchPendingUploadsBy: "сопоставляются по имени файла",
  5042. matchSettingsTemplates: "Настройки и шаблоны",
  5043. matchSettingsTemplatesBy: "всегда перезаписываются",
  5044. replaceExisting: "Заменять существующие данные",
  5045. keepExisting: "Сохранять существующие данные",
  5046. overwriteDescription: "Перезаписывать существующие элементы данными из резервной копии",
  5047. keepDescription: "Восстанавливать только отсутствующие элементы",
  5048. overwriteCaution: "Внимание:",
  5049. overwriteWarning: "Перезапись заменит текущие настройки данными из резервной копии. В целях безопасности коды доступа к принтерам никогда не перезаписываются.",
  5050. cancel: "Отмена",
  5051. processingBackup: "Обработка файла резервной копии...",
  5052. itemsRestored: "Восстановлено элементов",
  5053. itemsSkipped: "Пропущено элементов",
  5054. restored: "Восстановлено",
  5055. skippedAlreadyExist: "Пропущено — уже существует",
  5056. filesCategory: "Файлы (3MF, миниатюры и т. п.)",
  5057. andMore: "...и ещё {{count}}",
  5058. newApiKeysGenerated: "Созданы новые API-ключи",
  5059. keysShownOnce: "Эти ключи показываются только один раз. Скопируйте их сейчас!",
  5060. copy: "Копировать",
  5061. noDataFound: "В резервной копии не найдено данных для восстановления.",
  5062. close: "Закрыть",
  5063. scheduledBackup: "Резервные копии по расписанию",
  5064. scheduledBackupDescription: "Автоматически создавать снимки резервных копий по расписанию. Каталог назначения можно смонтировать с NAS или внешнего накопителя.",
  5065. frequency: "Периодичность",
  5066. backupTime: "Время",
  5067. retention: "Хранение",
  5068. retentionDescription: "Количество сохраняемых резервных копий",
  5069. outputPath: "Каталог назначения",
  5070. outputPathPlaceholder: "По умолчанию: {{path}}",
  5071. outputPathDescription: "Оставьте пустым, чтобы использовать стандартный каталог",
  5072. runNow: "Запустить сейчас",
  5073. backupFiles: "Файлы резервных копий",
  5074. noScheduledBackups: "Резервных копий пока нет",
  5075. deleteBackup: "Удалить",
  5076. deleteBackupConfirm: "Удалить этот файл резервной копии?",
  5077. backupRunning: "Выполняется резервное копирование...",
  5078. scheduledBackupComplete: "Резервная копия успешно создана",
  5079. scheduledBackupFailed: "Ошибка резервного копирования",
  5080. nextBackup: "Следующая копия",
  5081. backupSize: "Размер",
  5082. localTimeHint: "Местное время ({{tz}})",
  5083. defaultPathLabel: "По умолчанию:",
  5084. pathCheck: {
  5085. title: "Bambuddy не может записывать в этот каталог",
  5086. howToFix: "Как исправить:",
  5087. sandboxed: "Служба Bambuddy не может записывать в {{path}}. Её модуль systemd работает с ProtectSystem=strict, поэтому все каталоги за пределами каталогов установки, данных и журналов доступны службе только для чтения, даже если из вашей командной оболочки запись разрешена.",
  5088. read_only: "{{path}} находится в файловой системе, доступной только для чтения.",
  5089. permission_denied: "Bambuddy не разрешена запись в {{path}}. Проверьте владельца каталога и права доступа.",
  5090. no_space: "В файловой системе, содержащей {{path}}, закончилось свободное место.",
  5091. not_a_directory: "{{path}} существует, но не является каталогом.",
  5092. missing: "{{path}} не существует, и создать этот каталог не удалось.",
  5093. error: "Bambuddy не может записывать в {{path}}.",
  5094. ephemeralTitle: "Эти резервные копии не сохранятся после перезапуска контейнера",
  5095. container_ephemeral: "{{path}} находится внутри контейнера Bambuddy, а не на хосте. Записанные туда резервные копии будут потеряны при пересоздании контейнера. Подключите каталог с хоста:",
  5096. },
  5097. categories: {
  5098. settings: "Настройки",
  5099. notification_providers: "Провайдеры уведомлений",
  5100. notification_templates: "Шаблоны уведомлений",
  5101. smart_plugs: "Умные розетки",
  5102. printers: "Принтеры",
  5103. filaments: "Филаменты",
  5104. maintenance_types: "Виды обслуживания",
  5105. archives: "Архивы",
  5106. projects: "Проекты",
  5107. pending_uploads: "Ожидающие загрузки",
  5108. external_links: "Внешние ссылки",
  5109. api_keys: "API-ключи",
  5110. },
  5111. },
  5112. tags: {
  5113. title: "Метки",
  5114. addTag: "Добавить метку",
  5115. editTag: "Изменить метку",
  5116. deleteTag: "Удалить метку",
  5117. tagName: "Название метки",
  5118. tagColor: "Цвет метки",
  5119. noTags: "Меток нет",
  5120. deleteConfirm: "Удалить эту метку?",
  5121. manageTags: "Управление метками",
  5122. },
  5123. uploadModal: {
  5124. title: "Загрузка файлов 3MF",
  5125. dragDrop: "Перетащите файлы .3mf сюда",
  5126. or: "или",
  5127. browseFiles: "Выбрать файлы",
  5128. extractionInfo: "Модель принтера будет автоматически определена по метаданным файла 3MF.",
  5129. uploaded: "загружено",
  5130. failed: "ошибок",
  5131. uploading: "Загрузка...",
  5132. upload: "Загрузить",
  5133. uploadFailed: "Не удалось загрузить",
  5134. },
  5135. editArchive: {
  5136. title: "Редактирование архива",
  5137. name: "Название",
  5138. namePlaceholder: "Название печати",
  5139. printer: "Принтер",
  5140. noPrinter: "Без принтера",
  5141. project: "Проект",
  5142. noProject: "Без проекта",
  5143. itemsPrinted: "Напечатано изделий",
  5144. itemsPrintedHelp: "Количество изделий, полученных в этом задании печати",
  5145. filamentUsed: "Израсходованный филамент (г)",
  5146. filamentUsedPlaceholder: "напр. 46.16",
  5147. filamentUsedHelp: "Укажите вручную, если печать заархивирована без 3MF — тогда она попадёт в итоги по филаменту. При повторном сканировании архива с 3MF значение снова считывается из файла.",
  5148. notes: "Заметки",
  5149. notesPlaceholder: "Добавьте заметки об этой печати...",
  5150. externalLink: "Внешняя ссылка",
  5151. externalLinkPlaceholder: "https://printables.com/model/...",
  5152. externalLinkHelp: "Ссылка на Printables, Thingiverse или другой источник",
  5153. tags: "Метки",
  5154. tagsPlaceholder: "Добавить метки...",
  5155. addMoreTags: "Добавить ещё метки...",
  5156. matchingTags: "Совпадения для «{{query}}»",
  5157. existingTags: "Существующие метки",
  5158. clickToAdd: "(нажмите, чтобы добавить)",
  5159. status: "Статус",
  5160. failureReason: "Причина сбоя",
  5161. selectReason: "Выберите причину...",
  5162. photos: "Фотографии результата печати",
  5163. photosHelp: "Нажмите +, чтобы добавить фотографии результата",
  5164. printResult: "Результат печати",
  5165. saving: "Сохранение...",
  5166. failureReasons: {
  5167. adhesionFailure: "Плохая адгезия к столу",
  5168. spaghettiDetached: "Спагетти / отрыв детали",
  5169. layerShift: "Сдвиг слоёв",
  5170. cloggedNozzle: "Засор сопла",
  5171. filamentRunout: "Закончился филамент",
  5172. warping: "Коробление",
  5173. stringing: "Стрингинг",
  5174. underExtrusion: "Недоэкструзия",
  5175. powerFailure: "Сбой питания",
  5176. userCancelled: "Отменено пользователем",
  5177. noStatusUpdate: "Обновление статуса не получено",
  5178. other: "Другое",
  5179. },
  5180. statuses: {
  5181. completed: "Завершено",
  5182. failed: "Ошибка",
  5183. aborted: "Отменено",
  5184. printing: "Печать",
  5185. },
  5186. },
  5187. kProfiles: {
  5188. title: "K-профили",
  5189. noPrintersConfigured: "Принтеры не настроены",
  5190. addPrinterInSettings: "Добавьте принтер в настройках, чтобы управлять K-профилями",
  5191. noActivePrinters: "Нет активных принтеров",
  5192. enablePrinterConnection: "Включите подключение к принтеру, чтобы просматривать его K-профили",
  5193. loadingProfiles: "Загрузка K-профилей...",
  5194. printerOffline: "Принтер не в сети",
  5195. printerOfflineDesc: "Выбранный принтер не подключён. Включите его, чтобы просмотреть K-профили.",
  5196. noMatchingProfiles: "Подходящие профили не найдены",
  5197. noMatchingProfilesDesc: "Ни один профиль не соответствует условиям поиска",
  5198. noKProfiles: "K-профили отсутствуют",
  5199. noKProfilesDesc: "Для сопла {{diameter}} мм не найдены профили Pressure Advance",
  5200. createFirstProfile: "Создать первый профиль",
  5201. printer: "Принтер",
  5202. nozzle: "Сопло",
  5203. refresh: "Обновить",
  5204. addProfile: "Добавить профиль",
  5205. export: "Экспорт",
  5206. import: "Импорт",
  5207. select: "Выбрать",
  5208. selectAll: "Выбрать все",
  5209. delete: "Удалить",
  5210. searchPlaceholder: "Поиск по названию или филаменту...",
  5211. allExtruders: "Все экструдеры",
  5212. leftOnly: "Только левый",
  5213. rightOnly: "Только правый",
  5214. allFlow: "Любой тип потока",
  5215. hfOnly: "Только HF",
  5216. sOnly: "Только S",
  5217. sortName: "Сортировка: название",
  5218. sortKValue: "Сортировка: K-значение",
  5219. sortFilament: "Сортировка: филамент",
  5220. leftExtruder: "Левый экструдер",
  5221. rightExtruder: "Правый экструдер",
  5222. modal: {
  5223. addTitle: "Добавить K-профиль",
  5224. editTitle: "Изменить K-профиль",
  5225. profileName: "Название профиля",
  5226. profileNamePlaceholder: "Мой профиль PLA",
  5227. kValue: "K-значение",
  5228. kValuePlaceholder: "0.020",
  5229. kValueHelp: "Типичный диапазон: 0,01–0,06 для PLA, 0,02–0,10 для PETG",
  5230. filament: "Филамент",
  5231. selectFilament: "Выберите филамент...",
  5232. source: {
  5233. local: "Импортированные",
  5234. orcaCloud: "Orca Cloud",
  5235. bambuCloud: "Bambu Cloud",
  5236. builtin: "Встроенный",
  5237. },
  5238. noFilamentsHelp: "Нет доступных филаментов. Войдите в Bambu Cloud или импортируйте пресеты в разделе Профили → Локальные профили.",
  5239. searchFilaments: "Поиск филаментов...",
  5240. noFilamentMatches: "Нет филаментов, соответствующих запросу",
  5241. flowType: "Тип потока",
  5242. highFlow: "Высокопоточный",
  5243. standard: "Стандартный",
  5244. nozzleSize: "Диаметр сопла",
  5245. extruder: "Экструдер",
  5246. extruders: "Экструдеры",
  5247. left: "Левый",
  5248. right: "Правый",
  5249. notes: "Заметки (хранятся локально)",
  5250. notesPlaceholder: "Добавьте заметки об этом профиле...",
  5251. notesHelp: "Заметки сохраняются в Bambuddy, а не на принтере",
  5252. syncing: "Синхронизация с принтером...",
  5253. savingExtruder: "Сохранение в экструдер {{current}}/{{total}}...",
  5254. pleaseWait: "Подождите",
  5255. },
  5256. deleteConfirm: {
  5257. title: "Удалить профиль",
  5258. cannotUndo: "Это действие нельзя отменить",
  5259. message: "Удалить профиль «{{name}}» с принтера?",
  5260. },
  5261. bulkDelete: {
  5262. title: "Удалить профили",
  5263. cannotUndo: "Это действие нельзя отменить",
  5264. message: "Удалить с принтера выбранные профили ({{count}})?",
  5265. },
  5266. toast: {
  5267. profileSaved: "K-профиль сохранён",
  5268. profilesSaved: "K-профиль сохранён для {{count}} экструдеров",
  5269. selectAtLeastOneExtruder: "Выберите хотя бы один экструдер",
  5270. selectFilament: "Сначала выберите филамент",
  5271. filamentNotResolvable: "Нет идентификатора филамента Bambu для {{name}} — принтер не сможет сохранить профиль",
  5272. profileDeleted: "K-профиль удалён",
  5273. profilesDeleted: "Удалено профилей: {{count}}",
  5274. exportedProfiles: "Экспортировано профилей: {{count}}",
  5275. importedProfiles: "Импортировано {{count}} из {{total}} профилей",
  5276. noProfilesToExport: "Нет профилей для экспорта",
  5277. invalidFileFormat: "Недопустимый формат файла",
  5278. failedToParseImport: "Не удалось разобрать файл импорта",
  5279. failedToSaveBatch: "Не удалось сохранить K-профили",
  5280. noteSaved: "Заметка сохранена",
  5281. failedToSaveNote: "Не удалось сохранить заметку",
  5282. },
  5283. permission: {
  5284. noRead: "У вас нет прав на обновление профилей",
  5285. noCreate: "У вас нет прав на добавление профилей",
  5286. noUpdate: "У вас нет прав на изменение K-профилей",
  5287. noDelete: "У вас нет прав на удаление K-профилей",
  5288. noExport: "У вас нет прав на экспорт профилей",
  5289. noImport: "У вас нет прав на импорт профилей",
  5290. },
  5291. },
  5292. virtualPrinter: {
  5293. title: "Виртуальный принтер",
  5294. running: "Запущен",
  5295. stopped: "Остановлен",
  5296. description: {
  5297. default: "Включает виртуальный принтер, который отображается в Bambu Studio и OrcaSlicer. Отправленные на него файлы сразу сохраняются в архив без печати.",
  5298. proxy: "Включает прокси, перенаправляющий трафик слайсера на реальный принтер и позволяющий печатать удалённо из любой сети.",
  5299. },
  5300. enable: {
  5301. title: "Включить виртуальный принтер",
  5302. visibleInSlicer: "Отображается как «Bambuddy» при обнаружении принтеров в слайсере",
  5303. proxyingTo: "Проксирование на {{name}}",
  5304. notActive: "Не активен",
  5305. },
  5306. model: {
  5307. title: "Модель принтера",
  5308. description: "Выберите модель принтера, которую нужно эмулировать.",
  5309. restartWarning: "При изменении модели виртуальный принтер будет перезапущен",
  5310. },
  5311. accessCode: {
  5312. title: "Код доступа",
  5313. isSet: "Код доступа задан",
  5314. notSet: "Код доступа не задан — он необходим для включения",
  5315. placeholder: "Введите 8-значный код",
  5316. placeholderChange: "Введите новый код",
  5317. hint: "Код должен состоять ровно из 8 символов. Слайсеры используют его для аутентификации.",
  5318. charCount: "({{count}}/8)",
  5319. inheritedFromTarget: "Унаследован от целевого принтера",
  5320. derivedFromTargetHint: "Используется код доступа целевого принтера. Мост перенаправляет аутентификацию слайсера на реальный принтер, поэтому коды должны совпадать. Чтобы изменить значение, измените код доступа самого принтера.",
  5321. reveal: "Показать код доступа",
  5322. hide: "Скрыть код доступа",
  5323. },
  5324. targetPrinter: {
  5325. title: "Целевой принтер",
  5326. configured: "Целевой принтер для прокси настроен",
  5327. notConfigured: "Целевой принтер не выбран — он необходим для режима прокси",
  5328. placeholder: "Выберите принтер...",
  5329. hint: "Выберите принтер, на который будет перенаправляться трафик слайсера. Принтер должен работать в режиме LAN.",
  5330. noPrinters: "Нет настроенных принтеров. Сначала добавьте принтер.",
  5331. },
  5332. remoteInterface: {
  5333. title: "Переопределение сетевого интерфейса",
  5334. configured: "Переопределение интерфейса активно",
  5335. optional: "Необязательно — используйте, если IP определён неверно, например при нескольких сетевых картах, Docker или VPN",
  5336. placeholder: "Определять автоматически...",
  5337. hint: "Переопределяет IP-адрес, публикуемый через SSDP и используемый в TLS-сертификате. Полезно, если у Bambuddy несколько сетевых интерфейсов.",
  5338. },
  5339. mode: {
  5340. title: "Режим",
  5341. archive: "Архив",
  5342. archiveDesc: "Сразу сохранять файлы в архив",
  5343. review: "Проверка",
  5344. reviewDesc: "Проверять перед добавлением в архив",
  5345. queue: "Очередь",
  5346. queueDesc: "Сохранять в архив и добавлять в очередь",
  5347. proxy: "Прокси",
  5348. proxyDesc: "Перенаправлять на реальный принтер",
  5349. },
  5350. autoDispatch: {
  5351. title: "Автоматический запуск",
  5352. description: "Автоматически запускать задания после добавления в очередь. Если выключено, задания ожидают ручного запуска.",
  5353. },
  5354. queueForceColorMatch: {
  5355. title: "Требовать совпадения цвета",
  5356. description: "Не назначать задание принтеру, если загружены филамент другого типа или другого цвета. По умолчанию выключено: без этой проверки очередь сопоставляет только модель принтера и может выбрать принтер с неподходящим цветом.",
  5357. },
  5358. saveAmsMapping: {
  5359. title: "Сохранять маппинг AMS",
  5360. description: "Сохранять выбор AMS-ячейки, который сделал слайсер (из MQTT-команды project_file), в архив — тогда повторная печать использует ту же физическую катушку вместо повторного подбора по типу/цвету файла. По умолчанию выключено.",
  5361. },
  5362. gcodeInjection: {
  5363. title: "Вставка G-code",
  5364. description: "Применять к заданиям этого виртуального принтера фрагменты G-code для соответствующей модели, заданные в настройках. По умолчанию выключено.",
  5365. },
  5366. tailscaleDisabled: {
  5367. title: "Интеграция Tailscale",
  5368. description: "Отметить этот виртуальный принтер как доступный через Tailscale. Будет показан Tailscale-адрес хоста, который нужно указать в слайсере. Импорт сертификата центра сертификации выполняется как обычно; этот переключатель на сертификаты не влияет.",
  5369. },
  5370. setupRequired: {
  5371. title: "Требуется настройка",
  5372. description: "Для работы виртуального принтера требуется дополнительная настройка системы: перенаправление портов, правила межсетевого экрана и параметры, зависящие от платформы.",
  5373. readGuide: "Перед включением прочитайте руководство по настройке",
  5374. },
  5375. archiveNameSource: {
  5376. title: "Источник названия архива",
  5377. description: "Выберите способ формирования названия новых архивов для файлов, полученных через виртуальный принтер. «Метаданные» использует поле Title, встроенное слайсером в 3MF. «Имя файла» использует имя, переданное Bambu Studio по FTP. Bambu Studio заменяет введённое в окне отправки название значением Title из 3MF, если оно присутствует, поэтому оба режима часто дают одинаковый результат.",
  5378. metadata: "Метаданные",
  5379. filename: "Имя файла",
  5380. },
  5381. caCert: {
  5382. title: "Сертификат для слайсера",
  5383. description: "Виртуальные принтеры используют TLS-сертификат, подписанный центром сертификации Bambuddy. Один раз импортируйте этот сертификат CA в хранилище доверенных сертификатов слайсера, чтобы он принимал соединение.",
  5384. copy: "Копировать",
  5385. copied: "Скопировано",
  5386. download: "Скачать",
  5387. fingerprint: "SHA-256",
  5388. },
  5389. howItWorks: {
  5390. title: "Как это работает",
  5391. step1: "В одной локальной сети виртуальные принтеры автоматически появляются в Bambu Studio и OrcaSlicer. Из других сетей добавьте их вручную по IP-адресу и коду доступа.",
  5392. step2: "В режимах «Архив», «Проверка» и «Очередь» используйте кнопку «Отправить» в слайсере для загрузки 3MF в Bambuddy. Слайсер покажет сообщение об успешной печати, но файл будет только сохранён, без запуска печати.",
  5393. step3: "В режиме прокси виртуальный принтер перенаправляет весь трафик на реальный принтер — печать запускается сразу, как при прямом подключении.",
  5394. },
  5395. status: {
  5396. title: "Сведения о состоянии",
  5397. printerName: "Имя принтера",
  5398. model: "Модель",
  5399. serialNumber: "Серийный номер",
  5400. mode: "Режим",
  5401. pendingFiles: "Ожидающие файлы",
  5402. targetPrinter: "Целевой принтер",
  5403. ftpPort: "Порт FTP",
  5404. mqttPort: "Порт MQTT",
  5405. ftpConnections: "Соединения FTP",
  5406. mqttConnections: "Соединения MQTT",
  5407. },
  5408. toast: {
  5409. updated: "Настройки виртуального принтера обновлены",
  5410. failedToUpdate: "Не удалось обновить настройки",
  5411. copyFailed: "Не удалось скопировать — выделите текст вручную",
  5412. accessCodeRequired: "Сначала задайте код доступа",
  5413. targetPrinterRequired: "Сначала выберите целевой принтер",
  5414. bindIpRequired: "Сначала задайте IP-адрес привязки",
  5415. accessCodeEmpty: "Код доступа не может быть пустым",
  5416. accessCodeLength: "Код доступа должен состоять ровно из 8 символов",
  5417. targetCodeChangedRebind: "Код доступа приведён в соответствие с новым целевым принтером. Удалите и снова добавьте устройство в слайсере, чтобы он получил новый код.",
  5418. created: "Виртуальный принтер создан",
  5419. failedToCreate: "Не удалось создать виртуальный принтер",
  5420. deleted: "Виртуальный принтер удалён",
  5421. failedToDelete: "Не удалось удалить виртуальный принтер",
  5422. },
  5423. list: {
  5424. title: "Виртуальные принтеры",
  5425. add: "Добавить",
  5426. addFirst: "Добавить виртуальный принтер",
  5427. empty: "Виртуальные принтеры не настроены. Добавьте первый принтер.",
  5428. },
  5429. bindIp: {
  5430. title: "Интерфейс привязки",
  5431. placeholder: "Выберите интерфейс...",
  5432. hint: "Сетевой интерфейс, к которому будет привязан этот виртуальный принтер. Для каждого принтера он должен быть уникальным.",
  5433. },
  5434. proxy: {
  5435. accessCodeHint: "В режиме прокси используйте в слайсере код доступа целевого принтера. Соединение прозрачно перенаправляется на реальный принтер.",
  5436. },
  5437. addDialog: {
  5438. title: "Добавление виртуального принтера",
  5439. name: "Название",
  5440. hint: "После создания можно настроить код доступа, целевой принтер и остальные параметры.",
  5441. create: "Создать",
  5442. },
  5443. deleteConfirm: {
  5444. title: "Удаление виртуального принтера",
  5445. message: "Удалить «{{name}}»? Все службы этого виртуального принтера будут остановлены.",
  5446. },
  5447. },
  5448. modelViewer: {
  5449. openInSlicer: "Открыть в слайсере",
  5450. openInSlicerWith: "Открыть в {{slicer}}",
  5451. moreSlicerOptions: "Другие варианты слайсера",
  5452. openInSlicerFailed: "Не удалось открыть в слайсере",
  5453. tabs: {
  5454. model: "3D-модель",
  5455. },
  5456. notAvailable: "недоступно",
  5457. plates: "Пластины",
  5458. allPlates: "Все пластины",
  5459. plateNumber: "Пластина {{number}}",
  5460. plateCount: "{{count}} пластина",
  5461. plateCount_other: "{{count}} пластин",
  5462. objectCount: "{{count}} объект",
  5463. objectCount_other: "{{count}} объектов",
  5464. filamentCount: "{{count}} филамент",
  5465. filamentCount_other: "{{count}} филаментов",
  5466. eta: "Осталось {{minutes}} мин",
  5467. noPreview: "Для этого файла нет предпросмотра",
  5468. pagination: {
  5469. pageOf: "Страница {{current}} из {{total}}",
  5470. prev: "Назад",
  5471. next: "Далее",
  5472. },
  5473. errors: {
  5474. failedToLoad: "Не удалось загрузить файл",
  5475. noMeshes: "В файле 3MF не найдены сеточные модели",
  5476. unsupportedFormat: "Неподдерживаемый формат файла",
  5477. },
  5478. },
  5479. maintenanceDescriptions: {
  5480. lubricateCarbonRods: "Смазать углепластиковые направляющие для плавного перемещения",
  5481. lubricateRails: "Смазать линейные направляющие для плавного перемещения",
  5482. cleanNozzle: "Очистить хотэнд и сопло для предотвращения засоров",
  5483. checkBelts: "Проверить натяжение ремней для сохранения точности печати",
  5484. cleanBuildPlate: "Очистить печатную пластину для улучшения адгезии",
  5485. checkExtruder: "Проверить шестерни экструдера на износ",
  5486. checkCooling: "Проверить исправность вентиляторов охлаждения",
  5487. generalInspection: "Общий осмотр принтера",
  5488. cleanCarbonRods: "Очистить углепластиковые направляющие для уменьшения трения",
  5489. lubricateSteelRods: "Смазать стальные направляющие для плавного перемещения",
  5490. cleanSteelRods: "Очистить стальные направляющие для уменьшения трения",
  5491. cleanLinearRails: "Протереть линейные направляющие от пыли и загрязнений",
  5492. checkPtfeTube: "Проверить PTFE-трубку на износ и повреждения",
  5493. replaceHepaFilter: "Заменить HEPA-фильтр",
  5494. replaceCarbonFilter: "Заменить угольный фильтр",
  5495. lubricateLeftNozzleRail: "Смазать направляющую левого сопла (серия H2)",
  5496. },
  5497. haSensors: {
  5498. label: "Датчики",
  5499. unavailable: "Недоступно",
  5500. blocksPrints: "{{entity}} — удерживает печать, пока активно оповещение",
  5501. states: {
  5502. open: "Открыто",
  5503. closed: "Закрыто",
  5504. unlocked: "Разблокировано",
  5505. locked: "Заблокировано",
  5506. detected: "Обнаружено",
  5507. clear: "Чисто",
  5508. wet: "Влажно",
  5509. dry: "Сухо",
  5510. problem: "Проблема",
  5511. ok: "Норма",
  5512. running: "Работает",
  5513. stopped: "Остановлено",
  5514. on: "Вкл",
  5515. off: "Выкл",
  5516. },
  5517. sectionTitle: "Датчики Home Assistant (принтеры)",
  5518. add: "Добавить датчик",
  5519. addTitle: "Добавить датчик Home Assistant",
  5520. editTitle: "Изменить датчик Home Assistant",
  5521. empty: "Датчиков пока нет. Свяжите дверной контакт или термометр из Home Assistant, чтобы показать его на карточке принтера.",
  5522. unknownPrinter: "Неизвестный принтер",
  5523. badgeBlocks: "Удерживает печать",
  5524. badgeNotifies: "Уведомляет",
  5525. badgeHidden: "Скрыт на карточке",
  5526. printer: "Принтер",
  5527. entity: "Сущность",
  5528. searchPlaceholder: "Поиск сущностей...",
  5529. noEntities: "Подходящих сущностей нет",
  5530. name: "Отображаемое имя",
  5531. alertWhen: "Оповещать когда",
  5532. alertNever: "Никогда — только показывать",
  5533. alertAbove: "Выше",
  5534. alertBelow: "Ниже",
  5535. alertHint: "Состояние оповещения подсвечивает датчик на карточке принтера и включает параметры ниже.",
  5536. showOnCard: "Показывать в карточке принтера",
  5537. notifyOnAlert: "Отправлять уведомление при срабатывании",
  5538. blockPrint: "Удерживать печать в очереди, пока активно оповещение",
  5539. blockPrintHint: "Задания остаются в очереди и запускаются сами, когда датчик приходит в норму. Игнорируется, пока Home Assistant недоступен.",
  5540. toast: {
  5541. created: "Датчик добавлен",
  5542. updated: "Датчик сохранён",
  5543. deleted: "Датчик удалён",
  5544. },
  5545. error: {
  5546. pickEntity: "Выберите сущность Home Assistant",
  5547. nameRequired: "Введите отображаемое имя",
  5548. printerRequired: "Выберите принтер",
  5549. alertRequired: "Сначала задайте условие оповещения",
  5550. },
  5551. },
  5552. locationHaSensors: {
  5553. sectionTitle: "Датчики Home Assistant (места хранения)",
  5554. sectionDescription:
  5555. "Привяжите датчики температуры, влажности или заряда батареи Home Assistant к местам хранения, чтобы показывать актуальные значения на карточке филамента и в таблице. Для каждого места хранения допускается только один датчик на категорию.",
  5556. add: "Добавить датчик",
  5557. addTitle: "Добавить датчик Home Assistant",
  5558. editTitle: "Изменить датчик Home Assistant",
  5559. empty: "Датчиков пока нет. Свяжите датчик температуры или влажности из Home Assistant, чтобы показать его на карточке филамента.",
  5560. unknownLocation: "Неизвестное место",
  5561. location: "Место хранения",
  5562. showOnCard: "Показывать на карточке филамента",
  5563. overwriteConfirm: {
  5564. title: "Заменить существующий датчик?",
  5565. messageTemperature: "У «{{location}}» уже привязан датчик температуры: {{name}}. Продолжение заменит его.",
  5566. messageHumidity: "У «{{location}}» уже привязан датчик влажности: {{name}}. Продолжение заменит его.",
  5567. messageBattery: "У «{{location}}» уже привязан датчик заряда батареи: {{name}}. Продолжение заменит его.",
  5568. },
  5569. autoAdd: {
  5570. confirmTitle: "Добавить также остальные датчики?",
  5571. confirmMessage: "Bambuddy также нашёл другие датчики для этого места. Выберите, какие добавить.",
  5572. added: "Также добавлено: {{names}}",
  5573. noneFound: "Подходящие датчики температуры, влажности или заряда батареи для этого места не найдены.",
  5574. onlyThisOne: "Только этот",
  5575. },
  5576. options: {
  5577. buttonLabel: "Настройки датчиков",
  5578. title: "Настройки датчиков места хранения",
  5579. description: "Эти значения используются, когда датчик температуры, влажности или заряда батареи привязывается автоматически вместе с первым датчиком места хранения.",
  5580. generalSettings: 'Общие настройки',
  5581. pollInterval: 'Интервал обновления (секунды)',
  5582. pollIntervalHint: 'Как часто Bambuddy опрашивает Home Assistant и обновляет значения датчиков на экране. Минимум 60 секунд.',
  5583. colorizeValues: 'Окрашивать значения датчиков в соответствии с их порогами тревоги',
  5584. aboveColor: 'Цвет при превышении порога',
  5585. belowColor: 'Цвет при значении ниже порога',
  5586. optimalColor: 'Цвет оптимального значения',
  5587. colors: {
  5588. red: 'Красный',
  5589. orange: 'Оранжевый',
  5590. yellow: 'Жёлтый',
  5591. green: 'Зелёный',
  5592. blue: 'Синий',
  5593. purple: 'Фиолетовый',
  5594. pink: 'Розовый',
  5595. },
  5596. saved: "Настройки сохранены",
  5597. saveFailed: "Не удалось сохранить настройки",
  5598. reset: "Сбросить",
  5599. resetConfirm: {
  5600. title: "Сбросить все существующие датчики мест хранения?",
  5601. message:
  5602. "Это перезапишет пороги тревоги, уведомления и видимость на карточке для всех существующих датчиков температуры, влажности и заряда батареи мест хранения значениями, настроенными выше, а также восстановит имя каждого датчика до его понятного имени в Home Assistant — датчики принтеров не затрагиваются. Это действие нельзя отменить. В зависимости от количества датчиков это может занять некоторое время.",
  5603. },
  5604. resetDone: "Применено к {{count}} датчикам мест хранения",
  5605. resetFailed: "Не удалось сбросить датчики мест хранения",
  5606. },
  5607. deleteAllConfirm: {
  5608. title: "Удалить все датчики?",
  5609. message: "Будут удалены все {{count}} датчиков, привязанных к «{{location}}». Это действие нельзя отменить.",
  5610. },
  5611. currentlyBound: "Сейчас привязан: {{entity}}",
  5612. error: {
  5613. locationRequired: "Выберите место хранения",
  5614. },
  5615. toast: {
  5616. created: "Датчик добавлен",
  5617. updated: "Датчик сохранён",
  5618. deleted: "Датчик удалён",
  5619. },
  5620. },
  5621. smartPlugs: {
  5622. offline: "Не в сети",
  5623. admin: "Управление",
  5624. openPlugAdminPage: "Открыть страницу управления розеткой",
  5625. deleteSmartPlug: "Удалить умную розетку",
  5626. turnOnSmartPlug: "Включить умную розетку",
  5627. turnOffSmartPlug: "Выключить умную розетку",
  5628. turnOn: "Включить",
  5629. turnOff: "Выключить",
  5630. addSmartPlug: {
  5631. scanningNetwork: "Сканирование сети...",
  5632. chooseEntity: "Выберите сущность...",
  5633. connectionFailed: "Ошибка подключения",
  5634. searchEntities: "Поиск сущностей...",
  5635. searchPowerSensors: "Поиск датчиков мощности...",
  5636. searchEnergySensors: "Поиск датчиков энергии...",
  5637. placeholders: {
  5638. plugName: "Розетка в гостиной",
  5639. mqttStateOnValue: "ON, true, 1",
  5640. mqttSameAsPower: "Та же тема, что для мощности, или другая",
  5641. },
  5642. },
  5643. linkedTo: "Связана с:",
  5644. monitorOnly: "Только мониторинг",
  5645. alerts: "Оповещения",
  5646. scheduleOn: "Включение в {{time}}",
  5647. scheduleOff: "Выключение в {{time}}",
  5648. on: "Включена",
  5649. off: "Выключена",
  5650. power: "Мощность",
  5651. kwhToday: "кВт·ч сегодня",
  5652. settings: "Настройки",
  5653. automationSettings: "Настройки автоматизации",
  5654. showInSwitchbar: "Показывать на панели переключателей",
  5655. quickAccessSidebar: "Быстрый доступ с боковой панели",
  5656. enabled: "Включено",
  5657. enableAutomation: "Включить автоматизацию для этой розетки",
  5658. autoOn: "Автовключение",
  5659. autoOnDescription: "Включать при начале печати",
  5660. autoOff: "Автовыключение",
  5661. autoOffDescription: "Выключать после завершения печати (однократно)",
  5662. autoOffPersistent: "Оставлять включённым",
  5663. autoOffPersistentDescription: "Не сбрасывать автовыключение после печати",
  5664. controlsPrinterPower: "Питает принтер",
  5665. controlsPrinterPowerDescription: "Отключите, если эта розетка питает только аксессуар (вентилятор фильтра, подсветку). Иначе её выключение помечает принтер как офлайн.",
  5666. autoOffAfterDrying: "Выключать после сушки",
  5667. autoOffAfterDryingDescription: "Выключать после завершения сушки в AMS",
  5668. delayAfterDryingMinutes: "Задержка после сушки (мин)",
  5669. turnOffDelayMode: "Условие отложенного выключения",
  5670. time: "Время",
  5671. temp: "Температура",
  5672. delayMinutes: "Задержка (мин)",
  5673. tempThreshold: "Порог температуры (°C)",
  5674. tempThresholdDescription: "Выключать, когда сопло остынет ниже этой температуры",
  5675. edit: "Изменить",
  5676. deleteConfirm: "Удалить «{{name}}»? Это действие нельзя отменить.",
  5677. turnOnConfirm: "Включить «{{name}}»?",
  5678. turnOffConfirm: "Выключить «{{name}}»? Питание подключённого устройства будет отключено.",
  5679. failedToTurn: "Не удалось {{action}} «{{name}}»",
  5680. unknown: "Неизвестно",
  5681. addTitle: "Добавление умной розетки",
  5682. editTitle: "Редактирование умной розетки",
  5683. stopScanning: "Остановить сканирование",
  5684. discoverTasmota: "Найти устройства Tasmota",
  5685. foundDevices: "Найдено устройств: {{count}}. Нажмите для выбора:",
  5686. noDevicesFound: "Устройства Tasmota в сети не найдены",
  5687. haNotConfigured: "Home Assistant не настроен. Настройте его в разделе",
  5688. haSettingsPath: "Настройки → Сеть → Home Assistant",
  5689. selectEntity: "Выберите сущность *",
  5690. ipAddress: "IP-адрес *",
  5691. nameLabel: "Название *",
  5692. username: "Имя пользователя",
  5693. password: "Пароль",
  5694. authHint: "Оставьте пустым, если устройство Tasmota не требует аутентификации",
  5695. linkToPrinter: "Связать с принтером",
  5696. noPrinter: "Без принтера — только ручное управление",
  5697. linkingDescription: "Связь позволяет автоматически включать и выключать питание при начале и завершении печати",
  5698. powerAlerts: "Оповещения о мощности",
  5699. alertAbove: "Оповещать выше (Вт)",
  5700. alertBelow: "Оповещать ниже (Вт)",
  5701. alertDescription: "Отправлять уведомление при пересечении заданных порогов мощности. Оставьте поле пустым, чтобы отключить соответствующий порог.",
  5702. dailySchedule: "Ежедневное расписание",
  5703. turnOnAt: "Включать в",
  5704. turnOffAt: "Выключать в",
  5705. scheduleDescription: "Ежедневно включать и выключать розетку в указанное время. Оставьте поле пустым, чтобы не выполнять соответствующее действие.",
  5706. showOnPrinterCard: "Показывать в карточке принтера",
  5707. displayOnPrinterCard: "Показывать кнопку в карточке принтера",
  5708. connectedResult: "Подключено!",
  5709. deviceLabel: "Устройство: {{name}} — ",
  5710. stateLabel: "Состояние: {{state}}",
  5711. test: "Проверить",
  5712. delete: "Удалить",
  5713. save: "Сохранить",
  5714. add: "Добавить",
  5715. cancel: "Отмена",
  5716. failedToStartScan: "Не удалось запустить сканирование",
  5717. nameRequired: "Укажите название",
  5718. entityRequired: "Для розеток Home Assistant необходимо выбрать сущность",
  5719. mqttTopicRequired: "Для мониторинга мощности, энергии или состояния необходимо настроить хотя бы одну тему MQTT",
  5720. loadingEntities: "Загрузка сущностей...",
  5721. loading: "Загрузка...",
  5722. failedToLoadEntities: "Не удалось загрузить сущности: {{error}}",
  5723. noEntitiesMatching: "Сущности по запросу «{{search}}» не найдены",
  5724. noEntitiesAvailable: "Нет доступных сущностей",
  5725. searchingEntities: "Поиск по всем сущностям, найдено: {{count}}",
  5726. showingEntities: "Показаны switch, light и input_boolean, доступно: {{count}}",
  5727. energyMonitoringOptional: "Мониторинг энергии (необязательно)",
  5728. energyMonitoringHint: "Найдите и выберите датчики мощности и энергии.",
  5729. powerSensorW: "Датчик мощности (Вт)",
  5730. energyTodayKwh: "Энергия за сегодня (кВт·ч)",
  5731. totalEnergyKwh: "Общая энергия (кВт·ч)",
  5732. noMatchingSensors: "Подходящие датчики не найдены",
  5733. none: "Нет",
  5734. mqttNotConfigured: "Брокер MQTT не настроен. Укажите его адрес в разделе",
  5735. mqttSettingsPath: "Настройки → Сеть → Публикация MQTT",
  5736. mqttNotConfiguredSuffix: "Включать публикацию не обязательно — достаточно заполнить параметры брокера.",
  5737. mqttMonitorOnlyDescription: "Розетки MQTT получают данные мощности и энергии через подписку MQTT. Управление включением и выключением недоступно — используйте брокер MQTT или систему домашней автоматизации.",
  5738. powerMonitoring: "Мониторинг мощности",
  5739. energyMonitoring: "Мониторинг энергии",
  5740. stateMonitoring: "Мониторинг состояния",
  5741. optional: "необязательно",
  5742. topic: "Тема",
  5743. jsonPath: "Путь JSON",
  5744. multiplier: "Множитель",
  5745. onValue: "Значение «включено»",
  5746. mqttPowerHint: "Путь JSON извлекает значение из полезной нагрузки JSON, например «power_l1». Оставьте пустым, если тема публикует число напрямую.\nДля преобразования мВт→Вт используйте 0.001, для кВт→Вт — 1000.",
  5747. mqttEnergyHint: "Путь JSON извлекает значение из полезной нагрузки JSON. Оставьте пустым для числового значения напрямую.\nДля преобразования Вт·ч→кВт·ч используйте 0.001, для МВт·ч→кВт·ч — 1000.",
  5748. mqttStateHint: "Путь JSON извлекает значение из полезной нагрузки JSON. Оставьте пустым для значения напрямую.\nЗначение «включено» — точная строка, означающая включённое состояние. Оставьте пустым для автоматического распознавания ON, true и 1.",
  5749. restControl: "Управление",
  5750. restOnUrl: "URL включения",
  5751. restOffUrl: "URL выключения",
  5752. restOnBody: "Тело запроса включения",
  5753. restOffBody: "Тело запроса выключения",
  5754. restMethod: "Метод HTTP",
  5755. restHeaders: "Пользовательские заголовки (JSON)",
  5756. restStatusUrl: "URL состояния",
  5757. restStatusPath: "Путь JSON состояния",
  5758. restStatusOnValue: "Значение «включено»",
  5759. restPowerUrl: "URL мощности",
  5760. restPowerPath: "Путь JSON мощности",
  5761. restPowerMultiplier: "Множитель мощности",
  5762. restEnergyUrl: "URL энергии",
  5763. restEnergyPath: "Путь JSON энергии",
  5764. restEnergyTotalPath: "Путь JSON полной энергии",
  5765. restEnergyTotalMultiplier: "Множитель полной энергии",
  5766. restEnergyTotalPathHint: "например, aenergy.total",
  5767. restEnergyTotalHint: "Многие розетки, включая все устройства Shelly, передают только накопительный счётчик энергии, который никогда не сбрасывается. Его следует указывать здесь, а не в поле выше: если считать его суточным расходом, значение не сбросится в полночь, а данные за вчера и общий расход останутся пустыми. Bambuddy вычисляет расход за сегодня и вчера по этому счётчику; для накопления данных потребуется один-два дня. Shelly передаёт ватт-часы, поэтому используйте множитель 0.001.",
  5768. restEnergyMultiplier: "Множитель энергии",
  5769. restUrlRequired: "Для REST-розетки необходимо указать хотя бы один URL: включения или выключения",
  5770. restHeadersHint: "например, {\"Authorization\": \"Bearer your-token\"}",
  5771. restBodyHint: "например, ON или {\"state\": \"on\"}",
  5772. restStatusHint: "URL для опроса текущего состояния",
  5773. restPathHint: "например, state или data.power.status",
  5774. restPowerUrlHint: "Отдельный URL данных мощности; если пусто, используется URL состояния",
  5775. restEnergyUrlHint: "Отдельный URL данных энергии; если пусто, используется URL состояния",
  5776. restEnergyHint: "Для каждого значения можно использовать отдельный URL либо URL состояния. Множители используются для преобразования единиц, например 0.001 для Вт·ч→кВт·ч.",
  5777. testConnection: "Проверить подключение",
  5778. connectionSuccess: "Подключение успешно",
  5779. noSwitchesInSwitchbar: "На панели переключателей нет устройств",
  5780. enableSwitchbarHint: "Включите «Показывать на панели переключателей» в разделе «Настройки → Умные розетки»",
  5781. },
  5782. notifications: {
  5783. providerTypes: {
  5784. callmebot: "CallMeBot/WhatsApp",
  5785. ntfy: "ntfy",
  5786. pushover: "Pushover",
  5787. telegram: "Telegram",
  5788. email: "Электронная почта",
  5789. discord: "Discord",
  5790. webhook: "Вебхук",
  5791. homeassistant: "Home Assistant",
  5792. bark: "Bark",
  5793. },
  5794. providerDescriptions: {
  5795. email: "Уведомления по электронной почте через SMTP",
  5796. telegram: "Уведомления через Telegram-бота",
  5797. discord: "Отправка в канал Discord через вебхук",
  5798. ntfy: "Бесплатные push-уведомления с возможностью самостоятельного размещения сервера",
  5799. pushover: "Простые и надёжные push-уведомления",
  5800. callmebot: "Бесплатные уведомления WhatsApp через CallMeBot",
  5801. webhook: "Универсальный HTTP POST-запрос на любой URL",
  5802. homeassistant: "Постоянные уведомления на панели Home Assistant",
  5803. bark: "iOS push-уведомления через Bark (можно разместить у себя)",
  5804. },
  5805. lastSuccess: "Последняя отправка: {{date}}",
  5806. error: "Ошибка",
  5807. printer: "Принтер:",
  5808. allPrinters: "Все принтеры",
  5809. sendTestNotification: "Отправить тестовое уведомление",
  5810. eventSettings: "Настройки событий",
  5811. enabled: "Включено",
  5812. sendFromProvider: "Отправлять уведомления через этого провайдера",
  5813. printEvents: "События печати",
  5814. printerStatus: "Состояние принтера",
  5815. amsAlarms: "Предупреждения AMS",
  5816. amsHtAlarms: "Предупреждения AMS-HT",
  5817. printQueue: "Очередь печати",
  5818. start: "Запуск",
  5819. plateCheck: "Проверка пластины",
  5820. complete: "Завершено",
  5821. failed: "Ошибка",
  5822. stopped: "Остановлено",
  5823. progress: "Ход печати",
  5824. offline: "Не в сети",
  5825. lowFilament: "Мало филамента",
  5826. maintenance: "Обслуживание",
  5827. amsHumidity: "Влажность AMS",
  5828. amsTemp: "Температура AMS",
  5829. amsDryingSuspended: "Сушка приостановлена",
  5830. amsHtHumidity: "Влажность AMS-HT",
  5831. amsHtTemp: "Температура AMS-HT",
  5832. bedCooled: "Стол остыл",
  5833. firstLayer: "Первый слой",
  5834. quiet: "Тихий режим",
  5835. digest: "Сводка в {{time}}",
  5836. printStarted: "Печать началась",
  5837. plateNotEmpty: "Пластина не пуста",
  5838. plateNotEmptyDescription: "Перед печатью на пластине обнаружены объекты",
  5839. plateClearRequired: "Требуется подтверждение стола",
  5840. plateClearRequiredDescription: "Печать завершена, очередь ждет подтверждения",
  5841. plateClear: "Стол свободен",
  5842. printCompleted: "Печать завершена",
  5843. bedCooledLabel: "Стол остыл",
  5844. bedCooledDescription: "После печати температура стола опустилась ниже заданного порога",
  5845. firstLayerCompleteLabel: "Первый слой завершён",
  5846. firstLayerCompleteDescription: "Уведомить со снимком после завершения первого слоя",
  5847. missingSpoolAssignmentLabel: "Катушка не назначена",
  5848. billingChargeFailedLabel: 'Ошибка списания',
  5849. billingChargeFailedDescription: 'Уведомлять, если не удалось учесть стоимость печати',
  5850. missingSpoolAssignmentDescription: "Уведомить при запуске печати, если для необходимых слотов не назначены катушки",
  5851. printFailed: "Ошибка печати",
  5852. printStopped: "Печать остановлена",
  5853. progressMilestones: "Этапы выполнения",
  5854. progressMilestonesDescription: "Уведомлять при 25%, 50% и 75%",
  5855. printerOffline: "Принтер не в сети",
  5856. printerError: "Ошибка принтера",
  5857. aiFailureDetection: "Обнаружение сбоев с помощью ИИ",
  5858. aiFailureDetectionDescription: "Уведомить, если Obico AI обнаружит возможный сбой печати",
  5859. lowFilamentLabel: "Заканчивается филамент",
  5860. maintenanceDue: "Требуется обслуживание",
  5861. maintenanceDueDescription: "Уведомить, когда принтеру потребуется обслуживание",
  5862. amsHumidityHigh: "Высокая влажность в AMS",
  5863. amsHumidityHighDescription: "Влажность в обычной AMS превысила заданный порог",
  5864. amsTemperatureHigh: "Высокая температура в AMS",
  5865. amsTemperatureHighDescription: "Температура в обычной AMS превысила заданный порог",
  5866. amsDryingSuspendedTitle: "Автоматическая сушка приостановлена",
  5867. amsDryingSuspendedDescription: "Автоматическая сушка блока AMS прекращена: влажность так и не опустилась ниже порога",
  5868. amsHtHumidityHigh: "Высокая влажность в AMS-HT",
  5869. amsHtHumidityHighDescription: "Влажность в AMS-HT превысила заданный порог",
  5870. amsHtTemperatureHigh: "Высокая температура в AMS-HT",
  5871. amsHtTemperatureHighDescription: "Температура в AMS-HT превысила заданный порог",
  5872. inventoryAlerts: "Уведомления о запасах",
  5873. stockReorderAlert: "Пора заказывать",
  5874. stockReorderAlertDescription: "Запас по SKU достиг точки повторного заказа",
  5875. stockBreakAlert: "Риск исчерпания запаса",
  5876. stockBreakAlertDescription: "Запас закончится раньше, чем поступит пополнение",
  5877. jobAdded: "Задание добавлено",
  5878. jobAddedDescription: "Задание добавлено в очередь",
  5879. jobAssigned: "Задание назначено",
  5880. jobAssignedDescription: "Задание по модели назначено принтеру",
  5881. jobStarted: "Задание запущено",
  5882. jobStartedDescription: "Задание из очереди отправлено на печать",
  5883. jobWaiting: "Задание ожидает",
  5884. jobWaitingDescription: "Задание ожидает филамент или свободный принтер",
  5885. jobSkipped: "Задание пропущено",
  5886. jobSkippedDescription: "Задание пропущено из-за ошибки предыдущего",
  5887. jobFailed: "Не удалось запустить задание",
  5888. jobFailedDescription: "Задание не удалось отправить на печать",
  5889. queueComplete: "Очередь завершена",
  5890. queueCompleteDescription: "Все задания в очереди завершены",
  5891. quietHours: "Тихие часы",
  5892. noNotificationsDuring: "Не отправлять уведомления в это время",
  5893. editProviderToChangeQuietHours: "Измените провайдера, чтобы настроить тихие часы",
  5894. dailyDigest: "Ежедневная сводка",
  5895. batchNotifications: "Объединять уведомления в одну ежедневную сводку",
  5896. sendAt: "Отправлять в {{time}}",
  5897. editProviderToChangeDigestTime: "Измените провайдера, чтобы настроить время сводки",
  5898. edit: "Изменить",
  5899. deleteProvider: "Удалить провайдера уведомлений",
  5900. deleteConfirm: "Удалить «{{name}}»? Это действие нельзя отменить.",
  5901. delete: "Удалить",
  5902. addTitle: "Добавить провайдера уведомлений",
  5903. editTitle: "Изменить провайдера уведомлений",
  5904. nameLabel: "Название *",
  5905. namePlaceholder: "Мои уведомления",
  5906. providerTypeLabel: "Тип провайдера *",
  5907. configuration: "Настройка",
  5908. testConfiguration: "Проверить настройку",
  5909. printerFilter: "Фильтр принтеров",
  5910. onlyFromPrinter: "Отправлять уведомления только о событиях этого принтера",
  5911. quietHoursDnd: "Тихие часы (не беспокоить)",
  5912. quietStart: "Начало",
  5913. quietEnd: "Окончание",
  5914. dailyDigestLabel: "Ежедневная сводка",
  5915. sendDigestAt: "Отправлять сводку в",
  5916. digestCollected: "События будут собраны и отправлены одной сводкой в указанное время",
  5917. notificationEvents: "События для уведомлений",
  5918. progressPercent: "(25%, 50%, 75%)",
  5919. bedCooledAfterPrint: "(после завершения печати)",
  5920. haSensorAlert: "Оповещение датчика принтера",
  5921. haSensorAlertDescription: "(связанный датчик Home Assistant требует внимания)",
  5922. locationHaSensorAlert: "Оповещение датчика места хранения",
  5923. locationHaSensorAlertDescription: "(датчик Home Assistant, связанный с местом хранения, требует внимания)",
  5924. eventPriority: {
  5925. sectionTitle: "Приоритет ntfy",
  5926. helpNtfy: "Выберите приоритет для каждого включённого события. ntfy использует его для усиления оповещений: звука, видимости и поведения push-уведомлений. Для неуказанных событий используется приоритет по умолчанию сервера ntfy.",
  5927. min: "Минимальный",
  5928. low: "Низкий",
  5929. default: "Обычный",
  5930. high: "Высокий",
  5931. urgent: "Срочный",
  5932. },
  5933. cancel: "Отмена",
  5934. save: "Сохранить",
  5935. add: "Добавить",
  5936. nameRequired: "Укажите название",
  5937. fieldRequired: "Поле «{{field}}» обязательно",
  5938. haDataInvalid: 'Поле Data должно быть корректным JSON-объектом, напр. {"priority": "high", "ttl": 0}',
  5939. phoneNumber: "Номер телефона",
  5940. apiKey: "Ключ API",
  5941. serverUrl: "URL сервера",
  5942. topic: "Тема",
  5943. authToken: "Токен авторизации",
  5944. userKey: "Ключ пользователя",
  5945. appToken: "Токен приложения",
  5946. priority: "Приоритет",
  5947. pushoverRetry: "Повтор экстренного уведомления (с)",
  5948. pushoverExpire: "Срок действия экстренного уведомления (с)",
  5949. botToken: "Токен бота",
  5950. chatId: "ID чата",
  5951. telegramThreadId: "ID темы форума",
  5952. telegramThreadIdHelp: "Необязательно. Отправляет в конкретную тему форум-группы — последнее число в ссылке на тему (t.me/c/.../25). Оставьте пустым для темы General.",
  5953. telegramThreadIdInvalid: "ID темы форума должен быть числом.",
  5954. smtpServer: "SMTP-сервер",
  5955. smtpPort: "Порт SMTP",
  5956. security: "Защита соединения",
  5957. authentication: "Аутентификация",
  5958. username: "Имя пользователя",
  5959. password: "Пароль",
  5960. fromEmail: "Адрес отправителя",
  5961. toEmail: "Адрес получателя",
  5962. webhookUrl: "URL вебхука",
  5963. payloadFormat: "Формат данных",
  5964. authorization: "Авторизация",
  5965. titleFieldName: "Имя поля заголовка",
  5966. messageFieldName: "Имя поля сообщения",
  5967. editTemplate: "Изменить шаблон: {{name}}",
  5968. titleLabel: "Заголовок",
  5969. bodyLabel: "Текст",
  5970. titlePlaceholder: "Заголовок уведомления...",
  5971. bodyPlaceholder: "Текст уведомления...",
  5972. availableVariables: "Доступные переменные",
  5973. clickToInsert: "Нажмите, чтобы вставить в позицию курсора в тексте",
  5974. livePreview: "Предварительный просмотр",
  5975. hide: "Скрыть",
  5976. show: "Показать",
  5977. loadingPreview: "Загрузка предварительного просмотра...",
  5978. enterTemplateContent: "Введите содержимое шаблона для предварительного просмотра",
  5979. titlePreview: "Заголовок:",
  5980. bodyPreview: "Текст:",
  5981. resetToDefault: "Восстановить стандартный шаблон",
  5982. titleRequired: "Укажите заголовок",
  5983. bodyRequired: "Введите текст уведомления",
  5984. notificationLog: "Журнал уведомлений",
  5985. showFailedOnly: "Только неудачные",
  5986. last24Hours: "Последние 24 часа",
  5987. last7Days: "Последние 7 дней",
  5988. last30Days: "Последние 30 дней",
  5989. last90Days: "Последние 90 дней",
  5990. justNow: "Только что",
  5991. noFailedNotifications: "Неудачных уведомлений нет",
  5992. noNotificationsLogged: "В журнале пока нет уведомлений",
  5993. unknownProvider: "Неизвестный провайдер",
  5994. logTitle: "Заголовок",
  5995. logMessage: "Сообщение",
  5996. logError: "Ошибка",
  5997. logProvider: "Провайдер: {{type}}",
  5998. logTime: "Время: {{time}}",
  5999. refresh: "Обновить",
  6000. clearOld: "Удалить старые",
  6001. statsSummary: "За последние {{days}} дней:",
  6002. statsNotifications: "уведомлений",
  6003. statsSent: "отправлено: {{count}}",
  6004. statsFailed: "ошибок: {{count}}",
  6005. eventTypes: {
  6006. print_start: "Печать началась",
  6007. print_complete: "Печать завершена",
  6008. print_failed: "Ошибка печати",
  6009. print_stopped: "Печать остановлена",
  6010. print_progress: "Ход печати",
  6011. printer_offline: "Принтер не в сети",
  6012. printer_error: "Ошибка принтера",
  6013. filament_low: "Заканчивается филамент",
  6014. maintenance_due: "Требуется обслуживание",
  6015. test: "Тест",
  6016. },
  6017. userEmail: {
  6018. title: "Уведомления",
  6019. emailNotifications: "Уведомления по электронной почте",
  6020. emailNotificationsDesc: "Получать письма о собственных заданиях печати. Для отправки используются системные параметры SMTP из раздела расширенной аутентификации.",
  6021. sendingTo: "Уведомления будут отправляться на адрес",
  6022. noEmailWarning: "Для вашей учётной записи не указан адрес электронной почты. Обратитесь к администратору.",
  6023. printJobNotifications: "Уведомления о заданиях печати",
  6024. printJobNotificationsDesc: "Выберите события, при которых будут отправляться письма о запущенных вами заданиях.",
  6025. printJobStarts: "Запуск задания печати",
  6026. printJobStartsDesc: "Уведомлять о начале вашего задания печати.",
  6027. printJobFinishes: "Завершение задания печати",
  6028. printJobFinishesDesc: "Уведомлять об успешном завершении вашего задания печати.",
  6029. printErrors: "Ошибки печати",
  6030. printErrorsDesc: "Уведомлять, если задание завершилось ошибкой или при печати возникла проблема.",
  6031. printJobStops: "Остановка задания печати",
  6032. printJobStopsDesc: "Уведомлять об отмене или остановке вашего задания печати.",
  6033. saveSuccess: "Настройки уведомлений сохранены.",
  6034. saveError: "Не удалось сохранить настройки уведомлений.",
  6035. },
  6036. },
  6037. richTextEditor: {
  6038. bold: "Полужирный",
  6039. italic: "Курсив",
  6040. underline: "Подчёркивание",
  6041. bulletList: "Маркированный список",
  6042. numberedList: "Нумерованный список",
  6043. alignLeft: "По левому краю",
  6044. alignCenter: "По центру",
  6045. alignRight: "По правому краю",
  6046. addLink: "Добавить ссылку",
  6047. removeLink: "Удалить ссылку",
  6048. },
  6049. externalLinks: {
  6050. title: "Ссылки на боковой панели",
  6051. sidebarLayout: "Боковая панель",
  6052. sidebarLayoutDescription: "Показывайте или скрывайте встроенные страницы, добавляйте внешние ссылки и перетаскивайте пункты, меняя порядок навигации.",
  6053. systemPages: "Страницы Bambuddy",
  6054. externalLinks: "Внешние ссылки",
  6055. visibleInSidebar: "Показывается на боковой панели",
  6056. hiddenFromSidebar: "Скрыто с боковой панели",
  6057. requiredInSidebar: "Обязательный пункт боковой панели",
  6058. hidePage: "Скрыть страницу",
  6059. showPage: "Показать страницу",
  6060. settingsCannotBeHidden: "Настройки нельзя скрыть",
  6061. noLinksConfigured: "Внешние ссылки не настроены",
  6062. deleteLink: "Удалить ссылку",
  6063. removeCustomIcon: "Удалить пользовательский значок",
  6064. openInNewTab: "Открывать в новой вкладке",
  6065. placeholders: {
  6066. linkName: "Моя ссылка",
  6067. },
  6068. },
  6069. keyboardShortcuts: {
  6070. title: "Горячие клавиши",
  6071. navigation: "Навигация",
  6072. archivesSection: "Архив",
  6073. kProfilesSection: "K-профили",
  6074. generalSection: "Общие",
  6075. shortcuts: {
  6076. goToPrinters: "Перейти к принтерам",
  6077. goToArchives: "Перейти в архив",
  6078. goToQueue: "Перейти к очереди",
  6079. goToStats: "Перейти к статистике",
  6080. goToProfiles: "Перейти к облачным профилям",
  6081. goToSettings: "Перейти к настройкам",
  6082. focusSearch: "Перейти в строку поиска",
  6083. openUploadModal: "Открыть окно загрузки",
  6084. clearSelection: "Снять выделение / убрать фокус с поля",
  6085. contextMenu: "Контекстное меню карточки",
  6086. refreshProfiles: "Обновить профили",
  6087. newProfile: "Новый профиль",
  6088. exitSelectionMode: "Выйти из режима выделения",
  6089. showHelp: "Показать эту справку",
  6090. },
  6091. footer: "Нажмите Esc или щёлкните снаружи, чтобы закрыть",
  6092. },
  6093. notificationLog: {
  6094. title: "Журнал уведомлений",
  6095. events: {
  6096. printStarted: "Печать началась",
  6097. printComplete: "Печать завершена",
  6098. printFailed: "Ошибка печати",
  6099. printStopped: "Печать остановлена",
  6100. progress: "Ход выполнения",
  6101. printerOffline: "Принтер не в сети",
  6102. printerError: "Ошибка принтера",
  6103. lowFilament: "Заканчивается филамент",
  6104. maintenanceDue: "Требуется обслуживание",
  6105. test: "Тест",
  6106. },
  6107. timeAgo: {
  6108. justNow: "Только что",
  6109. minutesAgo: "{{minutes}} мин назад",
  6110. hoursAgo: "{{hours}} ч назад",
  6111. },
  6112. },
  6113. restoreBackup: {
  6114. title: "Восстановление резервной копии",
  6115. restoring: "Восстановление...",
  6116. restoreComplete: "Восстановление завершено",
  6117. restoreFailed: "Ошибка восстановления",
  6118. importSettings: "Импортировать настройки из файла резервной копии",
  6119. pleaseWait: "Подождите, пока данные восстанавливаются",
  6120. clickToSelect: "Нажмите, чтобы выбрать файл резервной копии (.json или .zip)",
  6121. howDuplicateHandling: "Как обрабатываются совпадения:",
  6122. categories: {
  6123. printers: "Принтеры",
  6124. smartPlugs: "Умные розетки",
  6125. notificationProviders: "Провайдеры уведомлений",
  6126. filaments: "Филаменты",
  6127. archives: "Архив",
  6128. pendingUploads: "Ожидающие загрузки",
  6129. settingsTemplates: "Настройки и шаблоны",
  6130. },
  6131. matchingInfo: {
  6132. printers: "сопоставляются по серийному номеру",
  6133. smartPlugs: "сопоставляются по IP-адресу",
  6134. notificationProviders: "сопоставляются по названию",
  6135. filaments: "сопоставляются по названию, типу и бренду",
  6136. archives: "сопоставляются по хешу содержимого",
  6137. pendingUploads: "сопоставляются по имени файла",
  6138. settingsTemplates: "всегда перезаписываются",
  6139. },
  6140. replaceExisting: "Заменить существующие данные",
  6141. keepExisting: "Сохранить существующие данные",
  6142. replaceDescription: "Перезаписать уже существующие элементы данными из резервной копии",
  6143. keepDescription: "Восстановить только отсутствующие элементы",
  6144. caution: "Внимание:",
  6145. cautionText: "При перезаписи текущая конфигурация будет заменена данными из резервной копии. В целях безопасности коды доступа к принтерам никогда не перезаписываются.",
  6146. itemsRestored: "Восстановлено элементов",
  6147. itemsSkipped: "Пропущено элементов",
  6148. restored: "Восстановлено",
  6149. skipped: "Пропущено (уже существует)",
  6150. filesLabel: "Файлы (3MF, миниатюры и т. п.)",
  6151. newApiKeysGenerated: "Созданы новые ключи API",
  6152. newApiKeysWarning: "Эти ключи показываются только один раз. Скопируйте их сейчас!",
  6153. processingBackup: "Обработка резервной копии...",
  6154. noDataFound: "В резервной копии не найдено данных для восстановления.",
  6155. failedToRestore: "Не удалось восстановить резервную копию. Проверьте формат файла.",
  6156. },
  6157. backupExport: {
  6158. title: "Экспорт резервной копии",
  6159. selectData: "Выберите данные для включения",
  6160. selectAll: "Выбрать всё",
  6161. selectNone: "Снять выделение",
  6162. categoryDescriptions: {
  6163. settings: "Язык, тема и настройки обновлений",
  6164. notifications: "ntfy, Pushover, Discord и другие",
  6165. templates: "Пользовательские шаблоны сообщений",
  6166. smartPlugs: "Конфигурация розеток Tasmota",
  6167. externalLinks: "Ссылки на внешние сервисы в боковой панели",
  6168. printers: "Сведения о принтерах (без кодов доступа)",
  6169. plateDetection: "Эталонные изображения пустых пластин",
  6170. filaments: "Типы и стоимость филамента",
  6171. maintenance: "Пользовательские графики обслуживания",
  6172. archives: "Все данные печати и файлы (3MF, миниатюры, фотографии)",
  6173. projects: "Проекты, позиции спецификаций и вложения",
  6174. pendingUploads: "Загрузки виртуальных принтеров, ожидающие проверки",
  6175. apiKeys: "Ключи API вебхуков (при импорте создаются новые)",
  6176. },
  6177. requiresPrinters: "Необходимо выбрать раздел «Принтеры»",
  6178. zipFileWarning: "Будет создан ZIP-файл.",
  6179. zipFileDescription: "В него войдут все файлы 3MF, миниатюры, таймлапсы и фотографии. Операция может занять некоторое время, а файл — получиться большим.",
  6180. includeAccessCodes: "Включить коды доступа",
  6181. includeAccessCodesDescription: "Для переноса на другой компьютер",
  6182. includeAccessCodesWarning: "Коды доступа попадут в файл открытым текстом. Храните резервную копию в безопасном месте!",
  6183. categoriesSelected: "Выбрано категорий: {{selectedCount}}",
  6184. },
  6185. pendingUploads: {
  6186. placeholders: {
  6187. notes: "Добавьте примечания об этой печати...",
  6188. },
  6189. discardUpload: "Отклонить загрузку",
  6190. archiveAllUploads: "Добавить все загрузки в архив",
  6191. discardAllUploads: "Отклонить все загрузки",
  6192. archive: "В архив",
  6193. timeAgo: {
  6194. justNow: "Только что",
  6195. minutesAgo: "{{minutes}} мин назад",
  6196. hoursAgo: "{{hours}} ч назад",
  6197. daysAgo: "{{days}} дн. назад",
  6198. },
  6199. },
  6200. apiBrowser: {
  6201. placeholders: {
  6202. requestBody: "Тело запроса JSON...",
  6203. searchEndpoints: "Поиск конечных точек...",
  6204. },
  6205. },
  6206. configureAmsSlot: {
  6207. title: "Настройка слота AMS",
  6208. slotConfigured: "Слот настроен!",
  6209. configuringSlot: "Настраивается слот:",
  6210. slotLabel: "{{ams}}, слот {{slot}}",
  6211. searchPresets: "Поиск профилей...",
  6212. colorPlaceholder: "Название или HEX-код цвета (например: brown, FF8800)",
  6213. clearCustomColor: "Очистить пользовательский цвет",
  6214. noCloudPresets: "Облачных профилей нет. Войдите в Bambu Cloud для синхронизации.",
  6215. noPresetsAvailable: "Нет доступных профилей. Войдите в Bambu Cloud или импортируйте локальные профили.",
  6216. noMatchingPresets: "Подходящие профили не найдены.",
  6217. custom: "Пользовательский",
  6218. builtin: "Встроенный",
  6219. orcaCloud: "Orca Cloud",
  6220. bambuCloud: "Bambu Cloud",
  6221. settingsSentToPrinter: "Настройки отправлены на принтер",
  6222. filamentProfile: "Профиль филамента",
  6223. kProfileLabel: "K-профиль (Pressure Advance)",
  6224. filteringFor: "Фильтр по материалу: {{material}}",
  6225. noKProfile: "Без K-профиля (стандартное значение 0,020)",
  6226. noMatchingKProfiles: "Подходящие K-профили не найдены. Будет использовано стандартное значение K=0,020.",
  6227. otherKProfiles: "Другие K-профили на этом принтере",
  6228. selectFilamentFirst: "Сначала выберите профиль филамента",
  6229. kFromCalibration: "K={{value}} из калибровки принтера",
  6230. customColorLabel: "Пользовательский цвет (необязательно)",
  6231. presetColors: "Цвета {{name}}:",
  6232. showLessColors: "Показать меньше цветов",
  6233. showMoreColors: "Показать больше цветов",
  6234. clear: "Очистить",
  6235. hexLabel: "HEX: #{{hex}}",
  6236. resetting: "Сброс...",
  6237. resetSlot: "Сбросить слот",
  6238. cancel: "Отмена",
  6239. configuring: "Настройка...",
  6240. configureSlot: "Настроить слот",
  6241. },
  6242. githubBackup: {
  6243. title: "Резервное копирование в Git",
  6244. history: "История",
  6245. downloadBackup: "Скачать резервную копию",
  6246. restoreBackup: "Восстановить резервную копию",
  6247. noBackupsYet: "Резервных копий пока нет",
  6248. },
  6249. emailSettings: {
  6250. placeholders: {
  6251. fromName: "BamBuddy",
  6252. },
  6253. },
  6254. tagManagement: {
  6255. searchTags: "Поиск меток...",
  6256. renameTag: "Переименовать метку",
  6257. deleteTag: "Удалить метку",
  6258. },
  6259. notificationTemplates: {
  6260. placeholders: {
  6261. title: "Заголовок уведомления...",
  6262. body: "Текст уведомления...",
  6263. },
  6264. },
  6265. batchTag: {
  6266. placeholders: {
  6267. newTag: "Введите новую метку...",
  6268. },
  6269. },
  6270. photoGallery: {
  6271. deletePhoto: "Удалить фотографию",
  6272. },
  6273. filamentHoverCard: {
  6274. copySpoolUuid: "Скопировать UUID катушки",
  6275. },
  6276. kProfilesView: {
  6277. hasNote: "Есть примечание",
  6278. copyProfile: "Копировать профиль",
  6279. },
  6280. layout: {
  6281. openMenu: "Открыть меню",
  6282. noPermissionSystemInfo: "У вас нет разрешения на просмотр системной информации",
  6283. },
  6284. dashboard: {
  6285. dragToReorder: "Перетащите, чтобы изменить порядок",
  6286. hideWidget: "Скрыть виджет",
  6287. },
  6288. notificationProviderCard: {
  6289. deleteNotificationProvider: "Удалить провайдера уведомлений",
  6290. },
  6291. fileManagerModal: {
  6292. closeFileManager: "Закрыть файловый менеджер",
  6293. sortFiles: "Сортировать файлы",
  6294. goToParentFolder: "Перейти в родительскую папку",
  6295. threeView: "Просмотр 3D",
  6296. },
  6297. embeddedCameraViewer: {
  6298. refreshStream: "Обновить поток",
  6299. close: "Закрыть",
  6300. zoomOut: "Уменьшить",
  6301. resetZoom: "Сбросить масштаб",
  6302. zoomIn: "Увеличить",
  6303. dragToResize: "Перетащите, чтобы изменить размер",
  6304. },
  6305. timelapseViewer: {
  6306. skipBack5s: "Назад на 5 с",
  6307. skipForward5s: "Вперёд на 5 с",
  6308. },
  6309. notificationProviders: {
  6310. descriptions: {
  6311. email: "Уведомления по электронной почте через SMTP",
  6312. telegram: "Уведомления через Telegram-бота",
  6313. discord: "Отправка в канал Discord через вебхук",
  6314. ntfy: "Бесплатные push-уведомления с возможностью самостоятельного размещения сервера",
  6315. pushover: "Простые и надёжные push-уведомления",
  6316. callmebot: "Бесплатные уведомления WhatsApp через CallMeBot",
  6317. webhook: "Обычный HTTP POST на любой URL",
  6318. },
  6319. },
  6320. logViewer: {
  6321. searchPlaceholder: "Поиск по сообщению или имени логгера...",
  6322. noLogEntries: "Записи журнала не найдены",
  6323. },
  6324. switchbarPopover: {
  6325. noSwitchesInSwitchbar: "На панели переключателей нет устройств",
  6326. },
  6327. projectPageModal: {
  6328. placeholders: {
  6329. title: "Название",
  6330. designer: "Автор",
  6331. license: "Лицензия",
  6332. description: "Введите описание...",
  6333. profileTitle: "Название профиля",
  6334. profileDescription: "Описание профиля...",
  6335. },
  6336. },
  6337. spoolmanSettings: {
  6338. },
  6339. time: {
  6340. unknown: "—",
  6341. waiting: "Ожидание",
  6342. justNow: "Только что",
  6343. now: "Сейчас",
  6344. minsAgo: "{{count}} мин назад",
  6345. inMins: "через {{count}} мин",
  6346. hoursAgo: "{{count}} ч назад",
  6347. inHours: "через {{count}} ч",
  6348. daysAgo: "{{count}} дн. назад",
  6349. inDays: "через {{count}} дн.",
  6350. },
  6351. spoolbuddy: {
  6352. nav: {
  6353. dashboard: "Панель",
  6354. ams: "AMS",
  6355. inventory: "Катушки",
  6356. writeTag: "Запись метки",
  6357. settings: "Настройки",
  6358. },
  6359. status: {
  6360. nfcReady: "NFC готов",
  6361. nfcOff: "NFC выключен",
  6362. offline: "Не в сети",
  6363. online: "В сети",
  6364. noPrinters: "Нет принтеров",
  6365. deviceOffline: "Устройство не в сети",
  6366. waitingConnection: "Ожидание подключения устройства...",
  6367. systemReady: "Система готова",
  6368. status: "Состояние",
  6369. },
  6370. dashboard: {
  6371. readyToScan: "Готово к сканированию",
  6372. idleMessage: "Поставьте катушку на весы для идентификации",
  6373. nfcHint: "Метка NFC будет считана автоматически",
  6374. device: "Устройство",
  6375. syncWeight: "Синхронизировать массу",
  6376. weightSynced: "Синхронизировано!",
  6377. unknownTag: "Неизвестная метка",
  6378. newTag: "Обнаружена новая метка",
  6379. onScale: "на весах",
  6380. linkSpool: "Связать с катушкой",
  6381. linkTagTitle: "Связать метку с катушкой",
  6382. linkTag: "Связать метку",
  6383. selectSpool: "Выберите катушку, с которой нужно связать эту метку:",
  6384. noUntagged: "Катушки без меток не найдены",
  6385. tagDetected: "Метка обнаружена",
  6386. noTag: "Метка отсутствует",
  6387. tagId: "Метка",
  6388. grossWeight: "Масса брутто",
  6389. spoolSize: "Размер катушки",
  6390. close: "Закрыть",
  6391. currentSpool: "Текущая катушка",
  6392. plateReady: "Пластина готова: {{name}}",
  6393. plateReadyLabel: "Пластины, готовые к очистке",
  6394. plateClearAction: "Очищено",
  6395. plateClearedToast: "Пластина отмечена как очищенная",
  6396. plateClearFailed: "Не удалось отметить пластину как очищенную",
  6397. },
  6398. modal: {
  6399. spoolDetected: "Катушка обнаружена",
  6400. assignToAms: "Назначить в AMS",
  6401. syncWeight: "Синхронизировать массу",
  6402. weightSynced: "Синхронизировано!",
  6403. syncing: "Синхронизация...",
  6404. newTagDetected: "Обнаружена новая метка",
  6405. addToInventory: "Добавить в учёт",
  6406. assignToAmsTitle: "Назначить в AMS",
  6407. selectSlot: "Выберите слот",
  6408. assign: "Назначить",
  6409. assigning: "Назначение...",
  6410. assignSuccess: "Назначено!",
  6411. assignPendingInsert: "Назначено. Слот будет настроен после установки катушки.",
  6412. assignError: "Не удалось назначить катушку. Повторите попытку.",
  6413. noPrinterSelected: "Выберите принтер...",
  6414. noAmsDetected: "На этом принтере AMS не обнаружена",
  6415. slot: "Слот",
  6416. },
  6417. weight: {
  6418. noReading: "Нет показаний",
  6419. stable: "Стабильно",
  6420. measuring: "Измерение...",
  6421. tare: "Тарировать",
  6422. calibrate: "Калибровать",
  6423. },
  6424. spool: {
  6425. remaining: "Остаток",
  6426. material: "Материал",
  6427. brand: "Бренд",
  6428. color: "Цвет",
  6429. coreWeight: "Сердечник",
  6430. labelWeight: "По этикетке",
  6431. scaleWeight: "По весам",
  6432. netWeight: "Нетто",
  6433. lastUsed: "Последнее использование",
  6434. },
  6435. ams: {
  6436. noData: "AMS не обнаружена",
  6437. connectAms: "Подключите AMS, чтобы увидеть слоты филамента",
  6438. noPrinter: "Принтер не выбран",
  6439. selectPrinter: "Выберите принтер на верхней панели",
  6440. printerDisconnected: "Принтер отключён",
  6441. humidity: "Влажность",
  6442. level: "Уровень",
  6443. active: "Активен",
  6444. slot: "Слот",
  6445. empty: "Пусто",
  6446. },
  6447. inventory: {
  6448. search: "Поиск катушек...",
  6449. empty: "В учёте нет катушек",
  6450. noResults: "Подходящие катушки не найдены",
  6451. spools: "катушек",
  6452. addSpool: "Добавить катушку",
  6453. },
  6454. settings: {
  6455. tabDevice: "Устройство",
  6456. tabDisplay: "Экран",
  6457. tabScale: "Весы",
  6458. tabUpdates: "Обновления",
  6459. nfcReader: "Считыватель NFC",
  6460. type: "Тип",
  6461. connection: "Подключение",
  6462. notConnected: "Н/Д",
  6463. deviceInfo: "Сведения об устройстве",
  6464. hostname: "Хост",
  6465. uptime: "Время работы",
  6466. systemConfig: "Бэкенд и авторизация",
  6467. backendUrl: "URL бэкенда Bambuddy",
  6468. apiToken: "Токен API",
  6469. apiTokenPlaceholder: "Введите токен API",
  6470. saveConfig: "Сохранить конфигурацию",
  6471. systemQueued: "Конфигурация поставлена в очередь.",
  6472. nfcDiagnostic: "Диагностика NFC",
  6473. scaleDiagnostic: "Диагностика весов",
  6474. readTagDiagnostic: "Диагностика чтения метки",
  6475. testNfc: "Проверить считыватель",
  6476. testScale: "Проверить точность",
  6477. testReadTag: "Считать метку",
  6478. systemFieldsRequired: "Необходимо указать URL бэкенда.",
  6479. brightness: "Яркость",
  6480. saved: "Сохранено",
  6481. noBacklight: "Подсветка DSI не обнаружена. Для управления яркостью требуется дисплей DSI.",
  6482. screenBlank: "Тайм-аут отключения экрана",
  6483. screenBlankDesc: "Экран выключается при бездействии. Коснитесь его для пробуждения.",
  6484. displayNote: "Яркость регулируется программным фильтром.",
  6485. scaleCalibration: "Калибровка весов",
  6486. currentWeight: "Текущая масса",
  6487. tareOffset: "Тара",
  6488. calFactor: "Коэффициент",
  6489. knownWeight: "Эталонная масса",
  6490. calStep1: "Уберите всё с весов и нажмите «Установить ноль».",
  6491. calStep2: "Положите на весы груз известной массы.",
  6492. setZero: "Установить ноль",
  6493. calibrateNow: "Калибровать",
  6494. calibrated: "Откалибровано",
  6495. tareSet: "Команда тарирования отправлена. Ожидание устройства...",
  6496. tareComplete: "Тарирование завершено!",
  6497. tareTimedOut: "Истекло время ожидания тарирования — демон SpoolBuddy запущен?",
  6498. tareFailed: "Не удалось отправить команду тарирования",
  6499. zeroSet: "Нулевая точка установлена. Положите на весы груз известной массы.",
  6500. calibrationDone: "Калибровка завершена!",
  6501. calibrationFailed: "Ошибка калибровки",
  6502. lastCalibrated: "Последняя калибровка",
  6503. stable: "Стабильно",
  6504. settling: "Стабилизация...",
  6505. firmware: "Прошивка",
  6506. scale: "Весы",
  6507. noDevice: "Устройство SpoolBuddy не найдено",
  6508. daemonVersion: "Версия демона",
  6509. currentVersion: "Текущая",
  6510. versionPending: "Ожидание демона...",
  6511. checking: "Проверка...",
  6512. checkUpdates: "Проверить обновления",
  6513. updateAvailable: "Доступно обновление",
  6514. updateInstructions: "Обновление по SSH: запустите установочный скрипт SpoolBuddy.",
  6515. upToDate: "Установлена актуальная версия",
  6516. includeBeta: "Включать бета-версии",
  6517. },
  6518. writeTag: {
  6519. tabExisting: "Существующая катушка",
  6520. tabNew: "Новая катушка",
  6521. tabReplace: "Заменить метку",
  6522. searchPlaceholder: "Поиск по материалу, цвету или бренду...",
  6523. noUntaggedSpools: "Нет катушек без меток",
  6524. noTaggedSpools: "Нет катушек с метками",
  6525. selectSpool: "Выберите катушку, затем положите чистую метку NTAG на считыватель",
  6526. placeTag: "Положите метку NTAG на считыватель",
  6527. tagReady: "Метка обнаружена — можно записывать",
  6528. writeTag: "Записать метку",
  6529. replaceTag: "Заменить метку",
  6530. writing: "Запись метки...",
  6531. waiting: "Ожидание SpoolBuddy...",
  6532. writeSuccess: "Метка успешно записана!",
  6533. writeFailed: "Ошибка записи",
  6534. queueFailed: "Не удалось поставить команду записи в очередь",
  6535. tryAgain: "Повторить",
  6536. cancel: "Отмена",
  6537. replaceWarning: "Старая метка будет отвязана и заменена новой.",
  6538. deviceOffline: "SpoolBuddy не в сети",
  6539. material: "Материал",
  6540. colorName: "Название цвета",
  6541. color: "Цвет",
  6542. brand: "Бренд",
  6543. weight: "Масса (г)",
  6544. createSpool: "Создать катушку",
  6545. creating: "Создание...",
  6546. spoolCreated: "Катушка создана! Можно записывать метку.",
  6547. createFailed: "Не удалось создать катушку",
  6548. incompleteDataWarning: "Метка записана с неполными данными Spoolman",
  6549. },
  6550. quickMenu: {
  6551. printerPower: "Питание принтера",
  6552. systemControls: "Система",
  6553. restartDaemon: "Перезапустить демон",
  6554. restartBrowser: "Перезапустить браузер",
  6555. reboot: "Перезагрузить",
  6556. shutdown: "Выключить",
  6557. swipeToClose: "Проведите вниз, чтобы закрыть",
  6558. confirmTitle: "Подтверждение",
  6559. confirmShutdown: "Выключить SpoolBuddy? Для повторного включения потребуется физический доступ.",
  6560. confirmReboot: "Перезагрузить SpoolBuddy?",
  6561. confirmRestartDaemon: "Перезапустить демон SpoolBuddy? NFC и весы временно будут недоступны.",
  6562. confirmRestartBrowser: "Перезапустить браузер киоска? Экран ненадолго погаснет.",
  6563. confirm: "Подтвердить",
  6564. confirmPlugOn: "Включить {{name}}?",
  6565. confirmPlugOff: "Выключить {{name}}?",
  6566. turnOn: "Включить",
  6567. turnOff: "Выключить",
  6568. },
  6569. },
  6570. diagnostic: {
  6571. modalTitle: "Диагностика подключения — {{name}}",
  6572. running: "Выполняется диагностика...",
  6573. runningElapsed: "Выполняется диагностика... ({{elapsed}} с)",
  6574. waitingForReportHint: "Ожидание публикации отчёта о состоянии принтера — это может занять до {{max}} секунд.",
  6575. runFailed: "Не удалось выполнить диагностику: {{error}}",
  6576. retry: "Запустить снова",
  6577. runButton: "Запустить диагностику",
  6578. sectionTitle: "Диагностика подключения",
  6579. sectionDescription: "Проверьте, почему принтер не подключается или не печатает: доступность портов, режим разработчика LAN, сетевой режим Docker и учётные данные.",
  6580. noPrinters: "Принтеры не настроены.",
  6581. overall: {
  6582. ok: "Проблем не обнаружено — подключение к принтеру исправно.",
  6583. warnings: "Принтер должен работать, но некоторые пункты требуют внимания.",
  6584. problems: "Обнаружены проблемы, объясняющие, почему принтер не подключается или не печатает.",
  6585. },
  6586. check: {
  6587. port_mqtt: {
  6588. title: "Порт управления (MQTT 8883)",
  6589. pass: "Доступен — принтер принимает управляющие подключения.",
  6590. fail: "Порт 8883 недоступен. Принтер выключен, имеет другой IP-адрес либо подключение блокирует межсетевой экран. Проверьте IP-адрес принтера и доступность порта 8883.",
  6591. },
  6592. port_ftps: {
  6593. title: "Порт передачи файлов (FTPS 990)",
  6594. pass: "Доступен — отправка файлов печати будет работать.",
  6595. warn: "Порт 990 недоступен. Мониторинг может работать, но отправка заданий на принтер завершится ошибкой. Убедитесь, что порт 990 не заблокирован.",
  6596. warn_no_tls: "Порт 990 открыт, но файловая служба принтера не завершает рукопожатие TLS. Файлы печати, обложки и таймлапсы получить невозможно, поэтому архивы остаются пустыми. Перезагрузите принтер — разблокировка порта не поможет.",
  6597. },
  6598. external_storage: {
  6599. title: "Сохранять отправленные файлы во внешнем хранилище (шаг 4 установки)",
  6600. pass: "Принтер сообщает, что параметр включён: отправленные файлы будут сохраняться на SD-карте, а в архиве появятся миниатюры и метаданные слайсера.",
  6601. fail: "Принтер сообщает, что параметр выключен. Включите «Сохранять отправленные файлы во внешнем хранилище»: в новых прошивках (P2S 01.02 / Bambu Studio 2.6+) переключатель находится в настройках печати принтера, в старых — на вкладке «Устройство» Bambu Studio / OrcaSlicer. Без этого у всех архивных заданий не будет миниатюр и метаданных слайсера.",
  6602. skip: "Не проверено — требуется активное подключение MQTT. В старых версиях слайсеров этот параметр существует только в слайсере и принтер его не сообщает, поэтому проверка может пройти даже при выключенном параметре. Проверьте шаг 4 установки вручную.",
  6603. skip_unsupported_model: "В этой модели есть слот SD-карты, но включить соответствующую функцию невозможно: текущая прошивка серии P1 не предоставляет переключатель в Bambu Studio, а у принтера нет экрана. Исправлять здесь нечего. Пока Bambu Lab не добавит поддержку в прошивку, архивные задания могут сохраняться без миниатюр и метаданных слайсера.",
  6604. fail_no_media: 'Параметр включён, но принтер не видит ни карты, ни флешки в слоте, поэтому отправленным файлам некуда деваться. Вставьте накопитель и напечатайте снова — до тех пор у каждой архивной печати не будет ни миниатюры, ни метаданных слайсера.',
  6605. warn_internal_storage: 'Параметр включён и накопитель на месте, но последняя печать всё равно ушла во внутреннюю память принтера, которую Bambuddy не может прочитать. На серии H2 и P2S кнопка «Печать» в Bambu Studio всегда отправляет туда, независимо от этого параметра. Печати архивируются с именем и временем, но без миниатюры и метаданных слайсера. Чтобы архивы были полными, запускайте печать из Bambuddy, нарезайте в OrcaSlicer или в Bambu Studio используйте «Отправить» с «Внешним накопителем», а затем запускайте печать.',
  6606. warn_internal_history: 'Опция включена и накопитель на месте, но последняя печать шла из файла, который уже был на принтере, — повторная печать с его экрана, запуск из Handy или файл, отправленный раньше. Эта библиотека лежит во внутренней памяти, которую Bambuddy не читает, и никакие настройки этого не меняют: для той печати ничего не отправлялось. Она по-прежнему архивируется с именем и временем, но без миниатюры и метаданных слайсера. Чтобы архивы были полными, запускайте печать из Bambuddy или отправляйте её из слайсера.',
  6607. },
  6608. port_rtsps: {
  6609. title: "Порт камеры ({{protocol}} {{port}})",
  6610. pass: "Доступен — видеопоток камеры будет работать.",
  6611. warn: "Порт {{port}} недоступен. Просмотр камеры в реальном времени работать не будет. На печать это не влияет.",
  6612. },
  6613. network_mode: {
  6614. title: "Сетевой режим Docker",
  6615. pass: "Используется сетевой режим host.",
  6616. warn: "Bambuddy запущен в Docker с сетью bridge. Для обнаружения принтеров и виртуального принтера требуется режим host — пересоздайте контейнер с параметром «network_mode: host».",
  6617. skip: "Bambuddy запущен не в Docker — проверка неприменима.",
  6618. },
  6619. subnet: {
  6620. title: "Подсеть",
  6621. pass: "Принтер и Bambuddy находятся в одной подсети.",
  6622. warn: "Принтер ({{printer_ip}}) и Bambuddy ({{host_ip}}) находятся в разных подсетях. Без настроенной маршрутизации между подсетями они могут быть недоступны друг для друга.",
  6623. skip: "Не удалось определить подсеть — проверка пропущена.",
  6624. },
  6625. mqtt_auth: {
  6626. title: "Учётные данные принтера",
  6627. pass: "Принтер принял подключение.",
  6628. fail: "Принтер доступен, но Bambuddy к нему не подключён. Скорее всего, неверны код доступа или серийный номер — код доступа изменяется при каждом переключении режима «Только LAN» или режима разработчика, поэтому снова скопируйте его с экрана принтера. Так же выглядит принтер, который перезагружается или уже исчерпал лимит одновременных подключений.",
  6629. fail_auth_rejected: "Принтер отклонил учётные данные Bambuddy. Код доступа или серийный номер неверны — код доступа изменяется при каждом переключении режима «Только LAN» или режима разработчика. Снова скопируйте его с экрана принтера и сохраните в настройках принтера.",
  6630. skip: "Не проверено — принтер недоступен.",
  6631. },
  6632. developer_mode: {
  6633. title: "Режим разработчика LAN",
  6634. pass: "Режим разработчика включён.",
  6635. fail: "Режим разработчика на принтере ВЫКЛЮЧЕН. Включите его в настройках LAN принтера и подтвердите кнопкой OK. Без него задания печати не запускаются.",
  6636. skip: "Не удалось проверить — требуется активное подключение к принтеру.",
  6637. },
  6638. printer_publishing: {
  6639. title: "Принтер публикует состояние",
  6640. pass: "Принтер публикует обновления состояния — AMS, филаменты и K-профили будут корректно передаваться в слайсер.",
  6641. fail: "MQTT-брокер принял подключение, но принтер не опубликовал ни одного отчёта о состоянии. Почти всегда причина в неверном регистре или ошибке в серийном номере: тема device/<serial>/report чувствительна к регистру. Сверьте серийный номер в настройках принтера с номером на его экране.",
  6642. skip: "Не удалось проверить — требуется активное подключение к принтеру.",
  6643. },
  6644. },
  6645. },
  6646. systemHealth: {
  6647. sectionTitle: "Состояние системы",
  6648. sectionDescription: "Проверяет последние журналы на известные проблемы, которые обычно можно исправить самостоятельно до обращения в поддержку.",
  6649. rescan: "Проверить снова",
  6650. clean: "В последних {{times}} записях журнала известные проблемы не найдены.",
  6651. logUnavailable: "Запись журналов в файл отключена, поэтому выполнить проверку невозможно. Включите файловое журналирование.",
  6652. learnMore: "Как исправить",
  6653. fixLabel: "Исправление:",
  6654. occurrences: "Обнаружено {{times}} раз; последний раз — {{lastSeen}}",
  6655. category: {
  6656. layer8: "Можно исправить самостоятельно",
  6657. environment: "Окружение",
  6658. bug: "Сообщите об ошибке",
  6659. },
  6660. signature: {
  6661. "ftp-auth-rejected": {
  6662. name: "Принтер отклонил код доступа",
  6663. cause: "Принтер отклонил вход в службу передачи файлов. Код доступа неверен либо изменился после переключения режима разработчика.",
  6664. fix: "Снова скопируйте код доступа с экрана принтера в настройках LAN и обновите его в настройках принтера Bambuddy.",
  6665. },
  6666. "ftp-connection-timeout": {
  6667. name: "Истекло время подключения к службе передачи файлов",
  6668. cause: "Bambuddy не смог подключиться к порту передачи файлов принтера (FTPS 990). Порт заблокирован, принтер выключен либо находится в другой подсети.",
  6669. fix: "Убедитесь, что порт 990 между Bambuddy и принтером не блокируется и оба устройства находятся в доступных друг другу сетях.",
  6670. },
  6671. "ftp-ssl-error": {
  6672. name: "Ошибка защищённого соединения с файловой службой",
  6673. cause: "Файловая служба принтера ответила на порту 990 без TLS. Её файловый сервер завис — это неисправность самого принтера, а не межсетевого экрана или прошивки.",
  6674. fix: "Перезапустите принтер. До этого файлы печати, обложки и таймлапсы получить нельзя, но на саму печать это не влияет.",
  6675. },
  6676. "bambu-cloud-captcha": {
  6677. name: "Bambu Cloud требует пройти CAPTCHA",
  6678. cause: "Защита Bambu от злоупотреблений проверяет эту сеть, поэтому вход в Bambu Cloud завершить невозможно. Это связано с публичным IP-адресом, а не с вашей учётной записью или этой установкой.",
  6679. fix: "Подождите: обычно проверка снимается за несколько часов, а повторные попытки входа её продлевают. Пока что войдите с помощью токена доступа из сессии браузера.",
  6680. },
  6681. "mqtt-connection-flapping": {
  6682. name: "Подключение к принтеру постоянно обрывается",
  6683. cause: "Управляющее соединение MQTT 8883 постоянно разрывается и восстанавливается. Обычно причина в нестабильной сети или частично заблокированном порте.",
  6684. fix: "Проверьте уровень Wi‑Fi у принтера, по возможности используйте проводное подключение и убедитесь в стабильной доступности порта 8883.",
  6685. },
  6686. "camera-connection-refused": {
  6687. name: "Видеопоток камеры недоступен",
  6688. cause: "Камера недоступна по порту RTSPS 322. Порт заблокирован либо на принтере выключены камера или просмотр по LAN.",
  6689. fix: "Включите камеру и просмотр по LAN на принтере и убедитесь, что порт 322 не заблокирован. На печать это не влияет.",
  6690. },
  6691. "database-locked": {
  6692. name: "Конфликт записи в базу данных",
  6693. cause: "Под нагрузкой SQLite выдаёт ошибки «database is locked». Это часто происходит при одновременной работе с несколькими принтерами.",
  6694. fix: "Переведите Bambuddy на внешнюю базу PostgreSQL. См. руководство по PostgreSQL в документации.",
  6695. },
  6696. },
  6697. },
  6698. vpDiagnostic: {
  6699. title: "Проверка настройки — {{name}}",
  6700. runButton: "Запустить проверку",
  6701. running: "Выполняется проверка настройки...",
  6702. runFailed: "Не удалось выполнить проверку: {{error}}",
  6703. retry: "Запустить снова",
  6704. overall: {
  6705. ok: "Все проверки пройдены — виртуальный принтер настроен правильно.",
  6706. warnings: "Виртуальный принтер должен работать, но некоторые пункты требуют внимания.",
  6707. problems: "Обнаружены проблемы, из-за которых слайсер не видит или не может использовать виртуальный принтер.",
  6708. },
  6709. check: {
  6710. enabled: {
  6711. title: "Виртуальный принтер включён",
  6712. fail: "Виртуальный принтер выключен. Включите его, чтобы он обнаруживался в сети.",
  6713. },
  6714. running: {
  6715. title: "Службы запущены",
  6716. fail: "Виртуальный принтер включён, но его службы не работают. Проверьте журнал Bambuddy: обычно запуску мешает конфликт IP-адреса привязки или ошибка прав доступа.",
  6717. },
  6718. bind_interface: {
  6719. title: "Сетевой интерфейс привязки",
  6720. fail: "Интерфейс привязки не задан или больше не существует на этом хосте. Выберите актуальный интерфейс в списке «Интерфейс привязки».",
  6721. },
  6722. access_code: {
  6723. title: "Код доступа задан",
  6724. fail: "Код доступа не задан. В слайсере необходимо указать тот же восьмизначный код, который задан здесь.",
  6725. },
  6726. target_printer: {
  6727. title: "Целевой принтер",
  6728. fail: "Целевой принтер не выбран. Для режима прокси необходимо указать реальный принтер.",
  6729. warn: "Целевой принтер сейчас не в сети. Перенаправление возобновится после его подключения.",
  6730. },
  6731. port_ftps: {
  6732. title: "Служба загрузки файлов (порт {{port}})",
  6733. fail: "На порту {{port}} выбранного IP-адреса никто не слушает, поэтому слайсер не сможет загружать файлы. Обычно причина в конфликте порта на этом интерфейсе.",
  6734. },
  6735. port_mqtt: {
  6736. title: "Служба управления (порт {{port}})",
  6737. fail: "На порту {{port}} выбранного IP-адреса никто не слушает, поэтому слайсер не сможет подключиться и отображать состояние.",
  6738. },
  6739. port_bind: {
  6740. title: "Служба обнаружения (порт {{port}})",
  6741. fail: "На порту {{port}} выбранного IP-адреса никто не слушает, поэтому сетевое обнаружение слайсером не работает.",
  6742. },
  6743. privileged_ports: {
  6744. title: 'Привязка к привилегированным портам',
  6745. fail: 'Порт {{port}} ниже 1024, и этой службе не разрешено его занимать — поэтому выше ничего не слушает. Добавьте AmbientCapabilities=CAP_NET_BIND_SERVICE в /etc/systemd/system/bambuddy.service и перезапустите либо выполните "sudo setcap cap_net_bind_service=+ep $(readlink -f $(which python3))". В Docker добавьте cap_add: [NET_BIND_SERVICE].',
  6746. },
  6747. certificate: {
  6748. title: "Сертификат TLS",
  6749. pass: "Сертификат готов. Убедитесь, что сертификат центра сертификации Bambuddy, указанный выше, импортирован в доверенное хранилище слайсера.",
  6750. fail: "Сертификат TLS для этого виртуального принтера отсутствует. Проверьте права записи в каталог данных Bambuddy.",
  6751. },
  6752. },
  6753. },
  6754. bugReport: {
  6755. title: "Сообщить об ошибке",
  6756. description: "Описание",
  6757. descriptionPlaceholder: "Что пошло не так? Опишите проблему...",
  6758. email: "Электронная почта (необязательно)",
  6759. emailPlaceholder: "your@email.com",
  6760. emailPrivacy: "Указанный адрес будет добавлен в сворачиваемый раздел задачи GitHub, чтобы сопровождающий мог с вами связаться.",
  6761. screenshot: "Снимок экрана",
  6762. uploadOrPaste: "Загрузите, вставьте или перетащите изображение",
  6763. dataCollectedSummary: "Какие данные включаются в отчёт?",
  6764. dataIncluded: "Включаются:",
  6765. dataIncludedList: "Версия приложения, ОС, архитектура, версия Python, статистика базы данных (только количества), модели принтеров, количество сопел, версии прошивок, состояние подключений, состояние интеграций (Spoolman, MQTT, HA), неконфиденциальные настройки, количество сетевых интерфейсов, сведения о Docker и версии зависимостей.",
  6766. dataNeverIncluded: "Никогда не включаются:",
  6767. dataNeverIncludedList: "Имена принтеров, серийные номера, коды доступа, пароли, IP-адреса, адреса электронной почты, ключи API, токены, URL вебхуков, имена хостов и пользователей.",
  6768. submit: "Отправить",
  6769. startLogging: "Начать отладочную запись",
  6770. stepEnableLogging: "Отладочная запись включена",
  6771. stepReproduce: "Теперь воспроизведите проблему",
  6772. stepStopLogging: "Остановить и отправить отчёт",
  6773. stopAndSubmit: "Остановить и отправить",
  6774. maxDuration: "Автоматическая остановка через {{minutes}} мин",
  6775. stoppingLogs: "Сбор журналов и отправка...",
  6776. submitting: "Отправка отчёта об ошибке...",
  6777. submittingStepConnection: "Проверка подключений к принтерам",
  6778. submittingStepVirtualPrinters: "Проверка настройки виртуальных принтеров",
  6779. submittingStepLogScan: "Поиск известных проблем в последних журналах",
  6780. submittingStepSubmit: "Отправка отчёта в GitHub",
  6781. submitSuccess: "Отчёт об ошибке успешно отправлен!",
  6782. submitFailed: "Не удалось отправить отчёт об ошибке",
  6783. diagnosticChecking: "Проверка подключений к принтерам...",
  6784. diagnosticHealthy: "Проверка подключения пройдена — проблем с принтерами не обнаружено.",
  6785. diagnosticSummary: "Проблемы с подключением обнаружены у {{problems}} из {{total}} принтеров",
  6786. diagnosticIntro: "У одного или нескольких принтеров есть проблема подключения, которая может быть причиной сбоя. Разверните сведения о принтере ниже и посмотрите способ исправления — возможно, отчёт об ошибке не потребуется. При необходимости его всё равно можно отправить ниже.",
  6787. logHealthSummary: "В журналах найдены известные проблемы",
  6788. logHealthIntro: "Последние записи журнала совпадают с известными проблемами. Посмотрите способы исправления ниже — возможно, отчёт об ошибке не потребуется. При необходимости его всё равно можно отправить.",
  6789. thankYou: "Спасибо!",
  6790. submitted: "Отчёт об ошибке отправлен.",
  6791. viewIssue: "Открыть задачу",
  6792. closeKeepsRecording: 'Вы можете закрыть эту панель, пока воспроизводите проблему: запись продолжается, и при повторном открытии вы вернётесь сюда.',
  6793. resumeRecording: 'Идёт запись отчёта об ошибке — {{elapsed}}. Нажмите, чтобы завершить.',
  6794. resumeReport: 'Продолжить отчёт',
  6795. unexpectedError: "Произошла непредвиденная ошибка",
  6796. },
  6797. failureDetection: {
  6798. title: "Обнаружение сбоев с помощью ИИ",
  6799. description: "Контролируйте печать через собственный сервер Obico ML API и автоматически реагируйте на обнаруженные сбои.",
  6800. mlUrl: "URL Obico ML API",
  6801. mlUrlHint: "Базовый URL собственного контейнера Obico ml_api, например http://192.168.1.10:3333.",
  6802. mlToken: "Токен ML API (необязательно)",
  6803. mlTokenPlaceholder: "Оставьте пустым, если сервер работает без ML_API_TOKEN",
  6804. mlTokenHint: "Должен совпадать с переменной окружения ML_API_TOKEN вашего контейнера Obico ml_api. Оставьте пустым, если контейнер работает без токена.",
  6805. test: "Проверить",
  6806. testSuccess: "ML API доступен и работает.",
  6807. testSuccessTokenUnknown: "ML API доступен и работает. Проверить токен не удалось.",
  6808. testFailed: "Не удалось подключиться к ML API.",
  6809. sensitivity: "Чувствительность",
  6810. sensitivityLow: "Низкая (меньше ложных срабатываний)",
  6811. sensitivityMedium: "Средняя (сбалансированная)",
  6812. sensitivityHigh: "Высокая (раннее обнаружение, больше ложных срабатываний)",
  6813. sensitivityHint: "Определяет пороги уверенности, при которых создаются предупреждения и фиксируются сбои.",
  6814. action: "Действие при обнаружении сбоя",
  6815. actionNotify: "Только уведомить",
  6816. actionPause: "Приостановить печать",
  6817. actionPauseOff: "Приостановить печать и отключить питание",
  6818. pollInterval: "Интервал проверки (секунды)",
  6819. pollIntervalHint: "Как часто проверять каждый принтер во время печати. Минимум 5 с, максимум 120 с.",
  6820. externalUrlMissing: "Внешний URL не задан.",
  6821. externalUrlHint: "ML API получает снимок камеры по URL. Укажите внешний URL в общих настройках, чтобы контейнер ML API мог обращаться к Bambuddy.",
  6822. perPrinterTitle: "Контролируемые принтеры",
  6823. perPrinterHint: "Выберите принтеры, за которыми будет следить служба обнаружения.",
  6824. monitorAll: "Контролировать все подключённые принтеры",
  6825. statusTitle: "Состояние",
  6826. serviceRunning: "Служба работает",
  6827. thresholds: "Низкий / высокий порог",
  6828. activePrinters: "Активные задания",
  6829. noActivePrints: "Сейчас ничего не печатается.",
  6830. historyTitle: "Последние обнаружения",
  6831. noHistory: "Обнаружений пока нет.",
  6832. },
  6833. makerworld: {
  6834. title: "MakerWorld",
  6835. description: "Вставьте URL модели MakerWorld, чтобы импортировать и напечатать её прямо из Bambuddy — без перехода в приложение Bambu Handy.",
  6836. pasteUrlHeader: "Импорт из MakerWorld",
  6837. pasteUrlPlaceholder: "https://makerworld.com/en/models/… или любая ссылка MakerWorld",
  6838. resolveButton: "Получить данные",
  6839. signInRequiredTitle: "Для загрузки требуется вход в Bambu Cloud",
  6840. signInRequiredBody: "Просматривать сведения о модели можно анонимно, но для загрузки файлов 3MF MakerWorld требует учётную запись Bambu Cloud.",
  6841. signInExpiredTitle: "Срок авторизации в Bambu Cloud истёк",
  6842. signInExpiredBody: "Вы по-прежнему авторизованы в Bambuddy, но Bambu Lab перестал принимать сохранённый токен, поэтому загрузки завершатся ошибкой. Выполните вход в Bambu Cloud снова.",
  6843. openCloudSettings: "Открыть настройки облака",
  6844. untitledModel: "Модель без названия",
  6845. byCreator: "Автор: {{name}}",
  6846. downloadsCount: "Загрузок: {{count}}",
  6847. licensePrefix: "Лицензия",
  6848. alreadyImported: "Уже в библиотеке",
  6849. openOnMakerworld: "Открыть на MakerWorld",
  6850. alreadyInLibrary: "Эта модель уже есть в библиотеке — найдите её в разделе «Файлы → MakerWorld».",
  6851. importSuccess: "Импортирован файл {{filename}} — сохранён в «Файлы → MakerWorld».",
  6852. platesHeader: "Пластины ({{count}})",
  6853. plateDefaultName: "Пластина {{n}}",
  6854. materialCount: "Филаментов: {{count}}",
  6855. amsRequired: "Требуется AMS",
  6856. slicedFor: "Нарезано для {{printer}}",
  6857. alsoCompatible: "Также отмечено как совместимое: {{printers}}",
  6858. importToLibrary: "Сохранить",
  6859. sliceIn: "Сохранить и нарезать в {{slicer}}",
  6860. disclaimer: "Интеграция с MakerWorld использует документированные сообществом конечные точки API. Bambuddy не связан с MakerWorld или Bambu Lab и не одобрен ими.",
  6861. lastImportSuccess: "Импортировано в библиотеку",
  6862. lastImportAlreadyInLibrary: "Уже в библиотеке",
  6863. viewInLibrary: "Открыть в файловом менеджере",
  6864. openInBambuStudio: "Открыть в Bambu Studio",
  6865. openInOrcaSlicer: "Открыть в OrcaSlicer",
  6866. importTo: "Импортировать в файловый менеджер",
  6867. recentImportsHeader: "Недавние импорты",
  6868. phaseResolving: "Получение данных",
  6869. phaseDownloading: "Загрузка",
  6870. folderAuto: "MakerWorld (по умолчанию)",
  6871. importAll: "Импортировать всё",
  6872. importAllProgress: "Импорт {{current}} из {{total}}",
  6873. openGallery: "Открыть галерею изображений",
  6874. galleryPrev: "Предыдущее изображение",
  6875. galleryNext: "Следующее изображение",
  6876. deleteImport: "Удалить из библиотеки",
  6877. importDeleting: "Удаление…",
  6878. importDeleted: "Удалено из библиотеки",
  6879. confirmDelete: "Удалить {{filename}} из библиотеки? Локальный файл будет удалён, но пластину можно снова импортировать из MakerWorld.",
  6880. errors: {
  6881. resolveFailed: "Не удалось обработать эту ссылку MakerWorld.",
  6882. downloadFailed: "Ошибка загрузки. Повторите попытку.",
  6883. deleteFailed: "Не удалось удалить файл из библиотеки.",
  6884. },
  6885. },
  6886. gcodeViewer: {
  6887. filamentSlot: 'Филамент {{n}}',
  6888. loading: 'Чтение траектории…',
  6889. loadFailed: 'Не удалось загрузить G-код этого файла.',
  6890. showTravel: 'Холостые перемещения',
  6891. topLayer: 'Верхний слой',
  6892. bottomLayer: 'Нижний слой',
  6893. noSource: 'Файл для предпросмотра не указан.',
  6894. view: {
  6895. filament: 'Филамент',
  6896. feature: 'Тип',
  6897. height: 'Высота',
  6898. width: 'Ширина',
  6899. },
  6900. feature: {
  6901. wall: 'Стенки',
  6902. sparseInfill: 'Разреженное заполнение',
  6903. solidInfill: 'Сплошное заполнение',
  6904. bridge: 'Мост / нависание',
  6905. support: 'Поддержка',
  6906. skirt: 'Юбка / кайма',
  6907. gapFill: 'Заполнение зазоров',
  6908. ironing: 'Разглаживание',
  6909. primeTower: 'Башня очистки',
  6910. },
  6911. back: "Назад",
  6912. backToArchives: "Вернуться в архив печати",
  6913. backToFiles: "Вернуться в файловый менеджер",
  6914. plates: "Пластины",
  6915. plateN: "Пластина {{n}}",
  6916. },
  6917. libraryTrash: {
  6918. title: "Корзина",
  6919. headerButton: "Корзина",
  6920. headerTooltip: "Просмотреть файлы, перемещённые в корзину",
  6921. backToFiles: "Вернуться к файлам",
  6922. subtitleAdmin: "Удалённые файлы хранятся здесь {{days}} дней, затем удаляются автоматически. Показаны файлы всех пользователей.",
  6923. subtitleUser: "Удалённые файлы хранятся здесь {{days}} дней, затем удаляются автоматически.",
  6924. loading: "Загрузка корзины…",
  6925. loadError: "Не удалось загрузить корзину.",
  6926. empty: "Корзина пуста.",
  6927. summary: "{{count}} файлов · {{size}}",
  6928. emptyTrash: "Очистить корзину",
  6929. restore: "Восстановить",
  6930. purgeNow: "Удалить сейчас",
  6931. autoPurgeIn: "Автоудаление через {{when}}",
  6932. days: "дней",
  6933. retentionLabel: "Автоудаление через",
  6934. selectAll: "Выбрать всё",
  6935. selectOne: "Выбрать {{filename}}",
  6936. selectionCount: "Выбрано: {{count}}",
  6937. bulkRestore: "Восстановить выбранные",
  6938. bulkPurge: "Удалить выбранные",
  6939. col: {
  6940. filename: "Файл",
  6941. folder: "Папка",
  6942. size: "Размер",
  6943. deleted: "Перемещён в корзину",
  6944. autoPurge: "Автоудаление",
  6945. owner: "Владелец",
  6946. actions: "Действия",
  6947. },
  6948. confirm: {
  6949. purgeTitle: "Удалить навсегда?",
  6950. purgeBody: "Файл {{filename}} будет удалён с диска без возможности восстановления.",
  6951. emptyTitle: "Очистить корзину?",
  6952. emptyBody: "Все файлы ({{count}}) будут удалены с диска. Отменить это действие нельзя.",
  6953. bulkPurgeTitle: "Удалить выбранные файлы навсегда?",
  6954. bulkPurgeBody: "Выбранные файлы ({{count}}) будут удалены с диска без возможности восстановления.",
  6955. cta: "Удалить навсегда",
  6956. },
  6957. toast: {
  6958. restored: "Файл восстановлен.",
  6959. restoreFailed: "Не удалось восстановить файл.",
  6960. purged: "Файл удалён навсегда.",
  6961. purgeFailed: "Не удалось удалить файл.",
  6962. emptied: "Из корзины удалено файлов: {{count}}.",
  6963. emptyFailed: "Не удалось очистить корзину.",
  6964. retentionSaved: "Срок автоудаления: {{days}} дней.",
  6965. retentionFailed: "Не удалось сохранить срок хранения.",
  6966. bulkRestored: "Восстановлено файлов: {{count}}.",
  6967. bulkPurged: "Удалено файлов: {{count}}.",
  6968. },
  6969. },
  6970. libraryPurge: {
  6971. title: "Очистить старые файлы",
  6972. headerButton: "Очистить старые",
  6973. headerTooltip: "Массово переместить старые файлы в корзину",
  6974. description: "За один проход убирает старые файлы из библиотеки. Для печатавшихся файлов возраст считается от даты последней печати, для ни разу не печатавшихся — от даты загрузки.",
  6975. ageLabel: "Переместить файлы старше",
  6976. days: "дней",
  6977. includeNeverPrinted: "Включить файлы, которые ни разу не печатались",
  6978. effectsTitle: "Что произойдёт после нажатия «Очистить»",
  6979. effect1: "Подходящие файлы будут перемещены в корзину, но пока не удалены с диска.",
  6980. effect2: "Их можно восстановить из корзины до окончания срока хранения.",
  6981. effect3: "После окончания срока хранения очистка корзины окончательно удалит их с диска.",
  6982. effect4: "Файлы во внешних подключённых папках пропускаются: Bambuddy не удаляет чужие данные.",
  6983. previewLoading: "Подсчёт подходящих файлов…",
  6984. previewFailed: "Не удалось выполнить предварительный расчёт.",
  6985. previewSummary: "В корзину будет перемещено: {{count}} файлов · {{size}}",
  6986. andMore: "…и ещё {{count}}",
  6987. warning: "Файлы в корзине продолжают занимать место до окончания срока хранения. Чтобы освободить диск сразу, после операции очистите корзину.",
  6988. confirmCta: "Переместить в корзину: {{count}}",
  6989. purging: "Перемещение в корзину…",
  6990. toast: {
  6991. success: "Перемещено в корзину файлов: {{count}}.",
  6992. failed: "Не удалось очистить файлы.",
  6993. },
  6994. },
  6995. libraryAutoPurge: {
  6996. enableLabel: "Автоматически очищать старые файлы",
  6997. enableDescription: "Раз в сутки запускает административную очистку. Сначала файлы попадают в корзину и не удаляются немедленно.",
  6998. ageLabel: "Автоматически очищать файлы старше",
  6999. ageDescription: "Минимум 7 дней, максимум 10 лет. Используется тот же способ расчёта возраста, что и при ручной очистке.",
  7000. days: "дней",
  7001. includeNeverPrinted: "Включить файлы, которые ни разу не печатались",
  7002. saveFailed: "Не удалось сохранить настройки автоочистки.",
  7003. },
  7004. archivePurge: {
  7005. headerButton: "Очистить старые",
  7006. headerTooltip: "Массово удалить старые записи архива",
  7007. title: "Очистить старые записи архива",
  7008. description: "Удаляет старую историю печати. Возраст записи считается от последнего завершения печати; повторная печать обновляет дату, поэтому используемые записи не удаляются.",
  7009. ageLabel: "Удалить записи, которые не печатались последние",
  7010. days: "дней",
  7011. effectsTitle: "Что произойдёт после нажатия «Очистить»",
  7012. effect1: "Каждая подходящая запись будет скрыта из списков, а связанные файлы удалены с диска: 3MF, миниатюра, таймлапс, исходный 3MF, проект F3D и фотографии.",
  7013. effect2: "Строка архива останется в базе, поэтому быстрая статистика сохранит вклад по филаменту, времени, стоимости и энергии — как при обычном удалении отдельной записи.",
  7014. effect3: "Установите флажок «Также удалить из статистики», чтобы исключить вклад из быстрой статистики. Это действие необратимо.",
  7015. effect4: "Повторная печать обновляет дату записи, поэтому используемые архивы не удаляются.",
  7016. purgeStatsLabel: "Также удалить из статистики",
  7017. purgeStatsHint: "Исключает соответствующие записи из быстрой статистики по филаменту, времени, стоимости и энергии. Без этого удаляются только файлы, а статистика сохраняется.",
  7018. previewLoading: "Подсчёт подходящих записей…",
  7019. previewFailed: "Не удалось выполнить предварительный расчёт.",
  7020. previewSummary: "Будет удалено: {{count}} записей · {{size}}",
  7021. andMore: "…и ещё {{count}}",
  7022. warning: "Файлы будут удалены с диска без возможности восстановления. Перед продолжением скачайте или добавьте в избранное всё, что нужно сохранить.",
  7023. confirmCta: "Удалить записей: {{count}}",
  7024. purging: "Удаление…",
  7025. toast: {
  7026. success: "Удалено записей архива: {{count}}.",
  7027. failed: "Не удалось очистить архив.",
  7028. },
  7029. },
  7030. archiveAutoPurge: {
  7031. enableLabel: "Автоматически очищать старые записи архива",
  7032. enableDescription: "Раз в сутки скрывает записи из списков и удаляет их файлы с диска, если они не печатались в течение заданного срока. Повторная печать сбрасывает отсчёт.",
  7033. ageLabel: "Автоматически удалять записи, которые не печатались последние",
  7034. ageDescription: "Минимум 7 дней, максимум 10 лет. Срок считается от последнего завершения печати; повторная печать обновляет дату. Удаляются 3MF, миниатюра, таймлапс, исходный 3MF, F3D и фотографии.",
  7035. days: "дней",
  7036. purgeStatsLabel: "Также удалить из статистики",
  7037. purgeStatsDescription: "Если включено, ежедневная очистка исключает удалённые записи из быстрой статистики по филаменту, времени, стоимости и энергии. По умолчанию выключено: статистика сохраняется, удаляются только файлы.",
  7038. runNow: "Очистить архив сейчас",
  7039. saveFailed: "Не удалось сохранить настройки автоочистки.",
  7040. },
  7041. cameraTokens: {
  7042. scope: {
  7043. camera_stream: "Поток камеры",
  7044. camwall: "Стена камер",
  7045. overlay: "Оверлей для стрима",
  7046. },
  7047. title: "Токены API камеры",
  7048. navTitle: "Токены API камеры",
  7049. description: "Долгоживущие токены для встраивания видеопотока в Home Assistant, Frigate, киоски и другие системы, которым нужен постоянный URL. Каждый токен даёт доступ только к потоку камеры и может быть отозван в любой момент.",
  7050. loading: "Загрузка...",
  7051. confirmRevoke: {
  7052. title: "Отозвать этот токен?",
  7053. body: "Все устройства, использующие «{{name}}», немедленно потеряют доступ. Отменить это действие нельзя.",
  7054. cancel: "Отмена",
  7055. confirm: "Отозвать",
  7056. },
  7057. create: {
  7058. scopeLabel: "Область действия",
  7059. hintCameraStream: "Токен потока камеры позволяет получать только видеопотоки и снимки. Используйте его для Home Assistant, Frigate и других систем, встраивающих изображение с одной камеры.",
  7060. hintCamWall: "Токен стены камер открывает страницу /camwall на экране без авторизации. Он позволяет видеть названия и состояния всех принтеров, а также видеопотоки с их камер. Имена файлов, адреса и коды доступа недоступны.",
  7061. hintOverlay: "Токен оверлея для стрима открывает страницу /overlay/{printerId} на экране без авторизации — для OBS или любой прямой трансляции. Он даёт доступ к видеопотоку одного принтера и его текущему статусу печати, включая имя файла, отображаемое на экране. Адреса и коды доступа недоступны.",
  7062. title: "Создать токен",
  7063. nameLabel: "Название токена",
  7064. namePlaceholder: "Например, Home Assistant",
  7065. daysLabel: "Срок действия, дней",
  7066. submit: "Создать",
  7067. hint: "Максимальный срок действия — 365 дней. Значение токена показывается только один раз при создании — скопируйте его сейчас.",
  7068. },
  7069. created: {
  7070. camWallUrlTitle: "URL стены камер для этого экрана",
  7071. camWallUrlHint: "Откройте этот адрес на экране. Любой, кто получит URL, сможет наблюдать за стеной камер, поэтому обращайтесь с ним как с ключом. Отзовите токен, чтобы отключить экран.",
  7072. overlayUrlTitle: "URL оверлея для OBS",
  7073. overlayUrlHint: "Добавьте этот адрес как источник браузера (Browser Source) в OBS. Замените число в /overlay/1 на номер вашего принтера (его можно узнать из URL на странице «Принтеры»). Любой, кто получит URL, сможет смотреть трансляцию, поэтому обращайтесь с ним как с ключом — отзовите токен, чтобы прекратить доступ.",
  7074. title: "Токен создан — скопируйте его сейчас",
  7075. warning: "Это единственный раз, когда токен отображается. После закрытия окна посмотреть его снова будет невозможно.",
  7076. copy: "Копировать",
  7077. dismiss: "Я сохранил токен",
  7078. },
  7079. list: {
  7080. scope: "Область действия",
  7081. myTitle: "Мои токены",
  7082. allTitle: "Все пользователи (режим администратора)",
  7083. empty: "Токенов пока нет.",
  7084. name: "Название",
  7085. owner: "Владелец",
  7086. prefix: "Префикс",
  7087. created: "Создан",
  7088. expires: "Истекает",
  7089. lastUsed: "Последнее использование",
  7090. revoke: "Отозвать",
  7091. expired: "Истёк",
  7092. },
  7093. toast: {
  7094. created: "Токен создан",
  7095. createFailed: "Не удалось создать токен",
  7096. revoked: "Токен отозван",
  7097. revokeFailed: "Не удалось отозвать токен",
  7098. loadFailed: "Не удалось загрузить токены",
  7099. copied: "Скопировано в буфер обмена",
  7100. copyFailed: "Не удалось скопировать — выделите и скопируйте вручную",
  7101. },
  7102. },
  7103. forecast: {
  7104. title: "Прогноз",
  7105. noSpools: "Активные катушки не найдены. Добавьте катушки в учёт, чтобы увидеть прогноз.",
  7106. noUsageData: "Нет данных о расходе — невозможно спрогнозировать остатки.",
  7107. sku: "Артикул",
  7108. material: "Материал",
  7109. stock: "Запас",
  7110. dailyRate: "Расход",
  7111. daysLeft: "Осталось дней",
  7112. emptyBy: "Закончится к",
  7113. reorderBy: "Заказать до",
  7114. actions: "Действия",
  7115. trend: "Тренд",
  7116. estimated: "Оценка",
  7117. noData: "Нет данных",
  7118. timeframe: "Период",
  7119. chartTitle: "Прогноз запаса — 5 основных материалов",
  7120. dashedLinesROP: "Пунктирные линии — точки заказа",
  7121. stockLevel: "Уровень запаса",
  7122. reorderPoint: "Точка заказа",
  7123. safetyMargin: "Страховой запас",
  7124. trendLegend: "Тренд (по истории, уровень обслуживания 95%)",
  7125. estimatedLegend: "Оценка (по изменению массы)",
  7126. noDataLegend: "Нет данных",
  7127. ropLabel: "ТЗ",
  7128. ssLabel: "СЗ",
  7129. safetyStockLegend: "Страховой запас",
  7130. stockArrivalLegend: "Поступление",
  7131. stockoutLegend: "Исчерпание запаса",
  7132. alertCount_one: "{{count}} предупреждение",
  7133. alertCount_other: "{{count}} предупреждений",
  7134. order: "Заказать",
  7135. save: "Сохранить",
  7136. cancel: "Отмена",
  7137. settingsSaved: "Настройки сохранены",
  7138. failedSaveSettings: "Не удалось сохранить настройки",
  7139. globalLeadTimeSaved: "Общий срок поставки сохранён",
  7140. globalLeadTime: "Общий срок поставки",
  7141. globalLeadTimeHint: "Минимальный общий срок поставки, используемый при расчёте точки заказа для всех артикулов",
  7142. skuLeadTimeOverride: "Переопределение срока поставки",
  7143. skuLeadTimeHint: "0 — использовать общий срок поставки. Значение больше 0 переопределяет его для этого артикула.",
  7144. safetyMarginLabel: "Страховой запас",
  7145. effectiveLeadTime: "Фактический срок поставки",
  7146. effectiveLeadTimeHint: "макс. (общий {{global}} дн., для артикула {{sku}} дн.)",
  7147. reorderPointHint: "средний расход × срок поставки + страховой запас — заказывайте, когда остаток достигнет этого уровня",
  7148. safetyMarginHint: "Статистический страховой запас (z=1,65 × σ × √LT) плюс заданный пользователем резерв",
  7149. safetyMarginHintDays: "Резерв поверх статистического страхового запаса.{{approx}}",
  7150. safetyMarginHintDaysApprox: " ≈ {{g}} г при текущем расходе.",
  7151. safetyMarginHintG: "Фиксированный весовой резерв поверх статистического страхового запаса.{{approx}}",
  7152. safetyMarginHintGApprox: " ≈ {{days}} дн. при текущем расходе.",
  7153. individualSpools: "Отдельные катушки",
  7154. labelWeight: "Метка",
  7155. spoolCount_one: "{{count}} катушка",
  7156. spoolCount_other: "{{count}} катушек",
  7157. stockBreakRisk: "Риск исчерпания запаса",
  7158. stockBreakDetail: "Осталось {{days}} дн., срок поставки {{lt}} дн.",
  7159. stockBreakBefore: "Запас закончится до пополнения",
  7160. reorderNow: "Заказать сейчас",
  7161. reorderTriggerPassed: "Дата заказа {{date}} уже прошла.",
  7162. shoppingList: "Список покупок",
  7163. shoppingListItems_one: "({{count}} позиция)",
  7164. shoppingListItems_other: "({{count}} позиций)",
  7165. shoppingListEmpty: "Список покупок пуст. Нажмите значок корзины в нужной строке, чтобы добавить позицию.",
  7166. addToCart: "Добавить в список покупок",
  7167. alertsSnoozed: "Отключить предупреждения для артикула",
  7168. alertsEnabled: "Включить предупреждения для артикула",
  7169. addedToCart: "Добавлено в список покупок",
  7170. failedAddItem: "Не удалось добавить позицию",
  7171. listView: "Список",
  7172. logisticsView: "Логистика",
  7173. qty: "Кол-во",
  7174. weight: "Масса",
  7175. leadTime: "Срок поставки",
  7176. expectedRestock: "Ожидаемое пополнение",
  7177. status: "Состояние",
  7178. note: "Примечание",
  7179. pending: "Ожидается",
  7180. purchased: "Куплено",
  7181. received: "Получено",
  7182. markPurchased: "Отметить как купленное",
  7183. markReceived: "Отметить как полученное — катушки будут добавлены в запас",
  7184. resetToPending: "Вернуть в ожидание",
  7185. remove: "Удалить",
  7186. clearAll: "Очистить всё",
  7187. downloadCsv: "CSV",
  7188. addToCartTitle: "Добавить в список покупок",
  7189. byQuantity: "По количеству",
  7190. byDuration: "По сроку",
  7191. numberOfSpools: "Количество катушек",
  7192. lastHowManyDays: "На сколько дней должно хватить?",
  7193. noUsageQty: "Нет данных о расходе — количество установлено равным 1.",
  7194. noteOptional: "Примечание (необязательно)",
  7195. notePlaceholder: "например, для проекта X, срочно…",
  7196. addNSpools_one: "Добавить {{count}} катушку",
  7197. addNSpools_other: "Добавить {{count}} катушек",
  7198. onArrival: "После поступления",
  7199. stockBreakIn: "Запас закончится через {{days}} дн.",
  7200. stockRunsOutBefore: "Запас закончится раньше, чем истекут {{lt}} дн. срока поставки.",
  7201. atRate: "При расходе {{rate}} г/день требуется",
  7202. moreSpools_one: "ещё {{count}} катушка",
  7203. moreSpools_other: "ещё {{count}} катушек",
  7204. bridgeGap: "чтобы перекрыть дефицит.",
  7205. noReadAccess: "У вас нет прав на просмотр прогноза запасов.",
  7206. noWriteAccess: "У вас нет прав на изменение настроек прогноза.",
  7207. },
  7208. };