zh-CN.ts 209 KB

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