zh-CN.ts 238 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992
  1. export default {
  2. // Navigation
  3. nav: {
  4. printers: '打印机',
  5. archives: '归档',
  6. queue: '打印队列',
  7. stats: '统计',
  8. profiles: '配置文件',
  9. maintenance: '维护',
  10. projects: '项目',
  11. inventory: '耗材',
  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. smartSwitches: '智能开关',
  28. logout: '退出登录',
  29. installApp: '安装应用',
  30. installAppSuccess: 'Bambuddy 已安装',
  31. },
  32. // Common
  33. common: {
  34. save: '保存',
  35. saving: '保存中...',
  36. cancel: '取消',
  37. delete: '删除',
  38. edit: '编辑',
  39. add: '添加',
  40. close: '关闭',
  41. confirm: '确认',
  42. loading: '加载中...',
  43. error: '错误',
  44. errorLoading: '加载错误',
  45. retry: '重试',
  46. success: '成功',
  47. warning: '警告',
  48. enabled: '已启用',
  49. disabled: '已禁用',
  50. yes: '是',
  51. no: '否',
  52. on: '开',
  53. off: '关',
  54. all: '全部',
  55. none: '无',
  56. search: '搜索',
  57. filter: '筛选',
  58. sort: '排序',
  59. refresh: '刷新',
  60. download: '下载',
  61. upload: '上传',
  62. uploading: '上传中...',
  63. uploadFailed: '上传失败',
  64. actions: '操作',
  65. status: '状态',
  66. name: '名称',
  67. description: '描述',
  68. date: '日期',
  69. time: '时间',
  70. hours: '小时',
  71. minutes: '分钟',
  72. seconds: '秒',
  73. days: '天',
  74. enable: '启用',
  75. disable: '禁用',
  76. permissions: '权限',
  77. noPrinters: '未配置打印机',
  78. noData: '暂无数据',
  79. linkNotFound: '未找到链接',
  80. required: '必填',
  81. optional: '可选',
  82. dismiss: '关闭',
  83. apply: '应用',
  84. reset: '重置',
  85. export: '导出',
  86. import: '导入',
  87. clear: '清除',
  88. selectAll: '全选',
  89. deselectAll: '取消全选',
  90. noChange: '— 不更改 —',
  91. unchanged: '未更改',
  92. unassigned: '未分配',
  93. unknown: '未知',
  94. unknownError: '未知错误',
  95. today: '今天',
  96. tomorrow: '明天',
  97. asap: '尽快',
  98. overdue: '已逾期',
  99. now: '现在',
  100. collapse: '收起',
  101. expand: '展开',
  102. viewArchive: '查看归档',
  103. viewInFileManager: '在文件管理器中查看',
  104. addedBy: '由 {{username}} 添加',
  105. prints: '次打印',
  106. more: '还有 {{count}} 个',
  107. ascending: '升序',
  108. descending: '降序',
  109. back: '返回',
  110. copy: '复制',
  111. copied: '已复制!',
  112. printer: '打印机',
  113. remove: '移除',
  114. type: '类型',
  115. print: '打印',
  116. rename: '重命名',
  117. move: '移动',
  118. create: '创建',
  119. duplicate: '复制',
  120. left: '左',
  121. right: '右',
  122. },
  123. // Printers page
  124. printers: {
  125. title: '打印机',
  126. addPrinter: '添加打印机',
  127. editPrinter: '编辑打印机',
  128. deletePrinter: '删除打印机',
  129. printerName: '打印机名称',
  130. serialNumber: '序列号',
  131. ipAddress: 'IP 地址 / 主机名',
  132. accessCode: '访问码',
  133. model: '型号',
  134. nozzleCount: '喷嘴数量',
  135. autoArchive: '自动归档',
  136. status: {
  137. available: '可用',
  138. idle: '空闲',
  139. printing: '打印中',
  140. paused: '已暂停',
  141. offline: '离线',
  142. problem: '故障',
  143. error: '错误',
  144. finished: '已完成',
  145. unknown: '未知',
  146. },
  147. temperatures: {
  148. nozzle: '喷嘴',
  149. bed: '热床',
  150. chamber: '腔室',
  151. },
  152. progress: '{{percent}}% 完成',
  153. timeRemaining: '剩余 {{time}}',
  154. deleteConfirm: '确定要删除"{{name}}"吗?',
  155. maintenanceOk: '维护正常',
  156. maintenanceWarning: '{{count}} 个警告',
  157. maintenanceWarning_plural: '{{count}} 个警告',
  158. maintenanceDue: '{{count}} 个到期',
  159. maintenanceDue_plural: '{{count}} 个到期',
  160. // Sort options
  161. sort: {
  162. name: '名称',
  163. status: '状态',
  164. model: '型号',
  165. location: '位置',
  166. ascending: '升序排列',
  167. descending: '降序排列',
  168. },
  169. // Card size
  170. cardSize: {
  171. small: '小卡片',
  172. medium: '中卡片',
  173. large: '大卡片',
  174. extraLarge: '超大卡片',
  175. },
  176. // Controls
  177. hideOffline: '隐藏离线',
  178. nextAvailable: '下一个可用',
  179. powerOn: '开机',
  180. offlinePrintersWithPlugs: '带智能插座的离线打印机',
  181. noPrintersConfigured: '尚未配置打印机',
  182. search: '搜索打印机...',
  183. noSearchResults: '没有打印机符合您的搜索或筛选条件',
  184. filter: {
  185. allStatuses: '所有状态',
  186. allLocations: '所有位置',
  187. },
  188. toolbar: {
  189. filters: '筛选',
  190. view: '视图',
  191. actions: '操作',
  192. },
  193. // Printer card
  194. readyToPrint: '准备打印',
  195. external: '外部',
  196. extL: '外置左',
  197. extR: '外置右',
  198. deleteArchives: '删除打印归档',
  199. noLabel: '无标签',
  200. printPreview: '打印预览',
  201. width: '宽度',
  202. height: '高度',
  203. noObjectsFound: '未找到对象',
  204. objectsLoadedOnPrintStart: '对象在打印开始时加载',
  205. willBeSkipped: '将被跳过',
  206. name: '名称',
  207. serialCannotBeChanged: '序列号无法更改',
  208. locationHelp: '用于分组打印机和筛选队列任务',
  209. // WiFi signal strength
  210. wifiSignal: {
  211. veryWeak: '非常弱',
  212. weak: '弱',
  213. fair: '一般',
  214. good: '良好',
  215. excellent: '优秀',
  216. },
  217. // Maintenance
  218. maintenanceUpToDate: '所有维护均已完成 - 点击查看',
  219. // Chamber light
  220. chamberLightOn: '打开腔室灯',
  221. chamberLightOff: '关闭腔室灯',
  222. // Files
  223. files: '文件',
  224. browseFiles: '浏览打印机文件',
  225. // Smart plug
  226. autoOffAfterPrint: '打印后自动关机',
  227. autoOffExecuted: '已执行自动关机 - 开启打印机以重置',
  228. // HMS errors
  229. hmsErrors: 'HMS 错误',
  230. viewHmsErrors: '查看 {{count}} 个 HMS 错误',
  231. // Actions
  232. resume: '继续',
  233. pause: '暂停',
  234. stop: '停止',
  235. camera: '摄像头',
  236. skipObject: '跳过对象',
  237. reconnect: '重新连接',
  238. forceRefresh: '强制刷新',
  239. forceRefreshSuccess: '已请求刷新',
  240. mqttDebug: 'MQTT 调试',
  241. printerInformation: '打印机信息',
  242. copyToClipboard: '复制',
  243. copied: '已复制!',
  244. state: '状态',
  245. wifiSignalLabel: 'WiFi 信号',
  246. developerMode: '开发者模式',
  247. enabled: '已启用',
  248. disabled: '已禁用',
  249. addedOn: '添加日期',
  250. sdCard: 'SD 卡',
  251. inserted: '已插入',
  252. notInserted: '未插入',
  253. totalPrintHours: '打印时长',
  254. activeNozzle: '当前:{{nozzle}} 喷嘴',
  255. nozzleRack: '喷嘴架',
  256. nozzleDocked: '已停靠',
  257. nozzleMounted: '已安装',
  258. nozzleActive: '使用中',
  259. nozzleIdle: '空闲',
  260. nozzleDiameter: '直径',
  261. nozzleType: '类型',
  262. nozzleStatus: '状态',
  263. nozzleFilament: '耗材',
  264. nozzleWear: '磨损',
  265. nozzleMaxTemp: '最高温度',
  266. nozzleSerial: '序列号',
  267. nozzleHardenedSteel: '硬化钢',
  268. nozzleStainlessSteel: '不锈钢',
  269. nozzleTungstenCarbide: '碳化钨',
  270. nozzleFlow: '流量',
  271. nozzleHighFlow: '高流量',
  272. nozzleStandardFlow: '标准',
  273. // Firmware
  274. firmwareUpdate: '固件更新',
  275. firmwareInstructions: '在打印机触摸屏上,前往',
  276. firmwareNav: '导航到',
  277. settings: '设置',
  278. firmware: '固件',
  279. // Discovery
  280. discoverPrinters: '发现打印机',
  281. searching: '搜索中...',
  282. manualEntry: '手动输入',
  283. addFromCloud: '从云端添加',
  284. // Toast messages
  285. toast: {
  286. printerDeleted: '打印机已删除',
  287. missingSpoolAssignment: '已在{{printer}}上开始打印。以下料槽未分配耗材: {{slots}}',
  288. printerAdded: '打印机已添加',
  289. printerUpdated: '打印机已更新',
  290. failedToDelete: '删除打印机失败',
  291. failedToAdd: '添加打印机失败',
  292. connectionFailedNotAdded: '无法连接到打印机。请检查 IP 地址、序列号和访问码,并确认已启用仅局域网(LAN-only)模式。该打印机未被添加。',
  293. failedToUpdate: '更新打印机失败',
  294. commandSent: '命令已发送',
  295. failedToSendCommand: '发送命令失败',
  296. turnedOn: '{{name}} 已开启',
  297. failedToPowerOn: '开启 {{name}} 失败',
  298. scriptTriggered: '脚本已触发',
  299. printStopped: '打印已停止',
  300. printPaused: '打印已暂停',
  301. printResumed: '打印已继续',
  302. referenceDeleted: '参考已删除',
  303. detectionAreaSaved: '检测区域已保存',
  304. failedToRunScript: '运行脚本失败',
  305. failedToStopPrint: '停止打印失败',
  306. failedToPausePrint: '暂停打印失败',
  307. failedToResumePrint: '继续打印失败',
  308. failedToControlChamberLight: '控制腔室灯失败',
  309. failedToSetSpeed: '设置打印速度失败',
  310. failedToUpdateSetting: '更新设置失败',
  311. failedToSkipObjects: '跳过对象失败',
  312. failedToRereadRfid: '重新读取 RFID 失败',
  313. failedToCheckPlate: '检查打印板失败',
  314. failedToUpdateLabel: '更新标签失败',
  315. failedToDeleteReference: '删除参考失败',
  316. failedToSaveDetectionArea: '保存检测区域失败',
  317. plateCheckEnabled: '打印板检查已启用',
  318. plateCheckDisabled: '打印板检查已禁用',
  319. calibrationSaved: '校准已保存!',
  320. calibrationFailed: '校准失败',
  321. rfidRereadInitiated: '已发起 RFID 重新读取',
  322. loadInitiated: '加载耗材中…',
  323. unloadInitiated: '卸载耗材中…',
  324. failedToLoad: '加载耗材失败',
  325. failedToUnload: '卸载耗材失败',
  326. },
  327. // Connection status
  328. connection: {
  329. connected: '已连接',
  330. offline: '离线',
  331. },
  332. plateStatus: {
  333. markCleared: '将打印板标记为已清理',
  334. cleared: '打印板已清理',
  335. notCleared: '打印板未清理',
  336. inUse: '打印板使用中',
  337. },
  338. // Queue info
  339. queue: {
  340. inQueue: '队列中有 {{count}} 个打印任务',
  341. inQueue_plural: '队列中有 {{count}} 个打印任务',
  342. },
  343. // Controls section
  344. controls: '控制',
  345. // RFID
  346. rfid: {
  347. reread: '重新读取 RFID',
  348. },
  349. // AMS load/unload (#891)
  350. ams: {
  351. load: '加载',
  352. unload: '卸载',
  353. },
  354. bedJog: {
  355. title: '移动热床',
  356. bed: '热床',
  357. step: '步长 (mm)',
  358. up: '热床上移',
  359. down: '热床下移',
  360. disabledWhilePrinting: '打印中已禁用',
  361. notHomedTitle: '打印机未归零',
  362. notHomedMessage: '打印机自上次打印以来尚未归零。请先执行自动归零以确保安全定位(先停放喷头,然后归零 X、Y 和 Z),或者直接移动 — 软限位将被绕过。',
  363. homeZ: '自动归零',
  364. moveAnyway: '强制移动',
  365. homingStarted: '打印机自动归零中…',
  366. },
  367. // Permissions
  368. permission: {
  369. noAdd: '您没有添加打印机的权限',
  370. noEdit: '您没有编辑打印机的权限',
  371. noDelete: '您没有删除打印机的权限',
  372. noControl: '您没有控制打印机的权限',
  373. noFiles: '您没有访问打印机文件的权限',
  374. noAmsRfid: '您没有重新读取 AMS RFID 的权限',
  375. noSmartPlugControl: '您没有控制智能插座的权限',
  376. noCamera: '您没有查看摄像头的权限',
  377. },
  378. // Add/Edit modal
  379. modal: {
  380. addTitle: '添加打印机',
  381. editTitle: '编辑打印机',
  382. myPrinter: '我的打印机',
  383. selectModel: '选择型号...',
  384. locationGroup: '位置 / 分组(可选)',
  385. locationPlaceholder: '例如:工作室、办公室、地下室',
  386. autoArchiveLabel: '自动归档已完成的打印',
  387. fromPrinterSettings: '来自打印机设置',
  388. modelOptional: '型号(可选)',
  389. saveChanges: '保存更改',
  390. },
  391. // Skip objects
  392. skipObjects: {
  393. tooltip: '跳过对象',
  394. onlyWhilePrinting: '跳过对象(仅在打印时)',
  395. requiresMultiple: '跳过对象(需要2个以上对象)',
  396. title: '跳过对象',
  397. matchIdsInfo: '将 ID 与打印机显示屏上的 ID 进行对照',
  398. printerShowsIds: '打印机屏幕上显示构建板上对象的 ID',
  399. skipSelected: '跳过所选',
  400. skipping: '跳过中...',
  401. noObjectsSelected: '未选择对象',
  402. selectObjectsToSkip: '选择要从当前打印中跳过的对象',
  403. skipped: '已跳过',
  404. objectsSkipped: '对象已跳过',
  405. activeCount: '{{count}} 个活跃',
  406. waitForLayer: '等待第2层以上才能跳过对象(当前第 {{layer}} 层)',
  407. skip: '跳过',
  408. confirmTitle: '跳过对象?',
  409. confirmMessage: '确定要跳过"{{name}}"吗?此操作无法撤销。',
  410. },
  411. // Confirm modals
  412. confirm: {
  413. deleteTitle: '删除打印机',
  414. deleteMessage: '确定要删除"{{name}}"吗?这将移除所有连接设置。',
  415. deleteArchivesNote: '此打印机的所有打印历史将被永久删除。',
  416. keepArchivesNote: '打印历史将保留,但不再与此打印机关联。',
  417. stopTitle: '停止打印',
  418. stopMessage: '确定要停止"{{name}}"上的当前打印吗?这将取消打印任务。',
  419. stopButton: '停止打印',
  420. pauseTitle: '暂停打印',
  421. pauseMessage: '确定要暂停"{{name}}"上的当前打印吗?',
  422. pauseButton: '暂停打印',
  423. resumeTitle: '继续打印',
  424. resumeMessage: '确定要继续"{{name}}"上的打印吗?',
  425. resumeButton: '继续打印',
  426. powerOnTitle: '开启打印机',
  427. powerOnMessage: '确定要打开"{{name}}"的电源吗?',
  428. powerOnButton: '开机',
  429. powerOffTitle: '关闭打印机',
  430. powerOffMessage: '确定要关闭"{{name}}"的电源吗?',
  431. powerOffWarning: '警告:"{{name}}"正在打印中!确定要关闭电源吗?这将中断打印并可能损坏打印机。',
  432. powerOffButton: '关机',
  433. haToggleTitle: '切换"{{name}}"',
  434. haToggleMessage: '切换 Home Assistant 实体 {{entity}}?如果当前为开启状态,可能会关闭电源。',
  435. haToggleWarning: '警告:"{{name}}"正在打印中!切换 {{entity}} 可能会切断电源并中断打印。是否继续?',
  436. haToggleButton: '切换',
  437. },
  438. // Bulk actions
  439. bulk: {
  440. select: '选择',
  441. selectAll: '全选',
  442. selectByLocation: '按位置选择',
  443. selected: '已选择{{count}}台',
  444. actions: {
  445. stop: '停止',
  446. pause: '暂停',
  447. resume: '继续',
  448. clearPlate: '清除打印床',
  449. clearHMS: '清除通知',
  450. },
  451. confirm: {
  452. stopTitle: '停止{{count}}个打印任务',
  453. stopMessage: '这将取消{{count}}台打印机上的活动打印任务。此操作无法撤销。',
  454. stopButton: '全部停止',
  455. pauseTitle: '暂停{{count}}个打印任务',
  456. pauseMessage: '这将暂停{{count}}台打印机上的活动打印任务。',
  457. pauseButton: '全部暂停',
  458. clearPlateTitle: '清除{{count}}个打印床',
  459. clearPlateMessage: '这将清除{{count}}台打印机的打印床,可能会触发队列中的任务。',
  460. clearPlateButton: '全部清除',
  461. },
  462. success: '{{action}}已在{{count}}台打印机上完成',
  463. partial: '{{succeeded}}成功,{{failed}}失败',
  464. noneApplicable: '没有选中的打印机处于适合此操作的状态',
  465. selectByState: '按状态选择',
  466. },
  467. // Discovery
  468. discovery: {
  469. title: '发现打印机',
  470. searching: '搜索中...',
  471. scanning: '扫描中...',
  472. scanProgress: '扫描中... {{scanned}}/{{total}}',
  473. foundPrinters: '发现 {{count}} 台打印机',
  474. noPrintersFound: '未找到打印机',
  475. noPrintersFoundSubnet: '在指定子网中未找到打印机。',
  476. noPrintersFoundNetwork: '在网络上未找到打印机。',
  477. allConfigured: '所有发现的打印机已配置完毕。',
  478. alreadyAdded: '已添加',
  479. select: '选择',
  480. manualEntry: '手动输入',
  481. addFromCloud: '从云端添加',
  482. subnetToScan: '要扫描的子网',
  483. dockerNote: '检测到 Docker 环境。请以 CIDR 格式输入打印机所在子网。需要在 docker-compose.yml 中设置 network_mode: host。',
  484. scanSubnet: '扫描子网查找打印机',
  485. discoverNetwork: '在网络上发现打印机',
  486. scanningSubnet: '正在扫描子网查找拓竹打印机...',
  487. scanningNetwork: '正在扫描网络...',
  488. serialRequired: '需要序列号',
  489. unknown: '未知',
  490. failedToStart: '启动发现失败',
  491. },
  492. // AMS Drying
  493. drying: {
  494. start: '开始干燥',
  495. stop: '停止干燥',
  496. temperature: '温度',
  497. duration: '时长',
  498. hours: '小时',
  499. timeRemaining: '剩余 {{time}}',
  500. active: '干燥中',
  501. notSupported: '不支持干燥',
  502. powerRequired: '连接AMS电源适配器以启用干燥',
  503. startingDrying: '正在启动干燥...',
  504. stoppingDrying: '正在停止干燥...',
  505. rotateTray: '干燥时旋转料盘',
  506. },
  507. // Filaments section
  508. filaments: '耗材',
  509. // Camera
  510. openCameraOverlay: '打开摄像头叠加层',
  511. openCameraWindow: '在新窗口中打开摄像头',
  512. // Firmware
  513. firmwareUpdateAvailable: '固件更新可用:{{current}} → {{latest}}',
  514. firmwareUpToDate: '固件 {{version}} — 已是最新',
  515. firmwareUpdateButton: '更新',
  516. // Plate detection
  517. plateDetection: {
  518. noPermission: '您没有更新打印机的权限',
  519. enabledClick: '打印板检查已启用 - 点击禁用',
  520. disabledClick: '打印板检查已禁用 - 点击启用',
  521. manageCalibration: '管理打印板检测校准',
  522. calibrationRequired: '需要校准',
  523. calibrationInstructions: '请确保构建板<strong>完全空置</strong>,然后点击校准。',
  524. calibrationDescription: '校准会拍摄空置打印板的参考图像。后续检查将与此参考进行比较以检测物体。',
  525. calibrationTip: '<strong>提示:</strong>您最多可以为不同的打印板存储5个校准。系统会在检查时自动使用最佳匹配。',
  526. plateEmpty: '打印板似乎是空的',
  527. objectsDetected: '在打印板上检测到物体',
  528. confidence: '置信度',
  529. difference: '差异',
  530. analysisPreview: '分析预览:',
  531. analysisLegend: '绿色框 = 检测区域,红色覆盖 = 与校准的差异',
  532. savedReferences: '已保存的参考 ({{count}}/{{max}})',
  533. deleteReference: '删除参考',
  534. labelPlaceholder: '标签...',
  535. clickToEdit: '{{label}} - 点击编辑',
  536. clickToAddLabel: '点击添加标签',
  537. },
  538. // Speed
  539. speed: {
  540. title: '打印速度',
  541. silent: '静音 (50%)',
  542. standard: '标准 (100%)',
  543. sport: '运动 (124%)',
  544. ludicrous: '疯狂 (166%)',
  545. },
  546. airduct: {
  547. title: '风道模式',
  548. cooling: '制冷',
  549. heating: '加热',
  550. },
  551. noSdCard: '无SD',
  552. door: {
  553. open: '开',
  554. closed: '关',
  555. },
  556. // Fans
  557. fans: {
  558. partCooling: '零件冷却风扇',
  559. auxiliary: '辅助风扇',
  560. chamber: '腔室风扇',
  561. },
  562. // HMS errors
  563. clickToViewHmsErrors: '点击查看 HMS 错误',
  564. estimatedCompletion: '预计完成时间',
  565. plateNumber: '板 {{number}}',
  566. slotOptions: '槽位选项',
  567. // AMS hover popup
  568. amsPopup: {
  569. friendlyName: 'AMS 名称',
  570. friendlyNamePlaceholder: '例如 AMS 友好名称',
  571. serialNumber: '序列号',
  572. firmwareVersion: '固件',
  573. save: '保存',
  574. clear: '清除',
  575. noEditPermission: '您没有重命名 AMS 单元的权限',
  576. },
  577. // Firmware modal
  578. firmwareModal: {
  579. title: '固件更新',
  580. titleUpToDate: '固件信息',
  581. currentVersion: '当前版本:',
  582. latestVersion: '最新版本:',
  583. releaseNotes: '发布说明',
  584. checkingPrereqs: '正在检查前提条件...',
  585. sdCardReady: 'SD 卡已就绪。点击下方上传固件。',
  586. uploadedSuccess: '固件已上传到 SD 卡!',
  587. applyInstructions: '在打印机上应用更新:',
  588. step1: '在打印机触摸屏上,前往<strong>设置</strong>',
  589. step2: '导航到<strong>固件</strong>',
  590. step3: '选择<strong>从 SD 卡更新</strong>',
  591. step4: '更新将需要 10-20 分钟',
  592. done: '完成',
  593. starting: '启动中...',
  594. uploadFirmware: '上传固件',
  595. uploadFailed: '上传启动失败:{{error}}',
  596. uploadedToast: '固件已上传!请在打印机屏幕上触发更新。',
  597. availableVersions: '可用版本',
  598. usable: '可用',
  599. unavailable: '不可用',
  600. installed: '已安装',
  601. newerBadge: '较新',
  602. olderBadge: '较旧',
  603. currentBadge: '当前',
  604. },
  605. accessCodePlaceholder: '留空以保持当前值',
  606. // ROI editor
  607. roi: {
  608. title: '检测区域 (ROI)',
  609. xStart: 'X 起点',
  610. yStart: 'Y 起点',
  611. width: '宽度',
  612. height: '高度',
  613. instruction: '调整检测区域以聚焦到构建板。预览中的绿色框显示当前区域。',
  614. },
  615. developerModeWarning: '以下打印机未启用开发者局域网模式:{{names}}。某些功能可能无法使用。',
  616. howToEnable: '如何启用',
  617. incompatibleFile: '此文件是为 {{slicedFor}} 切片的,但该打印机是 {{printerModel}}',
  618. dropNotPrintable: '只能打印 .gcode 和 .gcode.3mf 文件',
  619. dropToPrint: '拖放以打印',
  620. cannotPrint: '打印机忙碌',
  621. },
  622. // Archives page
  623. archives: {
  624. title: '打印归档',
  625. searchPlaceholder: '搜索归档...',
  626. filterByPrinter: '按打印机筛选',
  627. filterByStatus: '按状态筛选',
  628. sortBy: '排序方式',
  629. sortNewest: '最新优先',
  630. sortOldest: '最旧优先',
  631. sortName: '名称',
  632. sortDuration: '时长',
  633. sortLargest: '最大优先',
  634. sortSmallest: '最小优先',
  635. sortSize: '大小',
  636. noArchives: '未找到归档',
  637. noArchivesSearch: '没有匹配搜索的归档',
  638. originalPrintNotVisible: '原始打印不可见 - 请尝试清除筛选条件',
  639. noArchivesYet: '暂无归档',
  640. prints: '条打印',
  641. pagination: {
  642. showing: '显示',
  643. to: '至',
  644. of: '共',
  645. show: '每页',
  646. page: '页',
  647. all: '全部',
  648. },
  649. loadingArchives: '加载归档中...',
  650. releaseToUpload: '释放以上传',
  651. showAll: '显示全部',
  652. showFavoritesOnly: '仅显示收藏',
  653. gridView: '网格视图',
  654. listView: '列表视图',
  655. calendarView: '日历视图',
  656. logView: '打印日志',
  657. manageTags: '管理标签',
  658. showFailedPrints: '显示失败的打印',
  659. hideFailedPrints: '隐藏失败的打印',
  660. hideDuplicates: '隐藏重复项',
  661. viewOriginalPrint: '点击查看原始打印 (#{{id}})',
  662. printTime: '打印时间',
  663. filamentUsed: '耗材用量',
  664. cost: '成本',
  665. reprint: '重新打印',
  666. preview: '预览',
  667. deleteArchive: '删除归档',
  668. deleteConfirm: '确定要删除此归档吗?',
  669. favorite: '收藏',
  670. unfavorite: '取消收藏',
  671. viewDetails: '查看详情',
  672. status: {
  673. completed: '已完成',
  674. failed: '失败',
  675. stopped: '已停止',
  676. },
  677. toast: {
  678. source3mfAttached: '源 3MF 已附加:{{filename}}',
  679. failedUploadSource3mf: '上传源 3MF 失败',
  680. source3mfRemoved: '源 3MF 已移除',
  681. failedRemoveSource3mf: '移除源 3MF 失败',
  682. f3dAttached: 'F3D 已附加:{{filename}}',
  683. failedUploadF3d: '上传 F3D 失败',
  684. f3dRemoved: 'F3D 已移除',
  685. failedRemoveF3d: '移除 F3D 失败',
  686. timelapseAttached: '延时摄影已附加:{{filename}}',
  687. timelapseAlreadyAttached: '延时摄影已附加',
  688. noMatchingTimelapse: '未找到匹配的延时摄影',
  689. failedScanTimelapse: '扫描延时摄影失败',
  690. failedAttachTimelapse: '附加延时摄影失败',
  691. timelapseRemoved: '延时摄影已移除',
  692. failedRemoveTimelapse: '移除延时摄影失败',
  693. timelapseUploaded: '延时摄影已上传:{{filename}}',
  694. failedUploadTimelapse: '上传延时摄影失败',
  695. archiveDeleted: '归档已删除',
  696. failedDeleteArchive: '删除归档失败',
  697. addedToFavorites: '已添加到收藏',
  698. removedFromFavorites: '已从收藏中移除',
  699. projectUpdated: '项目已更新',
  700. failedUpdateProject: '更新项目失败',
  701. linkCopied: '链接已复制到剪贴板',
  702. failedCopyLink: '复制链接失败',
  703. photoDeleted: '照片已删除',
  704. failedDeletePhoto: '删除照片失败',
  705. failedDeleteArchives: '删除归档失败',
  706. failedUpdateFavorites: '更新收藏失败',
  707. exportDownloaded: '导出已下载',
  708. exportFailed: '导出失败',
  709. },
  710. menu: {
  711. print: '打印',
  712. schedule: '排程',
  713. openInBambuStudio: '在切片软件中打开',
  714. slice: '切片',
  715. externalLink: '外部链接',
  716. viewOnMakerWorld: '在 MakerWorld 上查看',
  717. preview3d: '3D 预览',
  718. viewTimelapse: '查看延时摄影',
  719. scanForTimelapse: '扫描延时摄影',
  720. uploadTimelapse: '上传延时摄影',
  721. removeTimelapse: '移除延时摄影',
  722. downloadSource3mf: '下载源 3MF',
  723. uploadSource3mf: '上传源 3MF',
  724. replaceSource3mf: '替换源 3MF',
  725. removeSource3mf: '移除源 3MF',
  726. uploadF3d: '上传 F3D',
  727. replaceF3d: '替换 F3D',
  728. downloadF3d: '下载 F3D',
  729. removeF3d: '移除 F3D',
  730. download: '下载',
  731. copyDownloadLink: '复制下载链接',
  732. qrCode: '二维码',
  733. viewPhotos: '查看照片',
  734. viewPhotosCount: '查看照片 ({{count}})',
  735. projectPage: '项目页面',
  736. addToFavorites: '添加到收藏',
  737. removeFromFavorites: '从收藏中移除',
  738. edit: '编辑',
  739. printLog: '打印记录',
  740. goToProject: '前往项目:{{name}}',
  741. addToProject: '添加到项目',
  742. removeFromProject: '从项目中移除',
  743. loading: '加载中...',
  744. noProjectsAvailable: '无可用项目',
  745. searchProjects: '搜索项目…',
  746. select: '选择',
  747. deselect: '取消选择',
  748. delete: '删除',
  749. },
  750. permission: {
  751. noReprint: '您没有重新打印此归档的权限',
  752. noAddToQueue: '您没有添加到队列的权限',
  753. noUpdateArchives: '您没有更新归档的权限',
  754. noUploadFiles: '您没有上传文件的权限',
  755. noDownload: '您没有下载归档的权限',
  756. noCopyLink: '您没有复制下载链接的权限',
  757. noDelete: '您没有删除此归档的权限',
  758. noCreate: '您没有创建归档的权限',
  759. },
  760. platePicker: {
  761. title: '选择要预览的打印板',
  762. hint: '此存档包含多个打印板。选择一个在 GCode 查看器中打开。',
  763. plateLabel: '打印板 {{index}}',
  764. objectCount: '{{count}} 个对象',
  765. objectCount_plural: '{{count}} 个对象',
  766. noGcode: '此存档没有可预览的已切片 G 代码。请先在 Bambu Studio 中打开并切片。',
  767. },
  768. card: {
  769. previousPlate: '上一个板',
  770. nextPlate: '下一个板',
  771. plateNumber: '板 {{index}}',
  772. moreOptions: '右键查看更多选项',
  773. addToFavorites: '添加到收藏',
  774. removeFromFavorites: '从收藏中移除',
  775. cancelled: '已取消',
  776. failed: '失败',
  777. duplicate: '重复',
  778. duplicateTitle: '此模型之前已打印过',
  779. openSource3mf: '在 Bambu Studio 中打开源 3MF(右键查看更多选项)',
  780. downloadF3d: '下载 Fusion 360 设计文件',
  781. viewTimelapse: '查看延时摄影',
  782. viewPhoto: '查看 1 张照片',
  783. viewPhotos: '查看 {{count}} 张照片',
  784. openFolder: '打开文件夹:{{name}}',
  785. slicedFile: '已切片文件 - 可以打印',
  786. sourceFile: '仅源文件 - 无 AMS 映射可用',
  787. gcode: 'GCODE',
  788. source: '源文件',
  789. project: '项目:{{name}}',
  790. runsBadge: '{{count}} 次打印',
  791. runsBadgeTitle: '共 {{count}} 次打印 — 成功 {{successful}} 次,失败 {{failed}} 次。点击查看完整打印记录。',
  792. estimated: '预计:{{time}}',
  793. actual: '实际:{{time}}',
  794. accuracy: '准确度:{{percent}}%',
  795. filament: '{{weight}} 克',
  796. layer: '{{count}} 层',
  797. layers: '{{count}} 层',
  798. object: '{{count}} 个对象',
  799. objects: '{{count}} 个对象',
  800. slicedFor: '为 {{model}} 切片',
  801. uploadedBy: '上传者',
  802. noPermissionReprint: '您没有重新打印的权限',
  803. noFileForReprint: '无可用的 3MF 文件 — 打印记录时无法从打印机下载该文件',
  804. noPermissionEdit: '您没有编辑归档的权限',
  805. noPermissionDelete: '您没有删除归档的权限',
  806. reprint: '重新打印',
  807. schedulePrint: '排程打印',
  808. schedule: '排程',
  809. openInBambuStudio: '在切片软件中打开',
  810. openInBambuStudioToSlice: '在切片软件中打开进行切片',
  811. slice: '切片',
  812. externalLink: '外部链接',
  813. makerWorld: 'MakerWorld:{{designer}}',
  814. viewProject: '查看项目',
  815. noExternalLink: '无外部链接',
  816. preview3d: '3D 预览',
  817. download: '下载',
  818. edit: '编辑',
  819. delete: '删除',
  820. },
  821. runLog: {
  822. title: '打印记录',
  823. modalTitle: '打印记录 — {{name}}',
  824. modalTitleFallback: '此归档',
  825. empty: '此归档尚未记录任何打印事件。',
  826. col: {
  827. date: '日期',
  828. status: '状态',
  829. duration: '时长',
  830. filament: '耗材',
  831. cost: '成本',
  832. },
  833. status: {
  834. completed: '已完成',
  835. failed: '失败',
  836. cancelled: '已取消',
  837. stopped: '已停止',
  838. skipped: '已跳过',
  839. printing: '打印中',
  840. },
  841. },
  842. modal: {
  843. deleteArchive: '删除归档',
  844. deleteConfirm: '确定要删除"{{name}}"吗?此操作无法撤销。',
  845. deleteButton: '删除',
  846. deletePurgeStats: '同时从快速统计中删除此打印(耗材、时间、成本、能耗)',
  847. removeSource3mf: '移除源 3MF',
  848. removeSource3mfConfirm: '确定要从"{{name}}"中移除源 3MF 文件吗?这将删除原始切片项目文件。',
  849. removeButton: '移除',
  850. removeF3d: '移除 F3D',
  851. removeF3dConfirm: '确定要从"{{name}}"中移除 Fusion 360 设计文件吗?',
  852. removeTimelapse: '移除延时摄影',
  853. removeTimelapseConfirm: '确定要从"{{name}}"中移除延时摄影视频吗?',
  854. timelapse: '{{name}} - 延时摄影',
  855. selectTimelapse: '选择延时摄影',
  856. selectTimelapseDesc: '未找到自动匹配。请选择此打印的延时摄影:',
  857. deleteArchives: '删除归档',
  858. deleteArchivesConfirm: '确定要删除 {{count}} 个归档吗?此操作无法撤销。',
  859. deleteCount: '删除 {{count}} 个',
  860. },
  861. page: {
  862. title: '归档',
  863. printsCount: '{{filtered}} / {{total}} 次打印',
  864. dropFilesHere: '将 .3mf 文件拖放到此处',
  865. releaseToUpload: '释放以上传',
  866. only3mfSupported: '仅支持 .3mf 文件',
  867. close: '关闭',
  868. selected: '已选择 {{count}} 个',
  869. selectAll: '全选',
  870. tags: '标签',
  871. project: '项目',
  872. favorite: '收藏',
  873. delete: '删除',
  874. toggledFavorites: '已切换 {{count}} 个归档的收藏状态',
  875. failedUpdateFavorites: '更新收藏失败',
  876. archivesDeleted: '已删除 {{count}} 个归档',
  877. failedDeleteArchives: '删除归档失败',
  878. photoDeleted: '照片已删除',
  879. failedDeletePhoto: '删除照片失败',
  880. },
  881. list: {
  882. name: '名称',
  883. printer: '打印机',
  884. date: '日期',
  885. size: '大小',
  886. actions: '操作',
  887. hasTimelapse: '有延时摄影',
  888. },
  889. log: {
  890. date: '日期',
  891. printName: '打印名称',
  892. printer: '打印机',
  893. user: '用户',
  894. status: '状态',
  895. duration: '时长',
  896. filament: '耗材',
  897. allPrinters: '所有打印机',
  898. allUsers: '所有用户',
  899. allStatuses: '所有状态',
  900. cancelled: '已取消',
  901. skipped: '已跳过',
  902. dateFrom: '从',
  903. dateTo: '到',
  904. noEntries: '未找到打印日志条目',
  905. showing: '显示 {{count}} / {{total}} 条',
  906. rowsPerPage: '行数',
  907. page: '页',
  908. prev: '上一页',
  909. next: '下一页',
  910. clearLog: '清除日志',
  911. clearLogTitle: '清除打印日志',
  912. clearLogConfirm: '所有打印日志条目将被永久删除。归档和队列项目不受影响。此操作无法撤销。确定要继续吗?',
  913. clearLogButton: '全部清除',
  914. cleared: '已清除 {{count}} 条日志',
  915. clearFailed: '清除打印日志失败',
  916. },
  917. },
  918. // Queue page
  919. queue: {
  920. title: '打印队列',
  921. subtitle: '排程和管理您的打印任务',
  922. addToQueue: '添加到队列',
  923. // Print modal
  924. print: '打印',
  925. reprint: '重新打印',
  926. schedulePrint: '排程打印',
  927. editQueueItem: '编辑队列项目',
  928. printToPrinters: '打印到 {{count}} 台打印机',
  929. queueToPrinters: '排队到 {{count}} 台打印机',
  930. queueSelectedPlates: '将 {{count}} 个热床加入队列',
  931. selectAllPlates: '选择全部 {{count}} 个热床',
  932. deselectAll: '取消全选',
  933. printQueued: '已加入打印队列',
  934. itemsQueued: '{{count}} 个任务已加入队列',
  935. sending: '发送中...',
  936. sendingProgress: '发送中 {{current}}/{{total}}...',
  937. adding: '添加中...',
  938. addingProgress: '添加中 {{current}}/{{total}}...',
  939. savingProgress: '保存中 {{current}}/{{total}}...',
  940. clearQueue: '清空队列',
  941. clearHistory: '清除历史',
  942. emptyQueue: '队列为空',
  943. position: '位置',
  944. scheduledTime: '排程时间',
  945. moveUp: '上移',
  946. moveDown: '下移',
  947. startNow: '立即开始',
  948. printingInProgress: '打印进行中...',
  949. viewArchive: '查看归档',
  950. viewInFileManager: '在文件管理器中查看',
  951. itemCount: '{{count}} 个项目',
  952. itemCount_plural: '{{count}} 个项目',
  953. dragToReorder: '拖动以重新排序(仅限尽快)',
  954. reorderHint: '位置仅影响"尽快"项目。排程项目按设定时间运行。',
  955. sjf: {
  956. label: 'SJF',
  957. tooltip: '最短任务优先 — 调度器优先处理较短的打印任务',
  958. },
  959. addedBy: '由 {{name}} 添加',
  960. nextInQueue: '队列中的下一个',
  961. clearPlateSuccess: '打印板已清理 — 准备进行下一个打印',
  962. plateNumber: '板 {{index}}',
  963. // Batch / quantity
  964. quantity: '数量',
  965. quantityHint: '创建 {{count}} 个队列项目',
  966. activeBatches: '活跃批次',
  967. batchProgress: '已完成 {{completed}}/{{total}}',
  968. cancelBatch: '取消剩余',
  969. batchCancelled: '已取消剩余批次项目',
  970. cancelBatchConfirmTitle: '取消批次',
  971. cancelBatchConfirmMessage: '取消此批次中所有剩余的待处理项目?',
  972. batch: '批次',
  973. // Sections
  974. sections: {
  975. currentlyPrinting: '正在打印',
  976. queued: '排队中',
  977. history: '历史',
  978. },
  979. // Status
  980. status: {
  981. pending: '等待中',
  982. waiting: '等待中',
  983. printing: '打印中',
  984. paused: '已暂停',
  985. completed: '已完成',
  986. failed: '失败',
  987. skipped: '已跳过',
  988. cancelled: '已取消',
  989. },
  990. // Summary cards
  991. summary: {
  992. printing: '打印中',
  993. queued: '排队中',
  994. totalTime: '总队列时间',
  995. totalWeight: '总队列重量',
  996. history: '历史',
  997. },
  998. // Filters
  999. filter: {
  1000. allPrinters: '所有打印机',
  1001. unassigned: '未分配',
  1002. allStatus: '所有状态',
  1003. allLocations: '所有位置',
  1004. any: '任意',
  1005. },
  1006. // Sort
  1007. sort: {
  1008. byPosition: '按位置排序',
  1009. byName: '按名称排序',
  1010. byPrinter: '按打印机排序',
  1011. bySchedule: '按排程排序',
  1012. byDate: '按日期排序',
  1013. ascendingOldest: '升序(最旧优先)',
  1014. descendingNewest: '降序(最新优先)',
  1015. },
  1016. // Badges
  1017. badges: {
  1018. staged: '已暂存',
  1019. requiresPrevious: '需要前一个成功',
  1020. autoPowerOff: '自动关机',
  1021. gcodeInjection: 'G-code',
  1022. },
  1023. // Empty state
  1024. empty: {
  1025. title: '没有排程的打印',
  1026. description: '从归档页面使用右键菜单中的"排程"选项来排程打印,或拖放文件开始。',
  1027. },
  1028. // Time
  1029. time: {
  1030. asap: '尽快',
  1031. overdue: '已逾期',
  1032. now: '现在',
  1033. lessThanMinute: '不到一分钟',
  1034. inMinutes: '{{count}} 分钟后',
  1035. inHours: '{{count}} 小时后',
  1036. },
  1037. // Actions
  1038. actions: {
  1039. stopPrint: '停止打印',
  1040. startPrint: '开始打印',
  1041. requeue: '重新排队',
  1042. },
  1043. // Bulk edit
  1044. bulkEdit: {
  1045. title: '编辑 {{count}} 个项目',
  1046. title_plural: '编辑 {{count}} 个项目',
  1047. description: '仅更改的设置将应用于所选项目。',
  1048. printer: '打印机',
  1049. noChange: '— 不更改 —',
  1050. queueOptions: '队列选项',
  1051. staged: '暂存(手动开始)',
  1052. autoPowerOff: '打印后自动关机',
  1053. requirePrevious: '要求前一个成功',
  1054. printOptions: '打印选项',
  1055. bedLevelling: '热床调平',
  1056. flowCalibration: '流量校准',
  1057. vibrationCalibration: '振动校准',
  1058. layerInspection: '首层检查',
  1059. timelapse: '延时摄影',
  1060. useAms: '使用 AMS',
  1061. applyChanges: '应用更改',
  1062. selectAll: '全选',
  1063. deselectAll: '取消全选',
  1064. selected: '已选择 {{count}} 个',
  1065. editSelected: '编辑所选',
  1066. cancelSelected: '取消所选',
  1067. },
  1068. // Confirmations
  1069. confirm: {
  1070. cancelTitle: '取消排程打印',
  1071. cancelMessage: '确定要取消"{{name}}"吗?',
  1072. stopTitle: '停止打印',
  1073. stopMessage: '确定要停止当前打印"{{name}}"吗?这将取消打印机上的打印任务。',
  1074. removeTitle: '从历史中移除',
  1075. removeMessage: '确定要从队列历史中移除"{{name}}"吗?',
  1076. clearHistoryTitle: '清除历史',
  1077. clearHistoryMessage: '确定要从历史中移除所有 {{count}} 个项目吗?',
  1078. cancelButton: '取消打印',
  1079. stopButton: '停止打印',
  1080. thisPrint: '此打印',
  1081. thisItem: '此项目',
  1082. },
  1083. // Toast messages
  1084. toast: {
  1085. cancelled: '队列项目已取消',
  1086. cancelFailed: '取消项目失败',
  1087. removed: '队列项目已移除',
  1088. removeFailed: '移除项目失败',
  1089. stopped: '打印已停止',
  1090. stopFailed: '停止打印失败',
  1091. released: '打印已释放到队列',
  1092. startFailed: '开始打印失败',
  1093. reorderFailed: '重新排序队列失败',
  1094. historyCleared: '已清除 {{count}} 条历史记录',
  1095. clearHistoryFailed: '清除历史失败',
  1096. updateFailed: '更新项目失败',
  1097. bulkCancelled: '已取消 {{count}} 个项目',
  1098. bulkCancelFailed: '批量取消项目失败',
  1099. },
  1100. // Timeline view
  1101. timeline: {
  1102. listView: '列表',
  1103. timelineView: '时间线',
  1104. unassigned: '未分配',
  1105. noData: '当天没有计划的打印任务',
  1106. allDoneBy: '所有打印预计在 {{time}} 前完成',
  1107. staged: '暂存',
  1108. filterAll: '全部显示',
  1109. filterPrinting: '打印中',
  1110. filterQueued: '排队中',
  1111. time: {
  1112. anyMoment: '即将完成',
  1113. minutesLeft: '剩余{{minutes}}分钟',
  1114. hoursLeft: '剩余{{hours}}小时',
  1115. hoursMinutesLeft: '剩余{{hours}}小时{{minutes}}分钟',
  1116. },
  1117. day: {
  1118. previous: '前一天',
  1119. next: '后一天',
  1120. today: '今天',
  1121. },
  1122. },
  1123. // Permissions
  1124. permissions: {
  1125. noStopPrint: '您没有停止打印的权限',
  1126. noStartPrint: '您没有开始打印的权限',
  1127. noEdit: '您没有编辑此队列项目的权限',
  1128. noCancel: '您没有取消此队列项目的权限',
  1129. noRequeue: '您没有重新排队的权限',
  1130. noRemove: '您没有移除此队列项目的权限',
  1131. noClearHistory: '您没有清除所有历史的权限',
  1132. noEditItems: '您没有编辑队列项目的权限',
  1133. noCancelItems: '您没有取消队列项目的权限',
  1134. },
  1135. },
  1136. backgroundDispatch: {
  1137. unknownFile: '未知文件',
  1138. unknownPrinter: '未知打印机',
  1139. startingPrints: '正在开始打印',
  1140. progressSummary: '{{complete}}/{{total}} 完成 • 已分发:{{dispatched}} • 处理中:{{processing}}',
  1141. expandDetails: '展开分发详情',
  1142. collapseDetails: '收起分发详情',
  1143. dismissToast: '关闭分发通知',
  1144. cancelDispatchJob: '取消分发任务',
  1145. cancel: '取消',
  1146. cancelling: '取消中…',
  1147. awaitingPrinter: '等待打印机…',
  1148. status: {
  1149. dispatched: '已分发',
  1150. processing: '处理中',
  1151. completed: '已完成',
  1152. failed: '失败',
  1153. cancelled: '已取消',
  1154. },
  1155. toast: {
  1156. cancellingUpload: '取消上传中...',
  1157. cancelled: '分发已取消',
  1158. cancelFailed: '取消分发失败',
  1159. completeWithFailures: '后台分发完成:{{completed}} 成功,{{failed}} 失败',
  1160. completeSuccess: '后台分发完成:{{completed}} 成功',
  1161. printStartedRemaining: '{{completed}} 个打印已开始,{{remaining}} 个正在发送...',
  1162. },
  1163. },
  1164. // Statistics page
  1165. stats: {
  1166. title: '统计',
  1167. subtitle: '拖动小部件以重新排列。点击眼睛图标隐藏。',
  1168. overview: '概览',
  1169. totalPrints: '总打印次数',
  1170. successRate: '成功率',
  1171. totalPrintTime: '总打印时间',
  1172. printTime: '打印时间',
  1173. totalFilament: '总耗材用量',
  1174. filamentUsed: '耗材用量',
  1175. filamentCost: '耗材成本',
  1176. totalCost: '总成本',
  1177. energyUsed: '能耗',
  1178. energyCost: '能源成本',
  1179. energyWarmingUpTooltip: '能耗追踪正在收集每小时快照。当所选范围之前至少存在一个快照时,时间段合计将变得准确。早期数值可能偏低。',
  1180. averagePrintTime: '平均打印时间',
  1181. printsPerDay: '每日打印次数',
  1182. byPrinter: '按打印机',
  1183. printsByPrinter: '各打印机打印次数',
  1184. byMaterial: '按材料',
  1185. byMonth: '按月份',
  1186. last7Days: '最近 7 天',
  1187. last30Days: '最近 30 天',
  1188. last90Days: '最近 90 天',
  1189. allTime: '全部时间',
  1190. // Widgets
  1191. quickStats: '快速统计',
  1192. printActivity: '打印活动',
  1193. filamentTypes: '耗材类型',
  1194. filamentTrends: '耗材趋势',
  1195. failureAnalysis: '失败分析',
  1196. timeAccuracy: '时间准确度',
  1197. successful: '成功:',
  1198. failed: '失败:',
  1199. perfectEstimate: '100% = 完美估计',
  1200. noTimeAccuracyData: '暂无时间准确度数据',
  1201. noFilamentData: '暂无耗材数据',
  1202. noPrinterData: '暂无打印机数据',
  1203. noPrintData: '暂无打印数据',
  1204. noPrintDataLast30Days: '最近 30 天无打印数据',
  1205. failureReasons: '失败原因',
  1206. topFailureReasons: '主要失败原因',
  1207. failedPrintsCount: '{{failed}} / {{total}} 次打印失败',
  1208. lastWeekRate: '上周:{{rate}}%',
  1209. // Actions
  1210. resetLayout: '重置布局',
  1211. recalculateCosts: '重新计算成本',
  1212. recalculateCostsHint: '使用当前耗材价格重新计算所有归档成本',
  1213. exportStats: '导出统计',
  1214. exportAsCsv: '导出为 CSV',
  1215. exportAsExcel: '导出为 Excel',
  1216. hiddenCount: '{{count}} 个已隐藏',
  1217. // Toast
  1218. exportDownloaded: '导出已下载',
  1219. exportFailed: '导出失败',
  1220. layoutReset: '布局已重置',
  1221. recalculatedCosts: '已为 {{count}} 个归档重新计算成本',
  1222. recalculateFailed: '重新计算成本失败',
  1223. // Loading
  1224. loadingStats: '加载统计数据中...',
  1225. // Permissions
  1226. noPermissionResetLayout: '您没有重置布局的权限',
  1227. noPermissionRecalculate: '您没有重新计算成本的权限',
  1228. noPrintDataInRange: '所选范围内无打印数据',
  1229. periodFilament: '期间耗材',
  1230. periodCost: '期间成本',
  1231. avgPerPrint: '每次打印平均',
  1232. usageOverTime: '随时间的使用量',
  1233. filamentByWeight: '重量',
  1234. printDuration: '打印时长',
  1235. printerUtilization: '打印机利用率',
  1236. filamentSuccess: '按材料成功率',
  1237. printHabits: '打印习惯',
  1238. printTimeOfDay: '打印时段',
  1239. colorDistribution: '颜色分布',
  1240. noColorData: '暂无颜色数据',
  1241. records: '记录',
  1242. longestPrint: '最长打印',
  1243. heaviestPrint: '最重打印',
  1244. mostExpensivePrint: '最贵打印',
  1245. busiestDay: '最忙碌的一天',
  1246. successStreak: '连续成功',
  1247. streakPrint: '连续打印',
  1248. streakPrints: '{{count}} 次连续打印',
  1249. printerStats: '打印机统计',
  1250. hours: '小时',
  1251. avgPrints: '平均打印',
  1252. noArchiveData: '暂无打印数据',
  1253. filamentByTime: '时间',
  1254. avgWeight: '平均重量',
  1255. avgTime: '平均时间',
  1256. filamentByPrints: '打印次数',
  1257. timeframe: {
  1258. today: '今天',
  1259. 'this-week': '本周',
  1260. 'this-month': '本月',
  1261. 'last-7': '最近 7 天',
  1262. 'last-30': '最近 30 天',
  1263. 'last-90': '最近 90 天',
  1264. 'this-year': '今年',
  1265. 'all-time': '全部时间',
  1266. custom: '自定义范围',
  1267. from: '从',
  1268. to: '到',
  1269. },
  1270. allUsers: '所有用户',
  1271. noUser: '无用户(系统)',
  1272. filterByUser: '按用户筛选',
  1273. },
  1274. // Maintenance page
  1275. maintenance: {
  1276. title: '维护',
  1277. overview: '概览',
  1278. allOk: '所有维护均已完成',
  1279. dueCount: '{{count}} 项到期',
  1280. dueCount_plural: '{{count}} 项到期',
  1281. warningCount: '{{count}} 个警告',
  1282. warningCount_plural: '{{count}} 个警告',
  1283. totalPrintTime: '总打印时间',
  1284. nextMaintenance: '下次维护',
  1285. nothingDue: '无到期项目',
  1286. tasks: '任务',
  1287. lastPerformed: '上次执行',
  1288. interval: '间隔',
  1289. hoursRemaining: '剩余 {{hours}} 小时',
  1290. hoursOverdue: '逾期 {{hours}} 小时',
  1291. markDone: '标记为完成',
  1292. performMaintenance: '执行维护',
  1293. history: '历史',
  1294. noHistory: '无维护历史',
  1295. editPrintHours: '编辑打印时间',
  1296. currentHours: '当前小时数',
  1297. // Tabs
  1298. statusTab: '状态',
  1299. settingsTab: '设置',
  1300. // Status
  1301. overdueCount: '{{count}} 个逾期',
  1302. dueSoonCount: '{{count}} 个即将到期',
  1303. dueSoon: '即将到期',
  1304. allGood: '一切正常',
  1305. overdueBy: '逾期 {{duration}}',
  1306. dueIn: '{{duration}} 后到期',
  1307. timeLeft: '剩余 {{duration}}',
  1308. // Duration formats
  1309. day: '1 天',
  1310. days: '{{count}} 天',
  1311. week: '1 周',
  1312. weeks: '{{count}} 周',
  1313. month: '1 个月',
  1314. months: '{{count}} 个月',
  1315. year: '1 年',
  1316. // Settings
  1317. maintenanceTypes: '维护类型',
  1318. maintenanceTypesDescription: '系统类型和您的自定义维护任务',
  1319. addCustomType: '添加自定义类型',
  1320. restoreDefaults: '恢复默认任务',
  1321. intervalType: '间隔类型',
  1322. intervalValue: '间隔 ({{type}})',
  1323. icon: '图标',
  1324. documentationLink: '文档链接(可选)',
  1325. assignToPrinters: '分配给打印机',
  1326. selectAtLeastOnePrinter: '至少选择一台打印机',
  1327. addType: '添加类型',
  1328. custom: '自定义',
  1329. printHours: '打印小时数',
  1330. calendarDays: '日历天数',
  1331. exampleName: '例如:更换 HEPA 过滤器',
  1332. viewDocumentation: '查看文档',
  1333. timeBasedInterval: '基于时间的间隔',
  1334. // Interval overrides
  1335. intervalOverrides: '间隔覆盖',
  1336. intervalOverridesDescription: '为特定打印机自定义间隔',
  1337. // Printer assignment
  1338. assignedToPrinters: '已分配给打印机:',
  1339. noPrintersAssigned: '未分配打印机',
  1340. addPrinterShort: '添加:',
  1341. printersAssignedClick: '已分配 {{count}} 台打印机 - 点击管理',
  1342. removeFromPrinter: '从此打印机移除',
  1343. // Types
  1344. types: {
  1345. lubricateCarbonRods: '润滑碳纤维杆',
  1346. lubricateRails: '润滑线性导轨',
  1347. cleanNozzle: '清洁喷嘴/热端',
  1348. checkBelts: '检查皮带张力',
  1349. cleanBuildPlate: '清洁构建板',
  1350. checkExtruder: '检查挤出机齿轮',
  1351. checkCooling: '检查冷却风扇',
  1352. generalInspection: '综合检查',
  1353. cleanCarbonRods: '清洁碳纤维杆',
  1354. lubricateSteelRods: '润滑钢杆',
  1355. cleanSteelRods: '清洁钢杆',
  1356. cleanLinearRails: '清洁线性导轨',
  1357. checkPtfeTube: '检查 PTFE 管',
  1358. replaceHepaFilter: '更换 HEPA 过滤器',
  1359. replaceCarbonFilter: '更换活性炭过滤器',
  1360. lubricateLeftNozzleRail: '润滑左喷嘴导轨',
  1361. },
  1362. // Toast
  1363. maintenanceComplete: '维护已标记为完成',
  1364. typeUpdated: '维护类型已更新',
  1365. typeDeleted: '维护类型已删除',
  1366. defaultsRestored: '已恢复 {{count}} 个默认任务',
  1367. printHoursUpdated: '打印小时数已更新',
  1368. printerAssigned: '打印机已分配',
  1369. printerRemoved: '打印机已移除',
  1370. // Confirmation
  1371. deleteTypeConfirm: '删除"{{name}}"?',
  1372. deleteSystemTypeTitle: '删除默认维护任务?',
  1373. deleteSystemTypeMessage: '确定要删除默认维护任务"{{name}}"吗?',
  1374. // Permissions
  1375. noPermissionUpdate: '您没有更新维护项目的权限',
  1376. noPermissionPerform: '您没有执行维护的权限',
  1377. noPermissionEditTypes: '您没有编辑维护类型的权限',
  1378. noPermissionDeleteTypes: '您没有删除维护类型的权限',
  1379. noPermissionEditHours: '您没有编辑打印时间的权限',
  1380. noPermissionRemovePrinter: '您没有移除打印机分配的权限',
  1381. noPermissionAssignPrinter: '您没有分配打印机的权限',
  1382. noPermissionEditIntervals: '您没有编辑间隔的权限',
  1383. // Configure link
  1384. configureSettings: '配置维护类型和间隔',
  1385. },
  1386. // Settings page
  1387. settings: {
  1388. title: '设置',
  1389. general: '通用',
  1390. // Tab names
  1391. tabs: {
  1392. general: '通用',
  1393. smartPlugs: '智能插座',
  1394. notifications: '通知',
  1395. queue: '工作流',
  1396. filament: '耗材',
  1397. network: '网络',
  1398. apiKeys: 'API 密钥',
  1399. virtualPrinter: '虚拟打印机',
  1400. spoolbuddy: 'SpoolBuddy',
  1401. failureDetection: '故障检测',
  1402. users: '身份验证',
  1403. backup: '备份',
  1404. emailAuth: '邮箱认证',
  1405. ldap: 'LDAP',
  1406. twoFa: '双因素认证',
  1407. oidc: 'SSO / OIDC',
  1408. security: '安全',
  1409. },
  1410. spoolbuddy: {
  1411. infoTitle: 'SpoolBuddy 设备',
  1412. infoBody: 'SpoolBuddy kiosk 通过心跳自动注册。如果设备不再使用,或守护进程崩溃遗留了陈旧的重复项,可在此注销。',
  1413. duplicatesTitle: '已注册 {{count}} 台设备',
  1414. duplicatesBody: 'kiosk 界面只使用最先注册的设备。如果其中有因崩溃遗留的陈旧重复项,请注销它——在线设备会在下次心跳时重新注册自己。',
  1415. empty: '尚未注册任何 SpoolBuddy 设备。',
  1416. online: '在线',
  1417. offline: '离线',
  1418. unregister: '注销',
  1419. unregisterSuccess: '设备已注销',
  1420. unregisterError: '注销设备失败',
  1421. confirmTitle: '注销 SpoolBuddy 设备?',
  1422. confirmBody: '将从数据库中移除 "{{hostname}}" ({{deviceId}})。如果设备在线,会在下次心跳时重新注册自己。',
  1423. ipAddress: 'IP 地址',
  1424. firmware: '固件',
  1425. lastSeen: '上次在线',
  1426. daemonUptime: '守护进程运行时间',
  1427. systemUptime: '系统运行时间',
  1428. never: '从未',
  1429. nfc: 'NFC',
  1430. scale: '秤',
  1431. cpuTemp: 'CPU 温度',
  1432. memory: '内存',
  1433. disk: '磁盘',
  1434. // Device actions
  1435. update: '更新',
  1436. updateConfirmTitle: '更新 SpoolBuddy 守护进程?',
  1437. updateConfirmBody: '对 "{{hostname}}" 触发软件更新?更新完成后守护进程将重启。',
  1438. restartBrowser: '重启浏览器',
  1439. restartBrowserConfirmTitle: '重启 kiosk 浏览器?',
  1440. restartBrowserConfirmBody: '在 "{{hostname}}" 上重启 kiosk 浏览器?显示将短暂黑屏。',
  1441. restartDaemon: '重启守护进程',
  1442. restartDaemonConfirmTitle: '重启 SpoolBuddy 守护进程?',
  1443. restartDaemonConfirmBody: '在 "{{hostname}}" 上重启 SpoolBuddy 守护进程?设备将离线几秒钟。',
  1444. reboot: '重启',
  1445. rebootConfirmTitle: '重启设备?',
  1446. rebootConfirmBody: '重启 "{{hostname}}"?设备将离线约一分钟。',
  1447. shutdown: '关机',
  1448. shutdownConfirmTitle: '关闭设备?',
  1449. shutdownConfirmBody: '关闭 "{{hostname}}"?您需要物理访问才能重新开机。',
  1450. commandConfirm: '确认',
  1451. commandQueued: '命令已加入队列',
  1452. commandError: '发送命令失败',
  1453. },
  1454. ldap: {
  1455. title: 'LDAP 认证',
  1456. enabledDesc: 'LDAP 认证已启用',
  1457. disabledDesc: 'LDAP 认证已禁用',
  1458. disabledHint: '在下方配置并保存 LDAP 设置,然后启用。',
  1459. enabled: 'LDAP 认证已启用',
  1460. disabled: 'LDAP 认证已禁用',
  1461. feature1: '用户可以使用 LDAP 凭据登录',
  1462. feature2: '本地管理员帐户作为后备保留',
  1463. feature3: '登录时 LDAP 组映射到 BamBuddy 组',
  1464. serverConfig: 'LDAP 服务器配置',
  1465. serverUrl: '服务器 URL',
  1466. serverUrlHint: '使用 ldap:// 进行标准连接或 ldaps:// 进行 SSL 连接',
  1467. security: '安全',
  1468. securityHint: 'StartTLS 将普通连接升级为 TLS。LDAPS 从一开始就使用 TLS。',
  1469. bindDn: '绑定 DN(服务帐户)',
  1470. bindPassword: '绑定密码',
  1471. searchBase: '搜索基础 DN',
  1472. userFilter: '用户搜索过滤器',
  1473. userFilterHint: '{username} 替换为登录用户名。OpenLDAP 使用 (uid={username})。',
  1474. advanced: '高级',
  1475. autoProvision: '自动创建用户',
  1476. autoProvisionHint: '首次 LDAP 登录时自动创建 BamBuddy 帐户',
  1477. defaultGroup: '默认组',
  1478. defaultGroupNone: '— 无(无回退)—',
  1479. defaultGroupHint: '当 LDAP 用户通过身份验证但不在任何已映射的 LDAP 组中时分配的回退组。留空以使未映射的用户没有权限。',
  1480. groupMapping: '组映射(JSON)',
  1481. groupMappingHint: '将 LDAP 组 DN 映射到 BamBuddy 组。可用组:',
  1482. testConnection: '测试连接',
  1483. settingsSaved: 'LDAP 设置已保存',
  1484. errors: {
  1485. serverRequired: 'LDAP 服务器 URL 为必填项',
  1486. searchBaseRequired: '搜索基础 DN 为必填项',
  1487. enableAuthFirst: '请先启用认证',
  1488. configureLdapFirst: '请先保存 LDAP 设置',
  1489. },
  1490. },
  1491. // Email settings
  1492. email: {
  1493. smtpSettings: 'SMTP 配置',
  1494. smtpHost: 'SMTP 服务器',
  1495. smtpPort: 'SMTP 端口',
  1496. security: '安全',
  1497. authentication: '认证',
  1498. username: '用户名',
  1499. password: '密码',
  1500. fromEmail: '发件邮箱',
  1501. fromName: '发件人名称',
  1502. testConnection: '测试 SMTP 连接',
  1503. testRecipient: '测试收件邮箱',
  1504. sendTest: '发送测试邮件',
  1505. sending: '发送中...',
  1506. save: '保存设置',
  1507. saving: '保存中...',
  1508. advancedAuth: '高级认证',
  1509. advancedAuthEnabled: '高级认证已启用',
  1510. advancedAuthEnabledDesc: '基于邮箱的用户管理功能已激活。新用户将通过邮件收到自动生成的密码,用户可以通过忘记密码功能重置密码。',
  1511. advancedAuthDisabled: '高级认证已禁用',
  1512. advancedAuthDisabledDesc: '启用高级认证以激活基于邮箱的用户管理功能。',
  1513. enable: '启用',
  1514. disable: '禁用',
  1515. feature1: '密码自动生成并通过邮件发送给新用户',
  1516. feature2: '用户可以使用用户名或邮箱登录',
  1517. feature3: '忘记密码功能可用',
  1518. feature4: '管理员可以通过邮件重置用户密码',
  1519. // Error messages
  1520. errors: {
  1521. requiredFields: '请填写所有必填字段',
  1522. usernameRequired: '启用认证时需要用户名',
  1523. enterTestEmail: '请输入测试邮箱地址',
  1524. smtpServerAndEmail: '测试前请填写 SMTP 服务器和发件邮箱',
  1525. usernamePasswordRequired: '启用认证时需要用户名和密码',
  1526. configureSmtpFirst: '请先配置并测试 SMTP 设置',
  1527. enableAuthFirst: '请先启用身份验证才能使用基于电子邮件的功能。',
  1528. },
  1529. // Success messages
  1530. success: {
  1531. settingsSaved: 'SMTP 设置保存成功',
  1532. },
  1533. // Security options
  1534. securityOptions: {
  1535. starttls: 'STARTTLS(端口 587)',
  1536. ssl: 'SSL/TLS(端口 465)',
  1537. none: '无(端口 25)',
  1538. },
  1539. // Authentication options
  1540. authOptions: {
  1541. enabled: '已启用',
  1542. disabled: '已禁用',
  1543. },
  1544. },
  1545. appearance: '外观',
  1546. notifications: '通知',
  1547. smartPlugs: '智能插座',
  1548. spoolman: 'Spoolman',
  1549. updates: '更新',
  1550. language: '语言',
  1551. languageDescription: '选择您的首选语言',
  1552. theme: '主题',
  1553. themeLight: '浅色',
  1554. themeDark: '深色',
  1555. themeSystem: '跟随系统',
  1556. defaultView: '默认视图',
  1557. defaultViewDescription: '打开应用时显示的页面',
  1558. checkForUpdates: '检查更新',
  1559. autoUpdate: '自动更新',
  1560. currentVersion: '当前版本',
  1561. latestVersion: '最新版本',
  1562. upToDate: '已是最新版本',
  1563. updateAvailable: '有可用更新',
  1564. // Notifications
  1565. notificationLanguage: '通知语言',
  1566. notificationLanguageDescription: '推送通知的语言',
  1567. bedCooledThreshold: '热床冷却阈值',
  1568. bedCooledThresholdDescription: '打印后热床被视为已冷却的温度',
  1569. userNotificationsEnabled: '用户通知',
  1570. userNotificationsEnabledDescription: '启用用户通知菜单和打印任务事件的邮件通知。需要高级身份验证。',
  1571. userNotificationsDisabledHint: '请启用高级身份验证以使用用户通知。',
  1572. notificationProviders: '通知提供商',
  1573. addProvider: '添加提供商',
  1574. editProvider: '编辑提供商',
  1575. providerType: '提供商类型',
  1576. testNotification: '测试通知',
  1577. testSuccess: '测试通知发送成功',
  1578. testFailed: '发送测试通知失败',
  1579. quietHours: '免打扰时间',
  1580. quietHoursDescription: '在此时间段内不发送通知',
  1581. quietHoursStart: '开始',
  1582. quietHoursEnd: '结束',
  1583. events: {
  1584. title: '通知事件',
  1585. printStart: '打印开始',
  1586. printComplete: '打印完成',
  1587. printFailed: '打印失败',
  1588. printStopped: '打印停止',
  1589. printProgress: '进度里程碑',
  1590. printProgressDescription: '在 25%、50%、75% 时通知',
  1591. printerOffline: '打印机离线',
  1592. printerError: '打印机错误',
  1593. filamentLow: '耗材不足',
  1594. maintenanceDue: '维护到期',
  1595. maintenanceDueDescription: '需要维护时通知',
  1596. },
  1597. // Smart Plugs
  1598. smartPlug: {
  1599. title: '智能插座',
  1600. add: '添加智能插座',
  1601. edit: '编辑智能插座',
  1602. name: '名称',
  1603. ipAddress: 'IP 地址',
  1604. linkedPrinter: '关联打印机',
  1605. autoOn: '自动开启',
  1606. autoOnDescription: '打印开始时开启',
  1607. autoOff: '自动关闭',
  1608. autoOffDescription: '打印完成后关闭',
  1609. offDelay: '关闭延迟',
  1610. offDelayMinutes: '打印后分钟数',
  1611. offDelayTemp: '当喷嘴温度低于',
  1612. currentState: '当前状态',
  1613. turnOn: '开启',
  1614. turnOff: '关闭',
  1615. },
  1616. // Filament Tracking Mode
  1617. filamentTracking: '耗材追踪',
  1618. filamentTrackingDesc: '选择如何追踪您的耗材。您可以使用内置库存或连接外部 Spoolman 服务器。',
  1619. filamentChecks: '耗材检查',
  1620. disableFilamentWarnings: '禁用耗材警告',
  1621. disableFilamentWarningsDesc: '在打印或加入队列时不显示耗材不足警告',
  1622. preferLowestFilament: '优先使用剩余最少的耗材',
  1623. preferLowestFilamentDesc: '当多个料盘匹配时,使用剩余耗材最少的那个',
  1624. trackingModeBuiltIn: '内置库存',
  1625. trackingModeBuiltInDesc: '包含 RFID 自动匹配和用量追踪',
  1626. trackingModeSpoolmanDesc: '外部耗材管理服务器',
  1627. builtInFeatureRfid: '自动检测 AMS 中的拓竹 RFID 耗材',
  1628. builtInFeatureUsage: '追踪每次打印的耗材消耗',
  1629. builtInFeatureCatalog: '管理耗材、颜色和 K 值配置文件',
  1630. builtInFeatureThirdParty: '第三方耗材可分配到库存耗材',
  1631. amsSyncButton: '从 AMS 同步重量',
  1632. amsSyncTitle: '从 AMS 同步耗材重量',
  1633. amsSyncMessage: '这将使用已连接打印机的当前 AMS 剩余百分比值覆盖所有库存耗材重量。用于从损坏的重量数据中恢复。打印机必须在线。',
  1634. amsSyncing: '同步中...',
  1635. amsSyncSuccess: '已同步 {{synced}} 个耗材,跳过 {{skipped}} 个',
  1636. amsSyncError: '从 AMS 同步重量失败',
  1637. spoolmanAmsSyncButton: '从 AMS 同步 Spoolman 重量',
  1638. spoolmanAmsSyncTitle: '从 AMS 同步 Spoolman 耗材重量',
  1639. spoolmanAmsSyncMessage: '这将根据已连接打印机的当前 AMS 剩余百分比值更新所有 Spoolman 耗材重量。打印机必须在线。',
  1640. spoolmanAmsSyncing: '同步中...',
  1641. spoolmanAmsSyncSuccess: '已同步 {{synced}} 个 Spoolman 耗材,跳过 {{skipped}} 个',
  1642. spoolmanAmsSyncError: '从 AMS 同步 Spoolman 重量失败',
  1643. spoolmanAmsSyncErrorUnreachable: '同步失败(Spoolman 不可访问)',
  1644. spoolmanAmsSyncErrorNotConfigured: '同步失败(Spoolman 未配置)',
  1645. spoolmanNotConfigured: 'Spoolman 未配置',
  1646. // Spoolman filament catalog section in spool catalog settings
  1647. spoolmanFilamentCatalogTitle: 'Spoolman 耗材目录',
  1648. spoolmanFilamentCatalogDesc: '来自 Spoolman 的耗材名称和皮重。名称和线轴重量可在此处编辑;其他属性请直接在 Spoolman 中管理。',
  1649. // Spoolman settings
  1650. spoolmanUrl: 'Spoolman URL',
  1651. spoolmanUrlHint: 'Spoolman 服务器的 URL(例如 http://localhost:7912)',
  1652. spoolmanConnected: '已连接',
  1653. spoolmanDisconnected: '未连接',
  1654. status: '状态',
  1655. connect: '连接',
  1656. disconnect: '断开',
  1657. howSyncWorks: '同步工作原理',
  1658. syncInfoRfidOnly: '仅同步带有 RFID 的官方拓竹耗材',
  1659. syncInfoAutoCreate: '首次同步时自动在 Spoolman 中创建新耗材',
  1660. syncInfoThirdPartySkipped: '非拓竹耗材(第三方、重新填充的)将被跳过',
  1661. linkingExistingSpools: '链接现有耗材',
  1662. linkingExistingSpoolsDesc: '要将现有的 Spoolman 耗材链接到您的 AMS,请将鼠标悬停在 AMS 槽位上并点击"链接到 Spoolman"。',
  1663. syncMode: '同步模式',
  1664. syncModeAuto: '自动',
  1665. syncModeManual: '仅手动',
  1666. syncModeAutoDesc: '检测到更改时自动同步 AMS 数据',
  1667. syncModeManualDesc: '仅在手动触发时同步',
  1668. syncAmsData: '同步 AMS 数据',
  1669. syncAmsDataDesc: '手动将打印机 AMS 数据同步到 Spoolman',
  1670. allPrinters: '所有打印机',
  1671. // Default printer
  1672. noDefaultPrinter: '无默认(每次询问)',
  1673. // Sidebar
  1674. sidebarOrder: '侧边栏顺序',
  1675. // Camera
  1676. saveThumbnails: '保存缩略图',
  1677. captureFinishPhoto: '拍摄完成照片',
  1678. noPrintersConfigured: '未配置打印机',
  1679. // Archive settings
  1680. archiveMode: {
  1681. always: '始终创建归档条目',
  1682. never: '从不创建归档条目',
  1683. ask: '每次询问',
  1684. },
  1685. // Updates
  1686. checkForUpdatesLabel: '检查更新',
  1687. checkPrinterFirmware: '检查打印机固件',
  1688. includeBetaUpdates: '包含测试版本',
  1689. includeBetaUpdatesDesc: '检查更新时通知测试版和预发布版本',
  1690. // Queue
  1691. enableRetry: '启用重试',
  1692. // Home Assistant
  1693. homeAssistantDescription: '通过 Home Assistant 控制智能插座',
  1694. environmentManagedLabel: '(环境变量管理)',
  1695. autoEnabledViaEnv: '通过环境变量自动启用',
  1696. urlFromEnvReadOnly: '值由 HA_URL 环境变量设置(只读)',
  1697. tokenFromEnvReadOnly: '值由 HA_TOKEN 环境变量设置(只读)',
  1698. // MQTT
  1699. mqttConnectedTo: '已连接到',
  1700. // Prometheus
  1701. prometheusDescription: '以 Prometheus 格式暴露打印机数据',
  1702. // Smart plugs empty state
  1703. noSmartPlugsTitle: '未配置智能插座',
  1704. noSmartPlugsDescription: '添加基于 Tasmota 的智能插座以追踪能耗并自动化电源控制。',
  1705. // Notifications empty state
  1706. noProvidersTitle: '未配置提供商',
  1707. noProvidersDescription: '添加提供商以接收警报。',
  1708. noTemplatesAvailable: '无可用模板。重启后端以加载默认模板。',
  1709. // API permissions
  1710. apiPermissionView: '查看打印机状态和队列',
  1711. apiPermissionEdit: '添加和移除打印队列中的项目',
  1712. // API keys
  1713. apiKeysEmptyTitle: '无 API 密钥',
  1714. apiKeysEmptyDescription: '创建 API 密钥以与外部服务集成。',
  1715. // Users
  1716. noUsersFound: '未找到用户',
  1717. noGroupsFound: '未找到组',
  1718. noGroupsAvailable: '无可用组',
  1719. passwordsDoNotMatch: '密码不匹配',
  1720. systemGroupWarning: '系统组名称不可更改',
  1721. // Auth disabled
  1722. authDisabledTitle: '身份验证已禁用',
  1723. authDisabledFeature1: '需要登录才能访问系统',
  1724. authDisabledFeature2: '创建多个用户并基于组的权限管理',
  1725. authDisabledFeature3: '使用 50+ 个细粒度权限控制访问',
  1726. // User deletion
  1727. userHasCreated: '此用户已创建:',
  1728. userItemsQuestion: '您想如何处理这些项目?',
  1729. deleteUserConfirm: '确定要删除此用户吗?',
  1730. actionCannotBeUndone: '此操作无法撤销。',
  1731. // Smart plugs
  1732. addFirstSmartPlug: '添加您的第一个智能插座',
  1733. // Notifications
  1734. providers: '提供商',
  1735. log: '日志',
  1736. testAll: '全部测试',
  1737. testResults: '测试结果',
  1738. testPassedCount: '{{count}} 个通过',
  1739. testFailedCount: '{{count}} 个失败',
  1740. messageTemplates: '消息模板',
  1741. messageTemplatesDescription: '自定义每个事件的通知消息。',
  1742. // API Keys section
  1743. apiKeys: 'API 密钥',
  1744. apiKeysDescription: '创建 API 密钥用于外部集成和 Webhook。',
  1745. createKey: '创建密钥',
  1746. apiKeyCreated: 'API 密钥创建成功',
  1747. apiKeyCopyWarning: '请立即复制此密钥 - 它不会再次显示!',
  1748. useInApiBrowser: '在 API 浏览器中使用',
  1749. createNewApiKey: '创建新 API 密钥',
  1750. keyName: '密钥名称',
  1751. keyNamePlaceholder: '例如:Home Assistant、OctoPrint',
  1752. readStatus: '读取状态',
  1753. readStatusDescription: '查看打印机状态和队列',
  1754. manageQueue: '管理队列',
  1755. manageQueueDescription: '添加和移除打印队列中的项目',
  1756. controlPrinter: '控制打印机',
  1757. controlPrinterDescription: '暂停、继续和停止打印',
  1758. cloudAccess: '允许云端访问',
  1759. cloudAccessDescription: '代表您读取 Bambu Cloud 预设和耗材。需要登录 Bambu Cloud。',
  1760. cloudBadge: '云端',
  1761. updateEnergyCost: '更新电价',
  1762. updateEnergyCostDescription: '允许此密钥向 /settings/electricity-price POST 新的每千瓦时电价。适用于 Home Assistant 动态电价自动化(Tibber、Octopus 等)。这是唯一可通过 API 密钥写入的设置字段。',
  1763. energyCostBadge: '能耗',
  1764. legacyKey: '传统',
  1765. legacyKeyTooltip: '在按用户所有权之前创建;需重建以使用云端访问',
  1766. unnamedKey: '未命名密钥',
  1767. lastUsed: '上次使用',
  1768. read: '读取',
  1769. control: '控制',
  1770. createFirstKey: '创建您的第一个密钥',
  1771. webhookEndpoints: 'Webhook 端点',
  1772. webhookApiKeyHint: '在 X-API-Key 请求头中使用您的 API 密钥。',
  1773. webhook: {
  1774. getAllStatus: '获取所有打印机状态',
  1775. getSpecificStatus: '获取特定打印机状态',
  1776. addToQueue: '添加到打印队列',
  1777. pausePrint: '暂停打印',
  1778. resumePrint: '继续打印',
  1779. stopPrint: '停止打印',
  1780. },
  1781. apiBrowser: 'API 浏览器',
  1782. apiBrowserDescription: '浏览和测试所有可用的 API 端点。',
  1783. apiKeyForTesting: '测试用 API 密钥',
  1784. apiKeyPlaceholder: '在此粘贴您的 API 密钥以测试需要认证的端点...',
  1785. apiKeyHint: '此密钥将作为 X-API-Key 请求头随请求发送。',
  1786. deleteApiKeyTitle: '删除 API 密钥',
  1787. deleteApiKeyMessage: '确定要删除此 API 密钥吗?使用此密钥的所有集成将停止工作。',
  1788. deleteKey: '删除密钥',
  1789. // Filament tab
  1790. amsDisplayThresholds: 'AMS 显示阈值',
  1791. amsThresholdsDescription: '配置 AMS 湿度和温度指示器的颜色阈值。',
  1792. humidity: '湿度',
  1793. goodGreen: '良好(绿色)',
  1794. fairOrange: '一般(橙色)',
  1795. aboveFairBad: '超过一般阈值显示为红色(差)',
  1796. fairAlsoDryingThreshold: '此阈值也用于触发自动干燥',
  1797. temperature: '温度',
  1798. goodBlue: '良好(蓝色)',
  1799. aboveFairHot: '超过一般阈值显示为红色(热)',
  1800. historyRetention: '历史保留',
  1801. keepSensorHistory: '保留传感器历史',
  1802. historyRetentionDescription: '较旧的湿度和温度数据将被自动删除',
  1803. defaultPrintOptions: '默认打印选项',
  1804. defaultPrintOptionsDescription: '设置新打印的默认选项值。可在打印对话框中逐次覆盖。',
  1805. defaultBedLevelling: '热床调平',
  1806. defaultBedLevellingDesc: '打印前自动调平热床',
  1807. defaultFlowCali: '流量校准',
  1808. defaultFlowCaliDesc: '校准挤出流量',
  1809. defaultVibrationCali: '振动校准',
  1810. defaultVibrationCaliDesc: '减少振纹伪影',
  1811. defaultLayerInspect: '首层检测',
  1812. defaultLayerInspectDesc: 'AI首层检测',
  1813. defaultTimelapse: '延时摄影',
  1814. defaultTimelapseDesc: '录制延时摄影视频',
  1815. staggeredStart: '错峰启动',
  1816. staggeredStartDescription: '错峰启动多台打印机批次时的默认组大小和间隔。可在打印对话框中按批次覆盖。',
  1817. plateClear: '热床清空确认',
  1818. requirePlateClear: '需要热床清空确认',
  1819. requirePlateClearDescription: '启用后,调度器会在已完成打印的打印机上启动排队打印之前,等待每台打印机的热床清空确认。禁用后,也会隐藏打印机卡片上的打印板状态标记和“将打印板标记为已清理”按钮。',
  1820. gcodeInjection: 'G-code注入',
  1821. gcodeInjectionDescription: '为Farmloop、SwapMod、AutoClear和Printflow 3D等自动打印系统配置自定义G-code,在打印开始和/或结束时注入。代码片段按打印机型号配置,在队列项目上启用"注入G-code"时应用。',
  1822. gcodeInjectionNoPrinters: '未找到打印机。添加打印机以配置G-code代码片段。',
  1823. gcodeStartLabel: '开始G-code',
  1824. gcodeEndLabel: '结束G-code',
  1825. gcodeStartPlaceholder: '在打印开始前插入的G-code...',
  1826. gcodeEndPlaceholder: '在打印结束后追加的G-code...',
  1827. staggerGroupSize: '组大小',
  1828. staggerGroupSizeHelp: '每组同时启动的打印机数量',
  1829. staggerInterval: '间隔(分钟)',
  1830. staggerIntervalHelp: '每组启动之间的延迟',
  1831. queueDrying: '自动干燥',
  1832. queueDryingDescription: '在队列打印之间,打印机空闲时自动干燥AMS耗材。使用上方的湿度阈值触发干燥。',
  1833. queueDryingEnabled: '启用自动干燥',
  1834. queueDryingEnabledDescription: '当打印机空闲且湿度超过阈值时,自动启动AMS干燥',
  1835. queueDryingBlock: '等待干燥完成',
  1836. queueDryingBlockDescription: '阻止打印队列直到干燥完成。关闭时,打印优先于干燥。',
  1837. ambientDryingEnabled: '环境干燥',
  1838. ambientDryingEnabledDescription: '当空闲打印机的湿度超过阈值时自动干燥耗材,无需排队打印。',
  1839. dryingPresets: '干燥预设',
  1840. dryingPresetsDescription: '每种耗材类型的温度和时长。AMS 2 Pro使用较低温度,AMS-HT支持较高温度。',
  1841. dryingFilament: '耗材',
  1842. printModal: '打印对话框',
  1843. expandCustomMapping: '默认展开自定义映射',
  1844. expandCustomMappingDescription: '打印到多台打印机时,默认展开显示每台打印机的 AMS 映射',
  1845. // User management
  1846. authentication: '身份验证',
  1847. authEnabledDescription: '您的实例已通过用户身份验证保护',
  1848. authDisabledDescription: '启用以要求登录并管理用户访问',
  1849. authDisabledMessage: '启用身份验证以创建用户账户、管理权限并保护您的 Bambuddy 实例。',
  1850. enableAuthentication: '启用身份验证',
  1851. currentUser: '当前用户',
  1852. changePassword: '修改密码',
  1853. admin: '管理员',
  1854. users: '用户',
  1855. addUser: '添加用户',
  1856. groups: '组',
  1857. addGroup: '添加组',
  1858. system: '系统',
  1859. noDescription: '无描述',
  1860. userCount: '{{count}} 个用户',
  1861. permissionCount: '{{count}} 个权限',
  1862. createUser: '创建用户',
  1863. username: '用户名',
  1864. enterUsername: '输入用户名',
  1865. password: '密码',
  1866. enterPassword: '输入密码',
  1867. passwordRequirements: '至少 8 个字符,包含一个大写、一个小写、一个数字和一个特殊字符。',
  1868. confirmPassword: '确认密码',
  1869. confirmPasswordPlaceholder: '确认密码',
  1870. // Title tooltips
  1871. viewReleaseOnGitHub: '在 GitHub 上查看发布',
  1872. turnAllPlugsOn: '开启所有插座',
  1873. turnAllPlugsOff: '关闭所有插座',
  1874. // Modal: Clear logs
  1875. clearNotificationLogs: '清除通知日志',
  1876. clearLogsMessage: '这将永久删除所有 30 天前的通知日志。此操作无法撤销。',
  1877. clearLogs: '清除日志',
  1878. // Modal: Reset UI
  1879. resetUiPreferences: '重置 UI 偏好',
  1880. resetUiPreferencesMessage: '这将重置所有 UI 偏好为默认值:侧边栏顺序、主题、仪表板布局、视图模式和排序偏好。您的打印机、归档和服务器设置不会受到影响。清除后页面将重新加载。',
  1881. resetPreferences: '重置偏好',
  1882. // Modal: Delete group
  1883. deleteGroupTitle: '删除组',
  1884. deleteGroupMessage: '确定要删除此组吗?此组中的用户将失去这些权限。',
  1885. deleteGroup: '删除组',
  1886. // Modal: Disable auth
  1887. disableAuthenticationTitle: '禁用身份验证',
  1888. disableAuthenticationMessage: '确定要禁用身份验证吗?这将使您的 Bambuddy 实例无需登录即可访问。所有用户将保留在数据库中但身份验证将被禁用。',
  1889. disableAuthentication: '禁用身份验证',
  1890. // Additional settings
  1891. configureBambuddy: '配置 Bambuddy',
  1892. systemDefault: '系统默认',
  1893. archiveSettings: '归档设置',
  1894. newWindow: '新窗口',
  1895. embeddedOverlay: '嵌入式叠加层',
  1896. preferredSlicer: '首选切片软件',
  1897. preferredSlicerDescription: '选择要用于打开文件的切片软件',
  1898. orcaslicerKnownIssuesWarning: 'OrcaSlicer 2.3.2 / 2.4.0-dev 存在已知 CLI 错误,无法切片许多 Bambu 创建的 3MF — 见上游 issue #12426(绘制的多挤出机文件 segfault)和 #13386(参数范围严格验证拒绝)。在上游修复发布之前,推荐使用 Bambu Studio。',
  1899. useSlicerApi: '使用切片器 API',
  1900. useSlicerApiDescription: '开启时,「切片」操作打开应用内切片器模态并调用 slicer-API sidecar。关闭时(默认),通过 URI 方案交给桌面切片器。',
  1901. slicerCard: '切片器',
  1902. orcaslicerApiUrl: 'OrcaSlicer sidecar URL',
  1903. bambuStudioApiUrl: 'Bambu Studio sidecar URL',
  1904. slicerApiUrlDescription: 'slicer-API sidecar 容器的 URL。留空以使用 SLICER_API_URL / BAMBU_STUDIO_API_URL 环境变量默认值。',
  1905. slicerBundles: {
  1906. title: '切片器捆绑包',
  1907. description: '导入从 BambuStudio 导出的 Printer Preset Bundle (.bbscfg)(文件 → 导出 → 导出预设捆绑包 → "Printer preset bundle")。导入后,切片请求可以按名称从捆绑包中选择预设,无需重新上传 JSON 配置三元组。',
  1908. uploadButton: '上传捆绑包',
  1909. uploading: '上传中…',
  1910. loading: '加载捆绑包中…',
  1911. empty: '尚未导入捆绑包。',
  1912. summary: '{{processCount}} 个工艺 · {{filamentCount}} 个耗材预设',
  1913. delete: '删除',
  1914. uploadSuccess: '已导入 {{name}}',
  1915. uploadError: '上传捆绑包失败:{{message}}',
  1916. deleteSuccess: '捆绑包已移除',
  1917. deleteError: '删除捆绑包失败:{{message}}',
  1918. confirmDeleteTitle: '移除此捆绑包?',
  1919. confirmDeleteMessage: '引用「{{name}}」的切片请求将失败,直到捆绑包重新导入。',
  1920. },
  1921. externalCameras: '外部摄像头',
  1922. costTracking: '成本追踪',
  1923. printsOnly: '仅打印',
  1924. totalConsumption: '总消耗',
  1925. dataManagement: '数据管理',
  1926. storageUsage: '存储使用情况',
  1927. storageUsageDescription: '按类别的数据使用情况明细',
  1928. storageUsageTotal: '总计',
  1929. storageUsageErrors: '错误',
  1930. storageUsageOtherBreakdown: '其他(包括静态资源、脚本和配置文件)',
  1931. storageUsageSystem: '系统',
  1932. storageUsageData: '数据',
  1933. storageUsageUnavailable: '存储使用信息不可用',
  1934. clearNotificationLogsDescription: '删除 30 天前的通知日志',
  1935. resetUiPreferencesDescription: '重置侧边栏顺序、主题、视图模式和布局偏好。打印机、归档和设置不受影响。',
  1936. enableHomeAssistant: '启用 Home Assistant',
  1937. enableMqtt: '启用 MQTT',
  1938. useTls: '使用 TLS',
  1939. enableMetricsEndpoint: '启用指标端点',
  1940. availableMetrics: '可用指标',
  1941. editUser: '编辑用户',
  1942. deleteUserTitle: '删除用户',
  1943. groupName: '组名称',
  1944. // Placeholders
  1945. leaveEmptyForAnonymous: '留空为匿名',
  1946. leaveEmptyForNoAuth: '留空为无认证',
  1947. enterNewPassword: '输入新密码',
  1948. confirmNewPassword: '确认新密码',
  1949. enterGroupName: '输入组名称',
  1950. enterDescriptionOptional: '输入描述(可选)',
  1951. enterCurrentPassword: '输入当前密码',
  1952. enterNewPasswordMin6: '输入新密码(至少 6 个字符)',
  1953. toast: {
  1954. keyCopied: '密钥已复制到剪贴板',
  1955. copyFailed: '复制密钥失败',
  1956. keyAddedToBrowser: '密钥已添加到 API 浏览器',
  1957. clearLogsFailed: '清除日志失败',
  1958. uiPreferencesReset: 'UI 偏好已重置。刷新中...',
  1959. authDisabled: '身份验证已成功禁用',
  1960. authDisableFailed: '禁用身份验证失败',
  1961. apiKeyCreated: 'API 密钥已创建',
  1962. apiKeyDeleted: 'API 密钥已删除',
  1963. userCreated: '用户创建成功',
  1964. userUpdated: '用户更新成功',
  1965. userDeleted: '用户删除成功',
  1966. groupCreated: '组创建成功',
  1967. groupUpdated: '组更新成功',
  1968. groupDeleted: '组删除成功',
  1969. fillRequiredFields: '请填写所有必填字段',
  1970. passwordsDoNotMatch: '密码不匹配',
  1971. passwordTooShort: '密码至少需要 8 个字符',
  1972. passwordNeedsUppercase: '密码必须至少包含一个大写字母',
  1973. passwordNeedsLowercase: '密码必须至少包含一个小写字母',
  1974. passwordNeedsDigit: '密码必须至少包含一个数字',
  1975. passwordNeedsSpecial: '密码必须至少包含一个特殊字符',
  1976. enterGroupName: '请输入组名称',
  1977. settingsSaved: '设置已保存',
  1978. noPermissionUpdate: '您没有权限更改设置',
  1979. cameraSettingsSaved: '摄像头设置已保存',
  1980. enterCameraUrl: '请输入摄像头 URL',
  1981. passwordChanged: '密码修改成功',
  1982. connectionFailed: '连接失败',
  1983. testFailed: '测试失败',
  1984. cameraConnected: '摄像头已连接{{resolution}}',
  1985. },
  1986. testConnection: '测试连接',
  1987. catalog: {
  1988. spoolCatalog: '耗材目录',
  1989. spoolCatalogDescription: '按品牌/类型的空耗材重量。用于添加耗材时的自动重量查找。',
  1990. searchCatalog: '搜索目录...',
  1991. addNewEntry: '添加新条目',
  1992. namePlaceholder: '名称(例如:Bambu Lab - 塑料)',
  1993. weight: '重量',
  1994. type: '类型',
  1995. default: '默认',
  1996. custom: '自定义',
  1997. noMatch: '没有条目匹配您的搜索',
  1998. empty: '目录中没有条目',
  1999. deleteEntry: '删除条目',
  2000. deleteConfirm: '确定要删除"{{name}}"吗?',
  2001. resetCatalog: '重置目录',
  2002. resetConfirm: '重置目录为默认值?这将移除所有自定义条目。',
  2003. loadFailed: '加载耗材目录失败',
  2004. nameWeightRequired: '名称和重量为必填项',
  2005. entryAdded: '条目已添加',
  2006. addFailed: '添加条目失败',
  2007. entryUpdated: '条目已更新',
  2008. updateFailed: '更新条目失败',
  2009. entryDeleted: '条目已删除',
  2010. deleteFailed: '删除条目失败',
  2011. resetSuccess: '目录已重置为默认值',
  2012. resetFailed: '重置目录失败',
  2013. exported: '已导出 {{count}} 条',
  2014. imported: '已导入 {{added}} 条(跳过 {{skipped}} 条)',
  2015. importFailed: '导入失败:无效的 JSON 格式',
  2016. exportTooltip: '导出目录为 JSON',
  2017. importTooltip: '从 JSON 导入目录',
  2018. resetTooltip: '重置为默认值',
  2019. selectedCount: '已选择 {{count}} 项',
  2020. deleteSelected: '删除所选',
  2021. bulkDeleteConfirm: '确定要删除 {{count}} 个条目吗?',
  2022. bulkDeleted: '已删除 {{count}} 个条目',
  2023. bulkDeleteFailed: '删除条目失败',
  2024. material: '材料',
  2025. spoolWeight: '线轴重量',
  2026. color: '颜色',
  2027. updateSpoolWeight: '更新线轴重量',
  2028. filamentUpdated: '耗材已更新',
  2029. filamentUpdateFailed: '更新耗材失败',
  2030. filamentUpdateInvalid: '耗材数据无效',
  2031. keepExistingSpoolWeight: '保留现有线轴的旧重量',
  2032. keepExistingSpoolWeightDesc: '已使用此耗材类型创建的线轴保留旧的皮重。新线轴使用更新后的值。',
  2033. applyToAllSpools: '应用到所有线轴',
  2034. applyToAllSpoolsDesc: '此耗材类型的所有重量计算立即使用新的皮重。',
  2035. },
  2036. colorCatalog: {
  2037. title: '颜色目录',
  2038. description: '按制造商/材料的耗材颜色。用于添加耗材时的自动颜色查找。',
  2039. searchColors: '搜索颜色...',
  2040. allManufacturers: '所有制造商',
  2041. addNewColor: '添加新颜色',
  2042. manufacturer: '制造商',
  2043. colorName: '颜色名称',
  2044. hex: '十六进制',
  2045. materialOptional: '材料(可选)',
  2046. showing: '显示 {{filtered}} / {{total}} 种颜色',
  2047. noMatch: '没有颜色匹配您的搜索',
  2048. empty: '目录中没有颜色',
  2049. deleteColor: '删除颜色',
  2050. deleteConfirm: '确定要删除"{{name}}"吗?',
  2051. resetCatalog: '重置颜色目录',
  2052. resetConfirm: '重置目录为默认值?这将移除所有自定义颜色。',
  2053. sync: '同步',
  2054. starting: '启动中...',
  2055. syncTooltip: '从 FilamentColors.xyz 同步(2000+ 种颜色,可能需要一分钟)',
  2056. loadFailed: '加载颜色目录失败',
  2057. fieldsRequired: '制造商、颜色名称和十六进制颜色为必填项',
  2058. colorAdded: '颜色已添加',
  2059. addFailed: '添加颜色失败',
  2060. colorUpdated: '颜色已更新',
  2061. updateFailed: '更新颜色失败',
  2062. colorDeleted: '颜色已删除',
  2063. deleteFailed: '删除颜色失败',
  2064. resetSuccess: '颜色目录已重置为默认值',
  2065. resetFailed: '重置目录失败',
  2066. syncUpToDate: '已是最新(检查了 {{count}} 种颜色)',
  2067. syncComplete: '添加了 {{added}} 种新颜色({{skipped}} 种已存在)',
  2068. syncError: '同步错误',
  2069. syncFailed: '从 FilamentColors.xyz 同步失败',
  2070. exported: '已导出 {{count}} 种颜色',
  2071. imported: '已导入 {{added}} 种颜色(跳过 {{skipped}} 种)',
  2072. importFailed: '导入失败:无效的 JSON 格式',
  2073. selectedCount: '已选择 {{count}} 项',
  2074. deleteSelected: '删除所选',
  2075. bulkDeleteConfirm: '确定要删除 {{count}} 种颜色吗?',
  2076. bulkDeleted: '已删除 {{count}} 种颜色',
  2077. bulkDeleteFailed: '删除颜色失败',
  2078. },
  2079. dateFormat: '日期格式',
  2080. dateFormatUs: '美式 (MM/DD/YYYY)',
  2081. dateFormatEu: '欧式 (DD/MM/YYYY)',
  2082. dateFormatIso: 'ISO (YYYY-MM-DD)',
  2083. timeFormat: '时间格式',
  2084. timeFormat12: '12小时制 (3:30 PM)',
  2085. timeFormat24: '24小时制 (15:30)',
  2086. defaultPrinter: '默认打印机',
  2087. defaultPrinterDescription: '为上传、重印和其他操作预选此打印机。',
  2088. slicerBambuStudio: 'Bambu Studio',
  2089. slicerOrcaSlicer: 'OrcaSlicer',
  2090. sidebarOrderDescription: '拖拽侧边栏项目以重新排序。在此处重置为默认顺序。',
  2091. setDefault: '设为默认',
  2092. sidebarOrderSetDefaultHint: '设为默认将当前菜单顺序应用于尚未自定义的用户。',
  2093. sidebarDefaultSet: '已设置默认菜单顺序。',
  2094. sidebarDefaultCleared: '已清除默认菜单顺序。',
  2095. sidebarDefaultFailed: '设置默认菜单顺序失败。',
  2096. reset: '重置',
  2097. darkMode: '深色模式',
  2098. lightMode: '浅色模式',
  2099. active: '(当前)',
  2100. background: '背景',
  2101. accent: '强调色',
  2102. style: '样式',
  2103. bgNeutral: '中性',
  2104. bgWarm: '暖色',
  2105. bgCool: '冷色',
  2106. bgOled: 'OLED 纯黑',
  2107. bgSlate: '石板蓝',
  2108. bgForest: '森林绿',
  2109. accentGreen: '绿色',
  2110. accentTeal: '青色',
  2111. accentBlue: '蓝色',
  2112. accentOrange: '橙色',
  2113. accentPurple: '紫色',
  2114. accentRed: '红色',
  2115. styleClassic: '经典',
  2116. styleGlow: '发光',
  2117. styleVibrant: '鲜艳',
  2118. themeToggleHint: '使用侧边栏中的太阳/月亮图标在深色和浅色模式之间切换。',
  2119. autoArchivePrints: '自动归档打印',
  2120. autoArchiveDescription: '打印完成时自动保存3MF文件',
  2121. saveThumbnailsDescription: '从3MF文件中提取并保存预览图像',
  2122. captureFinishPhotoDescription: '打印完成时从打印机摄像头拍照',
  2123. ffmpegNotInstalled: '未安装ffmpeg',
  2124. ffmpegRequired: '摄像头捕获需要ffmpeg。通过 <brew>brew install ffmpeg</brew>(macOS)或 <apt>apt install ffmpeg</apt>(Linux)安装。',
  2125. camera: '摄像头',
  2126. cameraViewMode: '摄像头查看模式',
  2127. cameraOverlayDescription: '摄像头在主屏幕上以可调大小的覆盖层打开',
  2128. cameraWindowDescription: '摄像头在单独的浏览器窗口中打开',
  2129. externalCamerasDescription: '配置外部摄像头以替换内置打印机摄像头。支持MJPEG流、RTSP、HTTP快照和USB摄像头(V4L2)。启用后,外部摄像头将用于实时查看和完成照片。',
  2130. cameraPlaceholderUsb: '设备路径 (/dev/video0)',
  2131. cameraPlaceholderUrl: '摄像头URL (rtsp://... 或 http://...)',
  2132. cameraTypeMjpeg: 'MJPEG 流',
  2133. cameraTypeRtsp: 'RTSP 流',
  2134. cameraTypeSnapshot: 'HTTP 快照',
  2135. cameraTypeUsb: 'USB 摄像头 (V4L2)',
  2136. cameraSnapshotUrl: '快照 URL(可选)',
  2137. cameraSnapshotUrlPlaceholder: 'http://192.168.1.61:1984/api/frame.jpeg?src=printer',
  2138. cameraSnapshotUrlHelp: '用于通知缩略图、完成照片、层延时摄影帧和打印板检测的单帧 URL。延时摄影和打印板检测各自需要自己的每打印机开关 — 此 URL 只是它们激活时拉取的图像源。留空以从上方实时流捕获。适用于 go2rtc(/api/frame.jpeg)和具有专用快照端点的 IP 摄像头。',
  2139. cameraRotation: '旋转',
  2140. test: '测试',
  2141. connected: '已连接',
  2142. disconnected: '未连接',
  2143. currency: '货币',
  2144. defaultFilamentCost: '默认耗材成本(每公斤)',
  2145. electricityCost: '每千瓦时电费',
  2146. energyDisplayMode: '能源显示模式',
  2147. energyModePrintDescription: '仪表板显示打印期间使用的能源总和',
  2148. energyModeTotalDescription: '仪表板显示智能插座的累计能源',
  2149. fileManager: '文件管理器',
  2150. createArchiveEntry: '打印时创建归档条目',
  2151. createArchiveEntryDescription: '从文件管理器打印时,可选择创建归档条目',
  2152. lowDiskSpaceWarning: '磁盘空间不足警告',
  2153. lowDiskSpaceDescription: '当可用磁盘空间低于此阈值时显示警告',
  2154. printerFirmware: '打印机固件',
  2155. checkFirmwareDescription: '检查Bambu Lab的打印机固件更新',
  2156. bambuddySoftware: 'Bambuddy 软件',
  2157. autoCheckDescription: '启动时自动检查新版本',
  2158. checkNow: '立即检查',
  2159. updateAvailableVersion: '可用更新:v{{version}}',
  2160. releaseNotes: '发布说明',
  2161. updateViaDocker: '通过 Docker Compose 更新:',
  2162. updateViaHomeAssistant: '更新由 Home Assistant Supervisor 管理。请在 Home Assistant 中打开 设置 → 加载项 → Bambuddy 以安装新版本。',
  2163. installUpdate: '安装更新',
  2164. latestVersionRunning: '您正在运行最新版本',
  2165. failedToCheckUpdates: '检查更新失败:{{error}}',
  2166. backupRestore: '备份与恢复',
  2167. backupRestoreDescription: '导出/导入设置并配置GitHub备份',
  2168. goToBackup: '前往备份',
  2169. externalUrl: '外部URL',
  2170. externalUrlDescription: 'Bambuddy可访问的外部URL。用于通知图像和外部集成。',
  2171. bambuddyUrl: 'Bambuddy URL',
  2172. externalUrlHint: '包含协议和端口(例如:http://192.168.1.100:8000)',
  2173. ftpRetry: 'FTP重试',
  2174. ftpRetryDescription: '当打印机WiFi不稳定时重试FTP操作。适用于3MF下载、打印上传、延时摄影下载和固件更新。',
  2175. autoRetryDescription: '自动重试失败的FTP操作',
  2176. retryAttempts: '重试次数',
  2177. retryDelay: '重试延迟',
  2178. connectionTimeout: '连接超时',
  2179. time_one: '{{count}}次',
  2180. time_other: '{{count}}次',
  2181. second_one: '{{count}}秒',
  2182. second_other: '{{count}}秒',
  2183. nSeconds: '{{count}}秒',
  2184. increaseForWeakWifi: '对WiFi信号弱的打印机增加此值',
  2185. homeAssistant: 'Home Assistant',
  2186. homeAssistantFullDescription: '连接到Home Assistant,通过HA REST API控制智能插座。支持switch、light、input_boolean和script实体。',
  2187. homeAssistantUrl: 'Home Assistant URL',
  2188. longLivedAccessToken: '长期访问令牌',
  2189. haTokenHint: '在HA中创建令牌:个人资料 → 长期访问令牌 → 创建令牌',
  2190. connectionSuccessful: '连接成功',
  2191. connectionFailed: '连接失败',
  2192. haConnectionSuccess: '已成功连接到Home Assistant。',
  2193. haConnectionFailed: '连接Home Assistant失败。',
  2194. mqttPublishing: 'MQTT发布',
  2195. mqttDescription: '将BamBuddy事件发布到外部MQTT代理,用于与Node-RED、Home Assistant和其他自动化系统集成。',
  2196. mqttEnableDescription: '向外部MQTT代理发布事件',
  2197. brokerHostname: '代理主机名',
  2198. port: '端口',
  2199. usernameOptional: '用户名(可选)',
  2200. passwordOptional: '密码(可选)',
  2201. topicPrefix: '主题前缀',
  2202. topicPrefixHint: '主题格式:{{prefix}}/printers/<serial>/status 等',
  2203. prometheusMetrics: 'Prometheus 指标',
  2204. prometheusEndpointDescription: '在 <code>/api/v1/metrics</code> 公开打印机指标,用于Prometheus/Grafana监控。',
  2205. bearerTokenOptional: 'Bearer令牌(可选)',
  2206. bearerTokenHint: '设置后,请求必须包含 <code>Authorization: Bearer <token></code>',
  2207. metricsConnectionStatus: '连接状态',
  2208. metricsPrinterState: '打印机状态(空闲/打印中等)',
  2209. metricsPrintProgress: '打印进度 0-100%',
  2210. metricsBedTemp: '热床温度',
  2211. metricsNozzleTemp: '喷嘴温度',
  2212. metricsPrintsTotal: '按结果分类的总打印数',
  2213. metricsMore: '...以及更多(层数、风扇、队列、耗材用量)',
  2214. smartPlugsDescription: '连接智能插座(Tasmota或Home Assistant)以自动化电源控制并跟踪打印机的能源使用情况。',
  2215. allOn: '全部开启',
  2216. allOff: '全部关闭',
  2217. addSmartPlug: '添加智能插座',
  2218. energySummary: '能源概要',
  2219. currentPower: '当前功率',
  2220. plugsOnline: '{{reachable}}/{{total}} 个插座在线',
  2221. today: '今天',
  2222. yesterday: '昨天',
  2223. total: '总计',
  2224. enablePlugsForSummary: '启用插座以查看能源概要',
  2225. addNotificationProvider: '添加',
  2226. systemBadge: '(系统)',
  2227. creating: '创建中...',
  2228. changing: '修改中...',
  2229. deleteUserAndItems: '删除用户及其所有项目',
  2230. deleteUserKeepItems: '删除用户,保留项目(将变为无主项目)',
  2231. ok: '确定',
  2232. // 2FA settings
  2233. twoFa: {
  2234. totpTitle: '身份验证器应用 (TOTP)',
  2235. totpDesc: '使用 Google Authenticator、Aegis 或 Authy 等应用。',
  2236. emailOtpTitle: '邮件 OTP',
  2237. emailOtpDesc: '登录时向 {{email}} 发送一次性验证码。',
  2238. emailOtpNoEmail: '请先为账户添加邮箱地址以启用此方式。',
  2239. addEmailFirst: '您的账户没有邮箱地址,请联系管理员添加。',
  2240. setupTotp: '设置身份验证器应用',
  2241. setupAuthApp: '设置身份验证器应用',
  2242. setupInstructions: '使用身份验证器应用扫描二维码,然后输入验证码确认。',
  2243. manualEntry: '无法扫描?请手动输入此密钥:',
  2244. scannedContinue: '已扫描 — 继续',
  2245. enterCodeToConfirm: '请输入身份验证器应用中的6位验证码以确认设置。',
  2246. activate: '激活',
  2247. disableTotp: '停用身份验证器',
  2248. disableConfirmHint: '请输入有效的 TOTP 码或备用码来停用身份验证器。',
  2249. totpDisabled: '身份验证器应用已停用。',
  2250. emailOtpEnabled: '邮件 OTP 已启用。',
  2251. emailOtpDisabled: '邮件 OTP 已停用。',
  2252. smtpRequired: '请先配置并测试SMTP设置。',
  2253. invalidCode: '无效验证码,请重试。',
  2254. enableEmailOtp: '启用邮件 OTP',
  2255. disableEmailOtp: '停用邮件 OTP',
  2256. emailSetupEnterCode: '验证码已发送至您的邮箱地址。请在下方输入以确认您拥有此邮箱。',
  2257. verifyAndEnable: '验证并启用',
  2258. emailDisablePasswordHint: '请输入您的账户密码以确认停用邮件 OTP。',
  2259. passwordPlaceholder: '输入您的密码',
  2260. backupCodesTitle: '保存备用码',
  2261. backupCodesWarning: '请将这些码保存在安全的地方。每个码只能使用一次,且不会再次显示。',
  2262. backupCodesRemaining: '剩余 {{count}} 个备用码',
  2263. savedCodes: '已保存',
  2264. regenBackup: '重新生成备用码',
  2265. regenBackupHint: '输入当前 TOTP 码以生成 10 个新备用码,所有现有备用码将失效。',
  2266. newBackupCodes: '新备用码',
  2267. linkedAccounts: '已关联的 SSO 账户',
  2268. linkedAccountsDesc: '以下外部身份提供商已与您的账户关联。',
  2269. oidcUnlinked: '账户已解除关联。',
  2270. },
  2271. // OIDC provider settings
  2272. oidc: {
  2273. title: 'SSO / OIDC 提供商',
  2274. desc: '配置 OpenID Connect 提供商以实现单点登录。',
  2275. addProvider: '添加提供商',
  2276. newProvider: '新提供商',
  2277. empty: '尚未配置 OIDC 提供商。',
  2278. created: '提供商已创建。',
  2279. updated: '提供商已更新。',
  2280. deleted: '提供商已删除。',
  2281. refreshIcon: '刷新图标',
  2282. removeIcon: '移除图标',
  2283. iconRefreshed: '图标已刷新。',
  2284. iconRemoved: '图标已移除。',
  2285. iconFetchFailed: '无法从提供商 URL 获取图标。',
  2286. deleteTitle: '删除提供商',
  2287. deleteMessage: '删除"{{name}}"?所有关联账户将断开连接。',
  2288. form: {
  2289. name: '显示名称',
  2290. issuerUrl: '颁发者 URL',
  2291. clientId: '客户端 ID',
  2292. clientSecret: '客户端密钥',
  2293. scopes: '作用域',
  2294. iconUrl: '图标 URL(可选)',
  2295. enabled: '已启用',
  2296. autoCreate: '自动创建用户',
  2297. autoCreateDesc: '首次登录时自动创建本地账户。',
  2298. autoLink: '自动关联已有账户',
  2299. autoLinkDesc: '首次登录时通过邮箱匹配现有本地账户并自动关联。',
  2300. secretHint: '留空以保留当前',
  2301. secretPlaceholder: '新密钥',
  2302. emailClaim: '邮箱声明',
  2303. emailClaimDesc: "用作邮箱身份的 JWT 声明。Azure Entra ID 请使用 'preferred_username' 或 'upn'(不发送 email_verified)。仅使用可信的声明名称。",
  2304. emailClaimPlaceholder: '邮箱',
  2305. emailClaimCustomClaimAutoLinkWarning: '自定义声明仅在值由租户管理时(例如 Azure Entra ID 的 upn / preferred_username)对自动关联安全。如果您的 IdP 允许用户自我声明此声明,请勿启用自动关联。',
  2306. requireEmailVerified: '要求邮箱已验证',
  2307. requireEmailVerifiedDesc: '仅在提供商将邮箱声明标记为已验证时才接受。',
  2308. requireEmailVerifiedWarning: '警告:将在未经验证的情况下接受邮箱。仅对受信任的提供商使用。',
  2309. requireEmailVerifiedAutoLink: '请先禁用自动关联以更改此设置。',
  2310. defaultGroup: '默认组',
  2311. defaultGroupDesc: '自动创建用户时分配的组。未设置时回退到 Viewers。',
  2312. defaultGroupViewersFallback: 'Viewers(默认)',
  2313. },
  2314. },
  2315. // TODO: translate encryption keys
  2316. encryption: {
  2317. title: 'MFA 加密状态',
  2318. enabledFromEnv: '已启用静态加密(密钥来自 MFA_ENCRYPTION_KEY 环境变量)',
  2319. enabledFromFile: '已启用静态加密(密钥从数据目录加载)',
  2320. enabledGenerated: '使用自动生成的密钥启用静态加密',
  2321. notConfigured: '未配置静态加密',
  2322. notConfiguredDesc: 'TOTP 密钥和 OIDC client_secrets 以明文存储。请设置 MFA_ENCRYPTION_KEY 或使用可写数据目录重启 Bambuddy 以自动生成。',
  2323. allEncrypted: '所有 MFA 密钥均已静态加密。',
  2324. legacyRowsLabel: '旧版明文行',
  2325. encryptedRowsLabel: '已加密行',
  2326. legacyRowsWarning: '检测到 {{count}} 个旧版明文行。请重新保存 OIDC 提供商或重新注册用户的身份验证器应用,以迁移到加密存储。',
  2327. backupHint: '自动生成的密钥存储在 DATA_DIR/.mfa_encryption_key 中,并包含在本地备份 ZIP 中。请保护备份安全或显式设置 MFA_ENCRYPTION_KEY。',
  2328. decryptionBrokenTitle: '加密密钥缺失',
  2329. decryptionBrokenError: '无法解密 {{count}} 条加密记录,因为加密密钥不再可用。请恢复以前的 MFA_ENCRYPTION_KEY 或 DATA_DIR/.mfa_encryption_key 以恢复访问。',
  2330. migrationErrorWarning: '{{count}} 行旧数据在启动时未能重新加密。请检查服务器日志并重启 Bambuddy 以重试。',
  2331. },
  2332. },
  2333. // Notifications (for push notifications)
  2334. notification: {
  2335. printStarted: {
  2336. title: '打印已开始',
  2337. body: '{{printer}}:{{filename}} 已开始打印',
  2338. },
  2339. printCompleted: {
  2340. title: '打印已完成',
  2341. body: '{{printer}}:{{filename}} 已成功完成',
  2342. },
  2343. printFailed: {
  2344. title: '打印失败',
  2345. body: '{{printer}}:{{filename}} 打印失败',
  2346. },
  2347. printStopped: {
  2348. title: '打印已停止',
  2349. body: '{{printer}}:{{filename}} 已停止',
  2350. },
  2351. printProgress: {
  2352. title: '打印进度',
  2353. body: '{{printer}}:{{filename}} 已完成 {{percent}}%',
  2354. },
  2355. printerOffline: {
  2356. title: '打印机离线',
  2357. body: '{{printer}} 已离线',
  2358. },
  2359. printerError: {
  2360. title: '打印机错误',
  2361. body: '{{printer}}:{{error}}',
  2362. },
  2363. filamentLow: {
  2364. title: '耗材不足',
  2365. body: '{{printer}}:耗材即将用完',
  2366. },
  2367. maintenanceDue: {
  2368. title: '维护到期',
  2369. body: '{{printer}}:{{items}} 需要关注',
  2370. },
  2371. },
  2372. // Errors
  2373. errors: {
  2374. generic: '出了点问题',
  2375. networkError: '网络错误。请检查您的连接。',
  2376. notFound: '未找到',
  2377. unauthorized: '未授权',
  2378. serverError: '服务器错误',
  2379. validationError: '请检查您的输入',
  2380. printerConnectionFailed: '连接打印机失败',
  2381. saveFailed: '保存更改失败',
  2382. deleteFailed: '删除失败',
  2383. loadFailed: '加载数据失败',
  2384. },
  2385. // HMS Errors modal
  2386. hmsErrors: {
  2387. title: '错误 - {{name}}',
  2388. noErrors: '无错误',
  2389. viewOnWiki: '在拓竹 Wiki 上查看',
  2390. clearInstructions: '在打印机上清除错误以在此处消除它们。',
  2391. clearErrors: '清除错误',
  2392. clearSuccess: 'HMS 错误已清除',
  2393. clearFailed: '清除 HMS 错误失败',
  2394. },
  2395. // MQTT Debug modal
  2396. mqttDebug: {
  2397. title: 'MQTT 调试日志',
  2398. searchPlaceholder: '搜索主题或负载...',
  2399. noMessages: '尚未记录消息',
  2400. startLoggingHint: '点击"开始记录"以开始捕获 MQTT 消息',
  2401. noMessagesMatch: '没有消息匹配您的筛选条件',
  2402. adjustFilterHint: '尝试调整您的搜索或筛选条件',
  2403. incoming: '传入',
  2404. outgoing: '传出',
  2405. loggingStopped: '记录已停止',
  2406. loggingActive: '记录中 - 消息将自动刷新',
  2407. startLogging: '开始记录',
  2408. stopLogging: '停止记录',
  2409. clearLog: '清除日志',
  2410. topic: '主题',
  2411. timestamp: '时间戳',
  2412. direction: '方向',
  2413. all: '全部',
  2414. },
  2415. // Printer File Manager modal (printer internal storage)
  2416. printerFiles: {
  2417. title: '文件管理器',
  2418. storageUsed: '已用:',
  2419. storageFree: '剩余:',
  2420. filterPlaceholder: '筛选文件...',
  2421. deleteButton: '删除',
  2422. deleteFiles: '删除 {{count}} 个文件',
  2423. deleteFileConfirm: '删除"{{name}}"?此操作无法撤销。',
  2424. deleteFilesConfirm: '删除 {{count}} 个选中的文件?此操作无法撤销。',
  2425. noFiles: '打印机上没有文件',
  2426. loadingFiles: '加载文件中...',
  2427. failedToLoad: '加载文件失败',
  2428. toast: {
  2429. filesDeleted: '已删除 {{count}} 个文件',
  2430. deleteFailed: '删除失败:{{error}}',
  2431. },
  2432. },
  2433. // Confirmations
  2434. confirm: {
  2435. delete: '确定要删除吗?',
  2436. unsavedChanges: '您有未保存的更改。确定要离开吗?',
  2437. clearQueue: '确定要清空队列吗?',
  2438. },
  2439. // Login page
  2440. login: {
  2441. title: 'Bambuddy 登录',
  2442. subtitle: '登录您的账户',
  2443. username: '用户名',
  2444. usernamePlaceholder: '输入您的用户名',
  2445. usernameOrEmail: '用户名或邮箱',
  2446. usernameOrEmailPlaceholder: '用户名或 @ 邮箱',
  2447. password: '密码',
  2448. passwordPlaceholder: '输入您的密码',
  2449. signIn: '登录',
  2450. signingIn: '登录中...',
  2451. rememberMe: '记住我',
  2452. forgotPassword: '忘记密码?',
  2453. loginSuccess: '登录成功',
  2454. loginFailed: '登录失败',
  2455. enterCredentials: '请输入用户名和密码',
  2456. enterEmail: '请输入您的电子邮件地址',
  2457. oidcLoginFailed: 'OIDC 登录失败',
  2458. oidcErrors: {
  2459. providerError: '身份提供商返回了一个错误',
  2460. missingParameters: 'OIDC 回调缺少必要参数',
  2461. invalidState: 'OIDC 状态无效或已被使用',
  2462. stateExpired: 'OIDC 登录会话已过期,请重试',
  2463. providerNotFound: '未找到 OIDC 提供商',
  2464. discoveryFailed: '无法获取 OIDC 发现文档',
  2465. invalidDiscovery: 'OIDC 发现文档无效',
  2466. networkError: 'OIDC 令牌交换时出现网络错误',
  2467. badResponse: 'OIDC 令牌交换时收到意外响应',
  2468. noIdToken: 'OIDC 提供商未返回 ID 令牌',
  2469. validationFailed: 'OIDC 令牌验证失败',
  2470. nonceMismatch: 'OIDC nonce 不匹配,可能存在重放攻击',
  2471. missingSubClaim: 'OIDC 令牌缺少 sub 声明',
  2472. noLinkedAccount: '没有与此 OIDC 身份关联的本地帐户',
  2473. accountInactive: '您的帐户已被停用',
  2474. userResolutionFailed: '无法解析您的帐户',
  2475. internalError: 'OIDC 登录过程中发生内部错误',
  2476. tokenExchangeFailed: 'OIDC 令牌交换失败',
  2477. },
  2478. forgotPasswordTitle: '忘记密码',
  2479. forgotPasswordMessage: '如果您忘记了密码,请联系系统管理员进行重置。',
  2480. forgotPasswordEmailMessage: '输入您的邮箱地址,我们将向您发送新密码。',
  2481. emailAddress: '邮箱地址',
  2482. emailPlaceholder: 'your.email@example.com',
  2483. cancel: '取消',
  2484. sending: '发送中...',
  2485. sendResetEmail: '发送重置邮件',
  2486. howToReset: '如何重置密码:',
  2487. resetStep1: '联系您的 Bambuddy 管理员',
  2488. resetStep2: '请他们在用户管理中重置您的密码',
  2489. resetStep3: '他们可以为您设置一个临时密码',
  2490. resetStep4: '使用新密码登录并在设置中修改密码',
  2491. gotIt: '知道了',
  2492. resetPassword: {
  2493. title: '设置新密码',
  2494. subtitle: '请在下方输入并确认您的新密码。',
  2495. newPassword: '新密码',
  2496. newPasswordPlaceholder: '至少 8 个字符',
  2497. confirmPassword: '确认密码',
  2498. confirmPasswordPlaceholder: '重复输入新密码',
  2499. saving: '保存中…',
  2500. submit: '设置新密码',
  2501. backToLogin: '返回登录',
  2502. passwordsDoNotMatch: '密码不匹配',
  2503. passwordTooShort: '密码至少需要 8 个字符',
  2504. resetFailed: '密码重置失败。链接可能已过期。',
  2505. },
  2506. twoFA: {
  2507. title: '两步验证',
  2508. subtitle: '您的账户已启用两步验证。请在下方输入验证码。',
  2509. methodAuthenticator: '身份验证器应用',
  2510. methodEmail: '邮箱验证码',
  2511. methodBackup: '备用恢复码',
  2512. instructionsTotp: '请打开您的身份验证器应用,输入 Bambuddy 的 6 位验证码。',
  2513. instructionsEmail: '6 位验证码已发送至您的邮箱,有效期为 10 分钟。',
  2514. instructionsEmailNotSent: '点击下方按钮,通过邮件获取验证码。',
  2515. instructionsBackup: '请输入您的一个 8 位备用恢复码。每个恢复码只能使用一次。',
  2516. sendCodeButton: '发送邮箱验证码',
  2517. sendingCode: '发送中...',
  2518. resendCode: '重新发送验证码',
  2519. codeLabel: '验证码',
  2520. backupCodeLabel: '备用恢复码',
  2521. codePlaceholder: '000000',
  2522. backupCodePlaceholder: 'XXXXXXXX',
  2523. verifyButton: '验证',
  2524. verifyingButton: '验证中...',
  2525. backToLogin: '← 返回登录页面',
  2526. orContinueWith: '或通过以下方式登录',
  2527. signInWith: '使用 {{provider}} 登录',
  2528. enterCode: '请输入验证码',
  2529. sendCodeFailed: '验证码发送失败',
  2530. invalidCode: '无效验证码,请重试。',
  2531. },
  2532. },
  2533. // Setup page
  2534. setup: {
  2535. title: 'Bambuddy 设置',
  2536. subtitle: '为您的 Bambuddy 实例配置身份验证',
  2537. enableAuth: '启用身份验证',
  2538. adminAccount: '管理员账户',
  2539. adminAccountDesc: '如果管理员用户已存在,将使用现有管理员账户启用身份验证。如需使用现有管理员,请将下方字段留空,或输入新凭据创建新管理员用户。',
  2540. adminUsername: '管理员用户名',
  2541. adminPassword: '管理员密码',
  2542. optionalIfAdminExists: '(如管理员用户已存在则为可选)',
  2543. adminUsernamePlaceholder: '输入管理员用户名(可选)',
  2544. adminPasswordPlaceholder: '输入管理员密码(可选)',
  2545. confirmPassword: '确认密码',
  2546. confirmPasswordPlaceholder: '确认管理员密码',
  2547. settingUp: '设置中...',
  2548. completeSetup: '完成设置',
  2549. toast: {
  2550. authEnabledAdminCreated: '身份验证已启用并创建了管理员用户',
  2551. authEnabledExistingAdmins: '使用现有管理员用户启用了身份验证',
  2552. setupCompleted: '设置完成',
  2553. enterBothCredentials: '请输入管理员用户名和密码,或将两者留空以使用现有管理员用户',
  2554. passwordsDoNotMatch: '密码不匹配',
  2555. passwordTooShort: '密码至少需要 6 个字符',
  2556. },
  2557. },
  2558. // Password change
  2559. changePassword: {
  2560. title: '修改密码',
  2561. currentPassword: '当前密码',
  2562. currentPasswordPlaceholder: '输入当前密码',
  2563. newPassword: '新密码',
  2564. newPasswordPlaceholder: '输入新密码(至少 6 个字符)',
  2565. confirmPassword: '确认新密码',
  2566. confirmPasswordPlaceholder: '确认新密码',
  2567. passwordsDoNotMatch: '密码不匹配',
  2568. passwordTooShort: '密码至少需要 6 个字符',
  2569. changing: '修改中...',
  2570. success: '密码修改成功',
  2571. failed: '密码修改失败',
  2572. },
  2573. // Plate detection alert
  2574. plateAlert: {
  2575. title: '打印已暂停!',
  2576. message: '在构建板上检测到物体。打印已自动暂停。请清理打印板并继续打印。',
  2577. understand: '我知道了',
  2578. },
  2579. // Camera page
  2580. camera: {
  2581. title: '摄像头视图',
  2582. invalidPrinterId: '无效的打印机 ID',
  2583. live: '实时',
  2584. snapshot: '快照',
  2585. restartStream: '重启流',
  2586. refreshSnapshot: '刷新快照',
  2587. fullscreen: '全屏',
  2588. exitFullscreen: '退出全屏',
  2589. connectingToCamera: '连接摄像头中...',
  2590. capturingSnapshot: '拍摄快照中...',
  2591. connectionLost: '连接已断开',
  2592. connectionFailed: '摄像头连接失败',
  2593. reconnecting: '{{countdown}} 秒后重新连接...(第 {{attempt}}/{{max}} 次尝试)',
  2594. reconnectNow: '立即重新连接',
  2595. cameraUnavailable: '摄像头不可用',
  2596. cameraUnavailableDesc: '请确保打印机已通电并已连接。',
  2597. noCamera: '无可用摄像头',
  2598. retry: '重试',
  2599. cameraStream: '摄像头流',
  2600. zoomOut: '缩小',
  2601. zoomIn: '放大',
  2602. resetZoom: '重置缩放',
  2603. recording: '录制中',
  2604. startRecording: '开始录制',
  2605. stopRecording: '停止录制',
  2606. chamberLight: '切换腔室灯',
  2607. unavailable: '摄像头不可用',
  2608. diagnose: {
  2609. button: '诊断',
  2610. modalTitle: '摄像头诊断',
  2611. running: '正在运行诊断...',
  2612. runFailed: '无法运行诊断: {{error}}',
  2613. retry: '重新运行',
  2614. stage: {
  2615. tcp_reachable: '网络可达性',
  2616. first_frame: '画面捕获',
  2617. live_stream_active: '直播流正在进行',
  2618. },
  2619. summary: {
  2620. all_ok: '摄像头工作正常。诊断已成功完成所有阶段。',
  2621. live_stream_active_healthy: '摄像头正在传输最新画面 — 无需测试。',
  2622. printer_unreachable: '无法访问打印机。请检查 IP 地址、网络连接以及打印机是否已开机。',
  2623. camera_port_closed: '打印机可访问,但摄像头端口已关闭。请确保打印机设置中已启用仅 LAN 模式和开发者模式。',
  2624. no_frame: '已连接到摄像头,但未收到画面。请重试或检查打印机设置中摄像头是否已启用。',
  2625. unknown_failure: '摄像头诊断因未知原因失败。请查看支持日志了解详情。',
  2626. },
  2627. meta: {
  2628. protocol: '协议',
  2629. port: '端口',
  2630. profile: '配置',
  2631. },
  2632. },
  2633. },
  2634. // Groups management
  2635. groups: {
  2636. title: '组管理',
  2637. subtitle: '管理访问控制的权限组',
  2638. backToSettings: '返回设置',
  2639. createGroup: '创建组',
  2640. noPermission: '您没有访问此页面的权限。',
  2641. system: '系统',
  2642. noDescription: '无描述',
  2643. usersCount: '{{count}} 个用户',
  2644. permissionsCount: '{{count}} 个权限',
  2645. edit: '编辑',
  2646. delete: '删除',
  2647. toast: {
  2648. created: '组创建成功',
  2649. updated: '组更新成功',
  2650. deleted: '组删除成功',
  2651. enterGroupName: '请输入组名称',
  2652. },
  2653. modal: {
  2654. editGroup: '编辑组',
  2655. createGroup: '创建组',
  2656. cancel: '取消',
  2657. saving: '保存中...',
  2658. creating: '创建中...',
  2659. saveChanges: '保存更改',
  2660. },
  2661. form: {
  2662. groupName: '组名称',
  2663. groupNamePlaceholder: '输入组名称',
  2664. systemGroupWarning: '系统组名称不可更改',
  2665. description: '描述',
  2666. descriptionPlaceholder: '输入描述(可选)',
  2667. permissions: '权限(已选 {{count}} 个)',
  2668. },
  2669. deleteModal: {
  2670. title: '删除组',
  2671. message: '确定要删除此组吗?此组中的用户将失去这些权限。',
  2672. confirm: '删除组',
  2673. },
  2674. editor: {
  2675. title: '编辑组',
  2676. createTitle: '创建组',
  2677. search: '搜索权限...',
  2678. selectAll: '全选',
  2679. clearAll: '清除全部',
  2680. permissionsSelected: '已选 {{count}} 个',
  2681. noResults: '没有权限匹配您的搜索',
  2682. },
  2683. },
  2684. // Users management
  2685. users: {
  2686. title: '用户管理',
  2687. subtitle: '管理用户及其对 Bambuddy 实例的访问',
  2688. backToSettings: '返回设置',
  2689. createUser: '创建用户',
  2690. noPermission: '您没有访问此页面的权限。',
  2691. admin: '管理员',
  2692. noGroups: '无组',
  2693. active: '活跃',
  2694. inactive: '非活跃',
  2695. edit: '编辑',
  2696. delete: '删除',
  2697. system: '系统',
  2698. noGroupsAvailable: '无可用组',
  2699. table: {
  2700. username: '用户名',
  2701. groups: '组',
  2702. status: '状态',
  2703. actions: '操作',
  2704. },
  2705. toast: {
  2706. created: '用户创建成功',
  2707. updated: '用户更新成功',
  2708. deleted: '用户删除成功',
  2709. fillRequired: '请填写所有必填字段',
  2710. passwordsDoNotMatch: '密码不匹配',
  2711. passwordTooShort: '密码至少需要 6 个字符',
  2712. ldapProvisioned: '已创建 LDAP 用户「{{username}}」',
  2713. },
  2714. modal: {
  2715. createUser: '创建用户',
  2716. editUser: '编辑用户',
  2717. cancel: '取消',
  2718. creating: '创建中...',
  2719. saving: '保存中...',
  2720. saveChanges: '保存更改',
  2721. advancedAuthSubtitle: '使用高级认证',
  2722. // Manual LDAP provisioning (#1298) — English fallbacks
  2723. tabsAriaLabel: '用户来源',
  2724. localTab: '本地',
  2725. ldapTab: 'LDAP',
  2726. ldapSearchLabel: '搜索目录',
  2727. ldapSearchPlaceholder: '输入用户名、姓名或电子邮件...',
  2728. ldapMinChars: '输入至少 2 个字符以搜索',
  2729. ldapTypeToSearch: '开始输入以搜索 LDAP 目录',
  2730. ldapSearching: '搜索目录中...',
  2731. ldapNoResults: '目录中没有匹配的用户',
  2732. ldapSearchError: '目录搜索失败。请检查 LDAP 服务器状态。',
  2733. ldapAlreadyProvisioned: '已创建',
  2734. ldapSelectedLabel: '已选',
  2735. ldapProvision: '创建用户',
  2736. ldapProvisioning: '创建中...',
  2737. ldapErrorProvision: '创建失败。请检查 LDAP 服务器状态后重试。',
  2738. },
  2739. form: {
  2740. username: '用户名',
  2741. usernamePlaceholder: '输入用户名',
  2742. email: '邮箱',
  2743. emailPlaceholder: 'user@example.com',
  2744. password: '密码',
  2745. passwordPlaceholder: '输入密码',
  2746. confirmPassword: '确认密码',
  2747. confirmPasswordPlaceholder: '确认密码',
  2748. newPasswordPlaceholder: '输入新密码',
  2749. confirmNewPasswordPlaceholder: '确认新密码',
  2750. leaveBlankToKeep: '留空以保持当前值',
  2751. groups: '组',
  2752. optional: '可选',
  2753. autoGeneratedPassword: '将自动生成安全密码并通过邮件发送给用户。',
  2754. passwordManagedByAdvancedAuth: '密码由高级认证管理。使用"重置密码"通过邮件向用户发送新密码。',
  2755. resetPassword: '重置密码',
  2756. resettingPassword: '重置密码中...',
  2757. },
  2758. deleteModal: {
  2759. title: '删除用户',
  2760. message: '确定要删除此用户吗?此操作无法撤销。',
  2761. confirm: '删除用户',
  2762. },
  2763. },
  2764. // Stream overlay
  2765. streamOverlay: {
  2766. title: '流叠加层',
  2767. invalidPrinterId: '无效的打印机 ID',
  2768. cameraStream: '摄像头流',
  2769. progress: '进度',
  2770. eta: '预计完成时间',
  2771. printerIdle: '打印机空闲',
  2772. printerOffline: '打印机离线',
  2773. status: {
  2774. printing: '打印中',
  2775. paused: '已暂停',
  2776. finished: '已完成',
  2777. failed: '失败',
  2778. idle: '空闲',
  2779. unknown: '未知',
  2780. },
  2781. },
  2782. // Profiles
  2783. profiles: {
  2784. title: '配置文件',
  2785. subtitle: '管理您的切片预设和压力推进校准',
  2786. tabs: {
  2787. cloud: '云端配置文件',
  2788. local: '本地配置文件',
  2789. kprofiles: 'K 值配置',
  2790. },
  2791. localProfiles: {
  2792. title: '本地配置文件',
  2793. subtitle: '从 OrcaSlicer 导入和管理切片预设',
  2794. import: '导入配置文件',
  2795. importDesc: '将 .bbscfg、.bbsflmt、.orca_filament、.zip 或 .json 文件拖放到此处',
  2796. importing: '导入中...',
  2797. search: '搜索本地预设...',
  2798. noPresets: '暂无本地预设',
  2799. noSearchResults: '没有与搜索匹配的预设',
  2800. badge: '本地',
  2801. edit: '编辑',
  2802. delete: '删除',
  2803. cancel: '取消',
  2804. deleteConfirmTitle: '删除预设',
  2805. deleteConfirm: '确定要删除此预设吗?此操作无法撤销。',
  2806. source: '来源',
  2807. inheritsFrom: '继承自',
  2808. filamentType: '类型',
  2809. vendor: '厂商',
  2810. compatiblePrinters: '兼容打印机',
  2811. nozzleTemp: '喷嘴温度',
  2812. cost: '成本',
  2813. density: '密度',
  2814. pressureAdvance: '压力推进',
  2815. filament: '耗材',
  2816. process: '工艺',
  2817. printer: '打印机',
  2818. toast: {
  2819. importSuccess: '已导入 {{count}} 个预设',
  2820. importSkipped: '跳过 {{count}} 个预设(重复)',
  2821. importError: '导入时出现 {{count}} 个错误',
  2822. deleted: '预设已删除',
  2823. updated: '预设已更新',
  2824. },
  2825. },
  2826. connectedAs: '已连接为',
  2827. logout: '退出登录',
  2828. noLogoutPermission: '您没有退出登录的权限',
  2829. failedToLoad: '加载配置文件失败',
  2830. retry: '重试',
  2831. time: {
  2832. justNow: '刚刚',
  2833. minsAgo: '{{count}} 分钟前',
  2834. hoursAgo: '{{count}} 小时前',
  2835. daysAgo: '{{count}} 天前',
  2836. },
  2837. toast: {
  2838. loggedOut: '已退出登录',
  2839. },
  2840. login: {
  2841. title: '连接到拓竹云',
  2842. subtitle: '跨设备同步您的切片预设',
  2843. email: '邮箱',
  2844. password: '密码',
  2845. region: '地区',
  2846. regionGlobal: '全球',
  2847. regionChina: '中国',
  2848. verificationCode: '验证码',
  2849. totpCode: '验证器代码',
  2850. checkEmail: '检查您的邮箱 ({{email}}) 获取 6 位验证码',
  2851. enterTotpHint: '输入验证器应用中的 6 位代码',
  2852. accessToken: '访问令牌',
  2853. accessTokenHint: '粘贴您的拓竹云访问令牌。中国大陆账号(绑定手机号、无邮箱登录)只能使用此方式登录。可从 MakerWorld 浏览器 Cookie 中获取令牌,详见 Wiki。',
  2854. back: '返回',
  2855. loginButton: '登录',
  2856. verifyButton: '验证',
  2857. setTokenButton: '设置令牌',
  2858. useToken: '改用访问令牌',
  2859. useEmail: '改用邮箱登录',
  2860. toast: {
  2861. loggedIn: '登录成功',
  2862. codeSent: '验证码已发送到您的邮箱',
  2863. enterTotp: '输入验证器应用中的代码',
  2864. tokenSet: '令牌设置成功',
  2865. },
  2866. },
  2867. presets: {
  2868. myPreset: '我的预设(可编辑)',
  2869. duplicate: '复制',
  2870. editable: '可编辑',
  2871. failedToLoadDetails: '加载预设详情失败',
  2872. deleteConfirm: '删除此预设?',
  2873. deleteWarning: '这将从拓竹云中永久删除"{{name}}"。此操作无法撤销。',
  2874. noDuplicatePermission: '您没有复制预设的权限',
  2875. noEditPermission: '您没有编辑预设的权限',
  2876. noDeletePermission: '您没有删除预设的权限',
  2877. types: {
  2878. filament: '耗材预设',
  2879. printer: '打印机预设',
  2880. process: '工艺预设',
  2881. },
  2882. toast: {
  2883. deleted: '预设已删除',
  2884. created: '预设已创建',
  2885. updated: '预设已更新',
  2886. duplicated: '预设已复制',
  2887. fieldAdded: '字段"{{key}}"已添加',
  2888. exported: '预设已导出',
  2889. },
  2890. baseLabel: '基础:{{name}}',
  2891. currentLabel: '当前:{{name}}',
  2892. newPreset: '新建预设',
  2893. editPreset: '编辑预设',
  2894. duplicatePreset: '复制预设',
  2895. createNewPreset: '创建新预设',
  2896. customizeSettings: '自定义新预设的设置',
  2897. compareWithBase: '与基础预设比较',
  2898. compare: '比较',
  2899. // CreatePresetModal - Basic Info
  2900. basePreset: '基础预设',
  2901. selectBasePreset: '选择基础预设...',
  2902. presetName: '预设名称',
  2903. myCustomPreset: '我的自定义预设',
  2904. inheritsFrom: '继承自',
  2905. dropJsonToImport: '拖放 JSON 以导入',
  2906. // CreatePresetModal - Tabs
  2907. tabs: {
  2908. common: '常用',
  2909. allFields: '所有字段',
  2910. },
  2911. // CreatePresetModal - All Fields Tab
  2912. availableFields: '可用字段',
  2913. searchFieldsPlaceholder: '搜索字段...',
  2914. noMatchingFields: '没有匹配的字段',
  2915. allFieldsAdded: '所有字段已添加',
  2916. addCustomField: '添加自定义字段',
  2917. yourOverrides: '您的覆盖值',
  2918. noOverridesYet: '暂无覆盖值',
  2919. clickFieldsToAdd: '点击左侧的字段进行添加',
  2920. saveAsTemplate: '保存为模板',
  2921. jsonTip: '提示:将 .json 文件拖放到此对话框的任意位置以导入设置',
  2922. },
  2923. cloudView: {
  2924. searchPlaceholder: '搜索预设...',
  2925. templates: '模板',
  2926. refresh: '刷新',
  2927. newPreset: '新建预设',
  2928. clearFilters: '清除筛选',
  2929. // Compare mode
  2930. compareMode: '比较模式',
  2931. selectAnotherPreset: '选择另一个 {{type}} 预设',
  2932. clickTwoPresets: '点击两个相同类型的预设进行比较',
  2933. selectFirst: '1. 选择第一个',
  2934. selectSecond: '2. 选择第二个',
  2935. compareNow: '立即比较',
  2936. // Status row
  2937. lastSynced: '上次同步:',
  2938. showingCount: '显示 {{showing}} / {{total}} 个预设',
  2939. noPresetsFound: '未找到预设',
  2940. // Column headers
  2941. columns: {
  2942. filament: '耗材',
  2943. process: '工艺',
  2944. printer: '打印机',
  2945. },
  2946. noFilamentPresets: '无耗材预设',
  2947. noProcessPresets: '无工艺预设',
  2948. noPrinterPresets: '无打印机预设',
  2949. // Filters
  2950. filters: {
  2951. type: '类型',
  2952. owner: '所有者',
  2953. printer: '打印机',
  2954. nozzle: '喷嘴',
  2955. filament: '耗材',
  2956. layer: '层',
  2957. all: '全部',
  2958. myPresets: '我的预设',
  2959. builtIn: '内置',
  2960. process: '工艺',
  2961. },
  2962. // Permissions
  2963. noTemplatesPermission: '您没有管理模板的权限',
  2964. noRefreshPermission: '您没有刷新配置文件的权限',
  2965. noCreatePermission: '您没有创建预设的权限',
  2966. },
  2967. templates: {
  2968. title: '快速模板',
  2969. noTemplates: '暂无模板',
  2970. createFirst: '从预设编辑器创建模板',
  2971. typeFilter: '类型:',
  2972. deleteTitle: '删除模板',
  2973. deleteWarning: '此操作无法撤销',
  2974. deleteConfirm: '确定要删除"{{name}}"吗?',
  2975. namePlaceholder: '模板名称',
  2976. descriptionPlaceholder: '描述',
  2977. settingsJson: '设置 (JSON)',
  2978. fieldsCount: '{{count}} 个字段',
  2979. shownInModals: '在对话框中显示',
  2980. hiddenInModals: '在对话框中隐藏',
  2981. apply: '应用',
  2982. toast: {
  2983. deleted: '模板已删除',
  2984. updated: '模板已更新',
  2985. created: '模板已创建',
  2986. applied: '模板已应用',
  2987. },
  2988. },
  2989. },
  2990. // Support/Debug
  2991. support: {
  2992. debugLoggingActive: '调试日志记录已激活',
  2993. manageLogs: '管理',
  2994. collectItem7: '打印机连接和固件版本',
  2995. collectItem8: '集成状态(Spoolman、MQTT、HA)',
  2996. collectItem9: '网络接口(仅子网)',
  2997. collectItem10: 'Python 包版本',
  2998. collectItem11: '数据库健康检查',
  2999. collectItem12: 'Docker 环境详情',
  3000. },
  3001. // File manager
  3002. fileManager: {
  3003. title: '文件管理器',
  3004. subtitle: '组织和管理您的打印文件',
  3005. uploadFiles: '上传文件',
  3006. newFolder: '新建文件夹',
  3007. folderName: '文件夹名称',
  3008. folderNamePlaceholder: '例如:功能零件',
  3009. renameFile: '重命名文件',
  3010. renameFolder: '重命名文件夹',
  3011. moveFiles: '移动 {{count}} 个文件',
  3012. rootNoFolder: '根目录(无文件夹)',
  3013. current: '当前',
  3014. linkFolder: '链接文件夹',
  3015. linkFolderDescription: '将"{{name}}"链接到项目或归档以便快速访问。',
  3016. project: '项目',
  3017. archive: '归档',
  3018. noProjectsFound: '未找到项目',
  3019. noArchivesFound: '未找到归档',
  3020. unlink: '取消链接',
  3021. link: '链接',
  3022. dragDropFiles: '将文件拖放到此处',
  3023. dropFilesHere: '将文件放在此处',
  3024. orClickToBrowse: '或点击浏览',
  3025. allFileTypesSupported: '支持所有文件类型。ZIP 文件将被解压。',
  3026. zipFilesDetected: '检测到 ZIP 文件',
  3027. zipExtractOptions: 'ZIP 文件将被解压。选择如何处理文件夹结构:',
  3028. preserveZipStructure: '保留 ZIP 中的文件夹结构',
  3029. createFolderFromZip: '从 ZIP 文件名创建文件夹',
  3030. stlThumbnailGeneration: 'STL 缩略图生成',
  3031. zipMayContainStl: 'ZIP 文件可能包含 STL 文件。可以在解压时生成缩略图。',
  3032. thumbnailsCanBeGenerated: '可以为 STL 文件生成缩略图。大型模型可能需要更长时间处理。',
  3033. generateThumbnailsForStl: '为 STL 文件生成缩略图',
  3034. threemfDetected: '检测到 3MF 文件',
  3035. threemfExtractionInfo: '将自动从 3MF 文件中提取打印机型号、材料、颜色和打印设置。',
  3036. willBeExtracted: '将被解压',
  3037. filesExtracted: '已解压 {{count}} 个文件',
  3038. uploadComplete: '上传完成:{{succeeded}} 个成功',
  3039. uploadFailed: '上传失败',
  3040. zipFilesFailed: '{{count}} 个文件失败',
  3041. uploading: '上传中...',
  3042. changeLink: '更改链接...',
  3043. linkTo: '链接到...',
  3044. linkToProjectOrArchive: '链接到项目或归档',
  3045. addToQueue: '添加到队列',
  3046. schedulePrint: '排程',
  3047. generateThumbnail: '生成缩略图',
  3048. generateThumbnails: '生成缩略图',
  3049. generateThumbnailsForMissing: '为缺少缩略图的 STL 文件生成缩略图',
  3050. gridView: '网格视图',
  3051. listView: '列表视图',
  3052. lowDiskSpaceWarning: '磁盘空间不足警告',
  3053. lowDiskSpaceDetails: '仅剩 {{free}}(总共 {{total}})。阈值设置为 {{threshold}} GB。',
  3054. files: '文件',
  3055. folders: '文件夹',
  3056. size: '大小',
  3057. free: '剩余',
  3058. allFiles: '所有文件',
  3059. wrap: '换行',
  3060. enableTextWrapping: '启用文本换行',
  3061. disableTextWrapping: '禁用文本换行',
  3062. collapse: '折叠',
  3063. collapseFoldersByDefault: '默认折叠文件夹',
  3064. expandFoldersByDefault: '默认展开文件夹',
  3065. dragToResizeTooltip: '拖动调整大小,双击重置',
  3066. searchFiles: '搜索文件...',
  3067. allTypes: '所有类型',
  3068. prints: '打印',
  3069. ascending: '升序',
  3070. descending: '降序',
  3071. resultsCount: '{{showing}} / {{total}} 个文件',
  3072. selectAll: '全选',
  3073. deselectAll: '取消全选',
  3074. selected: '已选择 {{count}} 个',
  3075. adding: '添加中...',
  3076. loadingFiles: '加载文件中...',
  3077. folderIsEmpty: '文件夹为空',
  3078. noFilesYet: '暂无文件',
  3079. folderEmptyDescription: '上传文件或将文件移入此文件夹以开始使用。',
  3080. noFilesDescription: '上传文件以开始组织您的打印相关文件。',
  3081. noMatchingFiles: '没有匹配的文件',
  3082. noMatchingFilesDescription: '没有文件匹配您当前的搜索或筛选条件。',
  3083. clearFilters: '清除筛选',
  3084. printedCount: '已打印 {{count}} 次',
  3085. uploadedBy: '上传者',
  3086. deleteFolder: '删除文件夹',
  3087. deleteFile: '删除文件',
  3088. deleteFilesCount: '删除 {{count}} 个文件',
  3089. deleteFolderConfirm: '确定要删除此文件夹吗?其中的所有文件也将被删除。',
  3090. deleteFileConfirm: '确定要删除此文件吗?',
  3091. deleteFilesConfirm: '确定要删除 {{count}} 个选中的文件吗?此操作无法撤销。',
  3092. deleting: '删除中...',
  3093. noPermissionRenameFolder: '您没有重命名文件夹的权限',
  3094. noPermissionLinkFolder: '您没有链接文件夹的权限',
  3095. noPermissionDeleteFolder: '您没有删除文件夹的权限',
  3096. noPermissionPrint: '您没有打印的权限',
  3097. noPermissionSlice: '您没有切片文件的权限',
  3098. noPermissionAddToQueue: '您没有添加到队列的权限',
  3099. noPermissionDownload: '您没有下载文件的权限',
  3100. noPermissionRenameFile: '您没有重命名此文件的权限',
  3101. noPermissionGenerateThumbnail: '您没有生成缩略图的权限',
  3102. noPermissionDeleteFile: '您没有删除此文件的权限',
  3103. noPermissionCreateFolder: '您没有创建文件夹的权限',
  3104. noPermissionUpload: '您没有上传文件的权限',
  3105. noPermissionMoveFiles: '您没有移动文件的权限',
  3106. noPermissionDeleteFiles: '您没有删除文件的权限',
  3107. // External folder
  3108. linkExternal: '链接外部',
  3109. linkExternalFolder: '链接外部文件夹',
  3110. linkExternalFolderDescription: '将主机目录(NAS、USB、网络共享)挂载到文件管理器中。文件不会被复制——直接从原始路径访问。',
  3111. externalFolderNamePlaceholder: '例如:NAS打印文件',
  3112. externalPath: '主机路径',
  3113. externalPathHelp: 'Docker主机上目录的绝对路径。必须以绑定挂载方式挂载到容器中。',
  3114. readOnly: '只读',
  3115. readOnlyHelp: '防止上传和删除',
  3116. showHiddenFiles: '显示隐藏文件(点文件)',
  3117. externalFolder: '外部文件夹',
  3118. scanFolder: '扫描',
  3119. toast: {
  3120. folderCreated: '文件夹已创建',
  3121. folderDeleted: '文件夹已删除',
  3122. fileDeleted: '文件已删除',
  3123. filesDeleted: '已删除 {{count}} 个文件',
  3124. filesMoved: '文件已移动',
  3125. folderLinked: '文件夹已链接',
  3126. folderUnlinked: '文件夹已取消链接',
  3127. externalFolderLinked: '外部文件夹已链接并扫描',
  3128. folderScanned: '扫描完成:添加 {{added}} 个,移除 {{removed}} 个',
  3129. addedToQueue: '已将 {{count}} 个文件添加到队列',
  3130. addedToQueuePartial: '已添加 {{added}} 个文件,{{failed}} 个失败',
  3131. failedToAddToQueue: '添加文件失败:{{error}}',
  3132. fileRenamed: '文件已重命名',
  3133. folderRenamed: '文件夹已重命名',
  3134. thumbnailsGenerated: '已生成 {{count}} 个缩略图',
  3135. thumbnailsGeneratedPartial: '已生成 {{succeeded}} 个缩略图,{{failed}} 个失败',
  3136. noStlMissingThumbnails: '没有缺少缩略图的 STL 文件',
  3137. failedToGenerateThumbnails: '生成缩略图失败:{{error}}',
  3138. thumbnailGenerated: '缩略图已生成',
  3139. failedToGenerateThumbnail: '生成缩略图失败:{{error}}',
  3140. },
  3141. },
  3142. // Projects
  3143. projects: {
  3144. title: '项目',
  3145. subtitle: '组织和跟踪您的 3D 打印项目',
  3146. newProject: '新建项目',
  3147. editProject: '编辑项目',
  3148. deleteProject: '删除项目',
  3149. projectName: '项目名称',
  3150. description: '描述',
  3151. noProjects: '暂无项目',
  3152. noProjectsFiltered: '没有{{status}}项目',
  3153. noProjectsFilteredHelp: '您没有任何{{status}}项目。当项目状态更改时,它们将出现在这里。',
  3154. createFirst: '创建您的第一个项目以开始组织相关打印、跟踪进度和管理构建。',
  3155. createFirstButton: '创建您的第一个项目',
  3156. create: '创建',
  3157. files: '文件',
  3158. prints: '打印',
  3159. plates: '板',
  3160. parts: '零件',
  3161. lastModified: '最后修改',
  3162. deleteConfirm: '确定要删除此项目吗?归档和队列项目将被取消链接但不会被删除。',
  3163. addFiles: '添加文件',
  3164. removeFile: '移除文件',
  3165. viewDetails: '查看详情',
  3166. // Modal fields
  3167. namePlaceholder: '例如:Voron 2.4 构建',
  3168. descriptionPlaceholder: '可选描述...',
  3169. urlLabel: '网址',
  3170. urlPlaceholder: 'https://makerworld.com/...',
  3171. urlInvalid: '网址必须以 http:// 或 https:// 开头',
  3172. openExternalUrl: '打开项目网址',
  3173. coverImageLabel: '封面图片',
  3174. coverImageAlt: '项目封面图片',
  3175. coverImageUpload: '上传',
  3176. coverImageReplace: '替换',
  3177. coverImageRemove: '移除',
  3178. color: '颜色',
  3179. targetPlates: '目标板数',
  3180. targetPlatesPlaceholder: '例如:25',
  3181. targetPlatesHelp: '打印任务数量',
  3182. targetParts: '目标零件数',
  3183. targetPartsPlaceholder: '例如:150',
  3184. targetPartsHelp: '所需零件总数',
  3185. tagsLabel: '标签(逗号分隔)',
  3186. tagsPlaceholder: '例如:voron、功能件、礼物',
  3187. dueDate: '截止日期',
  3188. priority: '优先级',
  3189. priorityLow: '低',
  3190. priorityNormal: '普通',
  3191. priorityHigh: '高',
  3192. priorityUrgent: '紧急',
  3193. // Status
  3194. statusActive: '进行中',
  3195. statusCompleted: '已完成',
  3196. statusArchived: '已归档',
  3197. done: '完成',
  3198. completed: '已完成',
  3199. failed: '失败',
  3200. inQueue: '队列中',
  3201. noPrintsYet: '暂无打印',
  3202. // Footer stats
  3203. printJobs: '打印任务(板)',
  3204. partsPrinted: '已打印零件',
  3205. failedParts: '失败零件',
  3206. // Actions
  3207. import: '导入',
  3208. export: '导出',
  3209. importProject: '导入项目',
  3210. exportAll: '导出所有项目',
  3211. loading: '加载项目中...',
  3212. // Permissions
  3213. noEditPermission: '您没有编辑项目的权限',
  3214. noDeletePermission: '您没有删除项目的权限',
  3215. noCreatePermission: '您没有创建项目的权限',
  3216. noImportPermission: '您没有导入项目的权限',
  3217. noExportPermission: '您没有导出项目的权限',
  3218. // Toast
  3219. toast: {
  3220. created: '项目已创建',
  3221. updated: '项目已更新',
  3222. deleted: '项目已删除',
  3223. imported: '项目已导入',
  3224. multipleImported: '已导入 {{count}} 个项目',
  3225. importFailed: '导入失败',
  3226. exported: '项目已导出(仅元数据)',
  3227. },
  3228. },
  3229. // Project detail page
  3230. projectDetail: {
  3231. notFound: '未找到项目',
  3232. backToProjects: '返回项目',
  3233. export: '导出',
  3234. exportProject: '导出项目',
  3235. noExportPermission: '您没有导出项目的权限',
  3236. noEditPermission: '您没有编辑项目的权限',
  3237. partOf: '属于:',
  3238. priorityLabel: '优先级:',
  3239. noPrints: '此项目暂无打印',
  3240. status: {
  3241. active: '进行中',
  3242. completed: '已完成',
  3243. archived: '已归档',
  3244. },
  3245. priority: {
  3246. low: '低',
  3247. normal: '普通',
  3248. high: '高',
  3249. urgent: '紧急',
  3250. },
  3251. dueDate: {
  3252. overdue: '已逾期',
  3253. today: '今天到期',
  3254. daysLeft: '还有 {{count}} 天',
  3255. },
  3256. progress: {
  3257. platesProgress: '板进度',
  3258. partsProgress: '零件进度',
  3259. printJobs: '打印任务',
  3260. parts: '零件',
  3261. percentComplete: '{{percent}}% 完成',
  3262. remaining: '剩余 {{count}} 个',
  3263. },
  3264. stats: {
  3265. printJobs: '打印任务',
  3266. total: '总计',
  3267. failed: '{{count}} 个失败',
  3268. partsPrinted: '已打印 {{count}} 个零件',
  3269. printTime: '打印时间',
  3270. filamentUsed: '耗材用量',
  3271. },
  3272. cost: {
  3273. title: '成本追踪',
  3274. filamentCost: '耗材成本',
  3275. energy: '能源',
  3276. totalCost: '总成本',
  3277. total: '总计',
  3278. includesBom: '含物料清单',
  3279. budget: '预算',
  3280. remaining: '剩余',
  3281. },
  3282. subProjects: {
  3283. title: '子项目 ({{count}})',
  3284. },
  3285. notes: {
  3286. title: '备注',
  3287. noEditPermission: '您没有编辑备注的权限',
  3288. placeholder: '添加关于此项目的备注...',
  3289. empty: '暂无备注。点击编辑添加备注。',
  3290. },
  3291. files: {
  3292. title: '文件',
  3293. linkFolders: '从文件管理器链接文件夹',
  3294. forQuickAccess: '到此项目以便快速访问。',
  3295. fileCount: '{{count}} 个文件',
  3296. empty: '未链接文件夹。前往文件管理器将文件夹链接到此项目。',
  3297. noFiles: '此文件夹中没有文件。',
  3298. print: '立即打印',
  3299. addToQueue: '加入队列',
  3300. },
  3301. bom: {
  3302. title: '材料清单',
  3303. acquired: '已获取 {{completed}}/{{total}}',
  3304. showAll: '显示全部',
  3305. hideDone: '隐藏已完成',
  3306. addPart: '添加零件',
  3307. noAddPermission: '您没有添加零件的权限',
  3308. partNamePlaceholder: '零件名称(例如:M3x8 螺丝)',
  3309. partName: '零件名称',
  3310. qty: '数量',
  3311. price: '价格 ({{currency}})',
  3312. sourcingUrlPlaceholder: '采购链接(可选)',
  3313. remarksPlaceholder: '备注(可选)',
  3314. deletePart: '删除零件',
  3315. deleteConfirm: '确定要删除"{{name}}"吗?',
  3316. noUpdatePermission: '您没有更新零件的权限',
  3317. noEditPermission: '您没有编辑零件的权限',
  3318. noDeletePermission: '您没有删除零件的权限',
  3319. totalCost: '总成本:',
  3320. empty: '材料清单中没有零件。添加硬件、电子元件或其他组件以跟踪需要采购的物品。',
  3321. },
  3322. timeline: {
  3323. title: '活动时间线',
  3324. empty: '暂无活动。',
  3325. },
  3326. template: {
  3327. saveAsTemplate: '保存为模板',
  3328. noCreatePermission: '您没有创建模板的权限',
  3329. },
  3330. queue: {
  3331. title: '队列',
  3332. viewAll: '查看全部',
  3333. printing: '{{count}} 个打印中',
  3334. queued: '{{count}} 个排队中',
  3335. },
  3336. prints: {
  3337. title: '打印 ({{count}})',
  3338. },
  3339. toast: {
  3340. projectUpdated: '项目已更新',
  3341. partAdded: '零件已添加',
  3342. partRemoved: '零件已移除',
  3343. exportFailed: '导出失败',
  3344. projectExported: '项目已导出',
  3345. templateCreated: '模板已创建',
  3346. },
  3347. },
  3348. // System info
  3349. system: {
  3350. title: '系统信息',
  3351. version: '版本',
  3352. uptime: '运行时间',
  3353. cpuUsage: 'CPU 使用率',
  3354. memoryUsage: '内存使用率',
  3355. diskUsage: '磁盘使用率',
  3356. networkInfo: '网络信息',
  3357. logs: '日志',
  3358. debugMode: '调试模式',
  3359. enableDebug: '启用调试日志',
  3360. disableDebug: '禁用调试日志',
  3361. downloadLogs: '下载日志',
  3362. clearLogs: '清除日志',
  3363. dockerInfo: 'Docker 信息',
  3364. containerName: '容器名称',
  3365. imageName: '镜像名称',
  3366. platform: '平台',
  3367. architecture: '架构',
  3368. },
  3369. // Library (K Profiles)
  3370. library: {
  3371. title: '耗材库',
  3372. addFilament: '添加耗材',
  3373. editFilament: '编辑耗材',
  3374. deleteFilament: '删除耗材',
  3375. vendor: '厂商',
  3376. material: '材料',
  3377. color: '颜色',
  3378. kFactor: 'K 值',
  3379. temperature: '温度',
  3380. noFilaments: '耗材库中没有耗材',
  3381. deleteConfirm: '确定要删除此耗材吗?',
  3382. importFromPrinter: '从打印机导入',
  3383. exportToFile: '导出到文件',
  3384. },
  3385. // Slice (slicer-API integration via SliceModal)
  3386. slice: {
  3387. title: '切片模型',
  3388. action: '切片',
  3389. slicing: '切片中…',
  3390. printer: '打印机配置',
  3391. process: '工艺配置',
  3392. filament: '耗材配置',
  3393. filamentSlot: '耗材 {{index}}({{type}})',
  3394. selectPreset: '— 选择预设 —',
  3395. loadingPresets: '加载预设中…',
  3396. analyzingPlateFilaments: '分析打印板耗材中…',
  3397. analyzingPlateFilamentsHint: '正在运行预览切片以发现此打印板使用的 AMS 插槽。之后会缓存 — 重新打开是即时的。',
  3398. previewToast: '分析 {{name}} — {{elapsed}}',
  3399. previewWithProgress: '分析 {{name}} — {{stage}} ({{percent}}%) — {{elapsed}}',
  3400. notUsedByPlate: '— 此打印板未使用',
  3401. noPresetsForSlot: '无可用预设',
  3402. otherPrinters: '其他打印机',
  3403. presetsLoadFailed: '加载预设失败。请先打开设置 → 配置文件以导入。',
  3404. allPresetsRequired: '必须选择所有预设',
  3405. bundle: '切片器套装',
  3406. bundleNone: '— 无(单独选择预设)—',
  3407. bundleAllRequired: '必须选择套装的工艺和每个耗材槽',
  3408. enqueuing: '提交切片任务中…',
  3409. queued: '已排队…',
  3410. failed: '切片失败。请检查切片器 sidecar 日志。',
  3411. startedToast: '在后台切片 {{name}}…',
  3412. queuedToast: '已排队:{{name}} — {{elapsed}}',
  3413. runningToast: '切片 {{name}} — {{elapsed}}',
  3414. runningWithProgress: '{{name}} – {{stage}} ({{percent}}%) – {{elapsed}}',
  3415. completedToast: '已切片 {{name}}',
  3416. failedTitle: '切片失败',
  3417. failedToast: '切片 {{name}} 失败:{{detail}}',
  3418. tier: {
  3419. local: '已导入',
  3420. cloud: '云端',
  3421. standard: '标准',
  3422. },
  3423. cloud: {
  3424. notAuthenticated: '登录 Bambu Cloud(设置 → 配置文件 → 云端)以查看云端预设。',
  3425. expired: 'Bambu Cloud 会话已过期 — 请重新登录以刷新云端预设。',
  3426. unreachable: '目前无法访问 Bambu Cloud。本地和标准预设仍可使用。',
  3427. },
  3428. bedType: {
  3429. label: '打印板',
  3430. auto: '自动(使用工艺预设)',
  3431. coolPlate: '冷板',
  3432. coolPlateSuperTack: 'Cool Plate SuperTack',
  3433. engineering: 'Engineering Plate',
  3434. highTemp: 'High Temp Plate',
  3435. texturedPEI: 'Textured PEI Plate',
  3436. smoothPEI: 'Smooth PEI Plate',
  3437. },
  3438. },
  3439. // Spoolman
  3440. spoolman: {
  3441. title: 'Spoolman 集成',
  3442. enabled: 'Spoolman 已启用',
  3443. url: 'Spoolman URL',
  3444. connected: '已连接',
  3445. disconnected: '未连接',
  3446. testConnection: '测试连接',
  3447. sync: '同步',
  3448. syncing: '同步中...',
  3449. lastSync: '上次同步',
  3450. linkToSpoolman: '链接到 Spoolman',
  3451. openInSpoolman: '在 Spoolman 中打开',
  3452. unlinkSpool: '取消链接耗材',
  3453. unlinkConfirmTitle: '取消分配料盘?',
  3454. unlinkConfirmMessage: '这将从此插槽中移除料盘。料盘本身的数据将保持不变。',
  3455. selectSpool: '选择耗材',
  3456. noUnlinkedSpools: '无未分配的料盘',
  3457. linkSuccess: '料盘分配成功',
  3458. linkFailed: '料盘分配失败',
  3459. unlinkSuccess: '料盘取消分配成功',
  3460. unlinkFailed: '料盘取消分配失败',
  3461. linkedSpool: '已分配料盘',
  3462. spoolId: '耗材 ID',
  3463. fillSourceLabel: '(Spoolman)',
  3464. weight: '重量',
  3465. remaining: '剩余',
  3466. disableWeightSync: '禁用 AMS 估计重量同步',
  3467. disableWeightSyncDesc: '不从 AMS 估计值更新剩余容量。如果您更喜欢 Spoolman 的用量追踪而非 AMS 百分比估计,请使用此选项。新耗材仍将使用 AMS 估计值作为初始重量。',
  3468. reportPartialUsage: '报告失败打印的部分用量',
  3469. reportPartialUsageDesc: '当打印失败或被取消时,根据层进度报告估计的耗材使用量。',
  3470. },
  3471. // Inventory
  3472. inventory: {
  3473. title: '耗材库存',
  3474. subtitle: '管理您的料盘',
  3475. spoolmanMixedContentTitle: 'Spoolman 无法通过 HTTPS 加载 — 浏览器已阻止混合内容',
  3476. spoolmanMixedContentBody: 'Bambuddy 通过您的反向代理以 HTTPS 提供服务,但您的 Spoolman 地址仍为 HTTP。出于安全考虑,浏览器会阻止混合内容,因此嵌入式 Spoolman 界面无法加载。Spoolman 也必须通过 HTTPS 访问。',
  3477. spoolmanMixedContentFixReverseProxy: '请将 Spoolman 置于与 Bambuddy 相同的反向代理(Traefik / Nginx / Caddy)之后并启用 HTTPS,然后在设置中将 Spoolman URL 更新为新的 HTTPS 地址。',
  3478. spoolmanMixedContentFixOpenNewTab: '作为变通方案,可在新标签页中通过 HTTP 打开 Spoolman — 混合内容规则仅适用于嵌入式框架,独立标签页仍可正常使用。',
  3479. spoolmanOpenInNewTab: '在新标签页中打开 Spoolman',
  3480. labels: {
  3481. title: '打印线材标签',
  3482. selectedCount: '已选 {{count}} 项',
  3483. pickSpools: '选择要打印标签的线材:',
  3484. searchPlaceholder: '按名称、品牌或 #ID 搜索',
  3485. filterByMaterial: '材料:',
  3486. allMaterials: '全部',
  3487. selectVisible: '选择所有可见 ({{count}})',
  3488. deselectVisible: '取消选择可见',
  3489. clearAll: '全部清除',
  3490. noSpoolsToShow: '没有要显示的线材。请调整筛选条件后重试。',
  3491. noMatches: '没有线材符合当前搜索或筛选。',
  3492. printOne: '打印此线材的标签',
  3493. printLabels: '打印标签…',
  3494. bulkTitle: '从当前显示的 {{count}} 个线材中选择要打印标签的',
  3495. noSpoolsTitle: '没有要打标签的线材',
  3496. error: '无法生成标签:{{msg}}',
  3497. sortBy: {
  3498. label: '排序:',
  3499. id: '按 ID',
  3500. color: '按颜色',
  3501. },
  3502. templates: {
  3503. amsHolderSmall: {
  3504. label: 'AMS 支架 — 小 (74 × 33 mm)',
  3505. hint: '每页一个标签;适配 MakerWorld 模型 752566 (AMS 耗材标签支架) 中可打印的标签。',
  3506. },
  3507. amsHolderLarge: {
  3508. label: 'AMS 支架 — 大 (75 × 55 mm)',
  3509. hint: '每页一个标签;适配 AMS 耗材标签支架的卡片插入款。空间充足,可放置色板、品牌、材料、ID 与二维码。',
  3510. },
  3511. box40x30: {
  3512. label: '盒标签 (40 × 30 mm)',
  3513. hint: '每页一张;常见的 DK/Brother 卷尺寸,适合给耗材袋和储物盒贴标签。',
  3514. },
  3515. box: {
  3516. label: 'Box label (62 × 29 mm)',
  3517. hint: '每页一个标签;适配 Brother PT/QL 和 Dymo 小标签。',
  3518. },
  3519. averyL7160: {
  3520. label: 'Avery L7160 — A4 sheet (38.1 × 63.5 mm × 21)',
  3521. hint: '欧洲规格纸张;每张 A4 页 21 个标签。',
  3522. },
  3523. avery5160: {
  3524. label: 'Avery 5160 — US Letter sheet (25.4 × 66.7 mm × 30)',
  3525. hint: '美国规格纸张;每张 Letter 页 30 个标签。',
  3526. },
  3527. },
  3528. },
  3529. addSpool: '添加耗材',
  3530. editSpool: '编辑耗材',
  3531. copySpool: '复制耗材',
  3532. material: '材料',
  3533. selectMaterial: '选择材料...',
  3534. subtype: '子类型',
  3535. brand: '品牌',
  3536. searchBrand: '搜索品牌...',
  3537. useCustomBrand: '使用"{{brand}}"',
  3538. useCustomMaterial: '使用自定义材料:{{material}}',
  3539. colorName: '颜色名称',
  3540. colorNamePlaceholder: '翡翠白、烈焰红...',
  3541. color: '颜色',
  3542. hexColor: '十六进制颜色',
  3543. pickColor: '选择自定义颜色',
  3544. labelWeight: '标签重量',
  3545. coreWeight: '空盘重量',
  3546. searchSpoolWeight: '搜索耗材重量...',
  3547. weightUsed: '已使用',
  3548. currentWeight: '剩余重量',
  3549. measuredWeight: '称量重量',
  3550. spoolName: '线轴',
  3551. costPerKg: '每公斤成本',
  3552. storageLocation: '存放位置',
  3553. storageLocationPlaceholder: '例如:货架A,抽屉1',
  3554. openInInventory: '在库存中查看',
  3555. measuredWeightError: '称量重量必须在 {{min}}g 到 {{max}}g 之间。',
  3556. slicerFilament: '切片耗材',
  3557. slicerFilamentName: '切片预设名称',
  3558. slicerPreset: '切片预设',
  3559. searchPresets: '搜索耗材预设...',
  3560. selectedPreset: '已选择',
  3561. noPresetsFound: '未找到预设',
  3562. tempOverrides: '温度覆盖',
  3563. note: '备注',
  3564. notePlaceholder: '关于此耗材的任何备注...',
  3565. // Per-spool category + low-stock threshold override (#729)
  3566. category: '类别',
  3567. categoryPlaceholder: '例如:生产、原型、客户A',
  3568. categoryNone: '未分类',
  3569. storageLocationNone: '未设置位置',
  3570. lowStockThresholdOverride: '低库存阈值(此料盘)',
  3571. lowStockThresholdOverrideHelp: '留空以使用全局阈值({{global}}%)。',
  3572. clearRfid: '清除 RFID 标签',
  3573. rfidCleared: 'RFID 标签已清除',
  3574. archive: '归档',
  3575. restore: '恢复',
  3576. noSpools: '暂无耗材。添加您的第一个耗材开始使用。',
  3577. noAvailableSpools: '没有可用的耗材。请先向库存中添加耗材,或从其他槽位取消分配一个耗材。',
  3578. kProfiles: 'K 值配置',
  3579. addKProfile: '添加 K 值配置',
  3580. assignSpool: '分配耗材',
  3581. unassignSpool: '取消分配',
  3582. assignSuccess: '耗材已分配,AMS 槽位已配置',
  3583. assignFailed: '分配耗材失败',
  3584. assignMismatchTitle: '材料不匹配',
  3585. assignMismatchMessage: '所选线轴材料 "{{spoolMaterial}}" 与 {{location}} 的料槽材料 "{{trayMaterial}}" 不匹配。仍要分配吗?',
  3586. assignMismatchConfirm: '仍然分配',
  3587. assignPartialMismatchMessage: '线轴材料 "{{spoolMaterial}}" 与 {{location}} 的 "{{trayMaterial}}" 相近但不完全一致。是否继续?',
  3588. assignProfileMismatchMessage: '线轴配置 "{{spoolProfile}}" 与 {{location}} 的料槽配置 "{{trayProfile}}" 不一致。是否继续?',
  3589. selectSpool: '选择要分配到此槽位的耗材',
  3590. assigned: '已分配',
  3591. assigning: '分配中...',
  3592. searchSpools: '搜索耗材...',
  3593. showAllSpools: '显示所有耗材',
  3594. spoolmanSpools: 'Spoolman 线轴',
  3595. allMaterials: '所有材料',
  3596. filterByBrand: '按品牌筛选...',
  3597. showArchived: '显示已归档',
  3598. quickAdd: '快速添加(库存)',
  3599. quantity: '数量',
  3600. stock: '库存',
  3601. configured: '已配置',
  3602. spoolsCreated: '已创建 {{count}} 个耗材',
  3603. spoolsPartiallyCreated: '已创建 {{created}} / {{total}} 个耗材(部分失败)',
  3604. spoolCreated: '耗材已创建',
  3605. spoolUpdated: '耗材已更新',
  3606. spoolDeleted: '耗材已删除',
  3607. deepLinkSpoolNotFound: '未找到耗材',
  3608. deepLinkFetchFailed: '无法加载耗材 — 请重试',
  3609. spoolArchived: '耗材已归档',
  3610. spoolRestored: '耗材已恢复',
  3611. kProfileSaveFailed: 'K值配置文件设置无法保存',
  3612. syncWeightSpoolNotFound: '未找到耗材 — 可能已被删除',
  3613. syncWeightSpoolmanUnreachable: 'Spoolman 无法访问 — 请稍后再试',
  3614. syncWeightFailed: '重量同步失败',
  3615. spoolmanUnreachable: 'Spoolman 无法访问 — 请稍后再试',
  3616. deleteSpoolNotFound: '未找到耗材 — 可能已被删除',
  3617. deleteFailed: '删除耗材失败',
  3618. archiveSpoolNotFound: '未找到耗材 — 可能已被删除',
  3619. archiveFailed: '归档耗材失败',
  3620. restoreSpoolNotFound: '未找到耗材 — 可能已被删除',
  3621. restoreFailed: '恢复耗材失败',
  3622. saveFailed: '保存更改失败',
  3623. tagClearFailed: '清除标签失败',
  3624. deleteConfirm: '确定要删除此耗材吗?此操作无法撤销。',
  3625. archiveConfirm: '确定要归档此耗材吗?',
  3626. advancedSettings: '高级设置',
  3627. // Tabs
  3628. filamentInfoTab: '耗材信息',
  3629. paProfileTab: 'PA 配置',
  3630. filamentInfo: '耗材',
  3631. additional: '附加',
  3632. // Cloud
  3633. loadingPresets: '加载云端预设中...',
  3634. cloudConnected: '云端已连接',
  3635. cloudNotConnected: '云端未连接(使用默认值)',
  3636. // Colors
  3637. recentColors: '最近',
  3638. searchColors: '搜索颜色...',
  3639. searchResults: '搜索结果',
  3640. allColors: '所有颜色',
  3641. commonColors: '常用颜色',
  3642. showLess: '显示更少',
  3643. showAll: '显示全部',
  3644. noColorsFound: '没有颜色匹配您的搜索',
  3645. noResults: '未找到匹配项',
  3646. // 多色渐变 + 视觉效果 (#1154)
  3647. extraColorsLabel: '附加颜色',
  3648. extraColorsPlaceholder: 'EC984C,#6CD4BC,A66EB9,D87694',
  3649. extraColorsHint: '粘贴 2 到 8 个十六进制色值,以逗号分隔。将渲染为渐变。',
  3650. extraColorsInvalid: '已忽略无效的十六进制值:{{tokens}}',
  3651. colorEffectLabel: '效果',
  3652. colorEffect: {
  3653. none: '无',
  3654. sparkle: '闪光',
  3655. wood: '木纹',
  3656. marble: '大理石',
  3657. glow: '夜光',
  3658. matte: '哑光',
  3659. silk: '丝光',
  3660. galaxy: '星空',
  3661. rainbow: '彩虹',
  3662. metal: '金属',
  3663. translucent: '半透明',
  3664. gradient: '渐变',
  3665. dualColor: '双色',
  3666. triColor: '三色',
  3667. multicolor: '多色',
  3668. },
  3669. // PA Profiles
  3670. selectMaterialFirst: '请先在耗材信息选项卡中选择材料。',
  3671. noPrintersConfigured: '未配置打印机。添加打印机以使用 PA 配置。',
  3672. matchingFilter: '匹配',
  3673. anyBrand: '任何品牌',
  3674. anyVariant: '任何变体',
  3675. autoSelect: '自动选择',
  3676. matches: '匹配',
  3677. match: '匹配',
  3678. noMatches: '无匹配',
  3679. connected: '已连接',
  3680. offline: '离线',
  3681. printerOffline: '打印机离线。连接后查看校准配置。',
  3682. noKProfilesMatch: '没有 K 值配置匹配所选耗材。',
  3683. leftNozzle: '左喷嘴',
  3684. rightNozzle: '右喷嘴',
  3685. profilesSelected: '个校准配置已选择',
  3686. // Stats & enhanced table
  3687. totalInventory: '总库存',
  3688. totalConsumed: '总消耗',
  3689. byMaterial: '按材料',
  3690. inPrinter: '在打印机中',
  3691. lowStock: '库存不足',
  3692. sinceTracking: '自开始追踪',
  3693. resetUsage: '将用量重置为 0',
  3694. resetUsageTooltip: '将此料盘的已消耗克数计数器清零',
  3695. resetUsageConfirm: '将此料盘的已消耗克数计数器重置为 0?后续打印将从零开始计数。料盘本身、剩余重量计算和您的设置不会改变。',
  3696. resetAllUsage: '重置所有料盘的用量',
  3697. resetAllUsageTooltip: '将每个料盘的已消耗克数计数器清零',
  3698. resetAllUsageConfirm: '将全部 {{count}} 个料盘(含已归档)的已消耗克数计数器重置为 0?这将清空"累计消耗"统计值,后续打印从零开始计数。料盘和剩余重量不会改变。',
  3699. usageReset: '料盘用量已重置为 0',
  3700. allUsageReset: '已重置 {{count}} 个料盘',
  3701. resetUsageFailed: '重置料盘用量失败',
  3702. loadedInAms: '已装载到 AMS/外置',
  3703. remaining: '剩余',
  3704. weightCheck: '重量检查',
  3705. lastWeighed: '上次称量',
  3706. neverWeighed: '从未称量',
  3707. search: '搜索耗材...',
  3708. showing: '显示',
  3709. to: '到',
  3710. of: '共',
  3711. show: '显示',
  3712. spools: '个耗材',
  3713. spool: '个耗材',
  3714. page: '页',
  3715. noSpoolsMatch: '未找到结果',
  3716. noSpoolsMatchDesc: '尝试调整您的搜索或筛选条件。',
  3717. active: '活跃',
  3718. archived: '已归档',
  3719. all: '全部',
  3720. used: '已使用',
  3721. new: '新的',
  3722. clearFilters: '清除筛选',
  3723. table: '表格',
  3724. cards: '卡片',
  3725. net: '净重',
  3726. // Grouping
  3727. groupSimilar: '分组',
  3728. groupedSpools: '{{count}} 个相同耗材',
  3729. groupedRows: '行',
  3730. // Column config
  3731. columns: '列',
  3732. configureColumns: '配置列',
  3733. configureColumnsDesc: '拖动以重新排序列或使用箭头。使用眼睛图标切换可见性。',
  3734. visible: '可见',
  3735. reset: '重置',
  3736. cancel: '取消',
  3737. applyChanges: '应用更改',
  3738. moveUp: '上移',
  3739. moveDown: '下移',
  3740. hideColumn: '隐藏列',
  3741. showColumn: '显示列',
  3742. // Tag linking
  3743. linkToSpool: '链接到耗材',
  3744. tagLinked: '标签已链接到耗材',
  3745. tagLinkFailed: '链接标签失败',
  3746. tagAlreadyLinked: '标签已链接到其他耗材',
  3747. unknownTag: '检测到未知 RFID 标签',
  3748. // Usage history
  3749. usageHistory: '使用历史',
  3750. noUsageHistory: '暂无使用记录',
  3751. printName: '打印名称',
  3752. weightConsumed: '消耗重量',
  3753. clearHistory: '清除',
  3754. historyCleared: '使用历史已清除',
  3755. fillSourceLabel: '(库存)',
  3756. lowStockThresholdError: '阈值必须在 0.1 到 99.9 之间',
  3757. // Spoolman filament catalog picker
  3758. spoolmanFilamentCatalog: 'Spoolman 耗材目录',
  3759. pickFromSpoolmanCatalog: '从 Spoolman 目录选择…',
  3760. spoolmanFilamentSelected: '已从 Spoolman 目录选择耗材',
  3761. spoolmanFilamentUnlinked: '已解除耗材目录关联',
  3762. noSpoolmanFilaments: 'Spoolman 目录中未找到耗材',
  3763. spoolmanFilamentColorSwatch: '耗材颜色',
  3764. spoolWeightManagedBySpoolman: '空线轴重量在 Spoolman 中按耗材类型管理',
  3765. spoolmanCatalogLoadFailed: '无法加载 Spoolman 耗材目录',
  3766. },
  3767. // Timelapse
  3768. timelapse: {
  3769. title: '延时摄影',
  3770. create: '创建延时摄影',
  3771. download: '下载',
  3772. delete: '删除',
  3773. preview: '预览',
  3774. frameRate: '帧率',
  3775. quality: '质量',
  3776. processing: '处理中...',
  3777. noTimelapses: '无可用延时摄影',
  3778. },
  3779. // AMS
  3780. ams: {
  3781. title: 'AMS',
  3782. slot: '槽位',
  3783. empty: '空',
  3784. emptySlot: '空槽位',
  3785. slotEmpty: '空',
  3786. emptySlotReset: '未分配料盘',
  3787. unknown: '未知',
  3788. humidity: '湿度',
  3789. temperature: '温度',
  3790. filamentType: '耗材类型',
  3791. filamentColor: '颜色',
  3792. remaining: '剩余',
  3793. history: 'AMS 历史',
  3794. noHistory: '无可用历史',
  3795. configureSlot: '配置槽位',
  3796. externalSpool: '外置耗材',
  3797. profile: '配置',
  3798. kFactor: 'K 值',
  3799. fill: '填充',
  3800. configure: '配置',
  3801. used: '已使用',
  3802. remainingUnit: '剩余',
  3803. },
  3804. // Print modal
  3805. printModal: {
  3806. title: '开始打印',
  3807. selectPrinter: '选择打印机',
  3808. selectPlate: '选择板',
  3809. filamentMapping: '耗材映射',
  3810. totalCost: '总成本:',
  3811. slotRemainingShort: ' - 剩余 {{grams}}g',
  3812. printSettings: '打印设置',
  3813. bedLeveling: '热床调平',
  3814. flowCalibration: '流量校准',
  3815. vibrationCalibration: '振动校准',
  3816. layerInspection: '首层检查',
  3817. timelapse: '延时摄影',
  3818. startPrint: '开始打印',
  3819. addToQueue: '添加到队列',
  3820. cancel: '取消',
  3821. noPrintersAvailable: '无可用打印机',
  3822. printerBusy: '打印机忙碌',
  3823. printerOffline: '打印机离线',
  3824. sameTypeDifferentColor: '相同类型,不同颜色',
  3825. filamentTypeNotLoaded: '耗材类型未装载',
  3826. openCalendar: '打开日历',
  3827. leftNozzle: '左',
  3828. rightNozzle: '右',
  3829. leftNozzleTooltip: '左喷嘴',
  3830. rightNozzleTooltip: '右喷嘴',
  3831. filamentOverride: '耗材覆盖',
  3832. filamentOverrideHint: '可选覆盖用于基于模型的耗材分配。调度器将使用您选择的耗材而不是原始 3MF 值进行匹配。',
  3833. originalFilament: '原始',
  3834. overrideWith: '覆盖为',
  3835. resetToOriginal: '恢复为原始',
  3836. insufficientFilamentTitle: '耗材不足',
  3837. insufficientFilamentMessage: '部分已分配线轴的剩余耗材少于本次打印所需:',
  3838. insufficientFilamentLine: '{{printer}} - {{slot}}:需要 {{required}}g,剩余 {{remaining}}g',
  3839. printAnyway: '仍然打印',
  3840. forceColorMatch: '强制颜色匹配',
  3841. staggerPrinterStarts: '错峰启动打印机',
  3842. staggerGroupSize: '组大小',
  3843. staggerInterval: '间隔(分钟)',
  3844. staggerPreview: '{{printers}} 台打印机 → {{groups}} 个 {{size}} 台的组,每 {{interval}} 分钟启动一次',
  3845. staggerLastGroup: '最后一组:{{count}}',
  3846. staggerTotal: '共 {{minutes}} 分钟',
  3847. staggerToPrinters: '分批发送到 {{count}} 台打印机',
  3848. gcodeInjection: '注入自动打印G-code',
  3849. },
  3850. // Backup
  3851. backup: {
  3852. includesEncryptionKey: '本地备份包含 MFA 加密密钥文件(DATA_DIR/.mfa_encryption_key),因此备份 ZIP 是自包含的。请将 ZIP 视为敏感文件 — 任何拥有该文件的人都可以解密内部存储的 OIDC 客户端密钥和 TOTP 密钥。',
  3853. title: '备份与恢复',
  3854. createBackup: '创建备份',
  3855. restoreBackup: '恢复备份',
  3856. restoreDescription: '从备份文件替换所有数据',
  3857. downloadBackup: '下载备份',
  3858. uploadBackup: '上传备份',
  3859. lastBackup: '上次备份',
  3860. autoBackup: '自动备份',
  3861. backupNow: '立即备份',
  3862. restoreWarning: '警告:恢复备份将覆盖所有当前数据。',
  3863. includeArchives: '包含归档',
  3864. includeSettings: '包含设置',
  3865. includeProfiles: '包含配置文件',
  3866. backupSuccess: '备份创建成功',
  3867. restoreSuccess: '备份恢复成功',
  3868. backupFailed: '备份失败',
  3869. restoreFailed: '恢复失败',
  3870. restoreNote: '恢复期间虚拟打印机将停止',
  3871. // GitHub Backup
  3872. githubBackup: 'GitHub 备份',
  3873. enabled: '已启用',
  3874. cloudLoginRequired: '需要登录 Bambu Cloud。请在 配置文件 → 云配置文件 中登录以启用 GitHub 备份。',
  3875. cloudLoginRequiredShort: '需要Cloud登录',
  3876. githubDescription: '自动将您的配置文件同步到私有 GitHub 仓库以进行备份和版本历史记录。',
  3877. repoIsPrivate: '仓库为私有 — 可以安全备份。',
  3878. repoIsPublicWarning: '仓库为公开(PUBLIC)。Bambuddy 备份包含 MQTT 凭据、Home Assistant 令牌、Prometheus 令牌、您的 Bambu Cloud 邮箱以及通过 K-profile 暴露的打印机访问代码。在您于提供商设置中将仓库改为私有之前,保存将被阻止。',
  3879. repoVisibilityUnknown: '无法确定仓库的可见性。Bambuddy 拒绝向任何未确认为私有的目标进行备份;保存将被阻止。',
  3880. repositoryUrl: '仓库 URL',
  3881. repoUrlPlaceholderGitHub: 'https://github.com/username/repo-name',
  3882. repoUrlPlaceholderGitea: 'https://gitea.example.com/username/repo-name',
  3883. repoUrlPlaceholderForgejo: 'https://forgejo.example.com/username/repo-name',
  3884. repoUrlPlaceholderGitLab: 'https://gitlab.com/username/repo-name',
  3885. allowInsecureHttp: '允许不安全的 HTTP',
  3886. allowInsecureHttpHint: '为无 TLS 的私有网络自托管实例启用',
  3887. personalAccessToken: '个人访问令牌',
  3888. tokenSaved: '(已保存)',
  3889. enterNewToken: '输入新令牌以更新',
  3890. tokenHint: '具有内容读写权限的细粒度令牌',
  3891. branch: '分支',
  3892. provider: 'Git 提供商',
  3893. providerGitHub: 'GitHub',
  3894. providerGitLab: 'GitLab',
  3895. providerGitea: 'Gitea',
  3896. providerForgejo: 'Forgejo',
  3897. manualOnly: '仅手动',
  3898. hourly: '每小时',
  3899. daily: '每天',
  3900. weekly: '每周',
  3901. includeInBackup: '包含在备份中',
  3902. kProfiles: 'K 配置文件',
  3903. kProfilesDescription: '来自已连接打印机的压力推进校准',
  3904. noPrintersConnected: '没有打印机连接',
  3905. printersConnected: '{{connected}}/{{total}} 已连接',
  3906. cloudProfiles: '云配置文件',
  3907. cloudProfilesDescription: '来自 Bambu Cloud 的耗材、打印机和工艺预设',
  3908. appSettings: '应用设置',
  3909. appSettingsDescription: 'Bambuddy 配置(完整数据库)',
  3910. spoolInventory: '耗材库存',
  3911. spoolInventoryDescription: '耗材卷轴、使用记录和成本追踪',
  3912. printArchives: '打印档案',
  3913. printArchivesDescription: '打印历史元数据(不含 gcode/3MF 文件)',
  3914. lastBackupAt: '上次备份:',
  3915. noBackupsYet: '尚无备份',
  3916. next: '下次:',
  3917. startingBackup: '正在启动备份...',
  3918. test: '测试',
  3919. enableBackup: '启用备份',
  3920. testConnection: '测试连接',
  3921. enterRepoUrl: '请输入仓库 URL',
  3922. enterRepoAndToken: '请输入仓库 URL 和访问令牌',
  3923. repoRequired: '仓库 URL 为必填项',
  3924. tokenRequired: '访问令牌为必填项',
  3925. githubBackupEnabled: 'GitHub 备份已启用',
  3926. tokenUpdated: '令牌已更新',
  3927. settingsSaved: '设置已保存',
  3928. failedToSave: '保存失败:{{message}}',
  3929. backupCompleteFiles: '备份完成 - {{count}} 个文件已更新',
  3930. backupSkippedNoChanges: '备份已跳过 - 无更改',
  3931. backupFailed2: '备份失败:{{message}}',
  3932. clearedLogs: '已清除 {{count}} 条日志',
  3933. failedToClearLogs: '清除日志失败:{{message}}',
  3934. // History
  3935. history: '历史记录',
  3936. clear: '清除',
  3937. date: '日期',
  3938. status: '状态',
  3939. commit: '提交',
  3940. // Local Backup
  3941. localBackup: '本地备份',
  3942. localBackupDescription: '创建 Bambuddy 数据的完整备份,包括数据库、档案、上传和所有文件。',
  3943. downloadBackupLabel: '下载备份',
  3944. completeBackupZip: '完整备份:数据库 + 所有文件(ZIP)',
  3945. download: '下载',
  3946. preparingBackup: '正在准备备份...',
  3947. creatingArchive: '正在创建备份归档...对于大型归档可能需要一些时间。',
  3948. downloadingFile: '正在下载备份文件...',
  3949. backupDownloaded: '备份下载成功',
  3950. failedToCreateBackup: '创建备份失败:{{message}}',
  3951. restore: '恢复',
  3952. restoreReplacesAll: '恢复将替换所有数据。',
  3953. restoreReplacesAllDetail: '您当前的数据库和文件将被完全替换。恢复后需要重启。',
  3954. restoreConfirmTitle: '恢复备份',
  3955. restoreConfirmMessage: '您确定要从"{{filename}}"恢复吗?这将完全替换您当前的数据库和所有文件。恢复后需要重启应用程序。',
  3956. restoreConfirmButton: '恢复备份',
  3957. uploadingFile: '正在上传备份文件...',
  3958. backupRestoredRestart: '备份已恢复。请重启 Bambuddy。',
  3959. failedToRestore: '恢复备份失败。请检查文件格式。',
  3960. reloadNow: '立即重新加载',
  3961. creatingBackup: '正在创建备份',
  3962. restoringBackup: '正在恢复备份',
  3963. preparing: '准备中...',
  3964. processing: '处理中...',
  3965. doNotClosePage: '请不要关闭此页面或导航离开。对于大型备份,此操作可能需要几分钟。',
  3966. // RestoreModal
  3967. restoring: '恢复中...',
  3968. restoreComplete: '恢复完成',
  3969. restoreFailed2: '恢复失败',
  3970. importSettings: '从备份文件导入设置',
  3971. pleaseWaitRestoring: '请等待数据恢复中',
  3972. selectBackupFile: '点击选择备份文件(.json 或 .zip)',
  3973. duplicateHandling: '重复项处理方式:',
  3974. matchPrinters: '打印机',
  3975. matchPrintersBy: '按序列号匹配',
  3976. matchSmartPlugs: '智能插座',
  3977. matchSmartPlugsBy: '按 IP 地址匹配',
  3978. matchNotificationProviders: '通知提供者',
  3979. matchNotificationProvidersBy: '按名称匹配',
  3980. matchFilaments: '耗材',
  3981. matchFilamentsBy: '按名称 + 类型 + 品牌匹配',
  3982. matchArchives: '档案',
  3983. matchArchivesBy: '按内容哈希匹配(始终跳过)',
  3984. matchPendingUploads: '待上传',
  3985. matchPendingUploadsBy: '按文件名匹配',
  3986. matchSettingsTemplates: '设置和模板',
  3987. matchSettingsTemplatesBy: '始终覆盖',
  3988. replaceExisting: '替换现有数据',
  3989. keepExisting: '保留现有数据',
  3990. overwriteDescription: '用备份数据覆盖已存在的项目',
  3991. keepDescription: '仅恢复尚不存在的项目',
  3992. overwriteCaution: '注意:',
  3993. overwriteWarning: '覆盖将用备份数据替换您当前的配置。出于安全考虑,打印机访问代码永远不会被覆盖。',
  3994. cancel: '取消',
  3995. processingBackup: '正在处理备份文件...',
  3996. itemsRestored: '已恢复项目',
  3997. itemsSkipped: '已跳过项目',
  3998. restored: '已恢复',
  3999. skippedAlreadyExist: '已跳过(已存在)',
  4000. filesCategory: '文件(3MF、缩略图等)',
  4001. andMore: '...还有 {{count}} 项',
  4002. newApiKeysGenerated: '已生成新的 API 密钥',
  4003. keysShownOnce: '这些密钥仅显示一次。请立即复制!',
  4004. copy: '复制',
  4005. noDataFound: '在备份文件中未找到可恢复的数据。',
  4006. close: '关闭',
  4007. // Scheduled local backups (#884)
  4008. scheduledBackup: '定时备份',
  4009. scheduledBackupDescription: '按计划自动创建备份快照。输出目录可以挂载到 NAS 或外部存储。',
  4010. frequency: '频率',
  4011. backupTime: '时间',
  4012. retention: '保留',
  4013. retentionDescription: '保留备份数量',
  4014. outputPath: '输出路径',
  4015. outputPathPlaceholder: '默认:{{path}}',
  4016. outputPathDescription: '留空以使用默认位置',
  4017. runNow: '立即运行',
  4018. backupFiles: '备份文件',
  4019. noScheduledBackups: '暂无备份',
  4020. deleteBackup: '删除',
  4021. deleteBackupConfirm: '删除此备份文件?',
  4022. backupRunning: '备份中...',
  4023. scheduledBackupComplete: '备份成功完成',
  4024. scheduledBackupFailed: '备份失败',
  4025. nextBackup: '下次备份',
  4026. backupSize: '大小',
  4027. utc: 'UTC',
  4028. defaultPathLabel: '默认:',
  4029. // Category labels
  4030. categories: {
  4031. settings: '设置',
  4032. notification_providers: '通知提供者',
  4033. notification_templates: '通知模板',
  4034. smart_plugs: '智能插座',
  4035. printers: '打印机',
  4036. filaments: '耗材',
  4037. maintenance_types: '维护类型',
  4038. archives: '档案',
  4039. projects: '项目',
  4040. pending_uploads: '待上传',
  4041. external_links: '外部链接',
  4042. api_keys: 'API 密钥',
  4043. },
  4044. },
  4045. // Tags
  4046. tags: {
  4047. title: '标签',
  4048. addTag: '添加标签',
  4049. editTag: '编辑标签',
  4050. deleteTag: '删除标签',
  4051. tagName: '标签名称',
  4052. tagColor: '标签颜色',
  4053. noTags: '无标签',
  4054. deleteConfirm: '确定要删除此标签吗?',
  4055. manageTags: '管理标签',
  4056. },
  4057. // Upload modal (archives)
  4058. uploadModal: {
  4059. title: '上传 3MF 文件',
  4060. dragDrop: '将 .3mf 文件拖放到此处',
  4061. or: '或',
  4062. browseFiles: '浏览文件',
  4063. extractionInfo: '将从 3MF 文件元数据中自动提取打印机型号。',
  4064. uploaded: '已上传',
  4065. failed: '失败',
  4066. uploading: '上传中...',
  4067. upload: '上传',
  4068. uploadFailed: '上传失败',
  4069. },
  4070. // Edit archive modal
  4071. // Edit Archive Modal
  4072. editArchive: {
  4073. title: '编辑归档',
  4074. name: '名称',
  4075. namePlaceholder: '打印名称',
  4076. printer: '打印机',
  4077. noPrinter: '无打印机',
  4078. project: '项目',
  4079. noProject: '无项目',
  4080. itemsPrinted: '打印数量',
  4081. itemsPrintedHelp: '此打印任务中生产的物品数量',
  4082. notes: '备注',
  4083. notesPlaceholder: '添加关于此打印的备注...',
  4084. externalLink: '外部链接',
  4085. externalLinkPlaceholder: 'https://printables.com/model/...',
  4086. externalLinkHelp: '链接到 Printables、Thingiverse 或其他来源',
  4087. tags: '标签',
  4088. tagsPlaceholder: '添加标签...',
  4089. addMoreTags: '添加更多标签...',
  4090. matchingTags: '匹配"{{query}}"',
  4091. existingTags: '现有标签',
  4092. clickToAdd: '(点击添加)',
  4093. status: '状态',
  4094. failureReason: '失败原因',
  4095. selectReason: '选择原因...',
  4096. photos: '打印成品照片',
  4097. photosHelp: '点击 + 添加打印成品照片',
  4098. printResult: '打印成品',
  4099. saving: '保存中...',
  4100. // Failure reasons
  4101. failureReasons: {
  4102. adhesionFailure: '附着力失败',
  4103. spaghettiDetached: '拉丝 / 脱落',
  4104. layerShift: '层偏移',
  4105. cloggedNozzle: '喷嘴堵塞',
  4106. filamentRunout: '耗材用完',
  4107. warping: '翘曲',
  4108. stringing: '拉丝',
  4109. underExtrusion: '挤出不足',
  4110. powerFailure: '断电',
  4111. userCancelled: '用户取消',
  4112. other: '其他',
  4113. },
  4114. // Archive statuses
  4115. statuses: {
  4116. completed: '已完成',
  4117. failed: '失败',
  4118. aborted: '已取消',
  4119. printing: '打印中',
  4120. },
  4121. },
  4122. // K-Profiles
  4123. kProfiles: {
  4124. title: 'K 值配置',
  4125. noPrintersConfigured: '未配置打印机',
  4126. addPrinterInSettings: '在设置中添加打印机以管理 K 值配置',
  4127. noActivePrinters: '无活跃打印机',
  4128. enablePrinterConnection: '启用打印机连接以查看其 K 值配置',
  4129. loadingProfiles: '加载 K 值配置中...',
  4130. printerOffline: '打印机离线',
  4131. printerOfflineDesc: '所选打印机未连接。开启电源以查看 K 值配置。',
  4132. noMatchingProfiles: '无匹配的配置',
  4133. noMatchingProfilesDesc: '没有配置匹配您的搜索条件',
  4134. noKProfiles: '无 K 值配置',
  4135. noKProfilesDesc: '未找到 {{diameter}}mm 喷嘴的压力推进配置',
  4136. createFirstProfile: '创建第一个配置',
  4137. // Controls
  4138. printer: '打印机',
  4139. nozzle: '喷嘴',
  4140. refresh: '刷新',
  4141. addProfile: '添加配置',
  4142. export: '导出',
  4143. import: '导入',
  4144. select: '选择',
  4145. selectAll: '全选',
  4146. delete: '删除',
  4147. // Filters
  4148. searchPlaceholder: '按名称或耗材搜索...',
  4149. allExtruders: '所有挤出机',
  4150. leftOnly: '仅左侧',
  4151. rightOnly: '仅右侧',
  4152. allFlow: '所有流量',
  4153. hfOnly: '仅高流量',
  4154. sOnly: '仅标准',
  4155. sortName: '排序:名称',
  4156. sortKValue: '排序:K 值',
  4157. sortFilament: '排序:耗材',
  4158. // Dual extruder labels
  4159. leftExtruder: '左挤出机',
  4160. rightExtruder: '右挤出机',
  4161. // Modal
  4162. modal: {
  4163. addTitle: '添加 K 值配置',
  4164. editTitle: '编辑 K 值配置',
  4165. profileName: '配置名称',
  4166. profileNamePlaceholder: '我的 PLA 配置',
  4167. kValue: 'K 值',
  4168. kValuePlaceholder: '0.020',
  4169. kValueHelp: '典型范围:PLA 0.01 - 0.06,PETG 0.02 - 0.10',
  4170. filament: '耗材',
  4171. selectFilament: '选择耗材...',
  4172. noFilamentsHelp: '未找到耗材。请先在 Bambu Studio 中创建 K 值配置。',
  4173. flowType: '流量类型',
  4174. highFlow: '高流量',
  4175. standard: '标准',
  4176. nozzleSize: '喷嘴尺寸',
  4177. extruder: '挤出机',
  4178. extruders: '挤出机',
  4179. left: '左',
  4180. right: '右',
  4181. notes: '备注(本地存储)',
  4182. notesPlaceholder: '添加关于此配置的备注...',
  4183. notesHelp: '备注保存在 Bambuddy 中,不在打印机上',
  4184. syncing: '与打印机同步中...',
  4185. savingExtruder: '保存到挤出机 {{current}}/{{total}}...',
  4186. pleaseWait: '请稍候',
  4187. },
  4188. // Delete confirmation
  4189. deleteConfirm: {
  4190. title: '删除配置',
  4191. cannotUndo: '此操作无法撤销',
  4192. message: '确定要从打印机删除"{{name}}"吗?',
  4193. },
  4194. // Bulk delete
  4195. bulkDelete: {
  4196. title: '删除配置',
  4197. cannotUndo: '此操作无法撤销',
  4198. message: '确定要从打印机删除 {{count}} 个选中的配置吗?',
  4199. },
  4200. // Toast
  4201. toast: {
  4202. profileSaved: 'K 值配置已保存',
  4203. profilesSaved: 'K 值配置已保存到 {{count}} 个挤出机',
  4204. selectAtLeastOneExtruder: '请至少选择一个挤出机',
  4205. profileDeleted: 'K 值配置已删除',
  4206. profilesDeleted: '已删除 {{count}} 个配置',
  4207. exportedProfiles: '已导出 {{count}} 个配置',
  4208. importedProfiles: '已导入 {{count}} / {{total}} 个配置',
  4209. noProfilesToExport: '无可导出的配置',
  4210. invalidFileFormat: '无效的文件格式',
  4211. failedToParseImport: '解析导入文件失败',
  4212. failedToSaveBatch: '批量保存 K 值配置失败',
  4213. noteSaved: '备注已保存',
  4214. failedToSaveNote: '保存备注失败',
  4215. },
  4216. // Permissions
  4217. permission: {
  4218. noRead: '您没有刷新配置的权限',
  4219. noCreate: '您没有添加配置的权限',
  4220. noUpdate: '您没有更新 K 值配置的权限',
  4221. noDelete: '您没有删除 K 值配置的权限',
  4222. noExport: '您没有导出配置的权限',
  4223. noImport: '您没有导入配置的权限',
  4224. },
  4225. },
  4226. // Virtual Printer
  4227. virtualPrinter: {
  4228. title: '虚拟打印机',
  4229. running: '运行中',
  4230. stopped: '已停止',
  4231. description: {
  4232. default: '启用虚拟打印机,使其在 Bambu Studio 和 OrcaSlicer 中可见。发送到此打印机的文件将直接归档而不打印。',
  4233. proxy: '启用代理,将切片软件流量中继到真实打印机,允许在任何网络上远程打印。',
  4234. },
  4235. enable: {
  4236. title: '启用虚拟打印机',
  4237. visibleInSlicer: '在切片软件发现中显示为"Bambuddy"',
  4238. proxyingTo: '代理到 {{name}}',
  4239. notActive: '未激活',
  4240. },
  4241. model: {
  4242. title: '打印机型号',
  4243. description: '选择要模拟的打印机型号。',
  4244. restartWarning: '更改型号将重启虚拟打印机',
  4245. },
  4246. accessCode: {
  4247. title: '访问码',
  4248. isSet: '访问码已设置',
  4249. notSet: '未设置访问码 - 需要设置才能启用',
  4250. placeholder: '输入 8 位字符代码',
  4251. placeholderChange: '输入新代码以更改',
  4252. hint: '必须恰好 8 个字符。切片软件使用此代码进行认证。',
  4253. charCount: '({{count}}/8)',
  4254. },
  4255. targetPrinter: {
  4256. title: '目标打印机',
  4257. configured: '代理目标已配置',
  4258. notConfigured: '未选择目标打印机 - 代理模式需要设置',
  4259. placeholder: '选择打印机...',
  4260. hint: '选择要将切片软件流量代理到的打印机。打印机必须处于局域网模式。',
  4261. noPrinters: '未配置打印机。请先添加打印机以使用代理模式。',
  4262. },
  4263. remoteInterface: {
  4264. title: '网络接口覆盖',
  4265. configured: '接口覆盖已激活',
  4266. optional: '可选 - 当自动检测的 IP 不正确时使用(例如多网卡、Docker、VPN)',
  4267. placeholder: '自动检测(默认)...',
  4268. hint: '覆盖通过 SSDP 广播并在 TLS 证书中使用的 IP 地址。在 Bambuddy 有多个网络接口时很有用。',
  4269. },
  4270. mode: {
  4271. title: '模式',
  4272. archive: '归档',
  4273. archiveDesc: '立即归档文件',
  4274. review: '审核',
  4275. reviewDesc: '归档前审核',
  4276. queue: '队列',
  4277. queueDesc: '归档并添加到队列',
  4278. proxy: '代理',
  4279. proxyDesc: '中继到真实打印机',
  4280. },
  4281. autoDispatch: {
  4282. title: '自动派发',
  4283. description: '添加到队列时自动开始打印。关闭后,打印任务等待手动派发。',
  4284. },
  4285. queueForceColorMatch: {
  4286. title: '强制颜色匹配',
  4287. description: '拒绝派发到没有完全相同耗材类型和颜色的打印机。默认关闭 — 不启用时,队列仅按型号匹配,可能选到颜色错误的打印机。',
  4288. },
  4289. tailscaleDisabled: {
  4290. title: 'Tailscale 集成',
  4291. description: '启用以将此 VP 标记为通过 Tailscale 公开。显示主机的 Tailscale 地址,以便您知道要粘贴到切片器中的 IP。CA 导入步骤保持不变 — 此开关对证书无影响。',
  4292. },
  4293. setupRequired: {
  4294. title: '需要设置',
  4295. description: '虚拟打印机功能需要额外的系统配置才能工作。包括端口转发、防火墙规则和平台特定设置。',
  4296. readGuide: '启用前请阅读设置指南',
  4297. },
  4298. archiveNameSource: {
  4299. title: '存档名称来源',
  4300. description: '选择通过虚拟打印机接收文件时新存档的命名方式。"元数据"使用 3MF 中嵌入的切片标题(默认)。"文件名"使用 Bambu Studio 通过 FTP 发送的文件名 — 当您在"发送到打印机"对话框中重命名作业时非常有用。',
  4301. metadata: '元数据',
  4302. filename: '文件名',
  4303. },
  4304. caCert: {
  4305. title: '切片软件证书',
  4306. description: '虚拟打印机使用由 Bambuddy CA 签发的 TLS 证书。将此 CA 证书导入切片软件的信任库一次,切片软件即可接受连接 — 无需再通过命令行获取。',
  4307. copy: '复制',
  4308. copied: '已复制',
  4309. download: '下载',
  4310. fingerprint: 'SHA-256',
  4311. },
  4312. howItWorks: {
  4313. title: '工作原理',
  4314. step1: '在同一局域网中,虚拟打印机会通过发现机制自动出现在您的切片软件(Bambu Studio / OrcaSlicer)中。从其他网络,通过 IP 地址和访问码手动添加。',
  4315. step2: '在归档、审核和队列模式下,使用切片软件中的"发送"按钮将 3MF 文件上传到 Bambuddy。切片软件会显示"打印成功"— 文件已存储,未打印。',
  4316. step3: '在代理模式下,虚拟打印机将所有流量中继到真实打印机 — 打印会立即开始,就像直接连接一样。',
  4317. },
  4318. status: {
  4319. title: '状态详情',
  4320. printerName: '打印机名称',
  4321. model: '型号',
  4322. serialNumber: '序列号',
  4323. mode: '模式',
  4324. pendingFiles: '待处理文件',
  4325. targetPrinter: '目标打印机',
  4326. ftpPort: 'FTP 端口',
  4327. mqttPort: 'MQTT 端口',
  4328. ftpConnections: 'FTP 连接',
  4329. mqttConnections: 'MQTT 连接',
  4330. },
  4331. toast: {
  4332. updated: '虚拟打印机设置已更新',
  4333. failedToUpdate: '更新设置失败',
  4334. copyFailed: '复制失败 — 请手动选中文本',
  4335. accessCodeRequired: '请先设置访问码',
  4336. targetPrinterRequired: '请先选择目标打印机',
  4337. bindIpRequired: '请先设置绑定 IP',
  4338. accessCodeEmpty: '访问码不能为空',
  4339. accessCodeLength: '访问码必须恰好 8 个字符',
  4340. created: '虚拟打印机已创建',
  4341. failedToCreate: '创建虚拟打印机失败',
  4342. deleted: '虚拟打印机已删除',
  4343. failedToDelete: '删除虚拟打印机失败',
  4344. },
  4345. list: {
  4346. title: '虚拟打印机',
  4347. add: '添加',
  4348. addFirst: '添加虚拟打印机',
  4349. empty: '未配置虚拟打印机。添加一个以开始使用。',
  4350. },
  4351. bindIp: {
  4352. title: '绑定接口',
  4353. placeholder: '选择接口...',
  4354. hint: '此虚拟打印机绑定的网络接口。每台打印机必须唯一。',
  4355. },
  4356. proxy: {
  4357. accessCodeHint: '在代理模式下,在切片软件中使用目标打印机的访问码。连接会透明转发到真实打印机。',
  4358. },
  4359. addDialog: {
  4360. title: '添加虚拟打印机',
  4361. name: '名称',
  4362. hint: '创建后可以配置访问码、目标打印机和其他设置。',
  4363. create: '创建',
  4364. },
  4365. deleteConfirm: {
  4366. title: '删除虚拟打印机',
  4367. message: '确定要删除"{{name}}"吗?这将停止此打印机的所有服务。',
  4368. },
  4369. },
  4370. // Model Viewer
  4371. modelViewer: {
  4372. openInSlicer: '在切片软件中打开',
  4373. tabs: {
  4374. model: '3D 模型',
  4375. gcode: 'G-code 预览',
  4376. },
  4377. notAvailable: '不可用',
  4378. notSliced: '未切片',
  4379. plates: '板',
  4380. allPlates: '所有板',
  4381. plateNumber: '板 {{number}}',
  4382. plateCount: '{{count}} 个板',
  4383. plateCount_other: '{{count}} 个板',
  4384. objectCount: '{{count}} 个对象',
  4385. objectCount_other: '{{count}} 个对象',
  4386. filamentCount: '{{count}} 种耗材',
  4387. filamentCount_other: '{{count}} 种耗材',
  4388. eta: '预计 {{minutes}} 分钟',
  4389. noPreview: '此文件无可用预览',
  4390. pagination: {
  4391. pageOf: '第 {{current}} / {{total}} 页',
  4392. prev: '上一页',
  4393. next: '下一页',
  4394. },
  4395. errors: {
  4396. failedToLoad: '加载文件失败',
  4397. noMeshes: '3MF 文件中未找到网格',
  4398. unsupportedFormat: '不支持的文件格式',
  4399. },
  4400. },
  4401. // Maintenance type descriptions (built-in)
  4402. maintenanceDescriptions: {
  4403. lubricateCarbonRods: '在碳纤维杆上涂抹润滑剂以确保顺畅运动',
  4404. lubricateRails: '在线性导轨上涂抹润滑剂以确保顺畅运动',
  4405. cleanNozzle: '清洁热端和喷嘴以防止堵塞',
  4406. checkBelts: '检查皮带张力以确保打印精度',
  4407. cleanBuildPlate: '清洁构建板以获得更好的附着力',
  4408. checkExtruder: '检查挤出机齿轮磨损情况',
  4409. checkCooling: '确保冷却风扇正常工作',
  4410. generalInspection: '打印机综合检查',
  4411. cleanCarbonRods: '清洁碳纤维杆以减少摩擦',
  4412. lubricateSteelRods: '在钢杆上涂抹润滑剂以确保顺畅运动',
  4413. cleanSteelRods: '清洁钢杆以减少摩擦',
  4414. cleanLinearRails: '擦拭线性导轨以清除灰尘和碎屑',
  4415. checkPtfeTube: '检查 PTFE 管的磨损或损坏',
  4416. replaceHepaFilter: '更换 HEPA 过滤器以保证空气质量',
  4417. replaceCarbonFilter: '更换活性炭过滤器',
  4418. lubricateLeftNozzleRail: '润滑左喷嘴导轨(H2 系列)',
  4419. },
  4420. // Smart Plugs
  4421. smartPlugs: {
  4422. offline: '离线',
  4423. admin: '管理',
  4424. openPlugAdminPage: '打开插座管理页面',
  4425. deleteSmartPlug: '删除智能插座',
  4426. turnOnSmartPlug: '开启智能插座',
  4427. turnOffSmartPlug: '关闭智能插座',
  4428. turnOn: '开启',
  4429. turnOff: '关闭',
  4430. addSmartPlug: {
  4431. scanningNetwork: '扫描网络中...',
  4432. chooseEntity: '选择实体...',
  4433. connectionFailed: '连接失败',
  4434. searchEntities: '搜索实体...',
  4435. searchPowerSensors: '搜索功率传感器...',
  4436. searchEnergySensors: '搜索能量传感器...',
  4437. placeholders: {
  4438. plugName: '客厅插座',
  4439. mqttStateOnValue: 'ON、true、1',
  4440. mqttSameAsPower: '与功率主题相同,或不同',
  4441. },
  4442. },
  4443. // SmartPlugCard
  4444. linkedTo: '关联到:',
  4445. monitorOnly: '仅监控',
  4446. alerts: '警报',
  4447. scheduleOn: '开启 {{time}}',
  4448. scheduleOff: '关闭 {{time}}',
  4449. on: '开启',
  4450. off: '关闭',
  4451. power: '功率',
  4452. kwhToday: '今日kWh',
  4453. settings: '设置',
  4454. automationSettings: '自动化设置',
  4455. showInSwitchbar: '在开关栏显示',
  4456. quickAccessSidebar: '从侧边栏快速访问',
  4457. enabled: '已启用',
  4458. enableAutomation: '为此插座启用自动化',
  4459. autoOn: '自动开启',
  4460. autoOnDescription: '打印开始时开启',
  4461. autoOff: '自动关闭',
  4462. autoOffDescription: '打印完成时关闭(一次性)',
  4463. autoOffPersistent: '保持启用',
  4464. autoOffPersistentDescription: '在打印之间保持启用而非一次性',
  4465. autoOffAfterDrying: '干燥完成后自动关闭',
  4466. autoOffAfterDryingDescription: 'AMS 干燥完成后关闭',
  4467. delayAfterDryingMinutes: '干燥后延迟(分钟)',
  4468. turnOffDelayMode: '关闭延迟模式',
  4469. time: '时间',
  4470. temp: '温度',
  4471. delayMinutes: '延迟(分钟)',
  4472. tempThreshold: '温度阈值(°C)',
  4473. tempThresholdDescription: '当喷嘴冷却到此温度以下时关闭',
  4474. edit: '编辑',
  4475. deleteConfirm: '确定要删除"{{name}}"吗?此操作无法撤销。',
  4476. turnOnConfirm: '确定要开启"{{name}}"吗?',
  4477. turnOffConfirm: '确定要关闭"{{name}}"吗?这将切断连接设备的电源。',
  4478. failedToTurn: '无法{{action}}"{{name}}"',
  4479. unknown: '未知',
  4480. // AddSmartPlugModal
  4481. addTitle: '添加智能插座',
  4482. editTitle: '编辑智能插座',
  4483. stopScanning: '停止扫描',
  4484. discoverTasmota: '发现Tasmota设备',
  4485. foundDevices: '找到{{count}}个设备 - 点击选择:',
  4486. noDevicesFound: '未在您的网络中找到Tasmota设备',
  4487. haNotConfigured: 'Home Assistant未配置。请在以下位置设置',
  4488. haSettingsPath: '设置 → 网络 → Home Assistant',
  4489. selectEntity: '选择实体 *',
  4490. ipAddress: 'IP地址 *',
  4491. nameLabel: '名称 *',
  4492. username: '用户名',
  4493. password: '密码',
  4494. authHint: '如果您的Tasmota设备不需要认证,请留空',
  4495. linkToPrinter: '关联打印机',
  4496. noPrinter: '无打印机(仅手动控制)',
  4497. linkingDescription: '关联后可在打印开始/完成时自动开关',
  4498. powerAlerts: '功率警报',
  4499. alertAbove: '高于时警报(W)',
  4500. alertBelow: '低于时警报(W)',
  4501. alertDescription: '当电力消耗超过这些阈值时收到通知。留空以禁用该方向。',
  4502. dailySchedule: '每日计划',
  4503. turnOnAt: '开启时间',
  4504. turnOffAt: '关闭时间',
  4505. scheduleDescription: '每天在这些时间自动开关插座。留空以跳过该操作。',
  4506. showOnPrinterCard: '在打印机卡片上显示',
  4507. displayOnPrinterCard: '在打印机卡片上显示按钮',
  4508. connectedResult: '已连接!',
  4509. deviceLabel: '设备:{{name}} - ',
  4510. stateLabel: '状态:{{state}}',
  4511. test: '测试',
  4512. delete: '删除',
  4513. save: '保存',
  4514. add: '添加',
  4515. cancel: '取消',
  4516. failedToStartScan: '无法开始扫描',
  4517. nameRequired: '名称为必填项',
  4518. entityRequired: 'Home Assistant插座需要实体',
  4519. mqttTopicRequired: '必须为功率、能源或状态监控配置至少一个MQTT主题',
  4520. loadingEntities: '正在加载实体...',
  4521. loading: '加载中...',
  4522. failedToLoadEntities: '加载实体失败:{{error}}',
  4523. noEntitiesMatching: '未找到匹配"{{search}}"的实体',
  4524. noEntitiesAvailable: '无可用实体',
  4525. searchingEntities: '搜索所有实体(找到{{count}}个)',
  4526. showingEntities: '显示 switch、light、input_boolean({{count}}个可用)',
  4527. energyMonitoringOptional: '能源监控(可选)',
  4528. energyMonitoringHint: '搜索并选择提供功率/能源数据的传感器。',
  4529. powerSensorW: '功率传感器(W)',
  4530. energyTodayKwh: '今日能源(kWh)',
  4531. totalEnergyKwh: '总能源(kWh)',
  4532. noMatchingSensors: '无匹配的传感器',
  4533. none: '无',
  4534. mqttNotConfigured: 'MQTT代理未配置。请在以下位置设置代理地址',
  4535. mqttSettingsPath: '设置 → 网络 → MQTT发布',
  4536. mqttNotConfiguredSuffix: '(您不需要启用发布,只需填写代理详细信息)。',
  4537. mqttMonitorOnlyDescription: 'MQTT插座通过MQTT订阅接收功率/能源数据。开关控制不可用 - 请使用您的MQTT代理或家庭自动化系统。',
  4538. powerMonitoring: '功率监控',
  4539. energyMonitoring: '能源监控',
  4540. stateMonitoring: '状态监控',
  4541. optional: '可选',
  4542. topic: '主题',
  4543. jsonPath: 'JSON路径',
  4544. multiplier: '乘数',
  4545. onValue: 'ON值',
  4546. mqttPowerHint: 'JSON路径从JSON负载中提取值(例如"power_l1")。如果主题发布原始数值,请留空。\n乘数:mW→W使用0.001,kW→W使用1000。',
  4547. mqttEnergyHint: 'JSON路径从JSON负载中提取值。原始值请留空。\n乘数:Wh→kWh使用0.001,MWh→kWh使用1000。',
  4548. mqttStateHint: 'JSON路径从JSON负载中提取值。原始值请留空。\nON值:表示"ON"的确切字符串。留空以自动检测(ON、true、1)。',
  4549. // REST smart plug
  4550. restControl: '控制',
  4551. restOnUrl: '开启 URL',
  4552. restOffUrl: '关闭 URL',
  4553. restOnBody: '开启请求体',
  4554. restOffBody: '关闭请求体',
  4555. restMethod: 'HTTP 方法',
  4556. restHeaders: 'Custom Headers (JSON)',
  4557. restStatusUrl: '状态 URL',
  4558. restStatusPath: '状态 JSON 路径',
  4559. restStatusOnValue: '开启值',
  4560. restPowerUrl: '功率URL',
  4561. restPowerPath: '功率 JSON 路径',
  4562. restPowerMultiplier: '功率乘数',
  4563. restEnergyUrl: '能耗URL',
  4564. restEnergyPath: '能耗 JSON 路径',
  4565. restEnergyMultiplier: '能耗乘数',
  4566. restUrlRequired: 'REST 插座至少需要一个 URL(ON 或 OFF)',
  4567. restHeadersHint: '例如 {"Authorization": "Bearer your-token"}',
  4568. restBodyHint: '例如 ON, {"state": "on"}',
  4569. restStatusHint: '轮询当前状态的 URL',
  4570. restPathHint: '例如 state 或 data.power.status',
  4571. restPowerUrlHint: '功率数据的独立URL(留空则使用状态URL)',
  4572. restEnergyUrlHint: '能耗数据的独立URL(留空则使用状态URL)',
  4573. restEnergyHint: '每个值可以使用独立的URL,或回退到状态URL。使用乘数进行单位转换(例如:0.001 将 Wh 转换为 kWh)。',
  4574. testConnection: '测试连接',
  4575. connectionSuccess: '连接成功',
  4576. noSwitchesInSwitchbar: '开关栏中没有开关',
  4577. enableSwitchbarHint: '在设置 > 智能插座中启用"在开关栏显示"',
  4578. },
  4579. // Notifications
  4580. notifications: {
  4581. // Provider types
  4582. providerTypes: {
  4583. callmebot: 'CallMeBot/WhatsApp',
  4584. ntfy: 'ntfy',
  4585. pushover: 'Pushover',
  4586. telegram: 'Telegram',
  4587. email: '电子邮件',
  4588. discord: 'Discord',
  4589. webhook: 'Webhook',
  4590. homeassistant: 'Home Assistant',
  4591. },
  4592. // Provider descriptions
  4593. providerDescriptions: {
  4594. email: 'SMTP 电子邮件通知',
  4595. telegram: '通过 Telegram 机器人发送通知',
  4596. discord: '通过 Webhook 发送到 Discord 频道',
  4597. ntfy: '免费、可自托管的推送通知',
  4598. pushover: '简单、可靠的推送通知',
  4599. callmebot: '通过 CallMeBot 免费发送 WhatsApp 通知',
  4600. webhook: '通用 HTTP POST 到任意 URL',
  4601. homeassistant: 'Home Assistant 仪表板中的持久通知',
  4602. },
  4603. // NotificationProviderCard
  4604. lastSuccess: '上次:{{date}}',
  4605. error: '错误',
  4606. printer: '打印机:',
  4607. allPrinters: '所有打印机',
  4608. sendTestNotification: '发送测试通知',
  4609. eventSettings: '事件设置',
  4610. enabled: '已启用',
  4611. sendFromProvider: '从此提供商发送通知',
  4612. // Event categories
  4613. printEvents: '打印事件',
  4614. printerStatus: '打印机状态',
  4615. amsAlarms: 'AMS 警报',
  4616. amsHtAlarms: 'AMS-HT 警报',
  4617. printQueue: '打印队列',
  4618. // Event tags (badges)
  4619. start: '开始',
  4620. plateCheck: '热床检测',
  4621. complete: '完成',
  4622. failed: '失败',
  4623. stopped: '已停止',
  4624. progress: '进度',
  4625. offline: '离线',
  4626. lowFilament: '耗材不足',
  4627. maintenance: '维护',
  4628. amsHumidity: 'AMS 湿度',
  4629. amsTemp: 'AMS 温度',
  4630. amsHtHumidity: 'AMS-HT 湿度',
  4631. amsHtTemp: 'AMS-HT 温度',
  4632. bedCooled: '热床已冷却',
  4633. firstLayer: '首层完成',
  4634. quiet: '免打扰',
  4635. digest: '摘要 {{time}}',
  4636. // Event labels (expanded settings)
  4637. printStarted: '打印已开始',
  4638. plateNotEmpty: '热床非空',
  4639. plateNotEmptyDescription: '打印前检测到物体',
  4640. printCompleted: '打印已完成',
  4641. bedCooledLabel: '热床已冷却',
  4642. bedCooledDescription: '打印后热床温度降至阈值以下',
  4643. firstLayerCompleteLabel: '首层打印完成',
  4644. firstLayerCompleteDescription: '首层完成时发送带照片的通知',
  4645. missingSpoolAssignmentLabel: '缺少料卷分配',
  4646. missingSpoolAssignmentDescription: '当打印开始且所需料盘没有分配料卷时发送通知',
  4647. printFailed: '打印失败',
  4648. printStopped: '打印已停止',
  4649. progressMilestones: '进度里程碑',
  4650. progressMilestonesDescription: '在 25%、50%、75% 时通知',
  4651. printerOffline: '打印机离线',
  4652. printerError: '打印机错误',
  4653. lowFilamentLabel: '耗材不足',
  4654. maintenanceDue: '需要维护',
  4655. maintenanceDueDescription: '需要维护时通知',
  4656. amsHumidityHigh: 'AMS 湿度过高',
  4657. amsHumidityHighDescription: '普通 AMS 湿度超过阈值',
  4658. amsTemperatureHigh: 'AMS 温度过高',
  4659. amsTemperatureHighDescription: '普通 AMS 温度超过阈值',
  4660. amsHtHumidityHigh: 'AMS-HT 湿度过高',
  4661. amsHtHumidityHighDescription: 'AMS-HT 湿度超过阈值',
  4662. amsHtTemperatureHigh: 'AMS-HT 温度过高',
  4663. amsHtTemperatureHighDescription: 'AMS-HT 温度超过阈值',
  4664. // Inventory stock alert events
  4665. inventoryAlerts: '库存警报',
  4666. stockReorderAlert: '补货警报',
  4667. stockReorderAlertDescription: 'SKU 已达到补货点',
  4668. stockBreakAlert: '断货警报',
  4669. stockBreakAlertDescription: '库存将在补货到达前耗尽',
  4670. // Queue events
  4671. jobAdded: '任务已添加',
  4672. jobAddedDescription: '任务已添加到队列',
  4673. jobAssigned: '任务已分配',
  4674. jobAssignedDescription: '基于模型的任务已分配给打印机',
  4675. jobStarted: '任务已开始',
  4676. jobStartedDescription: '队列任务已开始打印',
  4677. jobWaiting: '任务等待中',
  4678. jobWaitingDescription: '任务正在等待耗材或打印机',
  4679. jobSkipped: '任务已跳过',
  4680. jobSkippedDescription: '任务已跳过(上一个失败)',
  4681. jobFailed: '任务失败',
  4682. jobFailedDescription: '任务启动失败',
  4683. queueComplete: '队列已完成',
  4684. queueCompleteDescription: '所有队列任务已完成',
  4685. // Quiet hours
  4686. quietHours: '免打扰时段',
  4687. noNotificationsDuring: '在此时段内不发送通知',
  4688. editProviderToChangeQuietHours: '编辑提供商以更改免打扰时段',
  4689. // Daily digest
  4690. dailyDigest: '每日摘要',
  4691. batchNotifications: '将通知汇总为每日摘要',
  4692. sendAt: '发送于 {{time}}',
  4693. editProviderToChangeDigestTime: '编辑提供商以更改摘要时间',
  4694. // Actions
  4695. edit: '编辑',
  4696. deleteProvider: '删除通知提供商',
  4697. deleteConfirm: '确定要删除"{{name}}"吗?此操作无法撤销。',
  4698. delete: '删除',
  4699. // AddNotificationModal
  4700. addTitle: '添加通知提供商',
  4701. editTitle: '编辑通知提供商',
  4702. nameLabel: '名称 *',
  4703. namePlaceholder: '我的通知',
  4704. providerTypeLabel: '提供商类型 *',
  4705. configuration: '配置',
  4706. testConfiguration: '测试配置',
  4707. printerFilter: '打印机筛选',
  4708. onlyFromPrinter: '仅发送来自此打印机的事件通知',
  4709. quietHoursDnd: '免打扰时段',
  4710. quietStart: '开始',
  4711. quietEnd: '结束',
  4712. dailyDigestLabel: '每日摘要',
  4713. sendDigestAt: '发送摘要于',
  4714. digestCollected: '事件将被收集并在此时间作为单条摘要发送',
  4715. notificationEvents: '通知事件',
  4716. progressPercent: '(25%、50%、75%)',
  4717. bedCooledAfterPrint: '(打印完成后)',
  4718. // Per-event ntfy priority (#990)
  4719. eventPriority: {
  4720. sectionTitle: 'ntfy 优先级',
  4721. helpNtfy: '为每个已启用的事件选择优先级。ntfy 使用它来升级提醒(声音、可见性、推送行为)。此处未设置的级别将使用 ntfy 服务器默认值。',
  4722. min: '最低',
  4723. low: '低',
  4724. default: '默认',
  4725. high: '高',
  4726. urgent: '紧急',
  4727. },
  4728. cancel: '取消',
  4729. save: '保存',
  4730. add: '添加',
  4731. nameRequired: '名称为必填项',
  4732. fieldRequired: '{{field}}为必填项',
  4733. // Config field labels
  4734. phoneNumber: '电话号码',
  4735. apiKey: 'API 密钥',
  4736. serverUrl: '服务器 URL',
  4737. topic: '主题',
  4738. authToken: '认证令牌',
  4739. userKey: '用户密钥',
  4740. appToken: '应用令牌',
  4741. priority: '优先级',
  4742. botToken: '机器人令牌',
  4743. chatId: '聊天 ID',
  4744. smtpServer: 'SMTP 服务器',
  4745. smtpPort: 'SMTP 端口',
  4746. security: '安全',
  4747. authentication: '认证',
  4748. username: '用户名',
  4749. password: '密码',
  4750. fromEmail: '发件人邮箱',
  4751. toEmail: '收件人邮箱',
  4752. webhookUrl: 'Webhook URL',
  4753. payloadFormat: '负载格式',
  4754. authorization: '授权',
  4755. titleFieldName: '标题字段名',
  4756. messageFieldName: '消息字段名',
  4757. // NotificationTemplateEditor
  4758. editTemplate: '编辑模板:{{name}}',
  4759. titleLabel: '标题',
  4760. bodyLabel: '正文',
  4761. titlePlaceholder: '通知标题...',
  4762. bodyPlaceholder: '通知正文...',
  4763. availableVariables: '可用变量',
  4764. clickToInsert: '点击插入到正文光标位置',
  4765. livePreview: '实时预览',
  4766. hide: '隐藏',
  4767. show: '显示',
  4768. loadingPreview: '加载预览中...',
  4769. enterTemplateContent: '输入模板内容以查看预览',
  4770. titlePreview: '标题:',
  4771. bodyPreview: '正文:',
  4772. resetToDefault: '恢复默认',
  4773. titleRequired: '标题为必填项',
  4774. bodyRequired: '正文为必填项',
  4775. // NotificationLogViewer
  4776. notificationLog: '通知日志',
  4777. showFailedOnly: '仅显示失败',
  4778. last24Hours: '最近 24 小时',
  4779. last7Days: '最近 7 天',
  4780. last30Days: '最近 30 天',
  4781. last90Days: '最近 90 天',
  4782. justNow: '刚刚',
  4783. noFailedNotifications: '没有失败的通知',
  4784. noNotificationsLogged: '没有通知记录',
  4785. unknownProvider: '未知提供商',
  4786. logTitle: '标题',
  4787. logMessage: '消息',
  4788. logError: '错误',
  4789. logProvider: '提供商:{{type}}',
  4790. logTime: '时间:{{time}}',
  4791. refresh: '刷新',
  4792. clearOld: '清除旧记录',
  4793. statsSummary: '最近 {{days}} 天:',
  4794. statsNotifications: '条通知',
  4795. statsSent: '{{count}} 条已发送',
  4796. statsFailed: '{{count}} 条失败',
  4797. // Event type labels (for log viewer)
  4798. eventTypes: {
  4799. print_start: '打印已开始',
  4800. print_complete: '打印完成',
  4801. print_failed: '打印失败',
  4802. print_stopped: '打印已停止',
  4803. print_progress: '进度',
  4804. printer_offline: '打印机离线',
  4805. printer_error: '打印机错误',
  4806. filament_low: '耗材不足',
  4807. maintenance_due: '需要维护',
  4808. test: '测试',
  4809. },
  4810. userEmail: {
  4811. title: '通知',
  4812. emailNotifications: '邮件通知',
  4813. emailNotificationsDesc: '接收您自己打印任务的邮件通知。邮件将通过高级身份验证中配置的 SMTP 设置发送。',
  4814. sendingTo: '通知将发送至',
  4815. noEmailWarning: '您的账户没有邮件地址。请联系管理员添加。',
  4816. printJobNotifications: '打印任务通知',
  4817. printJobNotificationsDesc: '选择哪些事件会触发您提交的打印任务的邮件通知。',
  4818. printJobStarts: '打印任务开始',
  4819. printJobStartsDesc: '当您的打印任务开始时收到通知。',
  4820. printJobFinishes: '打印任务完成',
  4821. printJobFinishesDesc: '当您的打印任务成功完成时收到通知。',
  4822. printErrors: '打印错误',
  4823. printErrorsDesc: '当您的打印任务失败或遇到错误时收到通知。',
  4824. printJobStops: '打印任务停止',
  4825. printJobStopsDesc: '当您的打印任务被取消或停止时收到通知。',
  4826. saveSuccess: '通知偏好设置已保存。',
  4827. saveError: '保存通知偏好设置失败。',
  4828. },
  4829. },
  4830. // Rich Text Editor
  4831. richTextEditor: {
  4832. bold: '粗体',
  4833. italic: '斜体',
  4834. underline: '下划线',
  4835. bulletList: '无序列表',
  4836. numberedList: '有序列表',
  4837. alignLeft: '左对齐',
  4838. alignCenter: '居中对齐',
  4839. alignRight: '右对齐',
  4840. addLink: '添加链接',
  4841. removeLink: '移除链接',
  4842. },
  4843. // External Links
  4844. externalLinks: {
  4845. noLinksConfigured: '未配置外部链接',
  4846. deleteLink: '删除链接',
  4847. removeCustomIcon: '移除自定义图标',
  4848. openInNewTab: '在新标签页中打开',
  4849. placeholders: {
  4850. linkName: '我的链接',
  4851. },
  4852. },
  4853. // Keyboard Shortcuts Modal
  4854. keyboardShortcuts: {
  4855. title: '键盘快捷键',
  4856. navigation: '导航',
  4857. archivesSection: '归档',
  4858. kProfilesSection: 'K 值配置',
  4859. generalSection: '通用',
  4860. shortcuts: {
  4861. goToPrinters: '前往打印机',
  4862. goToArchives: '前往归档',
  4863. goToQueue: '前往队列',
  4864. goToStats: '前往统计',
  4865. goToProfiles: '前往云端配置',
  4866. goToSettings: '前往设置',
  4867. focusSearch: '聚焦搜索',
  4868. openUploadModal: '打开上传对话框',
  4869. clearSelection: '清除选择 / 取消焦点',
  4870. contextMenu: '卡片右键菜单',
  4871. refreshProfiles: '刷新配置',
  4872. newProfile: '新建配置',
  4873. exitSelectionMode: '退出选择模式',
  4874. showHelp: '显示此帮助',
  4875. },
  4876. footer: '按 Esc 或点击外部关闭',
  4877. },
  4878. // Notification Log
  4879. notificationLog: {
  4880. title: '通知日志',
  4881. events: {
  4882. printStarted: '打印开始',
  4883. printComplete: '打印完成',
  4884. printFailed: '打印失败',
  4885. printStopped: '打印停止',
  4886. progress: '进度',
  4887. printerOffline: '打印机离线',
  4888. printerError: '打印机错误',
  4889. lowFilament: '耗材不足',
  4890. maintenanceDue: '维护到期',
  4891. test: '测试',
  4892. },
  4893. timeAgo: {
  4894. justNow: '刚刚',
  4895. minutesAgo: '{{minutes}} 分钟前',
  4896. hoursAgo: '{{hours}} 小时前',
  4897. },
  4898. },
  4899. // Restore/Backup Modal
  4900. restoreBackup: {
  4901. title: '恢复备份',
  4902. restoring: '恢复中...',
  4903. restoreComplete: '恢复完成',
  4904. restoreFailed: '恢复失败',
  4905. importSettings: '从备份文件导入设置',
  4906. pleaseWait: '请稍候,正在恢复您的数据',
  4907. clickToSelect: '点击选择备份文件(.json 或 .zip)',
  4908. howDuplicateHandling: '重复处理方式:',
  4909. categories: {
  4910. printers: '打印机',
  4911. smartPlugs: '智能插座',
  4912. notificationProviders: '通知提供商',
  4913. filaments: '耗材',
  4914. archives: '归档',
  4915. pendingUploads: '待处理上传',
  4916. settingsTemplates: '设置和模板',
  4917. },
  4918. matchingInfo: {
  4919. printers: '按序列号匹配',
  4920. smartPlugs: '按 IP 地址匹配',
  4921. notificationProviders: '按名称匹配',
  4922. filaments: '按名称 + 类型 + 品牌匹配',
  4923. archives: '按内容哈希匹配',
  4924. pendingUploads: '按文件名匹配',
  4925. settingsTemplates: '始终覆盖',
  4926. },
  4927. replaceExisting: '替换现有数据',
  4928. keepExisting: '保留现有数据',
  4929. replaceDescription: '用备份数据覆盖已存在的项目',
  4930. keepDescription: '仅恢复不存在的项目',
  4931. caution: '注意:',
  4932. cautionText: '覆盖将用备份数据替换您当前的配置。出于安全考虑,打印机访问码永远不会被覆盖。',
  4933. itemsRestored: '已恢复项目',
  4934. itemsSkipped: '已跳过项目',
  4935. restored: '已恢复',
  4936. skipped: '已跳过(已存在)',
  4937. filesLabel: '文件(3MF、缩略图等)',
  4938. newApiKeysGenerated: '已生成新 API 密钥',
  4939. newApiKeysWarning: '这些密钥仅显示一次。请立即复制!',
  4940. processingBackup: '处理备份文件中...',
  4941. noDataFound: '备份文件中未找到可恢复的数据。',
  4942. failedToRestore: '恢复备份失败。请检查文件格式。',
  4943. },
  4944. // Backup Export Modal
  4945. backupExport: {
  4946. title: '导出备份',
  4947. selectData: '选择要包含的数据',
  4948. selectAll: '全选',
  4949. selectNone: '全不选',
  4950. categoryDescriptions: {
  4951. settings: '语言、主题、更新偏好',
  4952. notifications: 'ntfy、Pushover、Discord 等',
  4953. templates: '自定义消息模板',
  4954. smartPlugs: 'Tasmota 插座配置',
  4955. externalLinks: '侧边栏外部服务链接',
  4956. printers: '打印机信息(不含访问码)',
  4957. plateDetection: '空打印板参考图像',
  4958. filaments: '耗材类型和成本',
  4959. maintenance: '自定义维护计划',
  4960. archives: '所有打印数据 + 文件(3MF、缩略图、照片)',
  4961. projects: '项目、材料清单和附件',
  4962. pendingUploads: '虚拟打印机待审核的上传',
  4963. apiKeys: 'Webhook API 密钥(导入时生成新密钥)',
  4964. },
  4965. requiresPrinters: '需要选择打印机',
  4966. zipFileWarning: '将创建 ZIP 文件。',
  4967. zipFileDescription: '包括所有 3MF 文件、缩略图、延时摄影和照片。这可能需要一些时间并生成较大的文件。',
  4968. includeAccessCodes: '包含访问码',
  4969. includeAccessCodesDescription: '用于转移到另一台机器',
  4970. includeAccessCodesWarning: '访问码将以明文形式包含。请妥善保管此备份文件!',
  4971. categoriesSelected: '已选择 {{selectedCount}} 个类别',
  4972. },
  4973. // Pending Uploads Panel
  4974. pendingUploads: {
  4975. placeholders: {
  4976. notes: '添加关于此打印的备注...',
  4977. },
  4978. discardUpload: '丢弃上传',
  4979. archiveAllUploads: '归档所有上传',
  4980. discardAllUploads: '丢弃所有上传',
  4981. archive: '归档',
  4982. timeAgo: {
  4983. justNow: '刚刚',
  4984. minutesAgo: '{{minutes}} 分钟前',
  4985. hoursAgo: '{{hours}} 小时前',
  4986. daysAgo: '{{days}} 天前',
  4987. },
  4988. },
  4989. // API Browser
  4990. apiBrowser: {
  4991. placeholders: {
  4992. requestBody: 'JSON 请求体...',
  4993. searchEndpoints: '搜索端点...',
  4994. },
  4995. },
  4996. // Configure AMS Slot Modal
  4997. configureAmsSlot: {
  4998. title: '配置 AMS 槽位',
  4999. slotConfigured: '槽位已配置!',
  5000. configuringSlot: '正在配置槽位:',
  5001. slotLabel: '{{ams}} 槽位 {{slot}}',
  5002. searchPresets: '搜索预设...',
  5003. colorPlaceholder: '颜色名称或十六进制(例如:棕色、FF8800)',
  5004. clearCustomColor: '清除自定义颜色',
  5005. noCloudPresets: '无云端预设。登录拓竹云以同步。',
  5006. noPresetsAvailable: '无可用预设。登录拓竹云或导入本地配置。',
  5007. noMatchingPresets: '未找到匹配的预设。',
  5008. custom: '自定义',
  5009. builtin: '内置',
  5010. settingsSentToPrinter: '设置已发送到打印机',
  5011. filamentProfile: '耗材配置',
  5012. kProfileLabel: 'K 值配置(压力推进)',
  5013. filteringFor: '筛选:{{material}}',
  5014. noKProfile: '无 K 值配置(使用默认值 0.020)',
  5015. noMatchingKProfiles: '未找到匹配的 K 值配置。将使用默认 K=0.020。',
  5016. selectFilamentFirst: '请先选择耗材配置',
  5017. kFromCalibration: 'K={{value}}(来自打印机校准)',
  5018. customColorLabel: '自定义颜色(可选)',
  5019. presetColors: '{{name}} 颜色:',
  5020. showLessColors: '显示更少颜色',
  5021. showMoreColors: '显示更多颜色',
  5022. clear: '清除',
  5023. hexLabel: '十六进制:#{{hex}}',
  5024. resetting: '重置中...',
  5025. resetSlot: '重置槽位',
  5026. cancel: '取消',
  5027. configuring: '配置中...',
  5028. configureSlot: '配置槽位',
  5029. },
  5030. // Git Backup Settings
  5031. githubBackup: {
  5032. title: 'Git 备份',
  5033. history: '历史',
  5034. downloadBackup: '下载备份',
  5035. restoreBackup: '恢复备份',
  5036. noBackupsYet: '暂无备份',
  5037. },
  5038. // Email Settings
  5039. emailSettings: {
  5040. placeholders: {
  5041. fromName: 'Bambuddy',
  5042. },
  5043. },
  5044. // Tag Management Modal
  5045. tagManagement: {
  5046. searchTags: '搜索标签...',
  5047. renameTag: '重命名标签',
  5048. deleteTag: '删除标签',
  5049. },
  5050. // Notification Template Editor
  5051. notificationTemplates: {
  5052. placeholders: {
  5053. title: '通知标题...',
  5054. body: '通知正文...',
  5055. },
  5056. },
  5057. // Batch Tag Modal
  5058. batchTag: {
  5059. placeholders: {
  5060. newTag: '输入新标签...',
  5061. },
  5062. },
  5063. // Photo Gallery Modal
  5064. photoGallery: {
  5065. deletePhoto: '删除照片',
  5066. },
  5067. // Filament Hover Card
  5068. filamentHoverCard: {
  5069. copySpoolUuid: '复制耗材 UUID',
  5070. },
  5071. // K Profiles View
  5072. kProfilesView: {
  5073. hasNote: '有备注',
  5074. copyProfile: '复制配置',
  5075. },
  5076. // Layout/Navigation
  5077. layout: {
  5078. openMenu: '打开菜单',
  5079. noPermissionSystemInfo: '您没有查看系统信息的权限',
  5080. },
  5081. // Dashboard
  5082. dashboard: {
  5083. dragToReorder: '拖动以重新排列',
  5084. hideWidget: '隐藏小部件',
  5085. },
  5086. // Notification Provider Card
  5087. notificationProviderCard: {
  5088. deleteNotificationProvider: '删除通知提供商',
  5089. },
  5090. // File Manager Modal
  5091. fileManagerModal: {
  5092. closeFileManager: '关闭文件管理器',
  5093. sortFiles: '排序文件',
  5094. goToParentFolder: '返回上级文件夹',
  5095. threeView: '3D 视图',
  5096. },
  5097. // Embedded Camera Viewer
  5098. embeddedCameraViewer: {
  5099. refreshStream: '刷新流',
  5100. close: '关闭',
  5101. zoomOut: '缩小',
  5102. resetZoom: '重置缩放',
  5103. zoomIn: '放大',
  5104. dragToResize: '拖动调整大小',
  5105. },
  5106. // Timelapse Viewer
  5107. timelapseViewer: {
  5108. skipBack5s: '后退 5 秒',
  5109. skipForward5s: '前进 5 秒',
  5110. },
  5111. // Notification Providers
  5112. notificationProviders: {
  5113. descriptions: {
  5114. email: 'SMTP 邮件通知',
  5115. telegram: '通过 Telegram 机器人通知',
  5116. discord: '通过 Webhook 发送到 Discord 频道',
  5117. ntfy: '免费、可自托管的推送通知',
  5118. pushover: '简单、可靠的推送通知',
  5119. callmebot: '通过 CallMeBot 的免费 WhatsApp 通知',
  5120. webhook: '通用 HTTP POST 到任意 URL',
  5121. },
  5122. },
  5123. // Log Viewer
  5124. logViewer: {
  5125. searchPlaceholder: '搜索消息或日志名称...',
  5126. noLogEntries: '未找到日志条目',
  5127. },
  5128. // Switchbar Popover
  5129. switchbarPopover: {
  5130. noSwitchesInSwitchbar: '切换栏中没有开关',
  5131. },
  5132. // Project Page Modal
  5133. projectPageModal: {
  5134. placeholders: {
  5135. title: '标题',
  5136. designer: '设计师',
  5137. license: '许可证',
  5138. description: '输入描述...',
  5139. profileTitle: '配置标题',
  5140. profileDescription: '配置描述...',
  5141. },
  5142. },
  5143. // Spoolman Settings
  5144. spoolmanSettings: {},
  5145. // Time
  5146. time: {
  5147. unknown: '-',
  5148. waiting: '等待中',
  5149. justNow: '刚刚',
  5150. now: '现在',
  5151. minsAgo: '{{count}} 分钟前',
  5152. inMins: '{{count}} 分钟后',
  5153. hoursAgo: '{{count}} 小时前',
  5154. inHours: '{{count}} 小时后',
  5155. daysAgo: '{{count}} 天前',
  5156. inDays: '{{count}} 天后',
  5157. },
  5158. // SpoolBuddy Kiosk
  5159. spoolbuddy: {
  5160. nav: {
  5161. dashboard: '仪表板',
  5162. ams: 'AMS',
  5163. inventory: '库存',
  5164. writeTag: '写入',
  5165. settings: '设置',
  5166. },
  5167. status: {
  5168. nfcReady: 'NFC 就绪',
  5169. nfcOff: 'NFC 关闭',
  5170. offline: '离线',
  5171. online: '在线',
  5172. noPrinters: '无打印机',
  5173. deviceOffline: '设备离线',
  5174. waitingConnection: '等待设备连接...',
  5175. systemReady: '系统就绪',
  5176. status: '状态',
  5177. },
  5178. dashboard: {
  5179. readyToScan: '准备扫描',
  5180. idleMessage: '将耗材放在秤上以识别',
  5181. nfcHint: 'NFC 标签将自动读取',
  5182. device: '设备',
  5183. syncWeight: '同步重量',
  5184. weightSynced: '已同步!',
  5185. unknownTag: '未知标签',
  5186. newTag: '检测到新标签',
  5187. onScale: '在秤上',
  5188. linkSpool: '链接到耗材',
  5189. linkTagTitle: '将标签链接到耗材',
  5190. linkTag: '链接标签',
  5191. selectSpool: '选择要链接此标签的耗材:',
  5192. noUntagged: '未找到没有标签的耗材',
  5193. tagDetected: '检测到标签',
  5194. noTag: '无标签',
  5195. tagId: '标签',
  5196. grossWeight: '毛重',
  5197. spoolSize: '耗材盘尺寸',
  5198. close: '关闭',
  5199. currentSpool: '当前耗材',
  5200. plateReady: '热床就绪: {{name}}',
  5201. plateReadyLabel: '待清理的热床',
  5202. plateClearAction: '清理',
  5203. plateClearedToast: '已将热床标记为已清理',
  5204. plateClearFailed: '无法将热床标记为已清理',
  5205. },
  5206. modal: {
  5207. spoolDetected: '检测到耗材',
  5208. assignToAms: '分配到 AMS',
  5209. syncWeight: '同步重量',
  5210. weightSynced: '已同步!',
  5211. syncing: '同步中...',
  5212. newTagDetected: '检测到新标签',
  5213. addToInventory: '添加到库存',
  5214. assignToAmsTitle: '分配到 AMS',
  5215. selectSlot: '选择槽位',
  5216. assign: '分配',
  5217. assigning: '分配中...',
  5218. assignSuccess: '已分配!',
  5219. assignPendingInsert: '已分配。插入耗材后将配置槽位。',
  5220. assignError: '分配耗材失败。请重试。',
  5221. noPrinterSelected: '选择打印机...',
  5222. noAmsDetected: '此打印机未检测到 AMS',
  5223. slot: '槽位',
  5224. },
  5225. weight: {
  5226. noReading: '无读数',
  5227. stable: '稳定',
  5228. measuring: '测量中...',
  5229. tare: '去皮',
  5230. calibrate: '校准',
  5231. },
  5232. spool: {
  5233. remaining: '剩余',
  5234. material: '材料',
  5235. brand: '品牌',
  5236. color: '颜色',
  5237. coreWeight: '空盘',
  5238. labelWeight: '标签',
  5239. scaleWeight: '秤重',
  5240. netWeight: '净重',
  5241. lastUsed: '上次使用',
  5242. },
  5243. ams: {
  5244. noData: '未检测到 AMS',
  5245. connectAms: '连接 AMS 以查看耗材槽位',
  5246. noPrinter: '未选择打印机',
  5247. selectPrinter: '从顶部栏选择打印机',
  5248. printerDisconnected: '打印机已断开',
  5249. humidity: '湿度',
  5250. level: '余量',
  5251. active: '活跃',
  5252. slot: '槽位',
  5253. empty: '空',
  5254. },
  5255. inventory: {
  5256. search: '搜索耗材...',
  5257. empty: '库存中没有耗材',
  5258. noResults: '没有匹配的耗材',
  5259. spools: '个耗材',
  5260. addSpool: '添加耗材',
  5261. },
  5262. settings: {
  5263. // Tabs
  5264. tabDevice: '设备',
  5265. tabDisplay: '显示',
  5266. tabScale: '秤',
  5267. tabUpdates: '更新',
  5268. // Device tab
  5269. nfcReader: 'NFC 读卡器',
  5270. type: '类型',
  5271. connection: '连接',
  5272. notConnected: '不适用',
  5273. deviceInfo: '设备信息',
  5274. hostname: '主机',
  5275. uptime: '运行时间',
  5276. systemConfig: '后端与认证',
  5277. backendUrl: 'Bambuddy 后端 URL',
  5278. apiToken: 'API 令牌',
  5279. apiTokenPlaceholder: '输入 API 令牌',
  5280. saveConfig: '保存配置',
  5281. systemQueued: '配置已加入队列。',
  5282. nfcDiagnostic: 'NFC 诊断',
  5283. scaleDiagnostic: '秤诊断',
  5284. readTagDiagnostic: '读取标签诊断',
  5285. testNfc: '测试读卡器',
  5286. testScale: '测试精度',
  5287. testReadTag: '读取标签',
  5288. systemFieldsRequired: '后端 URL 为必填项。',
  5289. // Display tab
  5290. brightness: '亮度',
  5291. saved: '已保存',
  5292. noBacklight: '未检测到 DSI 背光。亮度控制需要 DSI 显示屏。',
  5293. screenBlank: '屏幕熄灭超时',
  5294. screenBlankDesc: '不活动后屏幕关闭。触摸唤醒。',
  5295. displayNote: '亮度作为软件滤镜应用。',
  5296. // Scale tab
  5297. scaleCalibration: '秤校准',
  5298. currentWeight: '当前重量',
  5299. tareOffset: '去皮',
  5300. calFactor: '系数',
  5301. knownWeight: '已知重量',
  5302. calStep1: '移除秤上所有物品并按设置零点。',
  5303. calStep2: '将已知重量放在秤上。',
  5304. setZero: '设置零点',
  5305. calibrateNow: '校准',
  5306. calibrated: '已校准',
  5307. tareSet: '去皮命令已发送。等待设备响应...',
  5308. tareFailed: '发送去皮命令失败',
  5309. zeroSet: '零点已设置。将已知重量放在秤上。',
  5310. calibrationDone: '校准完成!',
  5311. calibrationFailed: '校准失败',
  5312. lastCalibrated: '上次校准',
  5313. stable: '稳定',
  5314. settling: '稳定中...',
  5315. firmware: '固件',
  5316. scale: '秤',
  5317. noDevice: '未找到 SpoolBuddy 设备',
  5318. // Updates tab
  5319. daemonVersion: '守护进程版本',
  5320. currentVersion: '当前',
  5321. versionPending: '等待守护进程...',
  5322. checking: '检查中...',
  5323. checkUpdates: '检查更新',
  5324. updateAvailable: '有可用更新',
  5325. updateInstructions: '通过 SSH 更新:运行 SpoolBuddy 安装脚本进行升级。',
  5326. upToDate: '已是最新',
  5327. includeBeta: '包含测试版本',
  5328. },
  5329. writeTag: {
  5330. tabExisting: '现有耗材',
  5331. tabNew: '新耗材',
  5332. tabReplace: '替换标签',
  5333. searchPlaceholder: '按材料、颜色、品牌搜索...',
  5334. noUntaggedSpools: '没有无标签的耗材',
  5335. noTaggedSpools: '没有有标签的耗材',
  5336. selectSpool: '选择一个耗材,然后将空白 NTAG 放在读卡器上',
  5337. placeTag: '将 NTAG 放在读卡器上',
  5338. tagReady: '检测到标签 — 准备写入',
  5339. writeTag: '写入标签',
  5340. replaceTag: '替换标签',
  5341. writing: '写入标签中...',
  5342. waiting: '等待 SpoolBuddy...',
  5343. writeSuccess: '标签写入成功!',
  5344. writeFailed: '写入失败',
  5345. queueFailed: '排队写入命令失败',
  5346. tryAgain: '重试',
  5347. cancel: '取消',
  5348. replaceWarning: '旧标签将被取消链接。新标签将替换它。',
  5349. deviceOffline: 'SpoolBuddy 离线',
  5350. material: '材料',
  5351. colorName: '颜色名称',
  5352. color: '颜色',
  5353. brand: '品牌',
  5354. weight: '重量 (g)',
  5355. createSpool: '创建耗材',
  5356. creating: '创建中...',
  5357. spoolCreated: '耗材已创建!准备写入。',
  5358. createFailed: '创建耗材失败',
  5359. incompleteDataWarning: '已使用不完整的Spoolman数据写入标签',
  5360. },
  5361. quickMenu: {
  5362. printerPower: '打印机电源',
  5363. systemControls: '系统',
  5364. restartDaemon: '重启守护进程',
  5365. restartBrowser: '重启浏览器',
  5366. reboot: '重启',
  5367. shutdown: '关机',
  5368. swipeToClose: '向下滑动关闭',
  5369. confirmTitle: '确认',
  5370. confirmShutdown: '确定要关闭SpoolBuddy吗?您需要物理访问才能重新开启。',
  5371. confirmReboot: '确定要重启SpoolBuddy吗?',
  5372. confirmRestartDaemon: '重启SpoolBuddy守护进程?NFC和秤将暂时不可用。',
  5373. confirmRestartBrowser: '重启kiosk浏览器?屏幕将短暂变黑。',
  5374. confirm: '确认',
  5375. confirmPlugOn: '开启 {{name}}?',
  5376. confirmPlugOff: '关闭 {{name}}?',
  5377. turnOn: '开启',
  5378. turnOff: '关闭',
  5379. },
  5380. },
  5381. diagnostic: {
  5382. modalTitle: '连接诊断 — {{name}}',
  5383. running: '正在运行诊断...',
  5384. runFailed: '无法运行诊断:{{error}}',
  5385. retry: '重新运行',
  5386. runButton: '运行诊断',
  5387. sectionTitle: '连接诊断',
  5388. sectionDescription: '检查打印机无法连接或无法打印的原因 — 端口可达性、LAN 开发者模式、Docker 网络模式和凭据。',
  5389. noPrinters: '未配置打印机。',
  5390. overall: {
  5391. ok: '未发现问题 — 打印机连接看起来正常。',
  5392. warnings: '打印机应该可以工作,但有些事项需要注意。',
  5393. problems: '发现了可解释打印机无法连接或无法打印的问题。',
  5394. },
  5395. check: {
  5396. port_mqtt: {
  5397. title: '控制端口(MQTT 8883)',
  5398. pass: '可达 — 打印机正在接受控制连接。',
  5399. fail: '端口 8883 不可达。打印机已关机、IP 地址不同,或被防火墙阻止。请核实打印机 IP,并确保没有任何东西阻止端口 8883。',
  5400. },
  5401. port_ftps: {
  5402. title: '文件传输端口(FTPS 990)',
  5403. pass: '可达 — 发送打印文件将正常工作。',
  5404. warn: '端口 990 不可达。监控可能仍然有效,但向打印机发送打印任务将失败。请确保端口 990 未被阻止。',
  5405. },
  5406. port_rtsps: {
  5407. title: '摄像头端口(RTSPS 322)',
  5408. pass: '可达 — 摄像头视频流将正常工作。',
  5409. warn: '端口 322 不可达。实时摄像头视图将无法工作。这不影响打印。',
  5410. },
  5411. network_mode: {
  5412. title: 'Docker 网络模式',
  5413. pass: '正在以 host 网络模式运行。',
  5414. warn: 'Bambuddy 正在以 Docker bridge 网络运行。打印机发现和虚拟打印机需要 host 网络模式 — 请使用 "network_mode: host" 重新创建容器。',
  5415. skip: '未在 Docker 中运行 — 不适用。',
  5416. },
  5417. subnet: {
  5418. title: '网络子网',
  5419. pass: '打印机和 Bambuddy 位于同一子网。',
  5420. warn: '打印机({{printer_ip}})和 Bambuddy({{host_ip}})位于不同的子网。除非配置了子网之间的路由,否则它们可能无法相互访问。',
  5421. skip: '无法确定子网 — 已跳过。',
  5422. },
  5423. mqtt_auth: {
  5424. title: '打印机凭据',
  5425. pass: '打印机已接受连接。',
  5426. fail: '打印机可达,但拒绝了连接。访问代码或序列号很可能有误。每次切换开发者模式时访问代码都会更改 — 请从打印机屏幕重新复制。',
  5427. skip: '未检查 — 无法连接到打印机。',
  5428. },
  5429. developer_mode: {
  5430. title: 'LAN 开发者模式',
  5431. pass: '开发者模式已启用。',
  5432. fail: '打印机上的开发者模式已关闭。请在打印机的 LAN 设置中启用它 — 并按 OK 确认。否则打印将无法开始。',
  5433. skip: '无法检查 — 需要与打印机的实时连接。',
  5434. },
  5435. },
  5436. },
  5437. vpDiagnostic: {
  5438. title: '设置检查 — {{name}}',
  5439. runButton: '运行设置检查',
  5440. running: '正在运行设置检查...',
  5441. runFailed: '无法运行设置检查:{{error}}',
  5442. retry: '重新运行',
  5443. overall: {
  5444. ok: '所有检查均已通过 — 此虚拟打印机已正确设置。',
  5445. warnings: '虚拟打印机应该可以工作,但有些方面需要注意。',
  5446. problems: '发现的问题可以解释切片软件为何无法看到或使用此虚拟打印机。',
  5447. },
  5448. check: {
  5449. enabled: {
  5450. title: '虚拟打印机已启用',
  5451. fail: '此虚拟打印机已关闭。请将其打开以使其可被发现。',
  5452. },
  5453. running: {
  5454. title: '服务正在运行',
  5455. fail: '虚拟打印机已启用,但其服务未运行。请检查 Bambuddy 日志 — 通常是绑定 IP 冲突或权限错误使其停止。',
  5456. },
  5457. bind_interface: {
  5458. title: '绑定网络接口',
  5459. fail: '绑定接口未设置,或在此主机上已不存在。请在"绑定接口"下拉菜单中选择一个当前的接口。',
  5460. },
  5461. access_code: {
  5462. title: '已设置访问码',
  5463. fail: '未设置访问码。必须向切片软件提供与您在此处设置的相同的 8 位访问码。',
  5464. },
  5465. target_printer: {
  5466. title: '目标打印机',
  5467. fail: '未选择目标打印机。代理模式需要一台实际的打印机进行转发。',
  5468. warn: '目标打印机当前处于离线状态 — 重新连接后将恢复转发。',
  5469. },
  5470. port_ftps: {
  5471. title: '文件上传服务(端口 {{port}})',
  5472. fail: '绑定 IP 的端口 {{port}} 上没有任何监听,因此切片软件无法上传文件。通常是此接口上的端口冲突所致。',
  5473. },
  5474. port_mqtt: {
  5475. title: '控制服务(端口 {{port}})',
  5476. fail: '绑定 IP 的端口 {{port}} 上没有任何监听,因此切片软件无法连接或显示状态。',
  5477. },
  5478. port_bind: {
  5479. title: '发现服务(端口 {{port}})',
  5480. fail: '绑定 IP 的端口 {{port}} 上没有任何监听,因此切片软件的发现握手会失败。',
  5481. },
  5482. certificate: {
  5483. title: 'TLS 证书',
  5484. pass: '证书已就绪。请确保已将 Bambuddy CA 证书(上方)导入切片软件的信任库。',
  5485. fail: '此虚拟打印机的 TLS 证书缺失。请检查 Bambuddy 数据目录是否可写。',
  5486. },
  5487. },
  5488. },
  5489. bugReport: {
  5490. title: '报告错误',
  5491. description: '描述',
  5492. descriptionPlaceholder: '出了什么问题?请描述问题...',
  5493. email: '邮箱(可选)',
  5494. emailPlaceholder: 'your@email.com',
  5495. emailPrivacy: '如果提供,您的邮箱将包含在GitHub Issue的折叠部分中,以便维护者后续跟进。',
  5496. screenshot: '截图',
  5497. uploadOrPaste: '上传、粘贴或拖拽图片',
  5498. dataCollectedSummary: '报告中包含哪些数据?',
  5499. dataIncluded: '包含:',
  5500. dataIncludedList: '应用版本、操作系统、架构、Python版本、数据库统计(仅计数)、打印机型号、喷嘴数量、固件版本、连接状态、集成状态(Spoolman、MQTT、HA)、非敏感设置、网络接口数量、Docker详情、依赖版本。',
  5501. dataNeverIncluded: '绝不包含:',
  5502. dataNeverIncludedList: '打印机名称、序列号、访问代码、密码、IP地址、邮箱地址、API密钥、令牌、Webhook URL、主机名或用户名。',
  5503. submit: '提交',
  5504. startLogging: '开始调试日志',
  5505. stepEnableLogging: '调试日志已启用',
  5506. stepReproduce: '请现在重现问题',
  5507. stepStopLogging: '停止并提交报告',
  5508. stopAndSubmit: '停止并提交',
  5509. maxDuration: '{{minutes}}分钟后自动停止',
  5510. stoppingLogs: '正在收集日志并提交...',
  5511. submitting: '正在提交错误报告...',
  5512. submitSuccess: '错误报告提交成功!',
  5513. submitFailed: '提交错误报告失败',
  5514. diagnosticChecking: '正在检查打印机连接...',
  5515. diagnosticHealthy: '连接检查通过 — 未在您的打印机上发现问题。',
  5516. diagnosticSummary: '{{total}} 台打印机中有 {{problems}} 台存在连接问题',
  5517. diagnosticIntro: '一台或多台打印机存在连接问题,可能正是您遇到问题的原因。请展开下方的打印机查看解决方法 — 解决它也许无需提交错误报告即可解决问题。您仍然可以在下方提交报告。',
  5518. thankYou: '谢谢!',
  5519. submitted: '您的错误报告已提交。',
  5520. viewIssue: '查看Issue',
  5521. unexpectedError: '发生了意外错误',
  5522. },
  5523. failureDetection: {
  5524. title: 'AI 故障检测',
  5525. description: '通过自托管的 Obico ML API 监控打印,并对检测到的故障自动采取行动。',
  5526. mlUrl: 'Obico ML API 地址',
  5527. mlUrlHint: '您自托管的 Obico ml_api 容器的基础 URL(例如 http://192.168.1.10:3333)。',
  5528. test: '测试',
  5529. testSuccess: 'ML API 可访问且正常。',
  5530. testFailed: '无法访问 ML API。',
  5531. sensitivity: '灵敏度',
  5532. sensitivityLow: '低(减少误报)',
  5533. sensitivityMedium: '中(平衡)',
  5534. sensitivityHigh: '高(更早检测,更多误报)',
  5535. sensitivityHint: '调整触发警告和故障的置信度阈值。',
  5536. action: '检测到故障时的操作',
  5537. actionNotify: '仅通知',
  5538. actionPause: '暂停打印',
  5539. actionPauseOff: '暂停并切断电源',
  5540. pollInterval: '检查间隔(秒)',
  5541. pollIntervalHint: '打印过程中每台打印机的检查频率。最小 5 秒,最大 120 秒。',
  5542. externalUrlMissing: '未设置外部 URL。',
  5543. externalUrlHint: 'ML API 通过 URL 获取摄像头快照。请在通用设置中设置外部 URL,以便 ML API 容器可以访问 Bambuddy。',
  5544. perPrinterTitle: '监控的打印机',
  5545. perPrinterHint: '选择检测服务要监视哪些打印机。',
  5546. monitorAll: '监控所有已连接的打印机',
  5547. statusTitle: '状态',
  5548. serviceRunning: '服务运行中',
  5549. thresholds: '低 / 高阈值',
  5550. activePrinters: '活动打印',
  5551. noActivePrints: '当前没有正在进行的打印。',
  5552. historyTitle: '最近检测',
  5553. noHistory: '暂无检测记录。',
  5554. },
  5555. makerworld: {
  5556. title: 'MakerWorld',
  5557. description: '粘贴 MakerWorld 模型链接,即可直接在 Bambuddy 中导入并打印 —— 无需切换到 Bambu Handy 应用。',
  5558. pasteUrlHeader: '从 MakerWorld 导入',
  5559. pasteUrlPlaceholder: 'https://makerworld.com/en/models/… 或粘贴任意 MakerWorld 链接',
  5560. resolveButton: '解析',
  5561. signInRequiredTitle: '下载需要登录 Bambu Cloud',
  5562. signInRequiredBody: '您可以匿名浏览模型详情,但下载 3MF 文件需要 Bambu Cloud 账户。',
  5563. openCloudSettings: '打开云设置',
  5564. untitledModel: '无标题模型',
  5565. byCreator: '作者: {{name}}',
  5566. downloadsCount: '{{count}} 次下载',
  5567. licensePrefix: '许可协议',
  5568. alreadyImported: '已在资料库中',
  5569. openOnMakerworld: '在 MakerWorld 中打开',
  5570. alreadyInLibrary: '此模型已在您的资料库中 —— 可在文件管理器 → MakerWorld 中找到',
  5571. importSuccess: '已导入 {{filename}} —— 已保存到文件管理器 → MakerWorld',
  5572. platesHeader: '打印板 ({{count}})',
  5573. plateDefaultName: '打印板 {{n}}',
  5574. materialCount: '{{count}} 种耗材',
  5575. amsRequired: '需要 AMS',
  5576. slicedFor: '为 {{printer}} 切片',
  5577. alsoCompatible: '还标记为兼容:{{printers}}',
  5578. importToLibrary: '保存',
  5579. sliceIn: '保存并在 {{slicer}} 中切片',
  5580. disclaimer: 'MakerWorld 集成使用由社区记录的 API 接口。Bambuddy 与 MakerWorld 或 Bambu Lab 没有从属或认可关系。',
  5581. lastImportSuccess: '已导入到您的资料库',
  5582. lastImportAlreadyInLibrary: '已存在于您的资料库中',
  5583. viewInLibrary: '在文件管理器中查看',
  5584. openInBambuStudio: '在 Bambu Studio 中打开',
  5585. openInOrcaSlicer: '在 OrcaSlicer 中打开',
  5586. importTo: '导入到文件管理器',
  5587. recentImportsHeader: '最近导入',
  5588. phaseResolving: '解析中',
  5589. phaseDownloading: '下载中',
  5590. folderAuto: 'MakerWorld (默认)',
  5591. importAll: '全部导入',
  5592. importAllProgress: '正在导入 {{current}}/{{total}}',
  5593. openGallery: '打开图片库',
  5594. galleryPrev: '上一张',
  5595. galleryNext: '下一张',
  5596. deleteImport: '从资料库中移除',
  5597. importDeleting: '正在移除…',
  5598. importDeleted: '已从资料库中移除',
  5599. confirmDelete: '从资料库中移除 {{filename}}?本地文件将被删除,但可以从 MakerWorld 重新导入。',
  5600. errors: {
  5601. resolveFailed: '无法解析该 MakerWorld 链接。',
  5602. downloadFailed: '下载失败。请重试。',
  5603. deleteFailed: '无法从资料库中移除文件。',
  5604. },
  5605. },
  5606. gcodeViewer: {
  5607. back: '返回',
  5608. backToArchives: '返回打印归档',
  5609. backToFiles: '返回文件管理器',
  5610. },
  5611. libraryTrash: {
  5612. title: '回收站',
  5613. headerButton: '回收站',
  5614. headerTooltip: '查看已移至回收站的文件',
  5615. backToFiles: '返回文件管理器',
  5616. subtitleAdmin: '已删除的文件会在回收站保留 {{days}} 天,之后自动删除。此视图显示所有用户的回收站。',
  5617. subtitleUser: '已删除的文件会在回收站保留 {{days}} 天,之后自动删除。',
  5618. loading: '正在加载回收站…',
  5619. loadError: '无法加载回收站。',
  5620. empty: '回收站为空。',
  5621. summary: '{{count}} 个文件 · {{size}}',
  5622. emptyTrash: '清空回收站',
  5623. restore: '还原',
  5624. purgeNow: '立即删除',
  5625. autoPurgeIn: '将于 {{when}} 自动删除',
  5626. days: '天',
  5627. retentionLabel: '自动删除时间',
  5628. selectAll: '全选',
  5629. selectOne: '选择 {{filename}}',
  5630. selectionCount: '已选择 {{count}} 项',
  5631. bulkRestore: '还原所选',
  5632. bulkPurge: '删除所选',
  5633. col: {
  5634. filename: '文件',
  5635. folder: '文件夹',
  5636. size: '大小',
  5637. deleted: '移入回收站',
  5638. autoPurge: '自动删除',
  5639. owner: '所有者',
  5640. actions: '操作',
  5641. },
  5642. confirm: {
  5643. purgeTitle: '永久删除?',
  5644. purgeBody: '{{filename}} 将从磁盘中删除,无法恢复。',
  5645. emptyTitle: '清空回收站?',
  5646. emptyBody: '全部 {{count}} 个文件将从磁盘中删除。此操作无法撤消。',
  5647. bulkPurgeTitle: '永久删除所选文件?',
  5648. bulkPurgeBody: '所选的 {{count}} 个文件将从磁盘中删除,无法恢复。',
  5649. cta: '永久删除',
  5650. },
  5651. toast: {
  5652. restored: '文件已还原。',
  5653. restoreFailed: '无法还原文件。',
  5654. purged: '文件已永久删除。',
  5655. purgeFailed: '无法删除文件。',
  5656. emptied: '已从回收站删除 {{count}} 个文件。',
  5657. emptyFailed: '无法清空回收站。',
  5658. retentionSaved: '自动删除已设置为 {{days}} 天。',
  5659. retentionFailed: '无法保存保留设置。',
  5660. bulkRestored: '已还原 {{count}} 个文件。',
  5661. bulkPurged: '已删除 {{count}} 个文件。',
  5662. },
  5663. },
  5664. libraryPurge: {
  5665. title: '清理旧文件',
  5666. headerButton: '清理旧文件',
  5667. headerTooltip: '批量将旧文件移至回收站',
  5668. description: '早于所选阈值的文件将被移至回收站。外部文件夹会被跳过。在自动删除之前,您可以从回收站还原文件。',
  5669. ageLabel: '移动早于以下天数的文件',
  5670. days: '天',
  5671. includeNeverPrinted: '包括从未打印过的文件',
  5672. effectsTitle: '点击清除时会发生什么',
  5673. effect1: '匹配的文件移至回收站 — 尚未从磁盘删除。',
  5674. effect2: '在保留期到期之前,您可以随时从回收站恢复。',
  5675. effect3: '保留期满后,回收站清理器将它们从磁盘永久删除。',
  5676. effect4: '外部(链接)文件夹中的文件将被跳过 — Bambuddy 从不删除不属于自己的字节。', previewLoading: '正在检查匹配的文件数量…',
  5677. previewFailed: '无法预览清理结果。',
  5678. previewSummary: '{{count}} 个文件 · {{size}} 将被移至回收站',
  5679. andMore: '…还有 {{count}} 个',
  5680. warning: '文件将被软删除——在保留期结束前,您可以从回收站还原它们。',
  5681. confirmCta: '将 {{count}} 个移至回收站',
  5682. purging: '正在移至回收站…',
  5683. toast: {
  5684. success: '已将 {{count}} 个文件移至回收站。',
  5685. failed: '无法清理文件。',
  5686. },
  5687. },
  5688. libraryAutoPurge: {
  5689. enableLabel: '自动清理旧文件',
  5690. enableDescription: '每天执行一次管理员清理。文件会先进入回收站——不会立即删除。',
  5691. ageLabel: '自动清理早于以下天数的文件',
  5692. ageDescription: '最少 7 天,最多 10 年。使用与手动「清理旧文件」按钮相同的时间规则。',
  5693. days: '天',
  5694. includeNeverPrinted: '包括从未打印过的文件',
  5695. saveFailed: '无法保存自动清理设置。',
  5696. },
  5697. archivePurge: {
  5698. headerButton: '清除旧条目',
  5699. headerTooltip: '批量删除旧归档',
  5700. title: '清除旧归档',
  5701. description: '清除旧的打印历史。每个归档按其最近一次打印完成时间老化 — 重新打印归档会刷新其年龄,因此活跃工作永远不会被清除。',
  5702. ageLabel: '删除最近未打印的归档:',
  5703. days: '天',
  5704. effectsTitle: '点击清除时会发生什么',
  5705. effect1: '每个匹配的归档将从列表中隐藏,其磁盘文件(3MF、缩略图、延时摄影、源 3MF、F3D、照片)也将被删除。',
  5706. effect2: '数据库中的归档记录将被保留,因此 Quick Stats 仍可计入耗材、时间、成本和能耗的贡献 — 与单条删除的默认行为一致。',
  5707. effect3: '勾选下方"同时从统计中移除"可一并清除 Quick Stats 中的贡献(与单条删除选项等同)。该操作不可撤销。',
  5708. effect4: '重新打印归档会刷新其使用计时器,因此仍在使用的归档不会被清除。',
  5709. purgeStatsLabel: '同时从统计中移除',
  5710. purgeStatsHint: '从 Quick Stats(耗材、时间、成本、能耗)中移除匹配的归档。不勾选时,Quick Stats 保留所有贡献,仅文件从磁盘删除。',
  5711. previewLoading: '检查匹配的归档数量…',
  5712. previewFailed: '无法预览清除。',
  5713. previewSummary: '将移除 {{count}} 个归档 · {{size}}',
  5714. andMore: '…还有 {{count}} 个',
  5715. warning: '文件将从磁盘删除且无法恢复。继续前请下载或收藏您想保留的内容。',
  5716. confirmCta: '移除 {{count}} 个归档',
  5717. purging: '移除中…',
  5718. toast: {
  5719. success: '已移除 {{count}} 个归档。',
  5720. failed: '无法清除归档。',
  5721. },
  5722. },
  5723. archiveAutoPurge: {
  5724. enableLabel: '自动清除旧归档',
  5725. enableDescription: '每天一次,将阈值内未打印的归档从列表中隐藏,并从磁盘中删除其文件。重新打印会重置计时器。',
  5726. ageLabel: '自动删除最近未打印的归档:',
  5727. ageDescription: '最少 7 天,最多 10 年。基于最近一次打印完成 — 重新打印会刷新年龄。删除 3MF、缩略图、延时摄影、源 3MF、F3D 和照片。',
  5728. days: '天',
  5729. purgeStatsLabel: '同时从统计中移除',
  5730. purgeStatsDescription: '启用后,每日清理任务还会将每个被清除的归档从 Quick Stats(耗材、时间、成本、能耗)中移除。默认关闭 — Quick Stats 保留贡献,仅文件从磁盘删除。',
  5731. runNow: '立即清除归档',
  5732. saveFailed: '无法保存自动清除设置。',
  5733. },
  5734. cameraTokens: {
  5735. title: '摄像头 API 令牌',
  5736. navTitle: '摄像头 API 令牌',
  5737. description:
  5738. '长期令牌,用于将摄像头流嵌入 Home Assistant、Frigate、信息亭或其他需要稳定 URL 的工具。每个令牌仅限摄像头流,可随时撤销。',
  5739. loading: '加载中…',
  5740. confirmRevoke: {
  5741. title: '撤销此令牌?',
  5742. body: '使用「{{name}}」的任何设备将立即失去访问权限。此操作无法撤销。',
  5743. cancel: '取消',
  5744. confirm: '撤销',
  5745. },
  5746. create: {
  5747. title: '创建新令牌',
  5748. nameLabel: '令牌名称',
  5749. namePlaceholder: '例如 Home Assistant',
  5750. daysLabel: '过期天数',
  5751. submit: '创建',
  5752. hint:
  5753. '最大有效期 365 天。令牌值仅在创建时显示一次 — 请立即复制。',
  5754. },
  5755. created: {
  5756. title: '令牌已创建 — 立即复制',
  5757. warning:
  5758. '这是此令牌唯一一次可见。关闭此对话框后您将无法再次查看。',
  5759. copy: '复制',
  5760. dismiss: '我已保存',
  5761. },
  5762. list: {
  5763. myTitle: '我的令牌',
  5764. allTitle: '所有用户(管理员视图)',
  5765. empty: '暂无令牌。',
  5766. name: '名称',
  5767. owner: '所有者',
  5768. prefix: '前缀',
  5769. created: '创建时间',
  5770. expires: '过期时间',
  5771. lastUsed: '最近使用',
  5772. revoke: '撤销',
  5773. expired: '已过期',
  5774. },
  5775. toast: {
  5776. created: '令牌已创建',
  5777. createFailed: '创建令牌失败',
  5778. revoked: '令牌已撤销',
  5779. revokeFailed: '撤销令牌失败',
  5780. loadFailed: '加载令牌失败',
  5781. copied: '已复制到剪贴板',
  5782. copyFailed: '复制失败 — 手动选择并复制',
  5783. },
  5784. },
  5785. // Forecast & Inventory Intelligence
  5786. forecast: {
  5787. title: '库存预测',
  5788. noSpools: '未找到活跃的料卷。请将料卷添加到库存中以查看预测数据。',
  5789. noUsageData: '无可用使用数据 — 无法预测库存时间线。',
  5790. sku: 'SKU',
  5791. // Table headers
  5792. material: '材料',
  5793. stock: '库存',
  5794. dailyRate: '消耗率',
  5795. daysLeft: '剩余天数',
  5796. emptyBy: '耗尽日期',
  5797. reorderBy: '补货截止日',
  5798. actions: '操作',
  5799. // Rate tier badges
  5800. trend: '趋势',
  5801. estimated: '估算',
  5802. noData: '无数据',
  5803. // Timeframe
  5804. timeframe: '时间范围',
  5805. // Chart
  5806. chartTitle: '库存预测 — 前5种材料',
  5807. dashedLinesROP: '虚线 = 再订货点',
  5808. stockLevel: '库存量',
  5809. reorderPoint: '再订购点',
  5810. safetyMargin: '安全余量',
  5811. trendLegend: '趋势(基于历史,95%服务水平)',
  5812. estimatedLegend: '估算(重量差值)',
  5813. noDataLegend: '无数据',
  5814. ropLabel: '再订货点',
  5815. ssLabel: '安全库存',
  5816. safetyStockLegend: '安全库存',
  5817. stockArrivalLegend: '到货',
  5818. stockoutLegend: '断货',
  5819. // Alerts toolbar
  5820. alertCount_one: '{{count}}条警告',
  5821. alertCount_other: '{{count}}条警告',
  5822. order: '订购',
  5823. // Settings
  5824. globalLeadTime: '全局交货期',
  5825. globalLeadTimeHint: '全局交货期下限 — 用于所有 SKU 的再订购点计算',
  5826. save: '保存',
  5827. cancel: '取消',
  5828. settingsSaved: '设置已保存',
  5829. failedSaveSettings: '保存设置失败',
  5830. globalLeadTimeSaved: '全局提前期已保存',
  5831. skuLeadTimeOverride: 'SKU 交货期覆盖',
  5832. skuLeadTimeHint: '0 = 使用全局交货期。设置 >0 以覆盖此 SKU。',
  5833. safetyMarginLabel: '安全余量',
  5834. effectiveLeadTime: '有效交货期',
  5835. effectiveLeadTimeHint: 'max(全局 {{global}}天, SKU {{sku}}天)',
  5836. reorderPointHint: 'd̄ × LT + safety margin — 当库存降至此水平时下单',
  5837. safetyMarginHint: '统计安全库存 (z=1.65 × σ × √LT) + 用户自定义缓冲',
  5838. safetyMarginHintDays: '在统计安全库存基础上额外增加的缓冲。{{approx}}',
  5839. safetyMarginHintDaysApprox: ' ≈ 按当前速率 {{g}}g。',
  5840. safetyMarginHintG: '在统计安全库存基础上增加的固定重量缓冲。{{approx}}',
  5841. safetyMarginHintGApprox: ' ≈ 按当前速率 {{days}}天。',
  5842. individualSpools: '单个料卷',
  5843. labelWeight: '标注重量',
  5844. spoolCount_one: '{{count}}个线轴',
  5845. spoolCount_other: '{{count}}个线轴',
  5846. // Alerts
  5847. stockBreakRisk: '断货风险',
  5848. stockBreakBefore: '补货前库存断档',
  5849. stockBreakDetail: '剩余 {{days}} 天,交货期 {{lt}} 天。',
  5850. reorderNow: '立即补货',
  5851. reorderTriggerPassed: '触发日期 {{date}} 已过。',
  5852. // Shopping list
  5853. shoppingList: '购物清单',
  5854. shoppingListItems_one: '({{count}}项)',
  5855. shoppingListItems_other: '({{count}}项)',
  5856. shoppingListEmpty: '购物清单为空。点击任意行的购物车图标以添加商品。',
  5857. addToCart: '添加到购物清单',
  5858. alertsSnoozed: '静音此SKU的提醒',
  5859. alertsEnabled: '启用此SKU的提醒',
  5860. addedToCart: '已添加到购物清单',
  5861. failedAddItem: '添加项目失败',
  5862. listView: '列表',
  5863. logisticsView: '物流',
  5864. qty: '数量',
  5865. weight: '重量',
  5866. leadTime: '交货期',
  5867. expectedRestock: '预计补货日期',
  5868. status: '状态',
  5869. note: '备注',
  5870. pending: '待处理',
  5871. purchased: '已购买',
  5872. received: '已收货',
  5873. markPurchased: '标记为已购买',
  5874. markReceived: '标记为已收货 — 将料卷添加到库存',
  5875. resetToPending: '重置为待处理',
  5876. remove: '移除',
  5877. clearAll: '清空',
  5878. downloadCsv: 'CSV',
  5879. // Add to cart modal
  5880. addToCartTitle: '添加到购物清单',
  5881. byQuantity: '按数量',
  5882. byDuration: '按时长',
  5883. numberOfSpools: '线轴数量',
  5884. lastHowManyDays: '需要持续多少天?',
  5885. noUsageQty: '无使用数据 — 数量已设为1。',
  5886. noteOptional: '备注(可选)',
  5887. notePlaceholder: '例如:用于项目X,紧急…',
  5888. addNSpools_one: '添加{{count}}个线轴',
  5889. addNSpools_other: '添加{{count}}个线轴',
  5890. // Cart logistics
  5891. onArrival: '到货时',
  5892. stockBreakIn: '{{days}} 天后断货。',
  5893. stockRunsOutBefore: '库存在 {{lt}} 天交货期结束前耗尽。',
  5894. atRate: '按 {{rate}}g/天的速度,您需要',
  5895. moreSpools_one: '再{{count}}个线轴',
  5896. moreSpools_other: '再{{count}}个线轴',
  5897. bridgeGap: '来弥补缺口。',
  5898. // Permissions
  5899. noReadAccess: '您没有查看库存预测的权限。',
  5900. noWriteAccess: '您没有修改预测设置的权限。',
  5901. },
  5902. };