@rainbow-robotics/preview-host 1.10.2-dev.8 → 1.10.2-dev.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index.2D6SvrX5.js","assets/useFileDownload.BcvMcbUi.js","assets/RbLocalizationProvider.GKeO3IYX.js","assets/__federation_fn_import.DdkEuT6t.js","assets/jsx-runtime.CBqCNPYB.js","assets/index.P6snMalu.js","assets/emotion-styled-base.browser.esm.BIcjgOzg.js","assets/AmrCapabilityControl.B4CgW0HQ.js","assets/index.DHJstkPN.js","assets/cssMode.B3O3EHHV.js","assets/lspLanguageFeatures.6cz7AV5p.js","assets/htmlMode.D_DKfjnb.js","assets/jsonMode.DwDuvek5.js","assets/javascript.BypgWra0.js","assets/typescript.BjJudLvw.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index.2D6SvrX5.js","assets/useFileDownload.BcvMcbUi.js","assets/RbLocalizationProvider.GKeO3IYX.js","assets/__federation_fn_import.DdkEuT6t.js","assets/jsx-runtime.CBqCNPYB.js","assets/index.P6snMalu.js","assets/emotion-styled-base.browser.esm.BIcjgOzg.js","assets/AmrCapabilityControl.B4CgW0HQ.js","assets/index.DHJstkPN.js","assets/cssMode.BxttlR4a.js","assets/lspLanguageFeatures.BiNLmMt7.js","assets/htmlMode.C0vP_DMi.js","assets/jsonMode.CXGi9RwI.js","assets/javascript.B9r0wVZ1.js","assets/typescript.DV53gEQZ.js"])))=>i.map(i=>d[i]);
2
2
  import{importShared as F}from"./__federation_fn_import.DdkEuT6t.js";import{c as Hn,b as $7,a as lD,d as cD,e as v7e,f as OI,u as w7e,R as y7e,g as w0,A as Eke,P as Pke,h as C7e,i as Rke,k as Mke,l as xE,m as Ake,n as S7e,o as x7e,p as N7e,q as I7e,F as k7e,D as L7e,C as D7e,r as T7e,s as E7e,t as P7e,v as R7e,O as M7e,w as A7e,j as u,x as P,L as O7e,T as F7e,y as B7e,z as V7e,B as Oke,E as z7e,S as jm,G as Tu,H as x,I as W7e,J as H7e,K as $7e,M as U7e,N as j7e,Q as G7e,U as H,V as J,W as Fke,X as e9,Y as q7e,Z as Bke,_ as ih,$ as Vke,a0 as zke,a1 as K7e,a2 as Wke,a3 as Hke,a4 as J7e,a5 as $ke,a6 as Uke,a7 as Y7e,a8 as jke,a9 as Qr,aa as X7e,ab as Q7e,ac as Z7e,ad as e$e,ae as Gke,af as t9,ag as die,ah as uie,ai as qke,aj as Kke,ak as Jke,al as t$e,am as n$e,an as i$e,ao as s$e,ap as o$e,aq as r$e,ar as a$e,as as l$e,at as c$e,au as d$e,av as vo,aw as u$e,ax as h$e,ay as g$e,az as m$e,aA as f$e,aB as p$e,aC as _$e,aD as b$e,aE as v$e,aF as w$e,aG as y$e,aH as eA,aI as C$e,aJ as tA,aK as S$e,aL as lu,aM as Yke,aN as x$e,aO as N$e,aP as I$e,aQ as n9,aR as k$e,aS as L$e,aT as D$e,aU as T$e,aV as nA,aW as nK,aX as Jt,aY as E$e,aZ as hie,a_ as P$e,a$ as ie,b0 as R$e,b1 as M$e,b2 as A$e,b3 as O$e,b4 as F$e,b5 as B$e,b6 as V$e,b7 as z$e,b8 as W$e,b9 as H$e,ba as $$e,bb as U$e,bc as j$e,bd as G$e,be as q$e,bf as K$e,bg as Zc,bh as J$e,bi as iA,bj as Xke,bk as Qke,bl as Y$e,bm as y0,bn as X$e,bo as Zke,bp as iK,bq as eLe,br as sK,bs as ae,bt as Q$e,bu as tLe,bv as Z$e,bw as e8e,bx as t8e,by as n8e,bz as i8e,bA as s8e,bB as o8e,bC as r8e,bD as a8e,bE as l8e,bF as gie,bG as nLe,bH as Os,bI as ty,bJ as tr,bK as iLe,bL as mie,bM as c8e,bN as d8e,bO as u8e,bP as h8e,bQ as g8e,bR as m8e,bS as f8e,bT as p8e,bU as _8e,bV as fie,bW as fe,bX as b8e,bY as et,bZ as v8e,b_ as w8e,b$ as y8e,c0 as q0,c1 as U,c2 as C8e,c3 as S8e,c4 as x8e,c5 as N8e,c6 as I8e,c7 as k8e,c8 as L8e,c9 as D8e,ca as T8e,cb as E8e,cc as sLe,cd as P8e,ce as R8e,cf as M8e,cg as A8e,ch as O8e,ci as F8e,cj as B8e,ck as V8e,cl as z8e,cm as Wk,cn as tt,co as q,cp as Gm,cq as pie,cr as hs,cs as W8e,ct as Wr,cu as rt,cv as Ri,cw as ir,cx as eB,cy as ut,cz as wr,cA as Hi,cB as H8e,cC as un,cD as oLe,cE as Ce,cF as rLe,cG as _ie,cH as Ct,cI as ON,cJ as $8e,cK as U8e,cL as yd,cM as aLe,cN as Tg,cO as lLe,cP as j8e,cQ as Hk,cR as bie,cS as vie,cT as wie,cU as yie,cV as G8e,cW as q8e,cX as K8e,cY as J8e,cZ as Y8e,c_ as X8e,c$ as cLe,d0 as Q8e,d1 as U7,d2 as Cie,d3 as dLe,d4 as xw,d5 as Z8e,d6 as tB,d7 as at,d8 as i9,d9 as K0,da as eUe,db as uLe,dc as hLe,dd as tUe,de as nUe,df as gLe,dg as mLe,dh as iUe,di as sUe,dj as oUe,dk as rUe,dl as fLe,dm as aUe,dn as lUe,dp as pLe,dq as cUe,dr as dUe,ds as uUe,dt as _Le,du as hUe,dv as gUe,dw as mUe,dx as fUe,dy as pUe,dz as _Ue,dA as bUe,dB as bLe,dC as vUe,dD as wUe,dE as yUe,dF as CUe,dG as vLe,dH as wLe,dI as SUe,dJ as xUe,dK as NUe,dL as IUe,dM as kUe,dN as LUe,dO as DUe,dP as TUe,dQ as yLe,dR as CLe,dS as EUe,dT as SLe,dU as PUe,dV as RUe,dW as MUe,dX as AUe,dY as OUe,dZ as FUe,d_ as BUe,d$ as VUe,e0 as zUe,e1 as WUe,e2 as HUe,e3 as xLe,e4 as $Ue,e5 as UUe,e6 as jUe,e7 as GUe,e8 as qUe,e9 as KUe,ea as JUe,eb as YUe,ec as XUe,ed as QUe,ee as ZUe,ef as eje,eg as tje,eh as nje,ei as z2,ej as ije,ek as nB,el as NE,em as J0,en as NLe,eo as sA,ep as FI,eq as s9,er as ILe,es as Nw,et as kLe,eu as LLe,ev as DLe,ew as sje,ex as oje,ey as Rm,ez as xb,eA as TLe,eB as ELe,eC as PLe,eD as rje,eE as aje,eF as yue,eG as o9,eH as Sie,eI as lje,eJ as oK,eK as cje,eL as dje,eM as uje,eN as nb,eO as hje,eP as gje,eQ as mje,eR as Cue,eS as fje,eT as pje,eU as _je,eV as bje,eW as oA,eX as vje,eY as wje,eZ as yje,e_ as Cje,e$ as Sje,f0 as xje,f1 as Nje,f2 as Ije,f3 as kje,f4 as $k,f5 as Lje,f6 as Dje,f7 as Tje,f8 as Eje,f9 as Pje,fa as Rje,fb as RLe,fc as Mje,fd as Aje,fe as Oje,ff as Fje,fg as Bje,fh as Vje,fi as MLe,fj as xie,fk as Nie,fl as zje,fm as Wje,fn as Hje,fo as $je,fp as ALe,fq as Uje,fr as Uk,fs as jje,ft as Y0,fu as X0,fv as Oo,fw as Gje,fx as Iie,fy as qje,fz as Kje,fA as Jje,fB as OLe,fC as FLe,fD as BLe,fE as Yje,fF as Xje,fG as Qje,fH as Zje,fI as eGe,fJ as r9,fK as iB,fL as tGe,fM as nGe,fN as iGe,fO as sGe,fP as oGe,fQ as rGe,fR as aGe,fS as lGe,fT as cGe,fU as dGe,fV as uGe,fW as Sue,fX as hGe,fY as gGe,fZ as r_,f_ as xue,f$ as mGe,g0 as Nue,g1 as fGe,g2 as pGe,g3 as VLe,g4 as _Ge,g5 as bGe,g6 as vGe,g7 as wGe,g8 as yGe,g9 as Xb,ga as CGe,gb as SGe,gc as xGe,gd as NGe,ge as IGe}from"./RbLocalizationProvider.GKeO3IYX.js";import{j as nr,J as kGe}from"./jsx-runtime.CBqCNPYB.js";import{g as rA,a as zLe,r as LGe}from"./index.P6snMalu.js";import{r as DGe}from"./index.B3zY1kf7.js";import{R as TGe,l as EGe,a as PGe,M as WLe,b as Xf,c as RGe,A as MGe,S as AGe,N as OGe,B as HLe,C as a9,L as rK,V as Ve,d as gl,e as cs,f as Do,g as Eu,h as co,i as ib,P as aA,j as Id,T as zx,D as GP,k as $Le,m as FGe,F as Iue,n as sB,o as kie,p as Lie,q as IE,r as ULe,s as BGe,t as VGe,u as Iw,G as _g,v as Bc,w as kue,x as kE,y as jLe,Q as Us,O as Lue,E as zGe,z as WGe,H as HGe,I as FN,J as GLe,U as qLe,K as KLe,W as $Ge,X as UGe,Y as JLe,Z as YLe,_ as XLe,$ as QLe,a0 as jGe,a1 as GGe,a2 as qGe,a3 as ZLe,a4 as KGe,a5 as JGe,a6 as eDe,a7 as tDe,a8 as YGe,a9 as BI,aa as XGe,ab as QGe,ac as ZGe,ad as eqe,ae as tqe,af as nqe,ag as iqe,ah as SS,ai as Due,aj as W2,ak as sqe,al as Die,am as j7,an as oqe,ao as rqe,ap as aqe,aq as nDe,ar as iDe,as as lqe,at as xS,au as cqe,av as yc,aw as dqe,ax as oB,ay as sDe,az as oDe,aA as rDe,aB as uqe,aC as hqe,aD as aDe,aE as gqe,aF as mqe,aG as fqe,aH as pqe,aI as _qe,aJ as bqe,aK as vqe,aL as wqe,aM as yqe,aN as Cqe,aO as Sqe,aP as xqe,aQ as Nqe,aR as Iqe,aS as kqe,aT as Lqe,aU as Dqe,aV as Tqe,aW as Eqe,aX as lDe,aY as Pqe,aZ as Rqe}from"./useFileDownload.BcvMcbUi.js";import{l as Tie,c as $t,m as Dt,a as Fs,r as Na,L as l9,b as lA,f as $v,i as Gl,M as Eie,d as Pie,e as c9,g as Rie,h as Mqe,j as Aqe,k as cDe,u as Nb,n as dDe,J as Qh,o as Oqe,p as Fqe,q as Bqe,s as Vqe,t as zqe,v as uDe,w as Tue,x as Eue,y as hDe,z as Wqe,A as Hqe,R as $qe,B as Uqe,C as gDe,D as jqe,E as Gqe}from"./index.DHJstkPN.js";import{s as qqe,h as Kqe,E as Jqe,a as Yqe,c as d9,_ as Pue}from"./emotion-styled-base.browser.esm.BIcjgOzg.js";function Xqe(i,e){for(var t=0;t<e.length;t++){const n=e[t];if(typeof n!="string"&&!Array.isArray(n)){for(const s in n)if(s!=="default"&&!(s in i)){const o=Object.getOwnPropertyDescriptor(n,s);o&&Object.defineProperty(i,s,o.get?o:{enumerable:!0,get:()=>n[s]})}}}return Object.freeze(Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}))}var H2={},Rue;function Qqe(){if(Rue)return H2;Rue=1;var i=DGe();return H2.createRoot=i.createRoot,H2.hydrateRoot=i.hydrateRoot,H2}var mDe=Qqe();const Zqe=rA(mDe),eKe=Xqe({__proto__:null,default:Zqe},[mDe]),Mue=await F("react");var Aue=function(e,t){var n=arguments;if(t==null||!Kqe.call(t,"css"))return Mue.createElement.apply(void 0,n);var s=n.length,o=new Array(s);o[0]=Jqe,o[1]=Yqe(e,t);for(var r=2;r<s;r++)o[r]=n[r];return Mue.createElement.apply(null,o)};(function(i){var e;e||(e=i.JSX||(i.JSX={}))})(Aue||(Aue={}));function tKe(){for(var i=arguments.length,e=new Array(i),t=0;t<i;t++)e[t]=arguments[t];return qqe(e)}function Mie(){var i=tKe.apply(void 0,arguments),e="animation-"+i.name;return{name:e,styles:"@keyframes "+e+"{"+i.styles+"}",anim:1,toString:function(){return"_EMO_"+this.name+"_"+this.styles+"_EMO_"}}}/**
3
3
  * @license lucide-react v0.486.0 - ISC
4
4
  *
@@ -1299,7 +1299,7 @@ ${e.toString()}`}}class RW{constructor(e=new NL,t=!1,n,s=mdn){this._services=e,t
1299
1299
  `:`\r
1300
1300
  `}};Sne=Ep([Wo(0,ln)],Sne);class Idn{publicLog2(){}}class OW{static{this.SCHEME="inmemory"}constructor(){const e=Tt.from({scheme:OW.SCHEME,authority:"model",path:"/"});this.workspace={id:P4e,folders:[new WGt({uri:e,name:"",index:0})]}}getWorkspace(){return this.workspace}getWorkspaceFolder(e){return e&&e.scheme===OW.SCHEME?this.workspace.folders[0]:null}}function FW(i,e,t){if(!e||!(i instanceof AW))return;const n=[];Object.keys(e).forEach(s=>{oqt(s)&&n.push([`editor.${s}`,e[s]]),t&&rqt(s)&&n.push([`diffEditor.${s}`,e[s]])}),n.length>0&&i.updateValues(n)}let xne=class{constructor(e){this._modelService=e}hasPreviewHandler(){return!1}async apply(e,t){const n=Array.isArray(e)?e:sle.convert(e),s=new Map;for(const a of n){if(!(a instanceof yw))throw new Error("bad edit - only text edits are supported");const l=this._modelService.getModel(a.resource);if(!l)throw new Error("bad edit - model not found");if(typeof a.versionId=="number"&&l.getVersionId()!==a.versionId)throw new Error("bad state - model changed in the meantime");let c=s.get(l);c||(c=[],s.set(l,c)),c.push(ro.replaceMove(j.lift(a.textEdit.range),a.textEdit.text))}let o=0,r=0;for(const[a,l]of s)a.pushStackElement(),a.pushEditOperations([],l,()=>[]),a.pushStackElement(),r+=1,o+=l.length;return{ariaSummary:a1(Ree.bulkEditServiceSummary,o,r),isApplied:o>0}}};xne=Ep([Wo(0,Bs)],xne);class kdn{getUriLabel(e,t){return e.scheme==="file"?e.fsPath:e.path}getUriBasenameLabel(e){return Sh(e)}}let Nne=class extends $ln{constructor(e,t){super(e),this._codeEditorService=t}showContextView(e,t,n){if(!t){const s=this._codeEditorService.getFocusedCodeEditor()||this._codeEditorService.getActiveCodeEditor();s&&(t=s.getContainerDomNode())}return super.showContextView(e,t,n)}};Nne=Ep([Wo(0,Lp),Wo(1,Yn)],Nne);class Ldn{constructor(){this._neverEmitter=new ue,this.onDidChangeTrust=this._neverEmitter.event}isWorkspaceTrusted(){return!0}}class Ddn extends IW{constructor(){super()}}class Tdn extends vdn{constructor(){super(new ROt)}}let Ine=class extends Yte{constructor(e,t,n,s,o,r){super(e,t,n,s,o,r),this.configure({blockMouse:!1})}};Ine=Ep([Wo(0,Pl),Wo(1,fo),Wo(2,Pb),Wo(3,ei),Wo(4,Th),Wo(5,Ut)],Ine);const Edn={esmModuleLocation:void 0,label:"editorWorkerService"};let kne=class extends Bte{constructor(e,t,n,s,o){super(Edn,e,t,n,s,o)}};kne=Ep([Wo(0,Bs),Wo(1,QH),Wo(2,ts),Wo(3,Vs),Wo(4,_t)],kne);class Pdn{async playSignal(e,t){}}Ln(ts,Tdn,0);Ln(ln,AW,0);Ln(QH,Cne,0);Ln(Pze,Sne,0);Ln(vb,OW,0);Ln(E1,kdn,0);Ln(Pl,Idn,0);Ln(C2,xdn,0);Ln(fle,Sdn,0);Ln(fo,MW,0);Ln(Dp,JC,0);Ln(mo,Ddn,0);Ln(Ou,Man,0);Ln(Bs,nne,0);Ln(Tre,tne,0);Ln(Ut,vne,0);Ln(o3e,Cdn,0);Ln(_b,hde,0);Ln(Ql,xjt,0);Ln(id,kne,0);Ln(a2,xne,0);Ln(Uze,Ldn,0);Ln(Xl,wne,0);Ln(Ia,pne,0);Ln(Mh,PYt,0);Ln(is,yne,0);Ln(ei,Fk,0);Ln(Dl,fne,0);Ln(Pb,Nne,0);Ln(Rb,ene,0);Ln(Bd,bne,0);Ln(Au,Ine,0);Ln(Th,HX,0);Ln(Tb,Pdn,0);Ln(vae,wdn,0);Ln(ROe,FOt,0);Ln(dce,KZt,0);var Qt;(function(i){const e=new NL;for(const[l,c]of ove())e.set(l,c);const t=new RW(e,!0);e.set(St,t);function n(l){s||r({});const c=e.get(l);if(!c)throw new Error("Missing service "+l);return c instanceof Bf?t.invokeFunction(d=>d.get(l)):c}i.get=n;let s=!1;const o=new ue;function r(l){if(s)return t;s=!0;for(const[d,h]of ove())e.get(d)||e.set(d,h);for(const d in l)if(l.hasOwnProperty(d)){const h=pn(d);e.get(h)instanceof Bf&&e.set(h,l[d])}const c=Wqt();for(const d of c)try{t.createInstance(d)}catch(h){Xt(h)}return o.fire(),t}i.initialize=r;function a(l){if(s)return l();const c=new Ae,d=c.add(o.event(()=>{d.dispose(),c.add(l())}));return c}i.withServices=a})(Qt||(Qt={}));var Rdn=function(i,e,t,n){var s=arguments.length,o=s<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,t):n,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,e,t,n);else for(var a=i.length-1;a>=0;a--)(r=i[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},WSe=function(i,e){return function(t,n){e(t,n,i)}},K4;let Lne=class{static{K4=this}static{this._ttpTokenizer=Ip("tokenizeToString",{createHTML(e){return e}})}constructor(e,t){this._configurationService=e,this._languageService=t}async renderCodeBlock(e,t,n){const s=Hm(n.context)?n.context:void 0;let o;e?o=this._languageService.getLanguageIdByLanguageName(e):s&&(o=s.getModel()?.getLanguageId()),o||(o=Nu);const r=await zHt(this._languageService,t,o),a=K4._ttpTokenizer?K4._ttpTokenizer.createHTML(r)??r:r,l=document.createElement("span");l.innerHTML=a;const c=l.querySelector(".monaco-tokenized-source");return ho(c)?(ta(c,this.getFontInfo(s)),l):document.createElement("span")}getFontInfo(e){return e?e.getOption(59):p3t({fontFamily:this._configurationService.getValue("editor").fontFamily},1)}};Lne=K4=Rdn([WSe(0,ln),WSe(1,mo)],Lne);var gde=function(i,e,t,n){var s=arguments.length,o=s<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,t):n,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,e,t,n);else for(var a=i.length-1;a>=0;a--)(r=i[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Ki=function(i,e){return function(t,n){e(t,n,i)}};let Mdn=0,HSe=!1;function Adn(i){if(!i){if(HSe)return;HSe=!0}Q2t(i||Li.document.body)}let BW=class extends p1{constructor(e,t,n,s,o,r,a,l,c,d,h,g,m,f){const p={...t};p.ariaLabel=p.ariaLabel||Eee.editorViewAccessibleLabel,super(e,p,{},n,s,o,r,c,d,h,g,m),l instanceof Fk?this._standaloneKeybindingService=l:this._standaloneKeybindingService=null,Adn(p.ariaContainerElement),I7t((_,b)=>n.createInstance(bk,_,{instantHover:b},{})),O8t(a),f.setDefaultCodeBlockRenderer(n.createInstance(Lne))}addCommand(e,t,n){if(!this._standaloneKeybindingService)return console.warn("Cannot add command because the editor is configured with an unrecognized KeybindingService"),null;const s="DYNAMIC_"+ ++Mdn,o=ze.deserialize(n);return this._standaloneKeybindingService.addDynamicKeybinding(s,e,t,o),s}createContextKey(e,t){return this._contextKeyService.createKey(e,t)}addAction(e){if(typeof e.id!="string"||typeof e.label!="string"||typeof e.run!="function")throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");if(!this._standaloneKeybindingService)return console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),pe.None;const t=e.id,n=e.label,s=ze.and(ze.equals("editorId",this.getId()),ze.deserialize(e.precondition)),o=e.keybindings,r=ze.and(s,ze.deserialize(e.keybindingContext)),a=e.contextMenuGroupId||null,l=e.contextMenuOrder||0,c=(m,...f)=>Promise.resolve(e.run(this,...f)),d=new Ae,h=this.getId()+":"+t;if(d.add(Wn.registerCommand(h,c)),a){const m={command:{id:h,title:n},when:s,group:a,order:l};d.add(ea.appendMenuItem(de.EditorContext,m))}if(Array.isArray(o))for(const m of o)d.add(this._standaloneKeybindingService.addDynamicKeybinding(h,m,c,r));const g=new D5e(h,n,n,void 0,s,(...m)=>Promise.resolve(e.run(this,...m)),this._contextKeyService);return this._actions.set(t,g),d.add(wt(()=>{this._actions.delete(t)})),d}_triggerCommand(e,t){if(this._codeEditorService instanceof wW)try{this._codeEditorService.setActiveCodeEditor(this),super._triggerCommand(e,t)}finally{this._codeEditorService.setActiveCodeEditor(null)}else super._triggerCommand(e,t)}};BW=gde([Ki(2,St),Ki(3,Yn),Ki(4,is),Ki(5,Ut),Ki(6,xc),Ki(7,ei),Ki(8,Qs),Ki(9,fo),Ki(10,Ia),Ki(11,Vs),Ki(12,_t),Ki(13,Og)],BW);let Dne=class extends BW{constructor(e,t,n,s,o,r,a,l,c,d,h,g,m,f,p,_,b){const v={...t};FW(h,v,!1);const y=c.registerEditorContainer(e);typeof v.theme=="string"&&c.setTheme(v.theme),typeof v.autoDetectHighContrast<"u"&&c.setAutoDetectHighContrast(!!v.autoDetectHighContrast);const w=v.model;delete v.model,super(e,v,n,s,o,r,a,l,c,d,g,p,_,b),this._configurationService=h,this._standaloneThemeService=c,this._register(y);let S;if(typeof w>"u"){const C=f.getLanguageIdByMimeType(v.language)||v.language||Nu;S=FWe(m,f,v.value||"",C,void 0),this._ownsModel=!0}else S=w,this._ownsModel=!1;if(this._attachModel(S),S){const C={oldModelUrl:null,newModelUrl:S.uri};this._onDidChangeModel.fire(C)}}dispose(){super.dispose()}updateOptions(e){FW(this._configurationService,e,!1),typeof e.theme=="string"&&this._standaloneThemeService.setTheme(e.theme),typeof e.autoDetectHighContrast<"u"&&this._standaloneThemeService.setAutoDetectHighContrast(!!e.autoDetectHighContrast),super.updateOptions(e)}_postDetachModelCleanup(e){super._postDetachModelCleanup(e),e&&this._ownsModel&&(e.dispose(),this._ownsModel=!1)}};Dne=gde([Ki(2,St),Ki(3,Yn),Ki(4,is),Ki(5,Ut),Ki(6,xc),Ki(7,ei),Ki(8,Ou),Ki(9,fo),Ki(10,ln),Ki(11,Ia),Ki(12,Bs),Ki(13,mo),Ki(14,Vs),Ki(15,_t),Ki(16,Og)],Dne);let Tne=class extends pp{constructor(e,t,n,s,o,r,a,l,c,d,h,g){const m={...t};FW(l,m,!0);const f=r.registerEditorContainer(e);typeof m.theme=="string"&&r.setTheme(m.theme),typeof m.autoDetectHighContrast<"u"&&r.setAutoDetectHighContrast(!!m.autoDetectHighContrast),super(e,m,{},s,n,o,g,d),this._configurationService=l,this._standaloneThemeService=r,this._register(f)}dispose(){super.dispose()}updateOptions(e){FW(this._configurationService,e,!0),typeof e.theme=="string"&&this._standaloneThemeService.setTheme(e.theme),typeof e.autoDetectHighContrast<"u"&&this._standaloneThemeService.setAutoDetectHighContrast(!!e.autoDetectHighContrast),super.updateOptions(e)}_createInnerEditor(e,t,n){return e.createInstance(BW,t,n)}getOriginalEditor(){return super.getOriginalEditor()}getModifiedEditor(){return super.getModifiedEditor()}addCommand(e,t,n){return this.getModifiedEditor().addCommand(e,t,n)}createContextKey(e,t){return this.getModifiedEditor().createContextKey(e,t)}addAction(e){return this.getModifiedEditor().addAction(e)}};Tne=gde([Ki(2,St),Ki(3,Ut),Ki(4,Yn),Ki(5,Ou),Ki(6,fo),Ki(7,ln),Ki(8,Au),Ki(9,_b),Ki(10,Bd),Ki(11,Tb)],Tne);function FWe(i,e,t,n,s){if(t=t||"",!n){const o=t.indexOf(`
1301
1301
  `);let r=t;return o!==-1&&(r=t.substring(0,o)),$Se(i,t,e.createByFilepathOrFirstLine(s||null,r),s)}return $Se(i,t,e.createById(n),s)}function $Se(i,e,t,n){return i.createModel(e,t,n)}ee("multiDiffEditor.headerBackground",{dark:"#262626",light:"tab.inactiveBackground",hcDark:"tab.inactiveBackground",hcLight:"tab.inactiveBackground"},I(142,"The background color of the diff editor's header"));ee("multiDiffEditor.background",Eo,I(143,"The background color of the multi file diff editor"));ee("multiDiffEditor.border",{dark:"sideBarSectionHeader.border",light:"#cccccc",hcDark:"sideBarSectionHeader.border",hcLight:"#cccccc"},I(144,"The border color of the multi file diff editor"));var Odn=function(i,e,t,n){var s=arguments.length,o=s<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,t):n,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,e,t,n);else for(var a=i.length-1;a>=0;a--)(r=i[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},USe=function(i,e){return function(t,n){e(t,n,i)}};class Fdn{constructor(e,t){this.viewModel=e,this.deltaScrollVertical=t}getId(){return this.viewModel}}let Ene=class extends pe{constructor(e,t,n,s,o){super(),this._container=e,this._overflowWidgetsDomNode=t,this._workbenchUIElementFactory=n,this._instantiationService=s,this._viewModel=Ht(this,void 0),this._collapsed=Oe(this,l=>this._viewModel.read(l)?.collapsed.read(l)),this._editorContentHeight=Ht(this,500),this.contentHeight=Oe(this,l=>(this._collapsed.read(l)?0:this._editorContentHeight.read(l))+this._outerEditorHeight),this._modifiedContentWidth=Ht(this,0),this._modifiedWidth=Ht(this,0),this._originalContentWidth=Ht(this,0),this._originalWidth=Ht(this,0),this.maxScroll=Oe(this,l=>{const c=this._modifiedContentWidth.read(l)-this._modifiedWidth.read(l),d=this._originalContentWidth.read(l)-this._originalWidth.read(l);return c>d?{maxScroll:c,width:this._modifiedWidth.read(l)}:{maxScroll:d,width:this._originalWidth.read(l)}}),this._elements=Kn("div.multiDiffEntry",[Kn("div.header@header",[Kn("div.header-content",[Kn("div.collapse-button@collapseButton"),Kn("div.file-path",[Kn("div.title.modified.show-file-icons@primaryPath",[]),Kn("div.status.deleted@status",["R"]),Kn("div.title.original.show-file-icons@secondaryPath",[])]),Kn("div.actions@actions")])]),Kn("div.editorParent",[Kn("div.editorContainer@editor")])]),this.editor=this._register(this._instantiationService.createInstance(pp,this._elements.editor,{overflowWidgetsDomNode:this._overflowWidgetsDomNode,fixedOverflowWidgets:!0},{})),this.isModifedFocused=As(this.editor.getModifiedEditor()).isFocused,this.isOriginalFocused=As(this.editor.getOriginalEditor()).isFocused,this.isFocused=Oe(this,l=>this.isModifedFocused.read(l)||this.isOriginalFocused.read(l)),this._resourceLabel=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.primaryPath)):void 0,this._resourceLabel2=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.secondaryPath)):void 0,this._dataStore=this._register(new Ae),this._headerHeight=40,this._lastScrollTop=-1,this._isSettingScrollTop=!1;const r=new wz(this._elements.collapseButton,{});this._register(zt(l=>{r.element.className="",r.icon=this._collapsed.read(l)?je.chevronRight:je.chevronDown})),this._register(r.onDidClick(()=>{this._viewModel.get()?.collapsed.set(!this._collapsed.get(),void 0)})),this._register(zt(l=>{this._elements.editor.style.display=this._collapsed.read(l)?"none":"block"})),this._register(this.editor.getModifiedEditor().onDidLayoutChange(l=>{const c=this.editor.getModifiedEditor().getLayoutInfo().contentWidth;this._modifiedWidth.set(c,void 0)})),this._register(this.editor.getOriginalEditor().onDidLayoutChange(l=>{const c=this.editor.getOriginalEditor().getLayoutInfo().contentWidth;this._originalWidth.set(c,void 0)})),this._register(this.editor.onDidContentSizeChange(l=>{nE(c=>{this._editorContentHeight.set(l.contentHeight,c),this._modifiedContentWidth.set(this.editor.getModifiedEditor().getContentWidth(),c),this._originalContentWidth.set(this.editor.getOriginalEditor().getContentWidth(),c)})})),this._register(this.editor.getOriginalEditor().onDidScrollChange(l=>{if(this._isSettingScrollTop||!l.scrollTopChanged||!this._data)return;const c=l.scrollTop-this._lastScrollTop;this._data.deltaScrollVertical(c)})),this._register(zt(l=>{const c=this._viewModel.read(l)?.isActive.read(l);this._elements.root.classList.toggle("active",c)})),this._container.appendChild(this._elements.root),this._outerEditorHeight=this._headerHeight,this._contextKeyService=this._register(o.createScoped(this._elements.actions));const a=this._register(this._instantiationService.createChild(new NL([Ut,this._contextKeyService])));this._register(a.createInstance(cM,this._elements.actions,de.MultiDiffEditorFileToolbar,{actionRunner:this._register(new b4e(()=>this._viewModel.get()?.modifiedUri??this._viewModel.get()?.originalUri)),menuOptions:{shouldForwardArgs:!0},toolbarOptions:{primaryGroup:l=>l.startsWith("navigation")},actionViewItemProvider:(l,c)=>nle(a,l,c)}))}setScrollLeft(e){this._modifiedContentWidth.get()-this._modifiedWidth.get()>this._originalContentWidth.get()-this._originalWidth.get()?this.editor.getModifiedEditor().setScrollLeft(e):this.editor.getOriginalEditor().setScrollLeft(e)}setData(e){this._data=e;function t(s){return{...s,scrollBeyondLastLine:!1,hideUnchangedRegions:{enabled:!0},scrollbar:{vertical:"hidden",horizontal:"hidden",handleMouseWheel:!1,useShadows:!1},renderOverviewRuler:!1,fixedOverflowWidgets:!0,overviewRulerBorder:!1}}if(!e){nE(s=>{this._viewModel.set(void 0,s),this.editor.setDiffModel(null,s),this._dataStore.clear()});return}const n=e.viewModel.documentDiffItem;if(nE(s=>{this._resourceLabel?.setUri(e.viewModel.modifiedUri??e.viewModel.originalUri,{strikethrough:e.viewModel.modifiedUri===void 0});let o=!1,r=!1,a=!1,l="";e.viewModel.modifiedUri&&e.viewModel.originalUri&&e.viewModel.modifiedUri.path!==e.viewModel.originalUri.path?(l="R",o=!0):e.viewModel.modifiedUri?e.viewModel.originalUri||(l="A",a=!0):(l="D",r=!0),this._elements.status.classList.toggle("renamed",o),this._elements.status.classList.toggle("deleted",r),this._elements.status.classList.toggle("added",a),this._elements.status.innerText=l,this._resourceLabel2?.setUri(o?e.viewModel.originalUri:void 0,{strikethrough:!0}),this._dataStore.clear(),this._viewModel.set(e.viewModel,s),this.editor.setDiffModel(e.viewModel.diffEditorViewModelRef,s),this.editor.updateOptions(t(n.options??{}))}),n.onOptionsDidChange&&this._dataStore.add(n.onOptionsDidChange(()=>{this.editor.updateOptions(t(n.options??{}))})),e.viewModel.isAlive.recomputeInitiallyAndOnChange(this._dataStore,s=>{s||this.setData(void 0)}),e.viewModel.documentDiffItem.contextKeys)for(const[s,o]of Object.entries(e.viewModel.documentDiffItem.contextKeys))this._contextKeyService.createKey(s,o)}render(e,t,n,s){this._elements.root.style.visibility="visible",this._elements.root.style.top=`${e.start}px`,this._elements.root.style.height=`${e.length}px`,this._elements.root.style.width=`${t}px`,this._elements.root.style.position="absolute";const o=e.length-this._headerHeight,r=Math.max(0,Math.min(s.start-e.start,o));this._elements.header.style.transform=`translateY(${r}px)`,nE(a=>{this.editor.layout({width:t-16-2,height:e.length-this._outerEditorHeight})});try{this._isSettingScrollTop=!0,this._lastScrollTop=n,this.editor.getOriginalEditor().setScrollTop(n)}finally{this._isSettingScrollTop=!1}this._elements.header.classList.toggle("shadow",r>0||n>0),this._elements.header.classList.toggle("collapsed",r===o)}hide(){this._elements.root.style.top="-100000px",this._elements.root.style.visibility="hidden"}};Ene=Odn([USe(3,St),USe(4,Ut)],Ene);class Bdn{constructor(e){this._create=e,this._unused=new Set,this._used=new Set,this._itemData=new Map}getUnusedObj(e){let t;if(this._unused.size===0)t=this._create(e),this._itemData.set(t,e);else{const n=[...this._unused.values()];t=n.find(s=>this._itemData.get(s).getId()===e.getId())??n[0],this._unused.delete(t),this._itemData.set(t,e),t.setData(e)}return this._used.add(t),{object:t,dispose:()=>{this._used.delete(t),this._unused.size>5?t.dispose():this._unused.add(t)}}}dispose(){for(const e of this._used)e.dispose();for(const e of this._unused)e.dispose();this._used.clear(),this._unused.clear()}}var Vdn=function(i,e,t,n){var s=arguments.length,o=s<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,t):n,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,e,t,n);else for(var a=i.length-1;a>=0;a--)(r=i[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},jSe=function(i,e){return function(t,n){e(t,n,i)}};let Pne=class extends pe{constructor(e,t,n,s,o,r){super(),this._element=e,this._dimension=t,this._viewModel=n,this._workbenchUIElementFactory=s,this._parentContextKeyService=o,this._parentInstantiationService=r,this._scrollableElements=Kn("div.scrollContent",[Kn("div@content",{style:{overflow:"hidden"}}),Kn("div.monaco-editor@overflowWidgetsDomNode",{})]),this._scrollable=this._register(new SL({forceIntegerValues:!1,scheduleAtNextAnimationFrame:c=>Jc(xt(this._element),c),smoothScrollDuration:100})),this._scrollableElement=this._register(new K6(this._scrollableElements.root,{vertical:1,horizontal:1,useShadows:!1},this._scrollable)),this._elements=Kn("div.monaco-component.multiDiffEditor",{},[Kn("div",{},[this._scrollableElement.getDomNode()]),Kn("div.placeholder@placeholder",{},[Kn("div")])]),this._sizeObserver=this._register(new Q3e(this._element,void 0)),this._objectPool=this._register(new Bdn(c=>{const d=this._instantiationService.createInstance(Ene,this._scrollableElements.content,this._scrollableElements.overflowWidgetsDomNode,this._workbenchUIElementFactory);return d.setData(c),d})),this.scrollTop=li(this,this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollTop),this.scrollLeft=li(this,this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollLeft),this._viewItemsInfo=Oe(this,c=>{const d=this._viewModel.read(c);if(!d)return{items:[],getItem:f=>{throw new Pt}};const h=d.items.read(c),g=new Map;return{items:h.map(f=>{const p=c.store.add(new Wdn(f,this._objectPool,this.scrollLeft,b=>{this._scrollableElement.setScrollPosition({scrollTop:this._scrollableElement.getScrollPosition().scrollTop+b})})),_=this._lastDocStates?.[p.getKey()];return _&&Yi(b=>{p.setViewState(_,b)}),g.set(f,p),p}),getItem:f=>g.get(f)}}),this._viewItems=this._viewItemsInfo.map(this,c=>c.items),this._spaceBetweenPx=0,this._totalHeight=this._viewItems.map(this,(c,d)=>c.reduce((h,g)=>h+g.contentHeight.read(d)+this._spaceBetweenPx,0)),this.activeControl=Oe(this,c=>{const d=this._viewModel.read(c)?.activeDiffItem.read(c);return d?this._viewItemsInfo.read(c).getItem(d).template.read(c)?.editor:void 0}),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._element)),this._instantiationService=this._register(this._parentInstantiationService.createChild(new NL([Ut,this._contextKeyService]))),this._contextKeyService.createKey(te.inMultiDiffEditor.key,!0),this._lastDocStates={},this._register(kl((c,d)=>{const h=this._viewModel.read(c);if(h&&h.contextKeys)for(const[g,m]of Object.entries(h.contextKeys)){const f=this._contextKeyService.createKey(g,void 0);f.set(m),d.add(wt(()=>f.reset()))}}));const a=this._parentContextKeyService.createKey(te.multiDiffEditorAllCollapsed.key,!1);this._register(zt(c=>{const d=this._viewModel.read(c);if(d){const h=d.items.read(c).every(g=>g.collapsed.read(c));a.set(h)}})),this._register(zt(c=>{const d=this._dimension.read(c);this._sizeObserver.observe(d)}));const l=Oe(c=>{if(this._viewItems.read(c).length>0)return;const h=this._viewModel.read(c);return!h||h.isLoading.read(c)?I(145,"Loading..."):I(146,"No Changed Files")});this._register(zt(c=>{const d=l.read(c);this._elements.placeholder.innerText=d??"",this._elements.placeholder.classList.toggle("visible",!!d)})),this._scrollableElements.content.style.position="relative",this._register(zt(c=>{const d=this._sizeObserver.height.read(c);this._scrollableElements.root.style.height=`${d}px`;const h=this._totalHeight.read(c);this._scrollableElements.content.style.height=`${h}px`;const g=this._sizeObserver.width.read(c);let m=g;const f=this._viewItems.read(c),p=Yre(f,Za(_=>_.maxScroll.read(c).maxScroll,Ld));if(p){const _=p.maxScroll.read(c);m=g+_.maxScroll}this._scrollableElement.setScrollDimensions({width:g,height:d,scrollHeight:h,scrollWidth:m})})),e.replaceChildren(this._elements.root),this._register(wt(()=>{e.replaceChildren()})),this._register(zt(c=>{const d=this._viewModel.read(c);if(d&&!d.isLoading.read(c)){if(d.items.read(c).length===0||d.activeDiffItem.read(c))return;this.goToNextChange()}})),this._register(this._register(zt(c=>{nE(d=>{this.render(c)})})))}reveal(e,t){const n=this._viewItems.get(),s=n.findIndex(c=>c.viewModel.originalUri?.toString()===e.original?.toString()&&c.viewModel.modifiedUri?.toString()===e.modified?.toString());if(s===-1)throw new Pt("Resource not found in diff editor");const o=n[s];this._viewModel.get().activeDiffItem.setCache(o.viewModel,void 0);let r=0;for(let c=0;c<s;c++)r+=n[c].contentHeight.get()+this._spaceBetweenPx;this._scrollableElement.setScrollPosition({scrollTop:r});const a=o.template.get()?.editor,l="original"in e?a?.getOriginalEditor():a?.getModifiedEditor();l&&t?.range&&(l.revealRangeInCenter(t.range),zdn(l,t.range))}goToNextChange(){this._navigateToChange("next")}_navigateToChange(e){const t=this._viewItems.get();if(t.length===0)return;const n=this._viewModel.get()?.activeDiffItem.get(),s=n?t.findIndex(l=>l.viewModel===n):-1;if(s===-1){this._goToFile(0,"first");return}const o=t[s];o.viewModel.collapsed.get()&&o.viewModel.collapsed.set(!1,void 0);const r=o.template.get()?.editor;if(r?.getDiffComputationResult()?.changes2?.length){const l=r.getModifiedEditor().getPosition()?.lineNumber||1,c=r.getDiffComputationResult().changes2;if(e==="next"?c.some(h=>h.modified.startLineNumber>l):c.some(h=>h.modified.endLineNumberExclusive<=l)){r.goToDiff(e);return}}const a=(s+(e==="next"?1:-1)+t.length)%t.length;this._goToFile(a,e==="next"?"first":"last")}_goToFile(e,t){const n=this._viewItems.get()[e];n.viewModel.collapsed.get()&&n.viewModel.collapsed.set(!1,void 0),this.reveal({original:n.viewModel.originalUri,modified:n.viewModel.modifiedUri});const s=n.template.get()?.editor;if(s?.getDiffComputationResult()?.changes2?.length)if(t==="first")s.revealFirstDiff();else{const o=s.getDiffComputationResult().changes2.at(-1),r=s.getModifiedEditor();r.setPosition({lineNumber:o.modified.startLineNumber,column:1}),r.revealLineInCenter(o.modified.startLineNumber)}s?.focus()}render(e){const t=this.scrollTop.read(e);let n=0,s=0,o=0;const r=this._sizeObserver.height.read(e),a=yt.ofStartAndLength(t,r),l=this._sizeObserver.width.read(e);for(const c of this._viewItems.read(e)){const d=c.contentHeight.read(e),h=Math.min(d,r),g=yt.ofStartAndLength(s,h),m=yt.ofStartAndLength(o,d);if(m.isBefore(a))n-=d-h,c.hide();else if(m.isAfter(a))c.hide();else{const f=Math.max(0,Math.min(a.start-m.start,d-h));n-=f;const p=yt.ofStartAndLength(t+n,r);c.render(g,f,l,p)}s+=h+this._spaceBetweenPx,o+=d+this._spaceBetweenPx}this._scrollableElements.content.style.transform=`translateY(${-(t+n)}px)`}};Pne=Vdn([jSe(4,Ut),jSe(5,St)],Pne);function zdn(i,e){const t=i.getModel(),n=i.createDecorationsCollection([{range:e,options:{description:"symbol-navigate-action-highlight",className:"symbolHighlight"}}]);setTimeout(()=>{i.getModel()===t&&n.clear()},350)}class Wdn extends pe{constructor(e,t,n,s){super(),this.viewModel=e,this._objectPool=t,this._scrollLeft=n,this._deltaScrollVertical=s,this._templateRef=this._register(dre(this,void 0)),this.contentHeight=Oe(this,o=>this._templateRef.read(o)?.object.contentHeight?.read(o)??this.viewModel.lastTemplateData.read(o).contentHeight),this.maxScroll=Oe(this,o=>this._templateRef.read(o)?.object.maxScroll.read(o)??{maxScroll:0,scrollWidth:0}),this.template=Oe(this,o=>this._templateRef.read(o)?.object),this._isHidden=Ht(this,!1),this._isFocused=Oe(this,o=>this.template.read(o)?.isFocused.read(o)??!1),this.viewModel.setIsFocused(this._isFocused,void 0),this._register(zt(o=>{const r=this._scrollLeft.read(o);this._templateRef.read(o)?.object.setScrollLeft(r)})),this._register(zt(o=>{const r=this._templateRef.read(o);!r||!this._isHidden.read(o)||r.object.isFocused.read(o)||this._clear()}))}dispose(){this._clear(),super.dispose()}toString(){return`VirtualViewItem(${this.viewModel.documentDiffItem.modified?.uri.toString()})`}getKey(){return this.viewModel.getKey()}setViewState(e,t){this.viewModel.collapsed.set(e.collapsed,t),this._updateTemplateData(t);const n=this.viewModel.lastTemplateData.get(),s=e.selections?.map(gt.liftSelection);this.viewModel.lastTemplateData.set({...n,selections:s},t);const o=this._templateRef.get();o&&s&&o.object.editor.setSelections(s)}_updateTemplateData(e){const t=this._templateRef.get();t&&this.viewModel.lastTemplateData.set({contentHeight:t.object.contentHeight.get(),selections:t.object.editor.getSelections()??void 0},e)}_clear(){const e=this._templateRef.get();e&&Yi(t=>{this._updateTemplateData(t),e.object.hide(),this._templateRef.set(void 0,t)})}hide(){this._isHidden.set(!0,void 0)}render(e,t,n,s){this._isHidden.set(!1,void 0);let o=this._templateRef.get();if(!o){o=this._objectPool.getUnusedObj(new Fdn(this.viewModel,this._deltaScrollVertical)),this._templateRef.set(o,void 0);const r=this.viewModel.lastTemplateData.get().selections;r&&o.object.editor.setSelections(r)}o.object.render(e,n,t,s)}}var Hdn=function(i,e,t,n){var s=arguments.length,o=s<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,t):n,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,e,t,n);else for(var a=i.length-1;a>=0;a--)(r=i[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},$dn=function(i,e){return function(t,n){e(t,n,i)}};let Rne=class extends pe{constructor(e,t,n){super(),this._element=e,this._workbenchUIElementFactory=t,this._instantiationService=n,this._dimension=Ht(this,void 0),this._viewModel=Ht(this,void 0),this._widgetImpl=Oe(this,s=>s.store.add(this._instantiationService.createInstance(i_(Pne),this._element,this._dimension,this._viewModel,this._workbenchUIElementFactory))),this._register(tk(this._widgetImpl))}};Rne=Hdn([$dn(2,St)],Rne);function Udn(i,e,t){return Qt.initialize(t||{}).createInstance(Dne,i,e)}function jdn(i){return Qt.get(Yn).onCodeEditorAdd(t=>{i(t)})}function Gdn(i){return Qt.get(Yn).onDiffEditorAdd(t=>{i(t)})}function qdn(){return Qt.get(Yn).listCodeEditors()}function Kdn(){return Qt.get(Yn).listDiffEditors()}function Jdn(i,e,t){return Qt.initialize(t||{}).createInstance(Tne,i,e)}function Ydn(i,e){const t=Qt.initialize(e||{});return new Rne(i,{},t)}function Xdn(i){if(typeof i.id!="string"||typeof i.run!="function")throw new Error("Invalid command descriptor, `id` and `run` are required properties!");return Wn.registerCommand(i.id,i.run)}function Qdn(i){if(typeof i.id!="string"||typeof i.label!="string"||typeof i.run!="function")throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");const e=ze.deserialize(i.precondition),t=(s,...o)=>xr.runEditorCommand(s,o,e,(r,a,l)=>Promise.resolve(i.run(a,...l))),n=new Ae;if(n.add(Wn.registerCommand(i.id,t)),i.contextMenuGroupId){const s={command:{id:i.id,title:i.label},when:e,group:i.contextMenuGroupId,order:i.contextMenuOrder||0};n.add(ea.appendMenuItem(de.EditorContext,s))}if(Array.isArray(i.keybindings)){const s=Qt.get(ei);if(!(s instanceof Fk))console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService");else{const o=ze.and(e,ze.deserialize(i.keybindingContext));n.add(s.addDynamicKeybindings(i.keybindings.map(r=>({keybinding:r,command:i.id,when:o}))))}}return n}function Zdn(i){return BWe([i])}function BWe(i){const e=Qt.get(ei);return e instanceof Fk?e.addDynamicKeybindings(i.map(t=>({keybinding:t.keybinding,command:t.command,commandArgs:t.commandArgs,when:ze.deserialize(t.when)}))):(console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),pe.None)}function eun(i,e,t){const n=Qt.get(mo),s=n.getLanguageIdByMimeType(e)||e;return FWe(Qt.get(Bs),n,i,s,t)}function tun(i,e){const t=Qt.get(mo),n=t.getLanguageIdByMimeType(e)||e||Nu;i.setLanguage(t.createById(n))}function nun(i,e,t){i&&Qt.get(Dp).changeOne(e,i.uri,t)}function iun(i){Qt.get(Dp).changeAll(i,[])}function sun(i){return Qt.get(Dp).read(i)}function oun(i){return Qt.get(Dp).onMarkerChanged(i)}function run(i){return Qt.get(Bs).getModel(i)}function aun(){return Qt.get(Bs).getModels()}function lun(i){return Qt.get(Bs).onModelAdded(i)}function cun(i){return Qt.get(Bs).onModelRemoved(i)}function dun(i){return Qt.get(Bs).onModelLanguageChanged(t=>{i({model:t.model,oldLanguage:t.oldLanguageId})})}function uun(i){return pln(Qt.get(Bs),i)}function hun(i,e){const t=Qt.get(mo),n=Qt.get(Ou);return sde.colorizeElement(n,t,i,e).then(()=>{n.registerEditorContainer(i)})}function gun(i,e,t){const n=Qt.get(mo);return Qt.get(Ou).registerEditorContainer(Li.document.body),sde.colorize(n,i,e,t)}function mun(i,e,t=4){return Qt.get(Ou).registerEditorContainer(Li.document.body),sde.colorizeModelLine(i,e,t)}function fun(i){const e=oo.get(i);return e||{getInitialState:()=>fk,tokenize:(t,n,s)=>bae(i,s)}}function pun(i,e){oo.getOrCreate(e);const t=fun(e),n=Ad(i),s=[];let o=t.getInitialState();for(let r=0,a=n.length;r<a;r++){const l=n[r],c=t.tokenize(l,!0,o);s[r]=c.tokens,o=c.endState}return s}function _un(i,e){Qt.get(Ou).defineTheme(i,e)}function bun(i){Qt.get(Ou).setTheme(i)}function vun(){CY.clearAllFontInfos()}function wun(i,e){return Wn.registerCommand({id:i,handler:e})}function yun(i){return Qt.get(Rb).registerOpener({async open(t){return typeof t=="string"&&(t=Tt.parse(t)),i.open(t)}})}function Cun(i){return Qt.get(Yn).registerCodeEditorOpenHandler(async(t,n,s)=>{if(!n)return null;const o=t.options?.selection;let r;return o&&typeof o.endLineNumber=="number"&&typeof o.endColumn=="number"?r=o:o&&(r={lineNumber:o.startLineNumber,column:o.startColumn}),await i.openCodeEditor(n,t.resource,r)?n:null})}function Sun(){return{create:Udn,getEditors:qdn,getDiffEditors:Kdn,onDidCreateEditor:jdn,onDidCreateDiffEditor:Gdn,createDiffEditor:Jdn,addCommand:Xdn,addEditorAction:Qdn,addKeybindingRule:Zdn,addKeybindingRules:BWe,createModel:eun,setModelLanguage:tun,setModelMarkers:nun,getModelMarkers:sun,removeAllMarkers:iun,onDidChangeMarkers:oun,getModels:aun,getModel:run,onDidCreateModel:lun,onWillDisposeModel:cun,onDidChangeModelLanguage:dun,createWebWorker:uun,colorizeElement:hun,colorize:gun,colorizeModelLine:mun,tokenize:pun,defineTheme:_un,setTheme:bun,remeasureFonts:vun,registerCommand:wun,registerLinkOpener:yun,registerEditorOpener:Cun,AccessibilitySupport:$ee,ContentWidgetPositionPreference:Jee,CursorChangeReason:Yee,DefaultEndOfLine:Xee,EditorAutoIndentStrategy:Zee,EditorOption:ete,EndOfLinePreference:tte,EndOfLineSequence:nte,MinimapPosition:mte,MinimapSectionHeaderStyle:fte,MouseTargetType:pte,OverlayWidgetPositionPreference:vte,OverviewRulerLane:wte,GlyphMarginLane:ite,RenderLineNumbersType:Ste,RenderMinimap:xte,ScrollbarVisibility:Ite,ScrollType:Nte,TextEditorCursorBlinkingStyle:Rte,TextEditorCursorStyle:Mte,TrackedRangeStickiness:Ate,WrappingIndent:Ote,InjectedTextCursorStops:rte,PositionAffinity:Cte,ShowLightbulbIconMode:Lte,TextDirection:Pte,ConfigurationChangedEvent:dFe,BareFontInfo:d1,FontInfo:NV,TextModelResolvedOptions:_4,FindMatch:kR,ApplyUpdateResult:KE,EditorZoom:ah,createMultiFileDiffEditor:Ydn,EditorType:JA,EditorOptions:Vl}}function xun(i,e){if(!e||!Array.isArray(e))return!1;for(const t of e)if(!i(t))return!1;return!0}function e3(i,e){return typeof i=="boolean"?i:e}function GSe(i,e){return typeof i=="string"?i:e}function Nun(i){const e={};for(const t of i)e[t]=!0;return e}function qSe(i,e=!1){e&&(i=i.map(function(n){return n.toLowerCase()}));const t=Nun(i);return e?function(n){return t[n.toLowerCase()]!==void 0&&t.hasOwnProperty(n.toLowerCase())}:function(n){return t[n]!==void 0&&t.hasOwnProperty(n)}}function Mne(i,e,t){e=e.replace(/@@/g,"");let n=0,s;do s=!1,e=e.replace(/@(\w+)/g,function(r,a){s=!0;let l="";if(typeof i[a]=="string")l=i[a];else if(i[a]&&i[a]instanceof RegExp)l=i[a].source;else throw i[a]===void 0?bs(i,"language definition does not contain attribute '"+a+"', used at: "+e):bs(i,"attribute reference '"+a+"' must be a string, used at: "+e);return qC(l)?"":"(?:"+l+")"}),n++;while(s&&n<5);e=e.replace(/\x01/g,"@");const o=(i.ignoreCase?"i":"")+(i.unicode?"u":"");if(t&&e.match(/\$[sS](\d\d?)/g)){let a=null,l=null;return c=>(l&&a===c||(a=c,l=new RegExp(yln(i,e,c),o)),l)}return new RegExp(e,o)}function Iun(i,e,t,n){if(n<0)return i;if(n<e.length)return e[n];if(n>=100){n=n-100;const s=t.split(".");if(s.unshift(t),n<s.length)return s[n]}return null}function kun(i,e,t,n){let s=-1,o=t,r=t.match(/^\$(([sS]?)(\d\d?)|#)(.*)$/);r&&(r[3]&&(s=parseInt(r[3]),r[2]&&(s=s+100)),o=r[4]);let a="~",l=o;!o||o.length===0?(a="!=",l=""):/^\w*$/.test(l)?a="==":(r=o.match(/^(@|!@|~|!~|==|!=)(.*)$/),r&&(a=r[1],l=r[2]));let c;if((a==="~"||a==="!~")&&/^(\w|\|)*$/.test(l)){const d=qSe(l.split("|"),i.ignoreCase);c=function(h){return a==="~"?d(h):!d(h)}}else if(a==="@"||a==="!@"){const d=i[l];if(!d)throw bs(i,"the @ match target '"+l+"' is not defined, in rule: "+e);if(!xun(function(g){return typeof g=="string"},d))throw bs(i,"the @ match target '"+l+"' must be an array of strings, in rule: "+e);const h=qSe(d,i.ignoreCase);c=function(g){return a==="@"?h(g):!h(g)}}else if(a==="~"||a==="!~")if(l.indexOf("$")<0){const d=Mne(i,"^"+l+"$",!1);c=function(h){return a==="~"?d.test(h):!d.test(h)}}else c=function(d,h,g,m){return Mne(i,"^"+Wv(i,l,h,g,m)+"$",!1).test(d)};else if(l.indexOf("$")<0){const d=eb(i,l);c=function(h){return a==="=="?h===d:h!==d}}else{const d=eb(i,l);c=function(h,g,m,f,p){const _=Wv(i,d,g,m,f);return a==="=="?h===_:h!==_}}return s===-1?{name:t,value:n,test:function(d,h,g,m){return c(d,d,h,g,m)}}:{name:t,value:n,test:function(d,h,g,m){const f=Iun(d,h,g,s);return c(f||"",d,h,g,m)}}}function Ane(i,e,t){if(t){if(typeof t=="string")return t;if(t.token||t.token===""){if(typeof t.token!="string")throw bs(i,"a 'token' attribute must be of type string, in rule: "+e);{const n={token:t.token};if(t.token.indexOf("$")>=0&&(n.tokenSubst=!0),typeof t.bracket=="string")if(t.bracket==="@open")n.bracket=1;else if(t.bracket==="@close")n.bracket=-1;else throw bs(i,"a 'bracket' attribute must be either '@open' or '@close', in rule: "+e);if(t.next){if(typeof t.next!="string")throw bs(i,"the next state must be a string value in rule: "+e);{let s=t.next;if(!/^(@pop|@push|@popall)$/.test(s)&&(s[0]==="@"&&(s=s.substr(1)),s.indexOf("$")<0&&!Cln(i,Wv(i,s,"",[],""))))throw bs(i,"the next state '"+t.next+"' is not defined in rule: "+e);n.next=s}}return typeof t.goBack=="number"&&(n.goBack=t.goBack),typeof t.switchTo=="string"&&(n.switchTo=t.switchTo),typeof t.log=="string"&&(n.log=t.log),typeof t.nextEmbedded=="string"&&(n.nextEmbedded=t.nextEmbedded,i.usesEmbedded=!0),n}}else if(Array.isArray(t)){const n=[];for(let s=0,o=t.length;s<o;s++)n[s]=Ane(i,e,t[s]);return{group:n}}else if(t.cases){const n=[];let s=!1;for(const r in t.cases)if(t.cases.hasOwnProperty(r)){const a=Ane(i,e,t.cases[r]);r==="@default"||r==="@"||r===""?n.push({test:void 0,value:a,name:r}):r==="@eos"?n.push({test:function(l,c,d,h){return h},value:a,name:r}):n.push(kun(i,e,r,a)),s||(s=!Fr(a)&&(a.hasEmbeddedEndInCases||["@pop","@popall"].includes(a.nextEmbedded||"")))}const o=i.defaultToken;return{hasEmbeddedEndInCases:s,test:function(r,a,l,c){for(const d of n)if(!d.test||d.test(r,a,l,c))return d.value;return o}}}else throw bs(i,"an action must be a string, an object with a 'token' or 'cases' attribute, or an array of actions; in rule: "+e)}else return{token:""}}class Lun{constructor(e){this.regex=new RegExp(""),this.action={token:""},this.matchOnlyAtLineStart=!1,this.name="",this.name=e}setRegex(e,t){let n;if(typeof t=="string")n=t;else if(t instanceof RegExp)n=t.source;else throw bs(e,"rules must start with a match string or regular expression: "+this.name);this.matchOnlyAtLineStart=n.length>0&&n[0]==="^",this.name=this.name+": "+n,this.regex=Mne(e,"^(?:"+(this.matchOnlyAtLineStart?n.substr(1):n)+")",!0)}setAction(e,t){this.action=Ane(e,this.name,t)}resolveRegex(e){return this.regex instanceof RegExp?this.regex:this.regex(e)}}function VWe(i,e){if(!e||typeof e!="object")throw new Error("Monarch: expecting a language definition object");const t={languageId:i,includeLF:e3(e.includeLF,!1),noThrow:!1,maxStack:100,start:typeof e.start=="string"?e.start:null,ignoreCase:e3(e.ignoreCase,!1),unicode:e3(e.unicode,!1),tokenPostfix:GSe(e.tokenPostfix,"."+i),defaultToken:GSe(e.defaultToken,"source"),usesEmbedded:!1,stateNames:{},tokenizer:{},brackets:[]},n=e;n.languageId=i,n.includeLF=t.includeLF,n.ignoreCase=t.ignoreCase,n.unicode=t.unicode,n.noThrow=t.noThrow,n.usesEmbedded=t.usesEmbedded,n.stateNames=e.tokenizer,n.defaultToken=t.defaultToken;function s(r,a,l){for(const c of l){let d=c.include;if(d){if(typeof d!="string")throw bs(t,"an 'include' attribute must be a string at: "+r);if(d[0]==="@"&&(d=d.substr(1)),!e.tokenizer[d])throw bs(t,"include target '"+d+"' is not defined at: "+r);s(r+"."+d,a,e.tokenizer[d])}else{const h=new Lun(r);if(Array.isArray(c)&&c.length>=1&&c.length<=3)if(h.setRegex(n,c[0]),c.length>=3)if(typeof c[1]=="string")h.setAction(n,{token:c[1],next:c[2]});else if(typeof c[1]=="object"){const g=c[1];g.next=c[2],h.setAction(n,g)}else throw bs(t,"a next state as the last element of a rule can only be given if the action is either an object or a string, at: "+r);else h.setAction(n,c[1]);else{if(!c.regex)throw bs(t,"a rule must either be an array, or an object with a 'regex' or 'include' field at: "+r);c.name&&typeof c.name=="string"&&(h.name=c.name),c.matchOnlyAtStart&&(h.matchOnlyAtLineStart=e3(c.matchOnlyAtLineStart,!1)),h.setRegex(n,c.regex),h.setAction(n,c.action)}a.push(h)}}}if(!e.tokenizer||typeof e.tokenizer!="object")throw bs(t,"a language definition must define the 'tokenizer' attribute as an object");t.tokenizer=[];for(const r in e.tokenizer)if(e.tokenizer.hasOwnProperty(r)){t.start||(t.start=r);const a=e.tokenizer[r];t.tokenizer[r]=new Array,s("tokenizer."+r,t.tokenizer[r],a)}if(t.usesEmbedded=n.usesEmbedded,e.brackets){if(!Array.isArray(e.brackets))throw bs(t,"the 'brackets' attribute must be defined as an array")}else e.brackets=[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}];const o=[];for(const r of e.brackets){let a=r;if(a&&Array.isArray(a)&&a.length===3&&(a={token:a[2],open:a[0],close:a[1]}),a.open===a.close)throw bs(t,"open and close brackets in a 'brackets' attribute must be different: "+a.open+`
1302
- hint: use the 'bracket' attribute if matching on equal brackets is required.`);if(typeof a.open=="string"&&typeof a.token=="string"&&typeof a.close=="string")o.push({token:a.token+t.tokenPostfix,open:eb(t,a.open),close:eb(t,a.close)});else throw bs(t,"every element in the 'brackets' array must be a '{open,close,token}' object or array")}return t.brackets=o,t.noThrow=!0,t}function Dun(i){ik.registerLanguage(i)}function Tun(){let i=[];return i=i.concat(ik.getLanguages()),i}function Eun(i){return Qt.get(mo).languageIdCodec.encodeLanguageId(i)}function Pun(i,e){return Qt.withServices(()=>{const n=Qt.get(mo).onDidRequestRichLanguageFeatures(s=>{s===i&&(n.dispose(),e())});return n})}function Run(i,e){return Qt.withServices(()=>{const n=Qt.get(mo).onDidRequestBasicLanguageFeatures(s=>{s===i&&(n.dispose(),e())});return n})}function Mun(i,e){if(!Qt.get(mo).isRegisteredLanguageId(i))throw new Error(`Cannot set configuration for unknown language ${i}`);return Qt.get(Vs).register(i,e,100)}class Aun{constructor(e,t){this._languageId=e,this._actual=t}dispose(){}getInitialState(){return this._actual.getInitialState()}tokenize(e,t,n){if(typeof this._actual.tokenize=="function")return YM.adaptTokenize(this._languageId,this._actual,e,n);throw new Error("Not supported!")}tokenizeEncoded(e,t,n){const s=this._actual.tokenizeEncoded(e,n);return new eH(s.tokens,s.endState)}}class YM{constructor(e,t,n,s){this._languageId=e,this._actual=t,this._languageService=n,this._standaloneThemeService=s}dispose(){}getInitialState(){return this._actual.getInitialState()}static _toClassicTokens(e,t){const n=[];let s=0;for(let o=0,r=e.length;o<r;o++){const a=e[o];let l=a.startIndex;o===0?l=0:l<s&&(l=s),n[o]=new WR(l,a.scopes,t),s=l}return n}static adaptTokenize(e,t,n,s){const o=t.tokenize(n,s),r=YM._toClassicTokens(o.tokens,e);let a;return o.endState.equals(s)?a=s:a=o.endState,new Qre(r,a)}tokenize(e,t,n){return YM.adaptTokenize(this._languageId,this._actual,e,n)}_toBinaryTokens(e,t){const n=e.encodeLanguageId(this._languageId),s=this._standaloneThemeService.getColorTheme().tokenTheme,o=[];let r=0,a=0;for(let c=0,d=t.length;c<d;c++){const h=t[c],g=s.match(n,h.scopes)|1024;if(r>0&&o[r-1]===g)continue;let m=h.startIndex;c===0?m=0:m<a&&(m=a),o[r++]=m,o[r++]=g,a=m}const l=new Uint32Array(r);for(let c=0;c<r;c++)l[c]=o[c];return l}tokenizeEncoded(e,t,n){const s=this._actual.tokenize(e,n),o=this._toBinaryTokens(this._languageService.languageIdCodec,s.tokens);let r;return s.endState.equals(n)?r=n:r=s.endState,new eH(o,r)}}function Oun(i){return typeof i.getInitialState=="function"}function Fun(i){return"tokenizeEncoded"in i}function zWe(i){return i&&typeof i.then=="function"}function Bun(i){const e=Qt.get(Ou);if(i){const t=[null];for(let n=1,s=i.length;n<s;n++)t[n]=De.fromHex(i[n]);e.setColorMapOverride(t)}else e.setColorMapOverride(null)}function WWe(i,e){return Fun(e)?new Aun(i,e):new YM(i,e,Qt.get(mo),Qt.get(Ou))}function mde(i,e){const t=new Pzt(async()=>{const n=await Promise.resolve(e.create());return n?Oun(n)?WWe(i,n):new $M(Qt.get(mo),Qt.get(Ou),i,VWe(i,n),Qt.get(ln)):null});return oo.registerFactory(i,t)}function Vun(i,e){if(!Qt.get(mo).isRegisteredLanguageId(i))throw new Error(`Cannot set tokens provider for unknown language ${i}`);return zWe(e)?mde(i,{create:()=>e}):oo.register(i,WWe(i,e))}function zun(i,e){const t=n=>new $M(Qt.get(mo),Qt.get(Ou),i,VWe(i,n),Qt.get(ln));return zWe(e)?mde(i,{create:()=>e}):oo.register(i,t(e))}function Wun(i,e){return Qt.get(_t).referenceProvider.register(i,e)}function Hun(i,e){return Qt.get(_t).renameProvider.register(i,e)}function $un(i,e){return Qt.get(_t).newSymbolNamesProvider.register(i,e)}function Uun(i,e){return Qt.get(_t).signatureHelpProvider.register(i,e)}function jun(i,e){return Qt.get(_t).hoverProvider.register(i,{provideHover:async(n,s,o,r)=>{const a=n.getWordAtPosition(s);return Promise.resolve(e.provideHover(n,s,o,r)).then(l=>{if(l)return!l.range&&a&&(l.range=new j(s.lineNumber,a.startColumn,s.lineNumber,a.endColumn)),l.range||(l.range=new j(s.lineNumber,s.column,s.lineNumber,s.column)),l})}})}function Gun(i,e){return Qt.get(_t).documentSymbolProvider.register(i,e)}function qun(i,e){return Qt.get(_t).documentHighlightProvider.register(i,e)}function Kun(i,e){return Qt.get(_t).linkedEditingRangeProvider.register(i,e)}function Jun(i,e){return Qt.get(_t).definitionProvider.register(i,e)}function Yun(i,e){return Qt.get(_t).implementationProvider.register(i,e)}function Xun(i,e){return Qt.get(_t).typeDefinitionProvider.register(i,e)}function Qun(i,e){return Qt.get(_t).codeLensProvider.register(i,e)}function Zun(i,e,t){return Qt.get(_t).codeActionProvider.register(i,{providedCodeActionKinds:t?.providedCodeActionKinds,documentation:t?.documentation,provideCodeActions:(s,o,r,a)=>{const c=Qt.get(Dp).read({resource:s.uri}).filter(d=>j.areIntersectingOrTouching(d,o));return e.provideCodeActions(s,o,{markers:c,only:r.only,trigger:r.trigger},a)},resolveCodeAction:e.resolveCodeAction})}function ehn(i,e){return Qt.get(_t).documentFormattingEditProvider.register(i,e)}function thn(i,e){return Qt.get(_t).documentRangeFormattingEditProvider.register(i,e)}function nhn(i,e){return Qt.get(_t).onTypeFormattingEditProvider.register(i,e)}function ihn(i,e){return Qt.get(_t).linkProvider.register(i,e)}function shn(i,e){return Qt.get(_t).completionProvider.register(i,e)}function ohn(i,e){return Qt.get(_t).colorProvider.register(i,e)}function rhn(i,e){return Qt.get(_t).foldingRangeProvider.register(i,e)}function ahn(i,e){return Qt.get(_t).declarationProvider.register(i,e)}function lhn(i,e){return Qt.get(_t).selectionRangeProvider.register(i,e)}function chn(i,e){return Qt.get(_t).documentSemanticTokensProvider.register(i,e)}function dhn(i,e){return Qt.get(_t).documentRangeSemanticTokensProvider.register(i,e)}function uhn(i,e){return Qt.get(_t).inlineCompletionsProvider.register(i,e)}function hhn(i,e){return Qt.get(_t).inlayHintsProvider.register(i,e)}function ghn(){return{register:Dun,getLanguages:Tun,onLanguage:Pun,onLanguageEncountered:Run,getEncodedLanguageId:Eun,setLanguageConfiguration:Mun,setColorMap:Bun,registerTokensProviderFactory:mde,setTokensProvider:Vun,setMonarchTokensProvider:zun,registerReferenceProvider:Wun,registerRenameProvider:Hun,registerNewSymbolNameProvider:$un,registerCompletionItemProvider:shn,registerSignatureHelpProvider:Uun,registerHoverProvider:jun,registerDocumentSymbolProvider:Gun,registerDocumentHighlightProvider:qun,registerLinkedEditingRangeProvider:Kun,registerDefinitionProvider:Jun,registerImplementationProvider:Yun,registerTypeDefinitionProvider:Xun,registerCodeLensProvider:Qun,registerCodeActionProvider:Zun,registerDocumentFormattingEditProvider:ehn,registerDocumentRangeFormattingEditProvider:thn,registerOnTypeFormattingEditProvider:nhn,registerLinkProvider:ihn,registerColorProvider:ohn,registerFoldingRangeProvider:rhn,registerDeclarationProvider:ahn,registerSelectionRangeProvider:lhn,registerDocumentSemanticTokensProvider:chn,registerDocumentRangeSemanticTokensProvider:dhn,registerInlineCompletionsProvider:uhn,registerInlayHintsProvider:hhn,DocumentHighlightKind:Qee,CompletionItemKind:Gee,CompletionItemTag:qee,CompletionItemInsertTextRule:jee,SymbolKind:Tte,SymbolTag:Ete,IndentAction:ote,CompletionTriggerKind:Kee,SignatureHelpTriggerKind:Dte,InlayHintKind:ate,InlineCompletionTriggerKind:dte,CodeActionTriggerType:Uee,NewSymbolNameTag:_te,NewSymbolNameTriggerKind:bte,PartialAcceptTriggerKind:yte,HoverVerbosityAction:ste,InlineCompletionEndOfLifeReasonKind:lte,InlineCompletionHintStyle:cte,FoldingRangeKind:Q1,SelectedSuggestionInfo:m5e,EditDeltaInfo:ZR}}Vl.wrappingIndent.defaultValue=0;Vl.glyphMargin.defaultValue=!1;Vl.autoIndent.defaultValue=3;Vl.overviewRulerLanes.defaultValue=2;Lk.setFormatterSelector((i,e,t)=>Promise.resolve(i[0]));const Ic=mWe();Ic.editor=Sun();Ic.languages=ghn();const HWe=Ic.CancellationTokenSource,Qw=Ic.Emitter,$We=Ic.KeyCode,UWe=Ic.KeyMod,Fb=Ic.Position,AL=Ic.Range,jWe=Ic.Selection,GWe=Ic.SelectionDirection,pg=Ic.MarkerSeverity,VW=Ic.MarkerTag,h7=Ic.Uri,qWe=Ic.Token,op=Ic.editor,pt=Ic.languages,mhn=Moe(),DI=globalThis;(mhn?.globalAPI||typeof DI.define=="function"&&DI.define.amd)&&(DI.monaco=Ic);typeof DI.require<"u"&&typeof DI.require.config=="function"&&DI.require.config({ignoreDuplicateModules:["vscode-languageserver-types","vscode-languageserver-types/main","vscode-languageserver-textdocument","vscode-languageserver-textdocument/main","vscode-nls","vscode-nls/vscode-nls","jsonc-parser","jsonc-parser/main","vscode-uri","vscode-uri/index","vs/basic-languages/typescript/typescript"]});const fhn=Object.freeze(Object.defineProperty({__proto__:null,CancellationTokenSource:HWe,Emitter:Qw,KeyCode:$We,KeyMod:UWe,MarkerSeverity:pg,MarkerTag:VW,Position:Fb,Range:AL,Selection:jWe,SelectionDirection:GWe,Token:qWe,Uri:h7,editor:op,languages:pt},Symbol.toStringTag,{value:"Module"}));let fde=class{constructor(e,t,n){this._onDidChange=new Qw,this._languageId=e,this.setOptions(t),this.setModeConfiguration(n)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this.options}get options(){return this._options}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setDiagnosticsOptions(e){this.setOptions(e)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}};const pde={validate:!0,lint:{compatibleVendorPrefixes:"ignore",vendorPrefix:"warning",duplicateProperties:"warning",emptyRules:"warning",importStatement:"ignore",boxModel:"ignore",universalSelector:"ignore",zeroUnits:"ignore",fontFaceProperties:"warning",hexColorLength:"error",argumentsInColorFunction:"error",unknownProperties:"warning",ieHack:"ignore",unknownVendorSpecificProperties:"ignore",propertyIgnoredDueToDisplay:"warning",important:"ignore",float:"ignore",idSelector:"ignore"},data:{useDefaultDataProvider:!0},format:{newlineBetweenSelectors:!0,newlineBetweenRules:!0,spaceAroundSelectorSeparator:!1,braceStyle:"collapse",maxPreserveNewLines:void 0,preserveNewLines:!0}},_de={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0,documentFormattingEdits:!0,documentRangeFormattingEdits:!0},KWe=new fde("css",pde,_de),JWe=new fde("scss",pde,_de),YWe=new fde("less",pde,_de);function bde(){return Nt(()=>import("./cssMode.B3O3EHHV.js"),__vite__mapDeps([9,10]))}pt.onLanguage("less",()=>{bde().then(i=>i.setupMode(YWe))});pt.onLanguage("scss",()=>{bde().then(i=>i.setupMode(JWe))});pt.onLanguage("css",()=>{bde().then(i=>i.setupMode(KWe))});const XWe=Object.freeze(Object.defineProperty({__proto__:null,cssDefaults:KWe,lessDefaults:YWe,scssDefaults:JWe},Symbol.toStringTag,{value:"Module"}));let phn=class{constructor(e,t,n){this._onDidChange=new Qw,this._languageId=e,this.setOptions(t),this.setModeConfiguration(n)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get options(){return this._options}get modeConfiguration(){return this._modeConfiguration}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}};const _hn={tabSize:4,insertSpaces:!1,wrapLineLength:120,unformatted:'default": "a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var',contentUnformatted:"pre",indentInnerHtml:!1,preserveNewLines:!0,maxPreserveNewLines:void 0,indentHandlebars:!1,endWithNewline:!1,extraLiners:"head, body, /html",wrapAttributes:"auto"},g7={format:_hn,suggest:{},data:{useDefaultDataProvider:!0}};function m7(i){return{completionItems:!0,hovers:!0,documentSymbols:!0,links:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,selectionRanges:!0,diagnostics:i===VP,documentFormattingEdits:i===VP,documentRangeFormattingEdits:i===VP}}const VP="html",KSe="handlebars",JSe="razor",QWe=f7(VP,g7,m7(VP)),bhn=QWe.defaults,ZWe=f7(KSe,g7,m7(KSe)),vhn=ZWe.defaults,e9e=f7(JSe,g7,m7(JSe)),whn=e9e.defaults;function yhn(){return Nt(()=>import("./htmlMode.D_DKfjnb.js"),__vite__mapDeps([11,10]))}function f7(i,e=g7,t=m7(i)){const n=new phn(i,e,t);let s;const o=pt.onLanguage(i,async()=>{s=(await yhn()).setupMode(n)});return{defaults:n,dispose(){o.dispose(),s?.dispose(),s=void 0}}}const t9e=Object.freeze(Object.defineProperty({__proto__:null,handlebarDefaults:vhn,handlebarLanguageService:ZWe,htmlDefaults:bhn,htmlLanguageService:QWe,razorDefaults:whn,razorLanguageService:e9e,registerHTMLLanguageService:f7},Symbol.toStringTag,{value:"Module"}));let Chn=class{constructor(e,t,n){this._onDidChange=new Qw,this._languageId=e,this.setDiagnosticsOptions(t),this.setModeConfiguration(n)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}};const Shn={validate:!0,allowComments:!0,schemas:[],enableSchemaRequest:!1,schemaRequest:"warning",schemaValidation:"warning",comments:"error",trailingCommas:"error"},xhn={documentFormattingEdits:!0,documentRangeFormattingEdits:!0,completionItems:!0,hovers:!0,documentSymbols:!0,tokens:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0},n9e=new Chn("json",Shn,xhn),Nhn=()=>i9e().then(i=>i.getWorker());function i9e(){return Nt(()=>import("./jsonMode.DwDuvek5.js"),__vite__mapDeps([12,10]))}pt.register({id:"json",extensions:[".json",".bowerrc",".jshintrc",".jscsrc",".eslintrc",".babelrc",".har"],aliases:["JSON","json"],mimetypes:["application/json"]});pt.onLanguage("json",()=>{i9e().then(i=>i.setupMode(n9e))});const s9e=Object.freeze(Object.defineProperty({__proto__:null,getWorker:Nhn,jsonDefaults:n9e},Symbol.toStringTag,{value:"Module"})),Ihn="5.9.3";var o9e=(i=>(i[i.None=0]="None",i[i.CommonJS=1]="CommonJS",i[i.AMD=2]="AMD",i[i.UMD=3]="UMD",i[i.System=4]="System",i[i.ES2015=5]="ES2015",i[i.ESNext=99]="ESNext",i))(o9e||{}),r9e=(i=>(i[i.None=0]="None",i[i.Preserve=1]="Preserve",i[i.React=2]="React",i[i.ReactNative=3]="ReactNative",i[i.ReactJSX=4]="ReactJSX",i[i.ReactJSXDev=5]="ReactJSXDev",i))(r9e||{}),a9e=(i=>(i[i.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",i[i.LineFeed=1]="LineFeed",i))(a9e||{}),l9e=(i=>(i[i.ES3=0]="ES3",i[i.ES5=1]="ES5",i[i.ES2015=2]="ES2015",i[i.ES2016=3]="ES2016",i[i.ES2017=4]="ES2017",i[i.ES2018=5]="ES2018",i[i.ES2019=6]="ES2019",i[i.ES2020=7]="ES2020",i[i.ESNext=99]="ESNext",i[i.JSON=100]="JSON",i[i.Latest=99]="Latest",i))(l9e||{}),c9e=(i=>(i[i.Classic=1]="Classic",i[i.NodeJs=2]="NodeJs",i))(c9e||{});class d9e{constructor(e,t,n,s,o){this._onDidChange=new Qw,this._onDidExtraLibsChange=new Qw,this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(e),this.setDiagnosticsOptions(t),this.setWorkerOptions(n),this.setInlayHintsOptions(s),this.setModeConfiguration(o),this._onDidExtraLibsChangeTimeout=-1}get onDidChange(){return this._onDidChange.event}get onDidExtraLibsChange(){return this._onDidExtraLibsChange.event}get modeConfiguration(){return this._modeConfiguration}get workerOptions(){return this._workerOptions}get inlayHintsOptions(){return this._inlayHintsOptions}getExtraLibs(){return this._extraLibs}addExtraLib(e,t){let n;if(typeof t>"u"?n=`ts:extralib-${Math.random().toString(36).substring(2,15)}`:n=t,this._extraLibs[n]&&this._extraLibs[n].content===e)return{dispose:()=>{}};let s=1;return this._removedExtraLibs[n]&&(s=this._removedExtraLibs[n]+1),this._extraLibs[n]&&(s=this._extraLibs[n].version+1),this._extraLibs[n]={content:e,version:s},this._fireOnDidExtraLibsChangeSoon(),{dispose:()=>{let o=this._extraLibs[n];o&&o.version===s&&(delete this._extraLibs[n],this._removedExtraLibs[n]=s,this._fireOnDidExtraLibsChangeSoon())}}}setExtraLibs(e){for(const t in this._extraLibs)this._removedExtraLibs[t]=this._extraLibs[t].version;if(this._extraLibs=Object.create(null),e&&e.length>0)for(const t of e){const n=t.filePath||`ts:extralib-${Math.random().toString(36).substring(2,15)}`,s=t.content;let o=1;this._removedExtraLibs[n]&&(o=this._removedExtraLibs[n]+1),this._extraLibs[n]={content:s,version:o}}this._fireOnDidExtraLibsChangeSoon()}_fireOnDidExtraLibsChangeSoon(){this._onDidExtraLibsChangeTimeout===-1&&(this._onDidExtraLibsChangeTimeout=window.setTimeout(()=>{this._onDidExtraLibsChangeTimeout=-1,this._onDidExtraLibsChange.fire(void 0)},0))}getCompilerOptions(){return this._compilerOptions}setCompilerOptions(e){this._compilerOptions=e||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(e){this._workerOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(e){this._inlayHintsOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(e){}setEagerModelSync(e){this._eagerModelSync=e}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(void 0)}}const khn=Ihn,u9e={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,diagnostics:!0,documentRangeFormattingEdits:!0,signatureHelp:!0,onTypeFormattingEdits:!0,codeActions:!0,inlayHints:!0},h9e=new d9e({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},u9e),g9e=new d9e({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},u9e),Lhn=()=>p7().then(i=>i.getTypeScriptWorker()),Dhn=()=>p7().then(i=>i.getJavaScriptWorker());function p7(){return Nt(()=>import("./tsMode.Bl8SKtb1.js"),[])}pt.onLanguage("typescript",()=>p7().then(i=>i.setupTypeScript(h9e)));pt.onLanguage("javascript",()=>p7().then(i=>i.setupJavaScript(g9e)));const m9e=Object.freeze(Object.defineProperty({__proto__:null,JsxEmit:r9e,ModuleKind:o9e,ModuleResolutionKind:c9e,NewLineKind:a9e,ScriptTarget:l9e,getJavaScriptWorker:Dhn,getTypeScriptWorker:Lhn,javascriptDefaults:g9e,typescriptDefaults:h9e,typescriptVersion:khn},Symbol.toStringTag,{value:"Module"})),f9e={},rq={};class vde{static getOrCreate(e){return rq[e]||(rq[e]=new vde(e)),rq[e]}constructor(e){this._languageId=e,this._loadingTriggered=!1,this._lazyLoadPromise=new Promise((t,n)=>{this._lazyLoadPromiseResolve=t,this._lazyLoadPromiseReject=n})}load(){return this._loadingTriggered||(this._loadingTriggered=!0,f9e[this._languageId].loader().then(e=>this._lazyLoadPromiseResolve(e),e=>this._lazyLoadPromiseReject(e))),this._lazyLoadPromise}}function Vt(i){const e=i.id;f9e[e]=i,pt.register(i);const t=vde.getOrCreate(e);pt.registerTokensProviderFactory(e,{create:async()=>(await t.load()).language}),pt.onLanguageEncountered(e,async()=>{const n=await t.load();pt.setLanguageConfiguration(e,n.conf)})}Vt({id:"abap",extensions:[".abap"],aliases:["abap","ABAP"],loader:()=>Nt(()=>import("./abap.DLDM7-KI.js"),[])});Vt({id:"apex",extensions:[".cls"],aliases:["Apex","apex"],mimetypes:["text/x-apex-source","text/x-apex"],loader:()=>Nt(()=>import("./apex.DNDY2TF8.js"),[])});Vt({id:"azcli",extensions:[".azcli"],aliases:["Azure CLI","azcli"],loader:()=>Nt(()=>import("./azcli.Y6nb8tq_.js"),[])});Vt({id:"bat",extensions:[".bat",".cmd"],aliases:["Batch","bat"],loader:()=>Nt(()=>import("./bat.BwHxbl9M.js"),[])});Vt({id:"bicep",extensions:[".bicep"],aliases:["Bicep"],loader:()=>Nt(()=>import("./bicep.CFznDFnq.js"),[])});Vt({id:"cameligo",extensions:[".mligo"],aliases:["Cameligo"],loader:()=>Nt(()=>import("./cameligo.Bf6VGUru.js"),[])});Vt({id:"clojure",extensions:[".clj",".cljs",".cljc",".edn"],aliases:["clojure","Clojure"],loader:()=>Nt(()=>import("./clojure.Dnu-v4kV.js"),[])});Vt({id:"coffeescript",extensions:[".coffee"],aliases:["CoffeeScript","coffeescript","coffee"],mimetypes:["text/x-coffeescript","text/coffeescript"],loader:()=>Nt(()=>import("./coffee.Bd8akH9Z.js"),[])});Vt({id:"c",extensions:[".c",".h"],aliases:["C","c"],loader:()=>Nt(()=>import("./cpp.BbWJElDN.js"),[])});Vt({id:"cpp",extensions:[".cpp",".cc",".cxx",".hpp",".hh",".hxx"],aliases:["C++","Cpp","cpp"],loader:()=>Nt(()=>import("./cpp.BbWJElDN.js"),[])});Vt({id:"csharp",extensions:[".cs",".csx",".cake"],aliases:["C#","csharp"],loader:()=>Nt(()=>import("./csharp.Co3qMtFm.js"),[])});Vt({id:"csp",extensions:[".csp"],aliases:["CSP","csp"],loader:()=>Nt(()=>import("./csp.D-4FJmMZ.js"),[])});Vt({id:"css",extensions:[".css"],aliases:["CSS","css"],mimetypes:["text/css"],loader:()=>Nt(()=>import("./css.DdJfP1eB.js"),[])});Vt({id:"cypher",extensions:[".cypher",".cyp"],aliases:["Cypher","OpenCypher"],loader:()=>Nt(()=>import("./cypher.cTPe9QuQ.js"),[])});Vt({id:"dart",extensions:[".dart"],aliases:["Dart","dart"],mimetypes:["text/x-dart-source","text/x-dart"],loader:()=>Nt(()=>import("./dart.BOtBlQCF.js"),[])});Vt({id:"dockerfile",extensions:[".dockerfile"],filenames:["Dockerfile"],aliases:["Dockerfile"],loader:()=>Nt(()=>import("./dockerfile.BG73LgW2.js"),[])});Vt({id:"ecl",extensions:[".ecl"],aliases:["ECL","Ecl","ecl"],loader:()=>Nt(()=>import("./ecl.BEgZUVRK.js"),[])});Vt({id:"elixir",extensions:[".ex",".exs"],aliases:["Elixir","elixir","ex"],loader:()=>Nt(()=>import("./elixir.BkW5O-1t.js"),[])});Vt({id:"flow9",extensions:[".flow"],aliases:["Flow9","Flow","flow9","flow"],loader:()=>Nt(()=>import("./flow9.BeJ5waoc.js"),[])});Vt({id:"fsharp",extensions:[".fs",".fsi",".ml",".mli",".fsx",".fsscript"],aliases:["F#","FSharp","fsharp"],loader:()=>Nt(()=>import("./fsharp.PahG7c26.js"),[])});Vt({id:"freemarker2",extensions:[".ftl",".ftlh",".ftlx"],aliases:["FreeMarker2","Apache FreeMarker2"],loader:()=>Nt(()=>import("./freemarker2.SLoPG-42.js"),[]).then(i=>i.TagAutoInterpolationDollar)});Vt({id:"freemarker2.tag-angle.interpolation-dollar",aliases:["FreeMarker2 (Angle/Dollar)","Apache FreeMarker2 (Angle/Dollar)"],loader:()=>Nt(()=>import("./freemarker2.SLoPG-42.js"),[]).then(i=>i.TagAngleInterpolationDollar)});Vt({id:"freemarker2.tag-bracket.interpolation-dollar",aliases:["FreeMarker2 (Bracket/Dollar)","Apache FreeMarker2 (Bracket/Dollar)"],loader:()=>Nt(()=>import("./freemarker2.SLoPG-42.js"),[]).then(i=>i.TagBracketInterpolationDollar)});Vt({id:"freemarker2.tag-angle.interpolation-bracket",aliases:["FreeMarker2 (Angle/Bracket)","Apache FreeMarker2 (Angle/Bracket)"],loader:()=>Nt(()=>import("./freemarker2.SLoPG-42.js"),[]).then(i=>i.TagAngleInterpolationBracket)});Vt({id:"freemarker2.tag-bracket.interpolation-bracket",aliases:["FreeMarker2 (Bracket/Bracket)","Apache FreeMarker2 (Bracket/Bracket)"],loader:()=>Nt(()=>import("./freemarker2.SLoPG-42.js"),[]).then(i=>i.TagBracketInterpolationBracket)});Vt({id:"freemarker2.tag-auto.interpolation-dollar",aliases:["FreeMarker2 (Auto/Dollar)","Apache FreeMarker2 (Auto/Dollar)"],loader:()=>Nt(()=>import("./freemarker2.SLoPG-42.js"),[]).then(i=>i.TagAutoInterpolationDollar)});Vt({id:"freemarker2.tag-auto.interpolation-bracket",aliases:["FreeMarker2 (Auto/Bracket)","Apache FreeMarker2 (Auto/Bracket)"],loader:()=>Nt(()=>import("./freemarker2.SLoPG-42.js"),[]).then(i=>i.TagAutoInterpolationBracket)});Vt({id:"go",extensions:[".go"],aliases:["Go"],loader:()=>Nt(()=>import("./go.acbASCJo.js"),[])});Vt({id:"graphql",extensions:[".graphql",".gql"],aliases:["GraphQL","graphql","gql"],mimetypes:["application/graphql"],loader:()=>Nt(()=>import("./graphql.BxJiqAUM.js"),[])});Vt({id:"handlebars",extensions:[".handlebars",".hbs"],aliases:["Handlebars","handlebars","hbs"],mimetypes:["text/x-handlebars-template"],loader:()=>Nt(()=>import("./handlebars.Bw7UeM7Q.js"),[])});Vt({id:"hcl",extensions:[".tf",".tfvars",".hcl"],aliases:["Terraform","tf","HCL","hcl"],loader:()=>Nt(()=>import("./hcl.DtV1sZF8.js"),[])});Vt({id:"html",extensions:[".html",".htm",".shtml",".xhtml",".mdoc",".jsp",".asp",".aspx",".jshtm"],aliases:["HTML","htm","html","xhtml"],mimetypes:["text/html","text/x-jshtm","text/template","text/ng-template"],loader:()=>Nt(()=>import("./html.BLGaH9UJ.js"),[])});Vt({id:"ini",extensions:[".ini",".properties",".gitconfig"],filenames:["config",".gitattributes",".gitconfig",".editorconfig"],aliases:["Ini","ini"],loader:()=>Nt(()=>import("./ini.Kd9XrMLS.js"),[])});Vt({id:"java",extensions:[".java",".jav"],aliases:["Java","java"],mimetypes:["text/x-java-source","text/x-java"],loader:()=>Nt(()=>import("./java.CXBNlu9o.js"),[])});Vt({id:"javascript",extensions:[".js",".es6",".jsx",".mjs",".cjs"],firstLine:"^#!.*\\bnode",filenames:["jakefile"],aliases:["JavaScript","javascript","js"],mimetypes:["text/javascript"],loader:()=>Nt(()=>import("./javascript.BypgWra0.js"),__vite__mapDeps([13,14]))});Vt({id:"julia",extensions:[".jl"],aliases:["julia","Julia"],loader:()=>Nt(()=>import("./julia.cl7-CwDS.js"),[])});Vt({id:"kotlin",extensions:[".kt",".kts"],aliases:["Kotlin","kotlin"],mimetypes:["text/x-kotlin-source","text/x-kotlin"],loader:()=>Nt(()=>import("./kotlin.s7OhZKlX.js"),[])});Vt({id:"less",extensions:[".less"],aliases:["Less","less"],mimetypes:["text/x-less","text/less"],loader:()=>Nt(()=>import("./less.9HpZscsL.js"),[])});Vt({id:"lexon",extensions:[".lex"],aliases:["Lexon"],loader:()=>Nt(()=>import("./lexon.OrD6JF1K.js"),[])});Vt({id:"lua",extensions:[".lua"],aliases:["Lua","lua"],loader:()=>Nt(()=>import("./lua.Cyyb5UIc.js"),[])});Vt({id:"liquid",extensions:[".liquid",".html.liquid"],aliases:["Liquid","liquid"],mimetypes:["application/liquid"],loader:()=>Nt(()=>import("./liquid.tvwllbwC.js"),[])});Vt({id:"m3",extensions:[".m3",".i3",".mg",".ig"],aliases:["Modula-3","Modula3","modula3","m3"],loader:()=>Nt(()=>import("./m3.B8OfTtLu.js"),[])});Vt({id:"markdown",extensions:[".md",".markdown",".mdown",".mkdn",".mkd",".mdwn",".mdtxt",".mdtext"],aliases:["Markdown","markdown"],loader:()=>Nt(()=>import("./markdown.BFxVWTOG.js"),[])});Vt({id:"mdx",extensions:[".mdx"],aliases:["MDX","mdx"],loader:()=>Nt(()=>import("./mdx.Bo7t9wfV.js"),[])});Vt({id:"mips",extensions:[".s"],aliases:["MIPS","MIPS-V"],mimetypes:["text/x-mips","text/mips","text/plaintext"],loader:()=>Nt(()=>import("./mips.CiqrrVzr.js"),[])});Vt({id:"msdax",extensions:[".dax",".msdax"],aliases:["DAX","MSDAX"],loader:()=>Nt(()=>import("./msdax.DmeGPVcC.js"),[])});Vt({id:"mysql",extensions:[],aliases:["MySQL","mysql"],loader:()=>Nt(()=>import("./mysql.C_tMU-Nz.js"),[])});Vt({id:"objective-c",extensions:[".m"],aliases:["Objective-C"],loader:()=>Nt(()=>import("./objective-c.BDtDVThU.js"),[])});Vt({id:"pascal",extensions:[".pas",".p",".pp"],aliases:["Pascal","pas"],mimetypes:["text/x-pascal-source","text/x-pascal"],loader:()=>Nt(()=>import("./pascal.vHIfCaH5.js"),[])});Vt({id:"pascaligo",extensions:[".ligo"],aliases:["Pascaligo","ligo"],loader:()=>Nt(()=>import("./pascaligo.DtZ0uQbO.js"),[])});Vt({id:"perl",extensions:[".pl",".pm"],aliases:["Perl","pl"],loader:()=>Nt(()=>import("./perl.Ub6l9XKa.js"),[])});Vt({id:"pgsql",extensions:[],aliases:["PostgreSQL","postgres","pg","postgre"],loader:()=>Nt(()=>import("./pgsql.BlNEE0v7.js"),[])});Vt({id:"php",extensions:[".php",".php4",".php5",".phtml",".ctp"],aliases:["PHP","php"],mimetypes:["application/x-php"],loader:()=>Nt(()=>import("./php.BBUBE1dy.js"),[])});Vt({id:"pla",extensions:[".pla"],loader:()=>Nt(()=>import("./pla.DSh2-awV.js"),[])});Vt({id:"postiats",extensions:[".dats",".sats",".hats"],aliases:["ATS","ATS/Postiats"],loader:()=>Nt(()=>import("./postiats.CocnycG-.js"),[])});Vt({id:"powerquery",extensions:[".pq",".pqm"],aliases:["PQ","M","Power Query","Power Query M"],loader:()=>Nt(()=>import("./powerquery.tScXyioY.js"),[])});Vt({id:"powershell",extensions:[".ps1",".psm1",".psd1"],aliases:["PowerShell","powershell","ps","ps1"],loader:()=>Nt(()=>import("./powershell.COWaemsV.js"),[])});Vt({id:"proto",extensions:[".proto"],aliases:["protobuf","Protocol Buffers"],loader:()=>Nt(()=>import("./protobuf.Brw8urJB.js"),[])});Vt({id:"pug",extensions:[".jade",".pug"],aliases:["Pug","Jade","jade"],loader:()=>Nt(()=>import("./pug.8SOpv6rk.js"),[])});Vt({id:"python",extensions:[".py",".rpy",".pyw",".cpy",".gyp",".gypi"],aliases:["Python","py"],firstLine:"^#!/.*\\bpython[0-9.-]*\\b",loader:()=>Nt(()=>import("./python.DgjrCs78.js"),[])});Vt({id:"qsharp",extensions:[".qs"],aliases:["Q#","qsharp"],loader:()=>Nt(()=>import("./qsharp.Bw9ernYp.js"),[])});Vt({id:"r",extensions:[".r",".rhistory",".rmd",".rprofile",".rt"],aliases:["R","r"],loader:()=>Nt(()=>import("./r.j7ic8hl3.js"),[])});Vt({id:"razor",extensions:[".cshtml"],aliases:["Razor","razor"],mimetypes:["text/x-cshtml"],loader:()=>Nt(()=>import("./razor.MFrhR2kM.js"),[])});Vt({id:"redis",extensions:[".redis"],aliases:["redis"],loader:()=>Nt(()=>import("./redis.Bu5POkcn.js"),[])});Vt({id:"redshift",extensions:[],aliases:["Redshift","redshift"],loader:()=>Nt(()=>import("./redshift.Bs9aos_-.js"),[])});Vt({id:"restructuredtext",extensions:[".rst"],aliases:["reStructuredText","restructuredtext"],loader:()=>Nt(()=>import("./restructuredtext.CqXO7rUv.js"),[])});Vt({id:"ruby",extensions:[".rb",".rbx",".rjs",".gemspec",".pp"],filenames:["rakefile","Gemfile"],aliases:["Ruby","rb"],loader:()=>Nt(()=>import("./ruby.zBfavPgS.js"),[])});Vt({id:"rust",extensions:[".rs",".rlib"],aliases:["Rust","rust"],loader:()=>Nt(()=>import("./rust.BzKRNQWT.js"),[])});Vt({id:"sb",extensions:[".sb"],aliases:["Small Basic","sb"],loader:()=>Nt(()=>import("./sb.BBc9UKZt.js"),[])});Vt({id:"scala",extensions:[".scala",".sc",".sbt"],aliases:["Scala","scala","SBT","Sbt","sbt","Dotty","dotty"],mimetypes:["text/x-scala-source","text/x-scala","text/x-sbt","text/x-dotty"],loader:()=>Nt(()=>import("./scala.D9hQfWCl.js"),[])});Vt({id:"scheme",extensions:[".scm",".ss",".sch",".rkt"],aliases:["scheme","Scheme"],loader:()=>Nt(()=>import("./scheme.BPhDTwHR.js"),[])});Vt({id:"scss",extensions:[".scss"],aliases:["Sass","sass","scss"],mimetypes:["text/x-scss","text/scss"],loader:()=>Nt(()=>import("./scss.CBJaRo0y.js"),[])});Vt({id:"shell",extensions:[".sh",".bash"],aliases:["Shell","sh"],loader:()=>Nt(()=>import("./shell.DiJ1NA_G.js"),[])});Vt({id:"sol",extensions:[".sol"],aliases:["sol","solidity","Solidity"],loader:()=>Nt(()=>import("./solidity.Db0IVjzk.js"),[])});Vt({id:"aes",extensions:[".aes"],aliases:["aes","sophia","Sophia"],loader:()=>Nt(()=>import("./sophia.CnS9iZB_.js"),[])});Vt({id:"sparql",extensions:[".rq"],aliases:["sparql","SPARQL"],loader:()=>Nt(()=>import("./sparql.CJmd_6j2.js"),[])});Vt({id:"sql",extensions:[".sql"],aliases:["SQL"],loader:()=>Nt(()=>import("./sql.ClhHkBeG.js"),[])});Vt({id:"st",extensions:[".st",".iecst",".iecplc",".lc3lib",".TcPOU",".TcDUT",".TcGVL",".TcIO"],aliases:["StructuredText","scl","stl"],loader:()=>Nt(()=>import("./st.CHwy0fLd.js"),[])});Vt({id:"swift",aliases:["Swift","swift"],extensions:[".swift"],mimetypes:["text/swift"],loader:()=>Nt(()=>import("./swift.Bqt4WxQ4.js"),[])});Vt({id:"systemverilog",extensions:[".sv",".svh"],aliases:["SV","sv","SystemVerilog","systemverilog"],loader:()=>Nt(()=>import("./systemverilog.Bs9z6M-B.js"),[])});Vt({id:"verilog",extensions:[".v",".vh"],aliases:["V","v","Verilog","verilog"],loader:()=>Nt(()=>import("./systemverilog.Bs9z6M-B.js"),[])});Vt({id:"tcl",extensions:[".tcl"],aliases:["tcl","Tcl","tcltk","TclTk","tcl/tk","Tcl/Tk"],loader:()=>Nt(()=>import("./tcl.Dm6ycUr_.js"),[])});Vt({id:"twig",extensions:[".twig"],aliases:["Twig","twig"],mimetypes:["text/x-twig"],loader:()=>Nt(()=>import("./twig.Csy3S7wG.js"),[])});Vt({id:"typescript",extensions:[".ts",".tsx",".cts",".mts"],aliases:["TypeScript","ts","typescript"],mimetypes:["text/typescript"],loader:()=>Nt(()=>import("./typescript.BjJudLvw.js"),[])});Vt({id:"typespec",extensions:[".tsp"],aliases:["TypeSpec"],loader:()=>Nt(()=>import("./typespec.Btyra-wh.js"),[])});Vt({id:"vb",extensions:[".vb"],aliases:["Visual Basic","vb"],loader:()=>Nt(()=>import("./vb.Db0cS2oM.js"),[])});Vt({id:"wgsl",extensions:[".wgsl"],aliases:["WebGPU Shading Language","WGSL","wgsl"],loader:()=>Nt(()=>import("./wgsl.DumH7NcR.js"),[])});Vt({id:"xml",extensions:[".xml",".xsd",".dtd",".ascx",".csproj",".config",".props",".targets",".wxi",".wxl",".wxs",".xaml",".svg",".svgz",".opf",".xslt",".xsl"],firstLine:"(\\<\\?xml.*)|(\\<svg)|(\\<\\!doctype\\s+svg)",aliases:["XML","xml"],mimetypes:["text/xml","application/xml","application/xaml+xml","application/xml-dtd"],loader:()=>Nt(()=>import("./xml.4E5qM0zi.js"),[])});Vt({id:"yaml",extensions:[".yaml",".yml"],aliases:["YAML","yaml","YML","yml"],mimetypes:["application/x-yaml","text/x-yaml"],loader:()=>Nt(()=>import("./yaml.B5lohBIB.js"),[])});var Thn=Object.defineProperty,Ehn=(i,e,t)=>e in i?Thn(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,Rt=(i,e,t)=>Ehn(i,typeof e!="symbol"?e+"":e,t),t3,YSe,n3,aq,i3;function Phn(i){return i.method!==void 0}var XSe;(function(i){function e(t){return t}i.create=e})(XSe||(XSe={}));var ug;(function(i){i.parseError=-32700,i.invalidRequest=-32600,i.methodNotFound=-32601,i.invalidParams=-32602,i.internalError=-32603;function e(o){return-32099<=o&&o<=-32e3}i.isServerError=e;function t(o){if(!e(o))throw new Error("Invalid range for a server error.");return o}i.serverError=t,i.unexpectedServerError=-32e3;function n(o){return!0}i.isApplicationError=n;function s(o){return o}i.applicationError=s,i.genericApplicationError=-320100})(ug||(ug={}));var wde=class{constructor(){Rt(this,"listeners",new Set),Rt(this,"event",i=>(this.listeners.add(i),{dispose:()=>{this.listeners.delete(i)}}))}fire(i){this.listeners.forEach(e=>e(i))}},Rhn=class{constructor(i){Rt(this,"_value"),Rt(this,"eventEmitter"),this._value=i,this.eventEmitter=new wde}get value(){return this._value}set value(i){this._value!==i&&(this._value=i,this.eventEmitter.fire(i))}get onChange(){return this.eventEmitter.event}};function Mhn(i,e){const t=setTimeout(e,i);return{dispose:()=>clearTimeout(t)}}function lq(i,e,t){return i instanceof Set?(i.add(e),{dispose:()=>i.delete(e)}):(i.set(e,t),{dispose:()=>i.delete(e)})}var Ahn=class{constructor(){Rt(this,"_state","none"),Rt(this,"promise"),Rt(this,"resolve",()=>{}),Rt(this,"reject",()=>{}),this.promise=new Promise((i,e)=>{this.resolve=i,this.reject=e})}get state(){return this._state}},p9e=(t3=class{constructor(){Rt(this,"_unprocessedMessages",[]),Rt(this,"_messageListener"),Rt(this,"id",t3.id++),Rt(this,"_state",new Rhn({state:"open"})),Rt(this,"state",this._state)}setListener(i){if(this._messageListener=i,!!i)for(;this._unprocessedMessages.length>0&&this._messageListener!==void 0;){const e=this._unprocessedMessages.shift();this._messageListener(e)}}send(i){return this._sendImpl(i)}_dispatchReceivedMessage(i){this._unprocessedMessages.length===0&&this._messageListener?this._messageListener(i):this._unprocessedMessages.push(i)}_onConnectionClosed(){this._state.value={state:"closed",error:void 0}}log(i){return new Ohn(this,i??new Fhn)}},Rt(t3,"id",0),t3),Ohn=class{constructor(i,e){Rt(this,"baseStream"),Rt(this,"logger"),this.baseStream=i,this.logger=e}get state(){return this.baseStream.state}setListener(i){if(i===void 0){this.baseStream.setListener(void 0);return}this.baseStream.setListener(e=>{this.logger.log(this.baseStream,"incoming",e),i(e)})}send(i){return this.logger.log(this.baseStream,"outgoing",i),this.baseStream.send(i)}toString(){return`StreamLogger/${this.baseStream.toString()}`}},Fhn=class{log(i,e,t){console.log(`${e==="incoming"?"<-":"->"} [${i.toString()}] ${JSON.stringify(t)}`)}},Bhn=class _9e{constructor(e){Rt(this,"connect"),this.connect=e}mapContext(e){return new _9e(t=>this.connect(t?Vhn(t,e):void 0))}};function Vhn(i,e){return{handleNotification:(t,n)=>i.handleNotification(t,e(n)),handleRequest:(t,n,s)=>i.handleRequest(t,n,e(s))}}var zhn=class b9e{constructor(e,t,n){Rt(this,"_stream"),Rt(this,"_listener"),Rt(this,"_logger"),Rt(this,"_unprocessedResponses",new Map),Rt(this,"_lastUsedRequestId",0),this._stream=e,this._listener=t,this._logger=n,this._stream.setListener(s=>{Phn(s)?s.id===void 0?this._processNotification(s):this._processRequest(s):this._processResponse(s)})}static createChannel(e,t){let n=!1;return new Bhn(s=>{if(n)throw new Error(`A channel to the stream ${e} was already constructed!`);return n=!0,new b9e(e,s,t)})}get state(){return this._stream.state}async _processNotification(e){if(e.id!==void 0)throw new Error;if(!this._listener){this._logger&&this._logger.debug({text:"Notification ignored",message:e});return}try{await this._listener.handleNotification({method:e.method,params:e.params||null})}catch(t){this._logger&&this._logger.warn({text:`Exception was thrown while handling notification: ${t}`,exception:t,message:e})}}async _processRequest(e){if(e.id===void 0)throw new Error;let t;if(this._listener)try{t=await this._listener.handleRequest({method:e.method,params:e.params||null},e.id)}catch(s){this._logger&&this._logger.warn({text:`Exception was thrown while handling request: ${s}`,message:e,exception:s}),t={error:{code:ug.internalError,message:"An unexpected exception was thrown.",data:void 0}}}else this._logger&&this._logger.debug({text:"Received request even though not listening for requests",message:e}),t={error:{code:ug.methodNotFound,message:"This endpoint does not listen for requests or notifications.",data:void 0}};let n;"result"in t?n={jsonrpc:"2.0",id:e.id,result:t.result}:n={jsonrpc:"2.0",id:e.id,error:t.error},await this._stream.send(n)}_processResponse(e){const t=""+e.id,n=this._unprocessedResponses.get(t);if(!n){this._logger&&this._logger.debug({text:"Got an unexpected response message",message:e});return}this._unprocessedResponses.delete(t),n(e)}_newRequestId(){return this._lastUsedRequestId++}sendRequest(e,t,n){const s={jsonrpc:"2.0",id:this._newRequestId(),method:e.method,params:e.params||void 0};return n&&n(s.id),new Promise((o,r)=>{const a=""+s.id;this._unprocessedResponses.set(a,l=>{"result"in l?o({result:l.result}):(l.error||r(new Error("Response had neither 'result' nor 'error' field set.")),o({error:l.error}))}),this._stream.send(s).then(void 0,l=>{this._unprocessedResponses.delete(a),r(l)})})}sendNotification(e,t){const n={jsonrpc:"2.0",id:void 0,method:e.method,params:e.params||void 0};return this._stream.send(n)}toString(){return"StreamChannel/"+this._stream.toString()}},TI;(function(i){function e(){return{deserializeFromJson:s=>({hasErrors:!1,value:s}),serializeToJson:s=>s}}i.sAny=e;function t(){return{deserializeFromJson:s=>({hasErrors:!1,value:{}}),serializeToJson:s=>({})}}i.sEmptyObject=t;function n(){return{deserializeFromJson:s=>({hasErrors:!1,value:void 0}),serializeToJson:s=>null}}i.sVoidFromNull=n})(TI||(TI={}));const v9e=Symbol("OptionalMethodNotFound");var w9e=class{contextualize(i){return new Whn(this,i)}},Whn=class extends w9e{constructor(i,e){super(),Rt(this,"underylingTypedChannel"),Rt(this,"converters"),this.underylingTypedChannel=i,this.converters=e}async request(i,e,t){const n=await this.converters.getSendContext(t);return this.underylingTypedChannel.request(i,e,n)}async notify(i,e,t){const n=await this.converters.getSendContext(t);return this.underylingTypedChannel.notify(i,e,n)}registerNotificationHandler(i,e){return this.underylingTypedChannel.registerNotificationHandler(i,async(t,n)=>await e(t,await this.converters.getNewContext(n)))}registerRequestHandler(i,e){return this.underylingTypedChannel.registerRequestHandler(i,async(t,n,s)=>await e(t,n,await this.converters.getNewContext(s)))}},One=class y9e extends w9e{constructor(e,t={}){super(),Rt(this,"channelCtor"),Rt(this,"_requestSender"),Rt(this,"_handler",new Map),Rt(this,"_unknownNotificationHandler",new Set),Rt(this,"_timeout"),Rt(this,"sendExceptionDetails",!1),Rt(this,"_logger"),Rt(this,"listeningDeferred",new Ahn),Rt(this,"onListening",this.listeningDeferred.promise),Rt(this,"_requestDidErrorEventEmitter",new wde),Rt(this,"onRequestDidError",this._requestDidErrorEventEmitter.event),this.channelCtor=e,this._logger=t.logger,this.sendExceptionDetails=!!t.sendExceptionDetails,this._timeout=Mhn(1e3,()=>{this._requestSender||console.warn(`"${this.startListen.name}" has not been called within 1 second after construction of this channel. Did you forget to call it?`,this)})}static fromTransport(e,t={}){return new y9e(zhn.createChannel(e,t.logger),t)}startListen(){if(this._requestSender)throw new Error(`"${this.startListen.name}" can be called only once, but it already has been called.`);this._timeout&&(this._timeout.dispose(),this._timeout=void 0),this._requestSender=this.channelCtor.connect({handleRequest:(e,t,n)=>this.handleRequest(e,t,n),handleNotification:(e,t)=>this.handleNotification(e,t)}),this.listeningDeferred.resolve()}checkChannel(e){if(!e)throw new Error(`"${this.startListen.name}" must be called before any messages can be sent or received.`);return!0}async handleRequest(e,t,n){const s=this._handler.get(e.method);if(!s)return this._logger&&this._logger.debug({text:`No request handler for "${e.method}".`,data:{requestObject:e}}),{error:{code:ug.methodNotFound,message:`No request handler for "${e.method}".`,data:{method:e.method}}};if(s.kind!="request"){const r=`"${e.method}" is registered as notification, but was sent as request.`;return this._logger&&this._logger.debug({text:r,data:{requestObject:e}}),{error:{code:ug.invalidRequest,message:r,data:{method:e.method}}}}const o=s.requestType.paramsSerializer.deserializeFromJson(e.params);if(o.hasErrors){const r=`Got invalid params: ${o.errorMessage}`;return this._logger&&this._logger.debug({text:r,data:{requestObject:e,errorMessage:o.errorMessage}}),{error:{code:ug.invalidParams,message:r,data:{errors:o.errorMessage}}}}else{const r=o.value;let a;try{const l=await s.handler(r,t,n);if("error"in l||"errorMessage"in l){const c=l.error?s.requestType.errorSerializer.serializeToJson(l.error):void 0;a={error:{code:l.errorCode||ug.genericApplicationError,message:l.errorMessage||"An error was returned",data:c}}}else a={result:s.requestType.resultSerializer.serializeToJson(l.ok)}}catch(l){l instanceof ZSe?a={error:{code:l.code,message:l.message}}:(this._logger&&this._logger.warn({text:`An exception was thrown while handling a request: ${l}.`,exception:l,data:{requestObject:e}}),a={error:{code:ug.unexpectedServerError,message:this.sendExceptionDetails?`An exception was thrown while handling a request: ${l}.`:"Server has thrown an unexpected exception"}})}return a}}async handleNotification(e,t){const n=this._handler.get(e.method);if(!n){for(const r of this._unknownNotificationHandler)r(e);this._unknownNotificationHandler.size===0&&this._logger&&this._logger.debug({text:`Unhandled notification "${e.method}"`,data:{requestObject:e}});return}if(n.kind!="notification"){this._logger&&this._logger.debug({text:`"${e.method}" is registered as request, but was sent as notification.`,data:{requestObject:e}});return}const s=n.notificationType.paramsSerializer.deserializeFromJson(e.params);if(s.hasErrors){this._logger&&this._logger.debug({text:`Got invalid params: ${s}`,data:{requestObject:e,errorMessage:s.errorMessage}});return}const o=s.value;for(const r of n.handlers)try{r(o,t)}catch(a){this._logger&&this._logger.warn({text:`An exception was thrown while handling a notification: ${a}.`,exception:a,data:{requestObject:e}})}}registerUnknownNotificationHandler(e){return lq(this._unknownNotificationHandler,e)}registerRequestHandler(e,t){if(this._handler.get(e.method))throw new Error(`Handler with method "${e.method}" already registered.`);return lq(this._handler,e.method,{kind:"request",requestType:e,handler:t})}registerNotificationHandler(e,t){let n=this._handler.get(e.method);if(!n)n={kind:"notification",notificationType:e,handlers:new Set},this._handler.set(e.method,n);else{if(n.kind!=="notification")throw new Error(`Method "${e.method}" was already registered as request handler.`);if(n.notificationType!==e)throw new Error(`Method "${e.method}" was registered for a different type.`)}return lq(n.handlers,t)}getRegisteredTypes(){const e=[];for(const t of this._handler.values())t.kind==="notification"?e.push(t.notificationType):t.kind==="request"&&e.push(t.requestType);return e}async request(e,t,n){if(!this.checkChannel(this._requestSender))throw new Error("Impossible");const s=e.paramsSerializer.serializeToJson(t);QSe(s);const o=await this._requestSender.sendRequest({method:e.method,params:s},n);if("error"in o){if(e.isOptional&&o.error.code===ug.methodNotFound)return v9e;let r;if(o.error.data!==void 0){const l=e.errorSerializer.deserializeFromJson(o.error.data);if(l.hasErrors)throw new Error(l.errorMessage);r=l.value}else r=void 0;const a=new ZSe(o.error.message,r,o.error.code);throw this._requestDidErrorEventEmitter.fire({error:a}),a}else{const r=e.resultSerializer.deserializeFromJson(o.result);if(r.hasErrors)throw new Error("Could not deserialize response: "+r.errorMessage+`
1302
+ hint: use the 'bracket' attribute if matching on equal brackets is required.`);if(typeof a.open=="string"&&typeof a.token=="string"&&typeof a.close=="string")o.push({token:a.token+t.tokenPostfix,open:eb(t,a.open),close:eb(t,a.close)});else throw bs(t,"every element in the 'brackets' array must be a '{open,close,token}' object or array")}return t.brackets=o,t.noThrow=!0,t}function Dun(i){ik.registerLanguage(i)}function Tun(){let i=[];return i=i.concat(ik.getLanguages()),i}function Eun(i){return Qt.get(mo).languageIdCodec.encodeLanguageId(i)}function Pun(i,e){return Qt.withServices(()=>{const n=Qt.get(mo).onDidRequestRichLanguageFeatures(s=>{s===i&&(n.dispose(),e())});return n})}function Run(i,e){return Qt.withServices(()=>{const n=Qt.get(mo).onDidRequestBasicLanguageFeatures(s=>{s===i&&(n.dispose(),e())});return n})}function Mun(i,e){if(!Qt.get(mo).isRegisteredLanguageId(i))throw new Error(`Cannot set configuration for unknown language ${i}`);return Qt.get(Vs).register(i,e,100)}class Aun{constructor(e,t){this._languageId=e,this._actual=t}dispose(){}getInitialState(){return this._actual.getInitialState()}tokenize(e,t,n){if(typeof this._actual.tokenize=="function")return YM.adaptTokenize(this._languageId,this._actual,e,n);throw new Error("Not supported!")}tokenizeEncoded(e,t,n){const s=this._actual.tokenizeEncoded(e,n);return new eH(s.tokens,s.endState)}}class YM{constructor(e,t,n,s){this._languageId=e,this._actual=t,this._languageService=n,this._standaloneThemeService=s}dispose(){}getInitialState(){return this._actual.getInitialState()}static _toClassicTokens(e,t){const n=[];let s=0;for(let o=0,r=e.length;o<r;o++){const a=e[o];let l=a.startIndex;o===0?l=0:l<s&&(l=s),n[o]=new WR(l,a.scopes,t),s=l}return n}static adaptTokenize(e,t,n,s){const o=t.tokenize(n,s),r=YM._toClassicTokens(o.tokens,e);let a;return o.endState.equals(s)?a=s:a=o.endState,new Qre(r,a)}tokenize(e,t,n){return YM.adaptTokenize(this._languageId,this._actual,e,n)}_toBinaryTokens(e,t){const n=e.encodeLanguageId(this._languageId),s=this._standaloneThemeService.getColorTheme().tokenTheme,o=[];let r=0,a=0;for(let c=0,d=t.length;c<d;c++){const h=t[c],g=s.match(n,h.scopes)|1024;if(r>0&&o[r-1]===g)continue;let m=h.startIndex;c===0?m=0:m<a&&(m=a),o[r++]=m,o[r++]=g,a=m}const l=new Uint32Array(r);for(let c=0;c<r;c++)l[c]=o[c];return l}tokenizeEncoded(e,t,n){const s=this._actual.tokenize(e,n),o=this._toBinaryTokens(this._languageService.languageIdCodec,s.tokens);let r;return s.endState.equals(n)?r=n:r=s.endState,new eH(o,r)}}function Oun(i){return typeof i.getInitialState=="function"}function Fun(i){return"tokenizeEncoded"in i}function zWe(i){return i&&typeof i.then=="function"}function Bun(i){const e=Qt.get(Ou);if(i){const t=[null];for(let n=1,s=i.length;n<s;n++)t[n]=De.fromHex(i[n]);e.setColorMapOverride(t)}else e.setColorMapOverride(null)}function WWe(i,e){return Fun(e)?new Aun(i,e):new YM(i,e,Qt.get(mo),Qt.get(Ou))}function mde(i,e){const t=new Pzt(async()=>{const n=await Promise.resolve(e.create());return n?Oun(n)?WWe(i,n):new $M(Qt.get(mo),Qt.get(Ou),i,VWe(i,n),Qt.get(ln)):null});return oo.registerFactory(i,t)}function Vun(i,e){if(!Qt.get(mo).isRegisteredLanguageId(i))throw new Error(`Cannot set tokens provider for unknown language ${i}`);return zWe(e)?mde(i,{create:()=>e}):oo.register(i,WWe(i,e))}function zun(i,e){const t=n=>new $M(Qt.get(mo),Qt.get(Ou),i,VWe(i,n),Qt.get(ln));return zWe(e)?mde(i,{create:()=>e}):oo.register(i,t(e))}function Wun(i,e){return Qt.get(_t).referenceProvider.register(i,e)}function Hun(i,e){return Qt.get(_t).renameProvider.register(i,e)}function $un(i,e){return Qt.get(_t).newSymbolNamesProvider.register(i,e)}function Uun(i,e){return Qt.get(_t).signatureHelpProvider.register(i,e)}function jun(i,e){return Qt.get(_t).hoverProvider.register(i,{provideHover:async(n,s,o,r)=>{const a=n.getWordAtPosition(s);return Promise.resolve(e.provideHover(n,s,o,r)).then(l=>{if(l)return!l.range&&a&&(l.range=new j(s.lineNumber,a.startColumn,s.lineNumber,a.endColumn)),l.range||(l.range=new j(s.lineNumber,s.column,s.lineNumber,s.column)),l})}})}function Gun(i,e){return Qt.get(_t).documentSymbolProvider.register(i,e)}function qun(i,e){return Qt.get(_t).documentHighlightProvider.register(i,e)}function Kun(i,e){return Qt.get(_t).linkedEditingRangeProvider.register(i,e)}function Jun(i,e){return Qt.get(_t).definitionProvider.register(i,e)}function Yun(i,e){return Qt.get(_t).implementationProvider.register(i,e)}function Xun(i,e){return Qt.get(_t).typeDefinitionProvider.register(i,e)}function Qun(i,e){return Qt.get(_t).codeLensProvider.register(i,e)}function Zun(i,e,t){return Qt.get(_t).codeActionProvider.register(i,{providedCodeActionKinds:t?.providedCodeActionKinds,documentation:t?.documentation,provideCodeActions:(s,o,r,a)=>{const c=Qt.get(Dp).read({resource:s.uri}).filter(d=>j.areIntersectingOrTouching(d,o));return e.provideCodeActions(s,o,{markers:c,only:r.only,trigger:r.trigger},a)},resolveCodeAction:e.resolveCodeAction})}function ehn(i,e){return Qt.get(_t).documentFormattingEditProvider.register(i,e)}function thn(i,e){return Qt.get(_t).documentRangeFormattingEditProvider.register(i,e)}function nhn(i,e){return Qt.get(_t).onTypeFormattingEditProvider.register(i,e)}function ihn(i,e){return Qt.get(_t).linkProvider.register(i,e)}function shn(i,e){return Qt.get(_t).completionProvider.register(i,e)}function ohn(i,e){return Qt.get(_t).colorProvider.register(i,e)}function rhn(i,e){return Qt.get(_t).foldingRangeProvider.register(i,e)}function ahn(i,e){return Qt.get(_t).declarationProvider.register(i,e)}function lhn(i,e){return Qt.get(_t).selectionRangeProvider.register(i,e)}function chn(i,e){return Qt.get(_t).documentSemanticTokensProvider.register(i,e)}function dhn(i,e){return Qt.get(_t).documentRangeSemanticTokensProvider.register(i,e)}function uhn(i,e){return Qt.get(_t).inlineCompletionsProvider.register(i,e)}function hhn(i,e){return Qt.get(_t).inlayHintsProvider.register(i,e)}function ghn(){return{register:Dun,getLanguages:Tun,onLanguage:Pun,onLanguageEncountered:Run,getEncodedLanguageId:Eun,setLanguageConfiguration:Mun,setColorMap:Bun,registerTokensProviderFactory:mde,setTokensProvider:Vun,setMonarchTokensProvider:zun,registerReferenceProvider:Wun,registerRenameProvider:Hun,registerNewSymbolNameProvider:$un,registerCompletionItemProvider:shn,registerSignatureHelpProvider:Uun,registerHoverProvider:jun,registerDocumentSymbolProvider:Gun,registerDocumentHighlightProvider:qun,registerLinkedEditingRangeProvider:Kun,registerDefinitionProvider:Jun,registerImplementationProvider:Yun,registerTypeDefinitionProvider:Xun,registerCodeLensProvider:Qun,registerCodeActionProvider:Zun,registerDocumentFormattingEditProvider:ehn,registerDocumentRangeFormattingEditProvider:thn,registerOnTypeFormattingEditProvider:nhn,registerLinkProvider:ihn,registerColorProvider:ohn,registerFoldingRangeProvider:rhn,registerDeclarationProvider:ahn,registerSelectionRangeProvider:lhn,registerDocumentSemanticTokensProvider:chn,registerDocumentRangeSemanticTokensProvider:dhn,registerInlineCompletionsProvider:uhn,registerInlayHintsProvider:hhn,DocumentHighlightKind:Qee,CompletionItemKind:Gee,CompletionItemTag:qee,CompletionItemInsertTextRule:jee,SymbolKind:Tte,SymbolTag:Ete,IndentAction:ote,CompletionTriggerKind:Kee,SignatureHelpTriggerKind:Dte,InlayHintKind:ate,InlineCompletionTriggerKind:dte,CodeActionTriggerType:Uee,NewSymbolNameTag:_te,NewSymbolNameTriggerKind:bte,PartialAcceptTriggerKind:yte,HoverVerbosityAction:ste,InlineCompletionEndOfLifeReasonKind:lte,InlineCompletionHintStyle:cte,FoldingRangeKind:Q1,SelectedSuggestionInfo:m5e,EditDeltaInfo:ZR}}Vl.wrappingIndent.defaultValue=0;Vl.glyphMargin.defaultValue=!1;Vl.autoIndent.defaultValue=3;Vl.overviewRulerLanes.defaultValue=2;Lk.setFormatterSelector((i,e,t)=>Promise.resolve(i[0]));const Ic=mWe();Ic.editor=Sun();Ic.languages=ghn();const HWe=Ic.CancellationTokenSource,Qw=Ic.Emitter,$We=Ic.KeyCode,UWe=Ic.KeyMod,Fb=Ic.Position,AL=Ic.Range,jWe=Ic.Selection,GWe=Ic.SelectionDirection,pg=Ic.MarkerSeverity,VW=Ic.MarkerTag,h7=Ic.Uri,qWe=Ic.Token,op=Ic.editor,pt=Ic.languages,mhn=Moe(),DI=globalThis;(mhn?.globalAPI||typeof DI.define=="function"&&DI.define.amd)&&(DI.monaco=Ic);typeof DI.require<"u"&&typeof DI.require.config=="function"&&DI.require.config({ignoreDuplicateModules:["vscode-languageserver-types","vscode-languageserver-types/main","vscode-languageserver-textdocument","vscode-languageserver-textdocument/main","vscode-nls","vscode-nls/vscode-nls","jsonc-parser","jsonc-parser/main","vscode-uri","vscode-uri/index","vs/basic-languages/typescript/typescript"]});const fhn=Object.freeze(Object.defineProperty({__proto__:null,CancellationTokenSource:HWe,Emitter:Qw,KeyCode:$We,KeyMod:UWe,MarkerSeverity:pg,MarkerTag:VW,Position:Fb,Range:AL,Selection:jWe,SelectionDirection:GWe,Token:qWe,Uri:h7,editor:op,languages:pt},Symbol.toStringTag,{value:"Module"}));let fde=class{constructor(e,t,n){this._onDidChange=new Qw,this._languageId=e,this.setOptions(t),this.setModeConfiguration(n)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this.options}get options(){return this._options}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setDiagnosticsOptions(e){this.setOptions(e)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}};const pde={validate:!0,lint:{compatibleVendorPrefixes:"ignore",vendorPrefix:"warning",duplicateProperties:"warning",emptyRules:"warning",importStatement:"ignore",boxModel:"ignore",universalSelector:"ignore",zeroUnits:"ignore",fontFaceProperties:"warning",hexColorLength:"error",argumentsInColorFunction:"error",unknownProperties:"warning",ieHack:"ignore",unknownVendorSpecificProperties:"ignore",propertyIgnoredDueToDisplay:"warning",important:"ignore",float:"ignore",idSelector:"ignore"},data:{useDefaultDataProvider:!0},format:{newlineBetweenSelectors:!0,newlineBetweenRules:!0,spaceAroundSelectorSeparator:!1,braceStyle:"collapse",maxPreserveNewLines:void 0,preserveNewLines:!0}},_de={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0,documentFormattingEdits:!0,documentRangeFormattingEdits:!0},KWe=new fde("css",pde,_de),JWe=new fde("scss",pde,_de),YWe=new fde("less",pde,_de);function bde(){return Nt(()=>import("./cssMode.BxttlR4a.js"),__vite__mapDeps([9,10]))}pt.onLanguage("less",()=>{bde().then(i=>i.setupMode(YWe))});pt.onLanguage("scss",()=>{bde().then(i=>i.setupMode(JWe))});pt.onLanguage("css",()=>{bde().then(i=>i.setupMode(KWe))});const XWe=Object.freeze(Object.defineProperty({__proto__:null,cssDefaults:KWe,lessDefaults:YWe,scssDefaults:JWe},Symbol.toStringTag,{value:"Module"}));let phn=class{constructor(e,t,n){this._onDidChange=new Qw,this._languageId=e,this.setOptions(t),this.setModeConfiguration(n)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get options(){return this._options}get modeConfiguration(){return this._modeConfiguration}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}};const _hn={tabSize:4,insertSpaces:!1,wrapLineLength:120,unformatted:'default": "a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var',contentUnformatted:"pre",indentInnerHtml:!1,preserveNewLines:!0,maxPreserveNewLines:void 0,indentHandlebars:!1,endWithNewline:!1,extraLiners:"head, body, /html",wrapAttributes:"auto"},g7={format:_hn,suggest:{},data:{useDefaultDataProvider:!0}};function m7(i){return{completionItems:!0,hovers:!0,documentSymbols:!0,links:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,selectionRanges:!0,diagnostics:i===VP,documentFormattingEdits:i===VP,documentRangeFormattingEdits:i===VP}}const VP="html",KSe="handlebars",JSe="razor",QWe=f7(VP,g7,m7(VP)),bhn=QWe.defaults,ZWe=f7(KSe,g7,m7(KSe)),vhn=ZWe.defaults,e9e=f7(JSe,g7,m7(JSe)),whn=e9e.defaults;function yhn(){return Nt(()=>import("./htmlMode.C0vP_DMi.js"),__vite__mapDeps([11,10]))}function f7(i,e=g7,t=m7(i)){const n=new phn(i,e,t);let s;const o=pt.onLanguage(i,async()=>{s=(await yhn()).setupMode(n)});return{defaults:n,dispose(){o.dispose(),s?.dispose(),s=void 0}}}const t9e=Object.freeze(Object.defineProperty({__proto__:null,handlebarDefaults:vhn,handlebarLanguageService:ZWe,htmlDefaults:bhn,htmlLanguageService:QWe,razorDefaults:whn,razorLanguageService:e9e,registerHTMLLanguageService:f7},Symbol.toStringTag,{value:"Module"}));let Chn=class{constructor(e,t,n){this._onDidChange=new Qw,this._languageId=e,this.setDiagnosticsOptions(t),this.setModeConfiguration(n)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}};const Shn={validate:!0,allowComments:!0,schemas:[],enableSchemaRequest:!1,schemaRequest:"warning",schemaValidation:"warning",comments:"error",trailingCommas:"error"},xhn={documentFormattingEdits:!0,documentRangeFormattingEdits:!0,completionItems:!0,hovers:!0,documentSymbols:!0,tokens:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0},n9e=new Chn("json",Shn,xhn),Nhn=()=>i9e().then(i=>i.getWorker());function i9e(){return Nt(()=>import("./jsonMode.CXGi9RwI.js"),__vite__mapDeps([12,10]))}pt.register({id:"json",extensions:[".json",".bowerrc",".jshintrc",".jscsrc",".eslintrc",".babelrc",".har"],aliases:["JSON","json"],mimetypes:["application/json"]});pt.onLanguage("json",()=>{i9e().then(i=>i.setupMode(n9e))});const s9e=Object.freeze(Object.defineProperty({__proto__:null,getWorker:Nhn,jsonDefaults:n9e},Symbol.toStringTag,{value:"Module"})),Ihn="5.9.3";var o9e=(i=>(i[i.None=0]="None",i[i.CommonJS=1]="CommonJS",i[i.AMD=2]="AMD",i[i.UMD=3]="UMD",i[i.System=4]="System",i[i.ES2015=5]="ES2015",i[i.ESNext=99]="ESNext",i))(o9e||{}),r9e=(i=>(i[i.None=0]="None",i[i.Preserve=1]="Preserve",i[i.React=2]="React",i[i.ReactNative=3]="ReactNative",i[i.ReactJSX=4]="ReactJSX",i[i.ReactJSXDev=5]="ReactJSXDev",i))(r9e||{}),a9e=(i=>(i[i.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",i[i.LineFeed=1]="LineFeed",i))(a9e||{}),l9e=(i=>(i[i.ES3=0]="ES3",i[i.ES5=1]="ES5",i[i.ES2015=2]="ES2015",i[i.ES2016=3]="ES2016",i[i.ES2017=4]="ES2017",i[i.ES2018=5]="ES2018",i[i.ES2019=6]="ES2019",i[i.ES2020=7]="ES2020",i[i.ESNext=99]="ESNext",i[i.JSON=100]="JSON",i[i.Latest=99]="Latest",i))(l9e||{}),c9e=(i=>(i[i.Classic=1]="Classic",i[i.NodeJs=2]="NodeJs",i))(c9e||{});class d9e{constructor(e,t,n,s,o){this._onDidChange=new Qw,this._onDidExtraLibsChange=new Qw,this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(e),this.setDiagnosticsOptions(t),this.setWorkerOptions(n),this.setInlayHintsOptions(s),this.setModeConfiguration(o),this._onDidExtraLibsChangeTimeout=-1}get onDidChange(){return this._onDidChange.event}get onDidExtraLibsChange(){return this._onDidExtraLibsChange.event}get modeConfiguration(){return this._modeConfiguration}get workerOptions(){return this._workerOptions}get inlayHintsOptions(){return this._inlayHintsOptions}getExtraLibs(){return this._extraLibs}addExtraLib(e,t){let n;if(typeof t>"u"?n=`ts:extralib-${Math.random().toString(36).substring(2,15)}`:n=t,this._extraLibs[n]&&this._extraLibs[n].content===e)return{dispose:()=>{}};let s=1;return this._removedExtraLibs[n]&&(s=this._removedExtraLibs[n]+1),this._extraLibs[n]&&(s=this._extraLibs[n].version+1),this._extraLibs[n]={content:e,version:s},this._fireOnDidExtraLibsChangeSoon(),{dispose:()=>{let o=this._extraLibs[n];o&&o.version===s&&(delete this._extraLibs[n],this._removedExtraLibs[n]=s,this._fireOnDidExtraLibsChangeSoon())}}}setExtraLibs(e){for(const t in this._extraLibs)this._removedExtraLibs[t]=this._extraLibs[t].version;if(this._extraLibs=Object.create(null),e&&e.length>0)for(const t of e){const n=t.filePath||`ts:extralib-${Math.random().toString(36).substring(2,15)}`,s=t.content;let o=1;this._removedExtraLibs[n]&&(o=this._removedExtraLibs[n]+1),this._extraLibs[n]={content:s,version:o}}this._fireOnDidExtraLibsChangeSoon()}_fireOnDidExtraLibsChangeSoon(){this._onDidExtraLibsChangeTimeout===-1&&(this._onDidExtraLibsChangeTimeout=window.setTimeout(()=>{this._onDidExtraLibsChangeTimeout=-1,this._onDidExtraLibsChange.fire(void 0)},0))}getCompilerOptions(){return this._compilerOptions}setCompilerOptions(e){this._compilerOptions=e||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(e){this._workerOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(e){this._inlayHintsOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(e){}setEagerModelSync(e){this._eagerModelSync=e}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(void 0)}}const khn=Ihn,u9e={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,diagnostics:!0,documentRangeFormattingEdits:!0,signatureHelp:!0,onTypeFormattingEdits:!0,codeActions:!0,inlayHints:!0},h9e=new d9e({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},u9e),g9e=new d9e({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},u9e),Lhn=()=>p7().then(i=>i.getTypeScriptWorker()),Dhn=()=>p7().then(i=>i.getJavaScriptWorker());function p7(){return Nt(()=>import("./tsMode.DMCkQMMP.js"),[])}pt.onLanguage("typescript",()=>p7().then(i=>i.setupTypeScript(h9e)));pt.onLanguage("javascript",()=>p7().then(i=>i.setupJavaScript(g9e)));const m9e=Object.freeze(Object.defineProperty({__proto__:null,JsxEmit:r9e,ModuleKind:o9e,ModuleResolutionKind:c9e,NewLineKind:a9e,ScriptTarget:l9e,getJavaScriptWorker:Dhn,getTypeScriptWorker:Lhn,javascriptDefaults:g9e,typescriptDefaults:h9e,typescriptVersion:khn},Symbol.toStringTag,{value:"Module"})),f9e={},rq={};class vde{static getOrCreate(e){return rq[e]||(rq[e]=new vde(e)),rq[e]}constructor(e){this._languageId=e,this._loadingTriggered=!1,this._lazyLoadPromise=new Promise((t,n)=>{this._lazyLoadPromiseResolve=t,this._lazyLoadPromiseReject=n})}load(){return this._loadingTriggered||(this._loadingTriggered=!0,f9e[this._languageId].loader().then(e=>this._lazyLoadPromiseResolve(e),e=>this._lazyLoadPromiseReject(e))),this._lazyLoadPromise}}function Vt(i){const e=i.id;f9e[e]=i,pt.register(i);const t=vde.getOrCreate(e);pt.registerTokensProviderFactory(e,{create:async()=>(await t.load()).language}),pt.onLanguageEncountered(e,async()=>{const n=await t.load();pt.setLanguageConfiguration(e,n.conf)})}Vt({id:"abap",extensions:[".abap"],aliases:["abap","ABAP"],loader:()=>Nt(()=>import("./abap.DLDM7-KI.js"),[])});Vt({id:"apex",extensions:[".cls"],aliases:["Apex","apex"],mimetypes:["text/x-apex-source","text/x-apex"],loader:()=>Nt(()=>import("./apex.DNDY2TF8.js"),[])});Vt({id:"azcli",extensions:[".azcli"],aliases:["Azure CLI","azcli"],loader:()=>Nt(()=>import("./azcli.Y6nb8tq_.js"),[])});Vt({id:"bat",extensions:[".bat",".cmd"],aliases:["Batch","bat"],loader:()=>Nt(()=>import("./bat.BwHxbl9M.js"),[])});Vt({id:"bicep",extensions:[".bicep"],aliases:["Bicep"],loader:()=>Nt(()=>import("./bicep.CFznDFnq.js"),[])});Vt({id:"cameligo",extensions:[".mligo"],aliases:["Cameligo"],loader:()=>Nt(()=>import("./cameligo.Bf6VGUru.js"),[])});Vt({id:"clojure",extensions:[".clj",".cljs",".cljc",".edn"],aliases:["clojure","Clojure"],loader:()=>Nt(()=>import("./clojure.Dnu-v4kV.js"),[])});Vt({id:"coffeescript",extensions:[".coffee"],aliases:["CoffeeScript","coffeescript","coffee"],mimetypes:["text/x-coffeescript","text/coffeescript"],loader:()=>Nt(()=>import("./coffee.Bd8akH9Z.js"),[])});Vt({id:"c",extensions:[".c",".h"],aliases:["C","c"],loader:()=>Nt(()=>import("./cpp.BbWJElDN.js"),[])});Vt({id:"cpp",extensions:[".cpp",".cc",".cxx",".hpp",".hh",".hxx"],aliases:["C++","Cpp","cpp"],loader:()=>Nt(()=>import("./cpp.BbWJElDN.js"),[])});Vt({id:"csharp",extensions:[".cs",".csx",".cake"],aliases:["C#","csharp"],loader:()=>Nt(()=>import("./csharp.Co3qMtFm.js"),[])});Vt({id:"csp",extensions:[".csp"],aliases:["CSP","csp"],loader:()=>Nt(()=>import("./csp.D-4FJmMZ.js"),[])});Vt({id:"css",extensions:[".css"],aliases:["CSS","css"],mimetypes:["text/css"],loader:()=>Nt(()=>import("./css.DdJfP1eB.js"),[])});Vt({id:"cypher",extensions:[".cypher",".cyp"],aliases:["Cypher","OpenCypher"],loader:()=>Nt(()=>import("./cypher.cTPe9QuQ.js"),[])});Vt({id:"dart",extensions:[".dart"],aliases:["Dart","dart"],mimetypes:["text/x-dart-source","text/x-dart"],loader:()=>Nt(()=>import("./dart.BOtBlQCF.js"),[])});Vt({id:"dockerfile",extensions:[".dockerfile"],filenames:["Dockerfile"],aliases:["Dockerfile"],loader:()=>Nt(()=>import("./dockerfile.BG73LgW2.js"),[])});Vt({id:"ecl",extensions:[".ecl"],aliases:["ECL","Ecl","ecl"],loader:()=>Nt(()=>import("./ecl.BEgZUVRK.js"),[])});Vt({id:"elixir",extensions:[".ex",".exs"],aliases:["Elixir","elixir","ex"],loader:()=>Nt(()=>import("./elixir.BkW5O-1t.js"),[])});Vt({id:"flow9",extensions:[".flow"],aliases:["Flow9","Flow","flow9","flow"],loader:()=>Nt(()=>import("./flow9.BeJ5waoc.js"),[])});Vt({id:"fsharp",extensions:[".fs",".fsi",".ml",".mli",".fsx",".fsscript"],aliases:["F#","FSharp","fsharp"],loader:()=>Nt(()=>import("./fsharp.PahG7c26.js"),[])});Vt({id:"freemarker2",extensions:[".ftl",".ftlh",".ftlx"],aliases:["FreeMarker2","Apache FreeMarker2"],loader:()=>Nt(()=>import("./freemarker2.DvHnt6jw.js"),[]).then(i=>i.TagAutoInterpolationDollar)});Vt({id:"freemarker2.tag-angle.interpolation-dollar",aliases:["FreeMarker2 (Angle/Dollar)","Apache FreeMarker2 (Angle/Dollar)"],loader:()=>Nt(()=>import("./freemarker2.DvHnt6jw.js"),[]).then(i=>i.TagAngleInterpolationDollar)});Vt({id:"freemarker2.tag-bracket.interpolation-dollar",aliases:["FreeMarker2 (Bracket/Dollar)","Apache FreeMarker2 (Bracket/Dollar)"],loader:()=>Nt(()=>import("./freemarker2.DvHnt6jw.js"),[]).then(i=>i.TagBracketInterpolationDollar)});Vt({id:"freemarker2.tag-angle.interpolation-bracket",aliases:["FreeMarker2 (Angle/Bracket)","Apache FreeMarker2 (Angle/Bracket)"],loader:()=>Nt(()=>import("./freemarker2.DvHnt6jw.js"),[]).then(i=>i.TagAngleInterpolationBracket)});Vt({id:"freemarker2.tag-bracket.interpolation-bracket",aliases:["FreeMarker2 (Bracket/Bracket)","Apache FreeMarker2 (Bracket/Bracket)"],loader:()=>Nt(()=>import("./freemarker2.DvHnt6jw.js"),[]).then(i=>i.TagBracketInterpolationBracket)});Vt({id:"freemarker2.tag-auto.interpolation-dollar",aliases:["FreeMarker2 (Auto/Dollar)","Apache FreeMarker2 (Auto/Dollar)"],loader:()=>Nt(()=>import("./freemarker2.DvHnt6jw.js"),[]).then(i=>i.TagAutoInterpolationDollar)});Vt({id:"freemarker2.tag-auto.interpolation-bracket",aliases:["FreeMarker2 (Auto/Bracket)","Apache FreeMarker2 (Auto/Bracket)"],loader:()=>Nt(()=>import("./freemarker2.DvHnt6jw.js"),[]).then(i=>i.TagAutoInterpolationBracket)});Vt({id:"go",extensions:[".go"],aliases:["Go"],loader:()=>Nt(()=>import("./go.acbASCJo.js"),[])});Vt({id:"graphql",extensions:[".graphql",".gql"],aliases:["GraphQL","graphql","gql"],mimetypes:["application/graphql"],loader:()=>Nt(()=>import("./graphql.BxJiqAUM.js"),[])});Vt({id:"handlebars",extensions:[".handlebars",".hbs"],aliases:["Handlebars","handlebars","hbs"],mimetypes:["text/x-handlebars-template"],loader:()=>Nt(()=>import("./handlebars.DlNQ11SD.js"),[])});Vt({id:"hcl",extensions:[".tf",".tfvars",".hcl"],aliases:["Terraform","tf","HCL","hcl"],loader:()=>Nt(()=>import("./hcl.DtV1sZF8.js"),[])});Vt({id:"html",extensions:[".html",".htm",".shtml",".xhtml",".mdoc",".jsp",".asp",".aspx",".jshtm"],aliases:["HTML","htm","html","xhtml"],mimetypes:["text/html","text/x-jshtm","text/template","text/ng-template"],loader:()=>Nt(()=>import("./html.ZVGSXQsD.js"),[])});Vt({id:"ini",extensions:[".ini",".properties",".gitconfig"],filenames:["config",".gitattributes",".gitconfig",".editorconfig"],aliases:["Ini","ini"],loader:()=>Nt(()=>import("./ini.Kd9XrMLS.js"),[])});Vt({id:"java",extensions:[".java",".jav"],aliases:["Java","java"],mimetypes:["text/x-java-source","text/x-java"],loader:()=>Nt(()=>import("./java.CXBNlu9o.js"),[])});Vt({id:"javascript",extensions:[".js",".es6",".jsx",".mjs",".cjs"],firstLine:"^#!.*\\bnode",filenames:["jakefile"],aliases:["JavaScript","javascript","js"],mimetypes:["text/javascript"],loader:()=>Nt(()=>import("./javascript.B9r0wVZ1.js"),__vite__mapDeps([13,14]))});Vt({id:"julia",extensions:[".jl"],aliases:["julia","Julia"],loader:()=>Nt(()=>import("./julia.cl7-CwDS.js"),[])});Vt({id:"kotlin",extensions:[".kt",".kts"],aliases:["Kotlin","kotlin"],mimetypes:["text/x-kotlin-source","text/x-kotlin"],loader:()=>Nt(()=>import("./kotlin.s7OhZKlX.js"),[])});Vt({id:"less",extensions:[".less"],aliases:["Less","less"],mimetypes:["text/x-less","text/less"],loader:()=>Nt(()=>import("./less.9HpZscsL.js"),[])});Vt({id:"lexon",extensions:[".lex"],aliases:["Lexon"],loader:()=>Nt(()=>import("./lexon.OrD6JF1K.js"),[])});Vt({id:"lua",extensions:[".lua"],aliases:["Lua","lua"],loader:()=>Nt(()=>import("./lua.Cyyb5UIc.js"),[])});Vt({id:"liquid",extensions:[".liquid",".html.liquid"],aliases:["Liquid","liquid"],mimetypes:["application/liquid"],loader:()=>Nt(()=>import("./liquid.Fq4RwFhp.js"),[])});Vt({id:"m3",extensions:[".m3",".i3",".mg",".ig"],aliases:["Modula-3","Modula3","modula3","m3"],loader:()=>Nt(()=>import("./m3.B8OfTtLu.js"),[])});Vt({id:"markdown",extensions:[".md",".markdown",".mdown",".mkdn",".mkd",".mdwn",".mdtxt",".mdtext"],aliases:["Markdown","markdown"],loader:()=>Nt(()=>import("./markdown.BFxVWTOG.js"),[])});Vt({id:"mdx",extensions:[".mdx"],aliases:["MDX","mdx"],loader:()=>Nt(()=>import("./mdx.DhKqzfpr.js"),[])});Vt({id:"mips",extensions:[".s"],aliases:["MIPS","MIPS-V"],mimetypes:["text/x-mips","text/mips","text/plaintext"],loader:()=>Nt(()=>import("./mips.CiqrrVzr.js"),[])});Vt({id:"msdax",extensions:[".dax",".msdax"],aliases:["DAX","MSDAX"],loader:()=>Nt(()=>import("./msdax.DmeGPVcC.js"),[])});Vt({id:"mysql",extensions:[],aliases:["MySQL","mysql"],loader:()=>Nt(()=>import("./mysql.C_tMU-Nz.js"),[])});Vt({id:"objective-c",extensions:[".m"],aliases:["Objective-C"],loader:()=>Nt(()=>import("./objective-c.BDtDVThU.js"),[])});Vt({id:"pascal",extensions:[".pas",".p",".pp"],aliases:["Pascal","pas"],mimetypes:["text/x-pascal-source","text/x-pascal"],loader:()=>Nt(()=>import("./pascal.vHIfCaH5.js"),[])});Vt({id:"pascaligo",extensions:[".ligo"],aliases:["Pascaligo","ligo"],loader:()=>Nt(()=>import("./pascaligo.DtZ0uQbO.js"),[])});Vt({id:"perl",extensions:[".pl",".pm"],aliases:["Perl","pl"],loader:()=>Nt(()=>import("./perl.Ub6l9XKa.js"),[])});Vt({id:"pgsql",extensions:[],aliases:["PostgreSQL","postgres","pg","postgre"],loader:()=>Nt(()=>import("./pgsql.BlNEE0v7.js"),[])});Vt({id:"php",extensions:[".php",".php4",".php5",".phtml",".ctp"],aliases:["PHP","php"],mimetypes:["application/x-php"],loader:()=>Nt(()=>import("./php.BBUBE1dy.js"),[])});Vt({id:"pla",extensions:[".pla"],loader:()=>Nt(()=>import("./pla.DSh2-awV.js"),[])});Vt({id:"postiats",extensions:[".dats",".sats",".hats"],aliases:["ATS","ATS/Postiats"],loader:()=>Nt(()=>import("./postiats.CocnycG-.js"),[])});Vt({id:"powerquery",extensions:[".pq",".pqm"],aliases:["PQ","M","Power Query","Power Query M"],loader:()=>Nt(()=>import("./powerquery.tScXyioY.js"),[])});Vt({id:"powershell",extensions:[".ps1",".psm1",".psd1"],aliases:["PowerShell","powershell","ps","ps1"],loader:()=>Nt(()=>import("./powershell.COWaemsV.js"),[])});Vt({id:"proto",extensions:[".proto"],aliases:["protobuf","Protocol Buffers"],loader:()=>Nt(()=>import("./protobuf.Brw8urJB.js"),[])});Vt({id:"pug",extensions:[".jade",".pug"],aliases:["Pug","Jade","jade"],loader:()=>Nt(()=>import("./pug.8SOpv6rk.js"),[])});Vt({id:"python",extensions:[".py",".rpy",".pyw",".cpy",".gyp",".gypi"],aliases:["Python","py"],firstLine:"^#!/.*\\bpython[0-9.-]*\\b",loader:()=>Nt(()=>import("./python.BSl0zf4g.js"),[])});Vt({id:"qsharp",extensions:[".qs"],aliases:["Q#","qsharp"],loader:()=>Nt(()=>import("./qsharp.Bw9ernYp.js"),[])});Vt({id:"r",extensions:[".r",".rhistory",".rmd",".rprofile",".rt"],aliases:["R","r"],loader:()=>Nt(()=>import("./r.j7ic8hl3.js"),[])});Vt({id:"razor",extensions:[".cshtml"],aliases:["Razor","razor"],mimetypes:["text/x-cshtml"],loader:()=>Nt(()=>import("./razor.zSAEURKX.js"),[])});Vt({id:"redis",extensions:[".redis"],aliases:["redis"],loader:()=>Nt(()=>import("./redis.Bu5POkcn.js"),[])});Vt({id:"redshift",extensions:[],aliases:["Redshift","redshift"],loader:()=>Nt(()=>import("./redshift.Bs9aos_-.js"),[])});Vt({id:"restructuredtext",extensions:[".rst"],aliases:["reStructuredText","restructuredtext"],loader:()=>Nt(()=>import("./restructuredtext.CqXO7rUv.js"),[])});Vt({id:"ruby",extensions:[".rb",".rbx",".rjs",".gemspec",".pp"],filenames:["rakefile","Gemfile"],aliases:["Ruby","rb"],loader:()=>Nt(()=>import("./ruby.zBfavPgS.js"),[])});Vt({id:"rust",extensions:[".rs",".rlib"],aliases:["Rust","rust"],loader:()=>Nt(()=>import("./rust.BzKRNQWT.js"),[])});Vt({id:"sb",extensions:[".sb"],aliases:["Small Basic","sb"],loader:()=>Nt(()=>import("./sb.BBc9UKZt.js"),[])});Vt({id:"scala",extensions:[".scala",".sc",".sbt"],aliases:["Scala","scala","SBT","Sbt","sbt","Dotty","dotty"],mimetypes:["text/x-scala-source","text/x-scala","text/x-sbt","text/x-dotty"],loader:()=>Nt(()=>import("./scala.D9hQfWCl.js"),[])});Vt({id:"scheme",extensions:[".scm",".ss",".sch",".rkt"],aliases:["scheme","Scheme"],loader:()=>Nt(()=>import("./scheme.BPhDTwHR.js"),[])});Vt({id:"scss",extensions:[".scss"],aliases:["Sass","sass","scss"],mimetypes:["text/x-scss","text/scss"],loader:()=>Nt(()=>import("./scss.CBJaRo0y.js"),[])});Vt({id:"shell",extensions:[".sh",".bash"],aliases:["Shell","sh"],loader:()=>Nt(()=>import("./shell.DiJ1NA_G.js"),[])});Vt({id:"sol",extensions:[".sol"],aliases:["sol","solidity","Solidity"],loader:()=>Nt(()=>import("./solidity.Db0IVjzk.js"),[])});Vt({id:"aes",extensions:[".aes"],aliases:["aes","sophia","Sophia"],loader:()=>Nt(()=>import("./sophia.CnS9iZB_.js"),[])});Vt({id:"sparql",extensions:[".rq"],aliases:["sparql","SPARQL"],loader:()=>Nt(()=>import("./sparql.CJmd_6j2.js"),[])});Vt({id:"sql",extensions:[".sql"],aliases:["SQL"],loader:()=>Nt(()=>import("./sql.ClhHkBeG.js"),[])});Vt({id:"st",extensions:[".st",".iecst",".iecplc",".lc3lib",".TcPOU",".TcDUT",".TcGVL",".TcIO"],aliases:["StructuredText","scl","stl"],loader:()=>Nt(()=>import("./st.CHwy0fLd.js"),[])});Vt({id:"swift",aliases:["Swift","swift"],extensions:[".swift"],mimetypes:["text/swift"],loader:()=>Nt(()=>import("./swift.Bqt4WxQ4.js"),[])});Vt({id:"systemverilog",extensions:[".sv",".svh"],aliases:["SV","sv","SystemVerilog","systemverilog"],loader:()=>Nt(()=>import("./systemverilog.Bs9z6M-B.js"),[])});Vt({id:"verilog",extensions:[".v",".vh"],aliases:["V","v","Verilog","verilog"],loader:()=>Nt(()=>import("./systemverilog.Bs9z6M-B.js"),[])});Vt({id:"tcl",extensions:[".tcl"],aliases:["tcl","Tcl","tcltk","TclTk","tcl/tk","Tcl/Tk"],loader:()=>Nt(()=>import("./tcl.Dm6ycUr_.js"),[])});Vt({id:"twig",extensions:[".twig"],aliases:["Twig","twig"],mimetypes:["text/x-twig"],loader:()=>Nt(()=>import("./twig.Csy3S7wG.js"),[])});Vt({id:"typescript",extensions:[".ts",".tsx",".cts",".mts"],aliases:["TypeScript","ts","typescript"],mimetypes:["text/typescript"],loader:()=>Nt(()=>import("./typescript.DV53gEQZ.js"),[])});Vt({id:"typespec",extensions:[".tsp"],aliases:["TypeSpec"],loader:()=>Nt(()=>import("./typespec.Btyra-wh.js"),[])});Vt({id:"vb",extensions:[".vb"],aliases:["Visual Basic","vb"],loader:()=>Nt(()=>import("./vb.Db0cS2oM.js"),[])});Vt({id:"wgsl",extensions:[".wgsl"],aliases:["WebGPU Shading Language","WGSL","wgsl"],loader:()=>Nt(()=>import("./wgsl.DumH7NcR.js"),[])});Vt({id:"xml",extensions:[".xml",".xsd",".dtd",".ascx",".csproj",".config",".props",".targets",".wxi",".wxl",".wxs",".xaml",".svg",".svgz",".opf",".xslt",".xsl"],firstLine:"(\\<\\?xml.*)|(\\<svg)|(\\<\\!doctype\\s+svg)",aliases:["XML","xml"],mimetypes:["text/xml","application/xml","application/xaml+xml","application/xml-dtd"],loader:()=>Nt(()=>import("./xml.CIyr564N.js"),[])});Vt({id:"yaml",extensions:[".yaml",".yml"],aliases:["YAML","yaml","YML","yml"],mimetypes:["application/x-yaml","text/x-yaml"],loader:()=>Nt(()=>import("./yaml.CUTaVxi2.js"),[])});var Thn=Object.defineProperty,Ehn=(i,e,t)=>e in i?Thn(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,Rt=(i,e,t)=>Ehn(i,typeof e!="symbol"?e+"":e,t),t3,YSe,n3,aq,i3;function Phn(i){return i.method!==void 0}var XSe;(function(i){function e(t){return t}i.create=e})(XSe||(XSe={}));var ug;(function(i){i.parseError=-32700,i.invalidRequest=-32600,i.methodNotFound=-32601,i.invalidParams=-32602,i.internalError=-32603;function e(o){return-32099<=o&&o<=-32e3}i.isServerError=e;function t(o){if(!e(o))throw new Error("Invalid range for a server error.");return o}i.serverError=t,i.unexpectedServerError=-32e3;function n(o){return!0}i.isApplicationError=n;function s(o){return o}i.applicationError=s,i.genericApplicationError=-320100})(ug||(ug={}));var wde=class{constructor(){Rt(this,"listeners",new Set),Rt(this,"event",i=>(this.listeners.add(i),{dispose:()=>{this.listeners.delete(i)}}))}fire(i){this.listeners.forEach(e=>e(i))}},Rhn=class{constructor(i){Rt(this,"_value"),Rt(this,"eventEmitter"),this._value=i,this.eventEmitter=new wde}get value(){return this._value}set value(i){this._value!==i&&(this._value=i,this.eventEmitter.fire(i))}get onChange(){return this.eventEmitter.event}};function Mhn(i,e){const t=setTimeout(e,i);return{dispose:()=>clearTimeout(t)}}function lq(i,e,t){return i instanceof Set?(i.add(e),{dispose:()=>i.delete(e)}):(i.set(e,t),{dispose:()=>i.delete(e)})}var Ahn=class{constructor(){Rt(this,"_state","none"),Rt(this,"promise"),Rt(this,"resolve",()=>{}),Rt(this,"reject",()=>{}),this.promise=new Promise((i,e)=>{this.resolve=i,this.reject=e})}get state(){return this._state}},p9e=(t3=class{constructor(){Rt(this,"_unprocessedMessages",[]),Rt(this,"_messageListener"),Rt(this,"id",t3.id++),Rt(this,"_state",new Rhn({state:"open"})),Rt(this,"state",this._state)}setListener(i){if(this._messageListener=i,!!i)for(;this._unprocessedMessages.length>0&&this._messageListener!==void 0;){const e=this._unprocessedMessages.shift();this._messageListener(e)}}send(i){return this._sendImpl(i)}_dispatchReceivedMessage(i){this._unprocessedMessages.length===0&&this._messageListener?this._messageListener(i):this._unprocessedMessages.push(i)}_onConnectionClosed(){this._state.value={state:"closed",error:void 0}}log(i){return new Ohn(this,i??new Fhn)}},Rt(t3,"id",0),t3),Ohn=class{constructor(i,e){Rt(this,"baseStream"),Rt(this,"logger"),this.baseStream=i,this.logger=e}get state(){return this.baseStream.state}setListener(i){if(i===void 0){this.baseStream.setListener(void 0);return}this.baseStream.setListener(e=>{this.logger.log(this.baseStream,"incoming",e),i(e)})}send(i){return this.logger.log(this.baseStream,"outgoing",i),this.baseStream.send(i)}toString(){return`StreamLogger/${this.baseStream.toString()}`}},Fhn=class{log(i,e,t){console.log(`${e==="incoming"?"<-":"->"} [${i.toString()}] ${JSON.stringify(t)}`)}},Bhn=class _9e{constructor(e){Rt(this,"connect"),this.connect=e}mapContext(e){return new _9e(t=>this.connect(t?Vhn(t,e):void 0))}};function Vhn(i,e){return{handleNotification:(t,n)=>i.handleNotification(t,e(n)),handleRequest:(t,n,s)=>i.handleRequest(t,n,e(s))}}var zhn=class b9e{constructor(e,t,n){Rt(this,"_stream"),Rt(this,"_listener"),Rt(this,"_logger"),Rt(this,"_unprocessedResponses",new Map),Rt(this,"_lastUsedRequestId",0),this._stream=e,this._listener=t,this._logger=n,this._stream.setListener(s=>{Phn(s)?s.id===void 0?this._processNotification(s):this._processRequest(s):this._processResponse(s)})}static createChannel(e,t){let n=!1;return new Bhn(s=>{if(n)throw new Error(`A channel to the stream ${e} was already constructed!`);return n=!0,new b9e(e,s,t)})}get state(){return this._stream.state}async _processNotification(e){if(e.id!==void 0)throw new Error;if(!this._listener){this._logger&&this._logger.debug({text:"Notification ignored",message:e});return}try{await this._listener.handleNotification({method:e.method,params:e.params||null})}catch(t){this._logger&&this._logger.warn({text:`Exception was thrown while handling notification: ${t}`,exception:t,message:e})}}async _processRequest(e){if(e.id===void 0)throw new Error;let t;if(this._listener)try{t=await this._listener.handleRequest({method:e.method,params:e.params||null},e.id)}catch(s){this._logger&&this._logger.warn({text:`Exception was thrown while handling request: ${s}`,message:e,exception:s}),t={error:{code:ug.internalError,message:"An unexpected exception was thrown.",data:void 0}}}else this._logger&&this._logger.debug({text:"Received request even though not listening for requests",message:e}),t={error:{code:ug.methodNotFound,message:"This endpoint does not listen for requests or notifications.",data:void 0}};let n;"result"in t?n={jsonrpc:"2.0",id:e.id,result:t.result}:n={jsonrpc:"2.0",id:e.id,error:t.error},await this._stream.send(n)}_processResponse(e){const t=""+e.id,n=this._unprocessedResponses.get(t);if(!n){this._logger&&this._logger.debug({text:"Got an unexpected response message",message:e});return}this._unprocessedResponses.delete(t),n(e)}_newRequestId(){return this._lastUsedRequestId++}sendRequest(e,t,n){const s={jsonrpc:"2.0",id:this._newRequestId(),method:e.method,params:e.params||void 0};return n&&n(s.id),new Promise((o,r)=>{const a=""+s.id;this._unprocessedResponses.set(a,l=>{"result"in l?o({result:l.result}):(l.error||r(new Error("Response had neither 'result' nor 'error' field set.")),o({error:l.error}))}),this._stream.send(s).then(void 0,l=>{this._unprocessedResponses.delete(a),r(l)})})}sendNotification(e,t){const n={jsonrpc:"2.0",id:void 0,method:e.method,params:e.params||void 0};return this._stream.send(n)}toString(){return"StreamChannel/"+this._stream.toString()}},TI;(function(i){function e(){return{deserializeFromJson:s=>({hasErrors:!1,value:s}),serializeToJson:s=>s}}i.sAny=e;function t(){return{deserializeFromJson:s=>({hasErrors:!1,value:{}}),serializeToJson:s=>({})}}i.sEmptyObject=t;function n(){return{deserializeFromJson:s=>({hasErrors:!1,value:void 0}),serializeToJson:s=>null}}i.sVoidFromNull=n})(TI||(TI={}));const v9e=Symbol("OptionalMethodNotFound");var w9e=class{contextualize(i){return new Whn(this,i)}},Whn=class extends w9e{constructor(i,e){super(),Rt(this,"underylingTypedChannel"),Rt(this,"converters"),this.underylingTypedChannel=i,this.converters=e}async request(i,e,t){const n=await this.converters.getSendContext(t);return this.underylingTypedChannel.request(i,e,n)}async notify(i,e,t){const n=await this.converters.getSendContext(t);return this.underylingTypedChannel.notify(i,e,n)}registerNotificationHandler(i,e){return this.underylingTypedChannel.registerNotificationHandler(i,async(t,n)=>await e(t,await this.converters.getNewContext(n)))}registerRequestHandler(i,e){return this.underylingTypedChannel.registerRequestHandler(i,async(t,n,s)=>await e(t,n,await this.converters.getNewContext(s)))}},One=class y9e extends w9e{constructor(e,t={}){super(),Rt(this,"channelCtor"),Rt(this,"_requestSender"),Rt(this,"_handler",new Map),Rt(this,"_unknownNotificationHandler",new Set),Rt(this,"_timeout"),Rt(this,"sendExceptionDetails",!1),Rt(this,"_logger"),Rt(this,"listeningDeferred",new Ahn),Rt(this,"onListening",this.listeningDeferred.promise),Rt(this,"_requestDidErrorEventEmitter",new wde),Rt(this,"onRequestDidError",this._requestDidErrorEventEmitter.event),this.channelCtor=e,this._logger=t.logger,this.sendExceptionDetails=!!t.sendExceptionDetails,this._timeout=Mhn(1e3,()=>{this._requestSender||console.warn(`"${this.startListen.name}" has not been called within 1 second after construction of this channel. Did you forget to call it?`,this)})}static fromTransport(e,t={}){return new y9e(zhn.createChannel(e,t.logger),t)}startListen(){if(this._requestSender)throw new Error(`"${this.startListen.name}" can be called only once, but it already has been called.`);this._timeout&&(this._timeout.dispose(),this._timeout=void 0),this._requestSender=this.channelCtor.connect({handleRequest:(e,t,n)=>this.handleRequest(e,t,n),handleNotification:(e,t)=>this.handleNotification(e,t)}),this.listeningDeferred.resolve()}checkChannel(e){if(!e)throw new Error(`"${this.startListen.name}" must be called before any messages can be sent or received.`);return!0}async handleRequest(e,t,n){const s=this._handler.get(e.method);if(!s)return this._logger&&this._logger.debug({text:`No request handler for "${e.method}".`,data:{requestObject:e}}),{error:{code:ug.methodNotFound,message:`No request handler for "${e.method}".`,data:{method:e.method}}};if(s.kind!="request"){const r=`"${e.method}" is registered as notification, but was sent as request.`;return this._logger&&this._logger.debug({text:r,data:{requestObject:e}}),{error:{code:ug.invalidRequest,message:r,data:{method:e.method}}}}const o=s.requestType.paramsSerializer.deserializeFromJson(e.params);if(o.hasErrors){const r=`Got invalid params: ${o.errorMessage}`;return this._logger&&this._logger.debug({text:r,data:{requestObject:e,errorMessage:o.errorMessage}}),{error:{code:ug.invalidParams,message:r,data:{errors:o.errorMessage}}}}else{const r=o.value;let a;try{const l=await s.handler(r,t,n);if("error"in l||"errorMessage"in l){const c=l.error?s.requestType.errorSerializer.serializeToJson(l.error):void 0;a={error:{code:l.errorCode||ug.genericApplicationError,message:l.errorMessage||"An error was returned",data:c}}}else a={result:s.requestType.resultSerializer.serializeToJson(l.ok)}}catch(l){l instanceof ZSe?a={error:{code:l.code,message:l.message}}:(this._logger&&this._logger.warn({text:`An exception was thrown while handling a request: ${l}.`,exception:l,data:{requestObject:e}}),a={error:{code:ug.unexpectedServerError,message:this.sendExceptionDetails?`An exception was thrown while handling a request: ${l}.`:"Server has thrown an unexpected exception"}})}return a}}async handleNotification(e,t){const n=this._handler.get(e.method);if(!n){for(const r of this._unknownNotificationHandler)r(e);this._unknownNotificationHandler.size===0&&this._logger&&this._logger.debug({text:`Unhandled notification "${e.method}"`,data:{requestObject:e}});return}if(n.kind!="notification"){this._logger&&this._logger.debug({text:`"${e.method}" is registered as request, but was sent as notification.`,data:{requestObject:e}});return}const s=n.notificationType.paramsSerializer.deserializeFromJson(e.params);if(s.hasErrors){this._logger&&this._logger.debug({text:`Got invalid params: ${s}`,data:{requestObject:e,errorMessage:s.errorMessage}});return}const o=s.value;for(const r of n.handlers)try{r(o,t)}catch(a){this._logger&&this._logger.warn({text:`An exception was thrown while handling a notification: ${a}.`,exception:a,data:{requestObject:e}})}}registerUnknownNotificationHandler(e){return lq(this._unknownNotificationHandler,e)}registerRequestHandler(e,t){if(this._handler.get(e.method))throw new Error(`Handler with method "${e.method}" already registered.`);return lq(this._handler,e.method,{kind:"request",requestType:e,handler:t})}registerNotificationHandler(e,t){let n=this._handler.get(e.method);if(!n)n={kind:"notification",notificationType:e,handlers:new Set},this._handler.set(e.method,n);else{if(n.kind!=="notification")throw new Error(`Method "${e.method}" was already registered as request handler.`);if(n.notificationType!==e)throw new Error(`Method "${e.method}" was registered for a different type.`)}return lq(n.handlers,t)}getRegisteredTypes(){const e=[];for(const t of this._handler.values())t.kind==="notification"?e.push(t.notificationType):t.kind==="request"&&e.push(t.requestType);return e}async request(e,t,n){if(!this.checkChannel(this._requestSender))throw new Error("Impossible");const s=e.paramsSerializer.serializeToJson(t);QSe(s);const o=await this._requestSender.sendRequest({method:e.method,params:s},n);if("error"in o){if(e.isOptional&&o.error.code===ug.methodNotFound)return v9e;let r;if(o.error.data!==void 0){const l=e.errorSerializer.deserializeFromJson(o.error.data);if(l.hasErrors)throw new Error(l.errorMessage);r=l.value}else r=void 0;const a=new ZSe(o.error.message,r,o.error.code);throw this._requestDidErrorEventEmitter.fire({error:a}),a}else{const r=e.resultSerializer.deserializeFromJson(o.result);if(r.hasErrors)throw new Error("Could not deserialize response: "+r.errorMessage+`
1303
1303
 
1304
1304
  ${JSON.stringify(o,null,2)}`);return r.value}}async notify(e,t,n){if(!this.checkChannel(this._requestSender))throw new Error;const s=e.paramsSerializer.serializeToJson(t);QSe(s),this._requestSender.sendNotification({method:e.method,params:s},n)}};function QSe(i){if(i!==null&&Array.isArray(i)&&typeof i!="object")throw new Error("Invalid value! Only null, array and object is allowed.")}var ZSe=class C9e extends Error{constructor(e,t,n=ug.genericApplicationError){super(e),Rt(this,"data"),Rt(this,"code"),this.data=t,this.code=n,Object.setPrototypeOf(this,C9e.prototype)}},Hhn=class Fne{constructor(e,t,n,s,o=!1){Rt(this,"method"),Rt(this,"paramsSerializer"),Rt(this,"resultSerializer"),Rt(this,"errorSerializer"),Rt(this,"isOptional"),Rt(this,"kind","request"),this.method=e,this.paramsSerializer=t,this.resultSerializer=n,this.errorSerializer=s,this.isOptional=o}withMethod(e){return new Fne(e,this.paramsSerializer,this.resultSerializer,this.errorSerializer)}optional(){return new Fne(this.method,this.paramsSerializer,this.resultSerializer,this.errorSerializer,!0)}},$hn=class S9e{constructor(e,t){Rt(this,"method"),Rt(this,"paramsSerializer"),Rt(this,"kind","notification"),this.method=e,this.paramsSerializer=t}withMethod(e){return new S9e(e,this.paramsSerializer)}};function mn(i){return new Hhn((i||{}).method,TI.sAny(),TI.sAny(),TI.sAny())}function Io(i){return new $hn((i||{}).method,TI.sAny())}const Uhn=Symbol();var exe=(YSe=Uhn,n3=class{constructor(i){Rt(this,"error"),Rt(this,YSe),this.error=i}},Rt(n3,"factory",i=>new n3(i)),n3);function jhn(i){const e=txe(i.server),t=txe(i.client);return new Ghn(i.tags||[],e,t)}function txe(i){const e={};for(const[t,n]of Object.entries(i)){const s=n.method?n.method:t;e[t]=n.withMethod(s)}return e}var Ghn=class x9e{constructor(e=[],t,n){Rt(this,"tags"),Rt(this,"server"),Rt(this,"client"),this.tags=e,this.server=t,this.client=n}_onlyDesignTime(){return new Error("This property is not meant to be accessed at runtime")}get TContractObject(){throw this._onlyDesignTime()}get TClientInterface(){throw this._onlyDesignTime()}get TServerInterface(){throw this._onlyDesignTime()}get TClientHandler(){throw this._onlyDesignTime()}get TServerHandler(){throw this._onlyDesignTime()}get TTags(){throw this._onlyDesignTime()}getInterface(e,t,n,s){const o=this.buildCounterpart(e,n),r=this.registerHandlers(e,t,s,o);return{counterpart:o,dispose:()=>r.dispose()}}buildCounterpart(e,t){const n={};for(const[s,o]of Object.entries(t)){let r;o.kind==="request"?o.isOptional?r=async(a,l)=>{a===void 0&&(a={});try{return await e.request(o,a,l)}catch(c){if(c&&c.code===ug.methodNotFound)return v9e;throw c}}:r=(a,l)=>(a===void 0&&(a={}),e.request(o,a,l)):r=(a,l)=>(a===void 0&&(a={}),e.notify(o,a,l)),n[s]=r}return n}registerHandlers(e,t,n,s){const o=[];for(const[r,a]of Object.entries(t))if(a.kind==="request"){let l=n[r];if(!l)continue;const c=this.createRequestHandler(s,l);o.push(e.registerRequestHandler(a,c))}else{const l=n[r];l&&o.push(e.registerNotificationHandler(a,(c,d)=>{l(c,{context:d,counterpart:s})}))}return{dispose:()=>o.forEach(r=>r.dispose())}}createRequestHandler(e,t){return async(n,s,o)=>{const r=await t(n,{context:o,counterpart:e,newErr:exe.factory,requestId:s});return r instanceof exe?r.error:{ok:r}}}static getServerFromStream(e,t,n,s){const o=One.fromTransport(t,n),{server:r}=e.getServer(o,s);return o.startListen(),{channel:o,server:r}}static registerServerToStream(e,t,n,s){const o=One.fromTransport(t,n),{client:r}=e.registerServer(o,s);return o.startListen(),{channel:o,client:r}}getServer(e,t){const{counterpart:n,dispose:s}=this.getInterface(e,this.client,this.server,t);return{server:n,dispose:s}}registerServer(e,t){const{counterpart:n,dispose:s}=this.getInterface(e,this.server,this.client,t);return{client:n,dispose:s}}withContext(){return new x9e(this.tags,this.server,this.client)}};let EI=(function(i){return i.Comment="comment",i.Imports="imports",i.Region="region",i})({}),Ko=(function(i){return i[i.File=1]="File",i[i.Module=2]="Module",i[i.Namespace=3]="Namespace",i[i.Package=4]="Package",i[i.Class=5]="Class",i[i.Method=6]="Method",i[i.Property=7]="Property",i[i.Field=8]="Field",i[i.Constructor=9]="Constructor",i[i.Enum=10]="Enum",i[i.Interface=11]="Interface",i[i.Function=12]="Function",i[i.Variable=13]="Variable",i[i.Constant=14]="Constant",i[i.String=15]="String",i[i.Number=16]="Number",i[i.Boolean=17]="Boolean",i[i.Array=18]="Array",i[i.Object=19]="Object",i[i.Key=20]="Key",i[i.Null=21]="Null",i[i.EnumMember=22]="EnumMember",i[i.Struct=23]="Struct",i[i.Event=24]="Event",i[i.Operator=25]="Operator",i[i.TypeParameter=26]="TypeParameter",i})({}),N9e=(function(i){return i[i.Deprecated=1]="Deprecated",i})({}),nxe=(function(i){return i[i.Type=1]="Type",i[i.Parameter=2]="Parameter",i})({}),qhn=(function(i){return i[i.None=0]="None",i[i.Full=1]="Full",i[i.Incremental=2]="Incremental",i})({}),ar=(function(i){return i[i.Text=1]="Text",i[i.Method=2]="Method",i[i.Function=3]="Function",i[i.Constructor=4]="Constructor",i[i.Field=5]="Field",i[i.Variable=6]="Variable",i[i.Class=7]="Class",i[i.Interface=8]="Interface",i[i.Module=9]="Module",i[i.Property=10]="Property",i[i.Unit=11]="Unit",i[i.Value=12]="Value",i[i.Enum=13]="Enum",i[i.Keyword=14]="Keyword",i[i.Snippet=15]="Snippet",i[i.Color=16]="Color",i[i.File=17]="File",i[i.Reference=18]="Reference",i[i.Folder=19]="Folder",i[i.EnumMember=20]="EnumMember",i[i.Constant=21]="Constant",i[i.Struct=22]="Struct",i[i.Event=23]="Event",i[i.Operator=24]="Operator",i[i.TypeParameter=25]="TypeParameter",i})({}),Khn=(function(i){return i[i.Deprecated=1]="Deprecated",i})({}),Jhn=(function(i){return i[i.PlainText=1]="PlainText",i[i.Snippet=2]="Snippet",i})({}),cq=(function(i){return i[i.Text=1]="Text",i[i.Read=2]="Read",i[i.Write=3]="Write",i})({}),Zp=(function(i){return i.Empty="",i.QuickFix="quickfix",i.Refactor="refactor",i.RefactorExtract="refactor.extract",i.RefactorInline="refactor.inline",i.RefactorRewrite="refactor.rewrite",i.Source="source",i.SourceOrganizeImports="source.organizeImports",i.SourceFixAll="source.fixAll",i})({}),zW=(function(i){return i.PlainText="plaintext",i.Markdown="markdown",i})({}),B_=(function(i){return i[i.Error=1]="Error",i[i.Warning=2]="Warning",i[i.Information=3]="Information",i[i.Hint=4]="Hint",i})({}),ixe=(function(i){return i[i.Unnecessary=1]="Unnecessary",i[i.Deprecated=2]="Deprecated",i})({}),J4=(function(i){return i[i.Invoked=1]="Invoked",i[i.TriggerCharacter=2]="TriggerCharacter",i[i.TriggerForIncompleteCompletions=3]="TriggerForIncompleteCompletions",i})({}),Y4=(function(i){return i[i.Invoked=1]="Invoked",i[i.TriggerCharacter=2]="TriggerCharacter",i[i.ContentChange=3]="ContentChange",i})({}),Bne=(function(i){return i[i.Invoked=1]="Invoked",i[i.Automatic=2]="Automatic",i})({}),Yhn=(function(i){return i.Relative="relative",i})({});var ni=class{constructor(i){this.method=i}};const On={textDocumentImplementation:new ni("textDocument/implementation"),textDocumentTypeDefinition:new ni("textDocument/typeDefinition"),textDocumentDocumentColor:new ni("textDocument/documentColor"),textDocumentColorPresentation:new ni("textDocument/colorPresentation"),textDocumentFoldingRange:new ni("textDocument/foldingRange"),textDocumentDeclaration:new ni("textDocument/declaration"),textDocumentSelectionRange:new ni("textDocument/selectionRange"),textDocumentPrepareCallHierarchy:new ni("textDocument/prepareCallHierarchy"),textDocumentSemanticTokensFull:new ni("textDocument/semanticTokens/full"),textDocumentSemanticTokensFullDelta:new ni("textDocument/semanticTokens/full/delta"),textDocumentLinkedEditingRange:new ni("textDocument/linkedEditingRange"),workspaceWillCreateFiles:new ni("workspace/willCreateFiles"),workspaceWillRenameFiles:new ni("workspace/willRenameFiles"),workspaceWillDeleteFiles:new ni("workspace/willDeleteFiles"),textDocumentMoniker:new ni("textDocument/moniker"),textDocumentPrepareTypeHierarchy:new ni("textDocument/prepareTypeHierarchy"),textDocumentInlineValue:new ni("textDocument/inlineValue"),textDocumentInlayHint:new ni("textDocument/inlayHint"),textDocumentDiagnostic:new ni("textDocument/diagnostic"),textDocumentInlineCompletion:new ni("textDocument/inlineCompletion"),textDocumentWillSaveWaitUntil:new ni("textDocument/willSaveWaitUntil"),textDocumentCompletion:new ni("textDocument/completion"),textDocumentHover:new ni("textDocument/hover"),textDocumentSignatureHelp:new ni("textDocument/signatureHelp"),textDocumentDefinition:new ni("textDocument/definition"),textDocumentReferences:new ni("textDocument/references"),textDocumentDocumentHighlight:new ni("textDocument/documentHighlight"),textDocumentDocumentSymbol:new ni("textDocument/documentSymbol"),textDocumentCodeAction:new ni("textDocument/codeAction"),workspaceSymbol:new ni("workspace/symbol"),textDocumentCodeLens:new ni("textDocument/codeLens"),textDocumentDocumentLink:new ni("textDocument/documentLink"),textDocumentFormatting:new ni("textDocument/formatting"),textDocumentRangeFormatting:new ni("textDocument/rangeFormatting"),textDocumentRangesFormatting:new ni("textDocument/rangesFormatting"),textDocumentOnTypeFormatting:new ni("textDocument/onTypeFormatting"),textDocumentRename:new ni("textDocument/rename"),workspaceExecuteCommand:new ni("workspace/executeCommand"),workspaceDidCreateFiles:new ni("workspace/didCreateFiles"),workspaceDidRenameFiles:new ni("workspace/didRenameFiles"),workspaceDidDeleteFiles:new ni("workspace/didDeleteFiles"),workspaceDidChangeConfiguration:new ni("workspace/didChangeConfiguration"),textDocumentDidOpen:new ni("textDocument/didOpen"),textDocumentDidChange:new ni("textDocument/didChange"),textDocumentDidClose:new ni("textDocument/didClose"),textDocumentDidSave:new ni("textDocument/didSave"),textDocumentWillSave:new ni("textDocument/willSave"),workspaceDidChangeWatchedFiles:new ni("workspace/didChangeWatchedFiles")},XM=jhn({server:{textDocumentImplementation:mn({method:"textDocument/implementation"}),textDocumentTypeDefinition:mn({method:"textDocument/typeDefinition"}),textDocumentDocumentColor:mn({method:"textDocument/documentColor"}),textDocumentColorPresentation:mn({method:"textDocument/colorPresentation"}),textDocumentFoldingRange:mn({method:"textDocument/foldingRange"}),textDocumentDeclaration:mn({method:"textDocument/declaration"}),textDocumentSelectionRange:mn({method:"textDocument/selectionRange"}),textDocumentPrepareCallHierarchy:mn({method:"textDocument/prepareCallHierarchy"}),callHierarchyIncomingCalls:mn({method:"callHierarchy/incomingCalls"}),callHierarchyOutgoingCalls:mn({method:"callHierarchy/outgoingCalls"}),textDocumentSemanticTokensFull:mn({method:"textDocument/semanticTokens/full"}),textDocumentSemanticTokensFullDelta:mn({method:"textDocument/semanticTokens/full/delta"}),textDocumentSemanticTokensRange:mn({method:"textDocument/semanticTokens/range"}),textDocumentLinkedEditingRange:mn({method:"textDocument/linkedEditingRange"}),workspaceWillCreateFiles:mn({method:"workspace/willCreateFiles"}),workspaceWillRenameFiles:mn({method:"workspace/willRenameFiles"}),workspaceWillDeleteFiles:mn({method:"workspace/willDeleteFiles"}),textDocumentMoniker:mn({method:"textDocument/moniker"}),textDocumentPrepareTypeHierarchy:mn({method:"textDocument/prepareTypeHierarchy"}),typeHierarchySupertypes:mn({method:"typeHierarchy/supertypes"}),typeHierarchySubtypes:mn({method:"typeHierarchy/subtypes"}),textDocumentInlineValue:mn({method:"textDocument/inlineValue"}),textDocumentInlayHint:mn({method:"textDocument/inlayHint"}),inlayHintResolve:mn({method:"inlayHint/resolve"}),textDocumentDiagnostic:mn({method:"textDocument/diagnostic"}),workspaceDiagnostic:mn({method:"workspace/diagnostic"}),textDocumentInlineCompletion:mn({method:"textDocument/inlineCompletion"}),initialize:mn({method:"initialize"}),shutdown:mn({method:"shutdown"}),textDocumentWillSaveWaitUntil:mn({method:"textDocument/willSaveWaitUntil"}),textDocumentCompletion:mn({method:"textDocument/completion"}),completionItemResolve:mn({method:"completionItem/resolve"}),textDocumentHover:mn({method:"textDocument/hover"}),textDocumentSignatureHelp:mn({method:"textDocument/signatureHelp"}),textDocumentDefinition:mn({method:"textDocument/definition"}),textDocumentReferences:mn({method:"textDocument/references"}),textDocumentDocumentHighlight:mn({method:"textDocument/documentHighlight"}),textDocumentDocumentSymbol:mn({method:"textDocument/documentSymbol"}),textDocumentCodeAction:mn({method:"textDocument/codeAction"}),codeActionResolve:mn({method:"codeAction/resolve"}),workspaceSymbol:mn({method:"workspace/symbol"}),workspaceSymbolResolve:mn({method:"workspaceSymbol/resolve"}),textDocumentCodeLens:mn({method:"textDocument/codeLens"}),codeLensResolve:mn({method:"codeLens/resolve"}),textDocumentDocumentLink:mn({method:"textDocument/documentLink"}),documentLinkResolve:mn({method:"documentLink/resolve"}),textDocumentFormatting:mn({method:"textDocument/formatting"}),textDocumentRangeFormatting:mn({method:"textDocument/rangeFormatting"}),textDocumentRangesFormatting:mn({method:"textDocument/rangesFormatting"}),textDocumentOnTypeFormatting:mn({method:"textDocument/onTypeFormatting"}),textDocumentRename:mn({method:"textDocument/rename"}),textDocumentPrepareRename:mn({method:"textDocument/prepareRename"}),workspaceExecuteCommand:mn({method:"workspace/executeCommand"}),workspaceDidChangeWorkspaceFolders:Io({method:"workspace/didChangeWorkspaceFolders"}),windowWorkDoneProgressCancel:Io({method:"window/workDoneProgress/cancel"}),workspaceDidCreateFiles:Io({method:"workspace/didCreateFiles"}),workspaceDidRenameFiles:Io({method:"workspace/didRenameFiles"}),workspaceDidDeleteFiles:Io({method:"workspace/didDeleteFiles"}),notebookDocumentDidOpen:Io({method:"notebookDocument/didOpen"}),notebookDocumentDidChange:Io({method:"notebookDocument/didChange"}),notebookDocumentDidSave:Io({method:"notebookDocument/didSave"}),notebookDocumentDidClose:Io({method:"notebookDocument/didClose"}),initialized:Io({method:"initialized"}),exit:Io({method:"exit"}),workspaceDidChangeConfiguration:Io({method:"workspace/didChangeConfiguration"}),textDocumentDidOpen:Io({method:"textDocument/didOpen"}),textDocumentDidChange:Io({method:"textDocument/didChange"}),textDocumentDidClose:Io({method:"textDocument/didClose"}),textDocumentDidSave:Io({method:"textDocument/didSave"}),textDocumentWillSave:Io({method:"textDocument/willSave"}),workspaceDidChangeWatchedFiles:Io({method:"workspace/didChangeWatchedFiles"}),setTrace:Io({method:"$/setTrace"}),cancelRequest:Io({method:"$/cancelRequest"}),progress:Io({method:"$/progress"})},client:{workspaceWorkspaceFolders:mn({method:"workspace/workspaceFolders"}).optional(),workspaceConfiguration:mn({method:"workspace/configuration"}).optional(),workspaceFoldingRangeRefresh:mn({method:"workspace/foldingRange/refresh"}).optional(),windowWorkDoneProgressCreate:mn({method:"window/workDoneProgress/create"}).optional(),workspaceSemanticTokensRefresh:mn({method:"workspace/semanticTokens/refresh"}).optional(),windowShowDocument:mn({method:"window/showDocument"}).optional(),workspaceInlineValueRefresh:mn({method:"workspace/inlineValue/refresh"}).optional(),workspaceInlayHintRefresh:mn({method:"workspace/inlayHint/refresh"}).optional(),workspaceDiagnosticRefresh:mn({method:"workspace/diagnostic/refresh"}).optional(),clientRegisterCapability:mn({method:"client/registerCapability"}).optional(),clientUnregisterCapability:mn({method:"client/unregisterCapability"}).optional(),windowShowMessageRequest:mn({method:"window/showMessageRequest"}).optional(),workspaceCodeLensRefresh:mn({method:"workspace/codeLens/refresh"}).optional(),workspaceApplyEdit:mn({method:"workspace/applyEdit"}).optional(),windowShowMessage:Io({method:"window/showMessage"}),windowLogMessage:Io({method:"window/logMessage"}),telemetryEvent:Io({method:"telemetry/event"}),textDocumentPublishDiagnostics:Io({method:"textDocument/publishDiagnostics"}),logTrace:Io({method:"$/logTrace"}),cancelRequest:Io({method:"$/cancelRequest"}),progress:Io({method:"$/progress"})}});function j0(i,e){if(i.textModel!==e)throw new Error(`Expected text model to be ${e}, but got ${i.textModel}`);return i}var sr=(aq=class{constructor(){Rt(this,"_store",new yde)}dispose(){this._store.dispose()}_register(i){if(i===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(i)}},Rt(aq,"None",Object.freeze({dispose(){}})),aq),yde=(i3=class{constructor(){Rt(this,"_toDispose",new Set),Rt(this,"_isDisposed",!1)}dispose(){this._isDisposed||(this._isDisposed=!0,this.clear())}clear(){if(this._toDispose.size!==0)try{for(const i of this._toDispose)i.dispose()}finally{this._toDispose.clear()}}add(i){if(!i)return i;if(i===this)throw new Error("Cannot register a disposable on itself!");return this._isDisposed?i3.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(i),i}},Rt(i3,"DISABLE_DISPOSED_WARNING",!1),i3);const I9e=new Map([[Zp.Empty,""],[Zp.QuickFix,"quickfix"],[Zp.Refactor,"refactor"],[Zp.RefactorExtract,"refactor.extract"],[Zp.RefactorInline,"refactor.inline"],[Zp.RefactorRewrite,"refactor.rewrite"],[Zp.Source,"source"],[Zp.SourceOrganizeImports,"source.organizeImports"],[Zp.SourceFixAll,"source.fixAll"]]);function Xhn(i){if(i)return I9e.get(i)??i}const Qhn=new Map([[pt.CodeActionTriggerType.Invoke,Bne.Invoked],[pt.CodeActionTriggerType.Auto,Bne.Automatic]]);function Zhn(i){return Qhn.get(i)??Bne.Invoked}const k9e=new Map([[ar.Text,pt.CompletionItemKind.Text],[ar.Method,pt.CompletionItemKind.Method],[ar.Function,pt.CompletionItemKind.Function],[ar.Constructor,pt.CompletionItemKind.Constructor],[ar.Field,pt.CompletionItemKind.Field],[ar.Variable,pt.CompletionItemKind.Variable],[ar.Class,pt.CompletionItemKind.Class],[ar.Interface,pt.CompletionItemKind.Interface],[ar.Module,pt.CompletionItemKind.Module],[ar.Property,pt.CompletionItemKind.Property],[ar.Unit,pt.CompletionItemKind.Unit],[ar.Value,pt.CompletionItemKind.Value],[ar.Enum,pt.CompletionItemKind.Enum],[ar.Keyword,pt.CompletionItemKind.Keyword],[ar.Snippet,pt.CompletionItemKind.Snippet],[ar.Color,pt.CompletionItemKind.Color],[ar.File,pt.CompletionItemKind.File],[ar.Reference,pt.CompletionItemKind.Reference],[ar.Folder,pt.CompletionItemKind.Folder],[ar.EnumMember,pt.CompletionItemKind.EnumMember],[ar.Constant,pt.CompletionItemKind.Constant],[ar.Struct,pt.CompletionItemKind.Struct],[ar.Event,pt.CompletionItemKind.Event],[ar.Operator,pt.CompletionItemKind.Operator],[ar.TypeParameter,pt.CompletionItemKind.TypeParameter]]);function egn(i){return i?k9e.get(i)??pt.CompletionItemKind.Text:pt.CompletionItemKind.Text}const L9e=new Map([[Khn.Deprecated,pt.CompletionItemTag.Deprecated]]);function tgn(i){return L9e.get(i)}const ngn=new Map([[pt.CompletionTriggerKind.Invoke,J4.Invoked],[pt.CompletionTriggerKind.TriggerCharacter,J4.TriggerCharacter],[pt.CompletionTriggerKind.TriggerForIncompleteCompletions,J4.TriggerForIncompleteCompletions]]);function ign(i){return ngn.get(i)??J4.Invoked}const sgn=new Map([[Jhn.Snippet,pt.CompletionItemInsertTextRule.InsertAsSnippet]]);function ogn(i){if(i)return sgn.get(i)}const D9e=new Map([[Ko.File,pt.SymbolKind.File],[Ko.Module,pt.SymbolKind.Module],[Ko.Namespace,pt.SymbolKind.Namespace],[Ko.Package,pt.SymbolKind.Package],[Ko.Class,pt.SymbolKind.Class],[Ko.Method,pt.SymbolKind.Method],[Ko.Property,pt.SymbolKind.Property],[Ko.Field,pt.SymbolKind.Field],[Ko.Constructor,pt.SymbolKind.Constructor],[Ko.Enum,pt.SymbolKind.Enum],[Ko.Interface,pt.SymbolKind.Interface],[Ko.Function,pt.SymbolKind.Function],[Ko.Variable,pt.SymbolKind.Variable],[Ko.Constant,pt.SymbolKind.Constant],[Ko.String,pt.SymbolKind.String],[Ko.Number,pt.SymbolKind.Number],[Ko.Boolean,pt.SymbolKind.Boolean],[Ko.Array,pt.SymbolKind.Array],[Ko.Object,pt.SymbolKind.Object],[Ko.Key,pt.SymbolKind.Key],[Ko.Null,pt.SymbolKind.Null],[Ko.EnumMember,pt.SymbolKind.EnumMember],[Ko.Struct,pt.SymbolKind.Struct],[Ko.Event,pt.SymbolKind.Event],[Ko.Operator,pt.SymbolKind.Operator],[Ko.TypeParameter,pt.SymbolKind.TypeParameter]]);function T9e(i){return D9e.get(i)??pt.SymbolKind.File}const rgn=new Map([[N9e.Deprecated,pt.SymbolTag.Deprecated]]);function E9e(i){return rgn.get(i)}const agn=new Map([[cq.Text,pt.DocumentHighlightKind.Text],[cq.Read,pt.DocumentHighlightKind.Read],[cq.Write,pt.DocumentHighlightKind.Write]]);function lgn(i){return i?agn.get(i)??pt.DocumentHighlightKind.Text:pt.DocumentHighlightKind.Text}const cgn=new Map([[EI.Comment,pt.FoldingRangeKind.Comment],[EI.Imports,pt.FoldingRangeKind.Imports],[EI.Region,pt.FoldingRangeKind.Region]]);function dgn(i){if(i)return cgn.get(i)}const ugn=new Map([[pg.Error,B_.Error],[pg.Warning,B_.Warning],[pg.Info,B_.Information],[pg.Hint,B_.Hint]]);function hgn(i){return ugn.get(i)??B_.Error}const ggn=new Map([[B_.Error,pg.Error],[B_.Warning,pg.Warning],[B_.Information,pg.Info],[B_.Hint,pg.Hint]]);function mgn(i){return i?ggn.get(i)??pg.Error:pg.Error}const P9e=new Map([[ixe.Unnecessary,VW.Unnecessary],[ixe.Deprecated,VW.Deprecated]]);function fgn(i){return P9e.get(i)}const pgn=new Map([[pt.SignatureHelpTriggerKind.Invoke,Y4.Invoked],[pt.SignatureHelpTriggerKind.TriggerCharacter,Y4.TriggerCharacter],[pt.SignatureHelpTriggerKind.ContentChange,Y4.ContentChange]]);function _gn(i){return pgn.get(i)??Y4.Invoked}function PI(i){if(i)return{id:i.command,title:i.title,arguments:i.arguments}}const bgn=new Map([[nxe.Type,pt.InlayHintKind.Type],[nxe.Parameter,pt.InlayHintKind.Parameter]]);function vgn(i){return i?bgn.get(i)??pt.InlayHintKind.Type:pt.InlayHintKind.Type}function Zw(i,e){if("targetUri"in i){const t=e.bridge.translateBackRange({uri:i.targetUri},i.targetRange);return{uri:t.textModel.uri,range:t.range,originSelectionRange:i.originSelectionRange?e.bridge.translateBackRange({uri:i.targetUri},i.originSelectionRange).range:void 0,targetSelectionRange:i.targetSelectionRange?e.bridge.translateBackRange({uri:i.targetUri},i.targetSelectionRange).range:void 0}}else{const t=e.bridge.translateBackRange({uri:i.uri},i.range);return{uri:t.textModel.uri,range:t.range}}}function La(i){return!i||i.length===0?{language:"*"}:i.map(e=>"notebook"in e?typeof e.notebook=="string"?{notebookType:e.notebook,language:e.language}:{notebookType:e.notebook.notebookType,language:e.language,pattern:e.notebook.pattern,scheme:e.notebook.scheme}:{language:e.language,pattern:e.pattern,scheme:e.scheme})}function wgn(i,e){if(!e)return!0;const t=i.getLanguageId();if(i.uri.toString(!0),!e||e.length===0)return!0;for(const n of e)if(!(n.language&&n.language!=="*"&&n.language!==t))return!0;return!1}function Vne(i){const e={severity:mgn(i.severity),startLineNumber:i.range.start.line+1,startColumn:i.range.start.character+1,endLineNumber:i.range.end.line+1,endColumn:i.range.end.character+1,message:i.message,source:i.source,code:typeof i.code=="string"?i.code:i.code?.toString()};return i.tags&&(e.tags=i.tags.map(t=>fgn(t)).filter(t=>t!==void 0)),i.relatedInformation&&(e.relatedInformation=i.relatedInformation.map(t=>({resource:h7.parse(t.location.uri),startLineNumber:t.location.range.start.line+1,startColumn:t.location.range.start.character+1,endLineNumber:t.location.range.end.line+1,endColumn:t.location.range.end.character+1,message:t.message}))),e}var ygn=class extends sr{constructor(i){super(),this._connection=i,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{completion:{dynamicRegistration:!0,contextSupport:!0,completionItemKind:{valueSet:Array.from(k9e.keys())},completionItem:{tagSupport:{valueSet:Array.from(L9e.keys())},commitCharactersSupport:!0,deprecatedSupport:!0,preselectSupport:!0}}}})),this._register(this._connection.capabilities.registerCapabilityHandler(On.textDocumentCompletion,!0,e=>pt.registerCompletionItemProvider(La(e.documentSelector),new Cgn(this._connection,e))))}},Cgn=class{constructor(i,e){Rt(this,"resolveCompletionItem"),this._client=i,this._capabilities=e,e.resolveProvider&&(this.resolveCompletionItem=async(t,n)=>(R9e(t,await this._client.server.completionItemResolve(t._lspItem),this._client.bridge,t._translated,t._model),t))}get triggerCharacters(){return this._capabilities.triggerCharacters}async provideCompletionItems(i,e,t,n){const s=this._client.bridge.translate(i,e),o=await this._client.server.textDocumentCompletion({textDocument:s.textDocument,position:s.position,context:t.triggerCharacter?{triggerKind:ign(t.triggerKind),triggerCharacter:t.triggerCharacter}:void 0});return o?{suggestions:(Array.isArray(o)?o:o.items).map(r=>({...Sgn(r,this._client.bridge,s,i,e),_lspItem:r,_translated:s,_model:i}))}:{suggestions:[]}}};function Sgn(i,e,t,n,s){let o=i.insertText||i.label,r;i.textEdit&&("range"in i.textEdit?(o=i.textEdit.newText,r=j0(e.translateBackRange(t.textDocument,i.textEdit.range),n).range):(o=i.textEdit.newText,r={insert:j0(e.translateBackRange(t.textDocument,i.textEdit.insert),n).range,replace:j0(e.translateBackRange(t.textDocument,i.textEdit.replace),n).range})),r||(r=AL.fromPositions(s,s));const a={label:i.label,kind:egn(i.kind),insertText:o,sortText:i.sortText,filterText:i.filterText,preselect:i.preselect,commitCharacters:i.commitCharacters,range:r};return R9e(a,i,e,t,n),a}function R9e(i,e,t,n,s){e.detail!==void 0&&(i.detail=e.detail),e.documentation!==void 0&&(i.documentation=xgn(e.documentation)),e.insertTextFormat!==void 0&&(i.insertTextRules=ogn(e.insertTextFormat)),e.tags&&e.tags.length>0&&(i.tags=e.tags.map(tgn).filter(o=>o!==void 0)),e.additionalTextEdits&&e.additionalTextEdits.length>0&&(i.additionalTextEdits=e.additionalTextEdits.map(o=>({range:j0(t.translateBackRange(n.textDocument,o.range),s).range,text:o.newText}))),e.command&&(i.command=PI(e.command))}function xgn(i){if(i)return typeof i=="string"?i:{value:i.value,isTrusted:!0}}var Ngn=class extends sr{constructor(i){super(),this._connection=i,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{hover:{dynamicRegistration:!0,contentFormat:[zW.Markdown,zW.PlainText]}}})),this._register(this._connection.capabilities.registerCapabilityHandler(On.textDocumentHover,!0,e=>pt.registerHoverProvider(La(e.documentSelector),new Ign(this._connection,e))))}},Ign=class{constructor(i,e){this._client=i,this._capabilities=e}async provideHover(i,e,t){const n=this._client.bridge.translate(i,e),s=await this._client.server.textDocumentHover({textDocument:n.textDocument,position:n.position});return!s||!s.contents?null:{contents:kgn(s.contents),range:s.range?this._client.bridge.translateBackRange(n.textDocument,s.range).range:void 0}}};function kgn(i){return Array.isArray(i)?i.map(e=>sxe(e)):[sxe(i)]}function sxe(i){return typeof i=="string"?{value:i,isTrusted:!0}:"kind"in i?{value:i.value,isTrusted:!0}:{value:`\`\`\`${i.language}
1305
1305
  ${i.value}
@@ -1353,4 +1353,4 @@ Please exit multi-select mode to add a command.`,variant:"caution",type:"basic"}
1353
1353
  url('${n}/woff2/Pretendard-${a}.woff2') format('woff2'),
1354
1354
  url('${n}/woff/Pretendard-${a}.woff') format('woff');
1355
1355
  }
1356
- `;const r=document.createElement("style");r.setAttribute("data-dynamic-font","pretendard"),r.innerHTML=o,document.head.appendChild(r)},T4n={"menu.title.dashboard":"D.Board","menu.title.move":"Move","menu.title.program":"Program","menu.title.plugin":"Plug-in","menu.title.log":"Log","menu.title.settings":"Settings","menu.title.maintenance":"Maint.","menu.title.help":"Help","menu.title.robotSelect":"Robot Select","header.title.emcStop":"EMERGENCY STOP","header.title.fullSimulator":"Full Simulator","header.title.externalNetwork":"Public Network","header.title.closedNetwork":"Private Network","header.toast.title.powerCtrlFail":"Robot Power Control Fail","header.toast.desc.powerCtrlFail":"Please check the network.","footer.title.selectProgram":"Select Program","footer.title.speed":"Speed","controlBar.lock.lock":"Lock control bar","controlBar.lock.locked":"Locked","controlBar.lock.holdToUnlock":"Unlock: press and hold","controlBar.toast.locked":"Locked · hold the lock button to unlock","controlBar.toast.lockOn":"Locked · Stop is still available","controlBar.toast.unlocked":"Unlocked","controlBar.popover.title":"Current step per robot","controlBar.robotCount":"{{count}} robots","controlBar.step.waiting":"Waiting","controlBar.step.done":"Done","controlBar.repeat.infinite":"Infinite","controlBar.repeat.down":"Decrease repeat","controlBar.repeat.up":"Increase repeat","controlBar.speed.down":"Decrease speed","controlBar.speed.up":"Increase speed","modal.conn.button.all":"All","modal.conn.button.servo":"Servo","modal.conn.button.power":"Power","modal.conn.button.motor":"Motor","dashboard.title.systemOverview":"System Overview","dashboard.title.totalComponent":"Total Component","dashboard.title.activeComponent":"Active Component","dashboard.title.robotComponent":"Robot Component","dashboard.title.robotComponents":"Robot Components","dashboard.title.networkType":"Network Type","dashboard.title.cpuUseRate":"CPU Use Rate","dashboard.title.error":"24H Error","dashboard.title.robotInfo":"Robot Info","dashboard.title.recentLogs":"Recent Logs","dashboard.title.amrNavStatus":"AMR Navigation Status","dashboard.title.amrMoveHistory":"AMR Move History","dashboard.content.localization":"Localization","dashboard.content.mapEditor":"Map Editor","dashboard.content.currentNode":"Current Node","dashboard.content.targetNode":"Target Node","dashboard.content.mapName":"Map Name","dashboard.content.linearSpeed":"Linear Speed","dashboard.content.rotationSpeed":"Rotation Speed","dashboard.content.localizationStatus":"Localization Status","dashboard.content.obstacle":"Obstacle","dashboard.content.pathState":"Path State","dashboard.content.alias":"Alias","dashboard.content.model":"Model","dashboard.content.components":"Components","dashboard.content.status":"Status","dashboard.content.repeat":"Repeat","dashboard.content.step":"Step","dashboard.content.type":"Type","dashboard.content.motorAvgTmp":"Motor Avg Temp","dashboard.content.mode":"Mode","dashboard.content.version":"Version","dashboard.content.infinite":"Infinite","dashboard.button.editInfo":"Edit Information","dashboard.button.viewAllLogs":"View All Logs","dashboard.button.stop":"Stop","dashboard.button.play":"Play","dashboard.button.moveControl":"Move","dashboard.button.detail":"Detail","dashboard.button.viewAllHistory":"View All History","dashboard.modal.title.inputRobotInfo":"Input Robot infomation","dashboard.modal.desc.inputRobotInfo":"Please enter the robot information.","dashboard.modal.label.category":"Category","dashboard.modal.label.robotModel":"Robot Model","dashboard.modal.label.serialNumber":"Serial Number","dashboard.modal.label.robotName":"Robot Name","dashboard.modal.label.optional":"optional","dashboard.modal.button.submit":"Submit","dashboard.modal.button.qrCode":"QR Code","dashboard.modal.msg.serialNumber":"Serial Number is required.","dashboard.modal.title.qrScanGuide":"QR Code Scan Guide","dashboard.modal.desc.qrScanGuide":"After connecting the barcode USB to the robot, please scan the QR code on the robot nameplate.","dashboard.title.power":"Power","dashboard.title.servo":"Servo","dashboard.title.controlManager":"Control Manager","dashboard.title.toolFlangePower":"Tool Flange Power","dashboard.title.brake":"Brake","dashboard.button.selectAll":"Select All","dashboard.button.deselectAll":"Deselect All","dashboard.button.allOn":"All ON","dashboard.button.allOff":"All OFF","dashboard.content.axisCount":"{{count}} axes","move.title.distance":"Distance","move.title.rotation":"Rotation","move.title.selectCoordinate":"Select Coordinate","move.content.outCollDetect":"Out collision detection","move.content.noOutcoll":"No out collision","move.content.selfCollDetect":"Self collision detection","move.content.noSelfcoll":"No self collision","move.content.emcStopOn":"Emergency Stop On","move.content.emcStopOff":"Emergency Stop Off","move.button.change":"Change","log.title.log":"Log","log.title.filter":"Filter","log.title.total":"Total","log.title.rows":"Rows per Page","log.title.createdAt":"Created At","log.title.swName":"SW Name","log.title.level":"Level","log.title.contents":"Contents","log.title.dateRange":"Date Range","log.title.excludeText":"Exclude Text","log.button.exportCSV":"Export CSV","log.button.exportTXT":"Export TXT","log.button.showAll":"Show All","log.button.showLess":"Show Less","log.button.resetFilter":"Reset filter","log.button.selectDate":"Select Date","log.button.confirm":"Confirm","log.label.from":"From","log.label.to":"To","log.placeholder.search":"Search","log.toast.title.duplicateText":"Duplicate filter text","log.toast.content.duplicateText":"The same text cannot be used in both include and exclude filters.","settings.menu.title.general":"General","settings.menu.title.system":"System","settings.menu.title.tool":"Tool","settings.menu.title.Frame":"Frame","settings.menu.title.io":"I/O","settings.menu.title.devices":"Devices","settings.general.menu.robotMounting":"Robot Mounting","settings.general.menu.collDetection":"Collision Detection","settings.general.menu.handGuiding":"Hand Guiding","settings.general.menu.userScript":"User Script","settings.general.menu.afterAction":"After Action","settings.system.menu.configuration":"Configuration","settings.tool.menu.toolList":"Tool List","settings.tool.menu.flange":"Flange","settings.tool.flange.desc":"Configure boot-up options and enable/disable the Direct Teaching button and vibration sensor on the robot's flange.","settings.tool.menu.gripper":"Gripper","settings.tool.gripper.desc":"Set the default gripper attachment and publish data types.","settings.frame.menu.userCoordinate":"User Coordinate","settings.frame.menu.area":"Area","settings.io.menu.dinFunctions":"Box D.In Functions","settings.io.menu.extDoutFunctions":"Ext D.Out Functions","settings.io.menu.extDinFunctions":"Ext D.In Functions","settings.io.menu.extDinFilter":"Ext D.In Filter","settings.io.menu.doutFunctions":"Box D.Out Functions","settings.io.menu.toolDoutFunctions":"Tool D.Out Functions","settings.io.menu.toolDinFunctions":"Tool D.In Functions","settings.io.menu.toolDinFilter":"Tool D.In Filter","settings.io.menu.dinFilter":"Box D.In Filter","settings.button.save":"Save","settings.button.edit":"Edit","settings.button.cancel":"Cancel","settings.button.settingsReset":"Reset","settings.button.set":"Set","settings.rby1.parameters.title":"Parameters","settings.rby1.parameters.desc":"View and change robot parameters. Enter values in the same format as the current value (strings include double quotes).","settings.rby1.parameters.refresh":"Refresh","settings.rby1.parameters.defaultReset":"DEFAULT RESET","settings.rby1.parameters.factoryReset":"FACTORY RESET","settings.rby1.parameters.defaultResetAllContent":"Reset all parameters to default. This cannot be undone. Continue?","settings.rby1.parameters.factoryResetAllContent":"Reset all parameters to factory values. This cannot be undone. Continue?","settings.rby1.parameters.resetOneContent":"Reset {{name}} to its default value. Continue?","settings.rby1.parameters.searchPlaceholder":"Search parameter name","settings.rby1.parameters.name":"Name","settings.rby1.parameters.type":"Type","settings.rby1.parameters.currentValue":"Current Value","settings.rby1.parameters.newValue":"New Value","settings.rby1.parameters.empty":"No parameters.","settings.rby1.parameters.setSuccess":"{{name}} updated.","settings.general.title.gravityDirection":"Gravity Direction","settings.general.desc.gravityDirection":"Set the robot's installation angle. Enter the direction vector of the gravitational acceleration relative to the Global coordinate system.","settings.general.title.outCollision":"Out Collision","settings.general.desc.outCollision":"Sets the collision sensitivity. the lower the sensitivity, the more the robot stops even with a weak impact.","settings.general.title.selfCollision":"Self Collision","settings.general.desc.selfCollision":"Sets the self-collision mode and detection distance.","settings.general.outColl.title.threshold":"Threshold","settings.general.outColl.title.stopMode":"Stop Mode","settings.general.outColl.title.onOff":"On/Off","settings.general.selfColl.title.detectDist":"Detection distance","settings.general.selfColl.title.robotArm":"Robot Arm","settings.general.selfColl.title.external":"External","settings.general.title.sensitivity":"Sensitivity","settings.general.desc.sensitivity":"The sensitivity of each joint can be adjusted within a range of 0 to 2. The default value is 1. Higher values require less force to operate.","settings.general.title.bootupJointImpedance":"Boot-Up Joint Impedance","settings.general.desc.bootupJointImpedance":"Set the joint impedance values applied at control box boot-up.","settings.system.title.language":"Language","settings.tool.title.name":"Name","settings.tool.title.mass":"Mass","settings.tool.title.centerOfGravity":"Center of Gravity","settings.tool.title.position":"Position","settings.tool.title.rotation":"Rotation","settings.tool.title.size":"Size","settings.io.title.function":"Desired Function","settings.io.digitalInput":"Digital Input {{msg}}","settings.io.digitalOutput":"Digital Output {{msg}}","settings.io.toolInput":"Tool Input {{msg}}","settings.io.toolOutput":"Tool Output {{msg}}","program.command":"{{mode}} Commands","program.common":"Common","program.manipulate":"Manipulator","program.amr":"AMR","program.rby1":"RBY1","program.modal.title.load":"Program Load","program.modal.desc.load":"Load the desired program. Unsaved changes will be lost.","program.modal.button.export":"Export","program.modal.button.delete":"Delete","program.modal.button.order":"Order","program.modal.button.lastLoadedAt":"Last loaded","program.modal.button.createdAt":"Created","program.modal.button.updatedAt":"Updated","program.modal.button.ascending":"Ascending","program.modal.button.cancel":"Cancel","program.modal.button.load":"Load","program.modal.placeholder.search":"Search program name","program.modal.desc.repeatCount":"Number of repetitions","program.modal.title.edit":"Program Edit","program.modal.desc.edit":"Modify the program name or change the number of repetitions.","program.modal.label.programName":"Program Name","program.modal.label.directInput":"Direct Input","program.button.edit.disable":"Disable","program.button.edit.marking":"Marking","program.button.move":"Move","program.button.movej":"Move J","program.button.movel":"Move L","program.button.movejb":"Move JB","program.button.movelb":"Move LB","program.button.movexb":"Move XB","program.button.point":"Point","program.button.pinPoint":"Pin Point","program.button.pinJoint":"Pin Joint","program.button.home":"Home","program.button.wait":"Wait","program.button.folder":"Folder","program.button.memo":"Memo","program.button.alarmHalt":"Alarm/Halt","program.button.debug":"Debug","program.button.userInput":"User Input","program.button.changeProgram":"Change Program","program.button.userSelect":"User Select","program.button.extAxis":"Ext.Axis","program.button.condition":"If","program.button.elif":"Else If","program.button.else":"Else","program.button.switch":"Switch","program.button.postProgram":"PostProgram","program.button.preProgram":"PreProgram","program.button.set":"Set","program.button.tcpSet":"TCP Set","program.button.manual":"Manual.D","program.button.movingPoint":"M.Point","program.button.repeat":"Repeat","program.button.break":"Break","program.button.thread":"Thread","program.button.circle":"Circle","program.button.replay":"Replay","program.button.arcSensing":"ArcSensing","program.button.motionMacro":"Motion Macro","program.button.sync":"Sync","program.button.dout":"D.Out","program.button.aout":"An.Out","program.button.toolout":"Tool Out","program.button.gripper":"Gripper","program.button.arcWeld":"ArcWeld","program.button.welder":"Welder","program.button.script":"Script","program.button.variables":"Variables","program.button.monitoring":"Monitor","progarm.button.rs485":"RS485","program.button.functionCall":"Function Call","program.button.socket":"Socket","program.button.modbus":"Modbus","program.button.interface":"Interface","program.button.subTask":"Sub Task","program.button.pattern":"Pattern","program.button.conveyor":"Conveyor","program.button.forceCtrl":"Force","program.button.weaving":"Weaving","program.button.touchSensing":"TouchSensing","program.button.timer":"Timer","program.button.gcode":"G-Code","program.toast.success.copy":"Copied successfully.","program.toast.success.cut":"Cut successfully.","program.toast.fail.paste":"Cannot paste","program.toast.fail.addTreeItem":"Cannot be added","program.toast.fail.disable":"Cannot be disabled","program.button.end":"End","program.button.begin":"Begin","program.button.jump":"Jump","setting.gravity.static":"Static","setting.gravity.dynamic":"Dynamic","program.title.common":"Common","program.title.command":"Command","program.title.alarm":"Alarm","program.field.option":"Option","program.box.options":"Options","program.box.option":"Option","program.field.save":"Save","program.field.executiomn":"Execution","program.field.condition":"Condition","program.options.execute.always":"Always Execute","program.options.execute.use":"Run only when UI is in use","program.options.option.alarm":"Alarm","program.options.option.halt":"Halt","program.options.option.stop":"Sub Task Halt","program.options.option.folder":"Folder Halt","program.options.save.simple":"Simple Alarm","program.options.save.log":"Save [Title] as [User-Log]","program.options.pause.current":"Current Task","program.field.title":"Title","program.field.content":"Content","program.box.alarm":"Alarm","program.box.settings":"Settings","program.box.setting":"Setting","program.box.content":"Content","program.desc.alarm":"Pause the program flow, then pop-up the alarm window.","program.desc.halt":"Stop the Program / Thread execution.","program.desc.sub":"Stop the Sub Program execution.","program.desc.folder":"Exit the folder where the command is being executed.","program.box.mode":"Mode","program.box.condition":"Condition","program.options.mode.condition":"{{mode}} Condition","program.options.mode.time":"Time","program.options.mode.holding":"Holding","program.options.mode.exit":"Exit","program.field.time_to_wait":"Time to wait (seconds)","program.field.mode":"Mode","program.options.mode.general":"General","program.options.mode.digital":"Digital Input","program.field.wait_timeout":"Time Out Seconds","program.box.condition_settings":"Condition Settings","program.box.add_conditions":"Add Conditions","program.title.if":"If","program.title.elif":"Else If","program.title.else":"Else","program.button.add_variable":"Add Variable","program.button.add_case":"Add Case","program.button.add_elif":"Add Else If","program.button.add_else":"Add Else","program.button.add":"Add","program.title.debug":"Debug","program.field.execution":"Execution","program.field.pause":"Pause","program.options.debug.dialog":"Debug popup","program.options.debug.log":"User Log","program.options.execution.always":"Always Execute","program.options.execution.ui":"Run only when UI is in use","program.options.pause.all":"All Tasks","program.options.pause.crrent":"Current Task","program.desc.debug.dialog":"Pauses the program and displays the selected variable values in a pop-up.\\nAdd the names of the variables to debug.","program.desc.debug.log":"Logs text or string variables to the log system.\\nFrequent logging may affect system performance.","program.box.set_value_name":"Set Variables name","program.field.variables":"Variables","program.field.name":"Name","program.desc.debug.variables":"Enter the name of the variable to debug.","program.button.variable":"Variable","program.box.log":"Log","program.title.case":"Case","program.button.case":"Case","program.button.case_default":"Case Default","program.field.switch":"Switch","program.field.value":"Value","program.box.configuration":"Configuration","program.field.case":"Case","program.field.memo":"Memo","program.options.break.break":"Break","program.options.break.continue":"Continue","program.desc.break.continue":"Function to escape from 'Repeat'","program.desc.break.break":"Moves to the next cycle of the loop.","program.options.repeat.count":"Count","program.options.repeat.while":"While","program.options.repeat.do_while":"Do While","program.options.repeat.direct":"Manual Entry","program.options.repeat.infinite":"Infinite loop","program.desc.repeat":"Entering a negative number for the number of repetitions results in an infinite loop.","program.field.repeat.count":"Number of repetitions","program.field.repeat.while":"While condition","program.field.repeat.do_while":"Do While condition","program.box.jump":"Jump Target","program.box.folder":"Folder","program.box.additional":"Additional","program.box.color":"Color","program.field.color":"Color","program.field.finish_at_condition":"Finish At Condition","program.tooltip.point.finish_at_condition":"Ends the motion command before it is completed when the specified condition is met.","program.field.stopping_time":"Stopping Time (sec)","program.tooltip.point.stopping_time":"Sets the stopping time after the Finish At condition is met. Enter 0 to stop immediately.","program.box.memo":"Memo","program.field.select_mode":"Select Mode","program.field.flag":"Flag","program.field.timeout":"Timeout","program.box.set_flag":"Flag","program.options.select_mode.select":"Select","program.options.select_mode.direct":"Direct","program.desc.preProgram":"Enter the function to execute before the program starts.","program.desc.postProgram":"Insert the functions to be executed when the program ends (or halts).","program.desc.postProgram.manipulate":"Functions related to the robot movement (Move, Conveyor, Force etc) are not available.","program.box.set_variables":"Set Variables","program.desc.variables":"Declare and designate the value of a variable.\\nVariables can be changed through the program to allow for greater flexibility with conditionals.\\nA variable can be one of the 5 following types: String, Numeric, Boolean, List, Dictionary","program.field.declare_type":"Declare Type","program.field.type":"Type","program.field.name_or_value":"Target Variable Name or Value","program.field.init_value":"Initial value","program.desc.variables.string":'This data type stores string values. When storing a value, enclose it in "" to indicate that it is a string. It is okay to store it with the "" still present.',"program.desc.variables.numeric":"int' represents a numeric data type, similar to 'float'.","program.desc.variables.boolean":"It refers to boolean data types such as 'true' and 'false'.","program.desc.variables.list":"This refers to Python's 'List' data type. In the case of collaborative robots, it is used to store joint values.","program.desc.variables.dictionary":"This refers to Python's 'Dictionary' data type. In the case of collaborative robots, it is used to store tool information.","program.desc.variables.variable":`Use get("name") or get_var("name") to reference a local variable, and get("Robot Model", "name") for another program's variable. Expressions such as "abc" + get("a") are allowed.`,"program.field.desc.boolean":"Select Boolean Value","program.box.contents":"Contents","program.options.script.general":"General","program.options.script.advanced":"Advanced","program.button.add_script":"Add Script","program.desc.script":"To send a script to the control box, please enter the contents.","program.options.interface.modbus":"Modbus Client (Interrupt)","program.options.interface.mc":"Mitsubishi (MC Protocol)","program.options.interface.xgt":"LS PLC (XGT Protocol)","program.options.interface.socket":"Socket Interface","program.options.interface.mechmind":"MechMind 3D","program.box.modbus":"Modbus Client","program.box.mc":"MC Protocol","program.box.xgt":"XGT Protocol","program.box.socket":"Socket Interface","program.box.mechmind":"MechMind 3D Interface","program.field.target_ip":"Target Server IP Address","program.field.target_port":"Target Server Port Number","program.field.function_list":"Function List (Code)","program.field.timeout_sec":"Timeout (sec)","program.box.write_configuration":"Write Configuration","program.field.target_address":"Target Address","program.field.target_payload":"Target Payload","program.desc.modbus.write.add_payload":"Please enter a payload value.\\nOnly numbers up to unsigned 2 bytes in size are allowed (2¹⁶ - 1= 65,535).\\nUp to 40 payloads can be added.","program.desc.mc.write.word.add_payload":"Please enter a payload value.\\nOnly numbers up to 2 bytes in size are allowed (-2¹⁵ ~ 2¹⁵-1 = -32,768 ~ 32,767).\\nUp to 40 payloads can be added.","program.desc.mc.write.bit.add_payload":"Please enter a payload value.\\nOnly binary values are accepted [False (0), True (1)].\\nUp to 40 payloads can be added.","program.desc.socket.byte.add_payload":"Please enter a payload value.\\nOnly numbers up to unsigned 1 byte in size are allowed (2⁸−1 = 0~ 255).\\nUp to 40 payloads can be added.","program.button.add_payload":"Add Payload","program.field.target_name":"Target variable Name","program.field.target_length":"Target variable Write length","program.options.thread.general":"Insert General/Non-Stop Thread","program.options.thread.event":"Event thread call","program.field.thread_select":"Select Thread Type","program.ph.thread":"Please select a thread type.","program.button.select":"Select","program.field.thread_index":"Thread Index","program.ph.thread.thread_index":"Select event thread.","program.ph.thread.no_data":"No event threads are registered.","program.options.thread.type.general":"General Thread","program.options.thread.type.event":"Event General Thread","program.field.allow_pause":"Allow Pause","program.option.thread.allow":"Allow","program.option.thread.ignore":"Ignore","program.desc.thread.general":"Runs automatically in parallel with the main program.\\nUse the 'Repeat' function for repeated actions.\\nRobot movement functions (such as Move, Circle etc) are not available.\\nThe thread is also paused when the 'Pause' or 'Alarm' function is used.","program.desc.thread.event":"Does not start automatically and runs when an event is triggered.\\nUse the 'Repeat' function for repeated actions.\\nRobot movement functions (such as Move, Circle etc) are not available.\\nThe Thread is also paused when the 'Pause' or 'Alarm' function is used.","program.desc.thread.basic":"General Thread: In 'Pause' or 'Collision Detection' situations, thread opreation is paused.\\nNon-Stop Thread: In 'Collision Detection' situation, thread opreation is paused.\\nNon-Stop Thread2: In both cases the thread does not stop.","program.button.cancel":"Cancel","program.button.add_point":"Add Point","program.field.robot_model":"Robot Model","program.ph.memo":"Enter a memo.","program.options.move.intended":"Intended","program.options.move.constant":"Constant","program.options.move.velocity":"Velocity Blending","program.options.move.position":"Position Blending","program.field.variable_name":"Variable Name","program.tooltip.point.variable_name":"Stores the target position values.","program.field.point_name":"Point Name","program.tooltip.point.point_name":"Specifies the name of the point command.","program.tooltip.point.memo":"Enter additional information for reference.","program.field.input_method":"Input Method","program.tooltip.point.input_method":"Enter an absolute position or a position relative to the reference point.","program.box.target_":"Target {{mode}}","program.options.mode.direct":"Manual Input","program.options.mode.relative":"Relative Motion","program.field.reference_point":"Reference Point","program.tooltip.point.reference_point":"Select point variables declared in previous steps or global variables.","program.button.current_position":"Get Current Position","program.button.preview":"Preview","program.ph.point.reference_point":"Select Reference Point.","program.options.coordinate.joint_space":"Joint Space","program.options.coordinate.global_space":"Global Frame","program.options.coordinate.tool_space":"Tool Frame","program.options.coordinate.user_space":"User Frame","program.options.coordinate.target_space":"Target Frame","program.field.reference_coordinate":"Reference Coordinate","program.field.move_unit":"Move unit","program.box.speed":"Speed","program.field.setting_method":"Setting Method","program.field.velocity":"Velocity","program.field.acceleration":"Acceleration","program.options.setting_method.per_spd":"%-based","program.options.setting_method.abs_spd":"Absolute/physical value","program.options.tcp_tool.current":"Keep current selection","program.field.additional_properties":"Additional Properties","program.field.additional":"Additional Settings","program.field.after_script":"After Done Script","program.tooltip.point.after_script":"Enter commands to execute after the point operation is completed.","program.field.properties":"Properties","program.empty.desc.property":"No properties have been set.","program.button.addProperty":"Add Property","program.box.continuous":"Continuous Variation","program.box.discrete":"Discrete Variation","program.option.dout":"Digital Output","program.option.aout":"Analog Output","program.option.weldingCurrent":"Welding Current","program.option.weldingVoltage":"Welding Voltage","program.option.weldingFeedRate":"Welding Feed Rate","program.option.weavingMagnitude":"Weaving Magnitude","program.option.weavingSpeed":"Weaving Speed","program.label.doutput":"D.Output","program.label.aoutput":"A.Output","program.box.type":"Type","program.box.rotation_center":"Rotation Center","program.options.cirle.type.axis":"Axis","program.options.cirle.type.3point":"3-Points","program.box.rotation_angle":"Rotation Angle","program.box.via_point":"Via Point","program.box.radius":"Radius","program.field.radius_option":"Radius Option","program.options.radius.none":"None","program.options.radius.rate_per":"Rate per revolution","program.options.radius.size_per":"Size per revolution","program.field.radius_param":"Radius Parameter","program.field.posture":"Target Posture","program.field.project":"Project","program.field.movement_type":"Movement Type","program.options.project.main":"Top-Level (Main) Project","program.options.project.sub":"Currently running (Sub) Project","program.options.zeroPosture":"Zero Posture","program.options.posture.home":"Project Home Posture","program.options.posture.zero":"Joint Zero Posture","program.field.tool_list":"Tool List","program.field.output_location":"Output Location","program.box.output_mode":"Output Mode","program.options.d.output_mode.general":"General","program.box.digital_out":"Digital Out","program.options.d.output_mode.bit_combination":"Bit combination","program.options.d.output_mode.signal_toggle":"Signal toggle","program.options.d.output_mode.whole_port_control":"Whole port control","program.options.d.output_mode.unit_pulse_shot":"Unit pulse shot","program.options.d.output_location.side":"Control Box","program.options.d.output_location.ext":"Extension Board","program.options.a.output_location.side":"Control Box","program.options.a.output_location.ext":"Extension Board","program.box._control_box":"{{mode}} Current Signal","program.box.extension":"Extension","program.box.target_signal_conf":"Target Signal Configuration","program.field.bit_comb_range":"Bit Combination Rage","program.field.start_port":"Start Port","program.field.end_port":"End Port","program.field.target_val":"Target Value","program.options.direction.normal":"Normal Direction","program.options.direction.inverse":"Inverse Direction","program.options.power.off":"Off","program.options.power.on":"On","program.field.pulse_mode":"Pulse mode","program.field.port_selection":"Port Selection","program.options.pulse_mode.general":"General Type","program.options.pulse_mode.inversion":"Inversion Type","program.options.pulse_mode.non_block":"Non-Block","program.field.analog_out":"Analog Out","program.options.a.output_mode.general":"General Analog","program.box.toolout":"Tool Out","program.box.signal_conf":"Tool Current Signal","program.field._dout":"{{mode}} Digital Output","program.field.current":"Current","program.field.target":"Target","program.field._voltage":"{{mode}} Voltage","program.box.axis_options":"Axis Options","program.field.torch_direction_axis":"Torch Direction Axis","program.field.weaving_direction_axis":"Weaving Direction Axis","program.box.weaving_plane_selection":"Weaving Plane Selection","program.box.user_defined_parameters":"User Orientation","program.box.magnitude":"Magnitude","program.box.phase":"Phase","program.box.phase2":"Phase","program.box.time_schedule":"Time Schedule","program.box.scale":"Scale","program.field.scale_rate":"Scale Rate","program.box.offset_options":"Offset options","program.field.offset_torch_direction":"Offset Torch Direction","program.field.offset_weaving_direction":"Offset Weaving Direction","program.box.angle_options":"Angle Options","program.field.swing_angle":"Swing Angle","program.field.distortion_angle":"Distortion Angle","program.field.stop_adjusting_time":"Stop Adjusting Time","program.options.mode.speed":"Speed","program.options.conveyor.conveyor":"Conveyor","program.options.conveyor.linear":"Linear Conveyor","program.options.conveyor.circular":"Circular Conveyor","program.box.speed_options":"Speed Options","program.field.conveyor_speed":"Conveyor Speed","program.field.speed_adjusting_time":"Speed Adjusting Time","program.box.set_ref_points":"Set Reference Points","program.field.ref_points":"Reference Points","program.field.present_points":"Present Points","program.desc.conveyor":"Select Reference Points.","program.button.add_ref_point":"Add Reference Point","program.box.conveyor_type":"Conveyor Type","program.box.motion_list":"Motion List","program.box.move_type":"Move type","program.ph.motion_list":"Select file.","program.ph.no_data":"No data","program.ph.select_data":"Select the data","program.section.title.modeSelection":"Mode Selection","program.options.welding.on":"Arc On","program.options.welding.off":"Arc Off","program.options.changeTarget":"Change Target","program.options.changeGain":"Change Gain","program.section.title.sensingSetting":"Sensing Setting","program.field.label.sensingDataPoint":"Sensing Data Point","program.field.label.sensingSaturationMode":"Sensing Saturation Mode","program.field.label.sensingSaturationLow":"Sensing Saturation Lower Limit","program.field.label.sensingSaturationUpper":"Sensing Saturation Upper Limit","program.field.label.sensingLowPassFilter":"Sensing Data LPF Filter","program.field.label.sensingWeightingMode":"Sensing Weighting Mode","program.options.noSaturation":"No Saturation","program.options.saturationLU":"Saturation with L and U","program.options.saturationHold":"Saturation with Hold","program.options.curveWeight":"Curve Weight","program.options.evenWeight":"Even Weight","program.options.linearWeight":"Linear Weight","program.options.reducedLinearWeight":"Reduced Linear Weight","program.section.title.targetSetting":"Target Setting","program.field.label.depthDirTargetMethod":"Depth Direction Target Method","program.field.label.depthDirDesiredValue":"Depth Direction Desired Value","program.field.label.weaveDirTargetMethod":"Weave Direction Target Method","program.field.label.weaveDirDesiredValue":"Weave Direction Desired Value","program.options.desiredValue":"Desired Value","program.options.averageT1T2":"Average btw. T1, T2","program.section.title.gainSetting":"Gain Setting","program.field.label.depthDirGain":"Depth Direction {{msg}} Gain","program.field.label.depthDirAntiWind":"Depth Direction AntiWind","program.field.label.depthDirMaxDev":"Depth Direction Max Dev.","program.field.label.weaveDirGain":"Weave Direction {{msg}} Gain","program.field.label.weaveDirAntiWind":"Weave Direction AntiWind","program.field.label.weaveDirMaxDev":"Weave Direction Max Dev.","program.options.changeForce":"Change Force","program.section.title.limitation":"Limitation","program.field.label.posMaxDeviation":"Position Max. Deviation","program.field.label.rotMaxDeviation":"Rotation Max. Deviation","program.section.title.sensorSetting":"Sensor Setting","program.field.label.sensorType":"Sensor Type","program.field.label.sensorFilter":"Sensor Filter","program.field.label.sensorSignalOption":"Sensor Signal Option","program.section.title.others":"Others","program.field.label.contactForce":"Contact Detect Force","program.options.autoNulling":"Auto Nulling","program.options.rawValue":"Raw Value","program.box.init_standby":"Initial Standby","program.box.crater_setting":"Crater condition settings","program.box.crater_time":"Crater holding time","program.box.wait_follow":"Wait for follow up","program.box.arc_detection":"Arc On and Signal Detection","program.box.welding_setting":"Welding condition settings","program.box.robot_cond_setting":"Robot condition settings","program.box.time_before_arc":"Time Before Arc","program.field.condition_mode":"Condition setting method","program.field.condition_options":"Condition Options","program.field.job_number":"Job Number","program.field.welding_current":"Welding current","program.field.welding_voltage":"Welding voltage","program.field.feed_rate":"Feed Rate","program.field.arc_control":"Arc Control","program.field.arc_length":"Arc Length","program.field.parameter":"Parameter {{idx}}","program.options.condition.weld_keep":"Keep Previous Conditions","program.options.condition.weld_change":"Change Welding Conditions","program.box.time":"Time","program.box.time_holding":"Time for Holding","program.box.time_pre_gas":"Time for Pre-Gas ","program.box.arc_signal_detection_count":"Arc signal detection count","program.box.arc_signal_detection_time":"Arc signal detection time","program.box.arc_signal_retry_interval_time":"Arc signal retry interval time","program.box.ot_option":"Orientation Option","program.box.gap_number":"Gap Number","program.box.set_margin":"Set Margin","program.field.margin_height":"Margin Height","program.field.margin_width":"Margin Width","program.field.margin_over":"Margin Over","program.field.margin_parameter":"Margin Parameter","program.box.corner_points":"Corner Points","program.options.macro.flat_surface":"Flat Surface","program.options.macro.round_r":"Round (R)","program.options.macro.round_h":"Round (H)","program.options.macro.triangle":"Triangle","program.options.macro.3d_round":"3D Round","program.options.weaving_type.none":"None","program.section.title.taskReference":"Task Reference","program.field.title.planeSelection":"Plane Selection","program.options.plane.present":"Present TCP Frame","program.options.plane.follow_base_trajectory":"Follow base-trajectory","program.section.title.patternParams":"Pattern Parameters","program.title.timeSchedule":"Time Schedule","program.section.title.motionTransform":"Motion Transformation","program.field.title.scaleXRate":"Scale (x) Rate","program.ph.no_motion_list":"No Motion Record.","program.field.robot_speed":"Robot Speed","program.field.robot_acceleration":"Robot Acceleration","program.ph.selected_tool":"Select the Tool","program.ph.no_tool_available":"No Tool Record","program.options.default":"Default","program.options.syncSpeedBar":"Sync with Speed Bar","program.options.stopPause":"Stop at Pause State","program.section.title.timerSettings":"Timer Settings","program.field.title.timerNumber":"Timer Number","program.options.timer":"Timer {{idx}}","program.section.title.resetTime":"Reset Time","program.field.title.timingOption":"Timing Option","program.field.title.actionOption":"Action Option","program.box.rotation_axis":"Rotation Axis","program.box.goal_point":"Goal Point","program.ph.command_search":"Search for the desired command.","program.button.set_begin":"Set Begin","program.label.home_move":"Move to Home During Playback","program.box.position":"Position","program.option.begin.use_default":"Enabled (Default)","program.option.begin.use_speed":"Enabled (x0.3 Speed)","program.option.begin.not_use":"Disabled","program.desc.begin_move":"This setting determines whether the “Move to Home During Playback” feature is enabled in the UI.","program.box.out_collision_detection":"Out Collision Detection","program.box.self_collision_detection":"Self Collision Detection","program.box.user_frame_selection":"User Frame Selection","program.box.fixed_speed":"Fixed Speed","program.box.target_shift_set_via_manual":"Target Shift: Set via Manual","program.box.speed_bar":"Speed Bar","program.box.time_constraint":"Time Constraint","program.box.ascii_function_call":"ASCII Function Call","program.box.joint_impedance_control":"Joint Impedance Control","program.box.free_drive_mode":"Free Drive Mode","program.box.master_mode_selection":"Master Mode Selection","program.box.user_frame_set_via_xyz":"User Frame: Set via XYZ","program.box.user_frame_set_via_tcp":"User Frame: Set via TCP","program.box.user_frame_set_via_3_points":"User Frame: Set via 3 Points","program.box.target_shift_set_via_landmark":"Target Shift: Set via Land-Mark","program.box.program_flow_change":"Program Flow Change","program.box.digital_input_function_mask":"Digital Input Function Mask","program.box.digital_output_function_mask":"Digital Output Function Mask","program.box.jacobian_based_speed_ctrl":"Jacobian based Speed-Control","program.box.vibration_torque_based":"Vibration (Torque based)","program.box.vibration_motion_based":"Vibration (Motion based)","program.box.ext_axis_sync":"External Axis Synchronization","program.box.tcp_speed_bound":"TCP Speed Bound","program.box.move_break_block":"Move Break/Block","program.box.joint_ref_filter":"Joint Reference Filter","program.box.self_coll_detect_blind":"Self-Coll Detection Blind","program.box.joint_origin_calibration":"Joint Origin Calibration","program.box.wrist_singularity_mode":"Wrist Singularity Mode","program.box.operation_range_check":"Operation Range Check","program.box.ft_sensor_software_nulling":"FT Sensor Software Nulling","program.field.state":"State","program.field.stop_mode":"Stop Mode","program.options.stop_mode.pause_movement":"Pause Movement","program.options.stop_mode.evasion_stop":"Evasion Stop","program.field.threshold":"Threshold","program.field.internal_distance":"Internal Distance","program.field.external_distance":"External Distance","program.field._option":"{{mode}} Option","program.options.fixed_mode.percent":"Fixed mode: %","program.options.fixed_mode.physical":"Fixed mode: Physical","program.options.time_constraint.unit_move":"Unit Move Time-Constraint","program.options.time_constraint.multi_move":"Multi Move Time-Constraint","program.options.ascii.direct":"Direct Execution","program.options.ascii.que_message":"Que Message","program.field.message":"Message","program.options.joint_impedance.impedance":"On Joint Impedance","program.field.stiffness":"Stiffness","program.field.torque_limit":"Torque Limit","program.options.free_drive.free_drive":"On Free Drive","program.options.free_drive.when_button_clicked":"On When Button Clicked","program.field.sensitivity":"Hand Guiding Sensitivity","program.field.extra_force_frame":"Extra force frame","program.field.extra_force":"Extra force","program.options.user_frame.restore_saved":"Restore Saved","program.options.user_frame.apply_target_temporary":"Apply Target (Temporary)","program.options.user_frame.save_target_permanently":"Save Target Permanently","program.options.master_mode.reflected":"Reflected Joint Angle","program.options.master_mode.synchronized":"Syncronized Cartesian","program.field.user_frame":"User Frame","program.field.setting_option":"Setting option","program.field.target_frame":"Target frame","program.options.frame.global":"Global Frame","program.options.frame.local":"Local Frame","program.options.frame.user":"User Frame","program.options.frame.local_tcp":"Local TCP Frame","program.field.point_ordering":"Point ordering","program.options.point_order.origin_x_axis_xy_plane":"Origin → X Axis → XY Plane","program.options.point_order.origin_y_axis_yz_plane":"Origin → Y Axis → YZ Plane","program.options.point_order.origin_z_axis_zx_plane":"Origin → Z Axis → ZX Plane","program.field.shift_number":"Shift Number","program.field.shift_mode":"Shift mode","program.field.shift":"Shift","program.options.shift_mode.adjust_l_move":"Adjust L-Move","program.options.shift_mode.adjust_l_j_move":"Adjust L,J-Move","program.options.shift_mode.adjust_j_move":"Adjust J-Move","program.field.tolerance":"Tolerance","program.options.stop":"Stop","program.options.pause":"Pause","program.options.resume":"Resume","program.options.reset_collision":"Reset Collision","program.field.target_component":"Target Component","program.options.flow_target.all_robots":"All Robot Components","program.options.flow_target.this_component":"This Component","program.field.target_device":"Target Device","program.options.device.control_box":"Control Box I/O","program.options.device.extension_io":"Extension I/O","program.options.device.tool_flange_io":"Tool Flange I/O","program.options.port.whole":"Whole Port","program.options.port.port":"Port","program.options.mask.off":"Disable-Mask Off","program.options.mask.on":"Disable-Mask On","program.options.deactive":"De-active","program.field.time":"Time","program.field.bound_mode":"Bound Mode","program.field.tcp_speed":"TCP Speed","program.options.bound_off":"Bound Off (System Default)","program.options.bound_on":"Bound On","program.field.breakblock_mode":"Break/Block Mode","program.options.break.off":"Off","program.options.break.block":"Continuous Block","program.options.break.once":"Break Once","program.field.filter_mode":"Filter Mode","program.field.filter":"Filter","program.options.jrf.off":"Off (System Default)","program.options.jrf.custom_filter":"Adjust Custom Filter","program.field.detect_blind_time":"Detection Blind Time (sec)","program.button.empty":"Empty","program.rby1.move.no_part":"Add a part to move using the buttons above.","program.rby1.tooltip.hand_ref":"Base and T5 are selectable only for Cartesian moves. Joint moves always use Base, and Torso is always relative to Base.","amr.button.goal":"Goal","amr.button.target":"Target","amr.button.linear":"Linear","amr.button.rotate":"Rotate","amr.button.map_load":"Map Load","amr.button.loc_init":"Loc.Init","amr.button.loc_control":"Loc.Control","amr.button.hw_control":"H/W Control","amr.button.dock":"Dock","amr.button.obs_box":"OBS Box","amr.button.set_safety":"Set Safety","amr.button.stream":"Stream","program.button.load":"Load","program.button.save":"Save","program.button.new":"New","program.button.search_variables":"Variables","program.button.close":"Close","program.button.call_event_thread":"Call Event Thread","program.button.general_thread":"General Thread","program.box.read_configuration":"Read Configuration","program.box.connect_configuration":"Connect Configuration","program.field.return_variable_name":"Return Variable Name","program.field.target_read_length":"Target Read Length","program.field.goal_id":"Goal ID","program.field.preset":"Preset","program.field.method":"Method","program.field.zAngle":"Z Angle","program.field.target_position":"Target Position ","program.field.speed":"Speed","program.field.map_name":"Map Name","program.options.init_mod.init":"Init","program.options.init_mod.auto":"Auto Init","program.options.init_mod.semi":"Semi Auto Init","program.options.init_mod.random":"Random Init","amr.button.localization_init":"Localization Init","program.field.init_mode":"Init Mode","amr.button.localization_control":"Localization Control","program.field.control":"Control","program.options.control.start":"Start","program.options.control.stop":"Stop","program.box.hardware_control":"Hardware Control","program.options.control.motor":"Motor","program.options.control.led":"LED","program.field.dock_mode":"Dock mode","program.options.dock.dock":"Dock","program.options.dock.undock":"UnDock","program.field.min_position":"Min Position","program.field.max_position":"Max Position","program.field.map_range":"Map Range","program.options.safety.field":"Safety Field","program.options.safety.flag":"Safety Flag","program.options.safety.io":"Safety I/O","program.box.set_reset_flag":"Set Reset Flag","program.box.safety_mcu":"Safety MCU","program.box.safety_field":"Safety Field","program.field.reset_flag":"Reset Flag","program.desc.safety":"If a reset flag is to be set, enter its key and value.","program.button.add_flag":"Add Flag","program.field.key":"Key","program.field.mcu_din":"MCU {{mode}} Din","program.box.pose":"Pose","program.box.move.axis":"Move Aixs","program.option.sync_ignore":"Ignored when running alone","program.field.pattern_id":"Pattern ID","program.field.pattern_type":"Pattern Type","program.options.pattern_line":"Line (X)","program.options.pattern_plane":"Plane (X-Y)","program.options.pattern_cube":"Cube (X-Y-Z)","program.options.pattern_random":"Random","program.field.pattern_count":"Count","program.field.pattern_point_num":"{{axis}}-Axis Point Num","program.field.anchor_point":"Anchor Point","program.field.incremental":"Incremental Count","program.desc.pattern":"Set Corner Points.","program.button.add_corner_point":"Add Corner Point","settings.general.menu.joint":"Robot Joint","settings.general.title.jointKineLimit":"Joint Kinematic Limit","settings.general.desc.jointKineLimit":"Defines the physical range (Pos) and maximum speed (Speed) for each joint to prevent hardware damage and collisions.","program.field.mc_protocol":"Protocol Type","program.field.variable_value":"Variable Value","program.field.device_type":"Device Type","program.field.cpu_type":"Machine Type","program.field.desc.bit":"Select bit value.","program.field.address_type":"Address Type","settings.general.title.deflection_compensation":"Deflection Compensation","settings.general.desc.deflection":"Compensates for downward positional deflection caused by the weight of an end effector attached to the tool flange.","setting.options.adjust_deflection":"Adjust Deflection","settings.outColl.options.option.pause":"Pause Movement","settings.outColl.options.option.evasion":"Evasion Stop","settings.selfColl.options.option.stop":"Stopped just before self-collision","settings.selfColl.options.option.speed":"Speed control during self-collision","settings.title.selected":"Selected","settings.general.userScript.card.title":"Script Port ","settings.general.userScript.desc":"Configure user scripts by port.","settings.general.userScript.textfield.title":"User Script","settings.general.afterAction.title.action":"Action","settings.general.afterAction.desc":"Set the action to be performed after the selected task.","settings.options.option.boxNone":"None","settings.options.option.sphere":"Sphere","settings.options.option.cylinder":"Cylinder","settings.options.option.box":"Box","settings.tool.title.width":"width","settings.io.title.port":"Port","settings.io.title.changeDirection":"Change Reverse Direction","settings.io.title.normalDirection":"Normal Direction","settings.io.title.reverseDirection":"Reverse Direction","settings.io.title.filter":"Filter","settings.io.dinFilter.desc":"Sets the delay for the input signal.","settings.io.title.count":"Count","settings.devices.menu.welding":"Welding","settings.devices.welding.desc":"Set welding related options such as device information, input/output signal mapping, hardware, and conversion map.","settings.devices.welding.device.title":"Set welding device options","settings.devices.welding.device.textfield":"Device {{msg}}","settings.devices.welding.output.title":"Set welding output options","settings.devices.welding.output.arcOn":"Arc On Signal","settings.devices.welding.output.touchOn":"Touch On Signal","settings.devices.welding.output.gasOn":"Gas On Signal","settings.devices.welding.output.wireInch":"Wire Inch Signal","settings.devices.welding.output.wireReinch":"Wire Re-Inch Signal","settings.devices.welding.output.currentPort":"Current Setting Port","settings.devices.welding.output.voltagePort":"Voltage Setting Port","settings.devices.welding.input.title":"Set welding input options","settings.devices.welding.input.welderReady":"Welder Ready Signal","settings.devices.welding.input.arcGenFeedback":"Arc Generated Feedback","settings.devices.welding.input.touchFeedback":"Touch Signal Feedback","settings.devices.welding.input.gasFeedback":"Gas Signal Feedback","settings.devices.welding.input.feederFeedback":"Feeder Signal Feedback","settings.devices.welding.input.welderErrSignal":"Welder Error Signal","settings.devices.welding.input.currentFeedback":"Current Feedback","settings.devices.welding.input.voltageFeedback":"Voltage Feedback","settings.devices.welding.hardware.title":"Set welding hardware options","settings.devices.welding.hardware.processType":"Process Type","settings.devices.welding.hardware.wireType":"Wire Type","settings.devices.welding.hardware.wireSize":"Wire Size","settings.devices.welding.hardware.gasType":"Gas Type","settings.devices.welding.convMap.title":"Set welding conversion map options","settings.devices.welding.convMap.weldingCurrent":"Welding Current","settings.devices.welding.convMap.addCurrentMap":"Add Current Map","settings.devices.welding.convMap.weldingVoltage":"Welding Voltage","settings.devices.welding.convMap.addVoltageMap":"Add Voltage Map","settings.devices.welding.convMap.title.current":"Current","settings.devices.welding.convMap.title.output":"Output","settings.devices.welding.convMap.desc.limit":"Up to {{max}} can be registered.","settings.devices.welding.convMap.title.voltage":"Voltage","settings.devices.menu.externalFT":"External F/T","settings.devices.externalFT.desc":"Configuration for the external F/T sensor. Supports adjustment of mounting orientation offsets and signal filter values.","settings.devices.externalFT.deviceType":"Device Type","settings.devices.externalFT.mountingOption":"Mounting Option","settings.devices.externalFT.options.noSensor":"No Sensor","settings.devices.externalFT.options.defaultMount":"Default Mount","settings.devices.externalFT.options.customMount":"Custom Mount","settings.devices.externalFT.wrtFlange":"Custom Mount wrt flange","settings.devices.externalFT.signalFilter":"Signal Filter","settings.devices.menu.communication":"Communication","settings.devices.communication.desc":"Configure the activation status and connection ports for each communication protocol with external systems and devices.","settings.menu.title.amrRobot":"Robot","settings.menu.title.amrMotor":"Motor","settings.menu.title.amrSensor":"Sensor","settings.menu.title.drive":"Drive","settings.menu.title.obsDetect":"Obstacle Detect","settings.menu.title.docking":"Docking","settings.menu.title.localization":"Localization","settings.menu.title.mapping":"Mapping","settings.menu.title.logging":"Logging","settings.amr.general.amrRobot.title":"Robot Configuration","settings.amr.general.amrRobot.desc":"Input the offset to apply to the default robot size.","settings.amr.general.title.robotSize":"Add Robot {{axis}} Size","settings.amr.general.title.batAlarm":"Battery Alarm","settings.amr.general.title.alarm":"Alarm","settings.amr.general.title.batLowThreshold":"Battery Low Threshold","settings.amr.general.title.batCritLowThreshold":"Battery Critical Low Threshold","settings.amr.general.title.speaker":"Speaker","settings.amr.general.motor.title.speedLimit":"Speed Limit","settings.amr.general.motor.desc.speedLimit":"Sets the linear and angular speed limits for the motor.","settings.amr.general.motor.title.accLimit":"Acceleration Limit","settings.amr.general.motor.desc.accLimit":"Sets the linear and angular acceleration limits for the motor.","settings.amr.general.motor.title.motorSpdLimit":"Motor Speed Limit","settings.amr.general.motor.desc.motorSpdLimit":"Sets the absolute safety limits for linear and angular speeds to prevent motor damage and system instability.","settings.amr.general.motor.title.linearLimit":"Linear Limit","settings.amr.general.motor.title.angularLimit":"Angular Limit","settings.amr.general.motor.title.angularLimit2":"Angular Limit","settings.amr.general.sensor.title.qrConfig":"Sensor QR Configuration","settings.amr.general.sensor.desc.qrConfig":"Enable or disable the QR code sensor.","settings.amr.general.sensor.title.cameraConfig":"Sensor Camera Configuration","settings.amr.general.sensor.desc.cameraConfig":"Configure camera power and data collection for Depth, Filter, and RGB.","settings.amr.general.sensor.title.imuConfig":"Sensor IMU Configuration","settings.amr.general.sensor.desc.imuConfig":"Configure IMU sensor activation and data measurement dimensions (2D/3D).","settings.amr.general.sensor.title.bottomQR":"Bottom QR","settings.amr.general.sensor.title.camera":"Camera","settings.amr.general.sensor.title.cameraDepth":"Camera Depth","settings.amr.general.sensor.title.cameraFilter":"Camera Filter","settings.amr.general.sensor.title.cameraRGB":"Camera RGB","settings.amr.drive.general.title.goalCheck":"Goal Check","settings.amr.drive.general.desc.goalCheck":"Configure the tolerance thresholds for distance and orientation to determine goal arrival.","settings.amr.drive.general.label.distThreshold":"Distance Threshold","settings.amr.drive.general.label.orientThreshold":"Orientation Threshold","settings.amr.drive.general.title.goalAlign":"Goal Align","settings.amr.drive.general.desc.goalAlign":"Set parameters for precise alignment of position and orientation upon reaching the goal.","settings.amr.drive.general.label.approachGain":"Approach Gain","settings.amr.drive.general.label.extendCtrlTime":"Extended Control Time","settings.amr.drive.general.label.linearMinSpeed":"Linear Min Speed","settings.amr.drive.general.label.angularMinSpeed":"Angular Min Speed","settings.amr.obsDetect.title.obsMap":"Obstacle Map","settings.amr.obsDetect.desc.obsMap":"Configure the parameters for generating the environmental obstacle map and defining the robot's detection boundaries.","settings.amr.obsDetect.label.gridSize":"Grid Size","settings.amr.obsDetect.label.detectRange":"Detect Range (Robot based)","settings.amr.obsDetect.label.zLowerHeight":"Z-axis lower Height","settings.amr.obsDetect.label.zUpperHeight":"Z-axis upper Height","settings.amr.obsDetect.title.pathMargin":"Path Planning Margin","settings.amr.obsDetect.desc.pathMargin":"Set the buffer distance (margin) between the planned path and detected obstacles to ensure collision-free navigation.","settings.amr.obsDetect.label.pathMargin":"Path Margin {{axis}}","settings.amr.obsDetect.title.safetyMargin":"Safety Margin","settings.amr.obsDetect.desc.safetyMargin":"Define safety thresholds and predictive parameters to prevent collisions during real-time movement.","settings.amr.obsDetect.label.deazone":"Deadzone Range (Robot based)","settings.amr.obsDetect.label.predictTime":"Predict Time","settings.amr.obsDetect.label.detectMinSpd":"Detect Linear Min Speed","settings.amr.obsDetect.label.safetyMargin":"Safety Margin {{axis}}-axis","settings.amr.docking.title.general":"Docking General","settings.amr.docking.desc.general":"Basic option settings for how the robot recognizes and approaches the docking station.","settings.amr.docking.label.lidarType":"Lidar Type","settings.amr.docking.label.chargeType":"Charge Type","settings.amr.docking.label.reverseFlag":"Reverse Flag","settings.amr.docking.label.forward":"Forward","settings.amr.docking.label.backward":"Backward","settings.amr.docking.label.autoMove":"Auto Undock on Move","settings.amr.docking.title.offsetGain":"Docking Offset/Gain","settings.amr.docking.desc.offsetGain":"Setting of physical distance correction value and gain value used in docking control algorithm (PD control).","settings.amr.docking.label.xOffset":"X Offset","settings.amr.docking.label.chargeWaitTime":"Charge Waiting Time","settings.amr.docking.label.distanceKD":"Distance KD","settings.amr.docking.lable.distanceKP":"Distance KP","settings.amr.docking.label.orientationKD":"Orientation KD","settings.amr.docking.label.orientationKP":"Orientation KP","settings.amr.docking.title.threshold":"Docking Threshold","settings.amr.docking.desc.threshold":"Setting reliability weights assigned to each element when determining a docking station.","settings.amr.docking.label.constScoreWeight":"Consistency score weight","settings.amr.docking.label.distScoreWeight":"Distance score weight","settings.amr.docking.label.historyScoreWeight":"Docking history score weight","settings.amr.docking.label.ICPScoreWeight":"ICP matching score weight","settings.amr.docking.label.targetScoreWeight":"Target length/size score weight","settings.amr.docking.label.segmentScoreWeight":"Segment ratio score weight","settings.amr.docking.label.shapeScoreWeight":"Shape/angle matching score weight","settings.amr.loc.title.localization":"{{param}} Localization","settings.amr.loc.desc.localization":"Set localization settings and filtering options for robot pose estimation.","settings.amr.loc.label.localizationMode":"Localization Mode","settings.amr.loc.label.EKF":"Extended Kalman Filter","settings.amr.loc.desc.2dLocalization":"Configure ICP-based scan matching and odometry fusion parameters for 2D localization.","settings.amr.loc.label.costThreshold":"Cost Threshold","settings.amr.loc.label.errorThreshold":"Error Threshold","settings.amr.loc.label.odometry":"Odometry Fusion Ratio","settings.amr.loc.label.inlierError":"Check Inlier Error","settings.amr.loc.label.inlierRatio":"Check Inlier Ratio","settings.amr.loc.label.checkDistance":"Check Distance","settings.amr.loc.label.maxFeature":"Max Feature","settings.amr.loc.title.surfel":"Surfel","settings.amr.loc.label.surfel":"Surfel","settings.amr.loc.label.surfelRange":"Surfel Range","settings.amr.loc.desc.3dLocalization":"Configure high-precision 3D pose estimation parameters by matching real-time 3D LiDAR point clouds with the global map.","settings.amr.loc.label.surfelBalance":"Surfel Balance (ICP Axis distribution)","settings.amr.loc.label.surfelNN":"Surfel NN","settings.amr.mapping.desc.icp":"Parameter settings regarding scan matching precision and data processing method.","settings.amr.mapping.label.viewThreshold":"View Threshold","settings.amr.mapping.label.eraseGap":"Erase Gap","settings.amr.mapping.label.accumulation":"Accumulation","settings.amr.mapping.title.keyFrame":"Key Frame","settings.amr.mapping.desc.keyFrame":"Settings regarding keyframe generation conditions, loop closures, and spatial efficiency during map generation.","settings.amr.mapping.label.loopTryDistance":"Loop Closure Try Distance","settings.amr.mapping.label.loopTryOverlap":"Loop Closure Try Overlap","settings.amr.mapping.label.voxelSize":"Voxel Size","settings.amr.mapping.label.windowSize":"Window Size","settings.amr.mapping.label.updateNum":"Update Num","settings.amr.logging.title.logging":"Loggin","settings.amr.logging.desc.logging":"Configure logging levels and select specific system modules to monitor and record operational data.","settings.amr.logging.label.logLevel":"Log Level","settings.amr.logging.label.loggingStatus":"Logging Show Status","settings.amr.logging.label.autoCtrl":"Auto Control","settings.amr.logging.label.commRRS":"Communication RRS","settings.amr.logging.label.lidar":"Lidar {{param}}","settings.amr.logging.label.mobile":"Mobile","settings.amr.logging.label.obsMap":"Obs Map","settings.amr.logging.label.fileSave":"File Save","settings.amr.logging.label.filePath":"File Path","settings.amr.logging.option.trace":"Trace","settings.amr.logging.option.debug":"Debug","settings.amr.logging.option.info":"Information","settings.amr.logging.option.warning":"Warning","settings.amr.logging.option.error":"Error","settings.amr.logging.option.critical":"Critical","program.modal.title.searchVariables":"Search Variables","program.modal.label.valueType":"Value Type","program.modal.label.defaultValue":"Default Value","program.modal.label.context":"Context","program.modal.label.all":"All","program.modal.label.manipulate":"Manipulate","program.modal.label.amr":"AMR","program.modal.label.local":"Local ","program.modal.label.global":"Global ","program.modal.msg.varNotFound":"Variables not found","program.modal.label.declaredVariables":"Declared","program.modal.label.pluginVariables":"Plugin","program.modal.label.systemReference":"Reference","program.modal.placeholder.searchVariables":"Search Variables","program.modal.label.copied":"Copied","program.modal.label.copyVariableReference":"Copy Key","program.modal.label.copyCurrentValue":"Copy Value","program.modal.label.currentValue":"Current Value","program.modal.label.initialValue":"Initial Value","program.modal.label.notAvailable":"Not Available","program.modal.msg.variableReferenceCopied":"Variable key copied.","program.modal.msg.variableValueCopied":"Variable value copied.","move.menu.button.label.collapse":"Collapse","move.menu.button.label.jog":"Jog","move.menu.button.label.advJog":"Advanced Jog","move.menu.button.label.tcpTool":"TCP Tool","move.menu.button.label.gripper":"Gripper","move.menu.button.label.zeroPose":"Zero Pose","move.menu.button.label.pinpoint":"PinPoint","move.menu.button.label.record":"Record","move.menu.button.label.weld":"Weld","move.menu.title.planeConstJog":"Plane Constrained Jog","move.menu.title.tcpTool":"Selected TCP Tool","move.menu.msg.tcpTool":"No TCP Tool selected","move.menu.button.label.moveOrigin":"Move Joint {{index}} to Origin","move.menu.button.label.moveAllOrigin":"Move all joints to Origin","move.menu.options.option.noSave":"No Save","move.menu.options.option.realTime":"Real Time","move.menu.options.option.mileStone":"Mile Stone","move.menu.label.mileStoneFreq":"Mile Stone Frequency","move.menu.label.fileName":"File Name","move.menu.button.label.recordStop":"Record Stop","move.menu.button.label.recordStart":"Record Start","move.menu.button.label.weldForward":"Wire Forward","move.menu.button.label.weldBackward":"Wire Backward","move.menu.button.label.gasPurge":"Gas Purge On/Off","move.button.label.real":"Real","move.button.label.simulation":"Simulation","move.menu.msg.userCoordinate":"No User Coordinate selected","move.menu.label.distFromBase":"Distance From Base","move.menu.label.rotFromBase":"Rotation From Base","move.menu.label.joint":"Joint","move.menu.label.dist":"Dist","login.title.welcome":"Welcome to MUSCAT!","login.textfield.label.id":"ID","login.textfield.label.password":"Password","login.placeholder.loginInfo":"Enter your {{info}}","login.label.rememberMe":"Auto Login","login.button.label.login":"Log in","login.button.label.logout":"Log out","login.msg.error.id":"ID is required.","login.msg.error.password":"Password is required.","login.modal.title.duplicate":"Another Login Attempt","login.modal.desc.duplicate":" account is attempting to use a bot.\\nWould you like to transfer the license?","login.modal.desc.duplicate.discription":"If you transfer access, you will be logged out.","login.modal.title.saveFailed":"Save Failed","login.modal.desc.saveFailed":"Failed to save the following: {{items}}\\nDo you want to log out anyway","login_peding.modal.desc":"Waiting for {{username}} to approve the login.","login.modal.title.timeout":"Login Request Timed Out","login.modal.title.denied":"Login Request Canceled","login.title.failed":"Login Request Failed","login.msg.error.idOrPassword":"Invalid account information.","login.msg.error.alreadyLogged":"You are already logged in with this account.","login.msg.error.unknown":"An unknown error has occurred. Please contact the administrator.","login.msg.timeout":"Your request has timed out.","move.menu.button.label.calibration":"Calibration","move.menu.options.option.tcpPosCalib":"TCP Position Calibration","move.menu.options.option.tcpOriCalib":"TCP Orientation Calibration","move.menu.options.option.user3Points":"User Frame: 3 Points","move.menu.options.option.userTCPFrame":"User Frame: TCP Frame","move.menu.options.option.extAxis":"External Axis","move.field.label.jointNumber":"Joint Number","move.menu.button.get":"Get","move.menu.calibTCPPos.desc":"Add Points.","move.menu.tab.lable.controlBox":"C.Box","move.menu.tab.lable.extBoard":"Ext.Board","move.menu.title.currentSignal":"Current Signal","move.menu.title.targetSignal":"Target Signal","move.menu.label.digitalInput":"{{loc}} Digital Input","move.menu.label.digitalOutput":"{{loc}} Digital Output","move.menu.label.analogInput":"{{loc}} Analog Input","move.menu.label.analogOutput":"{{loc}} Analog Output","move.menu.label.toolVoltageOutput":"Tool Voltage Output","move.rby1.source.ghost":"Ghost","move.rby1.jogMode.joint":"Joint Jog","move.rby1.jogMode.cartesian":"Cartesian Jog","move.rby1.switch.bothArms":"Mirror Both Arms","move.rby1.monitor.joint":"Joint","move.rby1.monitor.tcp":"TCP","move.rby1.menu.savedPose":"Saved Poses","move.rby1.inputMove.title":"Move to Input Value","move.rby1.inputMove.content":"Move the robot's {{key}} to {{value}}?","move.rby1.savedPose.count":"{{count}}","move.rby1.savedPose.saveDesc":"Save the current real pose","move.rby1.savedPose.namePlaceholder":"Pose name","move.rby1.savedPose.save":"Save","move.rby1.savedPose.searchPlaceholder":"Search pose name","move.rby1.savedPose.axisCount":"{count}} axes","move.rby1.savedPose.current":"Current pose","move.rby1.savedPose.jointTitle":"Joint angle · °","move.rby1.savedPose.tcpTitle":"TCP position · mm / °","move.rby1.savedPose.cartesian":"Cartesian","move.rby1.savedPose.approach":"Move to this pose","move.rby1.savedPose.updateToCurrent":"Update to current pose","move.rby1.savedPose.empty":"No saved poses","move.rby1.savedPose.deleteTitle":"Delete pose","move.rby1.savedPose.deleteContent":'Delete "{{name}}"?',"move.rby1.savedPose.delete":"Delete","move.rby1.zeroPose.partAll":"Move all {{part}} joints to origin","program.field.frequency":"Frequency","program.field.magnitudes":"Magnitudes","program.section.title.motionType":"Motion Type","program.box.options.movement":"{{type}} Movement","program.label.blend":"Blend {{msg}}","program.box.options.linearType":"Linear Type","program.box.options.cornerType":"Corner Type","program.box.options.percentage":"Percentage","program.field.blendRatio":"Blend Ratio","program.field.blendDistance":"Blend Distance","program.field.frameSelection":"Frame Selection","program.section.title.feedSpeed":"Feed Speed","program.field.feedDefault":"Feed Default","program.field.feedRapid":"Feed Rapid","program.field.feedMaxLimit":"Feed Max Limit","program.field.feedRotation":"Feed Rotation","program.section.title.plane":"Plane","program.field.defaultPlane":"Default Plane","program.section.title.offset":"Offset","program.field.willUseConstSpd":"Will Use Constant Speed","program.field.willIgnoreUnknown":"Will Ignore Unknown Code","program.box.option.constantSpeed":"Constant Speed","program.box.option.ignoreUnknown":"Ignore Unknown Code","program.box.option.xyPlane":"XY-Plane","program.box.option.zxPlane":"ZX-Plane","program.box.option.yzPlane":"YZ-Plane","program.options.frame.activeLocal":"Active Local Frame","program.field.delimiter":"Delimiter","program.field.resolve_action":"Type resolution failed","program.options.resolve_action.next":"Proceed after ignoring","program.options.resolve_action.stop":"Stop immediately","program.options.resolve_action.debug":"User confirmation","settings.devices.plc.label.operator":"Operator","log.datepicker.setTime":"Set Time","log.datepicker.preset.last24Hours":"Last 24 hours","log.datepicker.preset.last3Days":"Last 3 days","log.datepicker.preset.lastWeek":"Last week","log.datepicker.preset.lastMonth":"Last month","log.datepicker.preset.last3Months":"Last 3 months","settings.toast.saveSuccess.title":"Saved","settings.toast.saveSuccess.content":"Settings have been saved successfully","settings.amr.general.title.robotSizeMin":"Min {{axis}} Size","settings.amr.general.title.robotSizeMax":"Max {{axis}} Size","settings.amr.docking.label.chargeFlag":"Charge Direction","settings.amr.docking.label.retryCount":"Retry Count","move.amr.pdu.toast.motorConnect.title":"Motor Connected","move.amr.pdu.toast.motorConnect.content":"Motor has been successfully connected","move.amr.pdu.toast.lidarSave.title":"Lidar Field Saved","move.amr.pdu.toast.lidarSave.content":"Lidar field value has been saved","common.toast.apiError.title":"API Request Failed","common.toast.apiError.content":"Please try again later","maintenance.menu.jointUnit":"Joint Unit","maintenance.menu.system":"System","maintenance.menu.safety":"Safety","maintenance.menu.update":"Update","maintenance.menu.robotInfo":"Robot Information","maintenance.menu.management":"Management","maintenance.menu.authentication":"Authentication","maintenance.menu.user":"User","maintenance.menu.externalPeer":"External Peer","maintenance.menu.authPolicy":"Auth Policy","maintenance.title.changeSettings":"Change Settings","maintenance.title.status":"Status","maintenance.joint.desc":"Dedicated tools for joint-specific operations. Manage encoder zeroing, sensor calibration, and fine-tune control gains for optimal hardware performance.","maintenance.system.desc":"Manage core system infrastructure and hardware identities. This section provides tools for low-level configuration, hardware addressing, and essential system maintenance.","maintenance.safety.desc":"Configure various parameter values related to robot safety.","maintenance.safetyStatus.desc":"Displays the status of various robot safety-related signals, including run states, I/O signals, flags, and system states.","maintenance.userManagement.desc":"Manages users comprehensively, including creating new users and modifying or deleting existing user information.","maintenance.sdkManagement.desc":"Issue and manage SDK authentication tokens for system integration.","maintenance.peerManagement.desc":"Register and manage external peer nodes for network integration.","maintenance.authPolicy.desc":"Configure the authentication policy and the transport protocols required for authentication.","maintenance.title.login":"Login","maintenance.loginManagement.desc":"Forces users with duplicate logins to log out.","maintenance.loginManagement.button.forceAll":"Force logout all","maintenance.loginManagement.button.force":"Force logout","maintenance.loginManagement.label.duplicateAccounts":"Duplicate Accounts","maintenance.loginManagement.label.currentSession":"Current Session","maintenance.loginManagement.button.refresh":"Refresh","maintenance.loginManagement.label.transport":"Recent Transport","maintenance.loginManagement.label.username":"User Name(ID)","maintenance.loginManagement.label.loginTime":"Login Time","maintenance.userManagement.button.addUser":"Add User","maintenance.userManagement.button.totalUser":"Total Users","maintenance.userManagement.button.adminUser":"Admin User","maintenance.userManagement.label.userId":"User ID","maintenance.userManagement.label.userPw":"Password","maintenance.userManagement.label.userName":"User Name","maintenance.userManagement.label.role":"Role","maintenance.modal.title.createUser":"Create User","maintenance.modal.title.userInfo":"User Information","maintenance.modal.title.editUser":"Edit User Information","maintenance.modal.title.delete":"Delete {{msg}}","maintenance.modal.label.activeSessionCnt":"Active Session Count","maintenance.modal.content.confirmDeleteUser":"Are you sure you want to delete {{id}}?\\nThis action cannot be undone.","maintenance.toast.content.createSuccess":"{{msg}} created successfully.","maintenance.toast.content.editSuccess":"{{msg}} updated successfully.","maintenance.toast.content.registerSuccess":"External peer registered successfully.","maintenance.toast.content.createFail":"Failed to create {{msg}}.","maintenance.toast.content.editFail":"Failed to update {{msg}}.","maintenance.toast.content.registerFail":"Failed to register external peer.","maintenance.toast.content.delete":"Deleted successfully.","maintenance.label.createToken":"Create SDK Token","maintenance.label.totalTokens":"Total SDK Tokens","maintenance.label.editToken":"Edit SDK Token","maintenance.table.label.token":"Token","maintenance.table.tooltip.token":"Click on the token column to see the full token.","maintenance.table.label.issuedDate":"Issued Date","maintenance.table.label.expiredDate":"Expired Date","maintenance.table.label.issuedBy":"Issued By","maintenance.table.msg.noManagementDatas":"No {{msg}} datas.","maintenance.table.msg.noSdkTokens":"No SDK Tokens","maintenance.label.totalPeers":"Total Peers","maintenance.label.registerPeer":"Register Peer","maintenance.label.editPeer":"Edit Peer","maintenance.label.loginEnabled":"Login Enabled","maintenance.label.allowDuplLogin":"Allow Duplicate Login","maintenance.label.transportProtocols":"Transport Protocols for Authentication","maintenance.label.maxConcurrUsers":"Maximum Concurrent Users","maintenance.helpText.maxConcurrUsers":"Enter 0 to allow unlimited concurrent users.","maintenance.helpText.reloginNotice":"Changing the settings below will force all currently signed-in users to log out.","maintenance.label.jwtRuntimeConfig":"JWT Runtime Configuration","maintenance.label.tokenExp":"Token Expiration (mins)","maintenance.label.refreshTokenExp":"Refresh Token Expiration (days)","maintenance.label.servicePrefix":"Service Prefix","maintenance.label.sdkPrefix":"SDK Prefix","maintenance.modal.button.keep":"Keep","maintenance.modal.saveAuto.desc.noRelogin":"The authentication policy will be updated.\\nThis change will apply immediately without requiring re-login.","maintenance.modal.saveAuto.desc.relogin":"The authentication policy will be updated.\\nConfirming will save the changes and force all currently signed-in users to log out.","maintenance.modal.saveAuto.desc":"The authentication policy will be updated.\\nClick Confirm to force all other signed-in users to log out.\\nClick Keep to keep their current sessions.\\nThe updated authentication policy will be saved regardless of your choice.","settings.devices.plc.options.always":"On (Always)","settings.devices.plc.options.idle":"On (Idle)","settings.devices.plc.options.playing":"On (Playing)","settings.devices.plc.options.moving":"On (Moving)","settings.devices.plc.label.input":"Input {{type}}","settings.devices.plc.options.ioSignal":"IO Signal","settings.devices.plc.options.systemStatus":"System Status","settings.devices.plc.options.systemParam":"System Parameter","settings.devices.plc.options.dataComm":"Data Communication","settings.devices.plc.options.dataDummy":"Data Dummy","settings.devices.plc.options.signalLevel":"Signal Level","settings.devices.plc.options.userNumber":"User Number","login.msg.denied":"Your login request has been canceled.","program.dialog.content.editConfirm":"Data may be modified. Do you want to proceed?","settings.amr.validation.integer":"Enter a valid integer","settings.amr.validation.number":"Enter a valid number.","settings.amr.validation.jsonArray":"Enter a valid JSON array","settings.amr.validation.jsonObject":"Enter a valid JSON object","settings.amr.validation.min":"Value must be greater than or equal to {{min}}","settings.amr.validation.max":"Value must be less than or equal to {{max}}","settings.amr.collection.position":"Position","settings.amr.collection.rotation":"Rotation","move.amr.toast.moveReject.title":"Move Failed","move.amr.toast.moveReject.localizationUnavailable":"Localization is unavailable.","move.amr.toast.moveReject.sameTarget":"The target is the same as the current target.","move.amr.toast.moveReject.outOfMapRange":"The target coordinate is outside the map range.","move.amr.toast.moveReject.markerNode":"Marker NODE cannot be used as a move target.","move.amr.toast.moveReject.robotNotReady":"The robot is not ready. ","move.amr.toast.moveReject.noMap":"No map is loaded. ","move.amr.toast.moveReject.targetNodeNotFound":"Target NODE was not found.","move.amr.toast.moveReject.noLink":"Cannot move to a NODE without LINK.","move.amr.toast.moveReject.default":"Move command was rejected.","settings.amr.preset.description":"Select a preset to view and edit setting values","settings.amr.preset.loading":"Loading preset list","settings.amr.preset.empty":"No AMR setting presets","move.amr.rightPanel.bottomBar.camera":"Camera","move.amr.rightPanel.bottomBar.controlPanel":"Control Panel","move.amr.rightPanel.bottomBar.links":"Links","move.amr.rightPanel.bottomBar.liveStream":"Live Stream","move.amr.rightPanel.bottomBar.nodes":"Nodes","move.amr.rightPanel.bottomBar.offline":"Offline","move.amr.rightPanel.bottomBar.points":"Points","move.amr.rightPanel.cameraPanel.cameraName":"Camera {{index}}","move.amr.rightPanel.cameraPanel.disconnected":"Camera Disconnected","move.amr.rightPanel.cameraPanel.loading":"Loading Cameras","move.amr.rightPanel.cameraPanel.title":"Camera Streams","move.amr.rightPanel.capability.camera":"Camera","move.amr.rightPanel.capability.dock":"Dock","move.amr.rightPanel.capability.field.batteryPercent":"Battery","move.amr.rightPanel.capability.field.batteryType":"Battery Type","move.amr.rightPanel.capability.field.bumperState":"Bumper State","move.amr.rightPanel.capability.field.camNum":"Camera Count","move.amr.rightPanel.capability.field.chargeCurrent":"Charge Current","move.amr.rightPanel.capability.field.chargeState":"Charge State","move.amr.rightPanel.capability.field.chargeType":"Charge Type","move.amr.rightPanel.capability.field.colorProfile":"Color Profile","move.amr.rightPanel.capability.field.contactVoltage":"Contact Voltage","move.amr.rightPanel.capability.field.depthProfile":"Depth Profile","move.amr.rightPanel.capability.field.dockState":"Dock State","move.amr.rightPanel.capability.field.enabled":"Enabled","move.amr.rightPanel.capability.field.enabledDepth":"Depth","move.amr.rightPanel.capability.field.enabledFilter":"Filter","move.amr.rightPanel.capability.field.enabledObs":"Obstacle Detection","move.amr.rightPanel.capability.field.interlockState":"Interlock State","move.amr.rightPanel.capability.field.ip":"IP","move.amr.rightPanel.capability.field.obsDetect":"Obstacle Detect","move.amr.rightPanel.capability.field.operationStopState":"Operation Stop State","move.amr.rightPanel.capability.field.safety":"Safety","move.amr.rightPanel.capability.field.serial":"Serial","move.amr.rightPanel.capability.field.speedControlState":"Speed Control State","move.amr.rightPanel.capability.field.tabosCurrent":"TABOS Current","move.amr.rightPanel.capability.field.tabosSoc":"TABOS SOC","move.amr.rightPanel.capability.field.tabosSoh":"TABOS SOH","move.amr.rightPanel.capability.field.tabosTemp":"TABOS Temperature","move.amr.rightPanel.capability.field.tabosVoltage":"TABOS Voltage","move.amr.rightPanel.capability.field.tf":"Transform","move.amr.rightPanel.capability.field.type":"Type","move.amr.rightPanel.capability.imu":"IMU","move.amr.rightPanel.capability.io":"I/O","move.amr.rightPanel.capability.lidar2d":"2D LiDAR","move.amr.rightPanel.capability.lidar3d":"3D LiDAR","move.amr.rightPanel.capability.safety":"Safety","move.amr.rightPanel.capability.safetyBumper":"Safety Bumper","move.amr.rightPanel.capability.safetyInterlock":"Safety Interlock","move.amr.rightPanel.capability.safetyObstacle":"Safety Obstacle","move.amr.rightPanel.capability.safetyOperationStop":"Safety Operation Stop","move.amr.rightPanel.capability.safetySpeedControl":"Safety Speed Control","move.amr.rightPanel.capability.sensor.item":"Sensor {{index}}","move.amr.rightPanel.capability.status.disabled":"Disabled","move.amr.rightPanel.capability.status.enabled":"Enabled","move.amr.rightPanel.capability.status.loading":"Loading","move.amr.rightPanel.capability.status.noData":"No data","move.amr.rightPanel.capability.status.notSupported":"This capability is not supported or could not be queried.","move.amr.rightPanel.capability.status.offline":"Offline","move.amr.rightPanel.capability.status.online":"Online","move.amr.rightPanel.capability.status.unavailable":"Unavailable","move.amr.rightPanel.capability.tabos":"TABOS","move.amr.rightPanel.common.cancel":"Cancel","move.amr.rightPanel.common.clear":"Clear","move.amr.rightPanel.common.connected":"Connected","move.amr.rightPanel.common.created":"Created","move.amr.rightPanel.common.delete":"Delete","move.amr.rightPanel.common.discard":"Discard","move.amr.rightPanel.common.disconnected":"Disconnected","move.amr.rightPanel.common.fail":"fail","move.amr.rightPanel.common.false":"false","move.amr.rightPanel.common.keepEditing":"Keep Editing","move.amr.rightPanel.common.mode.auto":"Auto","move.amr.rightPanel.common.mode.manual":"Manual","move.amr.rightPanel.common.none":"None","move.amr.rightPanel.common.normal":"Normal","move.amr.rightPanel.common.reset":"Reset","move.amr.rightPanel.common.save":"Save","move.amr.rightPanel.common.saveChanges":"Save Changes","move.amr.rightPanel.common.saving":"Saving...","move.amr.rightPanel.common.select":"Select","move.amr.rightPanel.common.settings":"Settings","move.amr.rightPanel.common.speed":"Speed","move.amr.rightPanel.common.stop":"Stop","move.amr.rightPanel.common.trig":"Trig","move.amr.rightPanel.common.triggered":"Triggered","move.amr.rightPanel.common.true":"true","move.amr.rightPanel.controlPanel.accelDegS2":"Accel (°/s²)","move.amr.rightPanel.controlPanel.accelMs2":"Accel (m/s²)","move.amr.rightPanel.controlPanel.angularMotion.line1":"Angular","move.amr.rightPanel.controlPanel.angularMotion.line2":"Motion","move.amr.rightPanel.controlPanel.axis":"Axis","move.amr.rightPanel.controlPanel.button.description":"Control robot with directional buttons","move.amr.rightPanel.controlPanel.currentPose":"Current: ({{x}}, {{y}}, {{yaw}}°)","move.amr.rightPanel.controlPanel.decelDegS2":"Decel (°/s²)","move.amr.rightPanel.controlPanel.decelMs2":"Decel (m/s²)","move.amr.rightPanel.controlPanel.executeMove":"Execute Move","move.amr.rightPanel.controlPanel.left":"Left","move.amr.rightPanel.controlPanel.linear.description":"Move robot by direction and distance","move.amr.rightPanel.controlPanel.linearMotion.line1":"Linear","move.amr.rightPanel.controlPanel.linearMotion.line2":"Motion","move.amr.rightPanel.controlPanel.moveToPoint":"Move to Point","move.amr.rightPanel.controlPanel.point.description":"Move robot to specific coordinates","move.amr.rightPanel.controlPanel.right":"Right","move.amr.rightPanel.controlPanel.speedDegS":"Speed (°/s)","move.amr.rightPanel.controlPanel.speedMs":"Speed (m/s)","move.amr.rightPanel.controlPanel.tab.button":"Button","move.amr.rightPanel.controlPanel.tab.linear":"Linear","move.amr.rightPanel.controlPanel.tab.point":"Point","move.amr.rightPanel.controlPanel.targetM":"Target (m)","move.amr.rightPanel.controlPanel.transparency":"Transparency","move.amr.rightPanel.dock.action.dock":"Dock","move.amr.rightPanel.dock.action.undock":"Undock","move.amr.rightPanel.dock.action.resume":"Resume","move.amr.rightPanel.dock.action.pause":"Pause","move.amr.rightPanel.dock.operation.charge":"Charge","move.amr.rightPanel.dock.operation.description":"Use Dock / Undock buttons to control docking state","move.amr.rightPanel.dock.operation.dock":"Dock","move.amr.rightPanel.dock.operation.motion":"Motion Control","move.amr.rightPanel.dock.operation.title":"Charge Dock Operation","move.amr.rightPanel.dock.retryCount":"Retry Count","move.amr.rightPanel.dock.status.dock":"Dock","move.amr.rightPanel.dock.status.move":"Move","move.amr.rightPanel.dock.status.title":"Charge Dock Status","move.amr.rightPanel.dock.status.undocked":"Undocked","move.amr.rightPanel.dock.step.checkCharge":"Check Charge","move.amr.rightPanel.dock.step.complete":"Complete","move.amr.rightPanel.dock.step.docking":"Docking","move.amr.rightPanel.hud.autoMove":"Auto Move","move.amr.rightPanel.hud.imuSensor":"IMU Sensor","move.amr.rightPanel.hud.inlierError":"IE","move.amr.rightPanel.hud.inlierRatio":"IR","move.amr.rightPanel.hud.localization":"Localization","move.amr.rightPanel.hud.robotTransform":"Robot Transform","move.amr.rightPanel.hud.speed":"Speed","move.amr.rightPanel.hud.status.busy":"Busy","move.amr.rightPanel.hud.status.error":"Error","move.amr.rightPanel.hud.status.fail":"Fail","move.amr.rightPanel.hud.status.good":"Good","move.amr.rightPanel.hud.status.move":"Move","move.amr.rightPanel.hud.status.none":"None","move.amr.rightPanel.hud.status.notReady":"Not Ready","move.amr.rightPanel.hud.status.pause":"Pause","move.amr.rightPanel.hud.status.success":"Success","move.amr.rightPanel.map.dialog.discardMapping.content":"Leaving the mapping tab will discard the current mapping session.","move.amr.rightPanel.map.dialog.discardMapping.leaveMenuContent":"Leaving the map menu will discard the current mapping session.","move.amr.rightPanel.map.dialog.discardMapping.loadMapContent":"Loading another map will discard the current mapping session.","move.amr.rightPanel.map.dialog.discardMapping.loadYes":"Discard and Load","move.amr.rightPanel.map.dialog.discardMapping.title":"Discard mapping changes?","move.amr.rightPanel.map.dialog.discardMapping.yes":"Discard and Leave","move.amr.rightPanel.map.erasing.descriptionLine1":"Select points in the viewport","move.amr.rightPanel.map.erasing.descriptionLine2":"to remove them from the map","move.amr.rightPanel.map.erasing.eraseMode":"Erase Mode","move.amr.rightPanel.map.erasing.eraseSelectedArea":"Erase Selected Area","move.amr.rightPanel.map.erasing.eraserRadius":"Eraser Radius","move.amr.rightPanel.map.erasing.releaseSelectedPoints":"Release Selected Points","move.amr.rightPanel.map.info.lastModified":"Last Modified","move.amr.rightPanel.map.info.mapBoundaries":"Map Boundaries","move.amr.rightPanel.map.info.mapName":"Map Name","move.amr.rightPanel.map.info.nodes":"Nodes","move.amr.rightPanel.map.info.pointCloud":"Point Cloud","move.amr.rightPanel.map.info.pts":"{{count}} pts","move.amr.rightPanel.map.info.statistics":"Statistics","move.amr.rightPanel.map.info.totalArea":"Total Area","move.amr.rightPanel.map.info.xRange":"X Range","move.amr.rightPanel.map.info.yRange":"Y Range","move.amr.rightPanel.map.loadDialog.closeBackdrop":"Close map load dialog backdrop","move.amr.rightPanel.map.loadDialog.current":"Current","move.amr.rightPanel.map.loadDialog.currentMap":"Current Map","move.amr.rightPanel.map.loadDialog.description":"Select a map to load into the editor","move.amr.rightPanel.map.loadDialog.loadSelectedMap":"Load Selected Map","move.amr.rightPanel.map.loadDialog.modified":"Modified","move.amr.rightPanel.map.loadDialog.noMapsFound":"No maps found","move.amr.rightPanel.map.loadDialog.searchPlaceholder":"Search maps by name","move.amr.rightPanel.map.loadDialog.size":"Size","move.amr.rightPanel.map.loadDialog.title":"Load Map","move.amr.rightPanel.map.loadDialog.tryDifferentSearch":"Try a different search term","move.amr.rightPanel.map.mapping.buildingKeyframes":"Building map keyframes...","move.amr.rightPanel.map.mapping.canSaveAsNewMap":"You can save this recording as a new map.","move.amr.rightPanel.map.mapping.cannotSaveRecording":"Cannot save this recording","move.amr.rightPanel.map.mapping.cannotSaveYet":"Cannot save yet","move.amr.rightPanel.map.mapping.captureStatus":"Capture Status","move.amr.rightPanel.map.mapping.clickStartMapping":'Click "Start Mapping"',"move.amr.rightPanel.map.mapping.discarding":"Discarding...","move.amr.rightPanel.map.mapping.keyframePoints":"Keyframe Points","move.amr.rightPanel.map.mapping.keyframeRequired":"At least one keyframe is required before saving.","move.amr.rightPanel.map.mapping.keyframesReceived":"Keyframes Received","move.amr.rightPanel.map.mapping.mapReadyToSave":"Map is ready to save","move.amr.rightPanel.map.mapping.noKeyframeCaptured":"No Keyframe Captured","move.amr.rightPanel.map.mapping.noKeyframeReceived":"No keyframe received","move.amr.rightPanel.map.mapping.points":"{{count}} points","move.amr.rightPanel.map.mapping.readyToMap":"Ready to Map","move.amr.rightPanel.map.mapping.readyToSave":"Ready to save","move.amr.rightPanel.map.mapping.readyToSaveTitle":"Ready to Save","move.amr.rightPanel.map.mapping.recordingActive":"Recording Active","move.amr.rightPanel.map.mapping.result":"Result","move.amr.rightPanel.map.mapping.saveStatus":"Save Status","move.amr.rightPanel.map.mapping.startMapping":"Start Mapping","move.amr.rightPanel.map.mapping.toBegin":"to begin","move.amr.rightPanel.map.saveDialog.closeBackdrop":"Close map save dialog backdrop","move.amr.rightPanel.map.saveDialog.description":"Enter a valid map name and save your current mapping result.","move.amr.rightPanel.map.saveDialog.error.duplicateName":"{{name}} already exists. Please use a different name.","move.amr.rightPanel.map.saveDialog.error.invalidChars":"Map name can only contain Korean/English letters, numbers, hyphens, and underscores","move.amr.rightPanel.map.saveDialog.error.loadFailed":"Map was saved, but failed to load. Please load it manually.","move.amr.rightPanel.map.saveDialog.error.minLength":"Map name must be at least 3 characters","move.amr.rightPanel.map.saveDialog.error.required":"Map name is required","move.amr.rightPanel.map.saveDialog.error.saveError":"An error occurred while saving the map","move.amr.rightPanel.map.saveDialog.error.saveFailed":"Failed to save map. Please try again.","move.amr.rightPanel.map.saveDialog.nameRule":"Use Korean/English letters, numbers, hyphens, and underscores only","move.amr.rightPanel.map.saveDialog.placeholder":"e.g., Factory_Floor_Building_A","move.amr.rightPanel.map.saveDialog.saveMap":"Save Map","move.amr.rightPanel.map.saveDialog.title":"Save Point Cloud Map","move.amr.rightPanel.map.tab.erasing":"Erasing","move.amr.rightPanel.map.tab.info":"Info","move.amr.rightPanel.map.tab.mapping":"Mapping","move.amr.rightPanel.marker.teachTarget":"Marker Teaching","move.amr.rightPanel.marker.camIdShort":"cam {{id}}","move.amr.rightPanel.marker.captureCurrentPose":"Capture Current Pose","move.amr.rightPanel.marker.captured":"Captured","move.amr.rightPanel.marker.capturedPose":"Captured Pose","move.amr.rightPanel.marker.foundCount":"Found {{count}}","move.amr.rightPanel.marker.markerId":"Marker ID","move.amr.rightPanel.marker.markerSize":"Marker Size (m)","move.amr.rightPanel.marker.markerType":"Marker Type","move.amr.rightPanel.marker.mount":"Mount","move.amr.rightPanel.marker.mount.floor":"Floor","move.amr.rightPanel.marker.mount.wall":"Wall","move.amr.rightPanel.marker.moveRobotThenCapture":"Move robot to target, then capture","move.amr.rightPanel.marker.noPose":"no pose","move.amr.rightPanel.marker.noRegisteredMarkers":"No registered markers","move.amr.rightPanel.marker.notFound":"Not Found","move.amr.rightPanel.marker.pressScanToStart":"Press Scan to start","move.amr.rightPanel.marker.registerId":"Register id {{id}}","move.amr.rightPanel.marker.registerMarker":"Register Marker","move.amr.rightPanel.marker.saveTarget":"Save Target","move.amr.rightPanel.marker.scan":"Scan","move.amr.rightPanel.marker.scanning":"Scanning...","move.amr.rightPanel.marker.scanningForMarkers":"Scanning for markers...","move.amr.rightPanel.marker.tab.register":"Register","move.amr.rightPanel.marker.tab.teaching":"Teaching","move.amr.rightPanel.marker.markerScan":"Marker Scan","move.amr.rightPanel.marker.markerStatus":"Marker Status","move.amr.rightPanel.marker.targetMarker":"Target Marker","move.amr.rightPanel.marker.targetName":"Target Name","move.amr.rightPanel.marker.targetNamePlaceholder":"e.g. Workbench","move.amr.rightPanel.menu.map":"Map","move.amr.rightPanel.menu.marker":"Marker","move.amr.rightPanel.menu.monitor":"Monitor","move.amr.rightPanel.menu.topology":"Topology","move.amr.rightPanel.monitor.tab.capability":"Capability","move.amr.rightPanel.monitor.tab.dock":"Dock","move.amr.rightPanel.monitor.tab.overview":"Overview","move.amr.rightPanel.monitor.tab.pdu":"PDU","move.amr.rightPanel.monitor.tab.task":"Task","move.amr.rightPanel.overview.battery.chargeLevel":"Charge Level","move.amr.rightPanel.overview.battery.title":"Battery","move.amr.rightPanel.overview.buildInfo.branch":"Branch","move.amr.rightPanel.overview.buildInfo.commit":"Commit","move.amr.rightPanel.overview.buildInfo.buildDate":"Build Date","move.amr.rightPanel.overview.buildInfo.buildUser":"Build User","move.amr.rightPanel.overview.buildInfo.title":"Build Info","move.amr.rightPanel.overview.localization.cursor":"Cursor","move.amr.rightPanel.overview.localization.description":"Uses cursor transform as initial position estimate","move.amr.rightPanel.overview.localization.positionTracking":"Position Tracking","move.amr.rightPanel.overview.localization.semiAutoInit":"Semi Auto Init","move.amr.rightPanel.overview.localization.start":"Start Localization","move.amr.rightPanel.overview.localization.title":"Localization Status","move.amr.rightPanel.overview.moveStatus.autoMove":"Auto Move","move.amr.rightPanel.overview.moveStatus.operationMode":"Operation Mode","move.amr.rightPanel.overview.moveStatus.title":"Move Status","move.amr.rightPanel.overview.robotTransform.position":"Position","move.amr.rightPanel.overview.robotTransform.rotation":"Rotation","move.amr.rightPanel.overview.robotTransform.title":"Robot Transform","move.amr.rightPanel.pdu.charge":"Charge","move.amr.rightPanel.pdu.chargeContact":"Charge Contact","move.amr.rightPanel.pdu.detect":"Detect","move.amr.rightPanel.pdu.dock":"Dock","move.amr.rightPanel.pdu.dockId":"Dock ID","move.amr.rightPanel.pdu.dockResult":"Dock Result","move.amr.rightPanel.pdu.emergencyStop":"Emergency Stop (EMO)","move.amr.rightPanel.pdu.lidarField":"Lidar Field","move.amr.rightPanel.pdu.motor":"Motor","move.amr.rightPanel.pdu.motorStatus":"Motor Status","move.amr.rightPanel.pdu.opMode":"Op Mode","move.amr.rightPanel.pdu.opModeRestoration":"Op Mode Restoration","move.amr.rightPanel.pdu.safety.bumper":"Bumper","move.amr.rightPanel.pdu.safety.fieldMismatch":"Field Mis","move.amr.rightPanel.pdu.safety.interlock":"InterLock","move.amr.rightPanel.pdu.safety.measMismatch":"Meas Mis","move.amr.rightPanel.pdu.safety.obstacle":"Obs Detect","move.amr.rightPanel.pdu.safety.overSpeed":"Ovr Spd","move.amr.rightPanel.pdu.safetyRecovery":"Safety Recovery","move.amr.rightPanel.task.currentNode":"Current Node","move.amr.rightPanel.task.duration":"Duration","move.amr.rightPanel.task.idle":"Idle","move.amr.rightPanel.task.lastUpdated":"Last Updated","move.amr.rightPanel.task.pathHistory":"Path History","move.amr.rightPanel.task.status":"Status","move.amr.rightPanel.task.targetNode":"Target Node","move.amr.rightPanel.topology.add.addNode":"Add Node","move.amr.rightPanel.topology.add.atCursorPosition":"At Cursor Position","move.amr.rightPanel.topology.add.atRobotPosition":"At Robot Position","move.amr.rightPanel.topology.add.description":"Choose an option below and add a node to the location of your choice.","move.amr.rightPanel.topology.add.selectNodeType":"1. Select Node Type","move.amr.rightPanel.topology.add.selectPlacement":"2. Select Placement","move.amr.rightPanel.topology.add.title":"Add Node","move.amr.rightPanel.topology.dialog.discardContent":"Discard unsaved topology changes?","move.amr.rightPanel.topology.edit.connectedLinks":"Connected Links","move.amr.rightPanel.topology.edit.deleteThisLink":"Delete This Link","move.amr.rightPanel.topology.edit.features":"Features","move.amr.rightPanel.topology.edit.name":"Name","move.amr.rightPanel.topology.edit.noConnectedLinks":"No connected links","move.amr.rightPanel.topology.edit.nodeId":"Node ID","move.amr.rightPanel.topology.edit.nodeProperties":"Node Properties","move.amr.rightPanel.topology.edit.selectNodeToEdit":"Select a node from the list to edit its properties","move.amr.rightPanel.topology.edit.selectedLinkInfo":"Selected Link Information","move.amr.rightPanel.topology.edit.stepSize":"Step Size","move.amr.rightPanel.topology.edit.thisNode":"This node","move.amr.rightPanel.topology.edit.transform":"Transform","move.amr.rightPanel.topology.edit.useLinkTab":"Use the Link tab to create links for this node.","move.amr.rightPanel.topology.link.avoidRange":"Avoid Range","move.amr.rightPanel.topology.link.bidirectional":"Bidirectional","move.amr.rightPanel.topology.link.complete":"Complete","move.amr.rightPanel.topology.link.configureDirection":"Configure direction after selecting at least 2 nodes","move.amr.rightPanel.topology.link.creationMode":"Link Creation Mode","move.amr.rightPanel.topology.link.deleteLinks":"Delete Links","move.amr.rightPanel.topology.link.dir":"Dir","move.amr.rightPanel.topology.link.direction":"Direction","move.amr.rightPanel.topology.link.linkSelected":"Link Selected","move.amr.rightPanel.topology.link.method":"Method","move.amr.rightPanel.topology.link.modeAvailable":"Mode selection available with 3 or more nodes","move.amr.rightPanel.topology.link.nodeSelectedCount":"{{count}} Node Selected","move.amr.rightPanel.topology.link.previewProperties":"{{dir}} / {{method}} / speed {{speed}} / avoid {{avoid}}","move.amr.rightPanel.topology.link.properties":"Link Properties","move.amr.rightPanel.topology.link.safetyField":"Safety Field","move.amr.rightPanel.topology.link.selectAtLeastTwo":"Select at least 2 nodes to create links","move.amr.rightPanel.topology.link.selectAtLeastTwoShort":"Select at least 2 nodes","move.amr.rightPanel.topology.link.sequential":"Sequential","move.amr.rightPanel.topology.link.unidirectional":"Unidirectional","move.amr.rightPanel.topology.link.willCreateCount":"Will create {{count}} links","move.amr.rightPanel.topology.link.willCreateNamed":"Will create {{from}}{{connector}}{{to}}","move.amr.rightPanel.topology.nodeType.align":"Align","move.amr.rightPanel.topology.nodeType.all":"ALL","move.amr.rightPanel.topology.nodeType.goal":"Goal","move.amr.rightPanel.topology.nodeType.route":"Route","move.amr.rightPanel.topology.nodes.deleteCount":"Delete {{count}} Nodes","move.amr.rightPanel.topology.nodes.empty":"No nodes available","move.amr.rightPanel.topology.nodes.noSelected":"No selected nodes","move.amr.rightPanel.topology.nodes.searchByName":"Search by Name","move.amr.rightPanel.topology.nodes.selectedTitle":"Selected Nodes","move.amr.rightPanel.topology.nodes.title":"Nodes","move.amr.rightPanel.topology.tab.add":"Add","move.amr.rightPanel.topology.tab.edit":"Edit","move.amr.rightPanel.topology.tab.link":"Link","move.amr.rightPanel.topology.tab.nodes":"Nodes","move.amr.rightPanel.topology.tab.zone":"Zone","move.amr.rightPanel.hud.obstacleDetect":"Obs Detect","move.amr.rightPanel.hud.status.detected":"Detected","move.amr.rightPanel.hud.status.notDetected":"Clear","move.amr.rightPanel.cameraPanel.empty":"No Cameras","move.amr.toast.markerScanReject.title":"Cannot Scan Marker","move.amr.toast.markerScanReject.localizationUnavailable":"Start marker scan after localization.","move.amr.rightPanel.cameraPanel.connecting":"Camera Connecting...","program.interface.mechmind.joints":"Joints","program.interface.mechmind.pose":"Pose","program.interface.mechmind.expected_count":"Expected Count","program.interface.mechmind.project_id":"Project ID","program.interface.mechmind.position":"Setting Position","move.amr.rightPanel.marker.dockOffset":"Dock Offset","move.amr.rightPanel.marker.moveToTarget":"Move to Target","move.amr.toast.markerRegister.title":"Marker Registered","move.amr.toast.markerRegister.success":"Marker #{{markerId}} has been registered.","move.amr.toast.markerTeach.title":"Target Saved","move.amr.rightPanel.capability.streamFrequency":"Publish Frequency (Hz)","move.amr.rightPanel.topology.edit.nodeidCopied":"Node ID Copied","move.amr.toast.markerTeach.reject.markerNotVisible":"Marker not visible. Please face the marker and try again.","settings.amr.frs.title":"FRS","settings.amr.frs.menu":"FRS Connection","settings.amr.frs.connectionSetting":"Connection Setting","settings.amr.frs.connectionStatus":"Connection Status","settings.amr.frs.button.refresh":"Refresh","settings.amr.frs.label.ip":"FRS IP","settings.amr.frs.label.zenohUrl":"Zenoh URL","settings.amr.frs.label.connection":"Connection","settings.amr.frs.label.state":"State","settings.amr.frs.status.connected":"Connected","settings.amr.frs.status.disconnected":"Disconnected","settings.amr.frs.state.none":"None","settings.amr.frs.state.connecting":"Connecting","settings.amr.frs.state.connected":"Connected","settings.amr.frs.state.disconnecting":"Disconnecting","settings.amr.frs.state.reconnecting":"Reconnecting","settings.amr.frs.state.error":"Error","settings.amr.frs.state.closed":"Closed","program.dialog.close_confirm.title":"Unsaved Changes","program.dialog.close_confirm.content":"You have unsaved changes. Do you want to close without saving?","program.dialog.close_confirm.yes":"Close Without Saving","program.dialog.close_confirm.no":"Cancel","program.options.syncOff":"Sync Off","program.options.syncOn":"Sync On","program.field.syncroMode":"Synchro Mode","ik.disconnected.title":"Robot Disconnected","ik.disconnected.content":"The connection to the robot has been lost.","login.modal.title.unauthorized":"Unauthorized","login.modal.desc.unauthorized":"You do not have permission to perform this action.","move.ghostRobot.title":"Ghost Robot","move.ghostRobot.section.gizmoType":"Mode","move.ghostRobot.gizmoType.translate":"Translate","move.ghostRobot.gizmoType.rotate":"Rotate","move.ghostRobot.gizmoType.joint":"Joint","move.ghostRobot.section.axisLimit":"Axis Select","move.ghostRobot.section.handleSize":"Handle Size","move.ghostRobot.section.poseControl":"Pose Control","move.ghostRobot.button.undo":"Undo","move.ghostRobot.button.redo":"Redo","move.ghostRobot.button.reset":"Reset","move.ghostRobot.section.gizmoSpace":"Coordinate","move.ghostRobot.gizmoSpace.world":"Global","move.ghostRobot.gizmoSpace.local":"Local","move.amr.rightPanel.menu.debug":"Debug","move.amr.rightPanel.pdu.safetyIo.pending":"Applying","move.amr.rightPanel.pdu.safetyIo.read":"View","move.amr.rightPanel.pdu.safetyIo.outputControl":"Output Control","move.amr.rightPanel.pdu.safetyIo.apply":"Apply","program.changeProgram.title":"Selecting a Change Program","program.changeProgram.desc":"Please select the program to change while the program is running.","program.subtask.title":"Selecting a Subtask Call Method","program.subtask.desc":"Subtasks do not run on the event thread.","program.subtask.items.call_sub":"Call a Subtask","program.subtask.items.copy_sub":"Copy Task Contents","program.subtask.items.switch_sub":"Call via Task Switching","program.button.prev":"Prev","program.button.next":"Next","program.subtask.select_task":"Select Task","program.subtask.select_program":"Select Program","program.subTaskModal.title":"SubTask Name: {{name}}","program.subTaskModal.desc":"Shows the progress of the currently running subtask.","program.field.label.connectionPort":"Connection Port","program.field.label.deviceId":"Device ID","program.field.label.functionList":"Function List","program.field.label.gripperType":"Gripper Type","program.field.label.initialize":"Initialize","program.field.label.motorType":"Motor Type","program.field.label.controlMode":"Control Mode","program.gripper.option.currBasePos":"Current-based-Pos","program.section.title.setGoalCurrent":"Set Goal Current","program.section.title.setGoalPos":"Set Goal Position","program.section.title.setGoalPosSpdForce":"Set Goal Pos/Spd/Force","program.section.title.setGoalPosForce":"Set Goal Pos/Force","program.section.title.action":"Action","program.gripper.option.functionCall":"Function call","program.gripper.option.reset":"Reset","program.gripper.option.suction":"Suction","program.gripper.option.release":"Release","program.gripper.option.hold":"Hold","program.gripper.option.laserOn":"Laser-On","program.gripper.option.laserOff":"Laser-Off","program.gripper.option.setZeroPos":"Set Zero Position","program.gripper.option.facotryReset":"Factory Reset","program.field.label.targetCurrent":"Target Current","program.field.label.targetPosition":"Target Position","program.field.label.targetSpeed":"Target Speed","program.field.label.targetForce":"Target Force","program.field.label.targetWidth":"Target Width","program.field.label.initializeType":"Initialize Type","program.gripper.option.simpleInit":"Simple Init","program.gripper.option.fullInit":"Full Init","program.gripper.option.inward":"Inward","program.gripper.option.outward":"Outward","program.field.label.fingerOrient":"Finger Orientation","program.field.label.fingerLength":"Finger Length","program.field.label.fingerTipWidth":"Finger Tip Width","program.gripper.option.extGrip":"External Grip","program.gripper.option.interGrip":"Internal Grip","program.gripper.option.stop":"Stop","program.gripper.option.grip":"Grip","program.gripper.option.move":"Move","program.field.label.gripDirection":"Grip Direction","program.field.label.moveType":"Move Type","program.field.label.fingerPosition":"Finger Position","program.field.label.fingerDiameter":"Finger Diameter","program.field.label.gripType":"Grip Type","program.field.label.powerConsumption":"Power Consumption","program.field.label.chFunction":"Channel {{msg}} Function","program.field.label.chPressure":"Channel {{msg}} Pressure","program.field.label.cmdMode":"Command Mode","program.field.label.magneticStrength":"Magnetic Strength","program.gripper.option.none":"None","program.field.label.siliconModel":"Silicon Model","program.field.label.gripMode":"Grip Mode","program.gripper.option.use":"Use","program.gripper.option.notUse":"Not use","program.gripper.option.active":"Active","program.gripper.option.ignore":"Ignore","program.field.label.channel":"Channel","program.field.label.pressure":"Pressure","program.field.label.timeOutput":"Time-Output","program.field.label.rpmDeviLevel":"RPM Deviation Level","program.field.label.vibLimitLevel":"Vibraion Limit Level","program.gripper.option.motorStop":"Motor Stop","program.gripper.option.motorStart":"Motor Start","program.gripper.option.ledOff":"LED Off","program.gripper.option.ledOn":"LED On","program.field.label.targetRPM":"Target RPM","program.field.label.productModel":"Product Model","program.section.title.setParam":"Set Parameter","program.field.label.force":"Force","program.section.title.gotoTarget":"Goto Target","maintenance.field.label.boardNumber":"Board Number","maintenance.title.jointInfo":"Joint Information","maintenance.title.jointDqAxis":"Joint DQ Axis Encoder","maintenance.title.encoderZero":"Encoder Zero","maintenance.title.sensorReset":"Sensor Reset","maintenance.title.brakeControl":"Brake Control","maintenance.field.label.brakeOption":"Brake Option","maintenance.title.currentControl":"Current Control","maintenance.title.positionControl":"Position Control","maintenance.title.robotArmPowerCtrl":"Robot Arm Power Control","maintenance.button.powerOff":"Power Off","maintenance.button.powerOn":"Power On","maintenance.title.robotArmInfo":"Robot Arm Information","maintenance.button.jointsInfo":"Joints Information","maintenance.title.emcHandGuiding":"Emergency Hand Guiding","maintenance.button.startFunction":"Start Function","maintenance.title.boardIdChange":"Board ID Change","maintenance.field.label.chNumber":"Channel Number","maintenance.field.label.targetNumber":"Target Number","maintenance.title.canMsgCheck":"CAN Message Check","maintenance.field.label.msgOption":"Message Option","maintenance.button.check":"Check","maintenance.options.controlBox":"Control Box","maintenance.options.cbRobot":"Control Box + Robot","maintenance.title.shortCircuitCheck":"DC Power Bus Short Circuit Check","maintenance.title.forceBleederOn":"Force Bleeder On","maintenance.field.label.time":"Time","maintenance.button.execute":"Execute","maintenance.title.update":"SW Update","maintenance.sub-title.update":"Upload a software build file to extract the version from its filename and update all idle devices running the same software at once.","maintenance.update.manipulate.description":"Collaborative Robot Control Software","maintenance.update.amr.description":"AMR Control Software (SLAMNAV2)","maintenance.update.rby1.description":"RBY1 Control Software","maintenance.update.vision.description":"Vision Software","maintenance.update.muscat.description":"Rainbow Robotics Robot Middleware Platform","maintenance.update.web-ui.description":"Muscat Web User Interface","program.interface.mechmind.recipe_id":"Recipe ID","program.button.vision":"Vision","move.panel.zoomOperation":"Zoom In/Out","move.panel.cameraView":"Camera View","move.panel.trajectory":"Draw Trajectory","move.panel.drag":"Robot Drag","move.panel.cameraViewOption.front":"Front View","move.panel.cameraViewOption.left":"Left View","move.panel.cameraViewOption.right":"Right View","move.panel.cameraViewOption.bottom":"Bottom View","move.panel.cameraViewOption.top":"Top View","move.panel.cameraViewOption.back":"Back View","move.panel.cameraViewOption.reverse":"Reverse(Top-Bottom) View","login.toast.msg.error.approve":"An error occurred while processing the approval request.","login.toast.msg.error.deny":"An error occurred while processing the rejection request.","login.toast.title.error":"Login request error","login.toast.title.fail":"Failed to process the login request","login.toast.msg.fail.already_processed":".This request has already been processed","move.ghostRobot.gizmoType.surface":"Surface","move.ghostRobot.surface.filter.free":"Free","move.ghostRobot.surface.filter.plane":"Plane","move.ghostRobot.surface.filter.cylinder":"Cylinder","move.ghostRobot.surface.showRings":"Show Holes","plugin.button.install":"Install","plugin.button.uninstall":"Remove","plugin.button.enable":"Enable","plugin.button.disable":"Disable","plugin.button.update":"Update","plugin.toast.title.installed":"Plugin Installed","plugin.toast.title.uninstalled":"Plugin Removed","plugin.toast.content.installed":"{{name}}' has been installed.","plugin.toast.content.uninstalled":"{{name}}' has been removed.","plugin.button.pluginList":"Plugin List","plugin.tab.detailInfo":"Details","plugin.tab.logs":"Logs","plugin.log.find.placeholder":"Search logs","plugin.log.find.noResults":"No results","plugin.log.find.invalidRegex":"Invalid regex","plugin.log.find.matchCase":"Match case","plugin.log.find.wholeWord":"Match whole word","plugin.log.find.regex":"Use regular expression","plugin.log.find.prev":"Previous match","plugin.log.find.next":"Next match","plugin.log.placeholder.range":"Select period","plugin.log.status.live":"Live","plugin.log.status.paused":"Paused","plugin.log.status.range":"Range","plugin.log.status.lastReceived":"Last received {{time}}","plugin.log.status.lines":"{{count}} lines","plugin.log.newLines":"{{count}} new lines","plugin.log.button.pause":"Pause","plugin.log.button.resume":"Resume","plugin.log.button.backToLive":"Live","plugin.log.button.retry":"Retry","plugin.log.button.download":"Download TXT","plugin.log.noData":"No logs.","plugin.log.error":"Failed to load logs.","plugin.detail.label.identifier":"Identifier","plugin.detail.label.lastUpdated":"Last Updated","plugin.detail.title.moreInfo":"More Information","plugin.detail.label.published":"Published","plugin.detail.label.lastReleased":"Last Released","plugin.detail.label.author":"Author","plugin.preview.noCommands":"Try adding the command you want as a plugin.","program.treeItem.replaceDetail.title":"Replace Detail View","program.treeItem.replaceDetail.toCommandList":"Would you like to enter the command list?","program.treeItem.replaceDetail.toOtherItem":"Close the detail view of {{fromName}} and open the detail view of {{toName}}?","program.treeItem.replaceDetail.unsavedNotice":"Current changes may not be saved.","settings.amr.docking.chargeType.contactDesc":"Contact Charging","settings.amr.docking.chargeType.wirelessDesc":"Wireless Charging","program.work.toast.copyNotAllowed.title":"Cannot Copy/Cut","program.work.toast.copyNotAllowed.content":"Only commands within the same task can be copied/cut.","program.work.toast.commandNotFound":"Could not find the command to add.","program.work.toast.postProgramOnlyOne":"Only one PostProgram command can be added.","program.work.toast.preProgramOnlyOne":"Only one PreProgram command can be added.","program.work.toast.fixedCommandCopyNotAllowed":"PreProgram and PostProgram commands cannot be copied or cut.","program.work.toast.notAllowedInParent":"{{childName}} cannot be added inside {{parentName}}.","program.work.toast.postProgramMainTaskOnly":"PostProgram command can only be added to the main task.","program.work.toast.preProgramMainTaskOnly":"PreProgram command can only be added to the main task.","program.work.toast.allowedParentsOnly":"{{name}} can only be added inside {{parents}}.","program.work.toast.strictParentRestricted":"{{name}} cannot be added due to a parent command restriction.","program.work.toast.subtreePasteThreadOnly":"To paste into a subtree, you must copy by selecting a Thread command.","program.work.toast.threadMaxLimit":"Up to {{count}} Threads can be added.","program.work.toast.pasteDifferentTask":"The copied command's task differs from the paste target task.","program.work.toast.subtreeMoveSameMainTaskOnly":"Subtree can only be moved within the same main task.","program.work.toast.parentDisabled":"The parent command is disabled. Please enable the parent command first and try again.","program.work.toast.groupFirstItemDisabled":"{{name}}' is disabled. Please enable '{{name}}' first and try again.","program.work.toast.copyThreadOnly":"Some of the copied commands are not Thread commands.","program.work.toast.copyRequireParent":"Some of the copied commands require a parent command.","program.work.toast.pasteNotAllowedInParent":"Cannot paste the copied content inside {{parentMethod}} command.","program.work.toast.pasteAllowedParentsOnly":"{{name}} command can only be pasted inside {{parents}} command.","header.confirm.goToDashboard.title":"Move to Robot Connection Screen","header.confirm.goToDashboard.content":"Moving to the robot connection screen will exit the current screen. Would you like to proceed?","plugin.tab.registryList":"Plugin List","plugin.tab.installedList":"Installed List","plugin.button.upload":"Upload Plugin","plugin.desc.noDataMsg":"No plugins found.","plugin.search.placeholder":"Search plugins (name, description, author)","message.arrived.info":"[{{swName}}] An info message has arrived.","message.arrived.warning":"[{{swName}}] A warning message has arrived.","message.arrived.error":"[{{swName}}] An error message has arrived.","message.arrived.user":"[{{swName}}] A user message has arrived.","message.arrived.debug":"[{{swName}}] A debug message has arrived.","message.arrived.general":"[{{swName}}] A general message has arrived.","dashboard.status.inDevelopment":"In development..","program.delete.confirm.title":"Delete Program","program.delete.confirm.content":'Are you sure you want to delete the program "{{programName}}"?',"program.delete.toast.successTitle":"Program Deleted","program.delete.toast.successContent":"The program has been deleted.","program.deleted.alert.title":"Deleted Program","program.deleted.alert.content":"This program has been deleted.","program.select.notAllowed.title":"Cannot Select","program.select.notAllowed.differentParent":"The parent command is different from the already selected command.","program.select.notAllowed.selectFirstGroupItem":"Please select the first command in the group.","program.select.notAllowed.preStep":"Commands included in Pre Program cannot be selected as a jump target.","program.select.notAllowed.onlyPreStep":"A command inside Pre Program can only jump to another command inside Pre Program.","program.delete.toast.failTitle":"Program Deletion Failed","program.delete.toast.failContent":"Failed to delete the program.","program.load.confirm.content":'Would you like to load the program "{{programName}}"?',"program.load.confirm.unsavedNotice":"Previous changes will not be saved.","program.load.toast.failTitle":"Load Failed","program.load.toast.failContent":"Please try again later.","program.controller.confirm.changedTitle":"Confirm Program Changes","program.controller.confirm.changedContent":"There are changes in the current program.\\nWould you like to save and run?","program.controller.reset.title":"Confirm Program Reset","program.controller.reset.line1":"Would you like to reset the program?","program.controller.reset.line2":"If the program does not stop or behaves abnormally, using the Reset function can initialize the program system.","program.save.toast.successTitle":"Program Saved","program.save.toast.successContent":"The program has been saved.","program.save.confirm.content":"Would you like to set the currently saved program as the active program?","program.save.toast.failTitle":"Program Save Failed","program.save.toast.failContent":"Failed to save the program.","program.modal.title.save":"Save Program","program.modal.desc.save":"Enter the program name to save the changes.","program.modal.title.create":"Create New Program","program.modal.desc.create":"Start from an empty project or select a template to create a new robot program.","program.modal.button.create":"Create","program.modal.label.projectType":"Program Type","program.modal.label.emptyProject":"Empty Program","program.modal.desc.emptyProject":"Start with an empty program with nothing in it.","program.modal.label.importProgram":"Import Program","program.modal.desc.importProgram":"It generates content by importing data from other uploaded programs.","program.modal.label.uploadProgram":"Upload Program","program.modal.import.placeholder":"Click or drag a .zip file here to upload","program.modal.upload.invalidFormat":"Only .zip files can be uploaded.","program.monitor.dialog.addVariable.title":"Add Monitoring Variable","program.monitor.dialog.addVariable.content":"Please enter the name of the variable to monitor.","program.monitor.button.addVariable":"Add Monitoring Variable","program.dimOverlay.line1":"Another program is currently running.","program.dimOverlay.line2":"Would you like to move to the running program?","program.dimOverlay.notice":"(If you have a program in progress, it will not be saved.)","program.dimOverlay.button.move":"Move","program.dimOverlay.toast.invalidTask":"This task does not exist.\\nIt may be a test run or a task started outside a program.","program.beginJoint.modal.title":"Set Robot Start Position","program.beginJoint.modal.description":"Please move the robot's joint position to the start position first.","program.beginJoint.confirm.title":"Robot Start Position Set","program.beginJoint.confirm.line1":"The robot's start position has been set.","program.beginJoint.confirm.line2":"Would you like to run the program right away?","program.beginJoint.confirm.run":"Run","program.beginJoint.button.moveJoint":"Move Joint","program.ph.select_task":"Please select a task.","login.modal.title.sessionExpired":"Session Expired","login.modal.desc.sessionExpired":"Your session has expired. You will be redirected to the login page.","login.modal.button.sessionExpiredConfirm":"Confirm","common.button.confirm":"Confirm","common.button.cancel":"Cancel","move.preview.descriptionLine1":"This is the simulator area.","move.preview.descriptionLine2":"You can add the desired menu and content as a plugin in the panel shown on the right.","move.preview.connectionGuideBefore":"To test the actual connection with the robot,","move.preview.connectionGuideAfter":"please enter the robot IP and SDK Token when running the command.","common.unit.seconds":"s","move.trajectory.description":"The trajectory stays visible for the entered duration (sec) before fading out.","program.gcode.modal.title":"G-Code Reference","program.gcode.modal.code":"Code","program.gcode.modal.function":"Function","program.gcode.modal.rapidMove":"Rapid Move","program.gcode.modal.linearMove":"Linear Move (Programmed Feed Rate)","program.gcode.modal.clockwise":"Clockwise Arc Move","program.gcode.modal.counterclockwise":"Counterclockwise Arc Move","program.gcode.modal.dwell":"Dwell","program.gcode.modal.planeXY":"Plane Selection - XY","program.gcode.modal.planeZX":"Plane Selection - ZX","program.gcode.modal.planeYZ":"Plane Selection - YZ","program.gcode.modal.unitInch":"Unit - Inch","program.gcode.modal.unitMillimeter":"Unit - Millimeter (Default)","program.gcode.modal.returnToHomePos":"Return to Home Position","program.gcode.modal.absCoordMode":"Absolute Coordinate Mode","program.gcode.modal.relCoordMode":"Relative Coordinate Mode","program.gcode.modal.setCurrentCoord":"Set Current Position as Coordinate Origin","program.gcode.modal.doutOnSync":"Digital Output ON (Motion Synchronized)","program.gcode.modal.doutOffSync":"Digital Output OFF (Motion Synchronized)","program.gcode.modal.doutOnImmediate":"Digital Output ON (Immediate)","program.gcode.modal.doutOffImmediate":"Digital Output OFF (Immediate)","notfound.desc":"The page cannot be found.","notfound.button.home":"Go to Home","alarm.banner.button.hide":"Hide","alarm.banner.button.show":"Show","alarm.banner.msg.noNotifications":"No notifications","alarm.banner.title.importantNotification":"Important Notification","alarm.banner.toast.readFailContent":"Could not mark the notification as read. Please try again.","alarm.banner.toast.readFailTitle":"Failed to Read Notification","alarm.banner.toast.resolvePending":"Resolve pending actions to continue.","dashboard.detail.robotNotConnected":"Robot not connected.","move.amr.panel.virtualJoysticks":"Virtual Joysticks","move.rby1.accordion.detailControl":"Detail Control","move.rby1.button.batchJointMove":"Batch Joint Move","move.rby1.button.batchMove":"Batch Move","move.rby1.button.moveZeroPose":"Move Zero pose","move.rby1.field.jogStepDeg":"Jog Step (deg)","move.rby1.field.minimumTimeSec":"Minimum Time (sec)","move.rby1.modal.batchMoveJoints.title":"Batch Move Joints","move.tool.modal.title":"Select TCP Tool List","move.userFrame.modal.title":"Select User Coordinate","plugin.options.ariaLabel.more":"More options","plugin.options.ariaLabel.pin":"Pin","plugin.options.ariaLabel.unpin":"Unpin","plugin.popover.ariaLabel.close":"Close","plugin.options.button.detailInfo":"Detail Information","plugin.options.button.viewLogs":"View Logs","plugin.options.button.uninstall":"Uninstall","plugin.popover.button.manageInstalled":"Manage installed plugins","plugin.popover.installedList.desc":"This is the list of plugins installed by the user.","plugin.popover.installedList.empty":"No plugins installed","plugin.popover.installedList.emptyDesc":"Install plugins to check their status here and pin the ones you use often.","program.amrStream.field.frequency":"Frequency (Hz)","program.amrStream.field.target":"Target","program.commandList.msg.notFound":"Command not found.","program.pointPreview.title":"Move Preview","program.toast.title.programError":"Program Error","settings.devices.menu.externalAxis":"External Axis","settings.devices.menu.softwarePlc":"Software PLC","settings.general.afterAction.card.actionTypeLabel":"Action Type","settings.io.label.extDinput":"Ext D.Input","settings.io.label.extDinputPort":"Ext D.Input Port","settings.io.label.extDoutput":"Ext D.Output","settings.io.label.extDoutputPort":"Ext D.Output Port","settings.io.label.toolDinput":"Tool D.Input","settings.io.label.toolDinputPort":"Tool D.Input Port","settings.io.label.toolDoutput":"Tool D.Output","settings.io.label.toolDoutputPort":"Tool D.Output Port","plugin.detail.label.version":"Version","plugin.detail.label.size":"Size","plugin.detail.title.installation":"Installation","program.modal.error.duplicateName":"Program name already exists.","program.monitor.dialog.addVariable.label":"Variable Name","program.desc.loadOrAddNew":"Please load a program or add a new one.","program.button.loadProgram":"Load Program","program.button.newProgram":"New Program","program.desc.noRobotComponentsFound":"No robot components found","settings.io.label.dinput":"D.Input","settings.io.label.dinputPort":"D.Input Port","settings.io.label.doutput":"D.Output","settings.io.label.doutputPort":"D.Output Port","settings.io.label.delay":"Applied Signal Delay","settings.io.label.count":"Count","settings.io.label.direction":"Direction","settings.devices.label.type":"Type","maintenance.safety.desc.noData":"No Safety data","maintenance.safety.desc.search":"Search...","settings.joint.menu.bigInputError":"Big Error & Input Error","settings.joint.label.bigErrorPulse":"Big Error Pulse","settings.joint.label.inputErrorPulse":"Input Error Pulse","settings.joint.label.gain":"Gain","maintenance.update.modal.title.confirmVersion":"Confirm Upload Version","maintenance.update.modal.content.confirmVersion":"Is the SW update version for [{{category}}] as shown below?","maintenance.update.modal.content.confirmVersionSub":"If it's different, please modify it to the version you want.","maintenance.update.toast.title.unavailable":"Update Unavailable","maintenance.update.toast.title.complete":"Update Complete","maintenance.update.toast.content.updateSuccess":"{{names}} updated successfully. It may take 1-3 minutes to apply.","maintenance.update.dialog.title.result":"Update Result","maintenance.update.dialog.label.succeeded":"Succeeded: {{names}}","maintenance.update.dialog.label.failed":"Failed: {{names}}","maintenance.update.label.unitCount":"{{count}} units","maintenance.update.label.autoUpdate":"Auto Update","maintenance.update.button.execute":"Update","maintenance.update.button.uploading":"Uploading... {{progress}}%","maintenance.update.button.uploadBuildFile":"Upload Build File","maintenance.update.label.available":"Update Available","maintenance.update.label.unavailable":"Update Unavailable","program.monitor.dialog.placeholder.search":"Enter variable to monitor","program.box.photoneo":"Photoneo 3D Interface","program.box.initialize_configuration":"Initialize Configuration","program.box.scan_configuration":"Scan Configuration","program.box.get_object_pose_configuration":"Get Object Pose Configuration","program.box.get_trajectory_configuration":"Get Trajectory Configuration","program.box.solution_change_configuration":"Solution Change Configuration","program.box.solution_start_configuration":"Solution Start Configuration","program.box.solution_stop_configuration":"Solution Stop Configuration","program.box.solution_ask_configuration":"Solution Ask Configuration","program.interface.photoneo.vision_system_id":"Vision System ID","program.interface.photoneo.start_joint":"Start Joint","program.interface.photoneo.end_joint":"End Joint","program.interface.photoneo.point_variable_name":"Point Variable Name","program.interface.photoneo.solution_id":"Solution ID","program.interface.photoneo.current_solution_id":"Current Solution ID","program.interface.photoneo.position":"Setting Position","program.interface.photoneo.trajectory_start_to_approach":"Start → Approach","program.interface.photoneo.trajectory_approach_to_grasp":"Approach → Grasp","program.interface.photoneo.trajectory_grasp_to_deapproach":"Grasp → Depart","program.interface.photoneo.trajectory_deapproach_to_end":"Depart → End","program.options.photoneo_function.create_connection":"Create Connection","program.options.photoneo_function.initialize":"Initialize","program.options.photoneo_function.scan":"Scan","program.options.photoneo_function.get_object_pose":"Get Object Pose","program.options.photoneo_function.get_trajectory":"Get Trajectory","program.options.photoneo_function.solution_change":"Solution Change","program.options.photoneo_function.solution_start":"Solution Start","program.options.photoneo_function.solution_stop":"Solution Stop","program.options.photoneo_function.solution_ask":"Solution Ask","program.box.move_trajectory_configuration":"Move Trajectory Configuration","program.interface.photoneo.trajectory_name":"Trajectory Name","program.options.photoneo_function.move_trajectory":"Move Trajectory","move.ghostRobot.desc":"Drag the robot or click a surface to set the target pose.","program.box.trajectory_variables":"Trajectory Segment Variables","program.weaving.modal.title":"Weaving Parameters","program.weaving.modal.trapOddTime":"Linear reciprocating","program.weaving.modal.trapEvenTime":"R/C/L dwell","program.weaving.modal.trapMag1":"Max + (R) amp.","program.weaving.modal.trapMag2":"Max - (L) amp.","program.weaving.modal.sineOddTime":"Smooth S-curve","program.weaving.modal.sineMag1":"+ amp.","program.weaving.modal.sineMag2":"- amp.","program.weaving.modal.polyOddTime":"Smooth 5th-order","program.weaving.modal.ellipseOddTime":"Ellipse cycle","program.weaving.modal.ellipseEvenTime":"Vertex dwell","program.weaving.modal.ellipseMag1":"Y (weave) rad.","program.weaving.modal.ellipseMag2":"X (depth) rad.","program.weaving.modal.8ShapeOddTime":"Figure-8 cycle","program.weaving.modal.8ShapeEvenTime":"Crossing dwell","program.weaving.modal.8ShapeMag1":"Y-axis width","program.weaving.modal.8ShapeMag2":"X-axis width","program.weaving.modal.lissaOddTime":"Lissajous cycle","program.weaving.modal.lissaEvenTime":"Path dwell","program.weaving.modal.lissaPhase":"Y/X freq. ratio","program.weaving.modal.cShapeOddTime":"Arc travel","program.weaving.modal.cShapeEvenTime":"Arc R/C/L dwell","program.weaving.modal.cShapeMag1":"Arc height","program.weaving.modal.cShapeMag2":"Arc rad.","program.weaving.modal.diagOddTime":"Diagonal travel","program.weaving.modal.diagEvenTime":"R/C/L dwell","program.weaving.modal.diagMag1":"Y-axis travel","program.weaving.modal.diagMag2":"X-axis travel","program.weaving.tooltip.scaleRate":"Overall scale factor applied to Magnitude 1/2.","program.weaving.tooltip.torchDirection":"Offsets the entire pattern along the torch (depth) direction.","program.weaving.tooltip.weavingDirection":"Offsets the entire pattern along the weaving (left/right) direction.","program.weaving.tooltip.swingAngle":"Torch swing angle proportional to the weaving position.","program.weaving.tooltip.distortionAngle":"Rotates the weaving plane about the Z-axis.","move.ghostRobot.surface.filter.requiresCad":"Plane and cylinder require an STL, STP or STEP file.","move.ghostRobot.surface.unreachable":"The robot can't reach that point.","move.ghostRobot.section.moreOptions":"More Options","move.ghostRobot.section.gizmoOffset":"Gizmo Offset","move.ghostRobot.button.useToolOffset":"Use Tool Value","program.interface.photoneo.ext_axis_notice":"If an additional axis is present, only the values for the 6 axes excluding it are transmitted.","program.options.interface.photoneo":"Photoneo","program.box.pickit":"PICKIT 3D Interface","program.options.interface.pickit":"PICKIT 3D","program.options.pickit_function.connect":"Create Connection","program.options.pickit_function.update_robot_pose":"Update Robot Pose","program.options.pickit_function.check_mode":"Check Mode","program.options.pickit_function.shutdown_system":"Shutdown System","program.options.pickit_function.find_calib_plate":"Find Calib Plate","program.options.pickit_function.configure_calib":"Configure Calib","program.options.pickit_function.compute_calib":"Compute Calib","program.options.pickit_function.validate_calib":"Validate Calib","program.options.pickit_function.look_for_objects":"Look For Objects","program.options.pickit_function.look_for_objects_with_retries":"Look For Objects With Retries","program.options.pickit_function.next_object":"Next Object","program.options.pickit_function.capture_image":"Capture Image","program.options.pickit_function.process_image":"Process Image","program.options.pickit_function.get_pick_point_data":"Get Pick Point Data","program.options.pickit_function.configure":"Configure Setup and Product","program.options.pickit_function.set_cylinder_dim":"Set Cylinder Dimension","program.options.pickit_function.save_active_setup":"Save Active Setup","program.options.pickit_function.save_active_product":"Save Active Product","program.options.pickit_function.build_background":"Build Background","program.options.pickit_function.save_snapshot":"Save Snapshot","program.box.update_robot_pose_configuration":"Update Robot Pose Configuration","program.box.check_mode_configuration":"Check Mode Configuration","program.box.shutdown_system_configuration":"Shutdown System Configuration","program.box.find_calib_plate_configuration":"Find Calib Plate Configuration","program.box.configure_calib_configuration":"Configure Calib Configuration","program.box.compute_calib_configuration":"Compute Calib Configuration","program.box.validate_calib_configuration":"Validate Calib Configuration","program.box.look_for_objects_configuration":"Look For Objects Configuration","program.box.look_for_objects_with_retries_configuration":"Look For Objects With Retries Configuration","program.box.next_object_configuration":"Next Object Configuration","program.box.capture_image_configuration":"Capture Image Configuration","program.box.process_image_configuration":"Process Image Configuration","program.box.get_pick_point_data_configuration":"Get Pick Point Data Configuration","program.box.pickit_configure_configuration":"Configure Setup and Product","program.box.set_cylinder_dim_configuration":"Set Cylinder Dimension Configuration","program.box.save_active_setup_configuration":"Save Active Setup Configuration","program.box.save_active_product_configuration":"Save Active Product Configuration","program.box.build_background_configuration":"Build Background Configuration","program.box.save_snapshot_configuration":"Save Snapshot Configuration","program.interface.pickit.position":"Setting Position","program.interface.pickit.pickit_mode":"Pickit Mode","program.interface.pickit.calib_method":"Calibration Method","program.interface.pickit.calib_mount":"Calibration Mount","program.interface.pickit.pick_point_name":"Pick Point Variable","program.interface.pickit.remaining_count_name":"Remaining Count Variable","program.interface.pickit.model_id_or_type_name":"Model ID/Type Variable","program.interface.pickit.retry_count":"Retry Count","program.interface.pickit.gripper_pose_name":"Gripper Pose Variable","program.interface.pickit.reference_pick_point_id_name":"Reference Pick Point ID Variable","program.interface.pickit.setup_id":"Setup ID","program.interface.pickit.product_id":"Product ID","program.interface.pickit.cylinder_length":"Cylinder Length","program.interface.pickit.cylinder_diameter":"Cylinder Diameter","program.options.pickit_calib_method.single_pose":"Single Pose","program.options.pickit_calib_method.multi_pose":"Multi Pose","program.options.pickit_calib_method.manual":"Manual","program.options.pickit_calib_method.default":"Default","program.options.mechmind_function.create_connection":"Create Connection","program.options.mechmind_function.set_recipe":"Set Recipe","program.options.mechmind_function.trigger":"Trigger","program.options.mechmind_function.trigger_and_read_pose":"Trigger & Read Pose","program.options.mechmind_function.read_pose":"Read Pose","program.button.canBus":"CAN Bus","program.options.canBus.connect":"Connect","program.options.canBus.disconnect":"Disconnect","program.options.canBus.transmit":"Transmit","program.box.disconnect_configuration":"Disconnect Configuration","program.box.transmit_configuration":"Transmit Configuration","program.field.can_channel":"Channel","program.field.can_bitrate":"Bitrate","program.field.can_fd":"CAN FD","program.field.can_data_bitrate":"Data Bitrate","program.field.can_receive_own_messages":"Receive Own Messages","program.field.can_interface":"Interface","program.field.can_arbitration_id":"Arbitration ID","program.field.can_data":"Data","program.field.can_dlc":"DLC","program.field.can_extended_id":"Extended ID","program.field.can_remote_frame":"Remote Frame","program.field.can_bitrate_switch":"Bitrate Switch","program.field.can_error_frame":"Error Frame","program.field.can_error_state_indicator":"Error State Indicator","program.field.can_timestamp":"Timestamp","program.field.can_flags":"Flags","program.desc.can.add_data":"Enter byte values (0–255) separated by commas.","program.validation.can.data.invalid_array_format":"The data array format is invalid.","program.validation.can.data.integer_only":"Each data value must be an integer separated by commas.","program.validation.can.data.out_of_range":"Each data value must be between {{min}} and {{max}}.","program.validation.variableNameRule":"Variable names may only contain letters and underscores (_).","move.toast.performanceWarning.title":"Performance Warning","move.toast.performanceWarning.content":"The scene is too heavy, causing rendering delays.","move.bottomBar.complexity.ok":"Smooth","move.bottomBar.complexity.warning":"Moderate","move.bottomBar.complexity.danger":"Slow","move.bottomBar.complexity.triangles":"Triangles","move.bottomBar.complexity.framerate":"Frame rate","move.bottomBar.complexity.label":"3D Complexity","ik.blocked.unreachable.title":"Out of reach","ik.blocked.unreachable.content":"The arm is fully extended. Try pulling back toward the robot.","ik.blocked.unreachableRotate.title":"Cannot rotate further","ik.blocked.unreachableRotate.content":"This orientation is unreachable here. Try moving the position slightly.","ik.blocked.jointLimit.title":"Joint limit reached","ik.blocked.jointLimit.content":"The highlighted joint is at its limit. Try moving the other way.","ik.blocked.singularity.title":"Singular pose","ik.blocked.singularity.content":"The axes are nearly aligned. Try moving sideways.","ik.blocked.branch.title":"Posture change required","ik.blocked.branch.content":"Continuing would require a large posture change. Try approaching differently.","ik.blocked.diverged.title":"Solver failed","ik.blocked.diverged.content":"The solver did not converge. Change the pose slightly and retry.","ik.blocked.axisProximity.title":"Joint limit reached","ik.blocked.axisProximity.content":"The highlighted joint is at its limit. Try moving the other way.","move.ghostRobot.section.detailedBlockReason":"Show Motion Limit Details","ik.blocked.dev.candidates.some":"candidates=found","ik.blocked.dev.candidates.none":"candidates=none","ik.blocked.dev.clamped.true":"clamped=true","ik.blocked.dev.clamped.false":"clamped=false","ik.blocked.dev.jointLimit":"{{name}}={{val}}° [limit: {{lower}}°, {{upper}}°]","ik.blocked.dev.conditioning":"cond={{cond}} (threshold: < 0.01)","ik.blocked.dev.jump":"jump={{jump}}° (threshold: > 30.0°)","ik.blocked.dev.status":"status={{status}}","ik.blocked.dev.path":"path={{path}}","ik.blocked.dev.path.analytic":"analytic","ik.blocked.dev.path.fallback":"fallback","ik.blocked.dev.path.numeric":"numeric","settings.tool.flange.title.bootupTool":"Flange Boot-up Tool List Selection","settings.tool.flange.field.label.toolNumber":"Tool number","settings.tool.flange.title.bootupVoltage":"Flange Boot-up DC Voltage","settings.tool.flange.field.label.dcVoltage":"DC Voltage","settings.tool.flange.title.dtButton":"Flange Direct Teaching Button","settings.tool.flange.field.label.workingMode":"Working mode","settings.tool.flange.options.use":"Use","settings.tool.flange.options.notUse":"Not use","settings.tool.flange.title.vibrationSensor":"Flange Vibration (IMU) Sensor","move.menu.button.label.assetManager":"WorkSpace","move.modal.workspace.file.button.add":"Add","move.modal.workspace.file.button.cancelUpload":"Cancel upload","move.modal.workspace.file.confirmDelete.content":'Are you sure you want to delete "{{name}}"? This action cannot be undone.',"move.modal.workspace.file.confirmDelete.multiContent":"Are you sure you want to delete {{count}} items? This action cannot be undone.","move.modal.workspace.button.confirm":"Confirm","move.modal.workspace.button.deleteSelected":"Delete {{count}}","move.modal.workspace.button.select":"Select","move.modal.workspace.button.selectExit":"Done","move.modal.workspace.file.deleteTitle":"Delete Model","move.modal.workspace.file.dropLabel":"Drop files to upload","move.modal.workspace.file.empty.noAvailable":"No 3D files available","move.modal.workspace.file.empty.noFound":"No 3D files found","move.modal.workspace.footer.hint":"Double-click to load immediately.","move.modal.workspace.file.search.placeholder":"Search 3D files...","move.modal.workspace.file.title":"Select 3D File","move.modal.workspace.title":"Select Workspace","move.workspace.tab.base":"Base","move.workspace.title":"Workspace","move.workspace.button.continue":"Continue","move.workspace.itemList.deleteLabel":"Delete object","move.modal.workspace.card.itemCount":"{{shapeCount}} shapes, {{fileCount}} files","move.workspace.itemList.empty":"Add a shape or file.","move.workspace.jsonSlot.empty":"Select a workspace","move.workspace.shapeLimitReached":"You can add up to 5 shapes.","move.workspace.toast.saveFailed":"Failed to save the workspace.","move.workspace.toast.saveSuccess":"Workspace saved.","move.workspace.toast.uploadFailed":"Failed to upload the file.","move.modal.workspace.file.preview.error":"Unable to load preview","move.modal.workspace.file.preview.multiSelectUnsupported":"Preview is not supported when multiple 3D files are selected","move.modal.workspace.file.preview.selectPrompt":"Select a model file to preview","move.modal.workspace.file.preview.triangles":"triangles","move.modal.workspace.file.slotLoading":"Loading...","move.workspace.toast.renameFailed":"Failed to change model name.","move.workspace.toast.renameInvalid":"Please enter a valid name.","move.workspace.toast.renameSuccess":"Model name changed.","move.modal.workspace.file.upload.abort":"Upload cancelled.","move.modal.workspace.file.upload.duplicateName":"A file with the same name already exists.","move.workspace.toast.invalidCharacters":"Name cannot contain spaces or the characters # ? & %.","move.modal.workspace.file.upload.invalidFormat":"Unsupported file format. Only .stl, .obj, .stp, .step, .dae, .glb are supported.","move.modal.workspace.file.upload.maxFilesExceeded":"Drag and drop up to {{count}} files to upload.","move.modal.workspace.file.upload.createFailed":"Failed to create model. Please try again.","move.modal.workspace.file.upload.tooLarge":"File size exceeds the maximum limit (50MB).","move.modal.workspace.file.upload.unknown":"Network error. Please check your connection and try again.","move.modal.workspace.button.delete":"Delete","move.workspace.properties.translate":"Move","move.workspace.properties.rotate":"Rot","move.workspace.properties.scale":"Scale","move.modal.workspace.search.placeholder":"Search workspaces...","move.modal.workspace.empty.noAvailable":"No workspaces available","move.modal.workspace.empty.noFound":"No workspaces found","move.workspace.stepFormatWarning.title":"Loading .stp/.step file","move.workspace.stepFormatWarning.message":"STEP format (.stp, .step) files may take longer to load compared to other formats. Please wait.","move.workspace.header.renameLabel":"Rename workspace","move.workspace.header.undo":"Undo","move.workspace.header.redo":"Redo","move.workspace.header.menu":"Workspace menu","move.workspace.header.open":"Open","move.workspace.header.createNew":"New","move.workspace.header.clearAll":"Delete All Objects","move.workspace.header.reset":"Revert to last save","move.workspace.addMenu.trigger":"Add object","move.workspace.addMenu.customFile":"Imported File","move.workspace.itemList.title":"Object List","move.workspace.confirm.clearAllTitle":"Clear All Objects","move.workspace.confirm.clearAllContent":"Are you sure you want to remove all shapes and files in this workspace?","move.workspace.confirm.replaceFileTitle":"Replace the imported file?","move.workspace.confirm.replaceFileContent":"A workspace can hold one imported file. The current file will be removed.","move.workspace.properties.groupLabel":"Gizmo mode","move.workspace.itemList.hideLabel":"Hide in scene","move.workspace.itemList.showLabel":"Show in scene","move.workspace.toast.nameDuplicate":"A workspace with this name already exists.","move.workspace.toast.saveFailedPartial":"Failed to save {{count}} object(s).","move.workspace.toast.loadTimeout":'Stopped loading "{{name}}" — it took too long.',"move.modal.workspace.toast.deletePartialFailure":"Failed to delete {{failed}} of {{total}} objects.","move.modal.workspace.confirmDelete.title":"Delete workspace","move.modal.workspace.confirmDelete.content":'Are you sure you want to delete the workspace "{{name}}"? All objects in it will be deleted, and this action cannot be undone.',"move.workspace.tab.loadingLabel":"Some objects are still loading","move.workspace.itemList.saveFailedLabel":"Save failed","move.workspace.itemList.loadFailedLabel":"Could not load the file","move.workspace.toast.loadedSyncFailed":"Failed to sync the active state.","move.workspace.tab.tool":"Tool","move.workspace.tab.toolRight":"Right Tool","move.workspace.tab.toolLeft":"Left Tool","move.workspace.tab.toolIndexed":"Tool {{index}}","move.workspace.properties.title":"Object Properties","move.workspace.properties.resetTransform":"Reset","move.modal.workspace.confirmDelete.multiContent":"Are you sure you want to delete {{count}} workspaces? All objects in them will be deleted, and this action cannot be undone.","move.workspace.dialog.createTitle":"Create New Workspace","move.workspace.dialog.renameTitle":"Rename Workspace","move.workspace.dialog.namePlaceholder":"Enter workspace name","move.workspace.header.rename":"Rename","move.workspace.header.delete":"Delete","move.workspace.header.close":"Close","move.workspace.dialog.saveAsTitle":"Save As","program.section.title.variableConfig":"Variable Configuration","program.field.variableType":"Variable Type","program.field.variableSelection":"Variable Selection","program.section.title.dialogSettings":"Dialog Settings","program.field.askMessage":"Ask Message","program.field.varNameToStore":"Variable Name to store selection","program.field.timeoutDuration":"Selection Time-Out duration (s)","program.field.fallbackNumber":"Number to select when a timeout occurs","program.section.title.comment":"Comment","program.list.box.maxCommentLimit":"Up to {{count}} comments can be added.","program.section.title.addComment":"Add Comment","program.modal.title.changeUserVariable":"Change User Variable Values","program.button.skip":"Skip","program.button.continueAfterReflection":"Continue after Reflection","program.field.variable":"Variable","program.field.applyValue":"Value to apply","program.modal.label.typingExample":"Typing Example","program.modal.desc.string":'A type that stores character data wrapped in double quotes (Ex: "Robot_Mode_1", "PASS")',"program.modal.desc.numeric":"A type that represents numeric values, including integers and floating-point numbers (Ex: 100, 3.14, -45.5)","program.modal.desc.boolean":"A logical value of true or false (Ex: true, false)","program.modal.desc.list":"An ordered collection of multiple values or coordinates (Ex: [0, -90, 90, -90, -90, 0, 0])","program.modal.desc.dictionary":'A value structured as key-value pairs (Ex: {"tool_name": "Gripper_A"})',"program.modal.desc.variable":"A type that references and assigns a local or global variable (Ex: target_pose = RB_JOINT_REF)","program.field.description":"Description","program.field.owner":"Owner","move.workspace.header.duplicate":"Make a copy","move.workspace.header.saving":"Saving...","move.workspace.header.saved":"Saved","program.script.meta-info-view":"View Meta information","maintenance.menu.database":"Database","maintenance.database.desc":"Initializes database collections and disk data item by item. Initialized data cannot be recovered.","maintenance.db.title.programReset":"Program Reset","maintenance.db.desc.programReset":"Deletes all saved programs, tasks, steps, and variables.","maintenance.db.button.programReset":"Reset Program","maintenance.db.title.logReset":"Log Reset","maintenance.db.desc.logReset":"Immediately clears status logs. (Retention period is set in the Log menu)","maintenance.db.button.logReset":"Reset Logs","maintenance.db.title.pluginReset":"Plugin Reset","maintenance.db.desc.pluginReset":"Deletes installed plugins and plugin-scoped variables.","maintenance.db.button.pluginReset":"Reset Plugins","maintenance.db.title.fileReset":"File/Model Reset","maintenance.db.desc.fileReset":"Deletes uploaded files and registered models.","maintenance.db.button.fileReset":"Reset Files","maintenance.db.title.amrReset":"AMR Reset","maintenance.db.desc.amrReset":"Deletes maps, driving settings, localization, and movement command history.","maintenance.db.button.amrReset":"Reset AMR","maintenance.db.warning.amrReset":"Warning: Map data cannot be recovered.","maintenance.db.title.userReset":"User/Auth Reset","maintenance.db.desc.userReset":"Deletes user accounts (except admin), sessions, SDK whitelist, and login policies.","maintenance.db.button.userReset":"Reset Users","maintenance.db.title.factoryReset":"Factory Reset (All)","maintenance.db.desc.factoryReset":"Deletes all of the above along with robot info and FRS info, restoring factory shipment state.","maintenance.db.button.factoryReset":"Factory Reset","maintenance.db.warning.factoryReset":"Warning: This action cannot be undone once reset.","maintenance.modal.content.confirmResetDB":"Are you sure you want to Reset?\\nThis action cannot be undone.","move.menu.button.label.masterMode":"Master Mode","move.menu.button.label.master.modeJ":"Master Move J","move.menu.button.label.master.modeL":"Master Move L","move.menu.button.label.master.stop":"Master Mode Stop","move.workspace.itemList.selectionMode":"Select","move.workspace.itemList.selectionExit":"Cancel","move.workspace.itemList.selectionCount":"{{count}} selected","move.workspace.itemList.hideSelected":"Hide {{count}}","move.workspace.itemList.deleteSelected":"Delete {{count}}","move.workspace.header.saveNow":"Save","move.workspace.confirm.closeTitle":"Unsaved Changes","move.workspace.confirm.closeContent":"You have unsaved changes. Are you sure you want to close?","move.workspace.button.closeWithoutSaving":"Close without saving","move.workspace.confirm.openTitle":"Open Workspace","move.workspace.confirm.openContent":"Unsaved changes will be lost. Do you want to continue?","move.workspace.confirm.deleteTitle":"Delete Workspace","move.workspace.confirm.deleteContent":'Are you sure you want to delete "{{name}}"?',"move.workspace.toast.deleteSuccess":"Workspace deleted successfully.","move.workspace.toast.deleteFailed":"Failed to delete workspace.","move.workspace.header.unsaved":"Unsaved","move.workspace.properties.selectItem":"Please select an object","move.workspace.addMenu.box":"Box","move.workspace.addMenu.cylinder":"Cylinder","move.workspace.addMenu.sphere":"Sphere","move.modal.asset.button.add":"Add","move.modal.workspace.card.deleteLabel":"Delete","settings.general.menu.netComm":"Network/Comm.","settings.network.title.ipSettings":"IP Settings","settings.network.desc.ipSettings":"Choose how this device connects to your network. Select DHCP to get an IP address automatically, or Static to manually set a fixed IP address.","settings.network.label.settingMode":"Setting Mode","settings.network.label.mask":"Mask","settings.network.label.gateway":"Gateway","program.userInput.errorMsg.varSelection":"Please select a variable.","program.options.clearDataTable":"Clear Data Table","program.options.addDataTable":"Add Data Table","program.options.calcTable":"Calculate Result from Table","program.options.reflectResult":"Reflect Result to Robot-arm","program.options.usePosInfo":"Use Position Info","program.options.usePosAndOri":"Use Position and Orientation","program.label.jointAngle":"Joint Angle (deg)","program.label.groundTruthTCP":"Ground Truth TCP","program.field.calcOption":"Calculation Option","program.field.password":"Password","move.panel.measureDistance":"Measure Distance","move.measure.title":"Measure Distance","move.measure.activate":"Enable Distance Measurement","move.measure.target1":"Target 1","move.measure.target2":"Target 2","move.measure.selectFirstPrompt":"Click first shape","move.measure.selectSecondPrompt":"Click second shape","move.measure.mode.center":"Center-to-Center","move.measure.mode.min":"Minimum Distance","move.measure.result.distance":"Distance","move.measure.reset":"Reset","move.amr.rightPanel.map.info.downloadMap":"Download Map","move.amr.toast.title.mapDownload.fail":"Map Download Failed","move.amr.toast.content.mapDownload.fail":"No map point cloud data is available to download","move.align.switch.label":"Move Align","move.align.button.send":"Send","settings.box.option.notUse":"Not Use","settings.box.option.activeAfterReal":"Activate after Real-Mode","settings.tool.gripper.label.defaultGripper":"Default Gripper Attachment","settings.tool.gripper.label.pubDataType":"Publish Data type {{idx}}","settings.box.option.notMounted":"Not Mounted","settings.box.option.notAssigned":"Not Assigned","settings.box.option.posRef":"Position Reference","settings.box.option.posFeedback":"Position Feedback","settings.box.option.speedRef":"Speed Reference","settings.box.option.speedFeedback":"Speed Feedback","settings.box.option.forceRef":"Force Reference","settings.box.option.forceFeedback":"Force Feedback","move.box.option.global":"Global","move.box.option.local":"Local","move.box.option.user":"User","move.amr.viewportControls.visibility.lidarPoints":"Lidar Points","move.amr.viewportControls.visibility.lidarPointsDescription":"Real-time point cloud","move.amr.viewportControls.visibility.simpleNodes":"Simple Nodes","move.amr.viewportControls.visibility.simpleNodesDescription":"Render topology nodes as small spheres","move.amr.viewportControls.visibility.nodeLabels":"Node Labels","move.amr.viewportControls.visibility.nodeLabelsDescription":"CSS2D Object labels","move.amr.viewportControls.visibility.grid":"Grid","move.amr.viewportControls.visibility.gridDescription":"Blender-style ground grid","move.amr.viewportControls.camera.projection":"Projection","move.amr.viewportControls.camera.projectionDescription":"Switch between 3D orbit view and 2D-like top view","move.amr.viewportControls.camera.topView":"Top View","move.amr.viewportControls.camera.topViewDescription":"View the map from above with rotation locked.","move.amr.viewportControls.camera.perspective":"Perspective","move.amr.viewportControls.camera.perspectiveDescription":"Use the 3D orbit camera.","move.amr.viewportControls.rendering.lidarPointSize":"LiDAR Point Size","move.amr.viewportControls.rendering.lidarPointSizeDescription":"Adjust real-time point cloud size","move.amr.viewportControls.section.camera":"Camera","move.amr.viewportControls.section.visibility":"Visibility","move.amr.viewportControls.section.rendering":"Rendering","move.amr.panel.viewportControl":"Viewport Controls","program.modal.button.stopProg":"Stop Program","move.ghostRobot.section.torsoMode":"Torso Mode","move.ghostRobot.torsoMode.free":"Free","move.ghostRobot.torsoMode.constrained":"Constrainded","maintenance.menu.resources":"CPU/Mem Resources","maintenance.menu.logRetention":"Log Retention","maintenance.logRetention.desc":"Set how long logs are kept. Logs older than this are deleted automatically. Changes apply immediately.","maintenance.logRetention.retentionDays":"Log Retention Days","maintenance.logRetention.retentionRange":"1 to 30 days (default 15 days)","maintenance.logRetention.days":"{{days}} days","maintenance.logRetention.confirm.title":"Shorten Log Retention","maintenance.logRetention.confirm.content":"Reducing retention from {{from}} to {{to}} days will permanently delete all logs older than {{to}} days. Continue?","maintenance.logRetention.toast.savedTitle":"Saved","maintenance.logRetention.toast.savedContent":'maintenance.log.toast.savedContent": "Log retention is now {{days}} days.',"maintenance.resources.desc":"Sets CPU and memory limits for the muscat container. Changes apply immediately without a restart.","maintenance.resources.cpu":"CPU Limit","maintenance.resources.memory":"Memory Limit","maintenance.resources.unlimited":"Unlimited","maintenance.resources.usage":"Current usage","maintenance.resources.host":"Host","maintenance.resources.cores":"cores","maintenance.modal.content.confirmResources":"Values that are too low can slow the system down or kill it with out-of-memory.\\nDo you want to apply the change?","move.chart.title":"Chart","move.chart.emptyDesc":"No data to display","program.modal.title.setRepeatCount":"Set Number of repetitions","program.modal.desc.setRepeatCount":"Set repetition count for newly added repeats.","program.options.avoidSingularity":"Avoid Singularity","program.field.checkMode":"Check Mode","progarm.field.dataOption":"Data Option","program.options.finishCheck":"Finish Check","program.options.startCheck":"Start Check","program.options.reference":"Reference","program.field.returnType":"Return Type","program.field.arguments":"Arguments","program.field.returnVariable":"Return Variable","program.msg.selectFunction":"Select a function from the list.","program.placeholder.searchFunction":"Search by function name","program.field.functions":"Functions","program.field.argCount":"{{count}} args","program.field.argN":"Arg {{n}}","program.placeholder.valueOrVariable":"Value or variable name","program.desc.noDescription":"No description registered.","program.desc.returnVariableEmpty":"Leave empty to discard the return value.","program.placeholder.returnVariable":"e.g. result","program.field.preview":"Preview","program.desc.functionCallArgs":'Wrap string values in double quotes (e.g. "text"). To pass a variable, use get("name").',"program.msg.noFunctions":"No functions found.","program.msg.noFunctionsDesc":"Try a different search term.","program.msg.selectFunctionDesc":"Function details, arguments and return variable appear here.","move.amr.viewportControls.section.manualCamera":"Manual Camera","move.amr.viewportControls.camera.move":"Manual Move","move.amr.viewportControls.camera.moveDescription":"Move the camera up, down, left, right, or reset it to center.","move.amr.rightPanel.history.noHistory":"No history","move.amr.rightPanel.history.latest":"Latest","move.amr.rightPanel.history.time":"Time","move.amr.rightPanel.history.command":"Command","move.amr.rightPanel.history.result":"Result","move.amr.rightPanel.topology.overview.title":"Overview","move.amr.rightPanel.topology.overview.description":"Manage topology-level information and file actions.","move.amr.rightPanel.topology.overview.summaryTitle":"Topology Summary","move.amr.rightPanel.topology.overview.createdAt":"Created At","move.amr.rightPanel.topology.overview.nodes":"Nodes","move.amr.rightPanel.topology.overview.links":"Links","move.amr.rightPanel.topology.overview.zones":"Zones","move.amr.rightPanel.topology.overview.fileTitle":"Topology File","move.amr.rightPanel.topology.overview.fileDescription":"Download the current topology data as topology.json.","move.amr.rightPanel.topology.overview.download":"Download topology","move.amr.rightPanel.topology.tab.overview":"Overview","move.amr.rightPanel.topology.tab.node":"Node","move.amr.rightPanel.topology.zone.updateZone":"Update Zone","move.amr.rightPanel.topology.zone.createZone":"Create Zone","move.amr.rightPanel.topology.zone.discardEditContent":"Discard these edits and restore the original zone?","move.amr.rightPanel.topology.zone.discardDraftContent":"Discard this zone draft and unsaved topology changes?","move.amr.rightPanel.topology.zone.createNewZone":"Create New Zone","move.amr.rightPanel.topology.zone.startDrawing":"Start Drawing","move.amr.rightPanel.topology.zone.selectedCount":"{{count}} zones selected","move.amr.rightPanel.topology.zone.editingZone":"Editing zone","move.amr.rightPanel.topology.zone.oneSelected":"1 zone selected","move.amr.rightPanel.topology.zone.selectedZones":"Selected Zones","move.amr.rightPanel.topology.zone.pointCount":"{{type}} / {{count}} pts","move.amr.rightPanel.topology.zone.details":"Details","move.amr.rightPanel.topology.zone.name":"Zone Name","move.amr.rightPanel.topology.zone.namePlaceholder":"Enter zone name","move.amr.rightPanel.topology.zone.type":"Zone Type","move.amr.rightPanel.topology.zone.editZone":"Edit Zone","move.amr.rightPanel.topology.zone.deleteZone":"Delete Zone","move.amr.rightPanel.topology.zone.deleteContent":"Delete this selected zone?","move.amr.rightPanel.topology.zone.keep":"Keep","move.amr.rightPanel.topology.zone.reopenZone":"Reopen Zone","move.amr.rightPanel.topology.zone.reopen":"Reopen","move.amr.rightPanel.topology.zone.undoLastPoint":"Undo Last Point","move.amr.rightPanel.topology.zone.clearPoints":"Clear Points","move.amr.rightPanel.topology.zone.closeZone":"Close Zone","move.amr.rightPanel.bottomBar.obstacleMap":"Obstacle Map","common.unit.meters":"m","move.amr.obstacleMap.title":"Obstacle Map","move.amr.obstacleMap.description":"Real-time 2D canvas preview","move.amr.obstacleMap.waitingForData":"Waiting for obstacle map data","move.amr.obstacleMap.statusLabel":"Status","move.amr.obstacleMap.gridLabel":"Grid","move.amr.obstacleMap.gridSizePerPixel":"{{value}} m/px","move.amr.obstacleMap.layerCount":"{{count}} Layers","move.amr.obstacleMap.status.waitingForStream":"Waiting for stream","move.amr.obstacleMap.status.live":"Live","move.amr.obstacleMap.status.noActiveLayers":"No active layers","move.amr.obstacleMap.status.idle":"Idle","move.amr.panel.viewportVisibility":"Viewport Visibility","move.amr.panel.fullscreen.enter":"Full Screen","move.amr.panel.fullscreen.exit":"Exit Full Screen","move.amr.leftToolBar.select":"Select","move.amr.leftToolBar.cursor":"Cursor","move.amr.leftToolBar.move":"Move","move.amr.leftToolBar.rotate":"Rotate","move.amr.leftToolBar.scale":"Scale","move.amr.viewportControls.visibility.mapBoundary":"Map Boundary","move.amr.viewportControls.visibility.mapBoundaryDescription":"Highlight the loaded map boundary","program.options.goalId.string":"String","program.options.goalId.expression":"Expression","program.validation.goalId.quotedLiteralNotAllowed":"String literals cannot be entered in expressions.","move.amr.rightPanel.topology.edit.nodeType":"Node Type","move.amr.rightPanel.topology.edit.nodeTypeSingleSelect":"Select a single node to change its type.","move.amr.rightPanel.topology.edit.nodeTypeUnavailable":"Type changes will be available in a future update.","move.amr.rightPanel.topology.edit.nodeTypeDescription":"Changing the type keeps the node ID and connected links.","move.field.label.sensitivity":"Sensitivity","move.button.stop":"Stop","move.button.start":"Start","move.options.interJoint":"Internal Joint","move.options.externalFt":"External F/T","maintenance.title.lastJoint":"Last Joint Angle DB","maintenance.button.erase":"Erase","maintenance.title.editRobotInfo":"Edit Robot Information","maintenance.desc.editRobotInfo":"Change the robot category and model, and optionally set a robot name as an alias.","move.gripper.notMountDesc":"Gripper is not Mounted.","move.amr.viewportControls.section.clipping":"Point Cloud Clipping","move.amr.viewportControls.clipping.height":"Height Clipping","move.amr.viewportControls.clipping.heightDescription":"Only display map points within the selected height range","move.amr.viewportControls.clipping.minHeight":"Minimum Height","move.amr.viewportControls.clipping.maxHeight":"Maximum Height","move.amr.viewportControls.clipping.reset":"Reset Clipping","move.button.off":"Off","move.button.time":"Time"},E4n={"menu.title.dashboard":"대시보드","menu.title.move":"동작","menu.title.program":"프로그램","menu.title.plugin":"플러그인","menu.title.log":"로그","menu.title.settings":"설정","menu.title.maintenance":"유지보수","menu.title.help":"도움말","menu.title.robotSelect":"로봇 선택","header.title.emcStop":"긴급 정지","header.title.fullSimulator":"시뮬레이터 확장","header.title.externalNetwork":"외부망","header.title.closedNetwork":"폐쇄망","header.toast.title.powerCtrlFail":"로봇 전원 제어 실패","header.toast.desc.powerCtrlFail":"네트워크를 확인 해주세요.","footer.title.selectProgram":"프로그램 선택","footer.title.speed":"속도","controlBar.lock.lock":"컨트롤바 잠금","controlBar.lock.locked":"잠김","controlBar.lock.holdToUnlock":"잠금 해제: 길게 누르기","controlBar.toast.locked":"잠겨 있습니다 · 자물쇠를 길게 눌러 해제","controlBar.toast.lockOn":"잠갔습니다 · 정지는 계속 사용할 수 있어요","controlBar.toast.unlocked":"잠금을 해제했습니다","controlBar.popover.title":"로봇별 현재 스텝","controlBar.robotCount":"{{count}}대","controlBar.step.waiting":"대기 중","controlBar.step.done":"완료","controlBar.repeat.infinite":"무한 반복","controlBar.repeat.down":"반복 줄이기","controlBar.repeat.up":"반복 늘리기","controlBar.speed.down":"속도 낮추기","controlBar.speed.up":"속도 높이기","modal.conn.button.all":"전체","modal.conn.button.servo":"서보","modal.conn.button.power":"전원","modal.conn.button.motor":"모터","dashboard.title.systemOverview":"시스템 개요","dashboard.title.totalComponent":"전체 컴포넌트","dashboard.title.activeComponent":"활성 컴포넌트","dashboard.title.robotComponent":"로봇 컴포넌트","dashboard.title.robotComponents":"로봇 컴포넌트","dashboard.title.networkType":"네트워크 타입","dashboard.title.cpuUseRate":"CPU 사용률","dashboard.title.error":"24시간 내 오류","dashboard.title.robotInfo":"로봇 정보","dashboard.title.recentLogs":"최근 로그","dashboard.title.amrNavStatus":"AMR 네비게이션 상태","dashboard.title.amrMoveHistory":"AMR 동작 기록","dashboard.content.localization":"위치 초기화","dashboard.content.mapEditor":"맵 에디터","dashboard.content.currentNode":"현재 노드","dashboard.content.targetNode":"목표 노드","dashboard.content.mapName":"맵 이름","dashboard.content.linearSpeed":"선속도","dashboard.content.rotationSpeed":"회전속도","dashboard.content.localizationStatus":"위치 초기화 상태","dashboard.content.obstacle":"지장물","dashboard.content.pathState":"경로 상태","dashboard.content.alias":"별칭","dashboard.content.model":"모델","dashboard.content.components":"컴포넌트","dashboard.content.status":"상태","dashboard.content.repeat":"반복","dashboard.content.step":"스탭","dashboard.content.type":"타입","dashboard.content.motorAvgTmp":"모터 평균 온도","dashboard.content.mode":"모드","dashboard.content.version":"버전","dashboard.content.infinite":"무한 반복","dashboard.button.editInfo":"로봇 정보 수정","dashboard.button.viewAllLogs":"모든 로그 보기","dashboard.button.stop":"정지","dashboard.button.play":"재생","dashboard.button.moveControl":"동작 제어","dashboard.button.detail":"상세보기","dashboard.button.viewAllHistory":"모든 기록 보기","dashboard.modal.title.inputRobotInfo":"로봇 정보 입력","dashboard.modal.desc.inputRobotInfo":"로봇 정보를 입력해 주세요.","dashboard.modal.label.category":"카테고리","dashboard.modal.label.robotModel":"로봇 모델","dashboard.modal.label.serialNumber":"시리얼 번호","dashboard.modal.label.robotName":"로봇 이름","dashboard.modal.label.optional":"선택사항","dashboard.modal.button.submit":"제출","dashboard.modal.button.qrCode":"QR 코드","dashboard.modal.msg.serialNumber":"시리얼 번호가 필요합니다.","dashboard.modal.title.qrScanGuide":"QR 코드 스캔 가이드","dashboard.modal.desc.qrScanGuide":"바코드 USB를 로봇에 연결 후, 로봇 명판에 QR 코드를 찍어주세요","dashboard.title.power":"전원","dashboard.title.servo":"서보","dashboard.title.controlManager":"컨트롤 매니저","dashboard.title.toolFlangePower":"툴 플랜지 전원","dashboard.title.brake":"브레이크","dashboard.button.selectAll":"전체 선택","dashboard.button.deselectAll":"선택 해제","dashboard.button.allOn":"전체 ON","dashboard.button.allOff":"전체 OFF","dashboard.content.axisCount":"{{count}}축","move.title.distance":"거리","move.title.rotation":"회전","move.title.selectCoordinate":"좌표계 선택","move.content.outCollDetect":"외부 충돌 감지","move.content.noOutcoll":"외부 충돌 없음","move.content.selfCollDetect":"자가 충돌 감지","move.content.noSelfcoll":"자가 충돌 없음","move.content.emcStopOn":"긴급 정지 On","move.content.emcStopOff":"긴급 정지 Off","move.button.change":"변경","log.title.log":"로그","log.title.filter":"필터","log.title.total":"총 로그 수","log.title.rows":"줄 씩 보기","log.title.createdAt":"생성된 시간","log.title.swName":"SW 이름","log.title.level":"로그 등급","log.title.contents":"내용","log.title.dateRange":"기간","log.title.excludeText":"제외 텍스트","log.button.exportCSV":"CSV로 내보내기","log.button.exportTXT":"TXT로 내보내기","log.button.showAll":"전체 보기","log.button.showLess":"접기","log.button.resetFilter":"필터 초기화","log.button.selectDate":"날짜 선택","log.button.confirm":"확인","log.label.from":"시작","log.label.to":"종료","log.placeholder.search":"검색","log.toast.title.duplicateText":"중복된 필터 텍스트","log.toast.content.duplicateText":"같은 텍스트를 포함 및 제외 필터에 동시에 사용할 수 없습니다.","settings.menu.title.general":"일반","settings.menu.title.system":"시스템","settings.menu.title.tool":"툴","settings.menu.title.Frame":"좌표계","settings.menu.title.io":"입/출력","settings.menu.title.devices":"디바이스","settings.general.menu.robotMounting":"로봇 설치","settings.general.menu.collDetection":"충돌 감지","settings.general.menu.handGuiding":"직접 교시","settings.general.menu.userScript":"사용자 스크립트","settings.general.menu.afterAction":"After Action","settings.system.menu.configuration":"설정","settings.tool.menu.toolList":"툴 목록","settings.tool.menu.flange":"플랜지","settings.tool.flange.desc":"로봇 엔드이펙터 장착부(Flange)의 부팅 옵션과 직접 교시 버튼, 진동 센서 사용 여부를 설정합니다.","settings.tool.menu.gripper":"그리퍼","settings.tool.gripper.desc":"기본 그리퍼 장착 및 퍼블리시 데이터 종류를 설정합니다.","settings.frame.menu.userCoordinate":"유저 좌표계","settings.frame.menu.area":"영역","settings.io.menu.dinFunctions":"Box 디지털 입력 기능","settings.io.menu.extDoutFunctions":"Ext 디지털 출력 기능","settings.io.menu.extDinFunctions":"Ext 디지털 입력 기능","settings.io.menu.extDinFilter":"Ext 디지털 입력 필터","settings.io.menu.doutFunctions":"Box디지털 출력 기능","settings.io.menu.toolDoutFunctions":"Tool 디지털 출력 기능","settings.io.menu.toolDinFunctions":"Tool 디지털 입력 기능","settings.io.menu.toolDinFilter":"Tool 디지털 입력 필터","settings.io.menu.dinFilter":"Box 디지털 입력 필터","settings.button.save":"저장","settings.button.edit":"수정","settings.button.cancel":"취소","settings.button.settingsReset":"초기화","settings.button.set":"적용","settings.rby1.parameters.title":"Parameters","settings.rby1.parameters.desc":"로봇 파라미터를 조회하고 변경합니다. 값은 현재 값과 같은 형식으로 입력하세요(문자열은 큰따옴표 포함).","settings.rby1.parameters.refresh":"새로고침","settings.rby1.parameters.defaultReset":"DEFAULT RESET","settings.rby1.parameters.factoryReset":"FACTORY RESET","settings.rby1.parameters.defaultResetAllContent":"모든 파라미터를 기본값으로 되돌립니다. 되돌릴 수 없습니다. 진행하시겠습니까?","settings.rby1.parameters.factoryResetAllContent":"모든 파라미터를 공장 초기값으로 되돌립니다. 되돌릴 수 없습니다. 진행하시겠습니까?","settings.rby1.parameters.resetOneContent":"{{name}} 파라미터를 기본값으로 되돌립니다. 진행하시겠습니까?","settings.rby1.parameters.searchPlaceholder":"파라미터 이름 검색","settings.rby1.parameters.name":"Name","settings.rby1.parameters.type":"Type","settings.rby1.parameters.currentValue":"Current Value","settings.rby1.parameters.newValue":"New Value","settings.rby1.parameters.empty":"파라미터가 없습니다.","settings.rby1.parameters.setSuccess":"{{name}} 값을 변경했습니다.","settings.general.title.gravityDirection":"중력 방향","settings.general.desc.gravityDirection":"로봇의 설치 각도를 설정합니다. 전역 좌표계에 대한 중력 가속도의 방향 벡터를 입력합니다.","settings.general.title.outCollision":"외부 충돌","settings.general.desc.outCollision":"충돌 민감도를 설정합니다. 민감도가 낮을수록 로봇은 약한 충격에도 더 많이 멈춥니다.","settings.general.title.selfCollision":"자가 충돌","settings.general.desc.selfCollision":"자가 충돌 모드와 감지 거리를 설정합니다.","settings.general.outColl.title.threshold":"둔감도","settings.general.outColl.title.stopMode":"정지 모드","settings.general.outColl.title.onOff":"켜기/끄기","settings.general.selfColl.title.detectDist":"감지 거리","settings.general.selfColl.title.robotArm":"로봇 팔","settings.general.selfColl.title.external":"외부","settings.general.title.sensitivity":"직접교시 감도","settings.general.desc.sensitivity":"각 조인트의 민감도는 0~2 범위에서 조정할 수 있습니다. 기본값은 1이며, 값이 높을수록 더 적은 힘으로 조작할 수 있습니다.","settings.general.title.bootupJointImpedance":"부팅 시 관절 임피던스","settings.general.desc.bootupJointImpedance":"제어박스 부팅 시 적용될 관절 임피던스 값을 설정합니다.","settings.system.title.language":"언어","settings.tool.title.name":"이름","settings.tool.title.mass":"질량","settings.tool.title.centerOfGravity":"질량 중심","settings.tool.title.position":"위치","settings.tool.title.rotation":"회전","settings.tool.title.size":"크기","settings.io.title.function":"변경할 기능","settings.io.digitalInput":"디지털 입력 {{msg}}","settings.io.digitalOutput":"디지털 출력 {{msg}}","settings.io.toolInput":"툴 입력 {{msg}}","settings.io.toolOutput":"툴 출력 {{msg}}","program.command":"{{mode}} 명령어","program.common":"공통","program.manipulate":"매니퓰레이트","program.amr":"AMR","program.rby1":"RBY1","program.modal.title.load":"프로그램 불러오기","program.modal.desc.load":"원하는 프로그램을 불러올 수 있습니다. 단, 저장하지 않은 변경사항은 사라집니다.","program.modal.button.export":"내보내기","program.modal.button.delete":"삭제","program.modal.button.order":"정렬","program.modal.button.lastLoadedAt":"마지막 로드","program.modal.button.createdAt":"생성일","program.modal.button.updatedAt":"업데이트","program.modal.button.ascending":"오름차순","program.modal.button.cancel":"취소","program.modal.button.load":"불러오기","program.modal.placeholder.search":"프로그램 이름 검색","program.modal.desc.repeatCount":"반복 횟수","program.modal.title.edit":"프로그램 수정","program.modal.desc.edit":"프로그램명을 수정하거나, 반복 실행 횟수를 변경할 수 있습니다.","program.modal.label.programName":"프로그램 이름","program.modal.label.directInput":"직접 입력","program.button.edit.disable":"비활성화","program.button.edit.marking":"마킹","program.button.move":"동작","program.button.movej":"동작 J","program.button.movel":"동작 L","program.button.movejb":"동작 JB","program.button.movelb":"동작 LB","program.button.movexb":"동작 XB","program.button.point":"포인트","program.button.pinPoint":"핀 포인트","program.button.pinJoint":"핀 조인트","program.button.home":"홈","program.button.wait":"대기","program.button.folder":"폴더","program.button.memo":"메모","program.button.alarmHalt":"알람/종료","program.button.debug":"디버그","program.button.userInput":"사용자 입력","program.button.changeProgram":"프로그램 변경","program.button.userSelect":"사용자 선택","program.button.extAxis":"부가축","program.button.condition":"조건문 (If)","program.button.elif":"조건문 (Else if)","program.button.else":"조건문 (Else)","program.button.switch":"스위치문","program.button.postProgram":"종료 후 실행","program.button.preProgram":"시작 전 실행","program.button.set":"설정","program.button.tcpSet":"TCP 설정","program.button.manual":"수동조작","program.button.movingPoint":"이동점+","program.button.repeat":"반복","program.button.break":"반복중단","program.button.thread":"쓰레드","program.button.circle":"원 동작","program.button.replay":"리플레이","program.button.arcSensing":"아크센싱","program.button.motionMacro":"모션 매크로","program.button.sync":"동기화","program.button.dout":"디지털 출력","program.button.aout":"아날로그 출력","program.button.toolout":"툴 출력","program.button.gripper":"그리퍼","program.button.arcWeld":"아크 용접","program.button.welder":"용접기","program.button.script":"스크립트","program.button.variables":"변수선언","program.button.monitoring":"모니터","progarm.button.rs485":"직렬통신","program.button.functionCall":"함수 호출","program.button.socket":"소켓통신","program.button.modbus":"모드버스","program.button.interface":"인터페이스","program.button.subTask":"서브루틴","program.button.pattern":"패턴","program.button.conveyor":"컨베이어","program.button.forceCtrl":"힘 제어","program.button.weaving":"위빙","program.button.touchSensing":"터치센싱","program.button.timer":"타이머","program.button.gcode":"G코드","program.toast.success.copy":"복사 되었습니다.","program.toast.success.cut":"잘라내기 되었습니다.","program.toast.fail.paste":"붙여넣기 불가","program.toast.fail.addTreeItem":"추가 불가","program.toast.fail.disable":"비활성화 해제 불가","program.button.end":"종료","program.button.begin":"시작","program.button.jump":"점프","setting.gravity.static":"정적","setting.gravity.dynamic":"동적","program.title.common":"공통","program.title.command":"명령어","program.title.alarm":"알람","program.field.option":"옵션","program.box.options":"옵션","program.box.option":"옵션","program.field.save":"저장","program.field.executiomn":"실행","program.field.condition":"조건","program.options.execute.always":"항상 실행","program.options.execute.use":"UI 사용 중에만 실행","program.options.option.alarm":"알람","program.options.option.halt":"종료","program.options.option.stop":"서브 프로그램 종료","program.options.option.folder":"폴더 종료","program.options.save.simple":"기본 알람","program.options.save.log":"사용자 로그에 제목 저장","program.options.pause.current":"현재 작업","program.field.title":"제목","program.field.content":"내용","program.box.alarm":"알람","program.box.settings":"설정","program.box.setting":"설정","program.box.content":"내용","program.desc.alarm":"프로그램 실행을 일시 중지한 다음, 알람창을 표시합니다.","program.desc.halt":"프로그램/쓰레드 실행을 중지합니다.","program.desc.sub":"서브 프로그램 실행을 중지합니다.","program.desc.folder":"명령을 실행 중인 폴더에서 빠져 나갑니다.","program.box.mode":"모드","program.box.condition":"상태","program.options.mode.condition":"{{mode}} 조건","program.options.mode.time":"시간","program.options.mode.holding":"기다림","program.options.mode.exit":"빠져나감","program.field.time_to_wait":"기다릴 시간 (초)","program.field.mode":"모드","program.options.mode.general":"일반","program.options.mode.digital":"디지털 입력","program.field.wait_timeout":"타임 아웃 (초)","program.box.condition_settings":"상태 설정","program.box.add_conditions":"상태 추가","program.title.if":"조건문 (If)","program.title.elif":"조건문 (Else If)","program.title.else":"조건문 (Else)","program.button.add_variable":"변수 추가","program.button.add_case":"케이스 추가","program.button.add_elif":"조건문 (Else If) 추가","program.button.add_else":"조건문 (Else) 추가","program.button.add":"추가","program.title.debug":"디버그","program.field.execution":"실행","program.field.pause":"정지","program.options.debug.dialog":"디버그 팝업","program.options.debug.log":"사용자 로그","program.options.execution.always":"항상 실행","program.options.execution.ui":"UI가 사용 중일 때만 실행","program.options.pause.all":"모든 작업","program.options.pause.crrent":"현재 작업","program.desc.debug.dialog":"프로그램 실행을 일시 중지하고 원하는 변수 값을 팝업 창에 표시합니다.\\n확인하려는 변수 이름을 추가하기만 하면 됩니다.","program.desc.debug.log":"사용자가 로그 시스템에 기록하고자 하는 임의의 문자열이나 문자열 변수를 입력할 수 있습니다.\\n사용자 로그를 너무 자주 저장하면 시스템에 영향을 줄 수 있습니다.","program.box.set_value_name":"변수 이름 설정","program.field.variables":"변수","program.field.name":"이름","program.desc.debug.variables":"디버깅하려는 변수가 있다면, 해당 변수의 이름을 입력해 주세요.","program.button.variable":"변수","program.box.log":"로그","program.title.case":"케이스","program.button.case":"케이스","program.button.case_default":"케이스 (Default)","program.field.switch":"스위치문","program.field.value":"값","program.box.configuration":"구성","program.field.case":"케이스","program.field.memo":"메모","program.options.break.break":"반복 중단","program.options.break.continue":"계속","program.desc.break.continue":"반복 (Repeat)에서 벗어나는 기능","program.desc.break.break":"루프의 다음 단계로 넘어갑니다.","program.options.repeat.count":"반복 횟수","program.options.repeat.while":"While 방식","program.options.repeat.do_while":"Do While 방식","program.options.repeat.direct":"직접 입력","program.options.repeat.infinite":"무한 반복","program.desc.repeat":"반복 횟수에 음수를 입력하면 무한 반복 됩니다.","program.field.repeat.count":"반복 횟수","program.field.repeat.while":"While 조건","program.field.repeat.do_while":"Do While 조건","program.box.jump":"점프 대상","program.box.folder":"폴더","program.box.additional":"추가","program.box.color":"색상","program.field.color":"색상","program.field.finish_at_condition":"Finish At 조건","program.tooltip.point.finish_at_condition":"지정한 조건이 충족되면 모션 명령이 완료되기 전에 동작을 종료합니다.","program.field.stopping_time":"정지 시간 (초)","program.tooltip.point.stopping_time":"Finish At 조건이 충족된 후 동작을 종료하기까지의 시간을 설정합니다. 0초를 입력하면 즉시 정지합니다.","program.box.memo":"메모","program.field.select_mode":"모드 선택","program.field.flag":"시점","program.field.timeout":"타임 아웃","program.box.set_flag":"시점 설정","program.options.select_mode.select":"선택","program.options.select_mode.direct":"직접 입력","program.desc.preProgram":"프로그램이 시작되기 전 실행할 함수를 입력하세요.","program.desc.postProgram":"프로그램이 종료(또는 중단)될 때 실행할 함수를 입력하세요.","program.desc.postProgram.manipulate":"로봇 동작과 관련된 함수 (동작, 컨베이어, 힘 제어 등)는 사용할 수 없습니다.","program.box.set_variables":"변수 설정","program.desc.variables":"변수를 선언하고 값을 지정합니다.\\n변수 값은 프로그램 실행 중에 언제든 변경할 수 있어, 조건문을 활용할 때 훨씬 유연한 제어가 가능해집니다.\\n변수는 다음 5가지 타입 중 하나로 지정할 수 있습니다.\\nString(문자열), Numeric(숫자), Boolean(불리언), List(리스트), Dictionary(딕셔너리)","program.field.declare_type":"변수 선언 속성","program.field.type":"유형","program.field.name_or_value":"대상 변수 이름 또는 값","program.field.init_value":"초기값","program.desc.variables.string":'문자열 값을 저장하는 데이터 타입입니다. 값을 저장할 때 문자열임을 나타내기 위해 ""(큰따옴표)로 감싸며, 큰따옴표가 포함된 상태로 저장되어도 무방합니다.',"program.desc.variables.numeric":"float(실수형) 타입과 마찬가지로, 숫자를 표현하는 데이터 타입입니다. (int는 정수를 나타냅니다.)","program.desc.variables.boolean":"true(참)나 false(거짓) 같은 논리 값을 나타내는 데이터 타입입니다.","program.desc.variables.list":"파이썬의 List 타입에 해당합니다. 협동로봇에서는 주로 각 조인트의 각도나 위치 값(Joint values)을 저장할 때 사용합니다.","program.desc.variables.dictionary":"파이썬의 Dictionary 타입에 해당합니다. 협동로봇에서는 주로 Tool의 정보 등을 저장할 때 사용합니다.","program.desc.variables.variable":'지역 변수는 get("name") 또는 get_var("name"), 다른 프로그램의 변수는 get("Robot Model", "name") 형태로 참조합니다. "abc" + get("a") 같은 연산식도 허용됩니다.',"program.field.desc.boolean":"Boolean 값을 선택하세요.","program.box.contents":"내용","program.options.script.general":"일반","program.options.script.advanced":"고급","program.button.add_script":"스크립트 추가","program.desc.script":"제어 박스로 스크립트를 전송하려면, 내용을 입력해 주세요.","program.options.interface.modbus":"Modbus 클라이언트 (인터럽트)","program.options.interface.mc":"미쯔비시 (MC 프로토콜)","program.options.interface.xgt":"LS PLC (XGT Protocol)","program.options.interface.socket":"소켓 인터페이스","program.options.interface.mechmind":"MechMind 3D","program.box.modbus":"Modbus 클라이언트","program.box.mc":"MC 프로토콜","program.box.xgt":"XGT 프로토콜","program.box.socket":"소켓 인터페이스","program.box.mechmind":"MechMind 3D 인터페이스","program.field.target_ip":"목표 서버 IP 주소","program.field.target_port":"목표 서버 포트 번호","program.field.function_list":"함수 목록 (코드)","program.field.timeout_sec":"타임 아웃 (초)","program.box.write_configuration":"쓰기 설정","program.field.target_address":"목표 주소","program.field.target_payload":"목표 페이로드","program.desc.modbus.write.add_payload":"Payload값을 추가해주세요.\\n부호없는 2 bytes 크기의 숫자만 입력가능합니다.(2¹⁶-1= 65,535)\\n최대 40개의 Payload를 추가할 수 있습니다.","program.desc.mc.write.word.add_payload":"Payload값을 추가해주세요.\\n2 bytes 크기의 숫자만 입력가능합니다.(-2¹⁵ ~ 2¹⁵-1 = -32,768 ~ 32,767)\\n최대 40개의 Payload를 추가할 수 있습니다.","program.desc.mc.write.bit.add_payload":"Payload값을 추가해주세요.\\nbit값만 입력이 가능합니다. (False(0),True(1))\\n최대 40개의 Payload를 추가할 수 있습니다.","program.desc.socket.byte.add_payload":"Payload값을 추가해주세요.\\n 부호없는 1 byte 크기의 숫자만 입력가능합니다.(2⁸-1 = 0 ~ 255)\\n최대 40개의 Payload를 추가할 수 있습니다.","program.button.add_payload":"페이로드 추가","program.field.target_name":"목표 변수 이름","program.field.target_length":"목표 변수 길이","program.options.thread.general":"일반/비정지 쓰레드 추가","program.options.thread.event":"이벤트 쓰레드 호출","program.field.thread_select":"쓰레드 타입 선택","program.ph.thread":"쓰레드 타입을 선택하세요.","program.button.select":"선택","program.field.thread_index":"쓰레드 번호","program.ph.thread.thread_index":"이벤트 쓰레드 선택하세요.","program.ph.thread.no_data":"등록된 이벤트 쓰레드가 없습니다.","program.options.thread.type.general":"일반 쓰레드","program.options.thread.type.event":"일반 이벤트 쓰레드","program.field.allow_pause":"일시중지 허용 여부","program.option.thread.allow":"허용","program.option.thread.ignore":"무시","program.desc.thread.general":"이 쓰레드는 메인 프로그램과 병행하여 자동으로 실행됩니다.\\n반복 동작이 필요한 경우 ‘반복’ 기능을 사용하십시오.\\n로봇 이동과 관련된 기능(예: 동작, 원형 이동 등)은 사용할 수 없습니다.\\n'일시 중지‘ 또는 '알람’ 기능을 사용할 경우, 이 쓰레드도 일시 중지됩니다.","program.desc.thread.event":"자동으로 시작되지 않으며, 이벤트가 호출될 때 실행됩니다.\\n반복 동작이 필요한 경우 ‘반복’ 기능을 사용하십시오.\\n로봇 이동 관련 기능 (예: 동작, 원형 이동 등)은 사용할 수 없습니다.\\n'일시 중지' 또는 ‘알람’ 기능을 사용할 경우, 쓰레드도 일시 중지됩니다.","program.desc.thread.basic":"일반 쓰레드: ‘일시 중지’ 또는 ‘충돌 감지’ 상황에서는 쓰레드 작동이 일시 중지됩니다.\\n논스톱 쓰레드: ‘충돌 감지’ 상황에서는 쓰레드 작동이 일시 중지됩니다.\\n논스톱 쓰레드2: 두 경우 모두 쓰레드가 멈추지 않습니다.","program.button.cancel":"취소","program.button.add_point":"포인트 추가","program.field.robot_model":"로봇 모델","program.ph.memo":"메모를 입력해주세요.","program.options.move.intended":"목표","program.options.move.constant":"상수","program.options.move.velocity":"속도 블렌딩","program.options.move.position":"위치 블렌딩","program.field.variable_name":"변수 이름","program.tooltip.point.variable_name":"목표 위치 값을 저장합니다.","program.field.point_name":"포인트 이름","program.tooltip.point.point_name":"포인트 커맨드의 이름을 지정합니다.","program.tooltip.point.memo":"참고용 추가 정보를 입력합니다.","program.field.input_method":"입력 방식","program.tooltip.point.input_method":"절대 위치를 입력하거나 기준 포인트를 기준으로 한 상대 위치를 입력할 수 있습니다.","program.box.target_":"목표 {{mode}}","program.options.mode.direct":"직접 입력","program.options.mode.relative":"상대 동작","program.field.reference_point":"기준 포인트","program.tooltip.point.reference_point":"이전 단계에서 선언해둔 '포인트 (Point)' 변수나 전역 변수를 선택할 수 있습니다.","program.button.current_position":"현재값 가져오기","program.button.preview":"미리보기","program.ph.point.reference_point":"기준 포인트를 선택하세요.","program.options.coordinate.joint_space":"조인트 공간","program.options.coordinate.global_space":"전역 좌표계","program.options.coordinate.tool_space":"툴 좌표계","program.options.coordinate.user_space":"사용자 좌표계","program.options.coordinate.target_space":"목표 좌표계","program.field.reference_coordinate":"기준 좌표계","program.field.move_unit":"이동 단위","program.box.speed":"속도","program.field.setting_method":"설정 방법","program.field.velocity":"속도","program.field.acceleration":"가속도","program.options.setting_method.per_spd":"%기반","program.options.setting_method.abs_spd":"절대/물리값","program.options.tcp_tool.current":"기존 선택 유지","program.field.additional_properties":"추가 속성","program.field.additional":"추가 설정","program.field.after_script":"후처리 스크립트","program.tooltip.point.after_script":"포인트 동작이 완료된 후 실행할 명령을 입력합니다.","program.field.properties":"속성","program.empty.desc.property":"설정된 속성이 없습니다.","program.button.addProperty":"속성 추가","program.box.continuous":"연속 변화","program.box.discrete":"단계별 변화","program.option.dout":"디지털 출력","program.option.aout":"아날로그 출력","program.option.weldingCurrent":"용접 전류","program.option.weldingVoltage":"용접 전압","program.option.weldingFeedRate":"용접 이송 속도","program.option.weavingMagnitude":"위빙 진폭","program.option.weavingSpeed":"위빙 속도","program.label.doutput":"디지털 출력","program.label.aoutput":"아날로그 출력","program.box.type":"타입","program.box.rotation_center":"회전 중심","program.options.cirle.type.axis":"축","program.options.cirle.type.3point":"3점","program.box.rotation_angle":"회전 각도","program.box.via_point":"경유 포인트","program.box.radius":"반지름","program.field.radius_option":"반지름 옵션","program.options.radius.none":"사용 안함","program.options.radius.rate_per":"회전당 증가율","program.options.radius.size_per":"회전당 증가량","program.field.radius_param":"반지름 값","program.field.posture":"목표 자세","program.field.project":"프로젝트","program.field.movement_type":"동작 타입","program.options.project.main":"최상위 (메인) 프로젝트","program.options.project.sub":"현재 실행 중인 (하위) 프로젝트","program.options.zeroPosture":"원점 자세","program.options.posture.home":"프로젝트 홈 자세","program.options.posture.zero":"조인트 원점 자세","program.field.tool_list":"툴 목록","program.field.output_location":"출력 위치","program.box.output_mode":"출력 모드","program.options.d.output_mode.general":"일반","program.box.digital_out":"디지털 출력","program.options.d.output_mode.bit_combination":"비트 조합","program.options.d.output_mode.signal_toggle":"신호 토글","program.options.d.output_mode.whole_port_control":"전체 포트 제어","program.options.d.output_mode.unit_pulse_shot":"단위 펄스 샷","program.options.d.output_location.side":"제어 박스","program.options.d.output_location.ext":"확장 보드","program.options.a.output_location.side":"제어 박스","program.options.a.output_location.ext":"확장 보드","program.box._control_box":"{{mode}} 전류 신호","program.box.extension":"확장","program.box.target_signal_conf":"목표 신호 설정","program.field.bit_comb_range":"비트 조합 범위","program.field.start_port":"시작 포트","program.field.end_port":"종료 포트","program.field.target_val":"목표값","program.options.direction.normal":"정방향","program.options.direction.inverse":"역방향","program.options.power.off":"끄기","program.options.power.on":"켜기","program.field.pulse_mode":"펄스 모드","program.field.port_selection":"포트 선택","program.options.pulse_mode.general":"일반 펄스","program.options.pulse_mode.inversion":"반전 펄스","program.options.pulse_mode.non_block":"계속 진행","program.field.analog_out":"아날로그 출력","program.options.a.output_mode.general":"일반 아날로그","program.box.toolout":"툴 출력","program.box.signal_conf":"툴 전류 신호","program.field._dout":"{{mode}} 디지털 출력","program.field.current":"현재","program.field.target":"목표","program.field._voltage":"{{mode}} 전류","program.box.axis_options":"축 옵션","program.field.torch_direction_axis":"토치 방향 축","program.field.weaving_direction_axis":"위빙 방향 축","program.box.weaving_plane_selection":"위빙 평면 선택","program.box.user_defined_parameters":"사용자 방향","program.box.magnitude":"진폭","program.box.phase":"위상","program.box.phase2":"구간","program.box.time_schedule":"시간 일정","program.box.scale":"크기","program.field.scale_rate":"크기 비율","program.box.offset_options":"오프셋 옵션","program.field.offset_torch_direction":"토치 방향 오프셋","program.field.offset_weaving_direction":"위빙 방향 오프셋","program.box.angle_options":"각도 옵션","program.field.swing_angle":"스윙 각도","program.field.distortion_angle":"왜곡 각도","program.field.stop_adjusting_time":"정지 보정 시간","program.options.mode.speed":"속도","program.options.conveyor.conveyor":"컨베이어","program.options.conveyor.linear":"선형 컨베이어","program.options.conveyor.circular":"원형 컨베이어","program.box.speed_options":"속도 옵션","program.field.conveyor_speed":"컨베이어 속도","program.field.speed_adjusting_time":"속도 보정 시간","program.box.set_ref_points":"기준점 설정","program.field.ref_points":"기준점","program.field.present_points":"현재점","program.desc.conveyor":"기준점을 선택하세요.","program.button.add_ref_point":"기준점 추가","program.box.conveyor_type":"컨베이어 유형","program.box.motion_list":"모션 목록","program.box.move_type":"동작 유형","program.ph.motion_list":"파일을 선택해주세요.","program.ph.no_data":"데이터가 없습니다.","program.ph.select_data":"데이터를 선택하세요.","program.section.title.modeSelection":"모드 선택","program.options.welding.on":"아크 켜기","program.options.welding.off":"아크 끄기","program.options.changeTarget":"목표 설정값 변경","program.options.changeGain":"게인 설정값 변경","program.section.title.sensingSetting":"센싱 설정","program.field.label.sensingDataPoint":"센싱 입력 채널","program.field.label.sensingSaturationMode":"센싱 포화 모드","program.field.label.sensingSaturationLow":"센싱 포화 하한값","program.field.label.sensingSaturationUpper":"센싱 포화 상한값","program.field.label.sensingLowPassFilter":"센싱 데이터 LPF 필터","program.field.label.sensingWeightingMode":"센싱 가중 모드","program.options.noSaturation":"포화 미적용","program.options.saturationLU":"상·하한값 포화","program.options.saturationHold":"포화 시 값 유지","program.options.curveWeight":"곡선 가중","program.options.evenWeight":"균등 가중","program.options.linearWeight":"선형 가중","program.options.reducedLinearWeight":"감소 선형 가중","program.section.title.targetSetting":"목표 설정","program.field.label.depthDirTargetMethod":"깊이 방향 목표값 설정 방식","program.field.label.depthDirDesiredValue":"깊이 방향 목표값","program.field.label.weaveDirTargetMethod":"위빙 방향 목표값 설정 방식","program.field.label.weaveDirDesiredValue":"위빙 방향 목표값","program.options.desiredValue":"목표값 사용","program.options.averageT1T2":"T1~T2 평균값 사용","program.section.title.gainSetting":"게인 설정","program.field.label.depthDirGain":"깊이 방향 {{msg}} 게인","program.field.label.depthDirAntiWind":"깊이 방향 안티 윈드업","program.field.label.depthDirMaxDev":"깊이 방향 최대 편차","program.field.label.weaveDirGain":"위빙 방향 {{msg}} 게인","program.field.label.weaveDirAntiWind":"위빙 방향 안티 윈드업","program.field.label.weaveDirMaxDev":"위빙 방향 최대 편차","program.options.changeForce":"힘 설정값 변경","program.section.title.limitation":"제한 설정","program.field.label.posMaxDeviation":"위치 최대 편차","program.field.label.rotMaxDeviation":"회전 최대 편차","program.section.title.sensorSetting":"센서 설정","program.field.label.sensorType":"센서 타입","program.field.label.sensorFilter":"센서 필터","program.field.label.sensorSignalOption":"센서 신호 옵션","program.section.title.others":"기타","program.field.label.contactForce":"접촉 감지 힘","program.options.autoNulling":"자동 영점 조정","program.options.rawValue":"원시값","program.box.init_standby":"초기 대기","program.box.crater_setting":"크레이터 조건 설정","program.box.crater_time":"크레이터 유지 시간","program.box.wait_follow":"후속 작업 대기","program.box.arc_detection":"아크 점화 및 신호 감지","program.box.welding_setting":"용접 조건 설정","program.box.robot_cond_setting":"로봇 조건 설정","program.box.time_before_arc":"아크 발생 전 시간","program.field.condition_mode":"조건 설정 방법","program.field.condition_options":"조건 옵션","program.field.job_number":"작업 번호","program.field.welding_current":"용접 전류","program.field.welding_voltage":"용접 전압","program.field.feed_rate":"이송 속도","program.field.arc_control":"아크 제어","program.field.arc_length":"아크 길이","program.field.parameter":"파라미터 {{idx}}","program.options.condition.weld_keep":"이전 조건 유지","program.options.condition.weld_change":"용접 조건 변경","program.box.time":"시간","program.box.time_holding":"유지 시간","program.box.time_pre_gas":"사전 가스 공급 시간","program.box.arc_signal_detection_count":"아크 신호 감지 횟수","program.box.arc_signal_detection_time":"아크 신호 감지 시간","program.box.arc_signal_retry_interval_time":"아크 신호 재시도 간격 시간","program.box.ot_option":"회전 옵션","program.box.gap_number":"간격 개수","program.box.set_margin":"마진 설정","program.field.margin_height":"마진 높이","program.field.margin_width":"마진 폭","program.field.margin_over":"마진 연장 거리","program.field.margin_parameter":"마진 파라미터","program.box.corner_points":"코너 포인트","program.options.macro.flat_surface":"평면","program.options.macro.round_r":"원형 (R)","program.options.macro.round_h":"원형 (H)","program.options.macro.triangle":"삼각형","program.options.macro.3d_round":"3D 원형","program.options.weaving_type.none":"없음","program.section.title.taskReference":"작업 기준","program.field.title.planeSelection":"평면 선택","program.options.plane.present":"현재 TCP 좌표계","program.options.plane.follow_base_trajectory":"베이스 궤적 따르기","program.section.title.patternParams":"패턴 설정","program.title.timeSchedule":"시간 스케줄","program.section.title.motionTransform":"모션 변환","program.field.title.scaleXRate":"X축 배율","program.ph.no_motion_list":"모션 정보가 없습니다.","program.field.robot_speed":"로봇 속도","program.field.robot_acceleration":"로봇 가속도","program.ph.selected_tool":"툴을 선택하세요.","program.ph.no_tool_available":"저장된 툴이 없습니다.","program.options.default":"기본값","program.options.syncSpeedBar":"속도 조절 바와 동기화","program.options.stopPause":"일시정지 상태일 때 정지","program.section.title.timerSettings":"타이머 설정","program.field.title.timerNumber":"타이머 번호","program.options.timer":"타이머 {{idx}}","program.section.title.resetTime":"초기화 시간","program.field.title.timingOption":"타이밍 옵션","program.field.title.actionOption":"동작 옵션","program.box.rotation_axis":"회전 축","program.box.goal_point":"도착 포인트","program.ph.command_search":"원하는 명령어를 검색하세요.","program.button.set_begin":"시작 설정","program.label.home_move":"재생 시 홈 이동","program.box.position":"위치","program.option.begin.use_default":"사용 (기본값)","program.option.begin.use_speed":"사용 (x0.3 Speed)","program.option.begin.not_use":"사용 안함","program.desc.begin_move":"UI에서 재생시 홈 위치로 이동 기능의 활성화 여부를 결정합니다.","program.box.out_collision_detection":"외부 충돌 감지","program.box.self_collision_detection":"자가 충돌 감지","program.box.user_frame_selection":"사용자 좌표계 선택","program.box.fixed_speed":"고정 속도","program.box.target_shift_set_via_manual":"목표 시프트: 수동 설정","program.box.speed_bar":"속도 조절 바","program.box.time_constraint":"시간 제약","program.box.ascii_function_call":"ASCII 함수 호출","program.box.joint_impedance_control":"조인트 임피던스 제어","program.box.free_drive_mode":"직접 교시 모드","program.box.master_mode_selection":"마스터 모드 선택","program.box.user_frame_set_via_xyz":"사용자 좌표계: XYZ를 통한 설정","program.box.user_frame_set_via_tcp":"사용자 좌표계: TCP를 통한 설정","program.box.user_frame_set_via_3_points":"사용자 좌표계: 3개 지점을 통한 설정","program.box.target_shift_set_via_landmark":"목표 시프트: 랜드마크를 통한 설정","program.box.program_flow_change":"프로그램 흐름 변경","program.box.digital_input_function_mask":"디지털 입력 함수 마스크","program.box.digital_output_function_mask":"디지털 출력 함수 마스크","program.box.jacobian_based_speed_ctrl":"Jacobian 기반 속도 제어","program.box.vibration_torque_based":"진동 (토크 기반)","program.box.vibration_motion_based":"진동 (모션 기반)","program.box.ext_axis_sync":"부가 축 동기화","program.box.tcp_speed_bound":"TCP 속도 제한","program.box.move_break_block":"동작 정지/차단","program.box.joint_ref_filter":"관절 지령 필터","program.box.self_coll_detect_blind":"자가 충돌 감지 해제","program.box.joint_origin_calibration":"관절 원점 캘리브레이션","program.box.wrist_singularity_mode":"손목 특이점 모드","program.box.operation_range_check":"작동 범위 확인","program.box.ft_sensor_software_nulling":"FT 센서 소프트웨어 영점 조정","program.field.state":"상태","program.field.stop_mode":"정지 모드","program.options.stop_mode.pause_movement":"동작 일시 정지","program.options.stop_mode.evasion_stop":"회피 정지","program.field.threshold":"임계값","program.field.internal_distance":"내부 거리","program.field.external_distance":"외부 거리","program.field._option":"{{mode}} 유형","program.options.fixed_mode.percent":"고정 모드: %","program.options.fixed_mode.physical":"고정 모드: 물리","program.options.time_constraint.unit_move":"단위 동작 시간 구속","program.options.time_constraint.multi_move":"다중 동작 시간 구속","program.options.ascii.direct":"직접 실행","program.options.ascii.que_message":"메시지 Que","program.field.message":"메시지","program.options.joint_impedance.impedance":"조인트 임피던스 활성화","program.field.stiffness":"강성","program.field.torque_limit":"토크 제한","program.options.free_drive.free_drive":"직접 교시 활성화","program.options.free_drive.when_button_clicked":"버튼 클릭 시 활성화","program.field.sensitivity":"직접 교시 감도","program.field.extra_force_frame":"추가 힘 프레임","program.field.extra_force":"추가 힘","program.options.user_frame.restore_saved":"저장된 값 복원","program.options.user_frame.apply_target_temporary":"목표값 적용 (임시)","program.options.user_frame.save_target_permanently":"목표 영구 저장","program.options.master_mode.reflected":"반영된 조인트 각도","program.options.master_mode.synchronized":"동기화된 직교 좌표","program.field.user_frame":"사용자 좌표계","program.field.setting_option":"설정 옵션","program.field.target_frame":"목표 좌표계","program.options.frame.global":"전역 좌표계","program.options.frame.local":"로컬 좌표계","program.options.frame.user":"사용자 좌표계","program.options.frame.local_tcp":"로컬 TCP 좌표계","program.field.point_ordering":"포인트 순서","program.options.point_order.origin_x_axis_xy_plane":"원점 → X축 → XY 평면","program.options.point_order.origin_y_axis_yz_plane":"원점 → Y축 → YZ 평면","program.options.point_order.origin_z_axis_zx_plane":"원점 → Z축 → ZX 평면","program.field.shift_number":"시프트 번호","program.field.shift_mode":"시프트 모드","program.field.shift":"시프트","program.options.shift_mode.adjust_l_move":"L-이동 조정","program.options.shift_mode.adjust_l_j_move":"L, J-이동 조정","program.options.shift_mode.adjust_j_move":"J-이동 조정","program.field.tolerance":"허용 오차","program.options.stop":"중지","program.options.pause":"일시 정지","program.options.resume":"재개","program.options.reset_collision":"충돌 초기화","program.field.target_component":"목표 컴포넌트","program.options.flow_target.all_robots":"모든 로봇 컴포넌트","program.options.flow_target.this_component":"현재 컴포넌트","program.field.target_device":"목표 장치","program.options.device.control_box":"제어 박스 I/O","program.options.device.extension_io":"확장 I/O","program.options.device.tool_flange_io":"툴 플랜지 I/O","program.options.port.whole":"전체 포트","program.options.port.port":"포트","program.options.mask.off":"비활성화 마스크 끄기","program.options.mask.on":"비활성화 마스크 켜기","program.options.deactive":"비활성","program.field.time":"시간","program.field.bound_mode":"제한 모드","program.field.tcp_speed":"TCP 속도","program.options.bound_off":"제한 끄기 (시스템 기본)","program.options.bound_on":"제한 켜기","program.field.breakblock_mode":"정지/차단 모드","program.options.break.off":"해제","program.options.break.block":"지속 차단","program.options.break.once":"일회성 정지","program.field.filter_mode":"필터 모드","program.field.filter":"필터","program.options.jrf.off":"끄기 (시스템 기본)","program.options.jrf.custom_filter":"사용자 지정 필터 조정","program.field.detect_blind_time":"감지 해제 시간 (초)","program.button.empty":"빈 영역","program.rby1.move.no_part":"위 버튼으로 움직일 파트를 추가하세요.","program.rby1.tooltip.hand_ref":"Base와 T5는 Cartesian 이동에서만 선택할 수 있습니다. 조인트 이동은 항상 Base이며, Torso도 항상 Base 기준입니다.","amr.button.goal":"도착점","amr.button.target":"타겟","amr.button.linear":"선형","amr.button.rotate":"회전","amr.button.map_load":"맵 로드","amr.button.loc_init":"위치 초기화","amr.button.loc_control":"위치 제어","amr.button.hw_control":"하드웨어 제어","amr.button.dock":"도킹","amr.button.obs_box":"장애물 감지 영역","amr.button.set_safety":"안전 설정","amr.button.stream":"스트림","program.button.load":"불러오기","program.button.save":"저장","program.button.new":"새 프로그램","program.button.search_variables":"변수 찾기","program.button.close":"닫기","program.button.call_event_thread":"이벤트 쓰레드 호출","program.button.general_thread":"일반 쓰레드","program.box.read_configuration":"읽기 설정","program.box.connect_configuration":"연결 설정","program.field.return_variable_name":"반환 변수명","program.field.target_read_length":"읽기 길이","program.field.goal_id":"목표 ID","program.field.preset":"사전 설정","program.field.method":"방법","program.field.zAngle":"Z 각도","program.field.target_position":"목표 위치","program.field.speed":"속도","program.field.map_name":"맵 이름","program.options.init_mod.init":"초기화","program.options.init_mod.auto":"자동 초기화","program.options.init_mod.semi":"반자동 초기화","program.options.init_mod.random":"무작위 초기화","amr.button.localization_init":"위치 추정 초기화","program.field.init_mode":"초기화 모드","amr.button.localization_control":"위치 추정 제어","program.field.control":"제어","program.options.control.start":"시작","program.options.control.stop":"정지","program.box.hardware_control":"하드웨어 제어","program.options.control.motor":"모터","program.options.control.led":"LED","program.field.dock_mode":"도킹 모드","program.options.dock.dock":"도킹","program.options.dock.undock":"도킹 해제","program.field.min_position":"최소 위치","program.field.max_position":"최대 위치","program.field.map_range":"맵 범위","program.options.safety.field":"안전 영역","program.options.safety.flag":"안전 플래그","program.options.safety.io":"안전 I/O","program.box.set_reset_flag":"리셋 플래그 설정","program.box.safety_mcu":"안전 MCU","program.box.safety_field":"안전 영역","program.field.reset_flag":"리셋 플래그","program.desc.safety":"설정하려는 초기화 플래그가 있는 경우, 키와 설정 값을 입력해 주세요.","program.button.add_flag":"플래그 추가","program.field.key":"키","program.field.mcu_din":"MCU {{mode}} 디지털 입력","program.box.pose":"자세","program.box.move.axis":"이동 축","program.option.sync_ignore":"단독 실행 시 무시","program.field.pattern_id":"패턴 ID","program.field.pattern_type":"패턴 유형","program.options.pattern_line":"선 (X)","program.options.pattern_plane":"평면 (X-Y)","program.options.pattern_cube":"육각형 (X-Y-Z)","program.options.pattern_random":"직접 설정","program.field.pattern_count":"포인트 갯수 설정","program.field.pattern_point_num":"{{axis}}축 포인트 갯수","program.field.anchor_point":"앵커 포인트","program.field.incremental":"증가 값","program.desc.pattern":"코너 포인트를 설정합니다.","program.button.add_corner_point":"코너 포인트 추가","settings.general.menu.joint":"로봇 조인트","settings.general.title.jointKineLimit":"조인트 Kinematic 제한","settings.general.desc.jointKineLimit":"하드웨어 손상 및 충돌을 방지하기 위해 각 조인트의 물리적 범위(Pos)와 최대 속도(Speed)를 정의합니다.","program.field.mc_protocol":"프로토콜 타입","program.field.variable_value":"변수값","program.field.device_type":"장비 타입","program.field.cpu_type":"머신 타입","program.field.desc.bit":"bit 값을 선택하세요.","program.field.address_type":"주소 종류","settings.general.title.deflection_compensation":"처짐 보상","settings.general.desc.deflection":"툴플랜지 측에 기구물을 달아 사용할 경우 위치 값이 아래로 처지면, 해당 처짐을 보상하는 기능입니다.","setting.options.adjust_deflection":"처짐 조정","settings.outColl.options.option.pause":"일시 정지","settings.outColl.options.option.evasion":"회피 정지","settings.selfColl.options.option.stop":"자가 충돌 직전 멈춤","settings.selfColl.options.option.speed":"자가 충돌시 속도 제어","settings.title.selected":"선택된","settings.general.userScript.card.title":"스크립트 포트","settings.general.userScript.desc":"포트별로 사용자 정의 스크립트를 설정합니다.","settings.general.userScript.textfield.title":"유저 스크립트","settings.general.afterAction.title.action":"동작","settings.general.afterAction.desc":"선택된 작업을 완료한 후에 수행할 동작을 설정합니다.","settings.options.option.boxNone":"사용 안함","settings.options.option.sphere":"구","settings.options.option.cylinder":"원통","settings.options.option.box":"박스","settings.tool.title.width":"너비","settings.io.title.port":"포트","settings.io.title.changeDirection":"반대 방향으로 변경","settings.io.title.normalDirection":"정방향","settings.io.title.reverseDirection":"역방향","settings.io.title.filter":"필터","settings.io.dinFilter.desc":"입력 신호의 지연을 설정합니다.","settings.io.title.count":"지연 횟수","settings.devices.menu.welding":"용접","settings.devices.welding.desc":"용접 관련 옵션(장치 정보, 입력/출력 신호 매핑, 하드웨어, 변환 맵 등)을 설정합니다.","settings.devices.welding.device.title":"용접 장치 옵션 설정","settings.devices.welding.device.textfield":"장치 {{msg}}","settings.devices.welding.output.title":"용접 출력 옵션 설정","settings.devices.welding.output.arcOn":"아크 발생 신호","settings.devices.welding.output.touchOn":"접촉 신호","settings.devices.welding.output.gasOn":"가스 발생 신호","settings.devices.welding.output.wireInch":"와이어 인칭 신호","settings.devices.welding.output.wireReinch":"와이어 재인칭 신호","settings.devices.welding.output.currentPort":"전류 설정 포트","settings.devices.welding.output.voltagePort":"전압 설정 포트","settings.devices.welding.input.title":"용접 입력 옵션 설정","settings.devices.welding.input.welderReady":"용접기 준비 신호","settings.devices.welding.input.arcGenFeedback":"아크 발생 피드백","settings.devices.welding.input.touchFeedback":"접촉 신호 피드백","settings.devices.welding.input.gasFeedback":"가스 신호 피드백","settings.devices.welding.input.feederFeedback":"송급기 신호 피드백","settings.devices.welding.input.welderErrSignal":"용접기 에러 신호","settings.devices.welding.input.currentFeedback":"전류 피드백","settings.devices.welding.input.voltageFeedback":"전압 피드백","settings.devices.welding.hardware.title":"용접 하드웨어 옵션 설정","settings.devices.welding.hardware.processType":"프로세스 타입","settings.devices.welding.hardware.wireType":"와이어 타입","settings.devices.welding.hardware.wireSize":"와이어 크기","settings.devices.welding.hardware.gasType":"가스 타입","settings.devices.welding.convMap.title":"용접 변환 맵 설정","settings.devices.welding.convMap.weldingCurrent":"용접 전류","settings.devices.welding.convMap.addCurrentMap":"전류 맵 추가","settings.devices.welding.convMap.weldingVoltage":"용접 전압","settings.devices.welding.convMap.addVoltageMap":"전압 맵 추가","settings.devices.welding.convMap.title.current":"전류","settings.devices.welding.convMap.title.output":"출력","settings.devices.welding.convMap.desc.limit":"최대 {{max}}개 까지만 등록 가능합니다.","settings.devices.welding.convMap.title.voltage":"전압","settings.devices.menu.externalFT":"외부 F/T","settings.devices.externalFT.desc":"외부 F/T 센서 설정입니다. 센서의 장착 방향 오프셋과 신호 필터 값을 조정할 수 있습니다.","settings.devices.externalFT.deviceType":"디바이스 타입","settings.devices.externalFT.mountingOption":"장착 옵션","settings.devices.externalFT.options.noSensor":"센서 없음","settings.devices.externalFT.options.defaultMount":"기본 장착","settings.devices.externalFT.options.customMount":"커스텀 장착","settings.devices.externalFT.wrtFlange":"플랜지 기준 커스텀 장착","settings.devices.externalFT.signalFilter":"신호 필터","settings.devices.menu.communication":"통신","settings.devices.communication.desc":"외부 시스템 및 장비와의 통신 프로토콜별 활성화 여부(ON/OFF)와 연결 포트(Port)를 설정합니다.","settings.menu.title.amrRobot":"로봇","settings.menu.title.amrMotor":"모터","settings.menu.title.amrSensor":"센서","settings.menu.title.drive":"주행","settings.menu.title.obsDetect":"장애물 감지","settings.menu.title.docking":"도킹","settings.menu.title.localization":"위치 추정","settings.menu.title.mapping":"지도 생성","settings.menu.title.logging":"로그 기록","settings.amr.general.amrRobot.title":"로봇 설정","settings.amr.general.amrRobot.desc":"오프셋을 입력하여 기본 로봇 크기에 적용합니다.","settings.amr.general.title.robotSize":"로봇 {{axis}} 크기 추가","settings.amr.general.title.batAlarm":"배터리 알람","settings.amr.general.title.alarm":"알람","settings.amr.general.title.batLowThreshold":"배터리 저전압 임계값","settings.amr.general.title.batCritLowThreshold":"배터리 초저전압 임계값","settings.amr.general.title.speaker":"스피커","settings.amr.general.motor.title.speedLimit":"속도 제한","settings.amr.general.motor.desc.speedLimit":"모터의 선형 및 각속도 제한을 설정합니다.","settings.amr.general.motor.title.accLimit":"가속도 제한","settings.amr.general.motor.desc.accLimit":"모터의 선형 및 각가속도 제한을 설정합니다.","settings.amr.general.motor.title.motorSpdLimit":"모터 속도 제한","settings.amr.general.motor.desc.motorSpdLimit":"모터 손상과 시스템 불안정을 방지하기 위해 선형 및 각속도에 대한 절대 안전 한계를 설정합니다.","settings.amr.general.motor.title.linearLimit":"선속도 제한","settings.amr.general.motor.title.angularLimit":"각속도 제한","settings.amr.general.motor.title.angularLimit2":"각가속도 제한","settings.amr.general.sensor.title.qrConfig":"센서 QR 설정","settings.amr.general.sensor.desc.qrConfig":"QR 센서의 활성화 여부를 설정합니다.","settings.amr.general.sensor.title.cameraConfig":"센서 카메라 설정","settings.amr.general.sensor.desc.cameraConfig":"카메라 전원 및 심도, 필터, RGB 등 세부 데이터 수집 여부를 설정합니다.","settings.amr.general.sensor.title.imuConfig":"센서 IMU 설정","settings.amr.general.sensor.desc.imuConfig":"IMU 센서의 활성화 여부 및 데이터 측정 차원(2D/3D)을 설정합니다.","settings.amr.general.sensor.title.bottomQR":"바닥 QR","settings.amr.general.sensor.title.camera":"카메라","settings.amr.general.sensor.title.cameraDepth":"카메라 심도","settings.amr.general.sensor.title.cameraFilter":"카메라 필터","settings.amr.general.sensor.title.cameraRGB":"카메라 RGB","settings.amr.drive.general.title.goalCheck":"목적지 확인","settings.amr.drive.general.desc.goalCheck":"목적지 도착 판단을 위한 거리 및 회전 각도의 허용 오차 범위를 설정합니다.","settings.amr.drive.general.label.distThreshold":"거리 허용 오차","settings.amr.drive.general.label.orientThreshold":"각도 허용 오차","settings.amr.drive.general.title.goalAlign":"목적지 정렬","settings.amr.drive.general.desc.goalAlign":"목적지 도착 직전, 정밀한 위치 및 방향 맞춤을 위한 제어 파라미터를 설정합니다.","settings.amr.drive.general.label.approachGain":"접근 게인","settings.amr.drive.general.label.extendCtrlTime":"추가 제어 시간","settings.amr.drive.general.label.linearMinSpeed":"최소 선속도","settings.amr.drive.general.label.angularMinSpeed":"최소 각속도","settings.amr.obsDetect.title.obsMap":"장애물 지도","settings.amr.obsDetect.desc.obsMap":"로봇의 장애물 지도 생성 및 주변 환경 감지 범위를 설정합니다.","settings.amr.obsDetect.label.gridSize":"격자 크기","settings.amr.obsDetect.label.detectRange":"장애물 감지 범위 (로봇 기준)","settings.amr.obsDetect.label.zLowerHeight":"감지 높이 하한","settings.amr.obsDetect.label.zUpperHeight":"감지 높이 상한","settings.amr.obsDetect.title.pathMargin":"경로 생성 마진","settings.amr.obsDetect.desc.pathMargin":"경로 생성 시 장애물로부터 유지해야 할 최소 여유 공간(마진)을 설정합니다.","settings.amr.obsDetect.label.pathMargin":"경로 {{axis}} 마진","settings.amr.obsDetect.title.safetyMargin":"안전 마진","settings.amr.obsDetect.desc.safetyMargin":"실시간 안전 제어 및 돌발 상황 대비를 위한 안전 계수 설정","settings.amr.obsDetect.label.deazone":"데드존 범위 (로봇 기준)","settings.amr.obsDetect.label.predictTime":"충돌 예측 시간","settings.amr.obsDetect.label.detectMinSpd":"감지 동작 최소 속도","settings.amr.obsDetect.label.safetyMargin":"{{axis}}축 안전 마진","settings.amr.docking.title.general":"도킹 일반 설정","settings.amr.docking.desc.general":"로봇이 도킹 스테이션을 인식하고 접근하는 방식에 대한 기본 옵션을 설정합니다.","settings.amr.docking.label.lidarType":"라이다 종류","settings.amr.docking.label.chargeType":"충전 방식","settings.amr.docking.label.reverseFlag":"역방향 주행 설정","settings.amr.docking.label.forward":"전진","settings.amr.docking.label.backward":"후진","settings.amr.docking.label.autoMove":"이동 시 자동 도킹 해제","settings.amr.docking.title.offsetGain":"도킹 오프셋 및 게인 설정","settings.amr.docking.desc.offsetGain":"도킹 제어 알고리즘(PD 제어)에 사용되는 물리적 거리 보정값 및 게인(Gain) 값을 설정합니다.","settings.amr.docking.label.xOffset":"X축 오프셋","settings.amr.docking.label.chargeWaitTime":"충전 대기 시간","settings.amr.docking.label.distanceKD":"거리 제어 미분(D) 게인","settings.amr.docking.lable.distanceKP":"거리 제어 비례(P) 게인","settings.amr.docking.label.orientationKD":"방향 제어 미분(D) 게인","settings.amr.docking.label.orientationKP":"방향 제어 비례(P) 게인","settings.amr.docking.title.threshold":"도킹 임계값","settings.amr.docking.desc.threshold":"도킹 스테이션 여부를 판단할 때 각 항목별로 적용할 신뢰도 가중치를 설정합니다.","settings.amr.docking.label.constScoreWeight":"일관성 점수 가중치","settings.amr.docking.label.distScoreWeight":"거리 점수 가중치","settings.amr.docking.label.historyScoreWeight":"기존 도킹 이력 점수 가중치","settings.amr.docking.label.ICPScoreWeight":"ICP 매칭 점수 가중치","settings.amr.docking.label.targetScoreWeight":"타겟 길이/크기 점수 가중치","settings.amr.docking.label.segmentScoreWeight":"세그먼트 비율 점수 가중치","settings.amr.docking.label.shapeScoreWeight":"형상/각도 일치 점수 가중치","settings.amr.loc.title.localization":"{{param}} 위치 추정 설정","settings.amr.loc.desc.localization":"로봇의 위치 추정 방식 및 포즈 계산을 위한 필터 옵션을 설정합니다.","settings.amr.loc.label.localizationMode":"위치 추정 모드","settings.amr.loc.label.EKF":"확장 칼만 필터","settings.amr.loc.desc.2dLocalization":"2D 위치 추정을 위한 ICP 스캔 매칭 및 오도메트리 융합 파라미터를 설정합니다.","settings.amr.loc.label.costThreshold":"비용 임계값","settings.amr.loc.label.errorThreshold":"오차 임계값","settings.amr.loc.label.odometry":"오도메트리 융합 비율","settings.amr.loc.label.inlierError":"인라이어(유효 데이터) 오차 체크","settings.amr.loc.label.inlierRatio":"인라이어(유효 데이터) 비율 체크","settings.amr.loc.label.checkDistance":"거리 체크 범위","settings.amr.loc.label.maxFeature":"최대 특징점 개수","settings.amr.loc.title.surfel":"서펠 설정","settings.amr.loc.label.surfel":"서펠","settings.amr.loc.label.surfelRange":"서펠 적용 범위","settings.amr.loc.desc.3dLocalization":"실시간 3D 라이다 점군 데이터를 전역 지도와 대조하여 로봇의 고정밀 3D 포즈(위치 및 자세)를 추정하기 위한 파라미터를 설정합니다.","settings.amr.loc.label.surfelBalance":"서펠 분포 균형 (축별 분포)","settings.amr.loc.label.surfelNN":"서펠 NN 수","settings.amr.mapping.desc.icp":"스캔 매칭의 정밀도 및 데이터 처리 방식에 관한 파라미터를 설정합니다.","settings.amr.mapping.label.viewThreshold":"시야각 임계값","settings.amr.mapping.label.eraseGap":"삭제 간격","settings.amr.mapping.label.accumulation":"데이터 누적 개수","settings.amr.mapping.title.keyFrame":"키 프레임 설정","settings.amr.mapping.desc.keyFrame":"지도 생성 시 키 프레임 생성 조건, 루프 클로저(경로 재방문 인식) 및 공간 데이터 효율성을 설정합니다.","settings.amr.mapping.label.loopTryDistance":"루프 클로저 시도 거리","settings.amr.mapping.label.loopTryOverlap":"루프 클로저 중첩 범위","settings.amr.mapping.label.voxelSize":"복셀 크기","settings.amr.mapping.label.windowSize":"윈도우 크기","settings.amr.mapping.label.updateNum":"업데이트 간격","settings.amr.logging.title.logging":"로그 설정","settings.amr.logging.desc.logging":"로그 기록 수준을 설정하고, 실시간 모니터링 및 데이터 기록을 수행할 시스템 모듈을 선택합니다.","settings.amr.logging.label.logLevel":"로그 레벨","settings.amr.logging.label.loggingStatus":"로그 표시 상태","settings.amr.logging.label.autoCtrl":"자동 제어","settings.amr.logging.label.commRRS":"RRS 통신","settings.amr.logging.label.lidar":"{{param}} 라이다","settings.amr.logging.label.mobile":"모바일","settings.amr.logging.label.obsMap":"장애물 지도","settings.amr.logging.label.fileSave":"파일 저장","settings.amr.logging.label.filePath":"파일 경로","settings.amr.logging.option.trace":"추적","settings.amr.logging.option.debug":"디버그","settings.amr.logging.option.info":"정보","settings.amr.logging.option.warning":"경고","settings.amr.logging.option.error":"오류","settings.amr.logging.option.critical":"심각","program.modal.title.searchVariables":"변수 찾기","program.modal.label.valueType":"값 유형","program.modal.label.defaultValue":"기본값","program.modal.label.context":"상태 정보","program.modal.label.all":"전체","program.modal.label.manipulate":"매니퓰레이트","program.modal.label.amr":"모바일","program.modal.label.local":"로컬","program.modal.label.global":"글로벌","program.modal.msg.varNotFound":"변수를 찾을 수 없습니다.","program.modal.label.declaredVariables":"선언 변수","program.modal.label.pluginVariables":"플러그인 변수","program.modal.label.systemReference":"정의 변수","program.modal.placeholder.searchVariables":"변수 검색","program.modal.label.copied":"복사 완료","program.modal.label.copyVariableReference":"키 복사","program.modal.label.copyCurrentValue":"변수 복사","program.modal.label.currentValue":"현재 값","program.modal.label.initialValue":"초기값","program.modal.label.notAvailable":"사용할 수 없음","program.modal.msg.variableReferenceCopied":"변수 키가 복사되었습니다.","program.modal.msg.variableValueCopied":"변수 값이 복사되었습니다.","move.menu.button.label.collapse":"접기","move.menu.button.label.jog":"조그","move.menu.button.label.advJog":"고급 조그","move.menu.button.label.tcpTool":"TCP 툴","move.menu.button.label.gripper":"그리퍼","move.menu.button.label.zeroPose":"영점으로 이동","move.menu.button.label.pinpoint":"핀포인트","move.menu.button.label.record":"동작 녹화","move.menu.button.label.weld":"용접 옵션","move.menu.title.planeConstJog":"평면 제한 조그","move.menu.title.tcpTool":"선택된 TCP 툴","move.menu.msg.tcpTool":"선택된 TCP 툴이 없습니다.","move.menu.button.label.moveOrigin":"{{index}}번 조인트를 원점으로 이동","move.menu.button.label.moveAllOrigin":"전체 조인트를 원점으로 이동","move.menu.options.option.noSave":"저장 안 함","move.menu.options.option.realTime":"실시간","move.menu.options.option.mileStone":"중요 지점","move.menu.label.mileStoneFreq":"중요 지점 기록 빈도","move.menu.label.fileName":"파일 이름","move.menu.button.label.recordStop":"녹화 중지","move.menu.button.label.recordStart":"녹화 시작","move.menu.button.label.weldForward":"와이어 전진","move.menu.button.label.weldBackward":"와이어 후진","move.menu.button.label.gasPurge":"가스 퍼지 켜기/끄기","move.button.label.real":"리얼","move.button.label.simulation":"시뮬레이션","move.menu.msg.userCoordinate":"선택된 유저 좌표계가 없습니다.","move.menu.label.distFromBase":"베이스로부터의 거리","move.menu.label.rotFromBase":"베이스로부터의 회전","move.menu.label.joint":"조인트","move.menu.label.dist":"거리","login.title.welcome":"MUSCAT에 오신 것을 환영합니다!","login.textfield.label.id":"아이디","login.textfield.label.password":"비밀번호","login.placeholder.loginInfo":"{{info}}를 입력하세요.","login.label.rememberMe":"자동 로그인","login.button.label.login":"로그인","login.button.label.logout":"로그아웃","login.msg.error.id":"아이디를 입력해 주세요.","login.msg.error.password":"비밀번호를 입력해 주세요.","login.modal.title.duplicate":"타계정 로그인 시도","login.modal.desc.duplicate":" 계정이 로봇을 사용하려합니다.\\n사용권을 넘기시겠습니까?","login.modal.desc.duplicate.discription":"사용 권한을 넘기면 로그아웃됩니다.","login.modal.title.saveFailed":"저장 실패","login.modal.desc.saveFailed":"다음 항목 저장에 실패했습니다: {{items}}\\n그래도 로그아웃하시겠습니까?","login_peding.modal.desc":"로그인하기 위해 {{username}} 승인을 기다리고 있습니다.","login.modal.title.timeout":"로그인 요청 시간 초과","login.modal.title.denied":"로그인 요청 취소","login.title.failed":"로그인 요청 실패","login.msg.error.idOrPassword":"잘못된 계정 정보 입니다.","login.msg.error.alreadyLogged":"이미 접속중인 계정입니다.","login.msg.error.unknown":"알 수 없는 오류가 발생하였습니다. 관리자에게 문의하세요.","login.msg.timeout":"요청 시간이 초과되었습니다.","move.menu.button.label.calibration":"교정","move.menu.options.option.tcpPosCalib":"TCP 위치 교정","move.menu.options.option.tcpOriCalib":"TCP 회전 교정","move.menu.options.option.user3Points":"유저 좌표계: 3개 지점을 이용한 교정","move.menu.options.option.userTCPFrame":"유저 좌표계: TCP 좌표계를 이용한 교정","move.menu.options.option.extAxis":"부가 축","move.field.label.jointNumber":"조인트 번호","move.menu.button.get":"가져오기","move.menu.calibTCPPos.desc":"포인트를 추가하세요.","move.menu.tab.lable.controlBox":"제어 박스","move.menu.tab.lable.extBoard":"확장 보드","move.menu.title.currentSignal":"현재 신호","move.menu.title.targetSignal":"목표 신호","move.menu.label.digitalInput":"{{loc}} 디지털 입력","move.menu.label.digitalOutput":"{{loc}} 디지털 출력","move.menu.label.analogInput":"{{loc}} 아날로그 입력","move.menu.label.analogOutput":"{{loc}} 아날로그 출력","move.menu.label.toolVoltageOutput":"툴 전압 출력","move.rby1.source.ghost":"고스트","move.rby1.jogMode.joint":"조인트 조그","move.rby1.jogMode.cartesian":"카르테시안 조그","move.rby1.switch.bothArms":"양팔 미러 모드","move.rby1.monitor.joint":"관절","move.rby1.monitor.tcp":"TCP","move.rby1.menu.savedPose":"저장된 자세","move.rby1.inputMove.title":"입력값으로 이동","move.rby1.inputMove.content":"로봇의 {{key}}를 {{value}}(으)로 이동시키시겠습니까?","move.rby1.savedPose.count":"{{count}}개","move.rby1.savedPose.saveDesc":"현재 실제 자세를 저장합니다","move.rby1.savedPose.namePlaceholder":"자세 이름","move.rby1.savedPose.save":"저장","move.rby1.savedPose.searchPlaceholder":"자세 이름 검색","move.rby1.savedPose.axisCount":"{{count}}축","move.rby1.savedPose.current":"현재 자세","move.rby1.savedPose.jointTitle":"관절 각도 · °","move.rby1.savedPose.tcpTitle":"TCP 위치 · mm / °","move.rby1.savedPose.cartesian":"카르테시안","move.rby1.savedPose.approach":"이 자세로 이동","move.rby1.savedPose.updateToCurrent":"현재 자세로 수정","move.rby1.savedPose.empty":"저장된 자세가 없습니다","move.rby1.savedPose.deleteTitle":"자세 삭제","move.rby1.savedPose.deleteContent":'"{{name}}" 자세를 삭제할까요?',"move.rby1.savedPose.delete":"삭제","move.rby1.zeroPose.partAll":"{{part}} 전체 조인트를 원점으로 이동","program.field.frequency":"주기","program.field.magnitudes":"강도","program.section.title.motionType":"모션 타입","program.box.options.movement":"동작 {{type}}","program.label.blend":"블렌드 {{msg}}","program.box.options.linearType":"선형 타입","program.box.options.cornerType":"코너 타입","program.box.options.percentage":"백분율","program.field.blendRatio":"블렌드율","program.field.blendDistance":"블렌드 거리","program.field.frameSelection":"좌표계 선택","program.section.title.feedSpeed":"피드 속도","program.field.feedDefault":"피드 기본값","program.field.feedRapid":"피드 래피드","program.field.feedMaxLimit":"피드 최대 제한","program.field.feedRotation":"피드 회전","program.section.title.plane":"평면","program.field.defaultPlane":"기본 평면","program.section.title.offset":"오프셋","program.field.willUseConstSpd":"고정 속도 사용 여부","program.field.willIgnoreUnknown":"알 수 없는 코드 무시 여부","program.box.option.constantSpeed":"고정 속도","program.box.option.ignoreUnknown":"알 수 없는 코드 무시","program.box.option.xyPlane":"XY-평면","program.box.option.zxPlane":"ZX-평면","program.box.option.yzPlane":"YZ-평면","program.options.frame.activeLocal":"활성화된 로컬 좌표계","program.field.delimiter":"구분 기호","program.field.resolve_action":"실패 처리 방식","program.options.resolve_action.next":"무시 후 진행","program.options.resolve_action.stop":"즉시 중단","program.options.resolve_action.debug":"사용자 확인","settings.devices.plc.label.operator":"연산자","log.datepicker.setTime":"시간 설정","log.datepicker.preset.last24Hours":"최근 24시간","log.datepicker.preset.last3Days":"최근 3일","log.datepicker.preset.lastWeek":"최근 1주","log.datepicker.preset.lastMonth":"최근 1달","log.datepicker.preset.last3Months":"최근 3달","settings.toast.saveSuccess.title":"저장 완료","settings.toast.saveSuccess.content":"설정이 저장되었습니다.","settings.amr.general.title.robotSizeMin":"최소 {{axis}} 크기","settings.amr.general.title.robotSizeMax":"최대 {{axis}} 크기","settings.amr.docking.label.chargeFlag":"충전 방향","settings.amr.docking.label.retryCount":"재시도 횟수","move.amr.pdu.toast.motorConnect.title":"모터 연결 완료","move.amr.pdu.toast.motorConnect.content":"모터가 성공적으로 연결되었습니다.","move.amr.pdu.toast.lidarSave.title":"Lidar 필드 저장 완료","move.amr.pdu.toast.lidarSave.content":"Lidar 필드 값이 저장되었습니다.","common.toast.apiError.title":"API 요청 실패","common.toast.apiError.content":"잠시 후 다시 시도해주세요.","maintenance.menu.jointUnit":"조인트 유닛","maintenance.menu.system":"시스템","maintenance.menu.safety":"안전","maintenance.menu.update":"업데이트","maintenance.menu.robotInfo":"로봇 정보","maintenance.menu.management":"관리","maintenance.menu.authentication":"사용자 인증","maintenance.menu.user":"유저","maintenance.menu.externalPeer":"외부 Peer","maintenance.menu.authPolicy":"승인 정책","maintenance.title.changeSettings":"설정 변경","maintenance.title.status":"상태","maintenance.joint.desc":"특정 조인트 조율 도구입니다. 인코더 영점 설정, 센서 보정, 제어 게인(Gain) 미세 조정 등을 통해 하드웨어 성능을 극대화할 수 있습니다.","maintenance.system.desc":"핵심 시스템 인프라와 하드웨어 식별 정보를 관리하는 메뉴입니다. 로우레벨(Low-level) 설정, 하드웨어 주소 할당, 필수 시스템 유지 관리에 필요한 도구를 제공합니다.","maintenance.safety.desc":"로봇의 안전과 관련된 다양한 파라미터 값들을 설정할 수 있습니다.","maintenance.safetyStatus.desc":"실행 상태, I/O 신호, 플래그, 시스템 상태 등 로봇의 다양한 안전 관련 신호 상태를 표시합니다.","maintenance.userManagement.desc":"신규 유저 생성, 기존 유저 정보 수정 및 삭제 등 전체적으로 유저를 관리합니다.","maintenance.sdkManagement.desc":"시스템 연동을 위한 SDK 인증 토큰을 발급하고 유효기간을 관리합니다.","maintenance.peerManagement.desc":"네트워크 연동을 위한 외부 피어(Peer) 노드를 등록하고 관리합니다.","maintenance.authPolicy.desc":"인증 정책과 인증에 사용할 전송 프로토콜을 설정합니다.","maintenance.title.login":"로그인","maintenance.loginManagement.desc":"중복 로그인한 사용자를 강제로 로그아웃시킵니다.","maintenance.loginManagement.button.forceAll":"전체 강제 로그아웃","maintenance.loginManagement.button.force":"강제 로그아웃","maintenance.loginManagement.label.duplicateAccounts":"중복 계정 수","maintenance.loginManagement.label.currentSession":"현재 세션","maintenance.loginManagement.button.refresh":"새로고침","maintenance.loginManagement.label.transport":"최근 통신 종류","maintenance.loginManagement.label.username":"사용자명(ID)","maintenance.loginManagement.label.loginTime":"로그인 시간","maintenance.userManagement.button.addUser":"유저 추가","maintenance.userManagement.button.totalUser":"전체 유저","maintenance.userManagement.button.adminUser":"관리자 유저","maintenance.userManagement.label.userId":"유저 ID","maintenance.userManagement.label.userPw":"비밀번호","maintenance.userManagement.label.userName":"유저 이름","maintenance.userManagement.label.role":"권한","maintenance.modal.title.createUser":"유저 생성","maintenance.modal.title.userInfo":"유저 정보","maintenance.modal.title.editUser":"유저 정보 수정","maintenance.modal.title.delete":"{{msg}} 삭제","maintenance.modal.label.activeSessionCnt":"활성화된 세션 수","maintenance.modal.content.confirmDeleteUser":"정말 {{id}}을(를) 삭제하시겠습니까?\\n이 작업은 되돌릴 수 없습니다.","maintenance.toast.content.createSuccess":"{{msg}}가 생성되었습니다.","maintenance.toast.content.editSuccess":"{{msg}} 정보가 수정되었습니다.","maintenance.toast.content.registerSuccess":"외부 Peer가 등록되었습니다.","maintenance.toast.content.createFail":"{{msg}} 생성에 실패했습니다.","maintenance.toast.content.editFail":"{{msg}} 정보 수정에 실패했습니다.","maintenance.toast.content.registerFail":"외부 Peer 등록에 실패했습니다.","maintenance.toast.content.delete":"삭제 되었습니다.","maintenance.label.createToken":"SDK 토큰 생성","maintenance.label.totalTokens":"전체 SDK 토큰","maintenance.label.editToken":"SDK 토큰 수정","maintenance.table.label.token":"토큰","maintenance.table.tooltip.token":"전체 토큰을 확인하려면 토큰 칸을 클릭하세요.","maintenance.table.label.issuedDate":"생성일","maintenance.table.label.expiredDate":"만료일","maintenance.table.label.issuedBy":"발급자","maintenance.table.msg.noManagementDatas":"{{msg}} 데이터가 없습니다.","maintenance.table.msg.noSdkTokens":"생성된 SDK 토큰이 없습니다.","maintenance.label.totalPeers":"전체 Peer","maintenance.label.registerPeer":"Peer 등록","maintenance.label.editPeer":"Peer 수정","maintenance.label.loginEnabled":"로그인 활성화","maintenance.label.allowDuplLogin":"다중 로그인 허용","maintenance.label.transportProtocols":"인증을 위한 전송 프로토콜","maintenance.label.maxConcurrUsers":"최대 동시 사용자 수","maintenance.helpText.maxConcurrUsers":"0을 입력하면 모든 사용자의 동시 접속을 허용합니다.","maintenance.helpText.reloginNotice":"아래 설정을 변경하시면 현재 로그인된 모든 사용자가 강제 로그아웃됩니다.","maintenance.label.jwtRuntimeConfig":"JWT 런타임 설정","maintenance.label.tokenExp":"토큰 만료 (mins)","maintenance.label.refreshTokenExp":"리프레시 토큰 만료 (days)","maintenance.label.servicePrefix":"Service 접두사","maintenance.label.sdkPrefix":"SDK 접두사","maintenance.modal.button.keep":"유지","maintenance.modal.saveAuto.desc.noRelogin":"권한 정책 설정이 변경됩니다.\\n이 변경 사항은 재로그인 없이 즉시 적용됩니다.","maintenance.modal.saveAuto.desc.relogin":"권한 정책 설정이 변경됩니다.\\n확인을 누르면 변경 사항이 저장되고, 현재 로그인되어 있는 모든 사용자가 강제 로그아웃됩니다.","maintenance.modal.saveAuto.desc":"권한 정책 설정이 변경됩니다.\\n확인을 누르면 현재 로그인되어 있는 다른 모든 사용자가 강제 로그아웃됩니다.\\n유지를 누르면 현재 로그인 상태를 유지합니다.\\n강제 로그아웃 여부와 관계없이 변경된 권한 정책은 저장됩니다.","settings.devices.plc.options.always":"켜기 (항상)","settings.devices.plc.options.idle":"켜기 (대기)","settings.devices.plc.options.playing":"켜기 (재생 중)","settings.devices.plc.options.moving":"켜기 (동작 중)","settings.devices.plc.label.input":"입력 {{type}}","settings.devices.plc.options.ioSignal":"IO 신호","settings.devices.plc.options.systemStatus":"시스템 상태","settings.devices.plc.options.systemParam":"시스템 파라미터","settings.devices.plc.options.dataComm":"데이터 통신","settings.devices.plc.options.dataDummy":"데이터 더미","settings.devices.plc.options.signalLevel":"신호 레벨","settings.devices.plc.options.userNumber":"유저 입력 숫자","login.msg.denied":"로그인 요청이 취소되었습니다.","program.dialog.content.editConfirm":"데이터가 변경될 수 있습니다. 계속하시겠습니까?","settings.amr.validation.integer":"올바른 정수를 입력하세요.","settings.amr.validation.number":"올바른 숫자를 입력하세요.","settings.amr.validation.jsonArray":"올바른 JSON 배열을 입력하세요.","settings.amr.validation.jsonObject":"올바른 JSON 객체를 입력하세요.","settings.amr.validation.min":"{{min}} 이상이어야 합니다.","settings.amr.validation.max":"{{max}} 이하여야 합니다.","settings.amr.collection.position":"위치","settings.amr.collection.rotation":"회전","move.amr.toast.moveReject.title":"이동 실패","move.amr.toast.moveReject.localizationUnavailable":"위치 인식이 안 된 상태입니다.","move.amr.toast.moveReject.sameTarget":"현재 목표와 같은 목표입니다.","move.amr.toast.moveReject.outOfMapRange":"목표 좌표가 맵 범위 밖입니다. ","move.amr.toast.moveReject.markerNode":"마커 NODE는 이동 목표로 사용할 수 없습니다.","move.amr.toast.moveReject.robotNotReady":"로봇이 준비되지 않았습니다.","move.amr.toast.moveReject.noMap":"불러온 맵이 없습니다.","move.amr.toast.moveReject.targetNodeNotFound":"목표 NODE를 찾을 수 없습니다.","move.amr.toast.moveReject.noLink":"LINK가 없는 NODE로는 주행할 수 없습니다.","move.amr.toast.moveReject.default":"이동 명령이 거부되었습니다","settings.amr.preset.description":"preset을 선택하여 설정값을 확인하고 편집합니다","settings.amr.preset.loading":"preset 목록을 불러오는 중입니다","settings.amr.preset.empty":"AMR 설정 preset이 없습니다","move.amr.rightPanel.bottomBar.camera":"카메라","move.amr.rightPanel.bottomBar.controlPanel":"제어 패널","move.amr.rightPanel.bottomBar.links":"링크","move.amr.rightPanel.bottomBar.liveStream":"실시간 스트림","move.amr.rightPanel.bottomBar.nodes":"노드","move.amr.rightPanel.bottomBar.offline":"오프라인","move.amr.rightPanel.bottomBar.points":"포인트","move.amr.rightPanel.cameraPanel.cameraName":"카메라 {{index}}","move.amr.rightPanel.cameraPanel.disconnected":"카메라 연결 끊김","move.amr.rightPanel.cameraPanel.loading":"카메라 불러오는 중","move.amr.rightPanel.cameraPanel.title":"카메라 스트림","move.amr.rightPanel.capability.camera":"카메라","move.amr.rightPanel.capability.dock":"도킹","move.amr.rightPanel.capability.field.batteryPercent":"배터리","move.amr.rightPanel.capability.field.batteryType":"배터리 타입","move.amr.rightPanel.capability.field.bumperState":"범퍼 상태","move.amr.rightPanel.capability.field.camNum":"카메라 수","move.amr.rightPanel.capability.field.chargeCurrent":"충전 전류","move.amr.rightPanel.capability.field.chargeState":"충전 상태","move.amr.rightPanel.capability.field.chargeType":"충전 타입","move.amr.rightPanel.capability.field.colorProfile":"컬러 프로필","move.amr.rightPanel.capability.field.contactVoltage":"접점 전압","move.amr.rightPanel.capability.field.depthProfile":"깊이 프로필","move.amr.rightPanel.capability.field.dockState":"도킹 상태","move.amr.rightPanel.capability.field.enabled":"활성화","move.amr.rightPanel.capability.field.enabledDepth":"깊이","move.amr.rightPanel.capability.field.enabledFilter":"필터","move.amr.rightPanel.capability.field.enabledObs":"장애물 감지","move.amr.rightPanel.capability.field.interlockState":"인터락 상태","move.amr.rightPanel.capability.field.ip":"IP","move.amr.rightPanel.capability.field.obsDetect":"장애물 감지","move.amr.rightPanel.capability.field.operationStopState":"작업 정지 상태","move.amr.rightPanel.capability.field.safety":"안전","move.amr.rightPanel.capability.field.serial":"시리얼","move.amr.rightPanel.capability.field.speedControlState":"속도 제어 상태","move.amr.rightPanel.capability.field.tabosCurrent":"TABOS 전류","move.amr.rightPanel.capability.field.tabosSoc":"TABOS SOC","move.amr.rightPanel.capability.field.tabosSoh":"TABOS SOH","move.amr.rightPanel.capability.field.tabosTemp":"TABOS 온도","move.amr.rightPanel.capability.field.tabosVoltage":"TABOS 전압","move.amr.rightPanel.capability.field.tf":"트랜스폼","move.amr.rightPanel.capability.field.type":"타입","move.amr.rightPanel.capability.imu":"IMU","move.amr.rightPanel.capability.io":"I/O","move.amr.rightPanel.capability.lidar2d":"2D 라이다","move.amr.rightPanel.capability.lidar3d":"3D 라이다","move.amr.rightPanel.capability.safety":"안전","move.amr.rightPanel.capability.safetyBumper":"안전 범퍼","move.amr.rightPanel.capability.safetyInterlock":"안전 인터락","move.amr.rightPanel.capability.safetyObstacle":"안전 장애물","move.amr.rightPanel.capability.safetyOperationStop":"안전 작업 정지","move.amr.rightPanel.capability.safetySpeedControl":"안전 속도 제어","move.amr.rightPanel.capability.sensor.item":"센서 {{index}}","move.amr.rightPanel.capability.status.disabled":"비활성화","move.amr.rightPanel.capability.status.enabled":"활성화","move.amr.rightPanel.capability.status.loading":"불러오는 중","move.amr.rightPanel.capability.status.noData":"데이터 없음","move.amr.rightPanel.capability.status.notSupported":"이 기능을 지원하지 않거나 조회할 수 없습니다.","move.amr.rightPanel.capability.status.offline":"오프라인","move.amr.rightPanel.capability.status.online":"온라인","move.amr.rightPanel.capability.status.unavailable":"조회 불가","move.amr.rightPanel.capability.tabos":"TABOS","move.amr.rightPanel.common.cancel":"취소","move.amr.rightPanel.common.clear":"해제","move.amr.rightPanel.common.connected":"연결됨","move.amr.rightPanel.common.created":"생성일","move.amr.rightPanel.common.delete":"삭제","move.amr.rightPanel.common.discard":"버리기","move.amr.rightPanel.common.disconnected":"연결 안 됨","move.amr.rightPanel.common.fail":"실패","move.amr.rightPanel.common.false":"false","move.amr.rightPanel.common.keepEditing":"계속 편집","move.amr.rightPanel.common.mode.auto":"자동","move.amr.rightPanel.common.mode.manual":"수동","move.amr.rightPanel.common.none":"없음","move.amr.rightPanel.common.normal":"정상","move.amr.rightPanel.common.reset":"초기화","move.amr.rightPanel.common.save":"저장","move.amr.rightPanel.common.saveChanges":"변경사항 저장","move.amr.rightPanel.common.saving":"저장 중...","move.amr.rightPanel.common.select":"선택","move.amr.rightPanel.common.settings":"설정","move.amr.rightPanel.common.speed":"속도","move.amr.rightPanel.common.stop":"중지","move.amr.rightPanel.common.trig":"감지","move.amr.rightPanel.common.triggered":"감지됨","move.amr.rightPanel.common.true":"true","move.amr.rightPanel.controlPanel.accelDegS2":"가속도 (°/s²)","move.amr.rightPanel.controlPanel.accelMs2":"가속도 (m/s²)","move.amr.rightPanel.controlPanel.angularMotion.line1":"회전","move.amr.rightPanel.controlPanel.angularMotion.line2":"이동","move.amr.rightPanel.controlPanel.axis":"축","move.amr.rightPanel.controlPanel.button.description":"방향 버튼으로 로봇을 제어합니다","move.amr.rightPanel.controlPanel.currentPose":"현재: ({{x}}, {{y}}, {{yaw}}°)","move.amr.rightPanel.controlPanel.decelDegS2":"감속도 (°/s²)","move.amr.rightPanel.controlPanel.decelMs2":"감속도 (m/s²)","move.amr.rightPanel.controlPanel.executeMove":"이동 실행","move.amr.rightPanel.controlPanel.left":"왼쪽","move.amr.rightPanel.controlPanel.linear.description":"방향과 거리로 로봇을 이동합니다","move.amr.rightPanel.controlPanel.linearMotion.line1":"직선","move.amr.rightPanel.controlPanel.linearMotion.line2":"이동","move.amr.rightPanel.controlPanel.moveToPoint":"포인트로 이동","move.amr.rightPanel.controlPanel.point.description":"지정 좌표로 로봇을 이동합니다","move.amr.rightPanel.controlPanel.right":"오른쪽","move.amr.rightPanel.controlPanel.speedDegS":"속도 (°/s)","move.amr.rightPanel.controlPanel.speedMs":"속도 (m/s)","move.amr.rightPanel.controlPanel.tab.button":"버튼","move.amr.rightPanel.controlPanel.tab.linear":"직선","move.amr.rightPanel.controlPanel.tab.point":"포인트","move.amr.rightPanel.controlPanel.targetM":"목표 (m)","move.amr.rightPanel.controlPanel.transparency":"투명도","move.amr.rightPanel.dock.action.dock":"도킹","move.amr.rightPanel.dock.action.undock":"도킹 해제","move.amr.rightPanel.dock.action.resume":"재시작","move.amr.rightPanel.dock.action.pause":"일시정지","move.amr.rightPanel.dock.operation.charge":"충전","move.amr.rightPanel.dock.operation.description":"Dock / Undock 버튼으로 도킹 상태를 제어합니다.","move.amr.rightPanel.dock.operation.dock":"도킹","move.amr.rightPanel.dock.operation.motion":"동작 제어","move.amr.rightPanel.dock.operation.title":"충전 도킹 작업","move.amr.rightPanel.dock.retryCount":"재시도 횟수","move.amr.rightPanel.dock.status.dock":"도킹","move.amr.rightPanel.dock.status.move":"이동","move.amr.rightPanel.dock.status.title":"충전 도킹 상태","move.amr.rightPanel.dock.status.undocked":"도킹 해제","move.amr.rightPanel.dock.step.checkCharge":"충전 확인","move.amr.rightPanel.dock.step.complete":"완료","move.amr.rightPanel.dock.step.docking":"도킹 중","move.amr.rightPanel.hud.autoMove":"자동 이동","move.amr.rightPanel.hud.imuSensor":"IMU 센서","move.amr.rightPanel.hud.inlierError":"IE","move.amr.rightPanel.hud.inlierRatio":"IR","move.amr.rightPanel.hud.localization":"위치 인식","move.amr.rightPanel.hud.robotTransform":"로봇 위치","move.amr.rightPanel.hud.speed":"속도","move.amr.rightPanel.hud.status.busy":"진행 중","move.amr.rightPanel.hud.status.error":"오류","move.amr.rightPanel.hud.status.fail":"실패","move.amr.rightPanel.hud.status.good":"정상","move.amr.rightPanel.hud.status.move":"이동 중","move.amr.rightPanel.hud.status.none":"없음","move.amr.rightPanel.hud.status.notReady":"준비 안 됨","move.amr.rightPanel.hud.status.pause":"일시정지","move.amr.rightPanel.hud.status.success":"성공","move.amr.rightPanel.map.dialog.discardMapping.content":"매핑 탭을 벗어나면 현재 매핑 세션이 버려집니다.","move.amr.rightPanel.map.dialog.discardMapping.leaveMenuContent":"맵 메뉴를 벗어나면 현재 매핑 세션이 버려집니다.","move.amr.rightPanel.map.dialog.discardMapping.loadMapContent":"다른 맵을 불러오면 현재 매핑 세션이 버려집니다.","move.amr.rightPanel.map.dialog.discardMapping.loadYes":"버리고 불러오기","move.amr.rightPanel.map.dialog.discardMapping.title":"매핑 변경사항을 버릴까요?","move.amr.rightPanel.map.dialog.discardMapping.yes":"버리고 이동","move.amr.rightPanel.map.erasing.descriptionLine1":"뷰포트에서 포인트를 선택해","move.amr.rightPanel.map.erasing.descriptionLine2":"맵에서 제거합니다.","move.amr.rightPanel.map.erasing.eraseMode":"지우기 모드","move.amr.rightPanel.map.erasing.eraseSelectedArea":"선택 영역 지우기","move.amr.rightPanel.map.erasing.eraserRadius":"지우개 반경","move.amr.rightPanel.map.erasing.releaseSelectedPoints":"선택 포인트 해제","move.amr.rightPanel.map.info.lastModified":"최근 수정일","move.amr.rightPanel.map.info.mapBoundaries":"맵 경계","move.amr.rightPanel.map.info.mapName":"맵 이름","move.amr.rightPanel.map.info.nodes":"노드","move.amr.rightPanel.map.info.pointCloud":"포인트 클라우드","move.amr.rightPanel.map.info.pts":"{{count}} pts","move.amr.rightPanel.map.info.statistics":"통계","move.amr.rightPanel.map.info.totalArea":"전체 면적","move.amr.rightPanel.map.info.xRange":"X 범위","move.amr.rightPanel.map.info.yRange":"Y 범위","move.amr.rightPanel.map.loadDialog.closeBackdrop":"맵 불러오기 다이얼로그 배경 닫기","move.amr.rightPanel.map.loadDialog.current":"현재","move.amr.rightPanel.map.loadDialog.currentMap":"현재 맵","move.amr.rightPanel.map.loadDialog.description":"에디터에 불러올 맵을 선택하세요","move.amr.rightPanel.map.loadDialog.loadSelectedMap":"선택한 맵 불러오기","move.amr.rightPanel.map.loadDialog.modified":"수정일","move.amr.rightPanel.map.loadDialog.noMapsFound":"맵을 찾을 수 없습니다","move.amr.rightPanel.map.loadDialog.searchPlaceholder":"맵 이름으로 검색","move.amr.rightPanel.map.loadDialog.size":"크기","move.amr.rightPanel.map.loadDialog.title":"맵 불러오기","move.amr.rightPanel.map.loadDialog.tryDifferentSearch":"다른 검색어를 입력해보세요","move.amr.rightPanel.map.mapping.buildingKeyframes":"맵 키프레임을 생성 중입니다...","move.amr.rightPanel.map.mapping.canSaveAsNewMap":"현재 기록을 새 맵으로 저장할 수 있습니다.","move.amr.rightPanel.map.mapping.cannotSaveRecording":"이 기록은 저장할 수 없습니다.","move.amr.rightPanel.map.mapping.cannotSaveYet":"아직 저장할 수 없음","move.amr.rightPanel.map.mapping.captureStatus":"캡처 상태","move.amr.rightPanel.map.mapping.clickStartMapping":"매핑 시작을 눌러","move.amr.rightPanel.map.mapping.discarding":"버리는 중...","move.amr.rightPanel.map.mapping.keyframePoints":"키프레임 포인트","move.amr.rightPanel.map.mapping.keyframeRequired":"저장하려면 최소 1개 이상의 키프레임이 필요합니다.","move.amr.rightPanel.map.mapping.keyframesReceived":"수신된 키프레임","move.amr.rightPanel.map.mapping.mapReadyToSave":"맵을 저장할 수 있습니다.","move.amr.rightPanel.map.mapping.noKeyframeCaptured":"캡처된 키프레임 없음","move.amr.rightPanel.map.mapping.noKeyframeReceived":"수신된 키프레임이 없습니다.","move.amr.rightPanel.map.mapping.points":"{{count}} points","move.amr.rightPanel.map.mapping.readyToMap":"매핑 준비 완료","move.amr.rightPanel.map.mapping.readyToSave":"저장 가능","move.amr.rightPanel.map.mapping.readyToSaveTitle":"저장 준비 완료","move.amr.rightPanel.map.mapping.recordingActive":"녹화 중","move.amr.rightPanel.map.mapping.result":"결과","move.amr.rightPanel.map.mapping.saveStatus":"저장 상태","move.amr.rightPanel.map.mapping.startMapping":"매핑 시작","move.amr.rightPanel.map.mapping.toBegin":"시작하세요","move.amr.rightPanel.map.saveDialog.closeBackdrop":"맵 저장 다이얼로그 배경 닫기","move.amr.rightPanel.map.saveDialog.description":"유효한 맵 이름을 입력하고 현재 매핑 결과를 저장하세요.","move.amr.rightPanel.map.saveDialog.error.duplicateName":"{{name}}은 이미 존재합니다. 다른 이름을 사용해 주세요.","move.amr.rightPanel.map.saveDialog.error.invalidChars":"맵 이름은 한글/영문, 숫자, 하이픈, 언더스코어만 사용할 수 있습니다.","move.amr.rightPanel.map.saveDialog.error.loadFailed":"맵은 저장되었지만 불러오기에 실패했습니다. 수동으로 불러와 주세요.","move.amr.rightPanel.map.saveDialog.error.minLength":"맵 이름은 최소 3자 이상이어야 합니다.","move.amr.rightPanel.map.saveDialog.error.required":"맵 이름을 입력해 주세요.","move.amr.rightPanel.map.saveDialog.error.saveError":"맵 저장 중 오류가 발생했습니다.","move.amr.rightPanel.map.saveDialog.error.saveFailed":"맵 저장에 실패했습니다. 다시 시도해 주세요.","move.amr.rightPanel.map.saveDialog.nameRule":"한글/영문, 숫자, 하이픈, 언더스코어만 사용할 수 있습니다.","move.amr.rightPanel.map.saveDialog.placeholder":"예: Factory_Floor_Building_A","move.amr.rightPanel.map.saveDialog.saveMap":"맵 저장","move.amr.rightPanel.map.saveDialog.title":"포인트 클라우드 맵 저장","move.amr.rightPanel.map.tab.erasing":"지우기","move.amr.rightPanel.map.tab.info":"정보","move.amr.rightPanel.map.tab.mapping":"매핑","move.amr.rightPanel.marker.teachTarget":"마커 티칭","move.amr.rightPanel.marker.camIdShort":"cam {{id}}","move.amr.rightPanel.marker.captureCurrentPose":"현재 위치 캡처","move.amr.rightPanel.marker.captured":"캡처됨","move.amr.rightPanel.marker.capturedPose":"캡처된 위치","move.amr.rightPanel.marker.foundCount":"{{count}}개 발견","move.amr.rightPanel.marker.markerId":"마커 ID","move.amr.rightPanel.marker.markerSize":"마커 크기 (m)","move.amr.rightPanel.marker.markerType":"마커 타입","move.amr.rightPanel.marker.mount":"장착 위치","move.amr.rightPanel.marker.mount.floor":"바닥","move.amr.rightPanel.marker.mount.wall":"벽","move.amr.rightPanel.marker.moveRobotThenCapture":"목표 위치로 이동한 뒤 캡처하세요.","move.amr.rightPanel.marker.noPose":"pose 없음","move.amr.rightPanel.marker.noRegisteredMarkers":"등록된 마커가 없습니다.","move.amr.rightPanel.marker.notFound":"찾을 수 없음","move.amr.rightPanel.marker.pressScanToStart":"스캔을 눌러 시작하세요.","move.amr.rightPanel.marker.registerId":"id {{id}} 등록","move.amr.rightPanel.marker.registerMarker":"마커 등록","move.amr.rightPanel.marker.saveTarget":"목표 저장","move.amr.rightPanel.marker.scan":"스캔","move.amr.rightPanel.marker.scanning":"스캔 중...","move.amr.rightPanel.marker.scanningForMarkers":"마커를 스캔 중입니다...","move.amr.rightPanel.marker.tab.register":"등록","move.amr.rightPanel.marker.tab.teaching":"티칭","move.amr.rightPanel.marker.markerScan":"마커 스캔","move.amr.rightPanel.marker.markerStatus":"마커 상태","move.amr.rightPanel.marker.targetMarker":"목표 마커","move.amr.rightPanel.marker.targetName":"목표 이름","move.amr.rightPanel.marker.targetNamePlaceholder":"예: Workbench","move.amr.rightPanel.menu.map":"맵","move.amr.rightPanel.menu.marker":"마커","move.amr.rightPanel.menu.monitor":"모니터","move.amr.rightPanel.menu.topology":"토폴로지","move.amr.rightPanel.monitor.tab.capability":"기능","move.amr.rightPanel.monitor.tab.dock":"도킹","move.amr.rightPanel.monitor.tab.overview":"개요","move.amr.rightPanel.monitor.tab.pdu":"PDU","move.amr.rightPanel.monitor.tab.task":"작업","move.amr.rightPanel.overview.battery.chargeLevel":"충전량","move.amr.rightPanel.overview.battery.title":"배터리","move.amr.rightPanel.overview.buildInfo.branch":"브랜치","move.amr.rightPanel.overview.buildInfo.commit":"커밋","move.amr.rightPanel.overview.buildInfo.buildDate":"빌드 일시","move.amr.rightPanel.overview.buildInfo.buildUser":"빌드 사용자","move.amr.rightPanel.overview.buildInfo.title":"빌드 정보","move.amr.rightPanel.overview.localization.cursor":"커서","move.amr.rightPanel.overview.localization.description":"커서 위치를 초기 위치 추정값으로 사용합니다.","move.amr.rightPanel.overview.localization.positionTracking":"위치 추적","move.amr.rightPanel.overview.localization.semiAutoInit":"반자동 초기화","move.amr.rightPanel.overview.localization.start":"위치 인식 시작","move.amr.rightPanel.overview.localization.title":"위치 인식 상태","move.amr.rightPanel.overview.moveStatus.autoMove":"자동 이동","move.amr.rightPanel.overview.moveStatus.operationMode":"운영 모드","move.amr.rightPanel.overview.moveStatus.title":"이동 상태","move.amr.rightPanel.overview.robotTransform.position":"위치","move.amr.rightPanel.overview.robotTransform.rotation":"회전","move.amr.rightPanel.overview.robotTransform.title":"로봇 위치","move.amr.rightPanel.pdu.charge":"충전","move.amr.rightPanel.pdu.chargeContact":"충전 접점","move.amr.rightPanel.pdu.detect":"감지","move.amr.rightPanel.pdu.dock":"도킹","move.amr.rightPanel.pdu.dockId":"도킹 ID","move.amr.rightPanel.pdu.dockResult":"도킹 결과","move.amr.rightPanel.pdu.emergencyStop":"비상 정지 (EMO)","move.amr.rightPanel.pdu.lidarField":"Lidar 필드","move.amr.rightPanel.pdu.motor":"모터","move.amr.rightPanel.pdu.motorStatus":"모터 상태","move.amr.rightPanel.pdu.opMode":"운영 모드","move.amr.rightPanel.pdu.opModeRestoration":"운영 모드 복구","move.amr.rightPanel.pdu.safety.bumper":"범퍼","move.amr.rightPanel.pdu.safety.fieldMismatch":"필드 불일치","move.amr.rightPanel.pdu.safety.interlock":"인터락","move.amr.rightPanel.pdu.safety.measMismatch":"측정 불일치","move.amr.rightPanel.pdu.safety.obstacle":"장애물 감지","move.amr.rightPanel.pdu.safety.overSpeed":"과속","move.amr.rightPanel.pdu.safetyRecovery":"안전 복구","move.amr.rightPanel.task.currentNode":"현재 노드","move.amr.rightPanel.task.duration":"소요 시간","move.amr.rightPanel.task.idle":"대기","move.amr.rightPanel.task.lastUpdated":"최근 업데이트","move.amr.rightPanel.task.pathHistory":"경로 이력","move.amr.rightPanel.task.status":"상태","move.amr.rightPanel.task.targetNode":"목표 노드","move.amr.rightPanel.topology.add.addNode":"노드 추가","move.amr.rightPanel.topology.add.atCursorPosition":"커서 위치","move.amr.rightPanel.topology.add.atRobotPosition":"로봇 위치","move.amr.rightPanel.topology.add.description":"아래 옵션을 선택하고 원하는 위치에 노드를 추가하세요.","move.amr.rightPanel.topology.add.selectNodeType":"1. 노드 타입 선택","move.amr.rightPanel.topology.add.selectPlacement":"2. 배치 위치 선택","move.amr.rightPanel.topology.add.title":"노드 추가","move.amr.rightPanel.topology.dialog.discardContent":"저장하지 않은 토폴로지 변경사항을 버릴까요?","move.amr.rightPanel.topology.edit.connectedLinks":"연결된 링크","move.amr.rightPanel.topology.edit.deleteThisLink":"이 링크 삭제","move.amr.rightPanel.topology.edit.features":"특징","move.amr.rightPanel.topology.edit.name":"이름","move.amr.rightPanel.topology.edit.noConnectedLinks":"연결된 링크가 없습니다.","move.amr.rightPanel.topology.edit.nodeId":"노드 ID","move.amr.rightPanel.topology.edit.nodeProperties":"노드 속성","move.amr.rightPanel.topology.edit.selectNodeToEdit":"속성을 편집할 노드를 목록에서 선택하세요.","move.amr.rightPanel.topology.edit.selectedLinkInfo":"선택한 링크 정보","move.amr.rightPanel.topology.edit.stepSize":"스텝 크기","move.amr.rightPanel.topology.edit.thisNode":"이 노드","move.amr.rightPanel.topology.edit.transform":"변환","move.amr.rightPanel.topology.edit.useLinkTab":"이 노드의 링크를 만들려면 Link 탭을 사용하세요.","move.amr.rightPanel.topology.link.avoidRange":"회피 범위","move.amr.rightPanel.topology.link.bidirectional":"양방향","move.amr.rightPanel.topology.link.complete":"전체","move.amr.rightPanel.topology.link.configureDirection":"최소 2개 이상의 노드를 선택한 뒤 방향을 설정하세요.","move.amr.rightPanel.topology.link.creationMode":"링크 생성 모드","move.amr.rightPanel.topology.link.deleteLinks":"링크 삭제","move.amr.rightPanel.topology.link.dir":"방향","move.amr.rightPanel.topology.link.direction":"방향","move.amr.rightPanel.topology.link.linkSelected":"선택 항목 링크","move.amr.rightPanel.topology.link.method":"방식","move.amr.rightPanel.topology.link.modeAvailable":"3개 이상의 노드를 선택하면 모드를 선택할 수 있습니다.","move.amr.rightPanel.topology.link.nodeSelectedCount":"{{count}}개 노드 선택됨","move.amr.rightPanel.topology.link.previewProperties":"{{dir}} / {{method}} / 속도 {{speed}} / 회피 {{avoid}}","move.amr.rightPanel.topology.link.properties":"링크 속성","move.amr.rightPanel.topology.link.safetyField":"안전 필드","move.amr.rightPanel.topology.link.selectAtLeastTwo":"링크를 만들려면 최소 2개 이상의 노드를 선택하세요.","move.amr.rightPanel.topology.link.selectAtLeastTwoShort":"최소 2개 이상의 노드를 선택하세요.","move.amr.rightPanel.topology.link.sequential":"순차","move.amr.rightPanel.topology.link.unidirectional":"단방향","move.amr.rightPanel.topology.link.willCreateCount":"{{count}}개 링크를 생성합니다.","move.amr.rightPanel.topology.link.willCreateNamed":"{{from}}{{connector}}{{to}} 링크를 생성합니다.","move.amr.rightPanel.topology.nodeType.align":"Align","move.amr.rightPanel.topology.nodeType.all":"전체","move.amr.rightPanel.topology.nodeType.goal":"Goal","move.amr.rightPanel.topology.nodeType.route":"Route","move.amr.rightPanel.topology.nodes.deleteCount":"{{count}}개 노드 삭제","move.amr.rightPanel.topology.nodes.empty":"사용 가능한 노드가 없습니다.","move.amr.rightPanel.topology.nodes.noSelected":"선택된 노드가 없습니다.","move.amr.rightPanel.topology.nodes.searchByName":"이름으로 검색","move.amr.rightPanel.topology.nodes.selectedTitle":"선택된 노드","move.amr.rightPanel.topology.nodes.title":"노드","move.amr.rightPanel.topology.tab.add":"추가","move.amr.rightPanel.topology.tab.edit":"편집","move.amr.rightPanel.topology.tab.link":"링크","move.amr.rightPanel.topology.tab.nodes":"노드","move.amr.rightPanel.topology.tab.zone":"존","move.amr.rightPanel.hud.obstacleDetect":"장애물 감지","move.amr.rightPanel.hud.status.detected":"감지","move.amr.rightPanel.hud.status.notDetected":"미감지","move.amr.rightPanel.cameraPanel.empty":"카메라 없음","move.amr.toast.markerScanReject.title":"마커 스캔 불가","move.amr.toast.markerScanReject.localizationUnavailable":"위치 인식 후 마커 스캔을 시작해주세요.","move.amr.rightPanel.cameraPanel.connecting":"카메라 연결 중...","program.interface.mechmind.joints":"조인트","program.interface.mechmind.pose":"위치값","program.interface.mechmind.expected_count":"예상 수","program.interface.mechmind.project_id":"Project ID","program.interface.mechmind.position":"설치 위치","move.amr.rightPanel.marker.dockOffset":"도킹 위치 보정값","move.amr.rightPanel.marker.moveToTarget":"목표로 이동","move.amr.toast.markerRegister.title":"마커 등록 완료","move.amr.toast.markerRegister.success":"마커 #{{markerID}}가 등록되었습니다.","move.amr.toast.markerTeach.title":"목표 저장 완료","move.amr.rightPanel.capability.streamFrequency":"통신 주기 (Hz)","move.amr.rightPanel.topology.edit.nodeidCopied":"노드 ID 복사 완료","move.amr.toast.markerTeach.reject.markerNotVisible":"마커가 보이지 않습니다. 마커를 정면으로 향한 후 다시 시도하세요.","settings.amr.frs.title":"FRS","settings.amr.frs.menu":"FRS 연결","settings.amr.frs.connectionSetting":"연결 설정","settings.amr.frs.connectionStatus":"연결 상태","settings.amr.frs.button.refresh":"새로고침","settings.amr.frs.label.ip":"FRS IP","settings.amr.frs.label.zenohUrl":"Zenoh URL","settings.amr.frs.label.connection":"연결","settings.amr.frs.label.state":"상태","settings.amr.frs.status.connected":"연결됨","settings.amr.frs.status.disconnected":"연결 안 됨","settings.amr.frs.state.none":"없음","settings.amr.frs.state.connecting":"연결 중","settings.amr.frs.state.connected":"연결됨","settings.amr.frs.state.disconnecting":"연결 해제 중","settings.amr.frs.state.reconnecting":"재연결 중","settings.amr.frs.state.error":"오류","settings.amr.frs.state.closed":"닫힘","program.dialog.close_confirm.title":"저장되지 않은 변경사항","program.dialog.close_confirm.content":"저장되지 않은 변경사항이 있습니다. 저장하지 않고 닫으시겠습니까?","program.dialog.close_confirm.yes":"저장하지 않고 닫기","program.dialog.close_confirm.no":"취소","program.options.syncOff":"동기화 끄기","program.options.syncOn":"동기화 켜기","program.field.syncroMode":"동기화 모드","ik.disconnected.title":"로봇 연결 끊김","ik.disconnected.content":"로봇과의 연결이 끊어졌습니다.","login.modal.title.unauthorized":"권한 없음","login.modal.desc.unauthorized":"현재 권한으로는 해당 요청을 처리할 수 없습니다.","move.ghostRobot.title":"고스트 로봇","move.ghostRobot.section.gizmoType":"조작 모드","move.ghostRobot.gizmoType.translate":"이동","move.ghostRobot.gizmoType.rotate":"회전","move.ghostRobot.gizmoType.joint":"조인트","move.ghostRobot.section.axisLimit":"축 선택","move.ghostRobot.section.handleSize":"핸들 크기","move.ghostRobot.section.poseControl":"자세 제어","move.ghostRobot.button.undo":"실행 취소","move.ghostRobot.button.redo":"다시 실행","move.ghostRobot.button.reset":"리셋","move.ghostRobot.section.gizmoSpace":"좌표계","move.ghostRobot.gizmoSpace.world":"글로벌","move.ghostRobot.gizmoSpace.local":"로컬","move.amr.rightPanel.menu.debug":"디버그","move.amr.rightPanel.pdu.safetyIo.pending":"적용 중","move.amr.rightPanel.pdu.safetyIo.read":"조회","move.amr.rightPanel.pdu.safetyIo.outputControl":"출력 제어","move.amr.rightPanel.pdu.safetyIo.apply":"적용","program.changeProgram.title":"변경할 프로그램 선택","program.changeProgram.desc":"프로그램 실행 중간에 변경할 프로그램을 선택하세요.","program.subtask.title":"하위 작업 호출 방식 선택","program.subtask.desc":"하위 작업은 이벤트 스레드에서 실행되지 않습니다.","program.subtask.items.call_sub":"하위 작업 호출","program.subtask.items.copy_sub":"작업 내용 복사","program.subtask.items.switch_sub":"작업 전환 방식으로 호출","program.button.prev":"이전","program.button.next":"다음","program.subtask.select_task":"루틴 선택","program.subtask.select_program":"프로그램 선택","program.subTaskModal.title":"서브 태스크 이름: {{name}}","program.subTaskModal.desc":"현재 실행중인 서브 태스크의 진행 상황을 보여드립니다.","program.field.label.connectionPort":"연결 포트","program.field.label.deviceId":"디바이스 ID","program.field.label.functionList":"기능 목록","program.field.label.gripperType":"그리퍼 타입","program.field.label.initialize":"초기화","program.field.label.motorType":"모터 타입","program.field.label.controlMode":"제어 모드","program.gripper.option.currBasePos":"전류 기반 위치","program.section.title.setGoalCurrent":"목표 전류 설정","program.section.title.setGoalPos":"목표 위치 설정","program.section.title.setGoalPosSpdForce":"목표 위치/속도/힘 설정","program.section.title.setGoalPosForce":"목표 위치/힘 설정","program.section.title.action":"구동","program.gripper.option.functionCall":"명령 호출","program.gripper.option.reset":"리셋","program.gripper.option.suction":"흡입 (Suction)","program.gripper.option.release":"배출 (Release)","program.gripper.option.hold":"홀드 (Hold)","program.gripper.option.laserOn":"레이저 켜기","program.gripper.option.laserOff":"레이저 끄기","program.gripper.option.setZeroPos":"영점 자세로 설정","program.gripper.option.facotryReset":"공장 초기화","program.field.label.targetCurrent":"목표 전류","program.field.label.targetPosition":"목표 위치","program.field.label.targetSpeed":"목표 속도","program.field.label.targetForce":"목표 힘","program.field.label.targetWidth":"목표 너비","program.field.label.initializeType":"초기화 타입","program.gripper.option.simpleInit":"심플 초기화","program.gripper.option.fullInit":"전체 초기화","program.gripper.option.inward":"안쪽","program.gripper.option.outward":"바깥쪽","program.field.label.fingerOrient":"핑거 방향","program.field.label.fingerLength":"핑거 길이","program.field.label.fingerTipWidth":"핑거 팁 너비","program.gripper.option.extGrip":"외부 그립","program.gripper.option.interGrip":"내부 그립","program.gripper.option.stop":"정지","program.gripper.option.grip":"그립","program.gripper.option.move":"이동","program.field.label.gripDirection":"그립 방향","program.field.label.moveType":"구동 타입","program.field.label.fingerPosition":"핑거 위치","program.field.label.fingerDiameter":"핑거 직경","program.field.label.gripType":"그립 유형","program.field.label.powerConsumption":"전력 소비율","program.field.label.chFunction":"채널 {{msg}} 함수","program.field.label.chPressure":"채널 {{msg}} 압력","program.field.label.cmdMode":"명령어 모드","program.field.label.magneticStrength":"자력 세기","program.gripper.option.none":"사용 안함","program.field.label.siliconModel":"실리콘 모델","program.field.label.gripMode":"그립 모드","program.gripper.option.use":"사용","program.gripper.option.notUse":"사용하지 않음","program.gripper.option.active":"활성","program.gripper.option.ignore":"무시","program.field.label.channel":"채널","program.field.label.pressure":"압력","program.field.label.timeOutput":"시간 출력","program.field.label.rpmDeviLevel":"RPM 편차 레벨","program.field.label.vibLimitLevel":"진동 제한 레벨","program.gripper.option.motorStop":"모터 정지","program.gripper.option.motorStart":"모터 기동","program.gripper.option.ledOff":"LED 끄기","program.gripper.option.ledOn":"LED 켜기","program.field.label.targetRPM":"목표 RPM","program.field.label.productModel":"제품 모델","program.section.title.setParam":"파라미터 설정","program.field.label.force":"힘","program.section.title.gotoTarget":"타겟으로 이동","maintenance.field.label.boardNumber":"보드 번호","maintenance.title.jointInfo":"조인트 정보","maintenance.title.jointDqAxis":"조인트 DQ축 엔코더","maintenance.title.encoderZero":"엔코더 영점","maintenance.title.sensorReset":"센서 리셋","maintenance.title.brakeControl":"브레이크 제어","maintenance.field.label.brakeOption":"브레이크 옵션","maintenance.title.currentControl":"전류 제어","maintenance.title.positionControl":"위치 제어","maintenance.title.robotArmPowerCtrl":"로봇 팔 전원 제어","maintenance.button.powerOff":"전원 끄기","maintenance.button.powerOn":"전원 켜기","maintenance.title.robotArmInfo":"로봇 팔 정보","maintenance.button.jointsInfo":"전체 조인트 정보","maintenance.title.emcHandGuiding":"비상 직접 교시","maintenance.button.startFunction":"기능 시작","maintenance.title.boardIdChange":"보드 ID 변경","maintenance.field.label.chNumber":"채널 번호","maintenance.field.label.targetNumber":"타겟 번호","maintenance.title.canMsgCheck":"CAN 메시지 확인","maintenance.field.label.msgOption":"메시지 옵션","maintenance.button.check":"확인","maintenance.options.controlBox":"제어박스","maintenance.options.cbRobot":"제어박스 + 로봇","maintenance.title.shortCircuitCheck":"DC 전원 버스 단락 확인","maintenance.title.forceBleederOn":"블리더 강제 켜기","maintenance.field.label.time":"동작 시간","maintenance.button.execute":"실행","maintenance.title.update":"SW 업데이트","maintenance.sub-title.update":"각 SW의 빌드 파일을 업로드하면 파일명에서 버전을 추출합니다. 같은 SW의 여러 대는 한 번에 업데이트되며, 동작 중인 장비는 자동으로 제외됩니다.","maintenance.update.manipulate.description":"협동로봇 제어를 담당하는 소프트웨어","maintenance.update.amr.description":"AMR 제어 소프트웨어 (SLAMNAV2)","maintenance.update.rby1.description":"RBY1 제어 소프트웨어","maintenance.update.vision.description":"비전 소프트웨어","maintenance.update.muscat.description":"Rainbow Robotics 로봇 미들웨어 플랫폼","maintenance.update.web-ui.description":"Muscat 웹 사용자 인터페이스","program.interface.mechmind.recipe_id":"Recipe ID","program.button.vision":"비전","move.panel.zoomOperation":"확대/축소","move.panel.cameraView":"카메라 뷰","move.panel.trajectory":"궤적 그리기","move.panel.drag":"로봇 드래그","move.panel.cameraViewOption.front":"정면 뷰","move.panel.cameraViewOption.left":"좌측 뷰","move.panel.cameraViewOption.right":"우측 뷰","move.panel.cameraViewOption.bottom":"하단 뷰","move.panel.cameraViewOption.top":"상단 뷰","move.panel.cameraViewOption.back":"후면 뷰","move.panel.cameraViewOption.reverse":"반전(상하 반전) 뷰","login.toast.msg.error.approve":"승인 요청 처리 중 오류가 발생했습니다.","login.toast.msg.error.deny":"거절 요청 처리 중 오류가 발생했습니다.","login.toast.title.error":"로그인 요청 오류","login.toast.title.fail":"로그인 요청 처리 실패","login.toast.msg.fail.already_processed":"이미 처리된 요청입니다.","move.ghostRobot.gizmoType.surface":"표면","move.ghostRobot.surface.filter.free":"자유","move.ghostRobot.surface.filter.plane":"평면","move.ghostRobot.surface.filter.cylinder":"원통","move.ghostRobot.surface.showRings":"구멍 표시","plugin.button.install":"설치","plugin.button.uninstall":"제거","plugin.button.enable":"활성화","plugin.button.disable":"비활성화","plugin.button.update":"업데이트","plugin.toast.title.installed":"플러그인 설치","plugin.toast.title.uninstalled":"플러그인 삭제","plugin.toast.content.installed":"{{name}}' 을(를) 설치 하였습니다","plugin.toast.content.uninstalled":"{{name}}' 을(를) 삭제 하였습니다","plugin.button.pluginList":"플러그인 목록","plugin.tab.detailInfo":"세부정보","plugin.tab.logs":"로그","plugin.log.find.placeholder":"로그 검색","plugin.log.find.noResults":"결과 없음","plugin.log.find.invalidRegex":"잘못된 정규식","plugin.log.find.matchCase":"대/소문자 구분","plugin.log.find.wholeWord":"단어 단위","plugin.log.find.regex":"정규식 사용","plugin.log.find.prev":"이전 결과","plugin.log.find.next":"다음 결과","plugin.log.placeholder.range":"기간 선택","plugin.log.status.live":"실시간","plugin.log.status.paused":"일시정지","plugin.log.status.range":"조회 구간","plugin.log.status.lastReceived":"마지막 수신 {{time}}","plugin.log.status.lines":"{{count}}줄","plugin.log.newLines":"새 로그 {{count}}줄","plugin.log.button.pause":"일시정지","plugin.log.button.resume":"재개","plugin.log.button.backToLive":"실시간","plugin.log.button.retry":"다시 시도","plugin.log.button.download":"TXT 다운로드","plugin.log.noData":"로그가 없습니다.","plugin.log.error":"로그를 불러오지 못했습니다.","plugin.detail.label.identifier":"식별자","plugin.detail.label.lastUpdated":"마지막으로 업데이트한 날짜","plugin.detail.title.moreInfo":"더 많은 정보","plugin.detail.label.published":"등록일","plugin.detail.label.lastReleased":"마지막 릴리스일","plugin.detail.label.author":"제작자","plugin.preview.noCommands":"플러그인으로 원하는 커맨드를 추가해보세요.","program.treeItem.replaceDetail.title":"상세 보기 교체","program.treeItem.replaceDetail.toCommandList":"명령어 목록 리스트로 진입하시겠습니까?","program.treeItem.replaceDetail.toOtherItem":"{{fromName}} 상세 보기를 닫고 {{toName}} 상세 보기를 진입하시겠습니까?","program.treeItem.replaceDetail.unsavedNotice":"현재 변경사항은 저장되지 않을 수 있습니다.","settings.amr.docking.chargeType.contactDesc":"접촉 충전","settings.amr.docking.chargeType.wirelessDesc":"무선 충전","program.work.toast.copyNotAllowed.title":"복사/잘라내기 불가","program.work.toast.copyNotAllowed.content":"동일한 작업 내의 명령만 복사/잘라내기 할 수 있습니다.","program.work.toast.commandNotFound":"추가할 명령을 찾을 수 없습니다.","program.work.toast.postProgramOnlyOne":"PostProgram 명령은 하나만 추가할 수 있습니다.","program.work.toast.preProgramOnlyOne":"PreProgram 명령은 하나만 추가할 수 있습니다.","program.work.toast.fixedCommandCopyNotAllowed":"PreProgram, PostProgram 명령은 복사/잘라내기 할 수 없습니다.","program.work.toast.notAllowedInParent":"{{parentName}} 안에 {{childName}}을(를) 추가할 수 없습니다.","program.work.toast.postProgramMainTaskOnly":"PostProgram 명령은 메인 작업에만 추가할 수 있습니다.","program.work.toast.preProgramMainTaskOnly":"PreProgram 명령은 메인 작업에만 추가할 수 있습니다.","program.work.toast.allowedParentsOnly":"{{name}}은(는) {{parents}} 안에만 추가할 수 있습니다.","program.work.toast.strictParentRestricted":"상위 명령 제한으로 인해 {{name}}을(를) 추가할 수 없습니다.","program.work.toast.subtreePasteThreadOnly":"서브트리로 붙여넣기하려면 쓰레드 명령을 선택해서 복사해야 합니다.","program.work.toast.threadMaxLimit":"쓰레드는 최대 {{count}}개까지만 추가가 가능합니다.","program.work.toast.pasteDifferentTask":"복사한 명령의 작업이 붙여넣을 작업과 다릅니다.","program.work.toast.subtreeMoveSameMainTaskOnly":"서브트리 이동은 동일한 메인 작업 내에서만 가능합니다.","program.work.toast.parentDisabled":"상위 명령이 비활성화되어 있습니다. 먼저 상위 명령을 활성화한 후 다시 시도해주세요.","program.work.toast.groupFirstItemDisabled":"{{name}}'가 비활성화되어 있습니다. 먼저 '{{name}}'를 활성화한 후 다시 시도해주세요.","program.work.toast.copyThreadOnly":"복사한 명령 중에 쓰레드 명령이 아닌 명령이 있습니다.","program.work.toast.copyRequireParent":"복사한 명령 중에 상위 명령이 필수인 명령이 있습니다.","program.work.toast.pasteNotAllowedInParent":"{{parentMethod}} 명령 안에 현재 복사한 내용을 붙여넣을 수 없습니다.","program.work.toast.pasteAllowedParentsOnly":"{{name}} 명령은 {{parents}} 명령 안에만 붙여넣기가 가능합니다.","header.confirm.goToDashboard.title":"로봇 연결 화면으로 이동","header.confirm.goToDashboard.content":"로봇 연결 화면으로 이동하면 현재 화면에서 나가게 됩니다. 이동하시겠습니까?","plugin.tab.registryList":"플러그인 리스트","plugin.tab.installedList":"설치된 리스트","plugin.button.upload":"플러그인 업로드","plugin.desc.noDataMsg":"플러그인을 찾을 수 없습니다.","plugin.search.placeholder":"플러그인 검색 (이름, 설명, 제작자)","message.arrived.info":"[{{swName}}] 알림 메시지가 도착했습니다.","message.arrived.warning":"[{{swName}}] 경고 메시지가 도착했습니다.","message.arrived.error":"[{{swName}}] 오류 메시지가 도착했습니다.","message.arrived.user":"[{{swName}}] 사용자 메시지가 도착했습니다.","message.arrived.debug":"[{{swName}}] 디버그 메시지가 도착했습니다.","message.arrived.general":"[{{swName}}] 일반 메시지가 도착했습니다.","dashboard.status.inDevelopment":"개발중입니다..","program.delete.confirm.title":"프로그램 삭제","program.delete.confirm.content":"{{programName}} 프로그램을 삭제하시겠습니까?","program.delete.toast.successTitle":"프로그램 삭제 성공","program.delete.toast.successContent":"프로그램을 삭제하였습니다.","program.deleted.alert.title":"삭제된 프로그램","program.deleted.alert.content":"삭제된 프로그램입니다.","program.select.notAllowed.title":"선택 불가","program.select.notAllowed.differentParent":"상위 명령이 이미 선택된 명령과 다릅니다.","program.select.notAllowed.selectFirstGroupItem":"그룹 내 첫 번째 명령을 선택해주세요.","program.select.notAllowed.preStep":"Pre Program에 포함된 명령은 Jump 대상으로 선택할 수 없습니다.","program.select.notAllowed.onlyPreStep":"Pre Program 내부 명령은 Pre Program 내부 명령으로만 Jump할 수 있습니다.","program.delete.toast.failTitle":"프로그램 삭제 실패","program.delete.toast.failContent":"프로그램 삭제에 실패하였습니다.","program.load.confirm.content":"{{programName}} 프로그램을 불러오시겠습니까?","program.load.confirm.unsavedNotice":"이전 변경사항은 저장되지 않습니다.","program.load.toast.failTitle":"불러오기 실패","program.load.toast.failContent":"잠시 후 다시 시도해주세요.","program.controller.confirm.changedTitle":"프로그램 변경 확인","program.controller.confirm.changedContent":"현재 프로그램에 변경 사항이 있습니다.\\n저장 후 실행하시겠습니까?","program.controller.reset.title":"프로그램 Reset 확인","program.controller.reset.line1":"프로그램을 Reset 하시겠습니까?","program.controller.reset.line2":"프로그램이 멈추지 않거나 비정상 작동일때 Reset 기능을 사용하면 프로그램 시스템을 초기화 할 수 있습니다.","program.save.toast.successTitle":"프로그램 저장 완료","program.save.toast.successContent":"프로그램이 저장되었습니다.","program.save.confirm.content":"현재 저장한 프로그램을 진행중인 프로그램으로 지정하시겠습니까?","program.save.toast.failTitle":"프로그램 저장 실패","program.save.toast.failContent":"프로그램 저장에 실패하였습니다.","program.modal.title.save":"프로그램 저장","program.modal.desc.save":"프로그램명을 입력하여 변경 사항을 저장하세요.","program.modal.title.create":"새 프로그램 생성","program.modal.desc.create":"빈 프로젝트로 시작하거나 템플릿을 선택하여 새로운 로봇 프로그램을 생성하세요.","program.modal.button.create":"생성","program.modal.label.projectType":"프로그램 타입","program.modal.label.emptyProject":"빈 프로그램","program.modal.desc.emptyProject":"아무것도 없는 빈 프로그램으로 시작합니다.","program.modal.label.importProgram":"프로그램 가져오기","program.modal.desc.importProgram":"업로드한 다른 프로그램 내용을 가져와서 생성합니다.","program.modal.label.uploadProgram":"프로그램 업로드","program.modal.import.placeholder":"클릭하거나 .zip 파일을 끌어다 놓아 업로드하세요","program.modal.upload.invalidFormat":".zip 파일만 업로드할 수 있습니다.","program.monitor.dialog.addVariable.title":"모니터링 변수 추가","program.monitor.dialog.addVariable.content":"모니터링할 변수 이름을 입력해주세요.","program.monitor.button.addVariable":"모니터링 변수 추가","program.dimOverlay.line1":"다른 프로그램이 실행 중 입니다.","program.dimOverlay.line2":"실행중인 프로그램으로 이동하시겠습니까?","program.dimOverlay.notice":"(현재 작성 중인 프로그램이 있다면 저장되지 않습니다.)","program.dimOverlay.button.move":"이동","program.dimOverlay.toast.invalidTask":"존재하지 않는 Task 정보입니다.\\n테스트 중이거나 프로그램 외부에서 실행된 Task일 수 있습니다.","program.beginJoint.modal.title":"로봇 시작 위치 설정","program.beginJoint.modal.description":"먼저 로봇의 관절 위치를 시작 위치로 이동해주세요.","program.beginJoint.confirm.title":"로봇 시작 위치 설정 완료","program.beginJoint.confirm.line1":"로봇의 시작 위치가 설정되었습니다.","program.beginJoint.confirm.line2":"이어서 바로 프로그램을 실행하시겠습니까?","program.beginJoint.confirm.run":"실행","program.beginJoint.button.moveJoint":"시작점 이동","program.ph.select_task":"태스크를 선택해주세요.","login.modal.title.sessionExpired":"세션이 만료되었습니다","login.modal.desc.sessionExpired":"토큰 정보가 만료되었습니다. 로그인 페이지로 이동합니다.","login.modal.button.sessionExpiredConfirm":"확인","common.button.confirm":"확인","common.button.cancel":"취소","move.preview.descriptionLine1":"이곳은 시뮬레이터 영역 입니다.","move.preview.descriptionLine2":"오른쪽에 보이는 패널에 플러그인으로 원하는 메뉴와 컨텐츠를 추가하실 수 있습니다.","move.preview.connectionGuideBefore":"로봇과 연결을 통해 실제 연동 테스트를 진행하시려면","move.preview.connectionGuideAfter":"명령을 진행하실때 로봇 IP와 SDK Token 값을 입력해주세요.","common.unit.seconds":"초","move.trajectory.description":"입력하신 시간(초)동안 궤적이 유지된 후 줄어듭니다.","program.gcode.modal.title":"G-Code 기능 목록","program.gcode.modal.code":"코드","program.gcode.modal.function":"기능","program.gcode.modal.rapidMove":"급속 이동","program.gcode.modal.linearMove":"직선 이동 (지정 속도)","program.gcode.modal.clockwise":"원호 이동 (시계 방향)","program.gcode.modal.counterclockwise":"원호 이동 (반시계 방향)","program.gcode.modal.dwell":"일시정지 (Dwell)","program.gcode.modal.planeXY":"평면 선택 - XY","program.gcode.modal.planeZX":"평면 선택 - ZX","program.gcode.modal.planeYZ":"평면 선택 - YZ","program.gcode.modal.unitInch":"단위 - 인치","program.gcode.modal.unitMillimeter":"단위 - mm (기본)","program.gcode.modal.returnToHomePos":"홈 위치 복귀","program.gcode.modal.absCoordMode":"절대좌표 모드","program.gcode.modal.relCoordMode":"상대좌표 모드","program.gcode.modal.setCurrentCoord":"현재 위치 좌표계 설정","program.gcode.modal.doutOnSync":"디지털 출력 ON (모션 동기화)","program.gcode.modal.doutOffSync":"디지털 출력 OFF (모션 동기화)","program.gcode.modal.doutOnImmediate":"디지털 출력 ON (즉시 실행)","program.gcode.modal.doutOffImmediate":"디지털 출력 OFF (즉시 실행)","notfound.desc":"페이지를 찾을 수 없습니다.","notfound.button.home":"홈으로 이동","alarm.banner.button.hide":"접기","alarm.banner.button.show":"펼치기","alarm.banner.msg.noNotifications":"알림이 없습니다","alarm.banner.title.importantNotification":"중요 알림","alarm.banner.toast.readFailContent":"알림을 읽음 처리하지 못했습니다. 다시 시도해주세요.","alarm.banner.toast.readFailTitle":"알림 확인 처리 실패","alarm.banner.toast.resolvePending":"계속하려면 대기 중인 작업을 처리해주세요.","dashboard.detail.robotNotConnected":"로봇이 연결되지 않았습니다.","move.amr.panel.virtualJoysticks":"가상 조이스틱","move.rby1.accordion.detailControl":"세부 제어","move.rby1.button.batchJointMove":"관절 일괄 이동","move.rby1.button.batchMove":"일괄 이동","move.rby1.button.moveZeroPose":"원점 자세 이동","move.rby1.field.jogStepDeg":"조그 스텝 (deg)","move.rby1.field.minimumTimeSec":"최소 시간 (sec)","move.rby1.modal.batchMoveJoints.title":"관절 일괄 이동","move.tool.modal.title":"TCP 툴 목록 선택","move.userFrame.modal.title":"유저 좌표계 선택","plugin.options.ariaLabel.more":"더보기","plugin.options.ariaLabel.pin":"고정","plugin.options.ariaLabel.unpin":"고정 해제","plugin.popover.ariaLabel.close":"닫기","plugin.options.button.detailInfo":"상세 정보","plugin.options.button.viewLogs":"로그 보기","plugin.options.button.uninstall":"제거","plugin.popover.button.manageInstalled":"설치된 플러그인 관리","plugin.popover.installedList.desc":"사용자가 설치한 플러그인 목록입니다.","plugin.popover.installedList.empty":"설치된 플러그인이 없습니다","plugin.popover.installedList.emptyDesc":"플러그인을 설치하면 이곳에서 상태를 확인하고 자주 쓰는 플러그인을 고정할 수 있습니다.","program.amrStream.field.frequency":"주파수 (Hz)","program.amrStream.field.target":"전송 대상","program.commandList.msg.notFound":"커맨드를 찾을 수 없습니다","program.pointPreview.title":"동작 미리보기","program.toast.title.programError":"프로그램 오류","settings.devices.menu.externalAxis":"부가 축","settings.devices.menu.softwarePlc":"소프트웨어 PLC","settings.general.afterAction.card.actionTypeLabel":"동작 종류","settings.io.label.extDinput":"Ext 디지털 입력","settings.io.label.extDinputPort":"Ext 디지털 입력 포트","settings.io.label.extDoutput":"Ext 디지털 출력","settings.io.label.extDoutputPort":"Ext 디지털 출력 포트","settings.io.label.toolDinput":"Tool 디지털 입력","settings.io.label.toolDinputPort":"Tool 디지털 입력 포트","settings.io.label.toolDoutput":"Tool 디지털 출력","settings.io.label.toolDoutputPort":"Tool 디지털 출력 포트","plugin.detail.label.version":"버전","plugin.detail.label.size":"용량","plugin.detail.title.installation":"설치 세부내역","program.modal.error.duplicateName":"이미 존재하는 프로그램 이름입니다.","program.monitor.dialog.addVariable.label":"변수명","program.desc.loadOrAddNew":"프로그램을 불러오거나 새로 추가해주세요.","program.button.loadProgram":"프로그램 불러오기","program.button.newProgram":"새 프로그램","program.desc.noRobotComponentsFound":"로봇 구성 요소를 찾을 수 없습니다.","settings.io.label.dinput":"디지털 입력","settings.io.label.dinputPort":"디지털 입력 포트","settings.io.label.doutput":"디지털 출력","settings.io.label.doutputPort":"디지털 출력 포트","settings.io.label.delay":"신호 지연 적용값","settings.io.label.count":"횟수","settings.io.label.direction":"방향","settings.devices.label.type":"타입","maintenance.safety.desc.noData":"안전 데이터가 없습니다","maintenance.safety.desc.search":"검색어를 입력해주세요.","settings.joint.menu.bigInputError":"Big Error & Input Error","settings.joint.label.bigErrorPulse":"Big Error Pulse","settings.joint.label.inputErrorPulse":"Input Error Pulse","settings.joint.label.gain":"게인","maintenance.update.modal.title.confirmVersion":"업로드 버전 확인","maintenance.update.modal.content.confirmVersion":"[{{category}}]의 SW 업데이트 버전이 아래와 같습니까?","maintenance.update.modal.content.confirmVersionSub":"다르다면 원하시는 버전으로 수정해주세요.","maintenance.update.toast.title.unavailable":"업데이트 불가","maintenance.update.toast.title.complete":"업데이트 완료","maintenance.update.toast.content.updateSuccess":"{{names}} 업데이트에 성공했습니다. 적용까지 1~3분 가량 소요될 수 있습니다.","maintenance.update.dialog.title.result":"업데이트 결과","maintenance.update.dialog.label.succeeded":"성공: {{names}}","maintenance.update.dialog.label.failed":"실패: {{names}}","maintenance.update.label.unitCount":"{{count}}대","maintenance.update.label.autoUpdate":"자동 업데이트","maintenance.update.button.execute":"업데이트","maintenance.update.button.uploading":"업로드 중... {{progress}}%","maintenance.update.button.uploadBuildFile":"빌드 파일 업로드","maintenance.update.label.available":"업데이트 가능","maintenance.update.label.unavailable":"업데이트 불가","program.monitor.dialog.placeholder.search":"모니터링할 변수 입력","program.box.photoneo":"Photoneo 3D 인터페이스","program.box.initialize_configuration":"초기화 설정","program.box.scan_configuration":"스캔 설정","program.box.get_object_pose_configuration":"오브젝트 포즈 조회 설정","program.box.get_trajectory_configuration":"궤적 조회 설정","program.box.solution_change_configuration":"솔루션 변경 설정","program.box.solution_start_configuration":"솔루션 시작 설정","program.box.solution_stop_configuration":"솔루션 정지 설정","program.box.solution_ask_configuration":"솔루션 조회 설정","program.interface.photoneo.vision_system_id":"Vision System ID","program.interface.photoneo.start_joint":"시작 조인트","program.interface.photoneo.end_joint":"종료 조인트","program.interface.photoneo.point_variable_name":"포인트 변수 이름","program.interface.photoneo.solution_id":"Solution ID","program.interface.photoneo.current_solution_id":"현재 Solution ID","program.interface.photoneo.position":"설치 위치","program.interface.photoneo.trajectory_start_to_approach":"시작 → 접근","program.interface.photoneo.trajectory_approach_to_grasp":"접근 → 집기","program.interface.photoneo.trajectory_grasp_to_deapproach":"집기 → 이탈","program.interface.photoneo.trajectory_deapproach_to_end":"이탈 → 완료","program.options.photoneo_function.create_connection":"연결 생성","program.options.photoneo_function.initialize":"초기화","program.options.photoneo_function.scan":"스캔","program.options.photoneo_function.get_object_pose":"오브젝트 위치 조회","program.options.photoneo_function.get_trajectory":"궤적 조회","program.options.photoneo_function.solution_change":"솔루션 변경","program.options.photoneo_function.solution_start":"솔루션 시작","program.options.photoneo_function.solution_stop":"솔루션 정지","program.options.photoneo_function.solution_ask":"솔루션 조회","program.box.move_trajectory_configuration":"궤적 이동 설정","program.interface.photoneo.trajectory_name":"궤적 이름","program.options.photoneo_function.move_trajectory":"궤적 이동","move.ghostRobot.desc":"로봇을 드래그하거나 표면을 클릭하여 목표 자세를 설정합니다.","program.box.trajectory_variables":"궤적 구간 변수","program.weaving.modal.title":"위빙 파라미터","program.weaving.modal.trapOddTime":"직선 왕복 이동 시간","program.weaving.modal.trapEvenTime":"우측 끝/중앙/좌측 끝 정지 시간","program.weaving.modal.trapMag1":"+측 (우측) 최대 진폭","program.weaving.modal.trapMag2":"-측 (좌측) 최대 진폭","program.weaving.modal.sineOddTime":"S자형 완만 이동 시간","program.weaving.modal.sineMag1":"+측 진폭","program.weaving.modal.sineMag2":"-측 진폭","program.weaving.modal.polyOddTime":"가감속까지 매끄러운 (5차) 이동 시간","program.weaving.modal.ellipseOddTime":"타원 궤적 진행 (위상 이동) 시간","program.weaving.modal.ellipseEvenTime":"궤적상 정점 정지 시간","program.weaving.modal.ellipseMag1":"Y축 (위빙 방향) 반지름","program.weaving.modal.ellipseMag2":"X축 (깊이 방향) 반지름","program.weaving.modal.8ShapeOddTime":"8자 루프 진행 시간","program.weaving.modal.8ShapeEvenTime":"루프 교차점 부근 정지 시간","program.weaving.modal.8ShapeMag1":"Y폭","program.weaving.modal.8ShapeMag2":"X폭","program.weaving.modal.lissaOddTime":"리사쥬 궤적 진행 시간","program.weaving.modal.lissaEvenTime":"궤적상 정지 시간","program.weaving.modal.lissaPhase":"Y, X축 진동수 배수","program.weaving.modal.cShapeOddTime":"호 (Arc)를 따라 이동하는 시간","program.weaving.modal.cShapeEvenTime":"호의 양 끝/중앙 정지 시간","program.weaving.modal.cShapeMag1":"호의 세로 폭 (곡률 결정)","program.weaving.modal.cShapeMag2":"호의 반지름","program.weaving.modal.diagOddTime":"대각선 이동 시간","program.weaving.modal.diagEvenTime":"대각선 양 끝/중앙 정지 시간","program.weaving.modal.diagMag1":"Y축 이동거리","program.weaving.modal.diagMag2":"X축 이동거리","program.weaving.tooltip.scaleRate":"Magnitude 1/2에 곱해지는 전체 배율입니다.","program.weaving.tooltip.torchDirection":"패턴 전체를 토치(깊이) 방향으로 평행이동한 값 입니다.","program.weaving.tooltip.weavingDirection":"패턴 전체를 좌우(위빙) 방향으로 평행이동한 값 입니다.","program.weaving.tooltip.swingAngle":"위빙 위치에 비례한 토치 자세 스윙 각입니다.","program.weaving.tooltip.distortionAngle":"위빙 평면을 Z축 기준으로 비트는 각도입니다.","move.ghostRobot.surface.filter.requiresCad":"평면·원통은 STL·STP·STEP 파일에서만 사용할 수 있습니다.","move.ghostRobot.surface.unreachable":"도달할 수 없는 위치입니다.","move.ghostRobot.section.moreOptions":"추가 옵션","move.ghostRobot.section.gizmoOffset":"기즈모 오프셋","move.ghostRobot.button.useToolOffset":"툴 값 사용","program.interface.photoneo.ext_axis_notice":"부가축이 있는 경우, 부가축을 제외한 6축에 대한 값만 전달됩니다.","program.options.interface.photoneo":"Photoneo","program.box.pickit":"PICKIT 3D 인터페이스","program.options.interface.pickit":"PICKIT 3D","program.options.pickit_function.connect":"연결 생성","program.options.pickit_function.update_robot_pose":"로봇 자세 업데이트","program.options.pickit_function.check_mode":"모드 확인","program.options.pickit_function.shutdown_system":"시스템 종료","program.options.pickit_function.find_calib_plate":"캘리브레이션 플레이트 찾기","program.options.pickit_function.configure_calib":"캘리브레이션 설정","program.options.pickit_function.compute_calib":"캘리브레이션 계산","program.options.pickit_function.validate_calib":"캘리브레이션 검증","program.options.pickit_function.look_for_objects":"객체 탐색","program.options.pickit_function.look_for_objects_with_retries":"재시도 객체 탐색","program.options.pickit_function.next_object":"다음 객체","program.options.pickit_function.capture_image":"이미지 캡처","program.options.pickit_function.process_image":"이미지 처리","program.options.pickit_function.get_pick_point_data":"피킹 포인트 데이터 가져오기","program.options.pickit_function.configure":"셋업 및 제품 설정","program.options.pickit_function.set_cylinder_dim":"실린더 치수 설정","program.options.pickit_function.save_active_setup":"활성 셋업 저장","program.options.pickit_function.save_active_product":"활성 제품 저장","program.options.pickit_function.build_background":"배경 생성","program.options.pickit_function.save_snapshot":"스냅샷 저장","program.box.update_robot_pose_configuration":"로봇 자세 업데이트 설정","program.box.check_mode_configuration":"모드 확인 설정","program.box.shutdown_system_configuration":"시스템 종료 설정","program.box.find_calib_plate_configuration":"캘리브레이션 플레이트 찾기 설정","program.box.configure_calib_configuration":"캘리브레이션 설정 구성","program.box.compute_calib_configuration":"캘리브레이션 계산 설정","program.box.validate_calib_configuration":"캘리브레이션 검증 설정","program.box.look_for_objects_configuration":"객체 탐색 설정","program.box.look_for_objects_with_retries_configuration":"재시도 객체 탐색 설정","program.box.next_object_configuration":"다음 객체 설정","program.box.capture_image_configuration":"이미지 캡처 설정","program.box.process_image_configuration":"이미지 처리 설정","program.box.get_pick_point_data_configuration":"피킹 포인트 데이터 설정","program.box.pickit_configure_configuration":"셋업 및 제품 설정","program.box.set_cylinder_dim_configuration":"실린더 치수 설정","program.box.save_active_setup_configuration":"활성 셋업 저장 설정","program.box.save_active_product_configuration":"활성 제품 저장 설정","program.box.build_background_configuration":"배경 생성 설정","program.box.save_snapshot_configuration":"스냅샷 저장 설정","program.interface.pickit.position":"설정 위치","program.interface.pickit.pickit_mode":"Pickit 모드","program.interface.pickit.calib_method":"캘리브레이션 방식","program.interface.pickit.calib_mount":"캘리브레이션 마운트","program.interface.pickit.pick_point_name":"피킹 포인트 변수","program.interface.pickit.remaining_count_name":"잔여 개수 변수","program.interface.pickit.model_id_or_type_name":"모델 ID/타입 변수","program.interface.pickit.retry_count":"재시도 횟수","program.interface.pickit.gripper_pose_name":"그리퍼 자세 변수","program.interface.pickit.reference_pick_point_id_name":"참조 피킹 포인트 ID 변수","program.interface.pickit.setup_id":"Setup ID","program.interface.pickit.product_id":"Product ID","program.interface.pickit.cylinder_length":"실린더 길이","program.interface.pickit.cylinder_diameter":"실린더 지름","program.options.pickit_calib_method.single_pose":"싱글 포즈","program.options.pickit_calib_method.multi_pose":"멀티 포즈","program.options.pickit_calib_method.manual":"매뉴얼","program.options.pickit_calib_method.default":"기본값","program.options.mechmind_function.create_connection":"연결 생성","program.options.mechmind_function.set_recipe":"레시피 설정","program.options.mechmind_function.trigger":"트리거","program.options.mechmind_function.trigger_and_read_pose":"트리거 & 자세 읽기","program.options.mechmind_function.read_pose":"자세 읽기","program.button.canBus":"캔 버스","program.options.canBus.connect":"연결","program.options.canBus.disconnect":"연결 해제","program.options.canBus.transmit":"전송","program.box.disconnect_configuration":"연결 해제 설정","program.box.transmit_configuration":"전송 설정","program.field.can_channel":"채널","program.field.can_bitrate":"비트레이트","program.field.can_fd":"캔 FD","program.field.can_data_bitrate":"데이터 비트레이트","program.field.can_receive_own_messages":"자체 송신 메시지 수신","program.field.can_interface":"인터페이스","program.field.can_arbitration_id":"중재 ID","program.field.can_data":"데이터","program.field.can_dlc":"DLC","program.field.can_extended_id":"확장 ID","program.field.can_remote_frame":"원격 프레임","program.field.can_bitrate_switch":"비트레이트 전환","program.field.can_error_frame":"오류 프레임","program.field.can_error_state_indicator":"오류 상태 표시기","program.field.can_timestamp":"타임스탬프","program.field.can_flags":"플래그","program.desc.can.add_data":"쉼표로 구분된 바이트 값(0~255)을 입력하세요.","program.validation.can.data.invalid_array_format":"데이터 배열 형식이 올바르지 않습니다.","program.validation.can.data.integer_only":"각 데이터 값은 쉼표로 구분된 정수여야 합니다.","program.validation.can.data.out_of_range":"각 데이터 값은 {{min}}에서 {{max}} 사이여야 합니다.","program.validation.variableNameRule":"변수 이름은 영문과 언더스코어(_)만 사용할 수 있습니다.","move.toast.performanceWarning.title":"성능 경고","move.toast.performanceWarning.content":"화면 요소가 너무 많아 렌더링 지연이 발생하고 있습니다.","move.bottomBar.complexity.ok":"양호","move.bottomBar.complexity.warning":"보통","move.bottomBar.complexity.danger":"느림","move.bottomBar.complexity.triangles":"삼각형","move.bottomBar.complexity.framerate":"프레임레이트","move.bottomBar.complexity.label":"3D 복잡도","ik.blocked.unreachable.title":"더 이상 도달할 수 없습니다.","ik.blocked.unreachable.content":"팔이 최대로 뻗었습니다. 로봇 쪽으로 당겨보세요.","ik.blocked.unreachableRotate.title":"더 이상 회전할 수 없습니다.","ik.blocked.unreachableRotate.content":"이 자세에서는 목표 방향을 만들 수 없습니다. 위치를 조금 옮겨보세요.","ik.blocked.jointLimit.title":"관절이 한계에 닿았습니다.","ik.blocked.jointLimit.content":"강조된 관절이 한계에 걸렸습니다. 반대 방향으로 움직여보세요.","ik.blocked.singularity.title":"특이 자세입니다.","ik.blocked.singularity.content":"축이 일직선에 가까워 이 방향으로 갈 수 없습니다. 옆으로 움직여보세요.","ik.blocked.branch.title":"자세를 바꿔야 합니다.","ik.blocked.branch.content":"여기서 더 가려면 팔 자세가 크게 바뀌어야 합니다. 다른 경로로 접근해보세요.","ik.blocked.diverged.title":"해를 찾지 못했습니다.","ik.blocked.diverged.content":"계산이 수렴하지 않았습니다. 자세를 조금 바꾼 뒤 다시 시도해보세요.","ik.blocked.axisProximity.title":"베이스 축에 너무 가깝습니다.","ik.blocked.axisProximity.content":"이 지점은 로봇의 회전 중심축에 너무 가까워 닿을 수 없습니다. 로봇에서 조금 더 떨어진 위치로 옮겨보세요.","move.ghostRobot.section.detailedBlockReason":"동작 제한 상세 표시","ik.blocked.dev.candidates.some":"해석해=있음","ik.blocked.dev.candidates.none":"해석해=없음","ik.blocked.dev.clamped.true":"안전반경=초과(클램프)","ik.blocked.dev.clamped.false":"안전반경=정상","ik.blocked.dev.jointLimit":"{{name}}={{val}}° [한계: {{lower}}°, {{upper}}°]","ik.blocked.dev.conditioning":"특이점 조건수={{cond}} (기준: < 0.01)","ik.blocked.dev.jump":"자세도약={{jump}}° (기준: > 30.0°)","ik.blocked.dev.status":"수치상태={{status}}","ik.blocked.dev.path":"솔버경로={{path}}","ik.blocked.dev.path.analytic":"해석해","ik.blocked.dev.path.fallback":"하이브리드(fallback)","ik.blocked.dev.path.numeric":"수치해","settings.tool.flange.title.bootupTool":"부팅 시 사용할 툴 번호 선택","settings.tool.flange.field.label.toolNumber":"툴 번호","settings.tool.flange.title.bootupVoltage":"부팅 시 DC 전압","settings.tool.flange.field.label.dcVoltage":"DC 전압","settings.tool.flange.title.dtButton":"직접 교시 버튼","settings.tool.flange.field.label.workingMode":"동작 모드","settings.tool.flange.options.use":"사용","settings.tool.flange.options.notUse":"사용하지 않음","settings.tool.flange.title.vibrationSensor":"진동(IMU) 센서","move.menu.button.label.assetManager":"워크스페이스","move.modal.workspace.file.button.add":"추가","move.modal.workspace.file.button.cancelUpload":"업로드 취소","move.modal.workspace.file.confirmDelete.content":'"{{name}}"을(를) 정말 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.',"move.modal.workspace.file.confirmDelete.multiContent":"{{count}}개 항목을 정말 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.","move.modal.workspace.button.confirm":"확인","move.modal.workspace.button.deleteSelected":"{{count}}개 삭제","move.modal.workspace.button.select":"선택","move.modal.workspace.button.selectExit":"완료","move.modal.workspace.file.deleteTitle":"모델 삭제","move.modal.workspace.file.dropLabel":"파일을 끌어다 놓아 업로드","move.modal.workspace.file.empty.noAvailable":"3D 파일이 없습니다","move.modal.workspace.file.empty.noFound":"3D 파일을 찾을 수 없습니다","move.modal.workspace.footer.hint":"더블클릭하면 바로 불러옵니다.","move.modal.workspace.file.search.placeholder":"3D 파일 검색...","move.modal.workspace.file.title":"3D 파일 선택","move.modal.workspace.title":"워크스페이스 선택","move.workspace.tab.base":"베이스","move.workspace.title":"워크스페이스","move.workspace.button.continue":"계속","move.workspace.itemList.deleteLabel":"오브젝트 삭제","move.modal.workspace.card.itemCount":"도형 {{shapeCount}}개, 파일 {{fileCount}}개","move.workspace.itemList.empty":"도형이나 파일을 추가해주세요.","move.workspace.jsonSlot.empty":"워크스페이스를 선택하세요","move.workspace.shapeLimitReached":"도형은 최대 5개까지 추가할 수 있습니다.","move.workspace.toast.saveFailed":"워크스페이스 저장에 실패했습니다.","move.workspace.toast.saveSuccess":"워크스페이스를 저장했습니다.","move.workspace.toast.uploadFailed":"파일 업로드에 실패했습니다.","move.modal.workspace.file.preview.error":"미리보기를 불러올 수 없습니다","move.modal.workspace.file.preview.multiSelectUnsupported":"여러 개의 3D 파일을 선택한 경우에는 미리보기가 지원되지 않습니다.","move.modal.workspace.file.preview.selectPrompt":"3D 모델 파일을 선택하면 미리보기가 표시됩니다","move.modal.workspace.file.preview.triangles":"삼각형","move.modal.workspace.file.slotLoading":"로딩 중...","move.workspace.toast.renameFailed":"모델 이름 변경에 실패했습니다.","move.workspace.toast.renameInvalid":"올바른 이름을 입력해주세요.","move.workspace.toast.renameSuccess":"모델 이름이 변경되었습니다.","move.modal.workspace.file.upload.abort":"업로드가 취소되었습니다.","move.modal.workspace.file.upload.duplicateName":"같은 이름의 파일이 이미 존재합니다.","move.workspace.toast.invalidCharacters":"이름에 공백이나 # ? & % 문자를 사용할 수 없습니다.","move.modal.workspace.file.upload.invalidFormat":"지원하지 않는 파일 형식입니다. .stl, .obj, .stp, .step, .dae, .glb만 가능합니다.","move.modal.workspace.file.upload.maxFilesExceeded":"최대 {{count}}개까지 파일을 드래그하여 업로드할 수 있습니다.","move.modal.workspace.file.upload.createFailed":"모델 생성에 실패했습니다. 다시 시도해주세요.","move.modal.workspace.file.upload.tooLarge":"파일 크기가 최대 제한(50MB)을 초과합니다.","move.modal.workspace.file.upload.unknown":"네트워크 오류입니다. 연결을 확인하고 다시 시도해주세요","move.modal.workspace.button.delete":"삭제","move.workspace.properties.translate":"위치","move.workspace.properties.rotate":"회전","move.workspace.properties.scale":"크기","move.modal.workspace.search.placeholder":"워크스페이스 검색...","move.modal.workspace.empty.noAvailable":"워크스페이스가 없습니다","move.modal.workspace.empty.noFound":"워크스페이스를 찾을 수 없습니다","move.workspace.stepFormatWarning.title":".stp/.step 파일 로딩","move.workspace.stepFormatWarning.message":"STEP 형식(.stp, .step) 파일은 로딩 시간이 오래 걸릴 수 있습니다. 기다려주세요.","move.workspace.header.renameLabel":"워크스페이스 이름 변경","move.workspace.header.undo":"되돌리기","move.workspace.header.redo":"다시 실행","move.workspace.header.menu":"워크스페이스 메뉴","move.workspace.header.open":"불러오기","move.workspace.header.createNew":"새로 만들기","move.workspace.header.clearAll":"오브젝트 전체 삭제","move.workspace.header.reset":"마지막 저장 상태로 되돌리기","move.workspace.addMenu.trigger":"오브젝트 추가","move.workspace.addMenu.customFile":"불러온 파일","move.workspace.itemList.title":"오브젝트 리스트","move.workspace.confirm.clearAllTitle":"모든 오브젝트 삭제","move.workspace.confirm.clearAllContent":"워크스페이스의 모든 도형과 파일을 삭제하시겠습니까?","move.workspace.confirm.replaceFileTitle":"불러온 파일을 교체할까요?","move.workspace.confirm.replaceFileContent":"워크스페이스에는 불러온 파일을 1개만 둘 수 있어요. 기존 파일은 제거됩니다.","move.workspace.properties.groupLabel":"기즈모 모드","move.workspace.itemList.hideLabel":"씬에서 숨기기","move.workspace.itemList.showLabel":"씬에 다시 표시","move.workspace.toast.nameDuplicate":"이미 같은 이름의 워크스페이스가 있어요.","move.workspace.toast.saveFailedPartial":"{{count}}개 오브젝트 저장에 실패했습니다.","move.workspace.toast.loadTimeout":'"{{name}}" 불러오기가 너무 오래 걸려 중단했습니다.',"move.modal.workspace.toast.deletePartialFailure":"{{total}}개 오브젝트 중 {{failed}}개 삭제에 실패했습니다.","move.modal.workspace.confirmDelete.title":"워크스페이스 삭제","move.modal.workspace.confirmDelete.content":'"{{name}}" 워크스페이스를 정말 삭제하시겠습니까? 포함된 모든 오브젝트가 함께 삭제되며, 이 작업은 취소할 수 없습니다.',"move.workspace.tab.loadingLabel":"아직 로딩 중인 오브젝트가 있어요","move.workspace.itemList.saveFailedLabel":"저장 실패","move.workspace.itemList.loadFailedLabel":"파일을 불러오지 못했습니다","move.workspace.toast.loadedSyncFailed":"활성 상태 동기화에 실패했습니다.","move.workspace.tab.tool":"툴","move.workspace.tab.toolRight":"오른쪽 툴","move.workspace.tab.toolLeft":"왼쪽 툴","move.workspace.tab.toolIndexed":"툴 {{index}}","move.workspace.properties.title":"오브젝트 속성","move.workspace.properties.resetTransform":"초기화","move.modal.workspace.confirmDelete.multiContent":"{{count}}개 워크스페이스를 정말 삭제하시겠습니까? 포함된 모든 오브젝트가 함께 삭제되며, 이 작업은 취소할 수 없습니다.","move.workspace.dialog.createTitle":"새 워크스페이스 만들기","move.workspace.dialog.renameTitle":"워크스페이스 이름 변경","move.workspace.dialog.namePlaceholder":"워크스페이스 이름을 입력하세요","move.workspace.header.rename":"이름 변경","move.workspace.header.delete":"삭제","move.workspace.header.close":"닫기","move.workspace.dialog.saveAsTitle":"다른 이름으로 저장","program.section.title.variableConfig":"변수 설정","program.field.variableType":"변수 유형","program.field.variableSelection":"변수 선택","program.section.title.dialogSettings":"팝업 설정","program.field.askMessage":"질문 메시지","program.field.varNameToStore":"선택한 번호를 저장할 변수 이름","program.field.timeoutDuration":"선택 지연시간 (초)","program.field.fallbackNumber":"타임아웃이 발생했을 때 선택할 번호","program.section.title.comment":"선택지","program.list.box.maxCommentLimit":"선택지는 최대 {{count}}개까지만 추가가 가능합니다.","program.section.title.addComment":"선택지 추가","program.modal.title.changeUserVariable":"사용자 변수 값 변경","program.button.skip":"스킵","program.button.continueAfterReflection":"반영 후 계속","program.field.variable":"변수","program.field.applyValue":"적용할 값","program.modal.label.typingExample":"입력 예시","program.modal.desc.string":'큰따옴표로 감싸 문자 데이터를 저장하는 타입 (Ex: "Robot_Mode_1", "PASS")',"program.modal.desc.numeric":"정수와 실수를 포함하여 수치를 표현하는 타입 (Ex: 100, 3.14, -45.5)","program.modal.desc.boolean":"참(true) 또는 거짓(false) 논리 값 (Ex: true, false)","program.modal.desc.list":"순서가 있는 여러 값이나 좌표를 묶어놓은 값 (Ex: [0, -90, 90, -90, -90, 0, 0])","program.modal.desc.dictionary":'키와 값의 쌍으로 구조화된 데이터 값 (Ex: {"tool_name": "Gripper_A"})',"program.modal.desc.variable":"지역 또는 전역 변수를 참조해 할당하는 타입 (Ex: target_pose = RB_JOINT_REF)","program.field.description":"설명","program.field.owner":"출처","move.workspace.header.duplicate":"사본 만들기","move.workspace.header.saving":"저장 중...","move.workspace.header.saved":"저장됨","program.script.meta-info-view":"Meta 정보 표시","maintenance.menu.database":"데이터베이스","maintenance.database.desc":"데이터베이스 컬렉션과 디스크 데이터를 항목별로 초기화합니다. 초기화된 데이터는 복구할 수 없습니다.","maintenance.db.title.programReset":"프로그램 초기화","maintenance.db.desc.programReset":"저장된 프로그램, 태스크, 스텝, 변수를 모두 삭제합니다.","maintenance.db.button.programReset":"프로그램 초기화","maintenance.db.title.logReset":"로그 초기화","maintenance.db.desc.logReset":"상태 로그를 즉시 비웁니다. (보관 기간은 Log 메뉴에서 설정)","maintenance.db.button.logReset":"로그 초기화","maintenance.db.title.pluginReset":"플러그인 초기화","maintenance.db.desc.pluginReset":"설치된 플러그인과 플러그인 범위의 변수를 삭제합니다.","maintenance.db.button.pluginReset":"플러그인 초기화","maintenance.db.title.fileReset":"파일/모델 초기화","maintenance.db.desc.fileReset":"업로드된 파일과 등록된 모델을 삭제합니다.","maintenance.db.button.fileReset":"파일 초기화","maintenance.db.title.amrReset":"AMR 초기화","maintenance.db.desc.amrReset":"맵, 주행 설정, 위치 추정, 이동 명령 기록을 삭제합니다.","maintenance.db.button.amrReset":"AMR 초기화","maintenance.db.warning.amrReset":"주의: 맵 데이터는 복구할 수 없습니다.","maintenance.db.title.userReset":"사용자/인증 초기화","maintenance.db.desc.userReset":"admin을 제외한 사용자 계정, 세션, SDK 화이트리스트, 로그인 정책을 삭제합니다.","maintenance.db.button.userReset":"사용자 초기화","maintenance.db.title.factoryReset":"공장 초기화 (전체)","maintenance.db.desc.factoryReset":"위 모든 항목과 로봇 정보, FRS 정보까지 삭제하고 출고 상태로 되돌립니다.","maintenance.db.button.factoryReset":"공장 초기화","maintenance.db.warning.factoryReset":"주의: 초기화시 복구할 수 없습니다.","maintenance.modal.content.confirmResetDB":"정말 초기화 하시겠습니까?\\n이 작업은 되돌릴 수 없습니다.","move.menu.button.label.masterMode":"Master Mode","move.menu.button.label.master.modeJ":"Master Move J","move.menu.button.label.master.modeL":"Master Move L","move.menu.button.label.master.stop":"Master Mode Stop","move.workspace.itemList.selectionMode":"선택","move.workspace.itemList.selectionExit":"선택 취소","move.workspace.itemList.selectionCount":"{{count}}개 선택됨","move.workspace.itemList.hideSelected":"숨기기 {{count}}","move.workspace.itemList.deleteSelected":"삭제 {{count}}","move.workspace.header.saveNow":"저장","move.workspace.confirm.closeTitle":"저장되지 않은 변경 사항","move.workspace.confirm.closeContent":"저장하지 않은 변경 사항이 있습니다. 닫으시겠습니까?","move.workspace.button.closeWithoutSaving":"저장하지 않고 닫기","move.workspace.confirm.openTitle":"다른 워크스페이스 불러오기","move.workspace.confirm.openContent":"저장하지 않은 변경 사항이 사라집니다. 계속하시겠습니까?","move.workspace.confirm.deleteTitle":"워크스페이스 삭제","move.workspace.confirm.deleteContent":'"{{name}}" 워크스페이스를 삭제하시겠습니까?',"move.workspace.toast.deleteSuccess":"워크스페이스를 삭제했습니다.","move.workspace.toast.deleteFailed":"워크스페이스 삭제에 실패했습니다.","move.workspace.header.unsaved":"저장 안 됨","move.workspace.properties.selectItem":"오브젝트를 선택해주세요","move.workspace.addMenu.box":"직육면체","move.workspace.addMenu.cylinder":"원기둥","move.workspace.addMenu.sphere":"구","move.modal.asset.button.add":"추가","move.modal.workspace.card.deleteLabel":"삭제","settings.general.menu.netComm":"네트워크/통신","settings.network.title.ipSettings":"IP 설정","settings.network.desc.ipSettings":"장치의 네트워크 연결 방식을 설정합니다. IP를 자동으로 할당받으려면 DHCP를, 직접 지정하려면 고정 IP(Static)를 선택하세요.","settings.network.label.settingMode":"설정 모드","settings.network.label.mask":"마스크","settings.network.label.gateway":"게이트웨이","program.userInput.errorMsg.varSelection":"변수를 선택해주세요.","program.options.clearDataTable":"데이터 테이블 초기화","program.options.addDataTable":"데이터 테이블 추가","program.options.calcTable":"테이블 결과 계산","program.options.reflectResult":"로봇팔에 결과 반영","program.options.usePosInfo":"위치 정보 사용","program.options.usePosAndOri":"위치 및 회전 정보 사용","program.label.jointAngle":"관절 각도 (°)","program.label.groundTruthTCP":"TCP 실측값","program.field.calcOption":"계산 옵션","program.field.password":"비밀번호","move.panel.measureDistance":"거리 측정","move.measure.title":"거리 측정","move.measure.activate":"거리 측정 활성화","move.measure.target1":"대상 1","move.measure.target2":"대상 2","move.measure.selectFirstPrompt":"첫 번째 도형을 클릭하세요","move.measure.selectSecondPrompt":"두 번째 도형을 클릭하세요","move.measure.mode.center":"중심 간 거리","move.measure.mode.min":"최단 거리","move.measure.result.distance":"총 거리","move.measure.reset":"초기화","move.amr.rightPanel.map.info.downloadMap":"맵 다운로드","move.amr.toast.title.mapDownload.fail":"맵 다운로드 실패","move.amr.toast.content.mapDownload.fail":"다운로드할 수 있는 지도 포인트 클라우드 데이터가 없습니다","move.align.switch.label":"이동 및 정렬","move.align.button.send":"전송","settings.box.option.notUse":"사용하지 않음","settings.box.option.activeAfterReal":"리얼 모드 전환 후 활성화","settings.tool.gripper.label.defaultGripper":"기본 부착 그리퍼","settings.tool.gripper.label.pubDataType":"퍼블리시 데이터 유형 {{idx}}","settings.box.option.notMounted":"장착 안함","settings.box.option.notAssigned":"지정 안함","settings.box.option.posRef":"위치 레퍼런스","settings.box.option.posFeedback":"위치 피드백","settings.box.option.speedRef":"속도 레퍼런스","settings.box.option.speedFeedback":"속도 피드백","settings.box.option.forceRef":"힘 레퍼런스","settings.box.option.forceFeedback":"힘 피드백","move.box.option.global":"전역 좌표계","move.box.option.local":"로컬 좌표계","move.box.option.user":"사용자 좌표계","move.amr.viewportControls.visibility.lidarPoints":"라이다 포인트","move.amr.viewportControls.visibility.lidarPointsDescription":"실시간 포인트 클라우드","move.amr.viewportControls.visibility.simpleNodes":"단순 노드","move.amr.viewportControls.visibility.simpleNodesDescription":"토폴로지 노드를 작은 구체로 렌더링합니다","move.amr.viewportControls.visibility.nodeLabels":"노드 라벨","move.amr.viewportControls.visibility.nodeLabelsDescription":"CSS2D 객체 라벨","move.amr.viewportControls.visibility.grid":"격자","move.amr.viewportControls.visibility.gridDescription":"블렌더 스타일의 바닥 격자","move.amr.viewportControls.camera.projection":"시점","move.amr.viewportControls.camera.projectionDescription":"3D 궤도 뷰와 탑다운 맵 뷰를 전환합니다.","move.amr.viewportControls.camera.topView":"탑 뷰","move.amr.viewportControls.camera.topViewDescription":"회전을 잠그고 맵을 위에서 내려다봅니다.","move.amr.viewportControls.camera.perspective":"원근 뷰","move.amr.viewportControls.camera.perspectiveDescription":"3D 궤도 카메라를 사용합니다.","move.amr.viewportControls.rendering.lidarPointSize":"라이다 포인트 사이즈","move.amr.viewportControls.rendering.lidarPointSizeDescription":"실시간 포인트 클라우드 크기 조정하기","move.amr.viewportControls.section.camera":"카메라","move.amr.viewportControls.section.visibility":"표시","move.amr.viewportControls.section.rendering":"렌더링","move.amr.panel.viewportControl":"뷰포트 제어","program.modal.button.stopProg":"프로그램 정지","move.ghostRobot.section.torsoMode":"Torso 모드","move.ghostRobot.torsoMode.free":"자유","move.ghostRobot.torsoMode.constrained":"구속","maintenance.menu.resources":"CPU/Mem 리소스","maintenance.menu.logRetention":"로그 저장 기간","maintenance.logRetention.desc":"로그 보관 기간을 설정합니다. 기간이 지난 로그는 자동으로 삭제되며, 변경은 즉시 적용됩니다.","maintenance.logRetention.retentionDays":"로그 저장 일수","maintenance.logRetention.retentionRange":"최소 1일 ~ 최대 30일 (기본값 15일)","maintenance.logRetention.days":"{{days}}일","maintenance.logRetention.confirm.title":"로그 보관 기간 단축","maintenance.logRetention.confirm.content":"보관 기간을 {{from}}일에서 {{to}}일로 줄이면 {{to}}일이 지난 로그가 모두 영구 삭제됩니다. 계속하시겠습니까?","maintenance.logRetention.toast.savedTitle":"저장 완료","maintenance.logRetention.toast.savedContent":"로그 보관 기간이 {{days}}일로 변경되었습니다.","maintenance.resources.desc":"muscat 컨테이너의 CPU·메모리 상한을 설정합니다. 변경은 재시작 없이 즉시 적용됩니다.","maintenance.resources.cpu":"CPU 상한","maintenance.resources.memory":"메모리 상한","maintenance.resources.unlimited":"제한 없음","maintenance.resources.usage":"현재 사용량","maintenance.resources.host":"호스트","maintenance.resources.cores":"코어","maintenance.modal.content.confirmResources":"너무 낮은 값은 시스템을 느리게 하거나 메모리 부족으로 종료시킬 수 있습니다.\\n변경하시겠습니까?","move.chart.title":"차트","move.chart.emptyDesc":"차트 데이터가 없습니다","program.modal.title.setRepeatCount":"반복 횟수 설정","program.modal.desc.setRepeatCount":"새로 추가할 반복문의 반복 횟수를 설정합니다.","program.options.avoidSingularity":"특이점 회피","program.field.checkMode":"확인 모드","progarm.field.dataOption":"데이터 옵션","program.options.finishCheck":"확인 완료","program.options.startCheck":"확인 시작","program.options.reference":"레퍼런스 값","program.field.returnType":"반환 타입","program.field.arguments":"인자","program.field.returnVariable":"반환값 저장 변수","program.msg.selectFunction":"목록에서 함수를 선택하세요.","program.placeholder.searchFunction":"함수 이름으로 검색","program.field.functions":"함수","program.field.argCount":"{{count}}개","program.field.argN":"인자 {{n}}","program.placeholder.valueOrVariable":"값 또는 변수명","program.desc.noDescription":"등록된 설명이 없습니다.","program.desc.returnVariableEmpty":"비워두면 반환값을 저장하지 않습니다.","program.placeholder.returnVariable":"예: result","program.field.preview":"미리보기","program.desc.functionCallArgs":'문자열 값은 반드시 큰따옴표로 감싸세요 (예: "text"). 변수를 넘길 때는 get("변수명") 사용을 권장합니다.',"program.msg.noFunctions":"조회된 함수 리스트가 없습니다.","program.msg.noFunctionsDesc":"다른 검색어로 다시 시도해 보세요.","program.msg.selectFunctionDesc":"선택한 함수의 설명, 인자, 반환값 저장 변수를 여기서 설정합니다.","move.amr.viewportControls.section.manualCamera":"수동 카메라","move.amr.viewportControls.camera.move":"수동 이동","move.amr.viewportControls.camera.moveDescription":"버튼으로 카메라를 상하좌우로 이동하거나 중앙으로 맞춥니다.","move.amr.rightPanel.history.noHistory":"히스토리 없음","move.amr.rightPanel.history.latest":"최신","move.amr.rightPanel.history.time":"시간","move.amr.rightPanel.history.command":"명령","move.amr.rightPanel.history.result":"결과","move.amr.rightPanel.topology.overview.title":"개요","move.amr.rightPanel.topology.overview.description":"토폴로지 수준 정보와 파일 작업을 관리합니다.","move.amr.rightPanel.topology.overview.summaryTitle":"토폴로지 요약","move.amr.rightPanel.topology.overview.createdAt":"생성일","move.amr.rightPanel.topology.overview.nodes":"노드","move.amr.rightPanel.topology.overview.links":"링크","move.amr.rightPanel.topology.overview.zones":"존","move.amr.rightPanel.topology.overview.fileTitle":"토폴로지 파일","move.amr.rightPanel.topology.overview.fileDescription":"현재 토폴로지 데이터를 topology.json으로 다운로드합니다.","move.amr.rightPanel.topology.overview.download":"토폴로지 다운로드","move.amr.rightPanel.topology.tab.overview":"개요","move.amr.rightPanel.topology.tab.node":"노드","move.amr.rightPanel.topology.zone.updateZone":"존 업데이트","move.amr.rightPanel.topology.zone.createZone":"존 생성","move.amr.rightPanel.topology.zone.discardEditContent":"편집 내용을 버리고 원래 존으로 복원할까요?","move.amr.rightPanel.topology.zone.discardDraftContent":"이 존 초안과 저장하지 않은 토폴로지 변경사항을 버릴까요?","move.amr.rightPanel.topology.zone.createNewZone":"새 존 생성","move.amr.rightPanel.topology.zone.startDrawing":"그리기 시작","move.amr.rightPanel.topology.zone.selectedCount":"{{count}}개 존 선택됨","move.amr.rightPanel.topology.zone.editingZone":"존 편집 중","move.amr.rightPanel.topology.zone.oneSelected":"존 1개 선택됨","move.amr.rightPanel.topology.zone.selectedZones":"선택된 존","move.amr.rightPanel.topology.zone.pointCount":"{{type}} / {{count}}개 점","move.amr.rightPanel.topology.zone.details":"상세 정보","move.amr.rightPanel.topology.zone.name":"존 이름","move.amr.rightPanel.topology.zone.namePlaceholder":"존 이름 입력","move.amr.rightPanel.topology.zone.type":"존 타입","move.amr.rightPanel.topology.zone.editZone":"존 편집","move.amr.rightPanel.topology.zone.deleteZone":"존 삭제","move.amr.rightPanel.topology.zone.deleteContent":"선택한 존을 삭제할까요?","move.amr.rightPanel.topology.zone.keep":"유지","move.amr.rightPanel.topology.zone.reopenZone":"존 다시 열기","move.amr.rightPanel.topology.zone.reopen":"다시 열기","move.amr.rightPanel.topology.zone.undoLastPoint":"마지막 점 되돌리기","move.amr.rightPanel.topology.zone.clearPoints":"점 지우기","move.amr.rightPanel.topology.zone.closeZone":"존 닫기","move.amr.rightPanel.bottomBar.obstacleMap":"장애물 지도","common.unit.meters":"m","move.amr.obstacleMap.title":"장애물 지도","move.amr.obstacleMap.description":"실시간 2D 캔버스 미리보기","move.amr.obstacleMap.waitingForData":"장애물 지도 데이터를 기다리는 중","move.amr.obstacleMap.statusLabel":"상태","move.amr.obstacleMap.gridLabel":"그리드","move.amr.obstacleMap.gridSizePerPixel":"{{value}} m/px","move.amr.obstacleMap.layerCount":"레이어 {{count}}개","move.amr.obstacleMap.status.waitingForStream":"스트림 대기 중","move.amr.obstacleMap.status.live":"실시간","move.amr.obstacleMap.status.noActiveLayers":"활성 레이어 없음","move.amr.obstacleMap.status.idle":"대기","move.amr.panel.viewportVisibility":"뷰포트 표시","move.amr.panel.fullscreen.enter":"전체 화면","move.amr.panel.fullscreen.exit":"전체 화면 종료","move.amr.leftToolBar.select":"선택","move.amr.leftToolBar.cursor":"커서","move.amr.leftToolBar.move":"이동","move.amr.leftToolBar.rotate":"회전","move.amr.leftToolBar.scale":"크기 조절","move.amr.viewportControls.visibility.mapBoundary":"맵 경계","move.amr.viewportControls.visibility.mapBoundaryDescription":"불러온 맵의 경계 범위를 강조 표시","program.options.goalId.string":"문자열","program.options.goalId.expression":"표현식","program.validation.goalId.quotedLiteralNotAllowed":"표현식에는 문자열 리터럴은 입력할 수 없습니다.","move.amr.rightPanel.topology.edit.nodeType":"노드 타입","move.amr.rightPanel.topology.edit.nodeTypeSingleSelect":"타입을 변경하려면 노드 하나를 선택하세요.","move.amr.rightPanel.topology.edit.nodeTypeUnavailable":"타입 변경 기능은 추후 제공될 예정입니다.","move.amr.rightPanel.topology.edit.nodeTypeDescription":"노드 타입을 변경하면 노드 ID와 연결된 링크는 유지됩니다.","move.field.label.sensitivity":"감도","move.button.stop":"정지","move.button.start":"시작","move.options.interJoint":"내부 조인트","move.options.externalFt":"외부 F/T","maintenance.title.lastJoint":"최종 관절 각도 DB","maintenance.button.erase":"지우기","maintenance.title.editRobotInfo":"로봇 정보 수정","maintenance.desc.editRobotInfo":"로봇 카테고리 및 모델을 변경하고, 선택적으로 별칭으로 사용할 로봇 이름을 지정합니다.","move.gripper.notMountDesc":"그리퍼가 장착되지 않았습니다.","move.amr.viewportControls.section.clipping":"포인트 클라우드 클리핑","move.amr.viewportControls.clipping.height":"높이 클리핑","move.amr.viewportControls.clipping.heightDescription":"선택한 높이 범위 안의 맵 포인트만 표시합니다","move.amr.viewportControls.clipping.minHeight":"최소 높이","move.amr.viewportControls.clipping.maxHeight":"최대 높이","move.amr.viewportControls.clipping.reset":"클리핑 초기화","move.button.off":"끄기","move.button.time":"시간"},P4n={en:{translation:T4n},ko:{translation:E4n}},_7e={manipulate:Pw,amr:j9,rby1:Bse},R4n="rb_manipulate_sdk.point.set_point",b7e=(i,e,t=null)=>{const n=[..._7e[e.beService]??[],...SA];return i.map(s=>{const o=n.find(d=>d.command===s.command);if(!o)throw new Error(`unknown command: ${s.command}`);const{args:r,...a}=o.data??{method:o.command},l={...r??{},...s.args??{}};"robot_model"in l&&!l.robot_model&&(l.robot_model=e.robotModel);const c=ut.uniqueId();return{...a,stepId:c,taskId:e.taskId,programId:e.programId,parentStepId:t,name:o.label,icon:o.icon,method:a.method??o.command,summary:s.summary??a.summary??null,args:l,funcName:a.funcName??(o.command==="Point"?R4n:null),groupId:a.groupId??(o.groupFirstItem?ut.uniqueId():void 0),allowChildren:o.allowChildren||void 0,allowParents:o.allowParents||void 0,notAllowChildren:o.notAllowChildren||void 0,fixChildren:o.fixChildren||void 0,requireChildren:o.requireChildren||void 0,groupFirstItem:o.groupFirstItem||void 0,groupLastItem:o.groupLastItem||void 0,requireParent:o.requireParent||void 0,disableCopy:o.disableCopy||void 0,disableDelete:o.disableDelete||void 0,isStrict:o.isStrict||void 0,children:s.children?.length?b7e(s.children,e,c):void 0}})},M4n=3e3,A4n=(i,e)=>Promise.race([i,new Promise(t=>setTimeout(()=>t(null),e))]),O4n=async(i,e,t)=>{const n=[..._7e[e]??[],...SA];return Promise.all(i.map(async s=>{const o=n.find(a=>a.command===s.command);if(!o?.factoryDataFn)return s;const r=o.allowParents?.length?n.find(a=>a.command===o.allowParents?.[0]):void 0;try{const a=await A4n(Promise.resolve(o.factoryDataFn({...r?.data??{},args:{...r?.data?.args??{},robot_model:t}},t)),M4n);if(!a)return s;const{children:l,...c}=a;return{...s,defaultData:JSON.parse(JSON.stringify(c))}}catch{return s}}))},F4n=i=>i===void 0?null:JSON.parse(JSON.stringify(i)),R3=(i,e)=>{const t=F4n(i.data);return{source:e,label:i.label,command:i.command,method:i.data?.method??i.command??null,defaultData:t,sdk:{funcName:i.data?.funcName??null,postFuncName:i.data?.postFuncName??null},rules:{allowChildren:i.allowChildren,allowParents:i.allowParents,notAllowChildren:i.notAllowChildren,requireChildren:i.requireChildren,requireParent:i.requireParent,fixChildren:i.fixChildren,disableCopy:i.disableCopy,disableDelete:i.disableDelete,groupFirstItem:i.groupFirstItem,groupLastItem:i.groupLastItem,isStrict:i.isStrict,childrenCommand:i.childrenCommand,hasFactoryDataFn:!!i.factoryDataFn,hasConfirmModal:!!i.confirmModal}}},B4n=(i,e=[])=>{const t=i==="manipulate"?Pw.map(o=>R3(o,"manipulate")):i==="amr"?j9.map(o=>R3(o,"amr")):[],n=SA.map(o=>R3(o,"common")),s=e.map(o=>R3(o,"plugin"));return[...t,...s,...n]},{useMemo:V4n}=await F("react"),z4n=({children:i})=>{const{alertDialog:e,confirmDialog:t,promptDialog:n}=Gn(),{t:s}=q(),{data:o}=Ys(),r=o?.modelInfo?.be_service,a=h=>tse(null,h)?.be_service??r??"manipulate",l=V4n(()=>({alert:async h=>{await e({...h,content:h.message})},confirm:async h=>!!await t({...h,content:h.message}),prompt:async h=>await n({...h,content:h.message}),toast:h=>rt.openToast({...h,type:"basic",content:h.message,variant:h.type==="info"?"default":h.type}),program:{setSteps:async h=>{const{programInfo:g,treeItems:m,setTreeItems:f}=se.getState(),p=Object.keys(m??{})[0];if(!g?.programId||!p)throw new Error("program not loaded");f(p,b7e(h,{taskId:p,programId:g.programId,robotModel:g.robotModel,beService:a(g.robotModel)}))},getCatalog:async()=>{const h=se.getState().programInfo?.robotModel,g=a(h),m=B4n(g).map(f=>({...f,title:s(f.label)}));return O4n(m,g,h)}}}),[e,t,n,r,s]),c=Rie()||window.location.hostname;return u(Aut,{wsUrl:`ws://${c==="localhost"?"127.0.0.1":c}:10000`,liveBase:`http://${c}:3000/common/plugin`,hostServices:l,children:i})},{useEffect:Tke}=await F("react"),{QueryClientProvider:W4n}=await F("@tanstack/react-query");function G6n(){const{hostname:i}=window.location,e=`ws://${Rie()||i}:3000`;return Tke(()=>{const n=new URLSearchParams(window.location.search).get("rb_mode");n&&hLe("rb_mode",n)},[]),Tke(()=>{D4n();const t=n=>{n.pointerType==="touch"&&n.preventDefault()};return document.addEventListener("contextmenu",t),()=>{document.removeEventListener("contextmenu",t)}},[]),u(W4n,{client:CGe,children:u(SGe,{appName:"nexus",resources:P4n,children:u(xGe,{theme:"dark",variableModal:v6e,children:u(jqe,{children:u(NGe,{url:e,socketOptions:{path:"/common/socket.io",auth:t=>{t({role:"client",token:Gqe(),autoLogin:hDe()?"true":"false"})}},loadingElement:u(JXe,{className:P("min-h-screen-vh-full bg-[#333] text-[white]")}),children:x(z4n,{children:[x(_4n,{history:g4n,children:[!1,u(L4n,{className:"relative z-100"}),u(IGe,{className:"z-200",position:"top-right",duration:5e3,toastComponent:nLe}),u(h4n,{})]}),u("div",{id:"dialog-container",className:"relative z-120 [&>:not(:nth-child(1_of_[data-slot='dialog-overlay']))]:transition-none [&>:nth-child(1_of_[data-slot='dialog-overlay'])]:!block [&>[data-slot='dialog-content']]:transition-none [&>[data-slot='dialog-content']:nth-last-child(1_of_[data-slot='dialog-content'])]:mt-[-12px] [&>[data-slot='dialog-content']:nth-last-child(1_of_[data-slot='dialog-content'])]:ml-[-12px] [&>[data-slot='dialog-content']:nth-last-child(2_of_[data-slot='dialog-content'])]:mt-[-6px] [&>[data-slot='dialog-content']:nth-last-child(2_of_[data-slot='dialog-content'])]:ml-[-6px] [&>[data-slot='dialog-content']:nth-last-child(3_of_[data-slot='dialog-content'])]:mt-[0px] [&>[data-slot='dialog-content']:nth-last-child(3_of_[data-slot='dialog-content'])]:ml-[0px] [&>[data-slot='dialog-content']:nth-last-child(4_of_[data-slot='dialog-content'])]:mt-[6px] [&>[data-slot='dialog-content']:nth-last-child(4_of_[data-slot='dialog-content'])]:ml-[6px] [&>[data-slot='dialog-content']:nth-last-child(5_of_[data-slot='dialog-content'])]:mt-[12px] [&>[data-slot='dialog-content']:nth-last-child(5_of_[data-slot='dialog-content'])]:ml-[12px] [&>[data-slot='dialog-overlay']]:hidden"})]})})})})})})}export{pg as M,AL as R,h7 as U,Amn as a,VW as b,mDe as c,G6n as default,op as e,pt as l,h9e as t};
1356
+ `;const r=document.createElement("style");r.setAttribute("data-dynamic-font","pretendard"),r.innerHTML=o,document.head.appendChild(r)},T4n={"menu.title.dashboard":"D.Board","menu.title.move":"Move","menu.title.program":"Program","menu.title.plugin":"Plug-in","menu.title.log":"Log","menu.title.settings":"Settings","menu.title.maintenance":"Maint.","menu.title.help":"Help","menu.title.robotSelect":"Robot Select","header.title.emcStop":"EMERGENCY STOP","header.title.fullSimulator":"Full Simulator","header.title.externalNetwork":"Public Network","header.title.closedNetwork":"Private Network","header.toast.title.powerCtrlFail":"Robot Power Control Fail","header.toast.desc.powerCtrlFail":"Please check the network.","footer.title.selectProgram":"Select Program","footer.title.speed":"Speed","controlBar.lock.lock":"Lock control bar","controlBar.lock.locked":"Locked","controlBar.lock.holdToUnlock":"Unlock: press and hold","controlBar.toast.locked":"Locked · hold the lock button to unlock","controlBar.toast.lockOn":"Locked · Stop is still available","controlBar.toast.unlocked":"Unlocked","controlBar.popover.title":"Current step per robot","controlBar.robotCount":"{{count}} robots","controlBar.step.waiting":"Waiting","controlBar.step.done":"Done","controlBar.repeat.infinite":"Infinite","controlBar.repeat.down":"Decrease repeat","controlBar.repeat.up":"Increase repeat","controlBar.speed.down":"Decrease speed","controlBar.speed.up":"Increase speed","modal.conn.button.all":"All","modal.conn.button.servo":"Servo","modal.conn.button.power":"Power","modal.conn.button.motor":"Motor","dashboard.title.systemOverview":"System Overview","dashboard.title.totalComponent":"Total Component","dashboard.title.activeComponent":"Active Component","dashboard.title.robotComponent":"Robot Component","dashboard.title.robotComponents":"Robot Components","dashboard.title.networkType":"Network Type","dashboard.title.cpuUseRate":"CPU Use Rate","dashboard.title.error":"24H Error","dashboard.title.robotInfo":"Robot Info","dashboard.title.recentLogs":"Recent Logs","dashboard.title.amrNavStatus":"AMR Navigation Status","dashboard.title.amrMoveHistory":"AMR Move History","dashboard.content.localization":"Localization","dashboard.content.mapEditor":"Map Editor","dashboard.content.currentNode":"Current Node","dashboard.content.targetNode":"Target Node","dashboard.content.mapName":"Map Name","dashboard.content.linearSpeed":"Linear Speed","dashboard.content.rotationSpeed":"Rotation Speed","dashboard.content.localizationStatus":"Localization Status","dashboard.content.obstacle":"Obstacle","dashboard.content.pathState":"Path State","dashboard.content.alias":"Alias","dashboard.content.model":"Model","dashboard.content.components":"Components","dashboard.content.status":"Status","dashboard.content.repeat":"Repeat","dashboard.content.step":"Step","dashboard.content.type":"Type","dashboard.content.motorAvgTmp":"Motor Avg Temp","dashboard.content.mode":"Mode","dashboard.content.version":"Version","dashboard.content.infinite":"Infinite","dashboard.button.editInfo":"Edit Information","dashboard.button.viewAllLogs":"View All Logs","dashboard.button.stop":"Stop","dashboard.button.play":"Play","dashboard.button.moveControl":"Move","dashboard.button.detail":"Detail","dashboard.button.viewAllHistory":"View All History","dashboard.modal.title.inputRobotInfo":"Input Robot infomation","dashboard.modal.desc.inputRobotInfo":"Please enter the robot information.","dashboard.modal.label.category":"Category","dashboard.modal.label.robotModel":"Robot Model","dashboard.modal.label.serialNumber":"Serial Number","dashboard.modal.label.robotName":"Robot Name","dashboard.modal.label.optional":"optional","dashboard.modal.button.submit":"Submit","dashboard.modal.button.qrCode":"QR Code","dashboard.modal.msg.serialNumber":"Serial Number is required.","dashboard.modal.title.qrScanGuide":"QR Code Scan Guide","dashboard.modal.desc.qrScanGuide":"After connecting the barcode USB to the robot, please scan the QR code on the robot nameplate.","dashboard.title.power":"Power","dashboard.title.servo":"Servo","dashboard.title.controlManager":"Control Manager","dashboard.title.toolFlangePower":"Tool Flange Power","dashboard.title.brake":"Brake","dashboard.button.selectAll":"Select All","dashboard.button.deselectAll":"Deselect All","dashboard.button.allOn":"All ON","dashboard.button.allOff":"All OFF","dashboard.content.axisCount":"{{count}} axes","move.title.distance":"Distance","move.title.rotation":"Rotation","move.title.selectCoordinate":"Select Coordinate","move.content.outCollDetect":"Out collision detection","move.content.noOutcoll":"No out collision","move.content.selfCollDetect":"Self collision detection","move.content.noSelfcoll":"No self collision","move.content.emcStopOn":"Emergency Stop On","move.content.emcStopOff":"Emergency Stop Off","move.button.change":"Change","log.title.log":"Log","log.title.filter":"Filter","log.title.total":"Total","log.title.rows":"Rows per Page","log.title.createdAt":"Created At","log.title.swName":"SW Name","log.title.level":"Level","log.title.contents":"Contents","log.title.dateRange":"Date Range","log.title.excludeText":"Exclude Text","log.button.exportCSV":"Export CSV","log.button.exportTXT":"Export TXT","log.button.showAll":"Show All","log.button.showLess":"Show Less","log.button.resetFilter":"Reset filter","log.button.selectDate":"Select Date","log.button.confirm":"Confirm","log.label.from":"From","log.label.to":"To","log.placeholder.search":"Search","log.toast.title.duplicateText":"Duplicate filter text","log.toast.content.duplicateText":"The same text cannot be used in both include and exclude filters.","settings.menu.title.general":"General","settings.menu.title.system":"System","settings.menu.title.tool":"Tool","settings.menu.title.Frame":"Frame","settings.menu.title.io":"I/O","settings.menu.title.devices":"Devices","settings.general.menu.robotMounting":"Robot Mounting","settings.general.menu.collDetection":"Collision Detection","settings.general.menu.handGuiding":"Hand Guiding","settings.general.menu.userScript":"User Script","settings.general.menu.afterAction":"After Action","settings.system.menu.configuration":"Configuration","settings.tool.menu.toolList":"Tool List","settings.tool.menu.flange":"Flange","settings.tool.flange.desc":"Configure boot-up options and enable/disable the Direct Teaching button and vibration sensor on the robot's flange.","settings.tool.menu.gripper":"Gripper","settings.tool.gripper.desc":"Set the default gripper attachment and publish data types.","settings.frame.menu.userCoordinate":"User Coordinate","settings.frame.menu.area":"Area","settings.io.menu.dinFunctions":"Box D.In Functions","settings.io.menu.extDoutFunctions":"Ext D.Out Functions","settings.io.menu.extDinFunctions":"Ext D.In Functions","settings.io.menu.extDinFilter":"Ext D.In Filter","settings.io.menu.doutFunctions":"Box D.Out Functions","settings.io.menu.toolDoutFunctions":"Tool D.Out Functions","settings.io.menu.toolDinFunctions":"Tool D.In Functions","settings.io.menu.toolDinFilter":"Tool D.In Filter","settings.io.menu.dinFilter":"Box D.In Filter","settings.button.save":"Save","settings.button.edit":"Edit","settings.button.cancel":"Cancel","settings.button.settingsReset":"Reset","settings.button.set":"Set","settings.rby1.parameters.title":"Parameters","settings.rby1.parameters.desc":"View and change robot parameters. Enter values in the same format as the current value (strings include double quotes).","settings.rby1.parameters.refresh":"Refresh","settings.rby1.parameters.defaultReset":"DEFAULT RESET","settings.rby1.parameters.factoryReset":"FACTORY RESET","settings.rby1.parameters.defaultResetAllContent":"Reset all parameters to default. This cannot be undone. Continue?","settings.rby1.parameters.factoryResetAllContent":"Reset all parameters to factory values. This cannot be undone. Continue?","settings.rby1.parameters.resetOneContent":"Reset {{name}} to its default value. Continue?","settings.rby1.parameters.searchPlaceholder":"Search parameter name","settings.rby1.parameters.name":"Name","settings.rby1.parameters.type":"Type","settings.rby1.parameters.currentValue":"Current Value","settings.rby1.parameters.newValue":"New Value","settings.rby1.parameters.empty":"No parameters.","settings.rby1.parameters.setSuccess":"{{name}} updated.","settings.general.title.gravityDirection":"Gravity Direction","settings.general.desc.gravityDirection":"Set the robot's installation angle. Enter the direction vector of the gravitational acceleration relative to the Global coordinate system.","settings.general.title.outCollision":"Out Collision","settings.general.desc.outCollision":"Sets the collision sensitivity. the lower the sensitivity, the more the robot stops even with a weak impact.","settings.general.title.selfCollision":"Self Collision","settings.general.desc.selfCollision":"Sets the self-collision mode and detection distance.","settings.general.outColl.title.threshold":"Threshold","settings.general.outColl.title.stopMode":"Stop Mode","settings.general.outColl.title.onOff":"On/Off","settings.general.selfColl.title.detectDist":"Detection distance","settings.general.selfColl.title.robotArm":"Robot Arm","settings.general.selfColl.title.external":"External","settings.general.title.sensitivity":"Sensitivity","settings.general.desc.sensitivity":"The sensitivity of each joint can be adjusted within a range of 0 to 2. The default value is 1. Higher values require less force to operate.","settings.general.title.bootupJointImpedance":"Boot-Up Joint Impedance","settings.general.desc.bootupJointImpedance":"Set the joint impedance values applied at control box boot-up.","settings.system.title.language":"Language","settings.tool.title.name":"Name","settings.tool.title.mass":"Mass","settings.tool.title.centerOfGravity":"Center of Gravity","settings.tool.title.position":"Position","settings.tool.title.rotation":"Rotation","settings.tool.title.size":"Size","settings.io.title.function":"Desired Function","settings.io.digitalInput":"Digital Input {{msg}}","settings.io.digitalOutput":"Digital Output {{msg}}","settings.io.toolInput":"Tool Input {{msg}}","settings.io.toolOutput":"Tool Output {{msg}}","program.command":"{{mode}} Commands","program.common":"Common","program.manipulate":"Manipulator","program.amr":"AMR","program.rby1":"RBY1","program.modal.title.load":"Program Load","program.modal.desc.load":"Load the desired program. Unsaved changes will be lost.","program.modal.button.export":"Export","program.modal.button.delete":"Delete","program.modal.button.order":"Order","program.modal.button.lastLoadedAt":"Last loaded","program.modal.button.createdAt":"Created","program.modal.button.updatedAt":"Updated","program.modal.button.ascending":"Ascending","program.modal.button.cancel":"Cancel","program.modal.button.load":"Load","program.modal.placeholder.search":"Search program name","program.modal.desc.repeatCount":"Number of repetitions","program.modal.title.edit":"Program Edit","program.modal.desc.edit":"Modify the program name or change the number of repetitions.","program.modal.label.programName":"Program Name","program.modal.label.directInput":"Direct Input","program.button.edit.disable":"Disable","program.button.edit.marking":"Marking","program.button.move":"Move","program.button.movej":"Move J","program.button.movel":"Move L","program.button.movejb":"Move JB","program.button.movelb":"Move LB","program.button.movexb":"Move XB","program.button.point":"Point","program.button.pinPoint":"Pin Point","program.button.pinJoint":"Pin Joint","program.button.home":"Home","program.button.wait":"Wait","program.button.folder":"Folder","program.button.memo":"Memo","program.button.alarmHalt":"Alarm/Halt","program.button.debug":"Debug","program.button.userInput":"User Input","program.button.changeProgram":"Change Program","program.button.userSelect":"User Select","program.button.extAxis":"Ext.Axis","program.button.condition":"If","program.button.elif":"Else If","program.button.else":"Else","program.button.switch":"Switch","program.button.postProgram":"PostProgram","program.button.preProgram":"PreProgram","program.button.set":"Set","program.button.tcpSet":"TCP Set","program.button.manual":"Manual.D","program.button.movingPoint":"M.Point","program.button.repeat":"Repeat","program.button.break":"Break","program.button.thread":"Thread","program.button.circle":"Circle","program.button.replay":"Replay","program.button.arcSensing":"ArcSensing","program.button.motionMacro":"Motion Macro","program.button.sync":"Sync","program.button.dout":"D.Out","program.button.aout":"An.Out","program.button.toolout":"Tool Out","program.button.gripper":"Gripper","program.button.arcWeld":"ArcWeld","program.button.welder":"Welder","program.button.script":"Script","program.button.variables":"Variables","program.button.monitoring":"Monitor","progarm.button.rs485":"RS485","program.button.functionCall":"Function Call","program.button.socket":"Socket","program.button.modbus":"Modbus","program.button.interface":"Interface","program.button.subTask":"Sub Task","program.button.pattern":"Pattern","program.button.conveyor":"Conveyor","program.button.forceCtrl":"Force","program.button.weaving":"Weaving","program.button.touchSensing":"TouchSensing","program.button.timer":"Timer","program.button.gcode":"G-Code","program.toast.success.copy":"Copied successfully.","program.toast.success.cut":"Cut successfully.","program.toast.fail.paste":"Cannot paste","program.toast.fail.addTreeItem":"Cannot be added","program.toast.fail.disable":"Cannot be disabled","program.button.end":"End","program.button.begin":"Begin","program.button.jump":"Jump","setting.gravity.static":"Static","setting.gravity.dynamic":"Dynamic","program.title.common":"Common","program.title.command":"Command","program.title.alarm":"Alarm","program.field.option":"Option","program.box.options":"Options","program.box.option":"Option","program.field.save":"Save","program.field.executiomn":"Execution","program.field.condition":"Condition","program.options.execute.always":"Always Execute","program.options.execute.use":"Run only when UI is in use","program.options.option.alarm":"Alarm","program.options.option.halt":"Halt","program.options.option.stop":"Sub Task Halt","program.options.option.folder":"Folder Halt","program.options.save.simple":"Simple Alarm","program.options.save.log":"Save [Title] as [User-Log]","program.options.pause.current":"Current Task","program.field.title":"Title","program.field.content":"Content","program.box.alarm":"Alarm","program.box.settings":"Settings","program.box.setting":"Setting","program.box.content":"Content","program.desc.alarm":"Pause the program flow, then pop-up the alarm window.","program.desc.halt":"Stop the Program / Thread execution.","program.desc.sub":"Stop the Sub Program execution.","program.desc.folder":"Exit the folder where the command is being executed.","program.box.mode":"Mode","program.box.condition":"Condition","program.options.mode.condition":"{{mode}} Condition","program.options.mode.time":"Time","program.options.mode.holding":"Holding","program.options.mode.exit":"Exit","program.field.time_to_wait":"Time to wait (seconds)","program.field.mode":"Mode","program.options.mode.general":"General","program.options.mode.digital":"Digital Input","program.field.wait_timeout":"Time Out Seconds","program.box.condition_settings":"Condition Settings","program.box.add_conditions":"Add Conditions","program.title.if":"If","program.title.elif":"Else If","program.title.else":"Else","program.button.add_variable":"Add Variable","program.button.add_case":"Add Case","program.button.add_elif":"Add Else If","program.button.add_else":"Add Else","program.button.add":"Add","program.title.debug":"Debug","program.field.execution":"Execution","program.field.pause":"Pause","program.options.debug.dialog":"Debug popup","program.options.debug.log":"User Log","program.options.execution.always":"Always Execute","program.options.execution.ui":"Run only when UI is in use","program.options.pause.all":"All Tasks","program.options.pause.crrent":"Current Task","program.desc.debug.dialog":"Pauses the program and displays the selected variable values in a pop-up.\\nAdd the names of the variables to debug.","program.desc.debug.log":"Logs text or string variables to the log system.\\nFrequent logging may affect system performance.","program.box.set_value_name":"Set Variables name","program.field.variables":"Variables","program.field.name":"Name","program.desc.debug.variables":"Enter the name of the variable to debug.","program.button.variable":"Variable","program.box.log":"Log","program.title.case":"Case","program.button.case":"Case","program.button.case_default":"Case Default","program.field.switch":"Switch","program.field.value":"Value","program.box.configuration":"Configuration","program.field.case":"Case","program.field.memo":"Memo","program.options.break.break":"Break","program.options.break.continue":"Continue","program.desc.break.continue":"Function to escape from 'Repeat'","program.desc.break.break":"Moves to the next cycle of the loop.","program.options.repeat.count":"Count","program.options.repeat.while":"While","program.options.repeat.do_while":"Do While","program.options.repeat.direct":"Manual Entry","program.options.repeat.infinite":"Infinite loop","program.desc.repeat":"Entering a negative number for the number of repetitions results in an infinite loop.","program.field.repeat.count":"Number of repetitions","program.field.repeat.while":"While condition","program.field.repeat.do_while":"Do While condition","program.box.jump":"Jump Target","program.box.folder":"Folder","program.box.additional":"Additional","program.box.color":"Color","program.field.color":"Color","program.field.finish_at_condition":"Finish At Condition","program.tooltip.point.finish_at_condition":"Ends the motion command before it is completed when the specified condition is met.","program.field.stopping_time":"Stopping Time (sec)","program.tooltip.point.stopping_time":"Sets the stopping time after the Finish At condition is met. Enter 0 to stop immediately.","program.box.memo":"Memo","program.field.select_mode":"Select Mode","program.field.flag":"Flag","program.field.timeout":"Timeout","program.box.set_flag":"Flag","program.options.select_mode.select":"Select","program.options.select_mode.direct":"Direct","program.desc.preProgram":"Enter the function to execute before the program starts.","program.desc.postProgram":"Insert the functions to be executed when the program ends (or halts).","program.desc.postProgram.manipulate":"Functions related to the robot movement (Move, Conveyor, Force etc) are not available.","program.box.set_variables":"Set Variables","program.desc.variables":"Declare and designate the value of a variable.\\nVariables can be changed through the program to allow for greater flexibility with conditionals.\\nA variable can be one of the 5 following types: String, Numeric, Boolean, List, Dictionary","program.field.declare_type":"Declare Type","program.field.type":"Type","program.field.name_or_value":"Target Variable Name or Value","program.field.init_value":"Initial value","program.desc.variables.string":'This data type stores string values. When storing a value, enclose it in "" to indicate that it is a string. It is okay to store it with the "" still present.',"program.desc.variables.numeric":"int' represents a numeric data type, similar to 'float'.","program.desc.variables.boolean":"It refers to boolean data types such as 'true' and 'false'.","program.desc.variables.list":"This refers to Python's 'List' data type. In the case of collaborative robots, it is used to store joint values.","program.desc.variables.dictionary":"This refers to Python's 'Dictionary' data type. In the case of collaborative robots, it is used to store tool information.","program.desc.variables.variable":`Use get("name") or get_var("name") to reference a local variable, and get("Robot Model", "name") for another program's variable. Expressions such as "abc" + get("a") are allowed.`,"program.field.desc.boolean":"Select Boolean Value","program.box.contents":"Contents","program.options.script.general":"General","program.options.script.advanced":"Advanced","program.button.add_script":"Add Script","program.desc.script":"To send a script to the control box, please enter the contents.","program.options.interface.modbus":"Modbus Client (Interrupt)","program.options.interface.mc":"Mitsubishi (MC Protocol)","program.options.interface.xgt":"LS PLC (XGT Protocol)","program.options.interface.socket":"Socket Interface","program.options.interface.mechmind":"MechMind 3D","program.box.modbus":"Modbus Client","program.box.mc":"MC Protocol","program.box.xgt":"XGT Protocol","program.box.socket":"Socket Interface","program.box.mechmind":"MechMind 3D Interface","program.field.target_ip":"Target Server IP Address","program.field.target_port":"Target Server Port Number","program.field.function_list":"Function List (Code)","program.field.timeout_sec":"Timeout (sec)","program.box.write_configuration":"Write Configuration","program.field.target_address":"Target Address","program.field.target_payload":"Target Payload","program.desc.modbus.write.add_payload":"Please enter a payload value.\\nOnly numbers up to unsigned 2 bytes in size are allowed (2¹⁶ - 1= 65,535).\\nUp to 40 payloads can be added.","program.desc.mc.write.word.add_payload":"Please enter a payload value.\\nOnly numbers up to 2 bytes in size are allowed (-2¹⁵ ~ 2¹⁵-1 = -32,768 ~ 32,767).\\nUp to 40 payloads can be added.","program.desc.mc.write.bit.add_payload":"Please enter a payload value.\\nOnly binary values are accepted [False (0), True (1)].\\nUp to 40 payloads can be added.","program.desc.socket.byte.add_payload":"Please enter a payload value.\\nOnly numbers up to unsigned 1 byte in size are allowed (2⁸−1 = 0~ 255).\\nUp to 40 payloads can be added.","program.button.add_payload":"Add Payload","program.field.target_name":"Target variable Name","program.field.target_length":"Target variable Write length","program.options.thread.general":"Insert General/Non-Stop Thread","program.options.thread.event":"Event thread call","program.field.thread_select":"Select Thread Type","program.ph.thread":"Please select a thread type.","program.button.select":"Select","program.field.thread_index":"Thread Index","program.ph.thread.thread_index":"Select event thread.","program.ph.thread.no_data":"No event threads are registered.","program.options.thread.type.general":"General Thread","program.options.thread.type.event":"Event General Thread","program.field.allow_pause":"Allow Pause","program.option.thread.allow":"Allow","program.option.thread.ignore":"Ignore","program.desc.thread.general":"Runs automatically in parallel with the main program.\\nUse the 'Repeat' function for repeated actions.\\nRobot movement functions (such as Move, Circle etc) are not available.\\nThe thread is also paused when the 'Pause' or 'Alarm' function is used.","program.desc.thread.event":"Does not start automatically and runs when an event is triggered.\\nUse the 'Repeat' function for repeated actions.\\nRobot movement functions (such as Move, Circle etc) are not available.\\nThe Thread is also paused when the 'Pause' or 'Alarm' function is used.","program.desc.thread.basic":"General Thread: In 'Pause' or 'Collision Detection' situations, thread opreation is paused.\\nNon-Stop Thread: In 'Collision Detection' situation, thread opreation is paused.\\nNon-Stop Thread2: In both cases the thread does not stop.","program.button.cancel":"Cancel","program.button.add_point":"Add Point","program.field.robot_model":"Robot Model","program.ph.memo":"Enter a memo.","program.options.move.intended":"Intended","program.options.move.constant":"Constant","program.options.move.velocity":"Velocity Blending","program.options.move.position":"Position Blending","program.field.variable_name":"Variable Name","program.tooltip.point.variable_name":"Stores the target position values.","program.field.point_name":"Point Name","program.tooltip.point.point_name":"Specifies the name of the point command.","program.tooltip.point.memo":"Enter additional information for reference.","program.field.input_method":"Input Method","program.tooltip.point.input_method":"Enter an absolute position or a position relative to the reference point.","program.box.target_":"Target {{mode}}","program.options.mode.direct":"Manual Input","program.options.mode.relative":"Relative Motion","program.field.reference_point":"Reference Point","program.tooltip.point.reference_point":"Select point variables declared in previous steps or global variables.","program.button.current_position":"Get Current Position","program.button.preview":"Preview","program.ph.point.reference_point":"Select Reference Point.","program.options.coordinate.joint_space":"Joint Space","program.options.coordinate.global_space":"Global Frame","program.options.coordinate.tool_space":"Tool Frame","program.options.coordinate.user_space":"User Frame","program.options.coordinate.target_space":"Target Frame","program.field.reference_coordinate":"Reference Coordinate","program.field.move_unit":"Move unit","program.box.speed":"Speed","program.field.setting_method":"Setting Method","program.field.velocity":"Velocity","program.field.acceleration":"Acceleration","program.options.setting_method.per_spd":"%-based","program.options.setting_method.abs_spd":"Absolute/physical value","program.options.tcp_tool.current":"Keep current selection","program.field.additional_properties":"Additional Properties","program.field.additional":"Additional Settings","program.field.after_script":"After Done Script","program.tooltip.point.after_script":"Enter commands to execute after the point operation is completed.","program.field.properties":"Properties","program.empty.desc.property":"No properties have been set.","program.button.addProperty":"Add Property","program.box.continuous":"Continuous Variation","program.box.discrete":"Discrete Variation","program.option.dout":"Digital Output","program.option.aout":"Analog Output","program.option.weldingCurrent":"Welding Current","program.option.weldingVoltage":"Welding Voltage","program.option.weldingFeedRate":"Welding Feed Rate","program.option.weavingMagnitude":"Weaving Magnitude","program.option.weavingSpeed":"Weaving Speed","program.label.doutput":"D.Output","program.label.aoutput":"A.Output","program.box.type":"Type","program.box.rotation_center":"Rotation Center","program.options.cirle.type.axis":"Axis","program.options.cirle.type.3point":"3-Points","program.box.rotation_angle":"Rotation Angle","program.box.via_point":"Via Point","program.box.radius":"Radius","program.field.radius_option":"Radius Option","program.options.radius.none":"None","program.options.radius.rate_per":"Rate per revolution","program.options.radius.size_per":"Size per revolution","program.field.radius_param":"Radius Parameter","program.field.posture":"Target Posture","program.field.project":"Project","program.field.movement_type":"Movement Type","program.options.project.main":"Top-Level (Main) Project","program.options.project.sub":"Currently running (Sub) Project","program.options.zeroPosture":"Zero Posture","program.options.posture.home":"Project Home Posture","program.options.posture.zero":"Joint Zero Posture","program.field.tool_list":"Tool List","program.field.output_location":"Output Location","program.box.output_mode":"Output Mode","program.options.d.output_mode.general":"General","program.box.digital_out":"Digital Out","program.options.d.output_mode.bit_combination":"Bit combination","program.options.d.output_mode.signal_toggle":"Signal toggle","program.options.d.output_mode.whole_port_control":"Whole port control","program.options.d.output_mode.unit_pulse_shot":"Unit pulse shot","program.options.d.output_location.side":"Control Box","program.options.d.output_location.ext":"Extension Board","program.options.a.output_location.side":"Control Box","program.options.a.output_location.ext":"Extension Board","program.box._control_box":"{{mode}} Current Signal","program.box.extension":"Extension","program.box.target_signal_conf":"Target Signal Configuration","program.field.bit_comb_range":"Bit Combination Rage","program.field.start_port":"Start Port","program.field.end_port":"End Port","program.field.target_val":"Target Value","program.options.direction.normal":"Normal Direction","program.options.direction.inverse":"Inverse Direction","program.options.power.off":"Off","program.options.power.on":"On","program.field.pulse_mode":"Pulse mode","program.field.port_selection":"Port Selection","program.options.pulse_mode.general":"General Type","program.options.pulse_mode.inversion":"Inversion Type","program.options.pulse_mode.non_block":"Non-Block","program.field.analog_out":"Analog Out","program.options.a.output_mode.general":"General Analog","program.box.toolout":"Tool Out","program.box.signal_conf":"Tool Current Signal","program.field._dout":"{{mode}} Digital Output","program.field.current":"Current","program.field.target":"Target","program.field._voltage":"{{mode}} Voltage","program.box.axis_options":"Axis Options","program.field.torch_direction_axis":"Torch Direction Axis","program.field.weaving_direction_axis":"Weaving Direction Axis","program.box.weaving_plane_selection":"Weaving Plane Selection","program.box.user_defined_parameters":"User Orientation","program.box.magnitude":"Magnitude","program.box.phase":"Phase","program.box.phase2":"Phase","program.box.time_schedule":"Time Schedule","program.box.scale":"Scale","program.field.scale_rate":"Scale Rate","program.box.offset_options":"Offset options","program.field.offset_torch_direction":"Offset Torch Direction","program.field.offset_weaving_direction":"Offset Weaving Direction","program.box.angle_options":"Angle Options","program.field.swing_angle":"Swing Angle","program.field.distortion_angle":"Distortion Angle","program.field.stop_adjusting_time":"Stop Adjusting Time","program.options.mode.speed":"Speed","program.options.conveyor.conveyor":"Conveyor","program.options.conveyor.linear":"Linear Conveyor","program.options.conveyor.circular":"Circular Conveyor","program.box.speed_options":"Speed Options","program.field.conveyor_speed":"Conveyor Speed","program.field.speed_adjusting_time":"Speed Adjusting Time","program.box.set_ref_points":"Set Reference Points","program.field.ref_points":"Reference Points","program.field.present_points":"Present Points","program.desc.conveyor":"Select Reference Points.","program.button.add_ref_point":"Add Reference Point","program.box.conveyor_type":"Conveyor Type","program.box.motion_list":"Motion List","program.box.move_type":"Move type","program.ph.motion_list":"Select file.","program.ph.no_data":"No data","program.ph.select_data":"Select the data","program.section.title.modeSelection":"Mode Selection","program.options.welding.on":"Arc On","program.options.welding.off":"Arc Off","program.options.changeTarget":"Change Target","program.options.changeGain":"Change Gain","program.section.title.sensingSetting":"Sensing Setting","program.field.label.sensingDataPoint":"Sensing Data Point","program.field.label.sensingSaturationMode":"Sensing Saturation Mode","program.field.label.sensingSaturationLow":"Sensing Saturation Lower Limit","program.field.label.sensingSaturationUpper":"Sensing Saturation Upper Limit","program.field.label.sensingLowPassFilter":"Sensing Data LPF Filter","program.field.label.sensingWeightingMode":"Sensing Weighting Mode","program.options.noSaturation":"No Saturation","program.options.saturationLU":"Saturation with L and U","program.options.saturationHold":"Saturation with Hold","program.options.curveWeight":"Curve Weight","program.options.evenWeight":"Even Weight","program.options.linearWeight":"Linear Weight","program.options.reducedLinearWeight":"Reduced Linear Weight","program.section.title.targetSetting":"Target Setting","program.field.label.depthDirTargetMethod":"Depth Direction Target Method","program.field.label.depthDirDesiredValue":"Depth Direction Desired Value","program.field.label.weaveDirTargetMethod":"Weave Direction Target Method","program.field.label.weaveDirDesiredValue":"Weave Direction Desired Value","program.options.desiredValue":"Desired Value","program.options.averageT1T2":"Average btw. T1, T2","program.section.title.gainSetting":"Gain Setting","program.field.label.depthDirGain":"Depth Direction {{msg}} Gain","program.field.label.depthDirAntiWind":"Depth Direction AntiWind","program.field.label.depthDirMaxDev":"Depth Direction Max Dev.","program.field.label.weaveDirGain":"Weave Direction {{msg}} Gain","program.field.label.weaveDirAntiWind":"Weave Direction AntiWind","program.field.label.weaveDirMaxDev":"Weave Direction Max Dev.","program.options.changeForce":"Change Force","program.section.title.limitation":"Limitation","program.field.label.posMaxDeviation":"Position Max. Deviation","program.field.label.rotMaxDeviation":"Rotation Max. Deviation","program.section.title.sensorSetting":"Sensor Setting","program.field.label.sensorType":"Sensor Type","program.field.label.sensorFilter":"Sensor Filter","program.field.label.sensorSignalOption":"Sensor Signal Option","program.section.title.others":"Others","program.field.label.contactForce":"Contact Detect Force","program.options.autoNulling":"Auto Nulling","program.options.rawValue":"Raw Value","program.box.init_standby":"Initial Standby","program.box.crater_setting":"Crater condition settings","program.box.crater_time":"Crater holding time","program.box.wait_follow":"Wait for follow up","program.box.arc_detection":"Arc On and Signal Detection","program.box.welding_setting":"Welding condition settings","program.box.robot_cond_setting":"Robot condition settings","program.box.time_before_arc":"Time Before Arc","program.field.condition_mode":"Condition setting method","program.field.condition_options":"Condition Options","program.field.job_number":"Job Number","program.field.welding_current":"Welding current","program.field.welding_voltage":"Welding voltage","program.field.feed_rate":"Feed Rate","program.field.arc_control":"Arc Control","program.field.arc_length":"Arc Length","program.field.parameter":"Parameter {{idx}}","program.options.condition.weld_keep":"Keep Previous Conditions","program.options.condition.weld_change":"Change Welding Conditions","program.box.time":"Time","program.box.time_holding":"Time for Holding","program.box.time_pre_gas":"Time for Pre-Gas ","program.box.arc_signal_detection_count":"Arc signal detection count","program.box.arc_signal_detection_time":"Arc signal detection time","program.box.arc_signal_retry_interval_time":"Arc signal retry interval time","program.box.ot_option":"Orientation Option","program.box.gap_number":"Gap Number","program.box.set_margin":"Set Margin","program.field.margin_height":"Margin Height","program.field.margin_width":"Margin Width","program.field.margin_over":"Margin Over","program.field.margin_parameter":"Margin Parameter","program.box.corner_points":"Corner Points","program.options.macro.flat_surface":"Flat Surface","program.options.macro.round_r":"Round (R)","program.options.macro.round_h":"Round (H)","program.options.macro.triangle":"Triangle","program.options.macro.3d_round":"3D Round","program.options.weaving_type.none":"None","program.section.title.taskReference":"Task Reference","program.field.title.planeSelection":"Plane Selection","program.options.plane.present":"Present TCP Frame","program.options.plane.follow_base_trajectory":"Follow base-trajectory","program.section.title.patternParams":"Pattern Parameters","program.title.timeSchedule":"Time Schedule","program.section.title.motionTransform":"Motion Transformation","program.field.title.scaleXRate":"Scale (x) Rate","program.ph.no_motion_list":"No Motion Record.","program.field.robot_speed":"Robot Speed","program.field.robot_acceleration":"Robot Acceleration","program.ph.selected_tool":"Select the Tool","program.ph.no_tool_available":"No Tool Record","program.options.default":"Default","program.options.syncSpeedBar":"Sync with Speed Bar","program.options.stopPause":"Stop at Pause State","program.section.title.timerSettings":"Timer Settings","program.field.title.timerNumber":"Timer Number","program.options.timer":"Timer {{idx}}","program.section.title.resetTime":"Reset Time","program.field.title.timingOption":"Timing Option","program.field.title.actionOption":"Action Option","program.box.rotation_axis":"Rotation Axis","program.box.goal_point":"Goal Point","program.ph.command_search":"Search for the desired command.","program.button.set_begin":"Set Begin","program.label.home_move":"Move to Home During Playback","program.box.position":"Position","program.option.begin.use_default":"Enabled (Default)","program.option.begin.use_speed":"Enabled (x0.3 Speed)","program.option.begin.not_use":"Disabled","program.desc.begin_move":"This setting determines whether the “Move to Home During Playback” feature is enabled in the UI.","program.box.out_collision_detection":"Out Collision Detection","program.box.self_collision_detection":"Self Collision Detection","program.box.user_frame_selection":"User Frame Selection","program.box.fixed_speed":"Fixed Speed","program.box.target_shift_set_via_manual":"Target Shift: Set via Manual","program.box.speed_bar":"Speed Bar","program.box.time_constraint":"Time Constraint","program.box.ascii_function_call":"ASCII Function Call","program.box.joint_impedance_control":"Joint Impedance Control","program.box.free_drive_mode":"Free Drive Mode","program.box.master_mode_selection":"Master Mode Selection","program.box.user_frame_set_via_xyz":"User Frame: Set via XYZ","program.box.user_frame_set_via_tcp":"User Frame: Set via TCP","program.box.user_frame_set_via_3_points":"User Frame: Set via 3 Points","program.box.target_shift_set_via_landmark":"Target Shift: Set via Land-Mark","program.box.program_flow_change":"Program Flow Change","program.box.digital_input_function_mask":"Digital Input Function Mask","program.box.digital_output_function_mask":"Digital Output Function Mask","program.box.jacobian_based_speed_ctrl":"Jacobian based Speed-Control","program.box.vibration_torque_based":"Vibration (Torque based)","program.box.vibration_motion_based":"Vibration (Motion based)","program.box.ext_axis_sync":"External Axis Synchronization","program.box.tcp_speed_bound":"TCP Speed Bound","program.box.move_break_block":"Move Break/Block","program.box.joint_ref_filter":"Joint Reference Filter","program.box.self_coll_detect_blind":"Self-Coll Detection Blind","program.box.joint_origin_calibration":"Joint Origin Calibration","program.box.wrist_singularity_mode":"Wrist Singularity Mode","program.box.operation_range_check":"Operation Range Check","program.box.ft_sensor_software_nulling":"FT Sensor Software Nulling","program.field.state":"State","program.field.stop_mode":"Stop Mode","program.options.stop_mode.pause_movement":"Pause Movement","program.options.stop_mode.evasion_stop":"Evasion Stop","program.field.threshold":"Threshold","program.field.internal_distance":"Internal Distance","program.field.external_distance":"External Distance","program.field._option":"{{mode}} Option","program.options.fixed_mode.percent":"Fixed mode: %","program.options.fixed_mode.physical":"Fixed mode: Physical","program.options.time_constraint.unit_move":"Unit Move Time-Constraint","program.options.time_constraint.multi_move":"Multi Move Time-Constraint","program.options.ascii.direct":"Direct Execution","program.options.ascii.que_message":"Que Message","program.field.message":"Message","program.options.joint_impedance.impedance":"On Joint Impedance","program.field.stiffness":"Stiffness","program.field.torque_limit":"Torque Limit","program.options.free_drive.free_drive":"On Free Drive","program.options.free_drive.when_button_clicked":"On When Button Clicked","program.field.sensitivity":"Hand Guiding Sensitivity","program.field.extra_force_frame":"Extra force frame","program.field.extra_force":"Extra force","program.options.user_frame.restore_saved":"Restore Saved","program.options.user_frame.apply_target_temporary":"Apply Target (Temporary)","program.options.user_frame.save_target_permanently":"Save Target Permanently","program.options.master_mode.reflected":"Reflected Joint Angle","program.options.master_mode.synchronized":"Syncronized Cartesian","program.field.user_frame":"User Frame","program.field.setting_option":"Setting option","program.field.target_frame":"Target frame","program.options.frame.global":"Global Frame","program.options.frame.local":"Local Frame","program.options.frame.user":"User Frame","program.options.frame.local_tcp":"Local TCP Frame","program.field.point_ordering":"Point ordering","program.options.point_order.origin_x_axis_xy_plane":"Origin → X Axis → XY Plane","program.options.point_order.origin_y_axis_yz_plane":"Origin → Y Axis → YZ Plane","program.options.point_order.origin_z_axis_zx_plane":"Origin → Z Axis → ZX Plane","program.field.shift_number":"Shift Number","program.field.shift_mode":"Shift mode","program.field.shift":"Shift","program.options.shift_mode.adjust_l_move":"Adjust L-Move","program.options.shift_mode.adjust_l_j_move":"Adjust L,J-Move","program.options.shift_mode.adjust_j_move":"Adjust J-Move","program.field.tolerance":"Tolerance","program.options.stop":"Stop","program.options.pause":"Pause","program.options.resume":"Resume","program.options.reset_collision":"Reset Collision","program.field.target_component":"Target Component","program.options.flow_target.all_robots":"All Robot Components","program.options.flow_target.this_component":"This Component","program.field.target_device":"Target Device","program.options.device.control_box":"Control Box I/O","program.options.device.extension_io":"Extension I/O","program.options.device.tool_flange_io":"Tool Flange I/O","program.options.port.whole":"Whole Port","program.options.port.port":"Port","program.options.mask.off":"Disable-Mask Off","program.options.mask.on":"Disable-Mask On","program.options.deactive":"De-active","program.field.time":"Time","program.field.bound_mode":"Bound Mode","program.field.tcp_speed":"TCP Speed","program.options.bound_off":"Bound Off (System Default)","program.options.bound_on":"Bound On","program.field.breakblock_mode":"Break/Block Mode","program.options.break.off":"Off","program.options.break.block":"Continuous Block","program.options.break.once":"Break Once","program.field.filter_mode":"Filter Mode","program.field.filter":"Filter","program.options.jrf.off":"Off (System Default)","program.options.jrf.custom_filter":"Adjust Custom Filter","program.field.detect_blind_time":"Detection Blind Time (sec)","program.button.empty":"Empty","program.rby1.move.no_part":"Add a part to move using the buttons above.","program.rby1.tooltip.hand_ref":"Base and T5 are selectable only for Cartesian moves. Joint moves always use Base, and Torso is always relative to Base.","amr.button.goal":"Goal","amr.button.target":"Target","amr.button.linear":"Linear","amr.button.rotate":"Rotate","amr.button.map_load":"Map Load","amr.button.loc_init":"Loc.Init","amr.button.loc_control":"Loc.Control","amr.button.hw_control":"H/W Control","amr.button.dock":"Dock","amr.button.obs_box":"OBS Box","amr.button.set_safety":"Set Safety","amr.button.stream":"Stream","program.button.load":"Load","program.button.save":"Save","program.button.new":"New","program.button.search_variables":"Variables","program.button.close":"Close","program.button.call_event_thread":"Call Event Thread","program.button.general_thread":"General Thread","program.box.read_configuration":"Read Configuration","program.box.connect_configuration":"Connect Configuration","program.field.return_variable_name":"Return Variable Name","program.field.target_read_length":"Target Read Length","program.field.goal_id":"Goal ID","program.field.preset":"Preset","program.field.method":"Method","program.field.zAngle":"Z Angle","program.field.target_position":"Target Position ","program.field.speed":"Speed","program.field.map_name":"Map Name","program.options.init_mod.init":"Init","program.options.init_mod.auto":"Auto Init","program.options.init_mod.semi":"Semi Auto Init","program.options.init_mod.random":"Random Init","amr.button.localization_init":"Localization Init","program.field.init_mode":"Init Mode","amr.button.localization_control":"Localization Control","program.field.control":"Control","program.options.control.start":"Start","program.options.control.stop":"Stop","program.box.hardware_control":"Hardware Control","program.options.control.motor":"Motor","program.options.control.led":"LED","program.field.dock_mode":"Dock mode","program.options.dock.dock":"Dock","program.options.dock.undock":"UnDock","program.field.min_position":"Min Position","program.field.max_position":"Max Position","program.field.map_range":"Map Range","program.options.safety.field":"Safety Field","program.options.safety.flag":"Safety Flag","program.options.safety.io":"Safety I/O","program.box.set_reset_flag":"Set Reset Flag","program.box.safety_mcu":"Safety MCU","program.box.safety_field":"Safety Field","program.field.reset_flag":"Reset Flag","program.desc.safety":"If a reset flag is to be set, enter its key and value.","program.button.add_flag":"Add Flag","program.field.key":"Key","program.field.mcu_din":"MCU {{mode}} Din","program.box.pose":"Pose","program.box.move.axis":"Move Aixs","program.option.sync_ignore":"Ignored when running alone","program.field.pattern_id":"Pattern ID","program.field.pattern_type":"Pattern Type","program.options.pattern_line":"Line (X)","program.options.pattern_plane":"Plane (X-Y)","program.options.pattern_cube":"Cube (X-Y-Z)","program.options.pattern_random":"Random","program.field.pattern_count":"Count","program.field.pattern_point_num":"{{axis}}-Axis Point Num","program.field.anchor_point":"Anchor Point","program.field.incremental":"Incremental Count","program.desc.pattern":"Set Corner Points.","program.button.add_corner_point":"Add Corner Point","settings.general.menu.joint":"Robot Joint","settings.general.title.jointKineLimit":"Joint Kinematic Limit","settings.general.desc.jointKineLimit":"Defines the physical range (Pos) and maximum speed (Speed) for each joint to prevent hardware damage and collisions.","program.field.mc_protocol":"Protocol Type","program.field.variable_value":"Variable Value","program.field.device_type":"Device Type","program.field.cpu_type":"Machine Type","program.field.desc.bit":"Select bit value.","program.field.address_type":"Address Type","settings.general.title.deflection_compensation":"Deflection Compensation","settings.general.desc.deflection":"Compensates for downward positional deflection caused by the weight of an end effector attached to the tool flange.","setting.options.adjust_deflection":"Adjust Deflection","settings.outColl.options.option.pause":"Pause Movement","settings.outColl.options.option.evasion":"Evasion Stop","settings.selfColl.options.option.stop":"Stopped just before self-collision","settings.selfColl.options.option.speed":"Speed control during self-collision","settings.title.selected":"Selected","settings.general.userScript.card.title":"Script Port ","settings.general.userScript.desc":"Configure user scripts by port.","settings.general.userScript.textfield.title":"User Script","settings.general.afterAction.title.action":"Action","settings.general.afterAction.desc":"Set the action to be performed after the selected task.","settings.options.option.boxNone":"None","settings.options.option.sphere":"Sphere","settings.options.option.cylinder":"Cylinder","settings.options.option.box":"Box","settings.tool.title.width":"width","settings.io.title.port":"Port","settings.io.title.changeDirection":"Change Reverse Direction","settings.io.title.normalDirection":"Normal Direction","settings.io.title.reverseDirection":"Reverse Direction","settings.io.title.filter":"Filter","settings.io.dinFilter.desc":"Sets the delay for the input signal.","settings.io.title.count":"Count","settings.devices.menu.welding":"Welding","settings.devices.welding.desc":"Set welding related options such as device information, input/output signal mapping, hardware, and conversion map.","settings.devices.welding.device.title":"Set welding device options","settings.devices.welding.device.textfield":"Device {{msg}}","settings.devices.welding.output.title":"Set welding output options","settings.devices.welding.output.arcOn":"Arc On Signal","settings.devices.welding.output.touchOn":"Touch On Signal","settings.devices.welding.output.gasOn":"Gas On Signal","settings.devices.welding.output.wireInch":"Wire Inch Signal","settings.devices.welding.output.wireReinch":"Wire Re-Inch Signal","settings.devices.welding.output.currentPort":"Current Setting Port","settings.devices.welding.output.voltagePort":"Voltage Setting Port","settings.devices.welding.input.title":"Set welding input options","settings.devices.welding.input.welderReady":"Welder Ready Signal","settings.devices.welding.input.arcGenFeedback":"Arc Generated Feedback","settings.devices.welding.input.touchFeedback":"Touch Signal Feedback","settings.devices.welding.input.gasFeedback":"Gas Signal Feedback","settings.devices.welding.input.feederFeedback":"Feeder Signal Feedback","settings.devices.welding.input.welderErrSignal":"Welder Error Signal","settings.devices.welding.input.currentFeedback":"Current Feedback","settings.devices.welding.input.voltageFeedback":"Voltage Feedback","settings.devices.welding.hardware.title":"Set welding hardware options","settings.devices.welding.hardware.processType":"Process Type","settings.devices.welding.hardware.wireType":"Wire Type","settings.devices.welding.hardware.wireSize":"Wire Size","settings.devices.welding.hardware.gasType":"Gas Type","settings.devices.welding.convMap.title":"Set welding conversion map options","settings.devices.welding.convMap.weldingCurrent":"Welding Current","settings.devices.welding.convMap.addCurrentMap":"Add Current Map","settings.devices.welding.convMap.weldingVoltage":"Welding Voltage","settings.devices.welding.convMap.addVoltageMap":"Add Voltage Map","settings.devices.welding.convMap.title.current":"Current","settings.devices.welding.convMap.title.output":"Output","settings.devices.welding.convMap.desc.limit":"Up to {{max}} can be registered.","settings.devices.welding.convMap.title.voltage":"Voltage","settings.devices.menu.externalFT":"External F/T","settings.devices.externalFT.desc":"Configuration for the external F/T sensor. Supports adjustment of mounting orientation offsets and signal filter values.","settings.devices.externalFT.deviceType":"Device Type","settings.devices.externalFT.mountingOption":"Mounting Option","settings.devices.externalFT.options.noSensor":"No Sensor","settings.devices.externalFT.options.defaultMount":"Default Mount","settings.devices.externalFT.options.customMount":"Custom Mount","settings.devices.externalFT.wrtFlange":"Custom Mount wrt flange","settings.devices.externalFT.signalFilter":"Signal Filter","settings.devices.menu.communication":"Communication","settings.devices.communication.desc":"Configure the activation status and connection ports for each communication protocol with external systems and devices.","settings.menu.title.amrRobot":"Robot","settings.menu.title.amrMotor":"Motor","settings.menu.title.amrSensor":"Sensor","settings.menu.title.drive":"Drive","settings.menu.title.obsDetect":"Obstacle Detect","settings.menu.title.docking":"Docking","settings.menu.title.localization":"Localization","settings.menu.title.mapping":"Mapping","settings.menu.title.logging":"Logging","settings.amr.general.amrRobot.title":"Robot Configuration","settings.amr.general.amrRobot.desc":"Input the offset to apply to the default robot size.","settings.amr.general.title.robotSize":"Add Robot {{axis}} Size","settings.amr.general.title.batAlarm":"Battery Alarm","settings.amr.general.title.alarm":"Alarm","settings.amr.general.title.batLowThreshold":"Battery Low Threshold","settings.amr.general.title.batCritLowThreshold":"Battery Critical Low Threshold","settings.amr.general.title.speaker":"Speaker","settings.amr.general.motor.title.speedLimit":"Speed Limit","settings.amr.general.motor.desc.speedLimit":"Sets the linear and angular speed limits for the motor.","settings.amr.general.motor.title.accLimit":"Acceleration Limit","settings.amr.general.motor.desc.accLimit":"Sets the linear and angular acceleration limits for the motor.","settings.amr.general.motor.title.motorSpdLimit":"Motor Speed Limit","settings.amr.general.motor.desc.motorSpdLimit":"Sets the absolute safety limits for linear and angular speeds to prevent motor damage and system instability.","settings.amr.general.motor.title.linearLimit":"Linear Limit","settings.amr.general.motor.title.angularLimit":"Angular Limit","settings.amr.general.motor.title.angularLimit2":"Angular Limit","settings.amr.general.sensor.title.qrConfig":"Sensor QR Configuration","settings.amr.general.sensor.desc.qrConfig":"Enable or disable the QR code sensor.","settings.amr.general.sensor.title.cameraConfig":"Sensor Camera Configuration","settings.amr.general.sensor.desc.cameraConfig":"Configure camera power and data collection for Depth, Filter, and RGB.","settings.amr.general.sensor.title.imuConfig":"Sensor IMU Configuration","settings.amr.general.sensor.desc.imuConfig":"Configure IMU sensor activation and data measurement dimensions (2D/3D).","settings.amr.general.sensor.title.bottomQR":"Bottom QR","settings.amr.general.sensor.title.camera":"Camera","settings.amr.general.sensor.title.cameraDepth":"Camera Depth","settings.amr.general.sensor.title.cameraFilter":"Camera Filter","settings.amr.general.sensor.title.cameraRGB":"Camera RGB","settings.amr.drive.general.title.goalCheck":"Goal Check","settings.amr.drive.general.desc.goalCheck":"Configure the tolerance thresholds for distance and orientation to determine goal arrival.","settings.amr.drive.general.label.distThreshold":"Distance Threshold","settings.amr.drive.general.label.orientThreshold":"Orientation Threshold","settings.amr.drive.general.title.goalAlign":"Goal Align","settings.amr.drive.general.desc.goalAlign":"Set parameters for precise alignment of position and orientation upon reaching the goal.","settings.amr.drive.general.label.approachGain":"Approach Gain","settings.amr.drive.general.label.extendCtrlTime":"Extended Control Time","settings.amr.drive.general.label.linearMinSpeed":"Linear Min Speed","settings.amr.drive.general.label.angularMinSpeed":"Angular Min Speed","settings.amr.obsDetect.title.obsMap":"Obstacle Map","settings.amr.obsDetect.desc.obsMap":"Configure the parameters for generating the environmental obstacle map and defining the robot's detection boundaries.","settings.amr.obsDetect.label.gridSize":"Grid Size","settings.amr.obsDetect.label.detectRange":"Detect Range (Robot based)","settings.amr.obsDetect.label.zLowerHeight":"Z-axis lower Height","settings.amr.obsDetect.label.zUpperHeight":"Z-axis upper Height","settings.amr.obsDetect.title.pathMargin":"Path Planning Margin","settings.amr.obsDetect.desc.pathMargin":"Set the buffer distance (margin) between the planned path and detected obstacles to ensure collision-free navigation.","settings.amr.obsDetect.label.pathMargin":"Path Margin {{axis}}","settings.amr.obsDetect.title.safetyMargin":"Safety Margin","settings.amr.obsDetect.desc.safetyMargin":"Define safety thresholds and predictive parameters to prevent collisions during real-time movement.","settings.amr.obsDetect.label.deazone":"Deadzone Range (Robot based)","settings.amr.obsDetect.label.predictTime":"Predict Time","settings.amr.obsDetect.label.detectMinSpd":"Detect Linear Min Speed","settings.amr.obsDetect.label.safetyMargin":"Safety Margin {{axis}}-axis","settings.amr.docking.title.general":"Docking General","settings.amr.docking.desc.general":"Basic option settings for how the robot recognizes and approaches the docking station.","settings.amr.docking.label.lidarType":"Lidar Type","settings.amr.docking.label.chargeType":"Charge Type","settings.amr.docking.label.reverseFlag":"Reverse Flag","settings.amr.docking.label.forward":"Forward","settings.amr.docking.label.backward":"Backward","settings.amr.docking.label.autoMove":"Auto Undock on Move","settings.amr.docking.title.offsetGain":"Docking Offset/Gain","settings.amr.docking.desc.offsetGain":"Setting of physical distance correction value and gain value used in docking control algorithm (PD control).","settings.amr.docking.label.xOffset":"X Offset","settings.amr.docking.label.chargeWaitTime":"Charge Waiting Time","settings.amr.docking.label.distanceKD":"Distance KD","settings.amr.docking.lable.distanceKP":"Distance KP","settings.amr.docking.label.orientationKD":"Orientation KD","settings.amr.docking.label.orientationKP":"Orientation KP","settings.amr.docking.title.threshold":"Docking Threshold","settings.amr.docking.desc.threshold":"Setting reliability weights assigned to each element when determining a docking station.","settings.amr.docking.label.constScoreWeight":"Consistency score weight","settings.amr.docking.label.distScoreWeight":"Distance score weight","settings.amr.docking.label.historyScoreWeight":"Docking history score weight","settings.amr.docking.label.ICPScoreWeight":"ICP matching score weight","settings.amr.docking.label.targetScoreWeight":"Target length/size score weight","settings.amr.docking.label.segmentScoreWeight":"Segment ratio score weight","settings.amr.docking.label.shapeScoreWeight":"Shape/angle matching score weight","settings.amr.loc.title.localization":"{{param}} Localization","settings.amr.loc.desc.localization":"Set localization settings and filtering options for robot pose estimation.","settings.amr.loc.label.localizationMode":"Localization Mode","settings.amr.loc.label.EKF":"Extended Kalman Filter","settings.amr.loc.desc.2dLocalization":"Configure ICP-based scan matching and odometry fusion parameters for 2D localization.","settings.amr.loc.label.costThreshold":"Cost Threshold","settings.amr.loc.label.errorThreshold":"Error Threshold","settings.amr.loc.label.odometry":"Odometry Fusion Ratio","settings.amr.loc.label.inlierError":"Check Inlier Error","settings.amr.loc.label.inlierRatio":"Check Inlier Ratio","settings.amr.loc.label.checkDistance":"Check Distance","settings.amr.loc.label.maxFeature":"Max Feature","settings.amr.loc.title.surfel":"Surfel","settings.amr.loc.label.surfel":"Surfel","settings.amr.loc.label.surfelRange":"Surfel Range","settings.amr.loc.desc.3dLocalization":"Configure high-precision 3D pose estimation parameters by matching real-time 3D LiDAR point clouds with the global map.","settings.amr.loc.label.surfelBalance":"Surfel Balance (ICP Axis distribution)","settings.amr.loc.label.surfelNN":"Surfel NN","settings.amr.mapping.desc.icp":"Parameter settings regarding scan matching precision and data processing method.","settings.amr.mapping.label.viewThreshold":"View Threshold","settings.amr.mapping.label.eraseGap":"Erase Gap","settings.amr.mapping.label.accumulation":"Accumulation","settings.amr.mapping.title.keyFrame":"Key Frame","settings.amr.mapping.desc.keyFrame":"Settings regarding keyframe generation conditions, loop closures, and spatial efficiency during map generation.","settings.amr.mapping.label.loopTryDistance":"Loop Closure Try Distance","settings.amr.mapping.label.loopTryOverlap":"Loop Closure Try Overlap","settings.amr.mapping.label.voxelSize":"Voxel Size","settings.amr.mapping.label.windowSize":"Window Size","settings.amr.mapping.label.updateNum":"Update Num","settings.amr.logging.title.logging":"Loggin","settings.amr.logging.desc.logging":"Configure logging levels and select specific system modules to monitor and record operational data.","settings.amr.logging.label.logLevel":"Log Level","settings.amr.logging.label.loggingStatus":"Logging Show Status","settings.amr.logging.label.autoCtrl":"Auto Control","settings.amr.logging.label.commRRS":"Communication RRS","settings.amr.logging.label.lidar":"Lidar {{param}}","settings.amr.logging.label.mobile":"Mobile","settings.amr.logging.label.obsMap":"Obs Map","settings.amr.logging.label.fileSave":"File Save","settings.amr.logging.label.filePath":"File Path","settings.amr.logging.option.trace":"Trace","settings.amr.logging.option.debug":"Debug","settings.amr.logging.option.info":"Information","settings.amr.logging.option.warning":"Warning","settings.amr.logging.option.error":"Error","settings.amr.logging.option.critical":"Critical","program.modal.title.searchVariables":"Search Variables","program.modal.label.valueType":"Value Type","program.modal.label.defaultValue":"Default Value","program.modal.label.context":"Context","program.modal.label.all":"All","program.modal.label.manipulate":"Manipulate","program.modal.label.amr":"AMR","program.modal.label.local":"Local ","program.modal.label.global":"Global ","program.modal.msg.varNotFound":"Variables not found","program.modal.label.declaredVariables":"Declared","program.modal.label.pluginVariables":"Plugin","program.modal.label.systemReference":"Reference","program.modal.placeholder.searchVariables":"Search Variables","program.modal.label.copied":"Copied","program.modal.label.copyVariableReference":"Copy Key","program.modal.label.copyCurrentValue":"Copy Value","program.modal.label.currentValue":"Current Value","program.modal.label.initialValue":"Initial Value","program.modal.label.notAvailable":"Not Available","program.modal.msg.variableReferenceCopied":"Variable key copied.","program.modal.msg.variableValueCopied":"Variable value copied.","move.menu.button.label.collapse":"Collapse","move.menu.button.label.jog":"Jog","move.menu.button.label.advJog":"Advanced Jog","move.menu.button.label.tcpTool":"TCP Tool","move.menu.button.label.gripper":"Gripper","move.menu.button.label.zeroPose":"Zero Pose","move.menu.button.label.pinpoint":"PinPoint","move.menu.button.label.record":"Record","move.menu.button.label.weld":"Weld","move.menu.title.planeConstJog":"Plane Constrained Jog","move.menu.title.tcpTool":"Selected TCP Tool","move.menu.msg.tcpTool":"No TCP Tool selected","move.menu.button.label.moveOrigin":"Move Joint {{index}} to Origin","move.menu.button.label.moveAllOrigin":"Move all joints to Origin","move.menu.options.option.noSave":"No Save","move.menu.options.option.realTime":"Real Time","move.menu.options.option.mileStone":"Mile Stone","move.menu.label.mileStoneFreq":"Mile Stone Frequency","move.menu.label.fileName":"File Name","move.menu.button.label.recordStop":"Record Stop","move.menu.button.label.recordStart":"Record Start","move.menu.button.label.weldForward":"Wire Forward","move.menu.button.label.weldBackward":"Wire Backward","move.menu.button.label.gasPurge":"Gas Purge On/Off","move.button.label.real":"Real","move.button.label.simulation":"Simulation","move.menu.msg.userCoordinate":"No User Coordinate selected","move.menu.label.distFromBase":"Distance From Base","move.menu.label.rotFromBase":"Rotation From Base","move.menu.label.joint":"Joint","move.menu.label.dist":"Dist","login.title.welcome":"Welcome to MUSCAT!","login.textfield.label.id":"ID","login.textfield.label.password":"Password","login.placeholder.loginInfo":"Enter your {{info}}","login.label.rememberMe":"Auto Login","login.button.label.login":"Log in","login.button.label.logout":"Log out","login.msg.error.id":"ID is required.","login.msg.error.password":"Password is required.","login.modal.title.duplicate":"Another Login Attempt","login.modal.desc.duplicate":" account is attempting to use a bot.\\nWould you like to transfer the license?","login.modal.desc.duplicate.discription":"If you transfer access, you will be logged out.","login.modal.title.saveFailed":"Save Failed","login.modal.desc.saveFailed":"Failed to save the following: {{items}}\\nDo you want to log out anyway","login_peding.modal.desc":"Waiting for {{username}} to approve the login.","login.modal.title.timeout":"Login Request Timed Out","login.modal.title.denied":"Login Request Canceled","login.title.failed":"Login Request Failed","login.msg.error.idOrPassword":"Invalid account information.","login.msg.error.alreadyLogged":"You are already logged in with this account.","login.msg.error.unknown":"An unknown error has occurred. Please contact the administrator.","login.msg.timeout":"Your request has timed out.","move.menu.button.label.calibration":"Calibration","move.menu.options.option.tcpPosCalib":"TCP Position Calibration","move.menu.options.option.tcpOriCalib":"TCP Orientation Calibration","move.menu.options.option.user3Points":"User Frame: 3 Points","move.menu.options.option.userTCPFrame":"User Frame: TCP Frame","move.menu.options.option.extAxis":"External Axis","move.field.label.jointNumber":"Joint Number","move.menu.button.get":"Get","move.menu.calibTCPPos.desc":"Add Points.","move.menu.tab.lable.controlBox":"C.Box","move.menu.tab.lable.extBoard":"Ext.Board","move.menu.title.currentSignal":"Current Signal","move.menu.title.targetSignal":"Target Signal","move.menu.label.digitalInput":"{{loc}} Digital Input","move.menu.label.digitalOutput":"{{loc}} Digital Output","move.menu.label.analogInput":"{{loc}} Analog Input","move.menu.label.analogOutput":"{{loc}} Analog Output","move.menu.label.toolVoltageOutput":"Tool Voltage Output","move.rby1.source.ghost":"Ghost","move.rby1.jogMode.joint":"Joint Jog","move.rby1.jogMode.cartesian":"Cartesian Jog","move.rby1.switch.bothArms":"Mirror Both Arms","move.rby1.monitor.joint":"Joint","move.rby1.monitor.tcp":"TCP","move.rby1.menu.savedPose":"Saved Poses","move.rby1.inputMove.title":"Move to Input Value","move.rby1.inputMove.content":"Move the robot's {{key}} to {{value}}?","move.rby1.savedPose.count":"{{count}}","move.rby1.savedPose.saveDesc":"Save the current real pose","move.rby1.savedPose.namePlaceholder":"Pose name","move.rby1.savedPose.save":"Save","move.rby1.savedPose.searchPlaceholder":"Search pose name","move.rby1.savedPose.axisCount":"{count}} axes","move.rby1.savedPose.current":"Current pose","move.rby1.savedPose.jointTitle":"Joint angle · °","move.rby1.savedPose.tcpTitle":"TCP position · mm / °","move.rby1.savedPose.cartesian":"Cartesian","move.rby1.savedPose.approach":"Move to this pose","move.rby1.savedPose.updateToCurrent":"Update to current pose","move.rby1.savedPose.empty":"No saved poses","move.rby1.savedPose.deleteTitle":"Delete pose","move.rby1.savedPose.deleteContent":'Delete "{{name}}"?',"move.rby1.savedPose.delete":"Delete","move.rby1.zeroPose.partAll":"Move all {{part}} joints to origin","program.field.frequency":"Frequency","program.field.magnitudes":"Magnitudes","program.section.title.motionType":"Motion Type","program.box.options.movement":"{{type}} Movement","program.label.blend":"Blend {{msg}}","program.box.options.linearType":"Linear Type","program.box.options.cornerType":"Corner Type","program.box.options.percentage":"Percentage","program.field.blendRatio":"Blend Ratio","program.field.blendDistance":"Blend Distance","program.field.frameSelection":"Frame Selection","program.section.title.feedSpeed":"Feed Speed","program.field.feedDefault":"Feed Default","program.field.feedRapid":"Feed Rapid","program.field.feedMaxLimit":"Feed Max Limit","program.field.feedRotation":"Feed Rotation","program.section.title.plane":"Plane","program.field.defaultPlane":"Default Plane","program.section.title.offset":"Offset","program.field.willUseConstSpd":"Will Use Constant Speed","program.field.willIgnoreUnknown":"Will Ignore Unknown Code","program.box.option.constantSpeed":"Constant Speed","program.box.option.ignoreUnknown":"Ignore Unknown Code","program.box.option.xyPlane":"XY-Plane","program.box.option.zxPlane":"ZX-Plane","program.box.option.yzPlane":"YZ-Plane","program.options.frame.activeLocal":"Active Local Frame","program.field.delimiter":"Delimiter","program.field.resolve_action":"Type resolution failed","program.options.resolve_action.next":"Proceed after ignoring","program.options.resolve_action.stop":"Stop immediately","program.options.resolve_action.debug":"User confirmation","settings.devices.plc.label.operator":"Operator","log.datepicker.setTime":"Set Time","log.datepicker.preset.last24Hours":"Last 24 hours","log.datepicker.preset.last3Days":"Last 3 days","log.datepicker.preset.lastWeek":"Last week","log.datepicker.preset.lastMonth":"Last month","log.datepicker.preset.last3Months":"Last 3 months","settings.toast.saveSuccess.title":"Saved","settings.toast.saveSuccess.content":"Settings have been saved successfully","settings.amr.general.title.robotSizeMin":"Min {{axis}} Size","settings.amr.general.title.robotSizeMax":"Max {{axis}} Size","settings.amr.docking.label.chargeFlag":"Charge Direction","settings.amr.docking.label.retryCount":"Retry Count","move.amr.pdu.toast.motorConnect.title":"Motor Connected","move.amr.pdu.toast.motorConnect.content":"Motor has been successfully connected","move.amr.pdu.toast.lidarSave.title":"Lidar Field Saved","move.amr.pdu.toast.lidarSave.content":"Lidar field value has been saved","common.toast.apiError.title":"API Request Failed","common.toast.apiError.content":"Please try again later","maintenance.menu.jointUnit":"Joint Unit","maintenance.menu.system":"System","maintenance.menu.safety":"Safety","maintenance.menu.update":"Update","maintenance.menu.robotInfo":"Robot Information","maintenance.menu.management":"Management","maintenance.menu.authentication":"Authentication","maintenance.menu.user":"User","maintenance.menu.externalPeer":"External Peer","maintenance.menu.authPolicy":"Auth Policy","maintenance.title.changeSettings":"Change Settings","maintenance.title.status":"Status","maintenance.joint.desc":"Dedicated tools for joint-specific operations. Manage encoder zeroing, sensor calibration, and fine-tune control gains for optimal hardware performance.","maintenance.system.desc":"Manage core system infrastructure and hardware identities. This section provides tools for low-level configuration, hardware addressing, and essential system maintenance.","maintenance.safety.desc":"Configure various parameter values related to robot safety.","maintenance.safetyStatus.desc":"Displays the status of various robot safety-related signals, including run states, I/O signals, flags, and system states.","maintenance.userManagement.desc":"Manages users comprehensively, including creating new users and modifying or deleting existing user information.","maintenance.sdkManagement.desc":"Issue and manage SDK authentication tokens for system integration.","maintenance.peerManagement.desc":"Register and manage external peer nodes for network integration.","maintenance.authPolicy.desc":"Configure the authentication policy and the transport protocols required for authentication.","maintenance.title.login":"Login","maintenance.loginManagement.desc":"Forces users with duplicate logins to log out.","maintenance.loginManagement.button.forceAll":"Force logout all","maintenance.loginManagement.button.force":"Force logout","maintenance.loginManagement.label.duplicateAccounts":"Duplicate Accounts","maintenance.loginManagement.label.currentSession":"Current Session","maintenance.loginManagement.button.refresh":"Refresh","maintenance.loginManagement.label.transport":"Recent Transport","maintenance.loginManagement.label.username":"User Name(ID)","maintenance.loginManagement.label.loginTime":"Login Time","maintenance.userManagement.button.addUser":"Add User","maintenance.userManagement.button.totalUser":"Total Users","maintenance.userManagement.button.adminUser":"Admin User","maintenance.userManagement.label.userId":"User ID","maintenance.userManagement.label.userPw":"Password","maintenance.userManagement.label.userName":"User Name","maintenance.userManagement.label.role":"Role","maintenance.modal.title.createUser":"Create User","maintenance.modal.title.userInfo":"User Information","maintenance.modal.title.editUser":"Edit User Information","maintenance.modal.title.delete":"Delete {{msg}}","maintenance.modal.label.activeSessionCnt":"Active Session Count","maintenance.modal.content.confirmDeleteUser":"Are you sure you want to delete {{id}}?\\nThis action cannot be undone.","maintenance.toast.content.createSuccess":"{{msg}} created successfully.","maintenance.toast.content.editSuccess":"{{msg}} updated successfully.","maintenance.toast.content.registerSuccess":"External peer registered successfully.","maintenance.toast.content.createFail":"Failed to create {{msg}}.","maintenance.toast.content.editFail":"Failed to update {{msg}}.","maintenance.toast.content.registerFail":"Failed to register external peer.","maintenance.toast.content.delete":"Deleted successfully.","maintenance.label.createToken":"Create SDK Token","maintenance.label.totalTokens":"Total SDK Tokens","maintenance.label.editToken":"Edit SDK Token","maintenance.table.label.token":"Token","maintenance.table.tooltip.token":"Click on the token column to see the full token.","maintenance.table.label.issuedDate":"Issued Date","maintenance.table.label.expiredDate":"Expired Date","maintenance.table.label.issuedBy":"Issued By","maintenance.table.msg.noManagementDatas":"No {{msg}} datas.","maintenance.table.msg.noSdkTokens":"No SDK Tokens","maintenance.label.totalPeers":"Total Peers","maintenance.label.registerPeer":"Register Peer","maintenance.label.editPeer":"Edit Peer","maintenance.label.loginEnabled":"Login Enabled","maintenance.label.allowDuplLogin":"Allow Duplicate Login","maintenance.label.transportProtocols":"Transport Protocols for Authentication","maintenance.label.maxConcurrUsers":"Maximum Concurrent Users","maintenance.helpText.maxConcurrUsers":"Enter 0 to allow unlimited concurrent users.","maintenance.helpText.reloginNotice":"Changing the settings below will force all currently signed-in users to log out.","maintenance.label.jwtRuntimeConfig":"JWT Runtime Configuration","maintenance.label.tokenExp":"Token Expiration (mins)","maintenance.label.refreshTokenExp":"Refresh Token Expiration (days)","maintenance.label.servicePrefix":"Service Prefix","maintenance.label.sdkPrefix":"SDK Prefix","maintenance.modal.button.keep":"Keep","maintenance.modal.saveAuto.desc.noRelogin":"The authentication policy will be updated.\\nThis change will apply immediately without requiring re-login.","maintenance.modal.saveAuto.desc.relogin":"The authentication policy will be updated.\\nConfirming will save the changes and force all currently signed-in users to log out.","maintenance.modal.saveAuto.desc":"The authentication policy will be updated.\\nClick Confirm to force all other signed-in users to log out.\\nClick Keep to keep their current sessions.\\nThe updated authentication policy will be saved regardless of your choice.","settings.devices.plc.options.always":"On (Always)","settings.devices.plc.options.idle":"On (Idle)","settings.devices.plc.options.playing":"On (Playing)","settings.devices.plc.options.moving":"On (Moving)","settings.devices.plc.label.input":"Input {{type}}","settings.devices.plc.options.ioSignal":"IO Signal","settings.devices.plc.options.systemStatus":"System Status","settings.devices.plc.options.systemParam":"System Parameter","settings.devices.plc.options.dataComm":"Data Communication","settings.devices.plc.options.dataDummy":"Data Dummy","settings.devices.plc.options.signalLevel":"Signal Level","settings.devices.plc.options.userNumber":"User Number","login.msg.denied":"Your login request has been canceled.","program.dialog.content.editConfirm":"Data may be modified. Do you want to proceed?","settings.amr.validation.integer":"Enter a valid integer","settings.amr.validation.number":"Enter a valid number.","settings.amr.validation.jsonArray":"Enter a valid JSON array","settings.amr.validation.jsonObject":"Enter a valid JSON object","settings.amr.validation.min":"Value must be greater than or equal to {{min}}","settings.amr.validation.max":"Value must be less than or equal to {{max}}","settings.amr.collection.position":"Position","settings.amr.collection.rotation":"Rotation","move.amr.toast.moveReject.title":"Move Failed","move.amr.toast.moveReject.localizationUnavailable":"Localization is unavailable.","move.amr.toast.moveReject.sameTarget":"The target is the same as the current target.","move.amr.toast.moveReject.outOfMapRange":"The target coordinate is outside the map range.","move.amr.toast.moveReject.markerNode":"Marker NODE cannot be used as a move target.","move.amr.toast.moveReject.robotNotReady":"The robot is not ready. ","move.amr.toast.moveReject.noMap":"No map is loaded. ","move.amr.toast.moveReject.targetNodeNotFound":"Target NODE was not found.","move.amr.toast.moveReject.noLink":"Cannot move to a NODE without LINK.","move.amr.toast.moveReject.default":"Move command was rejected.","settings.amr.preset.description":"Select a preset to view and edit setting values","settings.amr.preset.loading":"Loading preset list","settings.amr.preset.empty":"No AMR setting presets","move.amr.rightPanel.bottomBar.camera":"Camera","move.amr.rightPanel.bottomBar.controlPanel":"Control Panel","move.amr.rightPanel.bottomBar.links":"Links","move.amr.rightPanel.bottomBar.liveStream":"Live Stream","move.amr.rightPanel.bottomBar.nodes":"Nodes","move.amr.rightPanel.bottomBar.offline":"Offline","move.amr.rightPanel.bottomBar.points":"Points","move.amr.rightPanel.cameraPanel.cameraName":"Camera {{index}}","move.amr.rightPanel.cameraPanel.disconnected":"Camera Disconnected","move.amr.rightPanel.cameraPanel.loading":"Loading Cameras","move.amr.rightPanel.cameraPanel.title":"Camera Streams","move.amr.rightPanel.capability.camera":"Camera","move.amr.rightPanel.capability.dock":"Dock","move.amr.rightPanel.capability.field.batteryPercent":"Battery","move.amr.rightPanel.capability.field.batteryType":"Battery Type","move.amr.rightPanel.capability.field.bumperState":"Bumper State","move.amr.rightPanel.capability.field.camNum":"Camera Count","move.amr.rightPanel.capability.field.chargeCurrent":"Charge Current","move.amr.rightPanel.capability.field.chargeState":"Charge State","move.amr.rightPanel.capability.field.chargeType":"Charge Type","move.amr.rightPanel.capability.field.colorProfile":"Color Profile","move.amr.rightPanel.capability.field.contactVoltage":"Contact Voltage","move.amr.rightPanel.capability.field.depthProfile":"Depth Profile","move.amr.rightPanel.capability.field.dockState":"Dock State","move.amr.rightPanel.capability.field.enabled":"Enabled","move.amr.rightPanel.capability.field.enabledDepth":"Depth","move.amr.rightPanel.capability.field.enabledFilter":"Filter","move.amr.rightPanel.capability.field.enabledObs":"Obstacle Detection","move.amr.rightPanel.capability.field.interlockState":"Interlock State","move.amr.rightPanel.capability.field.ip":"IP","move.amr.rightPanel.capability.field.obsDetect":"Obstacle Detect","move.amr.rightPanel.capability.field.operationStopState":"Operation Stop State","move.amr.rightPanel.capability.field.safety":"Safety","move.amr.rightPanel.capability.field.serial":"Serial","move.amr.rightPanel.capability.field.speedControlState":"Speed Control State","move.amr.rightPanel.capability.field.tabosCurrent":"TABOS Current","move.amr.rightPanel.capability.field.tabosSoc":"TABOS SOC","move.amr.rightPanel.capability.field.tabosSoh":"TABOS SOH","move.amr.rightPanel.capability.field.tabosTemp":"TABOS Temperature","move.amr.rightPanel.capability.field.tabosVoltage":"TABOS Voltage","move.amr.rightPanel.capability.field.tf":"Transform","move.amr.rightPanel.capability.field.type":"Type","move.amr.rightPanel.capability.imu":"IMU","move.amr.rightPanel.capability.io":"I/O","move.amr.rightPanel.capability.lidar2d":"2D LiDAR","move.amr.rightPanel.capability.lidar3d":"3D LiDAR","move.amr.rightPanel.capability.safety":"Safety","move.amr.rightPanel.capability.safetyBumper":"Safety Bumper","move.amr.rightPanel.capability.safetyInterlock":"Safety Interlock","move.amr.rightPanel.capability.safetyObstacle":"Safety Obstacle","move.amr.rightPanel.capability.safetyOperationStop":"Safety Operation Stop","move.amr.rightPanel.capability.safetySpeedControl":"Safety Speed Control","move.amr.rightPanel.capability.sensor.item":"Sensor {{index}}","move.amr.rightPanel.capability.status.disabled":"Disabled","move.amr.rightPanel.capability.status.enabled":"Enabled","move.amr.rightPanel.capability.status.loading":"Loading","move.amr.rightPanel.capability.status.noData":"No data","move.amr.rightPanel.capability.status.notSupported":"This capability is not supported or could not be queried.","move.amr.rightPanel.capability.status.offline":"Offline","move.amr.rightPanel.capability.status.online":"Online","move.amr.rightPanel.capability.status.unavailable":"Unavailable","move.amr.rightPanel.capability.tabos":"TABOS","move.amr.rightPanel.common.cancel":"Cancel","move.amr.rightPanel.common.clear":"Clear","move.amr.rightPanel.common.connected":"Connected","move.amr.rightPanel.common.created":"Created","move.amr.rightPanel.common.delete":"Delete","move.amr.rightPanel.common.discard":"Discard","move.amr.rightPanel.common.disconnected":"Disconnected","move.amr.rightPanel.common.fail":"fail","move.amr.rightPanel.common.false":"false","move.amr.rightPanel.common.keepEditing":"Keep Editing","move.amr.rightPanel.common.mode.auto":"Auto","move.amr.rightPanel.common.mode.manual":"Manual","move.amr.rightPanel.common.none":"None","move.amr.rightPanel.common.normal":"Normal","move.amr.rightPanel.common.reset":"Reset","move.amr.rightPanel.common.save":"Save","move.amr.rightPanel.common.saveChanges":"Save Changes","move.amr.rightPanel.common.saving":"Saving...","move.amr.rightPanel.common.select":"Select","move.amr.rightPanel.common.settings":"Settings","move.amr.rightPanel.common.speed":"Speed","move.amr.rightPanel.common.stop":"Stop","move.amr.rightPanel.common.trig":"Trig","move.amr.rightPanel.common.triggered":"Triggered","move.amr.rightPanel.common.true":"true","move.amr.rightPanel.controlPanel.accelDegS2":"Accel (°/s²)","move.amr.rightPanel.controlPanel.accelMs2":"Accel (m/s²)","move.amr.rightPanel.controlPanel.angularMotion.line1":"Angular","move.amr.rightPanel.controlPanel.angularMotion.line2":"Motion","move.amr.rightPanel.controlPanel.axis":"Axis","move.amr.rightPanel.controlPanel.button.description":"Control robot with directional buttons","move.amr.rightPanel.controlPanel.currentPose":"Current: ({{x}}, {{y}}, {{yaw}}°)","move.amr.rightPanel.controlPanel.decelDegS2":"Decel (°/s²)","move.amr.rightPanel.controlPanel.decelMs2":"Decel (m/s²)","move.amr.rightPanel.controlPanel.executeMove":"Execute Move","move.amr.rightPanel.controlPanel.left":"Left","move.amr.rightPanel.controlPanel.linear.description":"Move robot by direction and distance","move.amr.rightPanel.controlPanel.linearMotion.line1":"Linear","move.amr.rightPanel.controlPanel.linearMotion.line2":"Motion","move.amr.rightPanel.controlPanel.moveToPoint":"Move to Point","move.amr.rightPanel.controlPanel.point.description":"Move robot to specific coordinates","move.amr.rightPanel.controlPanel.right":"Right","move.amr.rightPanel.controlPanel.speedDegS":"Speed (°/s)","move.amr.rightPanel.controlPanel.speedMs":"Speed (m/s)","move.amr.rightPanel.controlPanel.tab.button":"Button","move.amr.rightPanel.controlPanel.tab.linear":"Linear","move.amr.rightPanel.controlPanel.tab.point":"Point","move.amr.rightPanel.controlPanel.targetM":"Target (m)","move.amr.rightPanel.controlPanel.transparency":"Transparency","move.amr.rightPanel.dock.action.dock":"Dock","move.amr.rightPanel.dock.action.undock":"Undock","move.amr.rightPanel.dock.action.resume":"Resume","move.amr.rightPanel.dock.action.pause":"Pause","move.amr.rightPanel.dock.operation.charge":"Charge","move.amr.rightPanel.dock.operation.description":"Use Dock / Undock buttons to control docking state","move.amr.rightPanel.dock.operation.dock":"Dock","move.amr.rightPanel.dock.operation.motion":"Motion Control","move.amr.rightPanel.dock.operation.title":"Charge Dock Operation","move.amr.rightPanel.dock.retryCount":"Retry Count","move.amr.rightPanel.dock.status.dock":"Dock","move.amr.rightPanel.dock.status.move":"Move","move.amr.rightPanel.dock.status.title":"Charge Dock Status","move.amr.rightPanel.dock.status.undocked":"Undocked","move.amr.rightPanel.dock.step.checkCharge":"Check Charge","move.amr.rightPanel.dock.step.complete":"Complete","move.amr.rightPanel.dock.step.docking":"Docking","move.amr.rightPanel.hud.autoMove":"Auto Move","move.amr.rightPanel.hud.imuSensor":"IMU Sensor","move.amr.rightPanel.hud.inlierError":"IE","move.amr.rightPanel.hud.inlierRatio":"IR","move.amr.rightPanel.hud.localization":"Localization","move.amr.rightPanel.hud.robotTransform":"Robot Transform","move.amr.rightPanel.hud.speed":"Speed","move.amr.rightPanel.hud.status.busy":"Busy","move.amr.rightPanel.hud.status.error":"Error","move.amr.rightPanel.hud.status.fail":"Fail","move.amr.rightPanel.hud.status.good":"Good","move.amr.rightPanel.hud.status.move":"Move","move.amr.rightPanel.hud.status.none":"None","move.amr.rightPanel.hud.status.notReady":"Not Ready","move.amr.rightPanel.hud.status.pause":"Pause","move.amr.rightPanel.hud.status.success":"Success","move.amr.rightPanel.map.dialog.discardMapping.content":"Leaving the mapping tab will discard the current mapping session.","move.amr.rightPanel.map.dialog.discardMapping.leaveMenuContent":"Leaving the map menu will discard the current mapping session.","move.amr.rightPanel.map.dialog.discardMapping.loadMapContent":"Loading another map will discard the current mapping session.","move.amr.rightPanel.map.dialog.discardMapping.loadYes":"Discard and Load","move.amr.rightPanel.map.dialog.discardMapping.title":"Discard mapping changes?","move.amr.rightPanel.map.dialog.discardMapping.yes":"Discard and Leave","move.amr.rightPanel.map.erasing.descriptionLine1":"Select points in the viewport","move.amr.rightPanel.map.erasing.descriptionLine2":"to remove them from the map","move.amr.rightPanel.map.erasing.eraseMode":"Erase Mode","move.amr.rightPanel.map.erasing.eraseSelectedArea":"Erase Selected Area","move.amr.rightPanel.map.erasing.eraserRadius":"Eraser Radius","move.amr.rightPanel.map.erasing.releaseSelectedPoints":"Release Selected Points","move.amr.rightPanel.map.info.lastModified":"Last Modified","move.amr.rightPanel.map.info.mapBoundaries":"Map Boundaries","move.amr.rightPanel.map.info.mapName":"Map Name","move.amr.rightPanel.map.info.nodes":"Nodes","move.amr.rightPanel.map.info.pointCloud":"Point Cloud","move.amr.rightPanel.map.info.pts":"{{count}} pts","move.amr.rightPanel.map.info.statistics":"Statistics","move.amr.rightPanel.map.info.totalArea":"Total Area","move.amr.rightPanel.map.info.xRange":"X Range","move.amr.rightPanel.map.info.yRange":"Y Range","move.amr.rightPanel.map.loadDialog.closeBackdrop":"Close map load dialog backdrop","move.amr.rightPanel.map.loadDialog.current":"Current","move.amr.rightPanel.map.loadDialog.currentMap":"Current Map","move.amr.rightPanel.map.loadDialog.description":"Select a map to load into the editor","move.amr.rightPanel.map.loadDialog.loadSelectedMap":"Load Selected Map","move.amr.rightPanel.map.loadDialog.modified":"Modified","move.amr.rightPanel.map.loadDialog.noMapsFound":"No maps found","move.amr.rightPanel.map.loadDialog.searchPlaceholder":"Search maps by name","move.amr.rightPanel.map.loadDialog.size":"Size","move.amr.rightPanel.map.loadDialog.title":"Load Map","move.amr.rightPanel.map.loadDialog.tryDifferentSearch":"Try a different search term","move.amr.rightPanel.map.mapping.buildingKeyframes":"Building map keyframes...","move.amr.rightPanel.map.mapping.canSaveAsNewMap":"You can save this recording as a new map.","move.amr.rightPanel.map.mapping.cannotSaveRecording":"Cannot save this recording","move.amr.rightPanel.map.mapping.cannotSaveYet":"Cannot save yet","move.amr.rightPanel.map.mapping.captureStatus":"Capture Status","move.amr.rightPanel.map.mapping.clickStartMapping":'Click "Start Mapping"',"move.amr.rightPanel.map.mapping.discarding":"Discarding...","move.amr.rightPanel.map.mapping.keyframePoints":"Keyframe Points","move.amr.rightPanel.map.mapping.keyframeRequired":"At least one keyframe is required before saving.","move.amr.rightPanel.map.mapping.keyframesReceived":"Keyframes Received","move.amr.rightPanel.map.mapping.mapReadyToSave":"Map is ready to save","move.amr.rightPanel.map.mapping.noKeyframeCaptured":"No Keyframe Captured","move.amr.rightPanel.map.mapping.noKeyframeReceived":"No keyframe received","move.amr.rightPanel.map.mapping.points":"{{count}} points","move.amr.rightPanel.map.mapping.readyToMap":"Ready to Map","move.amr.rightPanel.map.mapping.readyToSave":"Ready to save","move.amr.rightPanel.map.mapping.readyToSaveTitle":"Ready to Save","move.amr.rightPanel.map.mapping.recordingActive":"Recording Active","move.amr.rightPanel.map.mapping.result":"Result","move.amr.rightPanel.map.mapping.saveStatus":"Save Status","move.amr.rightPanel.map.mapping.startMapping":"Start Mapping","move.amr.rightPanel.map.mapping.toBegin":"to begin","move.amr.rightPanel.map.saveDialog.closeBackdrop":"Close map save dialog backdrop","move.amr.rightPanel.map.saveDialog.description":"Enter a valid map name and save your current mapping result.","move.amr.rightPanel.map.saveDialog.error.duplicateName":"{{name}} already exists. Please use a different name.","move.amr.rightPanel.map.saveDialog.error.invalidChars":"Map name can only contain Korean/English letters, numbers, hyphens, and underscores","move.amr.rightPanel.map.saveDialog.error.loadFailed":"Map was saved, but failed to load. Please load it manually.","move.amr.rightPanel.map.saveDialog.error.minLength":"Map name must be at least 3 characters","move.amr.rightPanel.map.saveDialog.error.required":"Map name is required","move.amr.rightPanel.map.saveDialog.error.saveError":"An error occurred while saving the map","move.amr.rightPanel.map.saveDialog.error.saveFailed":"Failed to save map. Please try again.","move.amr.rightPanel.map.saveDialog.nameRule":"Use Korean/English letters, numbers, hyphens, and underscores only","move.amr.rightPanel.map.saveDialog.placeholder":"e.g., Factory_Floor_Building_A","move.amr.rightPanel.map.saveDialog.saveMap":"Save Map","move.amr.rightPanel.map.saveDialog.title":"Save Point Cloud Map","move.amr.rightPanel.map.tab.erasing":"Erasing","move.amr.rightPanel.map.tab.info":"Info","move.amr.rightPanel.map.tab.mapping":"Mapping","move.amr.rightPanel.marker.teachTarget":"Marker Teaching","move.amr.rightPanel.marker.camIdShort":"cam {{id}}","move.amr.rightPanel.marker.captureCurrentPose":"Capture Current Pose","move.amr.rightPanel.marker.captured":"Captured","move.amr.rightPanel.marker.capturedPose":"Captured Pose","move.amr.rightPanel.marker.foundCount":"Found {{count}}","move.amr.rightPanel.marker.markerId":"Marker ID","move.amr.rightPanel.marker.markerSize":"Marker Size (m)","move.amr.rightPanel.marker.markerType":"Marker Type","move.amr.rightPanel.marker.mount":"Mount","move.amr.rightPanel.marker.mount.floor":"Floor","move.amr.rightPanel.marker.mount.wall":"Wall","move.amr.rightPanel.marker.moveRobotThenCapture":"Move robot to target, then capture","move.amr.rightPanel.marker.noPose":"no pose","move.amr.rightPanel.marker.noRegisteredMarkers":"No registered markers","move.amr.rightPanel.marker.notFound":"Not Found","move.amr.rightPanel.marker.pressScanToStart":"Press Scan to start","move.amr.rightPanel.marker.registerId":"Register id {{id}}","move.amr.rightPanel.marker.registerMarker":"Register Marker","move.amr.rightPanel.marker.saveTarget":"Save Target","move.amr.rightPanel.marker.scan":"Scan","move.amr.rightPanel.marker.scanning":"Scanning...","move.amr.rightPanel.marker.scanningForMarkers":"Scanning for markers...","move.amr.rightPanel.marker.tab.register":"Register","move.amr.rightPanel.marker.tab.teaching":"Teaching","move.amr.rightPanel.marker.markerScan":"Marker Scan","move.amr.rightPanel.marker.markerStatus":"Marker Status","move.amr.rightPanel.marker.targetMarker":"Target Marker","move.amr.rightPanel.marker.targetName":"Target Name","move.amr.rightPanel.marker.targetNamePlaceholder":"e.g. Workbench","move.amr.rightPanel.menu.map":"Map","move.amr.rightPanel.menu.marker":"Marker","move.amr.rightPanel.menu.monitor":"Monitor","move.amr.rightPanel.menu.topology":"Topology","move.amr.rightPanel.monitor.tab.capability":"Capability","move.amr.rightPanel.monitor.tab.dock":"Dock","move.amr.rightPanel.monitor.tab.overview":"Overview","move.amr.rightPanel.monitor.tab.pdu":"PDU","move.amr.rightPanel.monitor.tab.task":"Task","move.amr.rightPanel.overview.battery.chargeLevel":"Charge Level","move.amr.rightPanel.overview.battery.title":"Battery","move.amr.rightPanel.overview.buildInfo.branch":"Branch","move.amr.rightPanel.overview.buildInfo.commit":"Commit","move.amr.rightPanel.overview.buildInfo.buildDate":"Build Date","move.amr.rightPanel.overview.buildInfo.buildUser":"Build User","move.amr.rightPanel.overview.buildInfo.title":"Build Info","move.amr.rightPanel.overview.localization.cursor":"Cursor","move.amr.rightPanel.overview.localization.description":"Uses cursor transform as initial position estimate","move.amr.rightPanel.overview.localization.positionTracking":"Position Tracking","move.amr.rightPanel.overview.localization.semiAutoInit":"Semi Auto Init","move.amr.rightPanel.overview.localization.start":"Start Localization","move.amr.rightPanel.overview.localization.title":"Localization Status","move.amr.rightPanel.overview.moveStatus.autoMove":"Auto Move","move.amr.rightPanel.overview.moveStatus.operationMode":"Operation Mode","move.amr.rightPanel.overview.moveStatus.title":"Move Status","move.amr.rightPanel.overview.robotTransform.position":"Position","move.amr.rightPanel.overview.robotTransform.rotation":"Rotation","move.amr.rightPanel.overview.robotTransform.title":"Robot Transform","move.amr.rightPanel.pdu.charge":"Charge","move.amr.rightPanel.pdu.chargeContact":"Charge Contact","move.amr.rightPanel.pdu.detect":"Detect","move.amr.rightPanel.pdu.dock":"Dock","move.amr.rightPanel.pdu.dockId":"Dock ID","move.amr.rightPanel.pdu.dockResult":"Dock Result","move.amr.rightPanel.pdu.emergencyStop":"Emergency Stop (EMO)","move.amr.rightPanel.pdu.lidarField":"Lidar Field","move.amr.rightPanel.pdu.motor":"Motor","move.amr.rightPanel.pdu.motorStatus":"Motor Status","move.amr.rightPanel.pdu.opMode":"Op Mode","move.amr.rightPanel.pdu.opModeRestoration":"Op Mode Restoration","move.amr.rightPanel.pdu.safety.bumper":"Bumper","move.amr.rightPanel.pdu.safety.fieldMismatch":"Field Mis","move.amr.rightPanel.pdu.safety.interlock":"InterLock","move.amr.rightPanel.pdu.safety.measMismatch":"Meas Mis","move.amr.rightPanel.pdu.safety.obstacle":"Obs Detect","move.amr.rightPanel.pdu.safety.overSpeed":"Ovr Spd","move.amr.rightPanel.pdu.safetyRecovery":"Safety Recovery","move.amr.rightPanel.task.currentNode":"Current Node","move.amr.rightPanel.task.duration":"Duration","move.amr.rightPanel.task.idle":"Idle","move.amr.rightPanel.task.lastUpdated":"Last Updated","move.amr.rightPanel.task.pathHistory":"Path History","move.amr.rightPanel.task.status":"Status","move.amr.rightPanel.task.targetNode":"Target Node","move.amr.rightPanel.topology.add.addNode":"Add Node","move.amr.rightPanel.topology.add.atCursorPosition":"At Cursor Position","move.amr.rightPanel.topology.add.atRobotPosition":"At Robot Position","move.amr.rightPanel.topology.add.description":"Choose an option below and add a node to the location of your choice.","move.amr.rightPanel.topology.add.selectNodeType":"1. Select Node Type","move.amr.rightPanel.topology.add.selectPlacement":"2. Select Placement","move.amr.rightPanel.topology.add.title":"Add Node","move.amr.rightPanel.topology.dialog.discardContent":"Discard unsaved topology changes?","move.amr.rightPanel.topology.edit.connectedLinks":"Connected Links","move.amr.rightPanel.topology.edit.deleteThisLink":"Delete This Link","move.amr.rightPanel.topology.edit.features":"Features","move.amr.rightPanel.topology.edit.name":"Name","move.amr.rightPanel.topology.edit.noConnectedLinks":"No connected links","move.amr.rightPanel.topology.edit.nodeId":"Node ID","move.amr.rightPanel.topology.edit.nodeProperties":"Node Properties","move.amr.rightPanel.topology.edit.selectNodeToEdit":"Select a node from the list to edit its properties","move.amr.rightPanel.topology.edit.selectedLinkInfo":"Selected Link Information","move.amr.rightPanel.topology.edit.stepSize":"Step Size","move.amr.rightPanel.topology.edit.thisNode":"This node","move.amr.rightPanel.topology.edit.transform":"Transform","move.amr.rightPanel.topology.edit.useLinkTab":"Use the Link tab to create links for this node.","move.amr.rightPanel.topology.link.avoidRange":"Avoid Range","move.amr.rightPanel.topology.link.bidirectional":"Bidirectional","move.amr.rightPanel.topology.link.complete":"Complete","move.amr.rightPanel.topology.link.configureDirection":"Configure direction after selecting at least 2 nodes","move.amr.rightPanel.topology.link.creationMode":"Link Creation Mode","move.amr.rightPanel.topology.link.deleteLinks":"Delete Links","move.amr.rightPanel.topology.link.dir":"Dir","move.amr.rightPanel.topology.link.direction":"Direction","move.amr.rightPanel.topology.link.linkSelected":"Link Selected","move.amr.rightPanel.topology.link.method":"Method","move.amr.rightPanel.topology.link.modeAvailable":"Mode selection available with 3 or more nodes","move.amr.rightPanel.topology.link.nodeSelectedCount":"{{count}} Node Selected","move.amr.rightPanel.topology.link.previewProperties":"{{dir}} / {{method}} / speed {{speed}} / avoid {{avoid}}","move.amr.rightPanel.topology.link.properties":"Link Properties","move.amr.rightPanel.topology.link.safetyField":"Safety Field","move.amr.rightPanel.topology.link.selectAtLeastTwo":"Select at least 2 nodes to create links","move.amr.rightPanel.topology.link.selectAtLeastTwoShort":"Select at least 2 nodes","move.amr.rightPanel.topology.link.sequential":"Sequential","move.amr.rightPanel.topology.link.unidirectional":"Unidirectional","move.amr.rightPanel.topology.link.willCreateCount":"Will create {{count}} links","move.amr.rightPanel.topology.link.willCreateNamed":"Will create {{from}}{{connector}}{{to}}","move.amr.rightPanel.topology.nodeType.align":"Align","move.amr.rightPanel.topology.nodeType.all":"ALL","move.amr.rightPanel.topology.nodeType.goal":"Goal","move.amr.rightPanel.topology.nodeType.route":"Route","move.amr.rightPanel.topology.nodes.deleteCount":"Delete {{count}} Nodes","move.amr.rightPanel.topology.nodes.empty":"No nodes available","move.amr.rightPanel.topology.nodes.noSelected":"No selected nodes","move.amr.rightPanel.topology.nodes.searchByName":"Search by Name","move.amr.rightPanel.topology.nodes.selectedTitle":"Selected Nodes","move.amr.rightPanel.topology.nodes.title":"Nodes","move.amr.rightPanel.topology.tab.add":"Add","move.amr.rightPanel.topology.tab.edit":"Edit","move.amr.rightPanel.topology.tab.link":"Link","move.amr.rightPanel.topology.tab.nodes":"Nodes","move.amr.rightPanel.topology.tab.zone":"Zone","move.amr.rightPanel.hud.obstacleDetect":"Obs Detect","move.amr.rightPanel.hud.status.detected":"Detected","move.amr.rightPanel.hud.status.notDetected":"Clear","move.amr.rightPanel.cameraPanel.empty":"No Cameras","move.amr.toast.markerScanReject.title":"Cannot Scan Marker","move.amr.toast.markerScanReject.localizationUnavailable":"Start marker scan after localization.","move.amr.rightPanel.cameraPanel.connecting":"Camera Connecting...","program.interface.mechmind.joints":"Joints","program.interface.mechmind.pose":"Pose","program.interface.mechmind.expected_count":"Expected Count","program.interface.mechmind.project_id":"Project ID","program.interface.mechmind.position":"Setting Position","move.amr.rightPanel.marker.dockOffset":"Dock Offset","move.amr.rightPanel.marker.moveToTarget":"Move to Target","move.amr.toast.markerRegister.title":"Marker Registered","move.amr.toast.markerRegister.success":"Marker #{{markerId}} has been registered.","move.amr.toast.markerTeach.title":"Target Saved","move.amr.rightPanel.capability.streamFrequency":"Publish Frequency (Hz)","move.amr.rightPanel.topology.edit.nodeidCopied":"Node ID Copied","move.amr.toast.markerTeach.reject.markerNotVisible":"Marker not visible. Please face the marker and try again.","settings.amr.frs.title":"FRS","settings.amr.frs.menu":"FRS Connection","settings.amr.frs.connectionSetting":"Connection Setting","settings.amr.frs.connectionStatus":"Connection Status","settings.amr.frs.button.refresh":"Refresh","settings.amr.frs.label.ip":"FRS IP","settings.amr.frs.label.zenohUrl":"Zenoh URL","settings.amr.frs.label.connection":"Connection","settings.amr.frs.label.state":"State","settings.amr.frs.status.connected":"Connected","settings.amr.frs.status.disconnected":"Disconnected","settings.amr.frs.state.none":"None","settings.amr.frs.state.connecting":"Connecting","settings.amr.frs.state.connected":"Connected","settings.amr.frs.state.disconnecting":"Disconnecting","settings.amr.frs.state.reconnecting":"Reconnecting","settings.amr.frs.state.error":"Error","settings.amr.frs.state.closed":"Closed","program.dialog.close_confirm.title":"Unsaved Changes","program.dialog.close_confirm.content":"You have unsaved changes. Do you want to close without saving?","program.dialog.close_confirm.yes":"Close Without Saving","program.dialog.close_confirm.no":"Cancel","program.options.syncOff":"Sync Off","program.options.syncOn":"Sync On","program.field.syncroMode":"Synchro Mode","ik.disconnected.title":"Robot Disconnected","ik.disconnected.content":"The connection to the robot has been lost.","login.modal.title.unauthorized":"Unauthorized","login.modal.desc.unauthorized":"You do not have permission to perform this action.","move.ghostRobot.title":"Ghost Robot","move.ghostRobot.section.gizmoType":"Mode","move.ghostRobot.gizmoType.translate":"Translate","move.ghostRobot.gizmoType.rotate":"Rotate","move.ghostRobot.gizmoType.joint":"Joint","move.ghostRobot.section.axisLimit":"Axis Select","move.ghostRobot.section.handleSize":"Handle Size","move.ghostRobot.section.poseControl":"Pose Control","move.ghostRobot.button.undo":"Undo","move.ghostRobot.button.redo":"Redo","move.ghostRobot.button.reset":"Reset","move.ghostRobot.section.gizmoSpace":"Coordinate","move.ghostRobot.gizmoSpace.world":"Global","move.ghostRobot.gizmoSpace.local":"Local","move.amr.rightPanel.menu.debug":"Debug","move.amr.rightPanel.pdu.safetyIo.pending":"Applying","move.amr.rightPanel.pdu.safetyIo.read":"View","move.amr.rightPanel.pdu.safetyIo.outputControl":"Output Control","move.amr.rightPanel.pdu.safetyIo.apply":"Apply","program.changeProgram.title":"Selecting a Change Program","program.changeProgram.desc":"Please select the program to change while the program is running.","program.subtask.title":"Selecting a Subtask Call Method","program.subtask.desc":"Subtasks do not run on the event thread.","program.subtask.items.call_sub":"Call a Subtask","program.subtask.items.copy_sub":"Copy Task Contents","program.subtask.items.switch_sub":"Call via Task Switching","program.button.prev":"Prev","program.button.next":"Next","program.subtask.select_task":"Select Task","program.subtask.select_program":"Select Program","program.subTaskModal.title":"SubTask Name: {{name}}","program.subTaskModal.desc":"Shows the progress of the currently running subtask.","program.field.label.connectionPort":"Connection Port","program.field.label.deviceId":"Device ID","program.field.label.functionList":"Function List","program.field.label.gripperType":"Gripper Type","program.field.label.initialize":"Initialize","program.field.label.motorType":"Motor Type","program.field.label.controlMode":"Control Mode","program.gripper.option.currBasePos":"Current-based-Pos","program.section.title.setGoalCurrent":"Set Goal Current","program.section.title.setGoalPos":"Set Goal Position","program.section.title.setGoalPosSpdForce":"Set Goal Pos/Spd/Force","program.section.title.setGoalPosForce":"Set Goal Pos/Force","program.section.title.action":"Action","program.gripper.option.functionCall":"Function call","program.gripper.option.reset":"Reset","program.gripper.option.suction":"Suction","program.gripper.option.release":"Release","program.gripper.option.hold":"Hold","program.gripper.option.laserOn":"Laser-On","program.gripper.option.laserOff":"Laser-Off","program.gripper.option.setZeroPos":"Set Zero Position","program.gripper.option.facotryReset":"Factory Reset","program.field.label.targetCurrent":"Target Current","program.field.label.targetPosition":"Target Position","program.field.label.targetSpeed":"Target Speed","program.field.label.targetForce":"Target Force","program.field.label.targetWidth":"Target Width","program.field.label.initializeType":"Initialize Type","program.gripper.option.simpleInit":"Simple Init","program.gripper.option.fullInit":"Full Init","program.gripper.option.inward":"Inward","program.gripper.option.outward":"Outward","program.field.label.fingerOrient":"Finger Orientation","program.field.label.fingerLength":"Finger Length","program.field.label.fingerTipWidth":"Finger Tip Width","program.gripper.option.extGrip":"External Grip","program.gripper.option.interGrip":"Internal Grip","program.gripper.option.stop":"Stop","program.gripper.option.grip":"Grip","program.gripper.option.move":"Move","program.field.label.gripDirection":"Grip Direction","program.field.label.moveType":"Move Type","program.field.label.fingerPosition":"Finger Position","program.field.label.fingerDiameter":"Finger Diameter","program.field.label.gripType":"Grip Type","program.field.label.powerConsumption":"Power Consumption","program.field.label.chFunction":"Channel {{msg}} Function","program.field.label.chPressure":"Channel {{msg}} Pressure","program.field.label.cmdMode":"Command Mode","program.field.label.magneticStrength":"Magnetic Strength","program.gripper.option.none":"None","program.field.label.siliconModel":"Silicon Model","program.field.label.gripMode":"Grip Mode","program.gripper.option.use":"Use","program.gripper.option.notUse":"Not use","program.gripper.option.active":"Active","program.gripper.option.ignore":"Ignore","program.field.label.channel":"Channel","program.field.label.pressure":"Pressure","program.field.label.timeOutput":"Time-Output","program.field.label.rpmDeviLevel":"RPM Deviation Level","program.field.label.vibLimitLevel":"Vibraion Limit Level","program.gripper.option.motorStop":"Motor Stop","program.gripper.option.motorStart":"Motor Start","program.gripper.option.ledOff":"LED Off","program.gripper.option.ledOn":"LED On","program.field.label.targetRPM":"Target RPM","program.field.label.productModel":"Product Model","program.section.title.setParam":"Set Parameter","program.field.label.force":"Force","program.section.title.gotoTarget":"Goto Target","maintenance.field.label.boardNumber":"Board Number","maintenance.title.jointInfo":"Joint Information","maintenance.title.jointDqAxis":"Joint DQ Axis Encoder","maintenance.title.encoderZero":"Encoder Zero","maintenance.title.sensorReset":"Sensor Reset","maintenance.title.brakeControl":"Brake Control","maintenance.field.label.brakeOption":"Brake Option","maintenance.title.currentControl":"Current Control","maintenance.title.positionControl":"Position Control","maintenance.title.robotArmPowerCtrl":"Robot Arm Power Control","maintenance.button.powerOff":"Power Off","maintenance.button.powerOn":"Power On","maintenance.title.robotArmInfo":"Robot Arm Information","maintenance.button.jointsInfo":"Joints Information","maintenance.title.emcHandGuiding":"Emergency Hand Guiding","maintenance.button.startFunction":"Start Function","maintenance.title.boardIdChange":"Board ID Change","maintenance.field.label.chNumber":"Channel Number","maintenance.field.label.targetNumber":"Target Number","maintenance.title.canMsgCheck":"CAN Message Check","maintenance.field.label.msgOption":"Message Option","maintenance.button.check":"Check","maintenance.options.controlBox":"Control Box","maintenance.options.cbRobot":"Control Box + Robot","maintenance.title.shortCircuitCheck":"DC Power Bus Short Circuit Check","maintenance.title.forceBleederOn":"Force Bleeder On","maintenance.field.label.time":"Time","maintenance.button.execute":"Execute","maintenance.title.update":"SW Update","maintenance.sub-title.update":"Upload a software build file to extract the version from its filename and update all idle devices running the same software at once.","maintenance.update.manipulate.description":"Collaborative Robot Control Software","maintenance.update.amr.description":"AMR Control Software (SLAMNAV2)","maintenance.update.rby1.description":"RBY1 Control Software","maintenance.update.vision.description":"Vision Software","maintenance.update.muscat.description":"Rainbow Robotics Robot Middleware Platform","maintenance.update.web-ui.description":"Muscat Web User Interface","program.interface.mechmind.recipe_id":"Recipe ID","program.button.vision":"Vision","move.panel.zoomOperation":"Zoom In/Out","move.panel.cameraView":"Camera View","move.panel.trajectory":"Draw Trajectory","move.panel.drag":"Robot Drag","move.panel.cameraViewOption.front":"Front View","move.panel.cameraViewOption.left":"Left View","move.panel.cameraViewOption.right":"Right View","move.panel.cameraViewOption.bottom":"Bottom View","move.panel.cameraViewOption.top":"Top View","move.panel.cameraViewOption.back":"Back View","move.panel.cameraViewOption.reverse":"Reverse(Top-Bottom) View","login.toast.msg.error.approve":"An error occurred while processing the approval request.","login.toast.msg.error.deny":"An error occurred while processing the rejection request.","login.toast.title.error":"Login request error","login.toast.title.fail":"Failed to process the login request","login.toast.msg.fail.already_processed":".This request has already been processed","move.ghostRobot.gizmoType.surface":"Surface","move.ghostRobot.surface.filter.free":"Free","move.ghostRobot.surface.filter.plane":"Plane","move.ghostRobot.surface.filter.cylinder":"Cylinder","move.ghostRobot.surface.showRings":"Show Holes","plugin.button.install":"Install","plugin.button.uninstall":"Remove","plugin.button.enable":"Enable","plugin.button.disable":"Disable","plugin.button.update":"Update","plugin.toast.title.installed":"Plugin Installed","plugin.toast.title.uninstalled":"Plugin Removed","plugin.toast.content.installed":"{{name}}' has been installed.","plugin.toast.content.uninstalled":"{{name}}' has been removed.","plugin.button.pluginList":"Plugin List","plugin.tab.detailInfo":"Details","plugin.tab.logs":"Logs","plugin.log.find.placeholder":"Search logs","plugin.log.find.noResults":"No results","plugin.log.find.invalidRegex":"Invalid regex","plugin.log.find.matchCase":"Match case","plugin.log.find.wholeWord":"Match whole word","plugin.log.find.regex":"Use regular expression","plugin.log.find.prev":"Previous match","plugin.log.find.next":"Next match","plugin.log.placeholder.range":"Select period","plugin.log.status.live":"Live","plugin.log.status.paused":"Paused","plugin.log.status.range":"Range","plugin.log.status.lastReceived":"Last received {{time}}","plugin.log.status.lines":"{{count}} lines","plugin.log.newLines":"{{count}} new lines","plugin.log.button.pause":"Pause","plugin.log.button.resume":"Resume","plugin.log.button.backToLive":"Live","plugin.log.button.retry":"Retry","plugin.log.button.download":"Download TXT","plugin.log.noData":"No logs.","plugin.log.error":"Failed to load logs.","plugin.detail.label.identifier":"Identifier","plugin.detail.label.lastUpdated":"Last Updated","plugin.detail.title.moreInfo":"More Information","plugin.detail.label.published":"Published","plugin.detail.label.lastReleased":"Last Released","plugin.detail.label.author":"Author","plugin.preview.noCommands":"Try adding the command you want as a plugin.","program.treeItem.replaceDetail.title":"Replace Detail View","program.treeItem.replaceDetail.toCommandList":"Would you like to enter the command list?","program.treeItem.replaceDetail.toOtherItem":"Close the detail view of {{fromName}} and open the detail view of {{toName}}?","program.treeItem.replaceDetail.unsavedNotice":"Current changes may not be saved.","settings.amr.docking.chargeType.contactDesc":"Contact Charging","settings.amr.docking.chargeType.wirelessDesc":"Wireless Charging","program.work.toast.copyNotAllowed.title":"Cannot Copy/Cut","program.work.toast.copyNotAllowed.content":"Only commands within the same task can be copied/cut.","program.work.toast.commandNotFound":"Could not find the command to add.","program.work.toast.postProgramOnlyOne":"Only one PostProgram command can be added.","program.work.toast.preProgramOnlyOne":"Only one PreProgram command can be added.","program.work.toast.fixedCommandCopyNotAllowed":"PreProgram and PostProgram commands cannot be copied or cut.","program.work.toast.notAllowedInParent":"{{childName}} cannot be added inside {{parentName}}.","program.work.toast.postProgramMainTaskOnly":"PostProgram command can only be added to the main task.","program.work.toast.preProgramMainTaskOnly":"PreProgram command can only be added to the main task.","program.work.toast.allowedParentsOnly":"{{name}} can only be added inside {{parents}}.","program.work.toast.strictParentRestricted":"{{name}} cannot be added due to a parent command restriction.","program.work.toast.subtreePasteThreadOnly":"To paste into a subtree, you must copy by selecting a Thread command.","program.work.toast.threadMaxLimit":"Up to {{count}} Threads can be added.","program.work.toast.pasteDifferentTask":"The copied command's task differs from the paste target task.","program.work.toast.subtreeMoveSameMainTaskOnly":"Subtree can only be moved within the same main task.","program.work.toast.parentDisabled":"The parent command is disabled. Please enable the parent command first and try again.","program.work.toast.groupFirstItemDisabled":"{{name}}' is disabled. Please enable '{{name}}' first and try again.","program.work.toast.copyThreadOnly":"Some of the copied commands are not Thread commands.","program.work.toast.copyRequireParent":"Some of the copied commands require a parent command.","program.work.toast.pasteNotAllowedInParent":"Cannot paste the copied content inside {{parentMethod}} command.","program.work.toast.pasteAllowedParentsOnly":"{{name}} command can only be pasted inside {{parents}} command.","header.confirm.goToDashboard.title":"Move to Robot Connection Screen","header.confirm.goToDashboard.content":"Moving to the robot connection screen will exit the current screen. Would you like to proceed?","plugin.tab.registryList":"Plugin List","plugin.tab.installedList":"Installed List","plugin.button.upload":"Upload Plugin","plugin.desc.noDataMsg":"No plugins found.","plugin.search.placeholder":"Search plugins (name, description, author)","message.arrived.info":"[{{swName}}] An info message has arrived.","message.arrived.warning":"[{{swName}}] A warning message has arrived.","message.arrived.error":"[{{swName}}] An error message has arrived.","message.arrived.user":"[{{swName}}] A user message has arrived.","message.arrived.debug":"[{{swName}}] A debug message has arrived.","message.arrived.general":"[{{swName}}] A general message has arrived.","dashboard.status.inDevelopment":"In development..","program.delete.confirm.title":"Delete Program","program.delete.confirm.content":'Are you sure you want to delete the program "{{programName}}"?',"program.delete.toast.successTitle":"Program Deleted","program.delete.toast.successContent":"The program has been deleted.","program.deleted.alert.title":"Deleted Program","program.deleted.alert.content":"This program has been deleted.","program.select.notAllowed.title":"Cannot Select","program.select.notAllowed.differentParent":"The parent command is different from the already selected command.","program.select.notAllowed.selectFirstGroupItem":"Please select the first command in the group.","program.select.notAllowed.preStep":"Commands included in Pre Program cannot be selected as a jump target.","program.select.notAllowed.onlyPreStep":"A command inside Pre Program can only jump to another command inside Pre Program.","program.delete.toast.failTitle":"Program Deletion Failed","program.delete.toast.failContent":"Failed to delete the program.","program.load.confirm.content":'Would you like to load the program "{{programName}}"?',"program.load.confirm.unsavedNotice":"Previous changes will not be saved.","program.load.toast.failTitle":"Load Failed","program.load.toast.failContent":"Please try again later.","program.controller.confirm.changedTitle":"Confirm Program Changes","program.controller.confirm.changedContent":"There are changes in the current program.\\nWould you like to save and run?","program.controller.reset.title":"Confirm Program Reset","program.controller.reset.line1":"Would you like to reset the program?","program.controller.reset.line2":"If the program does not stop or behaves abnormally, using the Reset function can initialize the program system.","program.save.toast.successTitle":"Program Saved","program.save.toast.successContent":"The program has been saved.","program.save.confirm.content":"Would you like to set the currently saved program as the active program?","program.save.toast.failTitle":"Program Save Failed","program.save.toast.failContent":"Failed to save the program.","program.modal.title.save":"Save Program","program.modal.desc.save":"Enter the program name to save the changes.","program.modal.title.create":"Create New Program","program.modal.desc.create":"Start from an empty project or select a template to create a new robot program.","program.modal.button.create":"Create","program.modal.label.projectType":"Program Type","program.modal.label.emptyProject":"Empty Program","program.modal.desc.emptyProject":"Start with an empty program with nothing in it.","program.modal.label.importProgram":"Import Program","program.modal.desc.importProgram":"It generates content by importing data from other uploaded programs.","program.modal.label.uploadProgram":"Upload Program","program.modal.import.placeholder":"Click or drag a .zip file here to upload","program.modal.upload.invalidFormat":"Only .zip files can be uploaded.","program.monitor.dialog.addVariable.title":"Add Monitoring Variable","program.monitor.dialog.addVariable.content":"Please enter the name of the variable to monitor.","program.monitor.button.addVariable":"Add Monitoring Variable","program.dimOverlay.line1":"Another program is currently running.","program.dimOverlay.line2":"Would you like to move to the running program?","program.dimOverlay.notice":"(If you have a program in progress, it will not be saved.)","program.dimOverlay.button.move":"Move","program.dimOverlay.toast.invalidTask":"This task does not exist.\\nIt may be a test run or a task started outside a program.","program.beginJoint.modal.title":"Set Robot Start Position","program.beginJoint.modal.description":"Please move the robot's joint position to the start position first.","program.beginJoint.confirm.title":"Robot Start Position Set","program.beginJoint.confirm.line1":"The robot's start position has been set.","program.beginJoint.confirm.line2":"Would you like to run the program right away?","program.beginJoint.confirm.run":"Run","program.beginJoint.button.moveJoint":"Move Joint","program.ph.select_task":"Please select a task.","login.modal.title.sessionExpired":"Session Expired","login.modal.desc.sessionExpired":"Your session has expired. You will be redirected to the login page.","login.modal.button.sessionExpiredConfirm":"Confirm","common.button.confirm":"Confirm","common.button.cancel":"Cancel","move.preview.descriptionLine1":"This is the simulator area.","move.preview.descriptionLine2":"You can add the desired menu and content as a plugin in the panel shown on the right.","move.preview.connectionGuideBefore":"To test the actual connection with the robot,","move.preview.connectionGuideAfter":"please enter the robot IP and SDK Token when running the command.","common.unit.seconds":"s","move.trajectory.description":"The trajectory stays visible for the entered duration (sec) before fading out.","program.gcode.modal.title":"G-Code Reference","program.gcode.modal.code":"Code","program.gcode.modal.function":"Function","program.gcode.modal.rapidMove":"Rapid Move","program.gcode.modal.linearMove":"Linear Move (Programmed Feed Rate)","program.gcode.modal.clockwise":"Clockwise Arc Move","program.gcode.modal.counterclockwise":"Counterclockwise Arc Move","program.gcode.modal.dwell":"Dwell","program.gcode.modal.planeXY":"Plane Selection - XY","program.gcode.modal.planeZX":"Plane Selection - ZX","program.gcode.modal.planeYZ":"Plane Selection - YZ","program.gcode.modal.unitInch":"Unit - Inch","program.gcode.modal.unitMillimeter":"Unit - Millimeter (Default)","program.gcode.modal.returnToHomePos":"Return to Home Position","program.gcode.modal.absCoordMode":"Absolute Coordinate Mode","program.gcode.modal.relCoordMode":"Relative Coordinate Mode","program.gcode.modal.setCurrentCoord":"Set Current Position as Coordinate Origin","program.gcode.modal.doutOnSync":"Digital Output ON (Motion Synchronized)","program.gcode.modal.doutOffSync":"Digital Output OFF (Motion Synchronized)","program.gcode.modal.doutOnImmediate":"Digital Output ON (Immediate)","program.gcode.modal.doutOffImmediate":"Digital Output OFF (Immediate)","notfound.desc":"The page cannot be found.","notfound.button.home":"Go to Home","alarm.banner.button.hide":"Hide","alarm.banner.button.show":"Show","alarm.banner.msg.noNotifications":"No notifications","alarm.banner.title.importantNotification":"Important Notification","alarm.banner.toast.readFailContent":"Could not mark the notification as read. Please try again.","alarm.banner.toast.readFailTitle":"Failed to Read Notification","alarm.banner.toast.resolvePending":"Resolve pending actions to continue.","dashboard.detail.robotNotConnected":"Robot not connected.","move.amr.panel.virtualJoysticks":"Virtual Joysticks","move.rby1.accordion.detailControl":"Detail Control","move.rby1.button.batchJointMove":"Batch Joint Move","move.rby1.button.batchMove":"Batch Move","move.rby1.button.moveZeroPose":"Move Zero pose","move.rby1.field.jogStepDeg":"Jog Step (deg)","move.rby1.field.minimumTimeSec":"Minimum Time (sec)","move.rby1.modal.batchMoveJoints.title":"Batch Move Joints","move.tool.modal.title":"Select TCP Tool List","move.userFrame.modal.title":"Select User Coordinate","plugin.options.ariaLabel.more":"More options","plugin.options.ariaLabel.pin":"Pin","plugin.options.ariaLabel.unpin":"Unpin","plugin.popover.ariaLabel.close":"Close","plugin.options.button.detailInfo":"Detail Information","plugin.options.button.viewLogs":"View Logs","plugin.options.button.uninstall":"Uninstall","plugin.popover.button.manageInstalled":"Manage installed plugins","plugin.popover.installedList.desc":"This is the list of plugins installed by the user.","plugin.popover.installedList.empty":"No plugins installed","plugin.popover.installedList.emptyDesc":"Install plugins to check their status here and pin the ones you use often.","program.amrStream.field.frequency":"Frequency (Hz)","program.amrStream.field.target":"Target","program.commandList.msg.notFound":"Command not found.","program.pointPreview.title":"Move Preview","program.toast.title.programError":"Program Error","settings.devices.menu.externalAxis":"External Axis","settings.devices.menu.softwarePlc":"Software PLC","settings.general.afterAction.card.actionTypeLabel":"Action Type","settings.io.label.extDinput":"Ext D.Input","settings.io.label.extDinputPort":"Ext D.Input Port","settings.io.label.extDoutput":"Ext D.Output","settings.io.label.extDoutputPort":"Ext D.Output Port","settings.io.label.toolDinput":"Tool D.Input","settings.io.label.toolDinputPort":"Tool D.Input Port","settings.io.label.toolDoutput":"Tool D.Output","settings.io.label.toolDoutputPort":"Tool D.Output Port","plugin.detail.label.version":"Version","plugin.detail.label.size":"Size","plugin.detail.title.installation":"Installation","program.modal.error.duplicateName":"Program name already exists.","program.monitor.dialog.addVariable.label":"Variable Name","program.desc.loadOrAddNew":"Please load a program or add a new one.","program.button.loadProgram":"Load Program","program.button.newProgram":"New Program","program.desc.noRobotComponentsFound":"No robot components found","settings.io.label.dinput":"D.Input","settings.io.label.dinputPort":"D.Input Port","settings.io.label.doutput":"D.Output","settings.io.label.doutputPort":"D.Output Port","settings.io.label.delay":"Applied Signal Delay","settings.io.label.count":"Count","settings.io.label.direction":"Direction","settings.devices.label.type":"Type","maintenance.safety.desc.noData":"No Safety data","maintenance.safety.desc.search":"Search...","settings.joint.menu.bigInputError":"Big Error & Input Error","settings.joint.label.bigErrorPulse":"Big Error Pulse","settings.joint.label.inputErrorPulse":"Input Error Pulse","settings.joint.label.gain":"Gain","maintenance.update.modal.title.confirmVersion":"Confirm Upload Version","maintenance.update.modal.content.confirmVersion":"Is the SW update version for [{{category}}] as shown below?","maintenance.update.modal.content.confirmVersionSub":"If it's different, please modify it to the version you want.","maintenance.update.toast.title.unavailable":"Update Unavailable","maintenance.update.toast.title.complete":"Update Complete","maintenance.update.toast.content.updateSuccess":"{{names}} updated successfully. It may take 1-3 minutes to apply.","maintenance.update.dialog.title.result":"Update Result","maintenance.update.dialog.label.succeeded":"Succeeded: {{names}}","maintenance.update.dialog.label.failed":"Failed: {{names}}","maintenance.update.label.unitCount":"{{count}} units","maintenance.update.label.autoUpdate":"Auto Update","maintenance.update.button.execute":"Update","maintenance.update.button.uploading":"Uploading... {{progress}}%","maintenance.update.button.uploadBuildFile":"Upload Build File","maintenance.update.label.available":"Update Available","maintenance.update.label.unavailable":"Update Unavailable","program.monitor.dialog.placeholder.search":"Enter variable to monitor","program.box.photoneo":"Photoneo 3D Interface","program.box.initialize_configuration":"Initialize Configuration","program.box.scan_configuration":"Scan Configuration","program.box.get_object_pose_configuration":"Get Object Pose Configuration","program.box.get_trajectory_configuration":"Get Trajectory Configuration","program.box.solution_change_configuration":"Solution Change Configuration","program.box.solution_start_configuration":"Solution Start Configuration","program.box.solution_stop_configuration":"Solution Stop Configuration","program.box.solution_ask_configuration":"Solution Ask Configuration","program.interface.photoneo.vision_system_id":"Vision System ID","program.interface.photoneo.start_joint":"Start Joint","program.interface.photoneo.end_joint":"End Joint","program.interface.photoneo.point_variable_name":"Point Variable Name","program.interface.photoneo.solution_id":"Solution ID","program.interface.photoneo.current_solution_id":"Current Solution ID","program.interface.photoneo.position":"Setting Position","program.interface.photoneo.trajectory_start_to_approach":"Start → Approach","program.interface.photoneo.trajectory_approach_to_grasp":"Approach → Grasp","program.interface.photoneo.trajectory_grasp_to_deapproach":"Grasp → Depart","program.interface.photoneo.trajectory_deapproach_to_end":"Depart → End","program.options.photoneo_function.create_connection":"Create Connection","program.options.photoneo_function.initialize":"Initialize","program.options.photoneo_function.scan":"Scan","program.options.photoneo_function.get_object_pose":"Get Object Pose","program.options.photoneo_function.get_trajectory":"Get Trajectory","program.options.photoneo_function.solution_change":"Solution Change","program.options.photoneo_function.solution_start":"Solution Start","program.options.photoneo_function.solution_stop":"Solution Stop","program.options.photoneo_function.solution_ask":"Solution Ask","program.box.move_trajectory_configuration":"Move Trajectory Configuration","program.interface.photoneo.trajectory_name":"Trajectory Name","program.options.photoneo_function.move_trajectory":"Move Trajectory","move.ghostRobot.desc":"Drag the robot or click a surface to set the target pose.","program.box.trajectory_variables":"Trajectory Segment Variables","program.weaving.modal.title":"Weaving Parameters","program.weaving.modal.trapOddTime":"Linear reciprocating","program.weaving.modal.trapEvenTime":"R/C/L dwell","program.weaving.modal.trapMag1":"Max + (R) amp.","program.weaving.modal.trapMag2":"Max - (L) amp.","program.weaving.modal.sineOddTime":"Smooth S-curve","program.weaving.modal.sineMag1":"+ amp.","program.weaving.modal.sineMag2":"- amp.","program.weaving.modal.polyOddTime":"Smooth 5th-order","program.weaving.modal.ellipseOddTime":"Ellipse cycle","program.weaving.modal.ellipseEvenTime":"Vertex dwell","program.weaving.modal.ellipseMag1":"Y (weave) rad.","program.weaving.modal.ellipseMag2":"X (depth) rad.","program.weaving.modal.8ShapeOddTime":"Figure-8 cycle","program.weaving.modal.8ShapeEvenTime":"Crossing dwell","program.weaving.modal.8ShapeMag1":"Y-axis width","program.weaving.modal.8ShapeMag2":"X-axis width","program.weaving.modal.lissaOddTime":"Lissajous cycle","program.weaving.modal.lissaEvenTime":"Path dwell","program.weaving.modal.lissaPhase":"Y/X freq. ratio","program.weaving.modal.cShapeOddTime":"Arc travel","program.weaving.modal.cShapeEvenTime":"Arc R/C/L dwell","program.weaving.modal.cShapeMag1":"Arc height","program.weaving.modal.cShapeMag2":"Arc rad.","program.weaving.modal.diagOddTime":"Diagonal travel","program.weaving.modal.diagEvenTime":"R/C/L dwell","program.weaving.modal.diagMag1":"Y-axis travel","program.weaving.modal.diagMag2":"X-axis travel","program.weaving.tooltip.scaleRate":"Overall scale factor applied to Magnitude 1/2.","program.weaving.tooltip.torchDirection":"Offsets the entire pattern along the torch (depth) direction.","program.weaving.tooltip.weavingDirection":"Offsets the entire pattern along the weaving (left/right) direction.","program.weaving.tooltip.swingAngle":"Torch swing angle proportional to the weaving position.","program.weaving.tooltip.distortionAngle":"Rotates the weaving plane about the Z-axis.","move.ghostRobot.surface.filter.requiresCad":"Plane and cylinder require an STL, STP or STEP file.","move.ghostRobot.surface.unreachable":"The robot can't reach that point.","move.ghostRobot.section.moreOptions":"More Options","move.ghostRobot.section.gizmoOffset":"Gizmo Offset","move.ghostRobot.button.useToolOffset":"Use Tool Value","program.interface.photoneo.ext_axis_notice":"If an additional axis is present, only the values for the 6 axes excluding it are transmitted.","program.options.interface.photoneo":"Photoneo","program.box.pickit":"PICKIT 3D Interface","program.options.interface.pickit":"PICKIT 3D","program.options.pickit_function.connect":"Create Connection","program.options.pickit_function.update_robot_pose":"Update Robot Pose","program.options.pickit_function.check_mode":"Check Mode","program.options.pickit_function.shutdown_system":"Shutdown System","program.options.pickit_function.find_calib_plate":"Find Calib Plate","program.options.pickit_function.configure_calib":"Configure Calib","program.options.pickit_function.compute_calib":"Compute Calib","program.options.pickit_function.validate_calib":"Validate Calib","program.options.pickit_function.look_for_objects":"Look For Objects","program.options.pickit_function.look_for_objects_with_retries":"Look For Objects With Retries","program.options.pickit_function.next_object":"Next Object","program.options.pickit_function.capture_image":"Capture Image","program.options.pickit_function.process_image":"Process Image","program.options.pickit_function.get_pick_point_data":"Get Pick Point Data","program.options.pickit_function.configure":"Configure Setup and Product","program.options.pickit_function.set_cylinder_dim":"Set Cylinder Dimension","program.options.pickit_function.save_active_setup":"Save Active Setup","program.options.pickit_function.save_active_product":"Save Active Product","program.options.pickit_function.build_background":"Build Background","program.options.pickit_function.save_snapshot":"Save Snapshot","program.box.update_robot_pose_configuration":"Update Robot Pose Configuration","program.box.check_mode_configuration":"Check Mode Configuration","program.box.shutdown_system_configuration":"Shutdown System Configuration","program.box.find_calib_plate_configuration":"Find Calib Plate Configuration","program.box.configure_calib_configuration":"Configure Calib Configuration","program.box.compute_calib_configuration":"Compute Calib Configuration","program.box.validate_calib_configuration":"Validate Calib Configuration","program.box.look_for_objects_configuration":"Look For Objects Configuration","program.box.look_for_objects_with_retries_configuration":"Look For Objects With Retries Configuration","program.box.next_object_configuration":"Next Object Configuration","program.box.capture_image_configuration":"Capture Image Configuration","program.box.process_image_configuration":"Process Image Configuration","program.box.get_pick_point_data_configuration":"Get Pick Point Data Configuration","program.box.pickit_configure_configuration":"Configure Setup and Product","program.box.set_cylinder_dim_configuration":"Set Cylinder Dimension Configuration","program.box.save_active_setup_configuration":"Save Active Setup Configuration","program.box.save_active_product_configuration":"Save Active Product Configuration","program.box.build_background_configuration":"Build Background Configuration","program.box.save_snapshot_configuration":"Save Snapshot Configuration","program.interface.pickit.position":"Setting Position","program.interface.pickit.pickit_mode":"Pickit Mode","program.interface.pickit.calib_method":"Calibration Method","program.interface.pickit.calib_mount":"Calibration Mount","program.interface.pickit.pick_point_name":"Pick Point Variable","program.interface.pickit.remaining_count_name":"Remaining Count Variable","program.interface.pickit.model_id_or_type_name":"Model ID/Type Variable","program.interface.pickit.retry_count":"Retry Count","program.interface.pickit.gripper_pose_name":"Gripper Pose Variable","program.interface.pickit.reference_pick_point_id_name":"Reference Pick Point ID Variable","program.interface.pickit.setup_id":"Setup ID","program.interface.pickit.product_id":"Product ID","program.interface.pickit.cylinder_length":"Cylinder Length","program.interface.pickit.cylinder_diameter":"Cylinder Diameter","program.options.pickit_calib_method.single_pose":"Single Pose","program.options.pickit_calib_method.multi_pose":"Multi Pose","program.options.pickit_calib_method.manual":"Manual","program.options.pickit_calib_method.default":"Default","program.options.mechmind_function.create_connection":"Create Connection","program.options.mechmind_function.set_recipe":"Set Recipe","program.options.mechmind_function.trigger":"Trigger","program.options.mechmind_function.trigger_and_read_pose":"Trigger & Read Pose","program.options.mechmind_function.read_pose":"Read Pose","program.button.canBus":"CAN Bus","program.options.canBus.connect":"Connect","program.options.canBus.disconnect":"Disconnect","program.options.canBus.transmit":"Transmit","program.box.disconnect_configuration":"Disconnect Configuration","program.box.transmit_configuration":"Transmit Configuration","program.field.can_channel":"Channel","program.field.can_bitrate":"Bitrate","program.field.can_fd":"CAN FD","program.field.can_data_bitrate":"Data Bitrate","program.field.can_receive_own_messages":"Receive Own Messages","program.field.can_interface":"Interface","program.field.can_arbitration_id":"Arbitration ID","program.field.can_data":"Data","program.field.can_dlc":"DLC","program.field.can_extended_id":"Extended ID","program.field.can_remote_frame":"Remote Frame","program.field.can_bitrate_switch":"Bitrate Switch","program.field.can_error_frame":"Error Frame","program.field.can_error_state_indicator":"Error State Indicator","program.field.can_timestamp":"Timestamp","program.field.can_flags":"Flags","program.desc.can.add_data":"Enter byte values (0–255) separated by commas.","program.validation.can.data.invalid_array_format":"The data array format is invalid.","program.validation.can.data.integer_only":"Each data value must be an integer separated by commas.","program.validation.can.data.out_of_range":"Each data value must be between {{min}} and {{max}}.","program.validation.variableNameRule":"Variable names may only contain letters and underscores (_).","move.toast.performanceWarning.title":"Performance Warning","move.toast.performanceWarning.content":"The scene is too heavy, causing rendering delays.","move.bottomBar.complexity.ok":"Smooth","move.bottomBar.complexity.warning":"Moderate","move.bottomBar.complexity.danger":"Slow","move.bottomBar.complexity.triangles":"Triangles","move.bottomBar.complexity.framerate":"Frame rate","move.bottomBar.complexity.label":"3D Complexity","ik.blocked.unreachable.title":"Out of reach","ik.blocked.unreachable.content":"The arm is fully extended. Try pulling back toward the robot.","ik.blocked.unreachableRotate.title":"Cannot rotate further","ik.blocked.unreachableRotate.content":"This orientation is unreachable here. Try moving the position slightly.","ik.blocked.jointLimit.title":"Joint limit reached","ik.blocked.jointLimit.content":"The highlighted joint is at its limit. Try moving the other way.","ik.blocked.singularity.title":"Singular pose","ik.blocked.singularity.content":"The axes are nearly aligned. Try moving sideways.","ik.blocked.branch.title":"Posture change required","ik.blocked.branch.content":"Continuing would require a large posture change. Try approaching differently.","ik.blocked.diverged.title":"Solver failed","ik.blocked.diverged.content":"The solver did not converge. Change the pose slightly and retry.","ik.blocked.axisProximity.title":"Joint limit reached","ik.blocked.axisProximity.content":"The highlighted joint is at its limit. Try moving the other way.","move.ghostRobot.section.detailedBlockReason":"Show Motion Limit Details","ik.blocked.dev.candidates.some":"candidates=found","ik.blocked.dev.candidates.none":"candidates=none","ik.blocked.dev.clamped.true":"clamped=true","ik.blocked.dev.clamped.false":"clamped=false","ik.blocked.dev.jointLimit":"{{name}}={{val}}° [limit: {{lower}}°, {{upper}}°]","ik.blocked.dev.conditioning":"cond={{cond}} (threshold: < 0.01)","ik.blocked.dev.jump":"jump={{jump}}° (threshold: > 30.0°)","ik.blocked.dev.status":"status={{status}}","ik.blocked.dev.path":"path={{path}}","ik.blocked.dev.path.analytic":"analytic","ik.blocked.dev.path.fallback":"fallback","ik.blocked.dev.path.numeric":"numeric","settings.tool.flange.title.bootupTool":"Flange Boot-up Tool List Selection","settings.tool.flange.field.label.toolNumber":"Tool number","settings.tool.flange.title.bootupVoltage":"Flange Boot-up DC Voltage","settings.tool.flange.field.label.dcVoltage":"DC Voltage","settings.tool.flange.title.dtButton":"Flange Direct Teaching Button","settings.tool.flange.field.label.workingMode":"Working mode","settings.tool.flange.options.use":"Use","settings.tool.flange.options.notUse":"Not use","settings.tool.flange.title.vibrationSensor":"Flange Vibration (IMU) Sensor","move.menu.button.label.assetManager":"WorkSpace","move.modal.workspace.file.button.add":"Add","move.modal.workspace.file.button.cancelUpload":"Cancel upload","move.modal.workspace.file.confirmDelete.content":'Are you sure you want to delete "{{name}}"? This action cannot be undone.',"move.modal.workspace.file.confirmDelete.multiContent":"Are you sure you want to delete {{count}} items? This action cannot be undone.","move.modal.workspace.button.confirm":"Confirm","move.modal.workspace.button.deleteSelected":"Delete {{count}}","move.modal.workspace.button.select":"Select","move.modal.workspace.button.selectExit":"Done","move.modal.workspace.file.deleteTitle":"Delete Model","move.modal.workspace.file.dropLabel":"Drop files to upload","move.modal.workspace.file.empty.noAvailable":"No 3D files available","move.modal.workspace.file.empty.noFound":"No 3D files found","move.modal.workspace.footer.hint":"Double-click to load immediately.","move.modal.workspace.file.search.placeholder":"Search 3D files...","move.modal.workspace.file.title":"Select 3D File","move.modal.workspace.title":"Select Workspace","move.workspace.tab.base":"Base","move.workspace.title":"Workspace","move.workspace.button.continue":"Continue","move.workspace.itemList.deleteLabel":"Delete object","move.modal.workspace.card.itemCount":"{{shapeCount}} shapes, {{fileCount}} files","move.workspace.itemList.empty":"Add a shape or file.","move.workspace.jsonSlot.empty":"Select a workspace","move.workspace.shapeLimitReached":"You can add up to 5 shapes.","move.workspace.toast.saveFailed":"Failed to save the workspace.","move.workspace.toast.saveSuccess":"Workspace saved.","move.workspace.toast.uploadFailed":"Failed to upload the file.","move.modal.workspace.file.preview.error":"Unable to load preview","move.modal.workspace.file.preview.multiSelectUnsupported":"Preview is not supported when multiple 3D files are selected","move.modal.workspace.file.preview.selectPrompt":"Select a model file to preview","move.modal.workspace.file.preview.triangles":"triangles","move.modal.workspace.file.slotLoading":"Loading...","move.workspace.toast.renameFailed":"Failed to change model name.","move.workspace.toast.renameInvalid":"Please enter a valid name.","move.workspace.toast.renameSuccess":"Model name changed.","move.modal.workspace.file.upload.abort":"Upload cancelled.","move.modal.workspace.file.upload.duplicateName":"A file with the same name already exists.","move.workspace.toast.invalidCharacters":"Name cannot contain spaces or the characters # ? & %.","move.modal.workspace.file.upload.invalidFormat":"Unsupported file format. Only .stl, .obj, .stp, .step, .dae, .glb are supported.","move.modal.workspace.file.upload.maxFilesExceeded":"Drag and drop up to {{count}} files to upload.","move.modal.workspace.file.upload.createFailed":"Failed to create model. Please try again.","move.modal.workspace.file.upload.tooLarge":"File size exceeds the maximum limit (50MB).","move.modal.workspace.file.upload.unknown":"Network error. Please check your connection and try again.","move.modal.workspace.button.delete":"Delete","move.workspace.properties.translate":"Move","move.workspace.properties.rotate":"Rot","move.workspace.properties.scale":"Scale","move.modal.workspace.search.placeholder":"Search workspaces...","move.modal.workspace.empty.noAvailable":"No workspaces available","move.modal.workspace.empty.noFound":"No workspaces found","move.workspace.stepFormatWarning.title":"Loading .stp/.step file","move.workspace.stepFormatWarning.message":"STEP format (.stp, .step) files may take longer to load compared to other formats. Please wait.","move.workspace.header.renameLabel":"Rename workspace","move.workspace.header.undo":"Undo","move.workspace.header.redo":"Redo","move.workspace.header.menu":"Workspace menu","move.workspace.header.open":"Open","move.workspace.header.createNew":"New","move.workspace.header.clearAll":"Delete All Objects","move.workspace.header.reset":"Revert to last save","move.workspace.addMenu.trigger":"Add object","move.workspace.addMenu.customFile":"Imported File","move.workspace.itemList.title":"Object List","move.workspace.confirm.clearAllTitle":"Clear All Objects","move.workspace.confirm.clearAllContent":"Are you sure you want to remove all shapes and files in this workspace?","move.workspace.confirm.replaceFileTitle":"Replace the imported file?","move.workspace.confirm.replaceFileContent":"A workspace can hold one imported file. The current file will be removed.","move.workspace.properties.groupLabel":"Gizmo mode","move.workspace.itemList.hideLabel":"Hide in scene","move.workspace.itemList.showLabel":"Show in scene","move.workspace.toast.nameDuplicate":"A workspace with this name already exists.","move.workspace.toast.saveFailedPartial":"Failed to save {{count}} object(s).","move.workspace.toast.loadTimeout":'Stopped loading "{{name}}" — it took too long.',"move.modal.workspace.toast.deletePartialFailure":"Failed to delete {{failed}} of {{total}} objects.","move.modal.workspace.confirmDelete.title":"Delete workspace","move.modal.workspace.confirmDelete.content":'Are you sure you want to delete the workspace "{{name}}"? All objects in it will be deleted, and this action cannot be undone.',"move.workspace.tab.loadingLabel":"Some objects are still loading","move.workspace.itemList.saveFailedLabel":"Save failed","move.workspace.itemList.loadFailedLabel":"Could not load the file","move.workspace.toast.loadedSyncFailed":"Failed to sync the active state.","move.workspace.tab.tool":"Tool","move.workspace.tab.toolRight":"Right Tool","move.workspace.tab.toolLeft":"Left Tool","move.workspace.tab.toolIndexed":"Tool {{index}}","move.workspace.properties.title":"Object Properties","move.workspace.properties.resetTransform":"Reset","move.modal.workspace.confirmDelete.multiContent":"Are you sure you want to delete {{count}} workspaces? All objects in them will be deleted, and this action cannot be undone.","move.workspace.dialog.createTitle":"Create New Workspace","move.workspace.dialog.renameTitle":"Rename Workspace","move.workspace.dialog.namePlaceholder":"Enter workspace name","move.workspace.header.rename":"Rename","move.workspace.header.delete":"Delete","move.workspace.header.close":"Close","move.workspace.dialog.saveAsTitle":"Save As","program.section.title.variableConfig":"Variable Configuration","program.field.variableType":"Variable Type","program.field.variableSelection":"Variable Selection","program.section.title.dialogSettings":"Dialog Settings","program.field.askMessage":"Ask Message","program.field.varNameToStore":"Variable Name to store selection","program.field.timeoutDuration":"Selection Time-Out duration (s)","program.field.fallbackNumber":"Number to select when a timeout occurs","program.section.title.comment":"Comment","program.list.box.maxCommentLimit":"Up to {{count}} comments can be added.","program.section.title.addComment":"Add Comment","program.modal.title.changeUserVariable":"Change User Variable Values","program.button.skip":"Skip","program.button.continueAfterReflection":"Continue after Reflection","program.field.variable":"Variable","program.field.applyValue":"Value to apply","program.modal.label.typingExample":"Typing Example","program.modal.desc.string":'A type that stores character data wrapped in double quotes (Ex: "Robot_Mode_1", "PASS")',"program.modal.desc.numeric":"A type that represents numeric values, including integers and floating-point numbers (Ex: 100, 3.14, -45.5)","program.modal.desc.boolean":"A logical value of true or false (Ex: true, false)","program.modal.desc.list":"An ordered collection of multiple values or coordinates (Ex: [0, -90, 90, -90, -90, 0, 0])","program.modal.desc.dictionary":'A value structured as key-value pairs (Ex: {"tool_name": "Gripper_A"})',"program.modal.desc.variable":"A type that references and assigns a local or global variable (Ex: target_pose = RB_JOINT_REF)","program.field.description":"Description","program.field.owner":"Owner","move.workspace.header.duplicate":"Make a copy","move.workspace.header.saving":"Saving...","move.workspace.header.saved":"Saved","program.script.meta-info-view":"View Meta information","maintenance.menu.database":"Database","maintenance.database.desc":"Initializes database collections and disk data item by item. Initialized data cannot be recovered.","maintenance.db.title.programReset":"Program Reset","maintenance.db.desc.programReset":"Deletes all saved programs, tasks, steps, and variables.","maintenance.db.button.programReset":"Reset Program","maintenance.db.title.logReset":"Log Reset","maintenance.db.desc.logReset":"Immediately clears status logs. (Retention period is set in the Log menu)","maintenance.db.button.logReset":"Reset Logs","maintenance.db.title.pluginReset":"Plugin Reset","maintenance.db.desc.pluginReset":"Deletes installed plugins and plugin-scoped variables.","maintenance.db.button.pluginReset":"Reset Plugins","maintenance.db.title.fileReset":"File/Model Reset","maintenance.db.desc.fileReset":"Deletes uploaded files and registered models.","maintenance.db.button.fileReset":"Reset Files","maintenance.db.title.amrReset":"AMR Reset","maintenance.db.desc.amrReset":"Deletes maps, driving settings, localization, and movement command history.","maintenance.db.button.amrReset":"Reset AMR","maintenance.db.warning.amrReset":"Warning: Map data cannot be recovered.","maintenance.db.title.userReset":"User/Auth Reset","maintenance.db.desc.userReset":"Deletes user accounts (except admin), sessions, SDK whitelist, and login policies.","maintenance.db.button.userReset":"Reset Users","maintenance.db.title.factoryReset":"Factory Reset (All)","maintenance.db.desc.factoryReset":"Deletes all of the above along with robot info and FRS info, restoring factory shipment state.","maintenance.db.button.factoryReset":"Factory Reset","maintenance.db.warning.factoryReset":"Warning: This action cannot be undone once reset.","maintenance.modal.content.confirmResetDB":"Are you sure you want to Reset?\\nThis action cannot be undone.","move.menu.button.label.masterMode":"Master Mode","move.menu.button.label.master.modeJ":"Master Move J","move.menu.button.label.master.modeL":"Master Move L","move.menu.button.label.master.stop":"Master Mode Stop","move.workspace.itemList.selectionMode":"Select","move.workspace.itemList.selectionExit":"Cancel","move.workspace.itemList.selectionCount":"{{count}} selected","move.workspace.itemList.hideSelected":"Hide {{count}}","move.workspace.itemList.deleteSelected":"Delete {{count}}","move.workspace.header.saveNow":"Save","move.workspace.confirm.closeTitle":"Unsaved Changes","move.workspace.confirm.closeContent":"You have unsaved changes. Are you sure you want to close?","move.workspace.button.closeWithoutSaving":"Close without saving","move.workspace.confirm.openTitle":"Open Workspace","move.workspace.confirm.openContent":"Unsaved changes will be lost. Do you want to continue?","move.workspace.confirm.deleteTitle":"Delete Workspace","move.workspace.confirm.deleteContent":'Are you sure you want to delete "{{name}}"?',"move.workspace.toast.deleteSuccess":"Workspace deleted successfully.","move.workspace.toast.deleteFailed":"Failed to delete workspace.","move.workspace.header.unsaved":"Unsaved","move.workspace.properties.selectItem":"Please select an object","move.workspace.addMenu.box":"Box","move.workspace.addMenu.cylinder":"Cylinder","move.workspace.addMenu.sphere":"Sphere","move.modal.asset.button.add":"Add","move.modal.workspace.card.deleteLabel":"Delete","settings.general.menu.netComm":"Network/Comm.","settings.network.title.ipSettings":"IP Settings","settings.network.desc.ipSettings":"Choose how this device connects to your network. Select DHCP to get an IP address automatically, or Static to manually set a fixed IP address.","settings.network.label.settingMode":"Setting Mode","settings.network.label.mask":"Mask","settings.network.label.gateway":"Gateway","program.userInput.errorMsg.varSelection":"Please select a variable.","program.options.clearDataTable":"Clear Data Table","program.options.addDataTable":"Add Data Table","program.options.calcTable":"Calculate Result from Table","program.options.reflectResult":"Reflect Result to Robot-arm","program.options.usePosInfo":"Use Position Info","program.options.usePosAndOri":"Use Position and Orientation","program.label.jointAngle":"Joint Angle (deg)","program.label.groundTruthTCP":"Ground Truth TCP","program.field.calcOption":"Calculation Option","program.field.password":"Password","move.panel.measureDistance":"Measure Distance","move.measure.title":"Measure Distance","move.measure.activate":"Enable Distance Measurement","move.measure.target1":"Target 1","move.measure.target2":"Target 2","move.measure.selectFirstPrompt":"Click first shape","move.measure.selectSecondPrompt":"Click second shape","move.measure.mode.center":"Center-to-Center","move.measure.mode.min":"Minimum Distance","move.measure.result.distance":"Distance","move.measure.reset":"Reset","move.amr.rightPanel.map.info.downloadMap":"Download Map","move.amr.toast.title.mapDownload.fail":"Map Download Failed","move.amr.toast.content.mapDownload.fail":"No map point cloud data is available to download","move.align.switch.label":"Move Align","move.align.button.send":"Send","settings.box.option.notUse":"Not Use","settings.box.option.activeAfterReal":"Activate after Real-Mode","settings.tool.gripper.label.defaultGripper":"Default Gripper Attachment","settings.tool.gripper.label.pubDataType":"Publish Data type {{idx}}","settings.box.option.notMounted":"Not Mounted","settings.box.option.notAssigned":"Not Assigned","settings.box.option.posRef":"Position Reference","settings.box.option.posFeedback":"Position Feedback","settings.box.option.speedRef":"Speed Reference","settings.box.option.speedFeedback":"Speed Feedback","settings.box.option.forceRef":"Force Reference","settings.box.option.forceFeedback":"Force Feedback","move.box.option.global":"Global","move.box.option.local":"Local","move.box.option.user":"User","move.amr.viewportControls.visibility.lidarPoints":"Lidar Points","move.amr.viewportControls.visibility.lidarPointsDescription":"Real-time point cloud","move.amr.viewportControls.visibility.simpleNodes":"Simple Nodes","move.amr.viewportControls.visibility.simpleNodesDescription":"Render topology nodes as small spheres","move.amr.viewportControls.visibility.nodeLabels":"Node Labels","move.amr.viewportControls.visibility.nodeLabelsDescription":"CSS2D Object labels","move.amr.viewportControls.visibility.grid":"Grid","move.amr.viewportControls.visibility.gridDescription":"Blender-style ground grid","move.amr.viewportControls.camera.projection":"Projection","move.amr.viewportControls.camera.projectionDescription":"Switch between 3D orbit view and 2D-like top view","move.amr.viewportControls.camera.topView":"Top View","move.amr.viewportControls.camera.topViewDescription":"View the map from above with rotation locked.","move.amr.viewportControls.camera.perspective":"Perspective","move.amr.viewportControls.camera.perspectiveDescription":"Use the 3D orbit camera.","move.amr.viewportControls.rendering.lidarPointSize":"LiDAR Point Size","move.amr.viewportControls.rendering.lidarPointSizeDescription":"Adjust real-time point cloud size","move.amr.viewportControls.section.camera":"Camera","move.amr.viewportControls.section.visibility":"Visibility","move.amr.viewportControls.section.rendering":"Rendering","move.amr.panel.viewportControl":"Viewport Controls","program.modal.button.stopProg":"Stop Program","move.ghostRobot.section.torsoMode":"Torso Mode","move.ghostRobot.torsoMode.free":"Free","move.ghostRobot.torsoMode.constrained":"Constrainded","maintenance.menu.resources":"CPU/Mem Resources","maintenance.menu.logRetention":"Log Retention","maintenance.logRetention.desc":"Set how long logs are kept. Logs older than this are deleted automatically. Changes apply immediately.","maintenance.logRetention.retentionDays":"Log Retention Days","maintenance.logRetention.retentionRange":"1 to 30 days (default 15 days)","maintenance.logRetention.days":"{{days}} days","maintenance.logRetention.confirm.title":"Shorten Log Retention","maintenance.logRetention.confirm.content":"Reducing retention from {{from}} to {{to}} days will permanently delete all logs older than {{to}} days. Continue?","maintenance.logRetention.toast.savedTitle":"Saved","maintenance.logRetention.toast.savedContent":'maintenance.log.toast.savedContent": "Log retention is now {{days}} days.',"maintenance.resources.desc":"Sets CPU and memory limits for the muscat container. Changes apply immediately without a restart.","maintenance.resources.cpu":"CPU Limit","maintenance.resources.memory":"Memory Limit","maintenance.resources.unlimited":"Unlimited","maintenance.resources.usage":"Current usage","maintenance.resources.host":"Host","maintenance.resources.cores":"cores","maintenance.modal.content.confirmResources":"Values that are too low can slow the system down or kill it with out-of-memory.\\nDo you want to apply the change?","move.chart.title":"Chart","move.chart.emptyDesc":"No data to display","program.modal.title.setRepeatCount":"Set Number of repetitions","program.modal.desc.setRepeatCount":"Set repetition count for newly added repeats.","program.options.avoidSingularity":"Avoid Singularity","program.field.checkMode":"Check Mode","progarm.field.dataOption":"Data Option","program.options.finishCheck":"Finish Check","program.options.startCheck":"Start Check","program.options.reference":"Reference","program.field.returnType":"Return Type","program.field.arguments":"Arguments","program.field.returnVariable":"Return Variable","program.msg.selectFunction":"Select a function from the list.","program.placeholder.searchFunction":"Search by function name","program.field.functions":"Functions","program.field.argCount":"{{count}} args","program.field.argN":"Arg {{n}}","program.placeholder.valueOrVariable":"Value or variable name","program.desc.noDescription":"No description registered.","program.desc.returnVariableEmpty":"Leave empty to discard the return value.","program.placeholder.returnVariable":"e.g. result","program.field.preview":"Preview","program.desc.functionCallArgs":'Wrap string values in double quotes (e.g. "text"). To pass a variable, use get("name").',"program.msg.noFunctions":"No functions found.","program.msg.noFunctionsDesc":"Try a different search term.","program.msg.selectFunctionDesc":"Function details, arguments and return variable appear here.","move.amr.viewportControls.section.manualCamera":"Manual Camera","move.amr.viewportControls.camera.move":"Manual Move","move.amr.viewportControls.camera.moveDescription":"Move the camera up, down, left, right, or reset it to center.","move.amr.rightPanel.history.noHistory":"No history","move.amr.rightPanel.history.latest":"Latest","move.amr.rightPanel.history.time":"Time","move.amr.rightPanel.history.command":"Command","move.amr.rightPanel.history.result":"Result","move.amr.rightPanel.topology.overview.title":"Overview","move.amr.rightPanel.topology.overview.description":"Manage topology-level information and file actions.","move.amr.rightPanel.topology.overview.summaryTitle":"Topology Summary","move.amr.rightPanel.topology.overview.createdAt":"Created At","move.amr.rightPanel.topology.overview.nodes":"Nodes","move.amr.rightPanel.topology.overview.links":"Links","move.amr.rightPanel.topology.overview.zones":"Zones","move.amr.rightPanel.topology.overview.fileTitle":"Topology File","move.amr.rightPanel.topology.overview.fileDescription":"Download the current topology data as topology.json.","move.amr.rightPanel.topology.overview.download":"Download topology","move.amr.rightPanel.topology.tab.overview":"Overview","move.amr.rightPanel.topology.tab.node":"Node","move.amr.rightPanel.topology.zone.updateZone":"Update Zone","move.amr.rightPanel.topology.zone.createZone":"Create Zone","move.amr.rightPanel.topology.zone.discardEditContent":"Discard these edits and restore the original zone?","move.amr.rightPanel.topology.zone.discardDraftContent":"Discard this zone draft and unsaved topology changes?","move.amr.rightPanel.topology.zone.createNewZone":"Create New Zone","move.amr.rightPanel.topology.zone.startDrawing":"Start Drawing","move.amr.rightPanel.topology.zone.selectedCount":"{{count}} zones selected","move.amr.rightPanel.topology.zone.editingZone":"Editing zone","move.amr.rightPanel.topology.zone.oneSelected":"1 zone selected","move.amr.rightPanel.topology.zone.selectedZones":"Selected Zones","move.amr.rightPanel.topology.zone.pointCount":"{{type}} / {{count}} pts","move.amr.rightPanel.topology.zone.details":"Details","move.amr.rightPanel.topology.zone.name":"Zone Name","move.amr.rightPanel.topology.zone.namePlaceholder":"Enter zone name","move.amr.rightPanel.topology.zone.type":"Zone Type","move.amr.rightPanel.topology.zone.editZone":"Edit Zone","move.amr.rightPanel.topology.zone.deleteZone":"Delete Zone","move.amr.rightPanel.topology.zone.deleteContent":"Delete this selected zone?","move.amr.rightPanel.topology.zone.keep":"Keep","move.amr.rightPanel.topology.zone.reopenZone":"Reopen Zone","move.amr.rightPanel.topology.zone.reopen":"Reopen","move.amr.rightPanel.topology.zone.undoLastPoint":"Undo Last Point","move.amr.rightPanel.topology.zone.clearPoints":"Clear Points","move.amr.rightPanel.topology.zone.closeZone":"Close Zone","move.amr.rightPanel.bottomBar.obstacleMap":"Obstacle Map","common.unit.meters":"m","move.amr.obstacleMap.title":"Obstacle Map","move.amr.obstacleMap.description":"Real-time 2D canvas preview","move.amr.obstacleMap.waitingForData":"Waiting for obstacle map data","move.amr.obstacleMap.statusLabel":"Status","move.amr.obstacleMap.gridLabel":"Grid","move.amr.obstacleMap.gridSizePerPixel":"{{value}} m/px","move.amr.obstacleMap.layerCount":"{{count}} Layers","move.amr.obstacleMap.status.waitingForStream":"Waiting for stream","move.amr.obstacleMap.status.live":"Live","move.amr.obstacleMap.status.noActiveLayers":"No active layers","move.amr.obstacleMap.status.idle":"Idle","move.amr.panel.viewportVisibility":"Viewport Visibility","move.amr.panel.fullscreen.enter":"Full Screen","move.amr.panel.fullscreen.exit":"Exit Full Screen","move.amr.leftToolBar.select":"Select","move.amr.leftToolBar.cursor":"Cursor","move.amr.leftToolBar.move":"Move","move.amr.leftToolBar.rotate":"Rotate","move.amr.leftToolBar.scale":"Scale","move.amr.viewportControls.visibility.mapBoundary":"Map Boundary","move.amr.viewportControls.visibility.mapBoundaryDescription":"Highlight the loaded map boundary","program.options.goalId.string":"String","program.options.goalId.expression":"Expression","program.validation.goalId.quotedLiteralNotAllowed":"String literals cannot be entered in expressions.","move.amr.rightPanel.topology.edit.nodeType":"Node Type","move.amr.rightPanel.topology.edit.nodeTypeSingleSelect":"Select a single node to change its type.","move.amr.rightPanel.topology.edit.nodeTypeUnavailable":"Type changes will be available in a future update.","move.amr.rightPanel.topology.edit.nodeTypeDescription":"Changing the type keeps the node ID and connected links.","move.field.label.sensitivity":"Sensitivity","move.button.stop":"Stop","move.button.start":"Start","move.options.interJoint":"Internal Joint","move.options.externalFt":"External F/T","maintenance.title.lastJoint":"Last Joint Angle DB","maintenance.button.erase":"Erase","maintenance.title.editRobotInfo":"Edit Robot Information","maintenance.desc.editRobotInfo":"Change the robot category and model, and optionally set a robot name as an alias.","move.gripper.notMountDesc":"Gripper is not Mounted.","move.amr.viewportControls.section.clipping":"Point Cloud Clipping","move.amr.viewportControls.clipping.height":"Height Clipping","move.amr.viewportControls.clipping.heightDescription":"Only display map points within the selected height range","move.amr.viewportControls.clipping.minHeight":"Minimum Height","move.amr.viewportControls.clipping.maxHeight":"Maximum Height","move.amr.viewportControls.clipping.reset":"Reset Clipping","move.button.off":"Off","move.button.time":"Time"},E4n={"menu.title.dashboard":"대시보드","menu.title.move":"동작","menu.title.program":"프로그램","menu.title.plugin":"플러그인","menu.title.log":"로그","menu.title.settings":"설정","menu.title.maintenance":"유지보수","menu.title.help":"도움말","menu.title.robotSelect":"로봇 선택","header.title.emcStop":"긴급 정지","header.title.fullSimulator":"시뮬레이터 확장","header.title.externalNetwork":"외부망","header.title.closedNetwork":"폐쇄망","header.toast.title.powerCtrlFail":"로봇 전원 제어 실패","header.toast.desc.powerCtrlFail":"네트워크를 확인 해주세요.","footer.title.selectProgram":"프로그램 선택","footer.title.speed":"속도","controlBar.lock.lock":"컨트롤바 잠금","controlBar.lock.locked":"잠김","controlBar.lock.holdToUnlock":"잠금 해제: 길게 누르기","controlBar.toast.locked":"잠겨 있습니다 · 자물쇠를 길게 눌러 해제","controlBar.toast.lockOn":"잠갔습니다 · 정지는 계속 사용할 수 있어요","controlBar.toast.unlocked":"잠금을 해제했습니다","controlBar.popover.title":"로봇별 현재 스텝","controlBar.robotCount":"{{count}}대","controlBar.step.waiting":"대기 중","controlBar.step.done":"완료","controlBar.repeat.infinite":"무한 반복","controlBar.repeat.down":"반복 줄이기","controlBar.repeat.up":"반복 늘리기","controlBar.speed.down":"속도 낮추기","controlBar.speed.up":"속도 높이기","modal.conn.button.all":"전체","modal.conn.button.servo":"서보","modal.conn.button.power":"전원","modal.conn.button.motor":"모터","dashboard.title.systemOverview":"시스템 개요","dashboard.title.totalComponent":"전체 컴포넌트","dashboard.title.activeComponent":"활성 컴포넌트","dashboard.title.robotComponent":"로봇 컴포넌트","dashboard.title.robotComponents":"로봇 컴포넌트","dashboard.title.networkType":"네트워크 타입","dashboard.title.cpuUseRate":"CPU 사용률","dashboard.title.error":"24시간 내 오류","dashboard.title.robotInfo":"로봇 정보","dashboard.title.recentLogs":"최근 로그","dashboard.title.amrNavStatus":"AMR 네비게이션 상태","dashboard.title.amrMoveHistory":"AMR 동작 기록","dashboard.content.localization":"위치 초기화","dashboard.content.mapEditor":"맵 에디터","dashboard.content.currentNode":"현재 노드","dashboard.content.targetNode":"목표 노드","dashboard.content.mapName":"맵 이름","dashboard.content.linearSpeed":"선속도","dashboard.content.rotationSpeed":"회전속도","dashboard.content.localizationStatus":"위치 초기화 상태","dashboard.content.obstacle":"지장물","dashboard.content.pathState":"경로 상태","dashboard.content.alias":"별칭","dashboard.content.model":"모델","dashboard.content.components":"컴포넌트","dashboard.content.status":"상태","dashboard.content.repeat":"반복","dashboard.content.step":"스탭","dashboard.content.type":"타입","dashboard.content.motorAvgTmp":"모터 평균 온도","dashboard.content.mode":"모드","dashboard.content.version":"버전","dashboard.content.infinite":"무한 반복","dashboard.button.editInfo":"로봇 정보 수정","dashboard.button.viewAllLogs":"모든 로그 보기","dashboard.button.stop":"정지","dashboard.button.play":"재생","dashboard.button.moveControl":"동작 제어","dashboard.button.detail":"상세보기","dashboard.button.viewAllHistory":"모든 기록 보기","dashboard.modal.title.inputRobotInfo":"로봇 정보 입력","dashboard.modal.desc.inputRobotInfo":"로봇 정보를 입력해 주세요.","dashboard.modal.label.category":"카테고리","dashboard.modal.label.robotModel":"로봇 모델","dashboard.modal.label.serialNumber":"시리얼 번호","dashboard.modal.label.robotName":"로봇 이름","dashboard.modal.label.optional":"선택사항","dashboard.modal.button.submit":"제출","dashboard.modal.button.qrCode":"QR 코드","dashboard.modal.msg.serialNumber":"시리얼 번호가 필요합니다.","dashboard.modal.title.qrScanGuide":"QR 코드 스캔 가이드","dashboard.modal.desc.qrScanGuide":"바코드 USB를 로봇에 연결 후, 로봇 명판에 QR 코드를 찍어주세요","dashboard.title.power":"전원","dashboard.title.servo":"서보","dashboard.title.controlManager":"컨트롤 매니저","dashboard.title.toolFlangePower":"툴 플랜지 전원","dashboard.title.brake":"브레이크","dashboard.button.selectAll":"전체 선택","dashboard.button.deselectAll":"선택 해제","dashboard.button.allOn":"전체 ON","dashboard.button.allOff":"전체 OFF","dashboard.content.axisCount":"{{count}}축","move.title.distance":"거리","move.title.rotation":"회전","move.title.selectCoordinate":"좌표계 선택","move.content.outCollDetect":"외부 충돌 감지","move.content.noOutcoll":"외부 충돌 없음","move.content.selfCollDetect":"자가 충돌 감지","move.content.noSelfcoll":"자가 충돌 없음","move.content.emcStopOn":"긴급 정지 On","move.content.emcStopOff":"긴급 정지 Off","move.button.change":"변경","log.title.log":"로그","log.title.filter":"필터","log.title.total":"총 로그 수","log.title.rows":"줄 씩 보기","log.title.createdAt":"생성된 시간","log.title.swName":"SW 이름","log.title.level":"로그 등급","log.title.contents":"내용","log.title.dateRange":"기간","log.title.excludeText":"제외 텍스트","log.button.exportCSV":"CSV로 내보내기","log.button.exportTXT":"TXT로 내보내기","log.button.showAll":"전체 보기","log.button.showLess":"접기","log.button.resetFilter":"필터 초기화","log.button.selectDate":"날짜 선택","log.button.confirm":"확인","log.label.from":"시작","log.label.to":"종료","log.placeholder.search":"검색","log.toast.title.duplicateText":"중복된 필터 텍스트","log.toast.content.duplicateText":"같은 텍스트를 포함 및 제외 필터에 동시에 사용할 수 없습니다.","settings.menu.title.general":"일반","settings.menu.title.system":"시스템","settings.menu.title.tool":"툴","settings.menu.title.Frame":"좌표계","settings.menu.title.io":"입/출력","settings.menu.title.devices":"디바이스","settings.general.menu.robotMounting":"로봇 설치","settings.general.menu.collDetection":"충돌 감지","settings.general.menu.handGuiding":"직접 교시","settings.general.menu.userScript":"사용자 스크립트","settings.general.menu.afterAction":"After Action","settings.system.menu.configuration":"설정","settings.tool.menu.toolList":"툴 목록","settings.tool.menu.flange":"플랜지","settings.tool.flange.desc":"로봇 엔드이펙터 장착부(Flange)의 부팅 옵션과 직접 교시 버튼, 진동 센서 사용 여부를 설정합니다.","settings.tool.menu.gripper":"그리퍼","settings.tool.gripper.desc":"기본 그리퍼 장착 및 퍼블리시 데이터 종류를 설정합니다.","settings.frame.menu.userCoordinate":"유저 좌표계","settings.frame.menu.area":"영역","settings.io.menu.dinFunctions":"Box 디지털 입력 기능","settings.io.menu.extDoutFunctions":"Ext 디지털 출력 기능","settings.io.menu.extDinFunctions":"Ext 디지털 입력 기능","settings.io.menu.extDinFilter":"Ext 디지털 입력 필터","settings.io.menu.doutFunctions":"Box디지털 출력 기능","settings.io.menu.toolDoutFunctions":"Tool 디지털 출력 기능","settings.io.menu.toolDinFunctions":"Tool 디지털 입력 기능","settings.io.menu.toolDinFilter":"Tool 디지털 입력 필터","settings.io.menu.dinFilter":"Box 디지털 입력 필터","settings.button.save":"저장","settings.button.edit":"수정","settings.button.cancel":"취소","settings.button.settingsReset":"초기화","settings.button.set":"적용","settings.rby1.parameters.title":"Parameters","settings.rby1.parameters.desc":"로봇 파라미터를 조회하고 변경합니다. 값은 현재 값과 같은 형식으로 입력하세요(문자열은 큰따옴표 포함).","settings.rby1.parameters.refresh":"새로고침","settings.rby1.parameters.defaultReset":"DEFAULT RESET","settings.rby1.parameters.factoryReset":"FACTORY RESET","settings.rby1.parameters.defaultResetAllContent":"모든 파라미터를 기본값으로 되돌립니다. 되돌릴 수 없습니다. 진행하시겠습니까?","settings.rby1.parameters.factoryResetAllContent":"모든 파라미터를 공장 초기값으로 되돌립니다. 되돌릴 수 없습니다. 진행하시겠습니까?","settings.rby1.parameters.resetOneContent":"{{name}} 파라미터를 기본값으로 되돌립니다. 진행하시겠습니까?","settings.rby1.parameters.searchPlaceholder":"파라미터 이름 검색","settings.rby1.parameters.name":"Name","settings.rby1.parameters.type":"Type","settings.rby1.parameters.currentValue":"Current Value","settings.rby1.parameters.newValue":"New Value","settings.rby1.parameters.empty":"파라미터가 없습니다.","settings.rby1.parameters.setSuccess":"{{name}} 값을 변경했습니다.","settings.general.title.gravityDirection":"중력 방향","settings.general.desc.gravityDirection":"로봇의 설치 각도를 설정합니다. 전역 좌표계에 대한 중력 가속도의 방향 벡터를 입력합니다.","settings.general.title.outCollision":"외부 충돌","settings.general.desc.outCollision":"충돌 민감도를 설정합니다. 민감도가 낮을수록 로봇은 약한 충격에도 더 많이 멈춥니다.","settings.general.title.selfCollision":"자가 충돌","settings.general.desc.selfCollision":"자가 충돌 모드와 감지 거리를 설정합니다.","settings.general.outColl.title.threshold":"둔감도","settings.general.outColl.title.stopMode":"정지 모드","settings.general.outColl.title.onOff":"켜기/끄기","settings.general.selfColl.title.detectDist":"감지 거리","settings.general.selfColl.title.robotArm":"로봇 팔","settings.general.selfColl.title.external":"외부","settings.general.title.sensitivity":"직접교시 감도","settings.general.desc.sensitivity":"각 조인트의 민감도는 0~2 범위에서 조정할 수 있습니다. 기본값은 1이며, 값이 높을수록 더 적은 힘으로 조작할 수 있습니다.","settings.general.title.bootupJointImpedance":"부팅 시 관절 임피던스","settings.general.desc.bootupJointImpedance":"제어박스 부팅 시 적용될 관절 임피던스 값을 설정합니다.","settings.system.title.language":"언어","settings.tool.title.name":"이름","settings.tool.title.mass":"질량","settings.tool.title.centerOfGravity":"질량 중심","settings.tool.title.position":"위치","settings.tool.title.rotation":"회전","settings.tool.title.size":"크기","settings.io.title.function":"변경할 기능","settings.io.digitalInput":"디지털 입력 {{msg}}","settings.io.digitalOutput":"디지털 출력 {{msg}}","settings.io.toolInput":"툴 입력 {{msg}}","settings.io.toolOutput":"툴 출력 {{msg}}","program.command":"{{mode}} 명령어","program.common":"공통","program.manipulate":"매니퓰레이트","program.amr":"AMR","program.rby1":"RBY1","program.modal.title.load":"프로그램 불러오기","program.modal.desc.load":"원하는 프로그램을 불러올 수 있습니다. 단, 저장하지 않은 변경사항은 사라집니다.","program.modal.button.export":"내보내기","program.modal.button.delete":"삭제","program.modal.button.order":"정렬","program.modal.button.lastLoadedAt":"마지막 로드","program.modal.button.createdAt":"생성일","program.modal.button.updatedAt":"업데이트","program.modal.button.ascending":"오름차순","program.modal.button.cancel":"취소","program.modal.button.load":"불러오기","program.modal.placeholder.search":"프로그램 이름 검색","program.modal.desc.repeatCount":"반복 횟수","program.modal.title.edit":"프로그램 수정","program.modal.desc.edit":"프로그램명을 수정하거나, 반복 실행 횟수를 변경할 수 있습니다.","program.modal.label.programName":"프로그램 이름","program.modal.label.directInput":"직접 입력","program.button.edit.disable":"비활성화","program.button.edit.marking":"마킹","program.button.move":"동작","program.button.movej":"동작 J","program.button.movel":"동작 L","program.button.movejb":"동작 JB","program.button.movelb":"동작 LB","program.button.movexb":"동작 XB","program.button.point":"포인트","program.button.pinPoint":"핀 포인트","program.button.pinJoint":"핀 조인트","program.button.home":"홈","program.button.wait":"대기","program.button.folder":"폴더","program.button.memo":"메모","program.button.alarmHalt":"알람/종료","program.button.debug":"디버그","program.button.userInput":"사용자 입력","program.button.changeProgram":"프로그램 변경","program.button.userSelect":"사용자 선택","program.button.extAxis":"부가축","program.button.condition":"조건문 (If)","program.button.elif":"조건문 (Else if)","program.button.else":"조건문 (Else)","program.button.switch":"스위치문","program.button.postProgram":"종료 후 실행","program.button.preProgram":"시작 전 실행","program.button.set":"설정","program.button.tcpSet":"TCP 설정","program.button.manual":"수동조작","program.button.movingPoint":"이동점+","program.button.repeat":"반복","program.button.break":"반복중단","program.button.thread":"쓰레드","program.button.circle":"원 동작","program.button.replay":"리플레이","program.button.arcSensing":"아크센싱","program.button.motionMacro":"모션 매크로","program.button.sync":"동기화","program.button.dout":"디지털 출력","program.button.aout":"아날로그 출력","program.button.toolout":"툴 출력","program.button.gripper":"그리퍼","program.button.arcWeld":"아크 용접","program.button.welder":"용접기","program.button.script":"스크립트","program.button.variables":"변수선언","program.button.monitoring":"모니터","progarm.button.rs485":"직렬통신","program.button.functionCall":"함수 호출","program.button.socket":"소켓통신","program.button.modbus":"모드버스","program.button.interface":"인터페이스","program.button.subTask":"서브루틴","program.button.pattern":"패턴","program.button.conveyor":"컨베이어","program.button.forceCtrl":"힘 제어","program.button.weaving":"위빙","program.button.touchSensing":"터치센싱","program.button.timer":"타이머","program.button.gcode":"G코드","program.toast.success.copy":"복사 되었습니다.","program.toast.success.cut":"잘라내기 되었습니다.","program.toast.fail.paste":"붙여넣기 불가","program.toast.fail.addTreeItem":"추가 불가","program.toast.fail.disable":"비활성화 해제 불가","program.button.end":"종료","program.button.begin":"시작","program.button.jump":"점프","setting.gravity.static":"정적","setting.gravity.dynamic":"동적","program.title.common":"공통","program.title.command":"명령어","program.title.alarm":"알람","program.field.option":"옵션","program.box.options":"옵션","program.box.option":"옵션","program.field.save":"저장","program.field.executiomn":"실행","program.field.condition":"조건","program.options.execute.always":"항상 실행","program.options.execute.use":"UI 사용 중에만 실행","program.options.option.alarm":"알람","program.options.option.halt":"종료","program.options.option.stop":"서브 프로그램 종료","program.options.option.folder":"폴더 종료","program.options.save.simple":"기본 알람","program.options.save.log":"사용자 로그에 제목 저장","program.options.pause.current":"현재 작업","program.field.title":"제목","program.field.content":"내용","program.box.alarm":"알람","program.box.settings":"설정","program.box.setting":"설정","program.box.content":"내용","program.desc.alarm":"프로그램 실행을 일시 중지한 다음, 알람창을 표시합니다.","program.desc.halt":"프로그램/쓰레드 실행을 중지합니다.","program.desc.sub":"서브 프로그램 실행을 중지합니다.","program.desc.folder":"명령을 실행 중인 폴더에서 빠져 나갑니다.","program.box.mode":"모드","program.box.condition":"상태","program.options.mode.condition":"{{mode}} 조건","program.options.mode.time":"시간","program.options.mode.holding":"기다림","program.options.mode.exit":"빠져나감","program.field.time_to_wait":"기다릴 시간 (초)","program.field.mode":"모드","program.options.mode.general":"일반","program.options.mode.digital":"디지털 입력","program.field.wait_timeout":"타임 아웃 (초)","program.box.condition_settings":"상태 설정","program.box.add_conditions":"상태 추가","program.title.if":"조건문 (If)","program.title.elif":"조건문 (Else If)","program.title.else":"조건문 (Else)","program.button.add_variable":"변수 추가","program.button.add_case":"케이스 추가","program.button.add_elif":"조건문 (Else If) 추가","program.button.add_else":"조건문 (Else) 추가","program.button.add":"추가","program.title.debug":"디버그","program.field.execution":"실행","program.field.pause":"정지","program.options.debug.dialog":"디버그 팝업","program.options.debug.log":"사용자 로그","program.options.execution.always":"항상 실행","program.options.execution.ui":"UI가 사용 중일 때만 실행","program.options.pause.all":"모든 작업","program.options.pause.crrent":"현재 작업","program.desc.debug.dialog":"프로그램 실행을 일시 중지하고 원하는 변수 값을 팝업 창에 표시합니다.\\n확인하려는 변수 이름을 추가하기만 하면 됩니다.","program.desc.debug.log":"사용자가 로그 시스템에 기록하고자 하는 임의의 문자열이나 문자열 변수를 입력할 수 있습니다.\\n사용자 로그를 너무 자주 저장하면 시스템에 영향을 줄 수 있습니다.","program.box.set_value_name":"변수 이름 설정","program.field.variables":"변수","program.field.name":"이름","program.desc.debug.variables":"디버깅하려는 변수가 있다면, 해당 변수의 이름을 입력해 주세요.","program.button.variable":"변수","program.box.log":"로그","program.title.case":"케이스","program.button.case":"케이스","program.button.case_default":"케이스 (Default)","program.field.switch":"스위치문","program.field.value":"값","program.box.configuration":"구성","program.field.case":"케이스","program.field.memo":"메모","program.options.break.break":"반복 중단","program.options.break.continue":"계속","program.desc.break.continue":"반복 (Repeat)에서 벗어나는 기능","program.desc.break.break":"루프의 다음 단계로 넘어갑니다.","program.options.repeat.count":"반복 횟수","program.options.repeat.while":"While 방식","program.options.repeat.do_while":"Do While 방식","program.options.repeat.direct":"직접 입력","program.options.repeat.infinite":"무한 반복","program.desc.repeat":"반복 횟수에 음수를 입력하면 무한 반복 됩니다.","program.field.repeat.count":"반복 횟수","program.field.repeat.while":"While 조건","program.field.repeat.do_while":"Do While 조건","program.box.jump":"점프 대상","program.box.folder":"폴더","program.box.additional":"추가","program.box.color":"색상","program.field.color":"색상","program.field.finish_at_condition":"Finish At 조건","program.tooltip.point.finish_at_condition":"지정한 조건이 충족되면 모션 명령이 완료되기 전에 동작을 종료합니다.","program.field.stopping_time":"정지 시간 (초)","program.tooltip.point.stopping_time":"Finish At 조건이 충족된 후 동작을 종료하기까지의 시간을 설정합니다. 0초를 입력하면 즉시 정지합니다.","program.box.memo":"메모","program.field.select_mode":"모드 선택","program.field.flag":"시점","program.field.timeout":"타임 아웃","program.box.set_flag":"시점 설정","program.options.select_mode.select":"선택","program.options.select_mode.direct":"직접 입력","program.desc.preProgram":"프로그램이 시작되기 전 실행할 함수를 입력하세요.","program.desc.postProgram":"프로그램이 종료(또는 중단)될 때 실행할 함수를 입력하세요.","program.desc.postProgram.manipulate":"로봇 동작과 관련된 함수 (동작, 컨베이어, 힘 제어 등)는 사용할 수 없습니다.","program.box.set_variables":"변수 설정","program.desc.variables":"변수를 선언하고 값을 지정합니다.\\n변수 값은 프로그램 실행 중에 언제든 변경할 수 있어, 조건문을 활용할 때 훨씬 유연한 제어가 가능해집니다.\\n변수는 다음 5가지 타입 중 하나로 지정할 수 있습니다.\\nString(문자열), Numeric(숫자), Boolean(불리언), List(리스트), Dictionary(딕셔너리)","program.field.declare_type":"변수 선언 속성","program.field.type":"유형","program.field.name_or_value":"대상 변수 이름 또는 값","program.field.init_value":"초기값","program.desc.variables.string":'문자열 값을 저장하는 데이터 타입입니다. 값을 저장할 때 문자열임을 나타내기 위해 ""(큰따옴표)로 감싸며, 큰따옴표가 포함된 상태로 저장되어도 무방합니다.',"program.desc.variables.numeric":"float(실수형) 타입과 마찬가지로, 숫자를 표현하는 데이터 타입입니다. (int는 정수를 나타냅니다.)","program.desc.variables.boolean":"true(참)나 false(거짓) 같은 논리 값을 나타내는 데이터 타입입니다.","program.desc.variables.list":"파이썬의 List 타입에 해당합니다. 협동로봇에서는 주로 각 조인트의 각도나 위치 값(Joint values)을 저장할 때 사용합니다.","program.desc.variables.dictionary":"파이썬의 Dictionary 타입에 해당합니다. 협동로봇에서는 주로 Tool의 정보 등을 저장할 때 사용합니다.","program.desc.variables.variable":'지역 변수는 get("name") 또는 get_var("name"), 다른 프로그램의 변수는 get("Robot Model", "name") 형태로 참조합니다. "abc" + get("a") 같은 연산식도 허용됩니다.',"program.field.desc.boolean":"Boolean 값을 선택하세요.","program.box.contents":"내용","program.options.script.general":"일반","program.options.script.advanced":"고급","program.button.add_script":"스크립트 추가","program.desc.script":"제어 박스로 스크립트를 전송하려면, 내용을 입력해 주세요.","program.options.interface.modbus":"Modbus 클라이언트 (인터럽트)","program.options.interface.mc":"미쯔비시 (MC 프로토콜)","program.options.interface.xgt":"LS PLC (XGT Protocol)","program.options.interface.socket":"소켓 인터페이스","program.options.interface.mechmind":"MechMind 3D","program.box.modbus":"Modbus 클라이언트","program.box.mc":"MC 프로토콜","program.box.xgt":"XGT 프로토콜","program.box.socket":"소켓 인터페이스","program.box.mechmind":"MechMind 3D 인터페이스","program.field.target_ip":"목표 서버 IP 주소","program.field.target_port":"목표 서버 포트 번호","program.field.function_list":"함수 목록 (코드)","program.field.timeout_sec":"타임 아웃 (초)","program.box.write_configuration":"쓰기 설정","program.field.target_address":"목표 주소","program.field.target_payload":"목표 페이로드","program.desc.modbus.write.add_payload":"Payload값을 추가해주세요.\\n부호없는 2 bytes 크기의 숫자만 입력가능합니다.(2¹⁶-1= 65,535)\\n최대 40개의 Payload를 추가할 수 있습니다.","program.desc.mc.write.word.add_payload":"Payload값을 추가해주세요.\\n2 bytes 크기의 숫자만 입력가능합니다.(-2¹⁵ ~ 2¹⁵-1 = -32,768 ~ 32,767)\\n최대 40개의 Payload를 추가할 수 있습니다.","program.desc.mc.write.bit.add_payload":"Payload값을 추가해주세요.\\nbit값만 입력이 가능합니다. (False(0),True(1))\\n최대 40개의 Payload를 추가할 수 있습니다.","program.desc.socket.byte.add_payload":"Payload값을 추가해주세요.\\n 부호없는 1 byte 크기의 숫자만 입력가능합니다.(2⁸-1 = 0 ~ 255)\\n최대 40개의 Payload를 추가할 수 있습니다.","program.button.add_payload":"페이로드 추가","program.field.target_name":"목표 변수 이름","program.field.target_length":"목표 변수 길이","program.options.thread.general":"일반/비정지 쓰레드 추가","program.options.thread.event":"이벤트 쓰레드 호출","program.field.thread_select":"쓰레드 타입 선택","program.ph.thread":"쓰레드 타입을 선택하세요.","program.button.select":"선택","program.field.thread_index":"쓰레드 번호","program.ph.thread.thread_index":"이벤트 쓰레드 선택하세요.","program.ph.thread.no_data":"등록된 이벤트 쓰레드가 없습니다.","program.options.thread.type.general":"일반 쓰레드","program.options.thread.type.event":"일반 이벤트 쓰레드","program.field.allow_pause":"일시중지 허용 여부","program.option.thread.allow":"허용","program.option.thread.ignore":"무시","program.desc.thread.general":"이 쓰레드는 메인 프로그램과 병행하여 자동으로 실행됩니다.\\n반복 동작이 필요한 경우 ‘반복’ 기능을 사용하십시오.\\n로봇 이동과 관련된 기능(예: 동작, 원형 이동 등)은 사용할 수 없습니다.\\n'일시 중지‘ 또는 '알람’ 기능을 사용할 경우, 이 쓰레드도 일시 중지됩니다.","program.desc.thread.event":"자동으로 시작되지 않으며, 이벤트가 호출될 때 실행됩니다.\\n반복 동작이 필요한 경우 ‘반복’ 기능을 사용하십시오.\\n로봇 이동 관련 기능 (예: 동작, 원형 이동 등)은 사용할 수 없습니다.\\n'일시 중지' 또는 ‘알람’ 기능을 사용할 경우, 쓰레드도 일시 중지됩니다.","program.desc.thread.basic":"일반 쓰레드: ‘일시 중지’ 또는 ‘충돌 감지’ 상황에서는 쓰레드 작동이 일시 중지됩니다.\\n논스톱 쓰레드: ‘충돌 감지’ 상황에서는 쓰레드 작동이 일시 중지됩니다.\\n논스톱 쓰레드2: 두 경우 모두 쓰레드가 멈추지 않습니다.","program.button.cancel":"취소","program.button.add_point":"포인트 추가","program.field.robot_model":"로봇 모델","program.ph.memo":"메모를 입력해주세요.","program.options.move.intended":"목표","program.options.move.constant":"상수","program.options.move.velocity":"속도 블렌딩","program.options.move.position":"위치 블렌딩","program.field.variable_name":"변수 이름","program.tooltip.point.variable_name":"목표 위치 값을 저장합니다.","program.field.point_name":"포인트 이름","program.tooltip.point.point_name":"포인트 커맨드의 이름을 지정합니다.","program.tooltip.point.memo":"참고용 추가 정보를 입력합니다.","program.field.input_method":"입력 방식","program.tooltip.point.input_method":"절대 위치를 입력하거나 기준 포인트를 기준으로 한 상대 위치를 입력할 수 있습니다.","program.box.target_":"목표 {{mode}}","program.options.mode.direct":"직접 입력","program.options.mode.relative":"상대 동작","program.field.reference_point":"기준 포인트","program.tooltip.point.reference_point":"이전 단계에서 선언해둔 '포인트 (Point)' 변수나 전역 변수를 선택할 수 있습니다.","program.button.current_position":"현재값 가져오기","program.button.preview":"미리보기","program.ph.point.reference_point":"기준 포인트를 선택하세요.","program.options.coordinate.joint_space":"조인트 공간","program.options.coordinate.global_space":"전역 좌표계","program.options.coordinate.tool_space":"툴 좌표계","program.options.coordinate.user_space":"사용자 좌표계","program.options.coordinate.target_space":"목표 좌표계","program.field.reference_coordinate":"기준 좌표계","program.field.move_unit":"이동 단위","program.box.speed":"속도","program.field.setting_method":"설정 방법","program.field.velocity":"속도","program.field.acceleration":"가속도","program.options.setting_method.per_spd":"%기반","program.options.setting_method.abs_spd":"절대/물리값","program.options.tcp_tool.current":"기존 선택 유지","program.field.additional_properties":"추가 속성","program.field.additional":"추가 설정","program.field.after_script":"후처리 스크립트","program.tooltip.point.after_script":"포인트 동작이 완료된 후 실행할 명령을 입력합니다.","program.field.properties":"속성","program.empty.desc.property":"설정된 속성이 없습니다.","program.button.addProperty":"속성 추가","program.box.continuous":"연속 변화","program.box.discrete":"단계별 변화","program.option.dout":"디지털 출력","program.option.aout":"아날로그 출력","program.option.weldingCurrent":"용접 전류","program.option.weldingVoltage":"용접 전압","program.option.weldingFeedRate":"용접 이송 속도","program.option.weavingMagnitude":"위빙 진폭","program.option.weavingSpeed":"위빙 속도","program.label.doutput":"디지털 출력","program.label.aoutput":"아날로그 출력","program.box.type":"타입","program.box.rotation_center":"회전 중심","program.options.cirle.type.axis":"축","program.options.cirle.type.3point":"3점","program.box.rotation_angle":"회전 각도","program.box.via_point":"경유 포인트","program.box.radius":"반지름","program.field.radius_option":"반지름 옵션","program.options.radius.none":"사용 안함","program.options.radius.rate_per":"회전당 증가율","program.options.radius.size_per":"회전당 증가량","program.field.radius_param":"반지름 값","program.field.posture":"목표 자세","program.field.project":"프로젝트","program.field.movement_type":"동작 타입","program.options.project.main":"최상위 (메인) 프로젝트","program.options.project.sub":"현재 실행 중인 (하위) 프로젝트","program.options.zeroPosture":"원점 자세","program.options.posture.home":"프로젝트 홈 자세","program.options.posture.zero":"조인트 원점 자세","program.field.tool_list":"툴 목록","program.field.output_location":"출력 위치","program.box.output_mode":"출력 모드","program.options.d.output_mode.general":"일반","program.box.digital_out":"디지털 출력","program.options.d.output_mode.bit_combination":"비트 조합","program.options.d.output_mode.signal_toggle":"신호 토글","program.options.d.output_mode.whole_port_control":"전체 포트 제어","program.options.d.output_mode.unit_pulse_shot":"단위 펄스 샷","program.options.d.output_location.side":"제어 박스","program.options.d.output_location.ext":"확장 보드","program.options.a.output_location.side":"제어 박스","program.options.a.output_location.ext":"확장 보드","program.box._control_box":"{{mode}} 전류 신호","program.box.extension":"확장","program.box.target_signal_conf":"목표 신호 설정","program.field.bit_comb_range":"비트 조합 범위","program.field.start_port":"시작 포트","program.field.end_port":"종료 포트","program.field.target_val":"목표값","program.options.direction.normal":"정방향","program.options.direction.inverse":"역방향","program.options.power.off":"끄기","program.options.power.on":"켜기","program.field.pulse_mode":"펄스 모드","program.field.port_selection":"포트 선택","program.options.pulse_mode.general":"일반 펄스","program.options.pulse_mode.inversion":"반전 펄스","program.options.pulse_mode.non_block":"계속 진행","program.field.analog_out":"아날로그 출력","program.options.a.output_mode.general":"일반 아날로그","program.box.toolout":"툴 출력","program.box.signal_conf":"툴 전류 신호","program.field._dout":"{{mode}} 디지털 출력","program.field.current":"현재","program.field.target":"목표","program.field._voltage":"{{mode}} 전류","program.box.axis_options":"축 옵션","program.field.torch_direction_axis":"토치 방향 축","program.field.weaving_direction_axis":"위빙 방향 축","program.box.weaving_plane_selection":"위빙 평면 선택","program.box.user_defined_parameters":"사용자 방향","program.box.magnitude":"진폭","program.box.phase":"위상","program.box.phase2":"구간","program.box.time_schedule":"시간 일정","program.box.scale":"크기","program.field.scale_rate":"크기 비율","program.box.offset_options":"오프셋 옵션","program.field.offset_torch_direction":"토치 방향 오프셋","program.field.offset_weaving_direction":"위빙 방향 오프셋","program.box.angle_options":"각도 옵션","program.field.swing_angle":"스윙 각도","program.field.distortion_angle":"왜곡 각도","program.field.stop_adjusting_time":"정지 보정 시간","program.options.mode.speed":"속도","program.options.conveyor.conveyor":"컨베이어","program.options.conveyor.linear":"선형 컨베이어","program.options.conveyor.circular":"원형 컨베이어","program.box.speed_options":"속도 옵션","program.field.conveyor_speed":"컨베이어 속도","program.field.speed_adjusting_time":"속도 보정 시간","program.box.set_ref_points":"기준점 설정","program.field.ref_points":"기준점","program.field.present_points":"현재점","program.desc.conveyor":"기준점을 선택하세요.","program.button.add_ref_point":"기준점 추가","program.box.conveyor_type":"컨베이어 유형","program.box.motion_list":"모션 목록","program.box.move_type":"동작 유형","program.ph.motion_list":"파일을 선택해주세요.","program.ph.no_data":"데이터가 없습니다.","program.ph.select_data":"데이터를 선택하세요.","program.section.title.modeSelection":"모드 선택","program.options.welding.on":"아크 켜기","program.options.welding.off":"아크 끄기","program.options.changeTarget":"목표 설정값 변경","program.options.changeGain":"게인 설정값 변경","program.section.title.sensingSetting":"센싱 설정","program.field.label.sensingDataPoint":"센싱 입력 채널","program.field.label.sensingSaturationMode":"센싱 포화 모드","program.field.label.sensingSaturationLow":"센싱 포화 하한값","program.field.label.sensingSaturationUpper":"센싱 포화 상한값","program.field.label.sensingLowPassFilter":"센싱 데이터 LPF 필터","program.field.label.sensingWeightingMode":"센싱 가중 모드","program.options.noSaturation":"포화 미적용","program.options.saturationLU":"상·하한값 포화","program.options.saturationHold":"포화 시 값 유지","program.options.curveWeight":"곡선 가중","program.options.evenWeight":"균등 가중","program.options.linearWeight":"선형 가중","program.options.reducedLinearWeight":"감소 선형 가중","program.section.title.targetSetting":"목표 설정","program.field.label.depthDirTargetMethod":"깊이 방향 목표값 설정 방식","program.field.label.depthDirDesiredValue":"깊이 방향 목표값","program.field.label.weaveDirTargetMethod":"위빙 방향 목표값 설정 방식","program.field.label.weaveDirDesiredValue":"위빙 방향 목표값","program.options.desiredValue":"목표값 사용","program.options.averageT1T2":"T1~T2 평균값 사용","program.section.title.gainSetting":"게인 설정","program.field.label.depthDirGain":"깊이 방향 {{msg}} 게인","program.field.label.depthDirAntiWind":"깊이 방향 안티 윈드업","program.field.label.depthDirMaxDev":"깊이 방향 최대 편차","program.field.label.weaveDirGain":"위빙 방향 {{msg}} 게인","program.field.label.weaveDirAntiWind":"위빙 방향 안티 윈드업","program.field.label.weaveDirMaxDev":"위빙 방향 최대 편차","program.options.changeForce":"힘 설정값 변경","program.section.title.limitation":"제한 설정","program.field.label.posMaxDeviation":"위치 최대 편차","program.field.label.rotMaxDeviation":"회전 최대 편차","program.section.title.sensorSetting":"센서 설정","program.field.label.sensorType":"센서 타입","program.field.label.sensorFilter":"센서 필터","program.field.label.sensorSignalOption":"센서 신호 옵션","program.section.title.others":"기타","program.field.label.contactForce":"접촉 감지 힘","program.options.autoNulling":"자동 영점 조정","program.options.rawValue":"원시값","program.box.init_standby":"초기 대기","program.box.crater_setting":"크레이터 조건 설정","program.box.crater_time":"크레이터 유지 시간","program.box.wait_follow":"후속 작업 대기","program.box.arc_detection":"아크 점화 및 신호 감지","program.box.welding_setting":"용접 조건 설정","program.box.robot_cond_setting":"로봇 조건 설정","program.box.time_before_arc":"아크 발생 전 시간","program.field.condition_mode":"조건 설정 방법","program.field.condition_options":"조건 옵션","program.field.job_number":"작업 번호","program.field.welding_current":"용접 전류","program.field.welding_voltage":"용접 전압","program.field.feed_rate":"이송 속도","program.field.arc_control":"아크 제어","program.field.arc_length":"아크 길이","program.field.parameter":"파라미터 {{idx}}","program.options.condition.weld_keep":"이전 조건 유지","program.options.condition.weld_change":"용접 조건 변경","program.box.time":"시간","program.box.time_holding":"유지 시간","program.box.time_pre_gas":"사전 가스 공급 시간","program.box.arc_signal_detection_count":"아크 신호 감지 횟수","program.box.arc_signal_detection_time":"아크 신호 감지 시간","program.box.arc_signal_retry_interval_time":"아크 신호 재시도 간격 시간","program.box.ot_option":"회전 옵션","program.box.gap_number":"간격 개수","program.box.set_margin":"마진 설정","program.field.margin_height":"마진 높이","program.field.margin_width":"마진 폭","program.field.margin_over":"마진 연장 거리","program.field.margin_parameter":"마진 파라미터","program.box.corner_points":"코너 포인트","program.options.macro.flat_surface":"평면","program.options.macro.round_r":"원형 (R)","program.options.macro.round_h":"원형 (H)","program.options.macro.triangle":"삼각형","program.options.macro.3d_round":"3D 원형","program.options.weaving_type.none":"없음","program.section.title.taskReference":"작업 기준","program.field.title.planeSelection":"평면 선택","program.options.plane.present":"현재 TCP 좌표계","program.options.plane.follow_base_trajectory":"베이스 궤적 따르기","program.section.title.patternParams":"패턴 설정","program.title.timeSchedule":"시간 스케줄","program.section.title.motionTransform":"모션 변환","program.field.title.scaleXRate":"X축 배율","program.ph.no_motion_list":"모션 정보가 없습니다.","program.field.robot_speed":"로봇 속도","program.field.robot_acceleration":"로봇 가속도","program.ph.selected_tool":"툴을 선택하세요.","program.ph.no_tool_available":"저장된 툴이 없습니다.","program.options.default":"기본값","program.options.syncSpeedBar":"속도 조절 바와 동기화","program.options.stopPause":"일시정지 상태일 때 정지","program.section.title.timerSettings":"타이머 설정","program.field.title.timerNumber":"타이머 번호","program.options.timer":"타이머 {{idx}}","program.section.title.resetTime":"초기화 시간","program.field.title.timingOption":"타이밍 옵션","program.field.title.actionOption":"동작 옵션","program.box.rotation_axis":"회전 축","program.box.goal_point":"도착 포인트","program.ph.command_search":"원하는 명령어를 검색하세요.","program.button.set_begin":"시작 설정","program.label.home_move":"재생 시 홈 이동","program.box.position":"위치","program.option.begin.use_default":"사용 (기본값)","program.option.begin.use_speed":"사용 (x0.3 Speed)","program.option.begin.not_use":"사용 안함","program.desc.begin_move":"UI에서 재생시 홈 위치로 이동 기능의 활성화 여부를 결정합니다.","program.box.out_collision_detection":"외부 충돌 감지","program.box.self_collision_detection":"자가 충돌 감지","program.box.user_frame_selection":"사용자 좌표계 선택","program.box.fixed_speed":"고정 속도","program.box.target_shift_set_via_manual":"목표 시프트: 수동 설정","program.box.speed_bar":"속도 조절 바","program.box.time_constraint":"시간 제약","program.box.ascii_function_call":"ASCII 함수 호출","program.box.joint_impedance_control":"조인트 임피던스 제어","program.box.free_drive_mode":"직접 교시 모드","program.box.master_mode_selection":"마스터 모드 선택","program.box.user_frame_set_via_xyz":"사용자 좌표계: XYZ를 통한 설정","program.box.user_frame_set_via_tcp":"사용자 좌표계: TCP를 통한 설정","program.box.user_frame_set_via_3_points":"사용자 좌표계: 3개 지점을 통한 설정","program.box.target_shift_set_via_landmark":"목표 시프트: 랜드마크를 통한 설정","program.box.program_flow_change":"프로그램 흐름 변경","program.box.digital_input_function_mask":"디지털 입력 함수 마스크","program.box.digital_output_function_mask":"디지털 출력 함수 마스크","program.box.jacobian_based_speed_ctrl":"Jacobian 기반 속도 제어","program.box.vibration_torque_based":"진동 (토크 기반)","program.box.vibration_motion_based":"진동 (모션 기반)","program.box.ext_axis_sync":"부가 축 동기화","program.box.tcp_speed_bound":"TCP 속도 제한","program.box.move_break_block":"동작 정지/차단","program.box.joint_ref_filter":"관절 지령 필터","program.box.self_coll_detect_blind":"자가 충돌 감지 해제","program.box.joint_origin_calibration":"관절 원점 캘리브레이션","program.box.wrist_singularity_mode":"손목 특이점 모드","program.box.operation_range_check":"작동 범위 확인","program.box.ft_sensor_software_nulling":"FT 센서 소프트웨어 영점 조정","program.field.state":"상태","program.field.stop_mode":"정지 모드","program.options.stop_mode.pause_movement":"동작 일시 정지","program.options.stop_mode.evasion_stop":"회피 정지","program.field.threshold":"임계값","program.field.internal_distance":"내부 거리","program.field.external_distance":"외부 거리","program.field._option":"{{mode}} 유형","program.options.fixed_mode.percent":"고정 모드: %","program.options.fixed_mode.physical":"고정 모드: 물리","program.options.time_constraint.unit_move":"단위 동작 시간 구속","program.options.time_constraint.multi_move":"다중 동작 시간 구속","program.options.ascii.direct":"직접 실행","program.options.ascii.que_message":"메시지 Que","program.field.message":"메시지","program.options.joint_impedance.impedance":"조인트 임피던스 활성화","program.field.stiffness":"강성","program.field.torque_limit":"토크 제한","program.options.free_drive.free_drive":"직접 교시 활성화","program.options.free_drive.when_button_clicked":"버튼 클릭 시 활성화","program.field.sensitivity":"직접 교시 감도","program.field.extra_force_frame":"추가 힘 프레임","program.field.extra_force":"추가 힘","program.options.user_frame.restore_saved":"저장된 값 복원","program.options.user_frame.apply_target_temporary":"목표값 적용 (임시)","program.options.user_frame.save_target_permanently":"목표 영구 저장","program.options.master_mode.reflected":"반영된 조인트 각도","program.options.master_mode.synchronized":"동기화된 직교 좌표","program.field.user_frame":"사용자 좌표계","program.field.setting_option":"설정 옵션","program.field.target_frame":"목표 좌표계","program.options.frame.global":"전역 좌표계","program.options.frame.local":"로컬 좌표계","program.options.frame.user":"사용자 좌표계","program.options.frame.local_tcp":"로컬 TCP 좌표계","program.field.point_ordering":"포인트 순서","program.options.point_order.origin_x_axis_xy_plane":"원점 → X축 → XY 평면","program.options.point_order.origin_y_axis_yz_plane":"원점 → Y축 → YZ 평면","program.options.point_order.origin_z_axis_zx_plane":"원점 → Z축 → ZX 평면","program.field.shift_number":"시프트 번호","program.field.shift_mode":"시프트 모드","program.field.shift":"시프트","program.options.shift_mode.adjust_l_move":"L-이동 조정","program.options.shift_mode.adjust_l_j_move":"L, J-이동 조정","program.options.shift_mode.adjust_j_move":"J-이동 조정","program.field.tolerance":"허용 오차","program.options.stop":"중지","program.options.pause":"일시 정지","program.options.resume":"재개","program.options.reset_collision":"충돌 초기화","program.field.target_component":"목표 컴포넌트","program.options.flow_target.all_robots":"모든 로봇 컴포넌트","program.options.flow_target.this_component":"현재 컴포넌트","program.field.target_device":"목표 장치","program.options.device.control_box":"제어 박스 I/O","program.options.device.extension_io":"확장 I/O","program.options.device.tool_flange_io":"툴 플랜지 I/O","program.options.port.whole":"전체 포트","program.options.port.port":"포트","program.options.mask.off":"비활성화 마스크 끄기","program.options.mask.on":"비활성화 마스크 켜기","program.options.deactive":"비활성","program.field.time":"시간","program.field.bound_mode":"제한 모드","program.field.tcp_speed":"TCP 속도","program.options.bound_off":"제한 끄기 (시스템 기본)","program.options.bound_on":"제한 켜기","program.field.breakblock_mode":"정지/차단 모드","program.options.break.off":"해제","program.options.break.block":"지속 차단","program.options.break.once":"일회성 정지","program.field.filter_mode":"필터 모드","program.field.filter":"필터","program.options.jrf.off":"끄기 (시스템 기본)","program.options.jrf.custom_filter":"사용자 지정 필터 조정","program.field.detect_blind_time":"감지 해제 시간 (초)","program.button.empty":"빈 영역","program.rby1.move.no_part":"위 버튼으로 움직일 파트를 추가하세요.","program.rby1.tooltip.hand_ref":"Base와 T5는 Cartesian 이동에서만 선택할 수 있습니다. 조인트 이동은 항상 Base이며, Torso도 항상 Base 기준입니다.","amr.button.goal":"도착점","amr.button.target":"타겟","amr.button.linear":"선형","amr.button.rotate":"회전","amr.button.map_load":"맵 로드","amr.button.loc_init":"위치 초기화","amr.button.loc_control":"위치 제어","amr.button.hw_control":"하드웨어 제어","amr.button.dock":"도킹","amr.button.obs_box":"장애물 감지 영역","amr.button.set_safety":"안전 설정","amr.button.stream":"스트림","program.button.load":"불러오기","program.button.save":"저장","program.button.new":"새 프로그램","program.button.search_variables":"변수 찾기","program.button.close":"닫기","program.button.call_event_thread":"이벤트 쓰레드 호출","program.button.general_thread":"일반 쓰레드","program.box.read_configuration":"읽기 설정","program.box.connect_configuration":"연결 설정","program.field.return_variable_name":"반환 변수명","program.field.target_read_length":"읽기 길이","program.field.goal_id":"목표 ID","program.field.preset":"사전 설정","program.field.method":"방법","program.field.zAngle":"Z 각도","program.field.target_position":"목표 위치","program.field.speed":"속도","program.field.map_name":"맵 이름","program.options.init_mod.init":"초기화","program.options.init_mod.auto":"자동 초기화","program.options.init_mod.semi":"반자동 초기화","program.options.init_mod.random":"무작위 초기화","amr.button.localization_init":"위치 추정 초기화","program.field.init_mode":"초기화 모드","amr.button.localization_control":"위치 추정 제어","program.field.control":"제어","program.options.control.start":"시작","program.options.control.stop":"정지","program.box.hardware_control":"하드웨어 제어","program.options.control.motor":"모터","program.options.control.led":"LED","program.field.dock_mode":"도킹 모드","program.options.dock.dock":"도킹","program.options.dock.undock":"도킹 해제","program.field.min_position":"최소 위치","program.field.max_position":"최대 위치","program.field.map_range":"맵 범위","program.options.safety.field":"안전 영역","program.options.safety.flag":"안전 플래그","program.options.safety.io":"안전 I/O","program.box.set_reset_flag":"리셋 플래그 설정","program.box.safety_mcu":"안전 MCU","program.box.safety_field":"안전 영역","program.field.reset_flag":"리셋 플래그","program.desc.safety":"설정하려는 초기화 플래그가 있는 경우, 키와 설정 값을 입력해 주세요.","program.button.add_flag":"플래그 추가","program.field.key":"키","program.field.mcu_din":"MCU {{mode}} 디지털 입력","program.box.pose":"자세","program.box.move.axis":"이동 축","program.option.sync_ignore":"단독 실행 시 무시","program.field.pattern_id":"패턴 ID","program.field.pattern_type":"패턴 유형","program.options.pattern_line":"선 (X)","program.options.pattern_plane":"평면 (X-Y)","program.options.pattern_cube":"육각형 (X-Y-Z)","program.options.pattern_random":"직접 설정","program.field.pattern_count":"포인트 갯수 설정","program.field.pattern_point_num":"{{axis}}축 포인트 갯수","program.field.anchor_point":"앵커 포인트","program.field.incremental":"증가 값","program.desc.pattern":"코너 포인트를 설정합니다.","program.button.add_corner_point":"코너 포인트 추가","settings.general.menu.joint":"로봇 조인트","settings.general.title.jointKineLimit":"조인트 Kinematic 제한","settings.general.desc.jointKineLimit":"하드웨어 손상 및 충돌을 방지하기 위해 각 조인트의 물리적 범위(Pos)와 최대 속도(Speed)를 정의합니다.","program.field.mc_protocol":"프로토콜 타입","program.field.variable_value":"변수값","program.field.device_type":"장비 타입","program.field.cpu_type":"머신 타입","program.field.desc.bit":"bit 값을 선택하세요.","program.field.address_type":"주소 종류","settings.general.title.deflection_compensation":"처짐 보상","settings.general.desc.deflection":"툴플랜지 측에 기구물을 달아 사용할 경우 위치 값이 아래로 처지면, 해당 처짐을 보상하는 기능입니다.","setting.options.adjust_deflection":"처짐 조정","settings.outColl.options.option.pause":"일시 정지","settings.outColl.options.option.evasion":"회피 정지","settings.selfColl.options.option.stop":"자가 충돌 직전 멈춤","settings.selfColl.options.option.speed":"자가 충돌시 속도 제어","settings.title.selected":"선택된","settings.general.userScript.card.title":"스크립트 포트","settings.general.userScript.desc":"포트별로 사용자 정의 스크립트를 설정합니다.","settings.general.userScript.textfield.title":"유저 스크립트","settings.general.afterAction.title.action":"동작","settings.general.afterAction.desc":"선택된 작업을 완료한 후에 수행할 동작을 설정합니다.","settings.options.option.boxNone":"사용 안함","settings.options.option.sphere":"구","settings.options.option.cylinder":"원통","settings.options.option.box":"박스","settings.tool.title.width":"너비","settings.io.title.port":"포트","settings.io.title.changeDirection":"반대 방향으로 변경","settings.io.title.normalDirection":"정방향","settings.io.title.reverseDirection":"역방향","settings.io.title.filter":"필터","settings.io.dinFilter.desc":"입력 신호의 지연을 설정합니다.","settings.io.title.count":"지연 횟수","settings.devices.menu.welding":"용접","settings.devices.welding.desc":"용접 관련 옵션(장치 정보, 입력/출력 신호 매핑, 하드웨어, 변환 맵 등)을 설정합니다.","settings.devices.welding.device.title":"용접 장치 옵션 설정","settings.devices.welding.device.textfield":"장치 {{msg}}","settings.devices.welding.output.title":"용접 출력 옵션 설정","settings.devices.welding.output.arcOn":"아크 발생 신호","settings.devices.welding.output.touchOn":"접촉 신호","settings.devices.welding.output.gasOn":"가스 발생 신호","settings.devices.welding.output.wireInch":"와이어 인칭 신호","settings.devices.welding.output.wireReinch":"와이어 재인칭 신호","settings.devices.welding.output.currentPort":"전류 설정 포트","settings.devices.welding.output.voltagePort":"전압 설정 포트","settings.devices.welding.input.title":"용접 입력 옵션 설정","settings.devices.welding.input.welderReady":"용접기 준비 신호","settings.devices.welding.input.arcGenFeedback":"아크 발생 피드백","settings.devices.welding.input.touchFeedback":"접촉 신호 피드백","settings.devices.welding.input.gasFeedback":"가스 신호 피드백","settings.devices.welding.input.feederFeedback":"송급기 신호 피드백","settings.devices.welding.input.welderErrSignal":"용접기 에러 신호","settings.devices.welding.input.currentFeedback":"전류 피드백","settings.devices.welding.input.voltageFeedback":"전압 피드백","settings.devices.welding.hardware.title":"용접 하드웨어 옵션 설정","settings.devices.welding.hardware.processType":"프로세스 타입","settings.devices.welding.hardware.wireType":"와이어 타입","settings.devices.welding.hardware.wireSize":"와이어 크기","settings.devices.welding.hardware.gasType":"가스 타입","settings.devices.welding.convMap.title":"용접 변환 맵 설정","settings.devices.welding.convMap.weldingCurrent":"용접 전류","settings.devices.welding.convMap.addCurrentMap":"전류 맵 추가","settings.devices.welding.convMap.weldingVoltage":"용접 전압","settings.devices.welding.convMap.addVoltageMap":"전압 맵 추가","settings.devices.welding.convMap.title.current":"전류","settings.devices.welding.convMap.title.output":"출력","settings.devices.welding.convMap.desc.limit":"최대 {{max}}개 까지만 등록 가능합니다.","settings.devices.welding.convMap.title.voltage":"전압","settings.devices.menu.externalFT":"외부 F/T","settings.devices.externalFT.desc":"외부 F/T 센서 설정입니다. 센서의 장착 방향 오프셋과 신호 필터 값을 조정할 수 있습니다.","settings.devices.externalFT.deviceType":"디바이스 타입","settings.devices.externalFT.mountingOption":"장착 옵션","settings.devices.externalFT.options.noSensor":"센서 없음","settings.devices.externalFT.options.defaultMount":"기본 장착","settings.devices.externalFT.options.customMount":"커스텀 장착","settings.devices.externalFT.wrtFlange":"플랜지 기준 커스텀 장착","settings.devices.externalFT.signalFilter":"신호 필터","settings.devices.menu.communication":"통신","settings.devices.communication.desc":"외부 시스템 및 장비와의 통신 프로토콜별 활성화 여부(ON/OFF)와 연결 포트(Port)를 설정합니다.","settings.menu.title.amrRobot":"로봇","settings.menu.title.amrMotor":"모터","settings.menu.title.amrSensor":"센서","settings.menu.title.drive":"주행","settings.menu.title.obsDetect":"장애물 감지","settings.menu.title.docking":"도킹","settings.menu.title.localization":"위치 추정","settings.menu.title.mapping":"지도 생성","settings.menu.title.logging":"로그 기록","settings.amr.general.amrRobot.title":"로봇 설정","settings.amr.general.amrRobot.desc":"오프셋을 입력하여 기본 로봇 크기에 적용합니다.","settings.amr.general.title.robotSize":"로봇 {{axis}} 크기 추가","settings.amr.general.title.batAlarm":"배터리 알람","settings.amr.general.title.alarm":"알람","settings.amr.general.title.batLowThreshold":"배터리 저전압 임계값","settings.amr.general.title.batCritLowThreshold":"배터리 초저전압 임계값","settings.amr.general.title.speaker":"스피커","settings.amr.general.motor.title.speedLimit":"속도 제한","settings.amr.general.motor.desc.speedLimit":"모터의 선형 및 각속도 제한을 설정합니다.","settings.amr.general.motor.title.accLimit":"가속도 제한","settings.amr.general.motor.desc.accLimit":"모터의 선형 및 각가속도 제한을 설정합니다.","settings.amr.general.motor.title.motorSpdLimit":"모터 속도 제한","settings.amr.general.motor.desc.motorSpdLimit":"모터 손상과 시스템 불안정을 방지하기 위해 선형 및 각속도에 대한 절대 안전 한계를 설정합니다.","settings.amr.general.motor.title.linearLimit":"선속도 제한","settings.amr.general.motor.title.angularLimit":"각속도 제한","settings.amr.general.motor.title.angularLimit2":"각가속도 제한","settings.amr.general.sensor.title.qrConfig":"센서 QR 설정","settings.amr.general.sensor.desc.qrConfig":"QR 센서의 활성화 여부를 설정합니다.","settings.amr.general.sensor.title.cameraConfig":"센서 카메라 설정","settings.amr.general.sensor.desc.cameraConfig":"카메라 전원 및 심도, 필터, RGB 등 세부 데이터 수집 여부를 설정합니다.","settings.amr.general.sensor.title.imuConfig":"센서 IMU 설정","settings.amr.general.sensor.desc.imuConfig":"IMU 센서의 활성화 여부 및 데이터 측정 차원(2D/3D)을 설정합니다.","settings.amr.general.sensor.title.bottomQR":"바닥 QR","settings.amr.general.sensor.title.camera":"카메라","settings.amr.general.sensor.title.cameraDepth":"카메라 심도","settings.amr.general.sensor.title.cameraFilter":"카메라 필터","settings.amr.general.sensor.title.cameraRGB":"카메라 RGB","settings.amr.drive.general.title.goalCheck":"목적지 확인","settings.amr.drive.general.desc.goalCheck":"목적지 도착 판단을 위한 거리 및 회전 각도의 허용 오차 범위를 설정합니다.","settings.amr.drive.general.label.distThreshold":"거리 허용 오차","settings.amr.drive.general.label.orientThreshold":"각도 허용 오차","settings.amr.drive.general.title.goalAlign":"목적지 정렬","settings.amr.drive.general.desc.goalAlign":"목적지 도착 직전, 정밀한 위치 및 방향 맞춤을 위한 제어 파라미터를 설정합니다.","settings.amr.drive.general.label.approachGain":"접근 게인","settings.amr.drive.general.label.extendCtrlTime":"추가 제어 시간","settings.amr.drive.general.label.linearMinSpeed":"최소 선속도","settings.amr.drive.general.label.angularMinSpeed":"최소 각속도","settings.amr.obsDetect.title.obsMap":"장애물 지도","settings.amr.obsDetect.desc.obsMap":"로봇의 장애물 지도 생성 및 주변 환경 감지 범위를 설정합니다.","settings.amr.obsDetect.label.gridSize":"격자 크기","settings.amr.obsDetect.label.detectRange":"장애물 감지 범위 (로봇 기준)","settings.amr.obsDetect.label.zLowerHeight":"감지 높이 하한","settings.amr.obsDetect.label.zUpperHeight":"감지 높이 상한","settings.amr.obsDetect.title.pathMargin":"경로 생성 마진","settings.amr.obsDetect.desc.pathMargin":"경로 생성 시 장애물로부터 유지해야 할 최소 여유 공간(마진)을 설정합니다.","settings.amr.obsDetect.label.pathMargin":"경로 {{axis}} 마진","settings.amr.obsDetect.title.safetyMargin":"안전 마진","settings.amr.obsDetect.desc.safetyMargin":"실시간 안전 제어 및 돌발 상황 대비를 위한 안전 계수 설정","settings.amr.obsDetect.label.deazone":"데드존 범위 (로봇 기준)","settings.amr.obsDetect.label.predictTime":"충돌 예측 시간","settings.amr.obsDetect.label.detectMinSpd":"감지 동작 최소 속도","settings.amr.obsDetect.label.safetyMargin":"{{axis}}축 안전 마진","settings.amr.docking.title.general":"도킹 일반 설정","settings.amr.docking.desc.general":"로봇이 도킹 스테이션을 인식하고 접근하는 방식에 대한 기본 옵션을 설정합니다.","settings.amr.docking.label.lidarType":"라이다 종류","settings.amr.docking.label.chargeType":"충전 방식","settings.amr.docking.label.reverseFlag":"역방향 주행 설정","settings.amr.docking.label.forward":"전진","settings.amr.docking.label.backward":"후진","settings.amr.docking.label.autoMove":"이동 시 자동 도킹 해제","settings.amr.docking.title.offsetGain":"도킹 오프셋 및 게인 설정","settings.amr.docking.desc.offsetGain":"도킹 제어 알고리즘(PD 제어)에 사용되는 물리적 거리 보정값 및 게인(Gain) 값을 설정합니다.","settings.amr.docking.label.xOffset":"X축 오프셋","settings.amr.docking.label.chargeWaitTime":"충전 대기 시간","settings.amr.docking.label.distanceKD":"거리 제어 미분(D) 게인","settings.amr.docking.lable.distanceKP":"거리 제어 비례(P) 게인","settings.amr.docking.label.orientationKD":"방향 제어 미분(D) 게인","settings.amr.docking.label.orientationKP":"방향 제어 비례(P) 게인","settings.amr.docking.title.threshold":"도킹 임계값","settings.amr.docking.desc.threshold":"도킹 스테이션 여부를 판단할 때 각 항목별로 적용할 신뢰도 가중치를 설정합니다.","settings.amr.docking.label.constScoreWeight":"일관성 점수 가중치","settings.amr.docking.label.distScoreWeight":"거리 점수 가중치","settings.amr.docking.label.historyScoreWeight":"기존 도킹 이력 점수 가중치","settings.amr.docking.label.ICPScoreWeight":"ICP 매칭 점수 가중치","settings.amr.docking.label.targetScoreWeight":"타겟 길이/크기 점수 가중치","settings.amr.docking.label.segmentScoreWeight":"세그먼트 비율 점수 가중치","settings.amr.docking.label.shapeScoreWeight":"형상/각도 일치 점수 가중치","settings.amr.loc.title.localization":"{{param}} 위치 추정 설정","settings.amr.loc.desc.localization":"로봇의 위치 추정 방식 및 포즈 계산을 위한 필터 옵션을 설정합니다.","settings.amr.loc.label.localizationMode":"위치 추정 모드","settings.amr.loc.label.EKF":"확장 칼만 필터","settings.amr.loc.desc.2dLocalization":"2D 위치 추정을 위한 ICP 스캔 매칭 및 오도메트리 융합 파라미터를 설정합니다.","settings.amr.loc.label.costThreshold":"비용 임계값","settings.amr.loc.label.errorThreshold":"오차 임계값","settings.amr.loc.label.odometry":"오도메트리 융합 비율","settings.amr.loc.label.inlierError":"인라이어(유효 데이터) 오차 체크","settings.amr.loc.label.inlierRatio":"인라이어(유효 데이터) 비율 체크","settings.amr.loc.label.checkDistance":"거리 체크 범위","settings.amr.loc.label.maxFeature":"최대 특징점 개수","settings.amr.loc.title.surfel":"서펠 설정","settings.amr.loc.label.surfel":"서펠","settings.amr.loc.label.surfelRange":"서펠 적용 범위","settings.amr.loc.desc.3dLocalization":"실시간 3D 라이다 점군 데이터를 전역 지도와 대조하여 로봇의 고정밀 3D 포즈(위치 및 자세)를 추정하기 위한 파라미터를 설정합니다.","settings.amr.loc.label.surfelBalance":"서펠 분포 균형 (축별 분포)","settings.amr.loc.label.surfelNN":"서펠 NN 수","settings.amr.mapping.desc.icp":"스캔 매칭의 정밀도 및 데이터 처리 방식에 관한 파라미터를 설정합니다.","settings.amr.mapping.label.viewThreshold":"시야각 임계값","settings.amr.mapping.label.eraseGap":"삭제 간격","settings.amr.mapping.label.accumulation":"데이터 누적 개수","settings.amr.mapping.title.keyFrame":"키 프레임 설정","settings.amr.mapping.desc.keyFrame":"지도 생성 시 키 프레임 생성 조건, 루프 클로저(경로 재방문 인식) 및 공간 데이터 효율성을 설정합니다.","settings.amr.mapping.label.loopTryDistance":"루프 클로저 시도 거리","settings.amr.mapping.label.loopTryOverlap":"루프 클로저 중첩 범위","settings.amr.mapping.label.voxelSize":"복셀 크기","settings.amr.mapping.label.windowSize":"윈도우 크기","settings.amr.mapping.label.updateNum":"업데이트 간격","settings.amr.logging.title.logging":"로그 설정","settings.amr.logging.desc.logging":"로그 기록 수준을 설정하고, 실시간 모니터링 및 데이터 기록을 수행할 시스템 모듈을 선택합니다.","settings.amr.logging.label.logLevel":"로그 레벨","settings.amr.logging.label.loggingStatus":"로그 표시 상태","settings.amr.logging.label.autoCtrl":"자동 제어","settings.amr.logging.label.commRRS":"RRS 통신","settings.amr.logging.label.lidar":"{{param}} 라이다","settings.amr.logging.label.mobile":"모바일","settings.amr.logging.label.obsMap":"장애물 지도","settings.amr.logging.label.fileSave":"파일 저장","settings.amr.logging.label.filePath":"파일 경로","settings.amr.logging.option.trace":"추적","settings.amr.logging.option.debug":"디버그","settings.amr.logging.option.info":"정보","settings.amr.logging.option.warning":"경고","settings.amr.logging.option.error":"오류","settings.amr.logging.option.critical":"심각","program.modal.title.searchVariables":"변수 찾기","program.modal.label.valueType":"값 유형","program.modal.label.defaultValue":"기본값","program.modal.label.context":"상태 정보","program.modal.label.all":"전체","program.modal.label.manipulate":"매니퓰레이트","program.modal.label.amr":"모바일","program.modal.label.local":"로컬","program.modal.label.global":"글로벌","program.modal.msg.varNotFound":"변수를 찾을 수 없습니다.","program.modal.label.declaredVariables":"선언 변수","program.modal.label.pluginVariables":"플러그인 변수","program.modal.label.systemReference":"정의 변수","program.modal.placeholder.searchVariables":"변수 검색","program.modal.label.copied":"복사 완료","program.modal.label.copyVariableReference":"키 복사","program.modal.label.copyCurrentValue":"변수 복사","program.modal.label.currentValue":"현재 값","program.modal.label.initialValue":"초기값","program.modal.label.notAvailable":"사용할 수 없음","program.modal.msg.variableReferenceCopied":"변수 키가 복사되었습니다.","program.modal.msg.variableValueCopied":"변수 값이 복사되었습니다.","move.menu.button.label.collapse":"접기","move.menu.button.label.jog":"조그","move.menu.button.label.advJog":"고급 조그","move.menu.button.label.tcpTool":"TCP 툴","move.menu.button.label.gripper":"그리퍼","move.menu.button.label.zeroPose":"영점으로 이동","move.menu.button.label.pinpoint":"핀포인트","move.menu.button.label.record":"동작 녹화","move.menu.button.label.weld":"용접 옵션","move.menu.title.planeConstJog":"평면 제한 조그","move.menu.title.tcpTool":"선택된 TCP 툴","move.menu.msg.tcpTool":"선택된 TCP 툴이 없습니다.","move.menu.button.label.moveOrigin":"{{index}}번 조인트를 원점으로 이동","move.menu.button.label.moveAllOrigin":"전체 조인트를 원점으로 이동","move.menu.options.option.noSave":"저장 안 함","move.menu.options.option.realTime":"실시간","move.menu.options.option.mileStone":"중요 지점","move.menu.label.mileStoneFreq":"중요 지점 기록 빈도","move.menu.label.fileName":"파일 이름","move.menu.button.label.recordStop":"녹화 중지","move.menu.button.label.recordStart":"녹화 시작","move.menu.button.label.weldForward":"와이어 전진","move.menu.button.label.weldBackward":"와이어 후진","move.menu.button.label.gasPurge":"가스 퍼지 켜기/끄기","move.button.label.real":"리얼","move.button.label.simulation":"시뮬레이션","move.menu.msg.userCoordinate":"선택된 유저 좌표계가 없습니다.","move.menu.label.distFromBase":"베이스로부터의 거리","move.menu.label.rotFromBase":"베이스로부터의 회전","move.menu.label.joint":"조인트","move.menu.label.dist":"거리","login.title.welcome":"MUSCAT에 오신 것을 환영합니다!","login.textfield.label.id":"아이디","login.textfield.label.password":"비밀번호","login.placeholder.loginInfo":"{{info}}를 입력하세요.","login.label.rememberMe":"자동 로그인","login.button.label.login":"로그인","login.button.label.logout":"로그아웃","login.msg.error.id":"아이디를 입력해 주세요.","login.msg.error.password":"비밀번호를 입력해 주세요.","login.modal.title.duplicate":"타계정 로그인 시도","login.modal.desc.duplicate":" 계정이 로봇을 사용하려합니다.\\n사용권을 넘기시겠습니까?","login.modal.desc.duplicate.discription":"사용 권한을 넘기면 로그아웃됩니다.","login.modal.title.saveFailed":"저장 실패","login.modal.desc.saveFailed":"다음 항목 저장에 실패했습니다: {{items}}\\n그래도 로그아웃하시겠습니까?","login_peding.modal.desc":"로그인하기 위해 {{username}} 승인을 기다리고 있습니다.","login.modal.title.timeout":"로그인 요청 시간 초과","login.modal.title.denied":"로그인 요청 취소","login.title.failed":"로그인 요청 실패","login.msg.error.idOrPassword":"잘못된 계정 정보 입니다.","login.msg.error.alreadyLogged":"이미 접속중인 계정입니다.","login.msg.error.unknown":"알 수 없는 오류가 발생하였습니다. 관리자에게 문의하세요.","login.msg.timeout":"요청 시간이 초과되었습니다.","move.menu.button.label.calibration":"교정","move.menu.options.option.tcpPosCalib":"TCP 위치 교정","move.menu.options.option.tcpOriCalib":"TCP 회전 교정","move.menu.options.option.user3Points":"유저 좌표계: 3개 지점을 이용한 교정","move.menu.options.option.userTCPFrame":"유저 좌표계: TCP 좌표계를 이용한 교정","move.menu.options.option.extAxis":"부가 축","move.field.label.jointNumber":"조인트 번호","move.menu.button.get":"가져오기","move.menu.calibTCPPos.desc":"포인트를 추가하세요.","move.menu.tab.lable.controlBox":"제어 박스","move.menu.tab.lable.extBoard":"확장 보드","move.menu.title.currentSignal":"현재 신호","move.menu.title.targetSignal":"목표 신호","move.menu.label.digitalInput":"{{loc}} 디지털 입력","move.menu.label.digitalOutput":"{{loc}} 디지털 출력","move.menu.label.analogInput":"{{loc}} 아날로그 입력","move.menu.label.analogOutput":"{{loc}} 아날로그 출력","move.menu.label.toolVoltageOutput":"툴 전압 출력","move.rby1.source.ghost":"고스트","move.rby1.jogMode.joint":"조인트 조그","move.rby1.jogMode.cartesian":"카르테시안 조그","move.rby1.switch.bothArms":"양팔 미러 모드","move.rby1.monitor.joint":"관절","move.rby1.monitor.tcp":"TCP","move.rby1.menu.savedPose":"저장된 자세","move.rby1.inputMove.title":"입력값으로 이동","move.rby1.inputMove.content":"로봇의 {{key}}를 {{value}}(으)로 이동시키시겠습니까?","move.rby1.savedPose.count":"{{count}}개","move.rby1.savedPose.saveDesc":"현재 실제 자세를 저장합니다","move.rby1.savedPose.namePlaceholder":"자세 이름","move.rby1.savedPose.save":"저장","move.rby1.savedPose.searchPlaceholder":"자세 이름 검색","move.rby1.savedPose.axisCount":"{{count}}축","move.rby1.savedPose.current":"현재 자세","move.rby1.savedPose.jointTitle":"관절 각도 · °","move.rby1.savedPose.tcpTitle":"TCP 위치 · mm / °","move.rby1.savedPose.cartesian":"카르테시안","move.rby1.savedPose.approach":"이 자세로 이동","move.rby1.savedPose.updateToCurrent":"현재 자세로 수정","move.rby1.savedPose.empty":"저장된 자세가 없습니다","move.rby1.savedPose.deleteTitle":"자세 삭제","move.rby1.savedPose.deleteContent":'"{{name}}" 자세를 삭제할까요?',"move.rby1.savedPose.delete":"삭제","move.rby1.zeroPose.partAll":"{{part}} 전체 조인트를 원점으로 이동","program.field.frequency":"주기","program.field.magnitudes":"강도","program.section.title.motionType":"모션 타입","program.box.options.movement":"동작 {{type}}","program.label.blend":"블렌드 {{msg}}","program.box.options.linearType":"선형 타입","program.box.options.cornerType":"코너 타입","program.box.options.percentage":"백분율","program.field.blendRatio":"블렌드율","program.field.blendDistance":"블렌드 거리","program.field.frameSelection":"좌표계 선택","program.section.title.feedSpeed":"피드 속도","program.field.feedDefault":"피드 기본값","program.field.feedRapid":"피드 래피드","program.field.feedMaxLimit":"피드 최대 제한","program.field.feedRotation":"피드 회전","program.section.title.plane":"평면","program.field.defaultPlane":"기본 평면","program.section.title.offset":"오프셋","program.field.willUseConstSpd":"고정 속도 사용 여부","program.field.willIgnoreUnknown":"알 수 없는 코드 무시 여부","program.box.option.constantSpeed":"고정 속도","program.box.option.ignoreUnknown":"알 수 없는 코드 무시","program.box.option.xyPlane":"XY-평면","program.box.option.zxPlane":"ZX-평면","program.box.option.yzPlane":"YZ-평면","program.options.frame.activeLocal":"활성화된 로컬 좌표계","program.field.delimiter":"구분 기호","program.field.resolve_action":"실패 처리 방식","program.options.resolve_action.next":"무시 후 진행","program.options.resolve_action.stop":"즉시 중단","program.options.resolve_action.debug":"사용자 확인","settings.devices.plc.label.operator":"연산자","log.datepicker.setTime":"시간 설정","log.datepicker.preset.last24Hours":"최근 24시간","log.datepicker.preset.last3Days":"최근 3일","log.datepicker.preset.lastWeek":"최근 1주","log.datepicker.preset.lastMonth":"최근 1달","log.datepicker.preset.last3Months":"최근 3달","settings.toast.saveSuccess.title":"저장 완료","settings.toast.saveSuccess.content":"설정이 저장되었습니다.","settings.amr.general.title.robotSizeMin":"최소 {{axis}} 크기","settings.amr.general.title.robotSizeMax":"최대 {{axis}} 크기","settings.amr.docking.label.chargeFlag":"충전 방향","settings.amr.docking.label.retryCount":"재시도 횟수","move.amr.pdu.toast.motorConnect.title":"모터 연결 완료","move.amr.pdu.toast.motorConnect.content":"모터가 성공적으로 연결되었습니다.","move.amr.pdu.toast.lidarSave.title":"Lidar 필드 저장 완료","move.amr.pdu.toast.lidarSave.content":"Lidar 필드 값이 저장되었습니다.","common.toast.apiError.title":"API 요청 실패","common.toast.apiError.content":"잠시 후 다시 시도해주세요.","maintenance.menu.jointUnit":"조인트 유닛","maintenance.menu.system":"시스템","maintenance.menu.safety":"안전","maintenance.menu.update":"업데이트","maintenance.menu.robotInfo":"로봇 정보","maintenance.menu.management":"관리","maintenance.menu.authentication":"사용자 인증","maintenance.menu.user":"유저","maintenance.menu.externalPeer":"외부 Peer","maintenance.menu.authPolicy":"승인 정책","maintenance.title.changeSettings":"설정 변경","maintenance.title.status":"상태","maintenance.joint.desc":"특정 조인트 조율 도구입니다. 인코더 영점 설정, 센서 보정, 제어 게인(Gain) 미세 조정 등을 통해 하드웨어 성능을 극대화할 수 있습니다.","maintenance.system.desc":"핵심 시스템 인프라와 하드웨어 식별 정보를 관리하는 메뉴입니다. 로우레벨(Low-level) 설정, 하드웨어 주소 할당, 필수 시스템 유지 관리에 필요한 도구를 제공합니다.","maintenance.safety.desc":"로봇의 안전과 관련된 다양한 파라미터 값들을 설정할 수 있습니다.","maintenance.safetyStatus.desc":"실행 상태, I/O 신호, 플래그, 시스템 상태 등 로봇의 다양한 안전 관련 신호 상태를 표시합니다.","maintenance.userManagement.desc":"신규 유저 생성, 기존 유저 정보 수정 및 삭제 등 전체적으로 유저를 관리합니다.","maintenance.sdkManagement.desc":"시스템 연동을 위한 SDK 인증 토큰을 발급하고 유효기간을 관리합니다.","maintenance.peerManagement.desc":"네트워크 연동을 위한 외부 피어(Peer) 노드를 등록하고 관리합니다.","maintenance.authPolicy.desc":"인증 정책과 인증에 사용할 전송 프로토콜을 설정합니다.","maintenance.title.login":"로그인","maintenance.loginManagement.desc":"중복 로그인한 사용자를 강제로 로그아웃시킵니다.","maintenance.loginManagement.button.forceAll":"전체 강제 로그아웃","maintenance.loginManagement.button.force":"강제 로그아웃","maintenance.loginManagement.label.duplicateAccounts":"중복 계정 수","maintenance.loginManagement.label.currentSession":"현재 세션","maintenance.loginManagement.button.refresh":"새로고침","maintenance.loginManagement.label.transport":"최근 통신 종류","maintenance.loginManagement.label.username":"사용자명(ID)","maintenance.loginManagement.label.loginTime":"로그인 시간","maintenance.userManagement.button.addUser":"유저 추가","maintenance.userManagement.button.totalUser":"전체 유저","maintenance.userManagement.button.adminUser":"관리자 유저","maintenance.userManagement.label.userId":"유저 ID","maintenance.userManagement.label.userPw":"비밀번호","maintenance.userManagement.label.userName":"유저 이름","maintenance.userManagement.label.role":"권한","maintenance.modal.title.createUser":"유저 생성","maintenance.modal.title.userInfo":"유저 정보","maintenance.modal.title.editUser":"유저 정보 수정","maintenance.modal.title.delete":"{{msg}} 삭제","maintenance.modal.label.activeSessionCnt":"활성화된 세션 수","maintenance.modal.content.confirmDeleteUser":"정말 {{id}}을(를) 삭제하시겠습니까?\\n이 작업은 되돌릴 수 없습니다.","maintenance.toast.content.createSuccess":"{{msg}}가 생성되었습니다.","maintenance.toast.content.editSuccess":"{{msg}} 정보가 수정되었습니다.","maintenance.toast.content.registerSuccess":"외부 Peer가 등록되었습니다.","maintenance.toast.content.createFail":"{{msg}} 생성에 실패했습니다.","maintenance.toast.content.editFail":"{{msg}} 정보 수정에 실패했습니다.","maintenance.toast.content.registerFail":"외부 Peer 등록에 실패했습니다.","maintenance.toast.content.delete":"삭제 되었습니다.","maintenance.label.createToken":"SDK 토큰 생성","maintenance.label.totalTokens":"전체 SDK 토큰","maintenance.label.editToken":"SDK 토큰 수정","maintenance.table.label.token":"토큰","maintenance.table.tooltip.token":"전체 토큰을 확인하려면 토큰 칸을 클릭하세요.","maintenance.table.label.issuedDate":"생성일","maintenance.table.label.expiredDate":"만료일","maintenance.table.label.issuedBy":"발급자","maintenance.table.msg.noManagementDatas":"{{msg}} 데이터가 없습니다.","maintenance.table.msg.noSdkTokens":"생성된 SDK 토큰이 없습니다.","maintenance.label.totalPeers":"전체 Peer","maintenance.label.registerPeer":"Peer 등록","maintenance.label.editPeer":"Peer 수정","maintenance.label.loginEnabled":"로그인 활성화","maintenance.label.allowDuplLogin":"다중 로그인 허용","maintenance.label.transportProtocols":"인증을 위한 전송 프로토콜","maintenance.label.maxConcurrUsers":"최대 동시 사용자 수","maintenance.helpText.maxConcurrUsers":"0을 입력하면 모든 사용자의 동시 접속을 허용합니다.","maintenance.helpText.reloginNotice":"아래 설정을 변경하시면 현재 로그인된 모든 사용자가 강제 로그아웃됩니다.","maintenance.label.jwtRuntimeConfig":"JWT 런타임 설정","maintenance.label.tokenExp":"토큰 만료 (mins)","maintenance.label.refreshTokenExp":"리프레시 토큰 만료 (days)","maintenance.label.servicePrefix":"Service 접두사","maintenance.label.sdkPrefix":"SDK 접두사","maintenance.modal.button.keep":"유지","maintenance.modal.saveAuto.desc.noRelogin":"권한 정책 설정이 변경됩니다.\\n이 변경 사항은 재로그인 없이 즉시 적용됩니다.","maintenance.modal.saveAuto.desc.relogin":"권한 정책 설정이 변경됩니다.\\n확인을 누르면 변경 사항이 저장되고, 현재 로그인되어 있는 모든 사용자가 강제 로그아웃됩니다.","maintenance.modal.saveAuto.desc":"권한 정책 설정이 변경됩니다.\\n확인을 누르면 현재 로그인되어 있는 다른 모든 사용자가 강제 로그아웃됩니다.\\n유지를 누르면 현재 로그인 상태를 유지합니다.\\n강제 로그아웃 여부와 관계없이 변경된 권한 정책은 저장됩니다.","settings.devices.plc.options.always":"켜기 (항상)","settings.devices.plc.options.idle":"켜기 (대기)","settings.devices.plc.options.playing":"켜기 (재생 중)","settings.devices.plc.options.moving":"켜기 (동작 중)","settings.devices.plc.label.input":"입력 {{type}}","settings.devices.plc.options.ioSignal":"IO 신호","settings.devices.plc.options.systemStatus":"시스템 상태","settings.devices.plc.options.systemParam":"시스템 파라미터","settings.devices.plc.options.dataComm":"데이터 통신","settings.devices.plc.options.dataDummy":"데이터 더미","settings.devices.plc.options.signalLevel":"신호 레벨","settings.devices.plc.options.userNumber":"유저 입력 숫자","login.msg.denied":"로그인 요청이 취소되었습니다.","program.dialog.content.editConfirm":"데이터가 변경될 수 있습니다. 계속하시겠습니까?","settings.amr.validation.integer":"올바른 정수를 입력하세요.","settings.amr.validation.number":"올바른 숫자를 입력하세요.","settings.amr.validation.jsonArray":"올바른 JSON 배열을 입력하세요.","settings.amr.validation.jsonObject":"올바른 JSON 객체를 입력하세요.","settings.amr.validation.min":"{{min}} 이상이어야 합니다.","settings.amr.validation.max":"{{max}} 이하여야 합니다.","settings.amr.collection.position":"위치","settings.amr.collection.rotation":"회전","move.amr.toast.moveReject.title":"이동 실패","move.amr.toast.moveReject.localizationUnavailable":"위치 인식이 안 된 상태입니다.","move.amr.toast.moveReject.sameTarget":"현재 목표와 같은 목표입니다.","move.amr.toast.moveReject.outOfMapRange":"목표 좌표가 맵 범위 밖입니다. ","move.amr.toast.moveReject.markerNode":"마커 NODE는 이동 목표로 사용할 수 없습니다.","move.amr.toast.moveReject.robotNotReady":"로봇이 준비되지 않았습니다.","move.amr.toast.moveReject.noMap":"불러온 맵이 없습니다.","move.amr.toast.moveReject.targetNodeNotFound":"목표 NODE를 찾을 수 없습니다.","move.amr.toast.moveReject.noLink":"LINK가 없는 NODE로는 주행할 수 없습니다.","move.amr.toast.moveReject.default":"이동 명령이 거부되었습니다","settings.amr.preset.description":"preset을 선택하여 설정값을 확인하고 편집합니다","settings.amr.preset.loading":"preset 목록을 불러오는 중입니다","settings.amr.preset.empty":"AMR 설정 preset이 없습니다","move.amr.rightPanel.bottomBar.camera":"카메라","move.amr.rightPanel.bottomBar.controlPanel":"제어 패널","move.amr.rightPanel.bottomBar.links":"링크","move.amr.rightPanel.bottomBar.liveStream":"실시간 스트림","move.amr.rightPanel.bottomBar.nodes":"노드","move.amr.rightPanel.bottomBar.offline":"오프라인","move.amr.rightPanel.bottomBar.points":"포인트","move.amr.rightPanel.cameraPanel.cameraName":"카메라 {{index}}","move.amr.rightPanel.cameraPanel.disconnected":"카메라 연결 끊김","move.amr.rightPanel.cameraPanel.loading":"카메라 불러오는 중","move.amr.rightPanel.cameraPanel.title":"카메라 스트림","move.amr.rightPanel.capability.camera":"카메라","move.amr.rightPanel.capability.dock":"도킹","move.amr.rightPanel.capability.field.batteryPercent":"배터리","move.amr.rightPanel.capability.field.batteryType":"배터리 타입","move.amr.rightPanel.capability.field.bumperState":"범퍼 상태","move.amr.rightPanel.capability.field.camNum":"카메라 수","move.amr.rightPanel.capability.field.chargeCurrent":"충전 전류","move.amr.rightPanel.capability.field.chargeState":"충전 상태","move.amr.rightPanel.capability.field.chargeType":"충전 타입","move.amr.rightPanel.capability.field.colorProfile":"컬러 프로필","move.amr.rightPanel.capability.field.contactVoltage":"접점 전압","move.amr.rightPanel.capability.field.depthProfile":"깊이 프로필","move.amr.rightPanel.capability.field.dockState":"도킹 상태","move.amr.rightPanel.capability.field.enabled":"활성화","move.amr.rightPanel.capability.field.enabledDepth":"깊이","move.amr.rightPanel.capability.field.enabledFilter":"필터","move.amr.rightPanel.capability.field.enabledObs":"장애물 감지","move.amr.rightPanel.capability.field.interlockState":"인터락 상태","move.amr.rightPanel.capability.field.ip":"IP","move.amr.rightPanel.capability.field.obsDetect":"장애물 감지","move.amr.rightPanel.capability.field.operationStopState":"작업 정지 상태","move.amr.rightPanel.capability.field.safety":"안전","move.amr.rightPanel.capability.field.serial":"시리얼","move.amr.rightPanel.capability.field.speedControlState":"속도 제어 상태","move.amr.rightPanel.capability.field.tabosCurrent":"TABOS 전류","move.amr.rightPanel.capability.field.tabosSoc":"TABOS SOC","move.amr.rightPanel.capability.field.tabosSoh":"TABOS SOH","move.amr.rightPanel.capability.field.tabosTemp":"TABOS 온도","move.amr.rightPanel.capability.field.tabosVoltage":"TABOS 전압","move.amr.rightPanel.capability.field.tf":"트랜스폼","move.amr.rightPanel.capability.field.type":"타입","move.amr.rightPanel.capability.imu":"IMU","move.amr.rightPanel.capability.io":"I/O","move.amr.rightPanel.capability.lidar2d":"2D 라이다","move.amr.rightPanel.capability.lidar3d":"3D 라이다","move.amr.rightPanel.capability.safety":"안전","move.amr.rightPanel.capability.safetyBumper":"안전 범퍼","move.amr.rightPanel.capability.safetyInterlock":"안전 인터락","move.amr.rightPanel.capability.safetyObstacle":"안전 장애물","move.amr.rightPanel.capability.safetyOperationStop":"안전 작업 정지","move.amr.rightPanel.capability.safetySpeedControl":"안전 속도 제어","move.amr.rightPanel.capability.sensor.item":"센서 {{index}}","move.amr.rightPanel.capability.status.disabled":"비활성화","move.amr.rightPanel.capability.status.enabled":"활성화","move.amr.rightPanel.capability.status.loading":"불러오는 중","move.amr.rightPanel.capability.status.noData":"데이터 없음","move.amr.rightPanel.capability.status.notSupported":"이 기능을 지원하지 않거나 조회할 수 없습니다.","move.amr.rightPanel.capability.status.offline":"오프라인","move.amr.rightPanel.capability.status.online":"온라인","move.amr.rightPanel.capability.status.unavailable":"조회 불가","move.amr.rightPanel.capability.tabos":"TABOS","move.amr.rightPanel.common.cancel":"취소","move.amr.rightPanel.common.clear":"해제","move.amr.rightPanel.common.connected":"연결됨","move.amr.rightPanel.common.created":"생성일","move.amr.rightPanel.common.delete":"삭제","move.amr.rightPanel.common.discard":"버리기","move.amr.rightPanel.common.disconnected":"연결 안 됨","move.amr.rightPanel.common.fail":"실패","move.amr.rightPanel.common.false":"false","move.amr.rightPanel.common.keepEditing":"계속 편집","move.amr.rightPanel.common.mode.auto":"자동","move.amr.rightPanel.common.mode.manual":"수동","move.amr.rightPanel.common.none":"없음","move.amr.rightPanel.common.normal":"정상","move.amr.rightPanel.common.reset":"초기화","move.amr.rightPanel.common.save":"저장","move.amr.rightPanel.common.saveChanges":"변경사항 저장","move.amr.rightPanel.common.saving":"저장 중...","move.amr.rightPanel.common.select":"선택","move.amr.rightPanel.common.settings":"설정","move.amr.rightPanel.common.speed":"속도","move.amr.rightPanel.common.stop":"중지","move.amr.rightPanel.common.trig":"감지","move.amr.rightPanel.common.triggered":"감지됨","move.amr.rightPanel.common.true":"true","move.amr.rightPanel.controlPanel.accelDegS2":"가속도 (°/s²)","move.amr.rightPanel.controlPanel.accelMs2":"가속도 (m/s²)","move.amr.rightPanel.controlPanel.angularMotion.line1":"회전","move.amr.rightPanel.controlPanel.angularMotion.line2":"이동","move.amr.rightPanel.controlPanel.axis":"축","move.amr.rightPanel.controlPanel.button.description":"방향 버튼으로 로봇을 제어합니다","move.amr.rightPanel.controlPanel.currentPose":"현재: ({{x}}, {{y}}, {{yaw}}°)","move.amr.rightPanel.controlPanel.decelDegS2":"감속도 (°/s²)","move.amr.rightPanel.controlPanel.decelMs2":"감속도 (m/s²)","move.amr.rightPanel.controlPanel.executeMove":"이동 실행","move.amr.rightPanel.controlPanel.left":"왼쪽","move.amr.rightPanel.controlPanel.linear.description":"방향과 거리로 로봇을 이동합니다","move.amr.rightPanel.controlPanel.linearMotion.line1":"직선","move.amr.rightPanel.controlPanel.linearMotion.line2":"이동","move.amr.rightPanel.controlPanel.moveToPoint":"포인트로 이동","move.amr.rightPanel.controlPanel.point.description":"지정 좌표로 로봇을 이동합니다","move.amr.rightPanel.controlPanel.right":"오른쪽","move.amr.rightPanel.controlPanel.speedDegS":"속도 (°/s)","move.amr.rightPanel.controlPanel.speedMs":"속도 (m/s)","move.amr.rightPanel.controlPanel.tab.button":"버튼","move.amr.rightPanel.controlPanel.tab.linear":"직선","move.amr.rightPanel.controlPanel.tab.point":"포인트","move.amr.rightPanel.controlPanel.targetM":"목표 (m)","move.amr.rightPanel.controlPanel.transparency":"투명도","move.amr.rightPanel.dock.action.dock":"도킹","move.amr.rightPanel.dock.action.undock":"도킹 해제","move.amr.rightPanel.dock.action.resume":"재시작","move.amr.rightPanel.dock.action.pause":"일시정지","move.amr.rightPanel.dock.operation.charge":"충전","move.amr.rightPanel.dock.operation.description":"Dock / Undock 버튼으로 도킹 상태를 제어합니다.","move.amr.rightPanel.dock.operation.dock":"도킹","move.amr.rightPanel.dock.operation.motion":"동작 제어","move.amr.rightPanel.dock.operation.title":"충전 도킹 작업","move.amr.rightPanel.dock.retryCount":"재시도 횟수","move.amr.rightPanel.dock.status.dock":"도킹","move.amr.rightPanel.dock.status.move":"이동","move.amr.rightPanel.dock.status.title":"충전 도킹 상태","move.amr.rightPanel.dock.status.undocked":"도킹 해제","move.amr.rightPanel.dock.step.checkCharge":"충전 확인","move.amr.rightPanel.dock.step.complete":"완료","move.amr.rightPanel.dock.step.docking":"도킹 중","move.amr.rightPanel.hud.autoMove":"자동 이동","move.amr.rightPanel.hud.imuSensor":"IMU 센서","move.amr.rightPanel.hud.inlierError":"IE","move.amr.rightPanel.hud.inlierRatio":"IR","move.amr.rightPanel.hud.localization":"위치 인식","move.amr.rightPanel.hud.robotTransform":"로봇 위치","move.amr.rightPanel.hud.speed":"속도","move.amr.rightPanel.hud.status.busy":"진행 중","move.amr.rightPanel.hud.status.error":"오류","move.amr.rightPanel.hud.status.fail":"실패","move.amr.rightPanel.hud.status.good":"정상","move.amr.rightPanel.hud.status.move":"이동 중","move.amr.rightPanel.hud.status.none":"없음","move.amr.rightPanel.hud.status.notReady":"준비 안 됨","move.amr.rightPanel.hud.status.pause":"일시정지","move.amr.rightPanel.hud.status.success":"성공","move.amr.rightPanel.map.dialog.discardMapping.content":"매핑 탭을 벗어나면 현재 매핑 세션이 버려집니다.","move.amr.rightPanel.map.dialog.discardMapping.leaveMenuContent":"맵 메뉴를 벗어나면 현재 매핑 세션이 버려집니다.","move.amr.rightPanel.map.dialog.discardMapping.loadMapContent":"다른 맵을 불러오면 현재 매핑 세션이 버려집니다.","move.amr.rightPanel.map.dialog.discardMapping.loadYes":"버리고 불러오기","move.amr.rightPanel.map.dialog.discardMapping.title":"매핑 변경사항을 버릴까요?","move.amr.rightPanel.map.dialog.discardMapping.yes":"버리고 이동","move.amr.rightPanel.map.erasing.descriptionLine1":"뷰포트에서 포인트를 선택해","move.amr.rightPanel.map.erasing.descriptionLine2":"맵에서 제거합니다.","move.amr.rightPanel.map.erasing.eraseMode":"지우기 모드","move.amr.rightPanel.map.erasing.eraseSelectedArea":"선택 영역 지우기","move.amr.rightPanel.map.erasing.eraserRadius":"지우개 반경","move.amr.rightPanel.map.erasing.releaseSelectedPoints":"선택 포인트 해제","move.amr.rightPanel.map.info.lastModified":"최근 수정일","move.amr.rightPanel.map.info.mapBoundaries":"맵 경계","move.amr.rightPanel.map.info.mapName":"맵 이름","move.amr.rightPanel.map.info.nodes":"노드","move.amr.rightPanel.map.info.pointCloud":"포인트 클라우드","move.amr.rightPanel.map.info.pts":"{{count}} pts","move.amr.rightPanel.map.info.statistics":"통계","move.amr.rightPanel.map.info.totalArea":"전체 면적","move.amr.rightPanel.map.info.xRange":"X 범위","move.amr.rightPanel.map.info.yRange":"Y 범위","move.amr.rightPanel.map.loadDialog.closeBackdrop":"맵 불러오기 다이얼로그 배경 닫기","move.amr.rightPanel.map.loadDialog.current":"현재","move.amr.rightPanel.map.loadDialog.currentMap":"현재 맵","move.amr.rightPanel.map.loadDialog.description":"에디터에 불러올 맵을 선택하세요","move.amr.rightPanel.map.loadDialog.loadSelectedMap":"선택한 맵 불러오기","move.amr.rightPanel.map.loadDialog.modified":"수정일","move.amr.rightPanel.map.loadDialog.noMapsFound":"맵을 찾을 수 없습니다","move.amr.rightPanel.map.loadDialog.searchPlaceholder":"맵 이름으로 검색","move.amr.rightPanel.map.loadDialog.size":"크기","move.amr.rightPanel.map.loadDialog.title":"맵 불러오기","move.amr.rightPanel.map.loadDialog.tryDifferentSearch":"다른 검색어를 입력해보세요","move.amr.rightPanel.map.mapping.buildingKeyframes":"맵 키프레임을 생성 중입니다...","move.amr.rightPanel.map.mapping.canSaveAsNewMap":"현재 기록을 새 맵으로 저장할 수 있습니다.","move.amr.rightPanel.map.mapping.cannotSaveRecording":"이 기록은 저장할 수 없습니다.","move.amr.rightPanel.map.mapping.cannotSaveYet":"아직 저장할 수 없음","move.amr.rightPanel.map.mapping.captureStatus":"캡처 상태","move.amr.rightPanel.map.mapping.clickStartMapping":"매핑 시작을 눌러","move.amr.rightPanel.map.mapping.discarding":"버리는 중...","move.amr.rightPanel.map.mapping.keyframePoints":"키프레임 포인트","move.amr.rightPanel.map.mapping.keyframeRequired":"저장하려면 최소 1개 이상의 키프레임이 필요합니다.","move.amr.rightPanel.map.mapping.keyframesReceived":"수신된 키프레임","move.amr.rightPanel.map.mapping.mapReadyToSave":"맵을 저장할 수 있습니다.","move.amr.rightPanel.map.mapping.noKeyframeCaptured":"캡처된 키프레임 없음","move.amr.rightPanel.map.mapping.noKeyframeReceived":"수신된 키프레임이 없습니다.","move.amr.rightPanel.map.mapping.points":"{{count}} points","move.amr.rightPanel.map.mapping.readyToMap":"매핑 준비 완료","move.amr.rightPanel.map.mapping.readyToSave":"저장 가능","move.amr.rightPanel.map.mapping.readyToSaveTitle":"저장 준비 완료","move.amr.rightPanel.map.mapping.recordingActive":"녹화 중","move.amr.rightPanel.map.mapping.result":"결과","move.amr.rightPanel.map.mapping.saveStatus":"저장 상태","move.amr.rightPanel.map.mapping.startMapping":"매핑 시작","move.amr.rightPanel.map.mapping.toBegin":"시작하세요","move.amr.rightPanel.map.saveDialog.closeBackdrop":"맵 저장 다이얼로그 배경 닫기","move.amr.rightPanel.map.saveDialog.description":"유효한 맵 이름을 입력하고 현재 매핑 결과를 저장하세요.","move.amr.rightPanel.map.saveDialog.error.duplicateName":"{{name}}은 이미 존재합니다. 다른 이름을 사용해 주세요.","move.amr.rightPanel.map.saveDialog.error.invalidChars":"맵 이름은 한글/영문, 숫자, 하이픈, 언더스코어만 사용할 수 있습니다.","move.amr.rightPanel.map.saveDialog.error.loadFailed":"맵은 저장되었지만 불러오기에 실패했습니다. 수동으로 불러와 주세요.","move.amr.rightPanel.map.saveDialog.error.minLength":"맵 이름은 최소 3자 이상이어야 합니다.","move.amr.rightPanel.map.saveDialog.error.required":"맵 이름을 입력해 주세요.","move.amr.rightPanel.map.saveDialog.error.saveError":"맵 저장 중 오류가 발생했습니다.","move.amr.rightPanel.map.saveDialog.error.saveFailed":"맵 저장에 실패했습니다. 다시 시도해 주세요.","move.amr.rightPanel.map.saveDialog.nameRule":"한글/영문, 숫자, 하이픈, 언더스코어만 사용할 수 있습니다.","move.amr.rightPanel.map.saveDialog.placeholder":"예: Factory_Floor_Building_A","move.amr.rightPanel.map.saveDialog.saveMap":"맵 저장","move.amr.rightPanel.map.saveDialog.title":"포인트 클라우드 맵 저장","move.amr.rightPanel.map.tab.erasing":"지우기","move.amr.rightPanel.map.tab.info":"정보","move.amr.rightPanel.map.tab.mapping":"매핑","move.amr.rightPanel.marker.teachTarget":"마커 티칭","move.amr.rightPanel.marker.camIdShort":"cam {{id}}","move.amr.rightPanel.marker.captureCurrentPose":"현재 위치 캡처","move.amr.rightPanel.marker.captured":"캡처됨","move.amr.rightPanel.marker.capturedPose":"캡처된 위치","move.amr.rightPanel.marker.foundCount":"{{count}}개 발견","move.amr.rightPanel.marker.markerId":"마커 ID","move.amr.rightPanel.marker.markerSize":"마커 크기 (m)","move.amr.rightPanel.marker.markerType":"마커 타입","move.amr.rightPanel.marker.mount":"장착 위치","move.amr.rightPanel.marker.mount.floor":"바닥","move.amr.rightPanel.marker.mount.wall":"벽","move.amr.rightPanel.marker.moveRobotThenCapture":"목표 위치로 이동한 뒤 캡처하세요.","move.amr.rightPanel.marker.noPose":"pose 없음","move.amr.rightPanel.marker.noRegisteredMarkers":"등록된 마커가 없습니다.","move.amr.rightPanel.marker.notFound":"찾을 수 없음","move.amr.rightPanel.marker.pressScanToStart":"스캔을 눌러 시작하세요.","move.amr.rightPanel.marker.registerId":"id {{id}} 등록","move.amr.rightPanel.marker.registerMarker":"마커 등록","move.amr.rightPanel.marker.saveTarget":"목표 저장","move.amr.rightPanel.marker.scan":"스캔","move.amr.rightPanel.marker.scanning":"스캔 중...","move.amr.rightPanel.marker.scanningForMarkers":"마커를 스캔 중입니다...","move.amr.rightPanel.marker.tab.register":"등록","move.amr.rightPanel.marker.tab.teaching":"티칭","move.amr.rightPanel.marker.markerScan":"마커 스캔","move.amr.rightPanel.marker.markerStatus":"마커 상태","move.amr.rightPanel.marker.targetMarker":"목표 마커","move.amr.rightPanel.marker.targetName":"목표 이름","move.amr.rightPanel.marker.targetNamePlaceholder":"예: Workbench","move.amr.rightPanel.menu.map":"맵","move.amr.rightPanel.menu.marker":"마커","move.amr.rightPanel.menu.monitor":"모니터","move.amr.rightPanel.menu.topology":"토폴로지","move.amr.rightPanel.monitor.tab.capability":"기능","move.amr.rightPanel.monitor.tab.dock":"도킹","move.amr.rightPanel.monitor.tab.overview":"개요","move.amr.rightPanel.monitor.tab.pdu":"PDU","move.amr.rightPanel.monitor.tab.task":"작업","move.amr.rightPanel.overview.battery.chargeLevel":"충전량","move.amr.rightPanel.overview.battery.title":"배터리","move.amr.rightPanel.overview.buildInfo.branch":"브랜치","move.amr.rightPanel.overview.buildInfo.commit":"커밋","move.amr.rightPanel.overview.buildInfo.buildDate":"빌드 일시","move.amr.rightPanel.overview.buildInfo.buildUser":"빌드 사용자","move.amr.rightPanel.overview.buildInfo.title":"빌드 정보","move.amr.rightPanel.overview.localization.cursor":"커서","move.amr.rightPanel.overview.localization.description":"커서 위치를 초기 위치 추정값으로 사용합니다.","move.amr.rightPanel.overview.localization.positionTracking":"위치 추적","move.amr.rightPanel.overview.localization.semiAutoInit":"반자동 초기화","move.amr.rightPanel.overview.localization.start":"위치 인식 시작","move.amr.rightPanel.overview.localization.title":"위치 인식 상태","move.amr.rightPanel.overview.moveStatus.autoMove":"자동 이동","move.amr.rightPanel.overview.moveStatus.operationMode":"운영 모드","move.amr.rightPanel.overview.moveStatus.title":"이동 상태","move.amr.rightPanel.overview.robotTransform.position":"위치","move.amr.rightPanel.overview.robotTransform.rotation":"회전","move.amr.rightPanel.overview.robotTransform.title":"로봇 위치","move.amr.rightPanel.pdu.charge":"충전","move.amr.rightPanel.pdu.chargeContact":"충전 접점","move.amr.rightPanel.pdu.detect":"감지","move.amr.rightPanel.pdu.dock":"도킹","move.amr.rightPanel.pdu.dockId":"도킹 ID","move.amr.rightPanel.pdu.dockResult":"도킹 결과","move.amr.rightPanel.pdu.emergencyStop":"비상 정지 (EMO)","move.amr.rightPanel.pdu.lidarField":"Lidar 필드","move.amr.rightPanel.pdu.motor":"모터","move.amr.rightPanel.pdu.motorStatus":"모터 상태","move.amr.rightPanel.pdu.opMode":"운영 모드","move.amr.rightPanel.pdu.opModeRestoration":"운영 모드 복구","move.amr.rightPanel.pdu.safety.bumper":"범퍼","move.amr.rightPanel.pdu.safety.fieldMismatch":"필드 불일치","move.amr.rightPanel.pdu.safety.interlock":"인터락","move.amr.rightPanel.pdu.safety.measMismatch":"측정 불일치","move.amr.rightPanel.pdu.safety.obstacle":"장애물 감지","move.amr.rightPanel.pdu.safety.overSpeed":"과속","move.amr.rightPanel.pdu.safetyRecovery":"안전 복구","move.amr.rightPanel.task.currentNode":"현재 노드","move.amr.rightPanel.task.duration":"소요 시간","move.amr.rightPanel.task.idle":"대기","move.amr.rightPanel.task.lastUpdated":"최근 업데이트","move.amr.rightPanel.task.pathHistory":"경로 이력","move.amr.rightPanel.task.status":"상태","move.amr.rightPanel.task.targetNode":"목표 노드","move.amr.rightPanel.topology.add.addNode":"노드 추가","move.amr.rightPanel.topology.add.atCursorPosition":"커서 위치","move.amr.rightPanel.topology.add.atRobotPosition":"로봇 위치","move.amr.rightPanel.topology.add.description":"아래 옵션을 선택하고 원하는 위치에 노드를 추가하세요.","move.amr.rightPanel.topology.add.selectNodeType":"1. 노드 타입 선택","move.amr.rightPanel.topology.add.selectPlacement":"2. 배치 위치 선택","move.amr.rightPanel.topology.add.title":"노드 추가","move.amr.rightPanel.topology.dialog.discardContent":"저장하지 않은 토폴로지 변경사항을 버릴까요?","move.amr.rightPanel.topology.edit.connectedLinks":"연결된 링크","move.amr.rightPanel.topology.edit.deleteThisLink":"이 링크 삭제","move.amr.rightPanel.topology.edit.features":"특징","move.amr.rightPanel.topology.edit.name":"이름","move.amr.rightPanel.topology.edit.noConnectedLinks":"연결된 링크가 없습니다.","move.amr.rightPanel.topology.edit.nodeId":"노드 ID","move.amr.rightPanel.topology.edit.nodeProperties":"노드 속성","move.amr.rightPanel.topology.edit.selectNodeToEdit":"속성을 편집할 노드를 목록에서 선택하세요.","move.amr.rightPanel.topology.edit.selectedLinkInfo":"선택한 링크 정보","move.amr.rightPanel.topology.edit.stepSize":"스텝 크기","move.amr.rightPanel.topology.edit.thisNode":"이 노드","move.amr.rightPanel.topology.edit.transform":"변환","move.amr.rightPanel.topology.edit.useLinkTab":"이 노드의 링크를 만들려면 Link 탭을 사용하세요.","move.amr.rightPanel.topology.link.avoidRange":"회피 범위","move.amr.rightPanel.topology.link.bidirectional":"양방향","move.amr.rightPanel.topology.link.complete":"전체","move.amr.rightPanel.topology.link.configureDirection":"최소 2개 이상의 노드를 선택한 뒤 방향을 설정하세요.","move.amr.rightPanel.topology.link.creationMode":"링크 생성 모드","move.amr.rightPanel.topology.link.deleteLinks":"링크 삭제","move.amr.rightPanel.topology.link.dir":"방향","move.amr.rightPanel.topology.link.direction":"방향","move.amr.rightPanel.topology.link.linkSelected":"선택 항목 링크","move.amr.rightPanel.topology.link.method":"방식","move.amr.rightPanel.topology.link.modeAvailable":"3개 이상의 노드를 선택하면 모드를 선택할 수 있습니다.","move.amr.rightPanel.topology.link.nodeSelectedCount":"{{count}}개 노드 선택됨","move.amr.rightPanel.topology.link.previewProperties":"{{dir}} / {{method}} / 속도 {{speed}} / 회피 {{avoid}}","move.amr.rightPanel.topology.link.properties":"링크 속성","move.amr.rightPanel.topology.link.safetyField":"안전 필드","move.amr.rightPanel.topology.link.selectAtLeastTwo":"링크를 만들려면 최소 2개 이상의 노드를 선택하세요.","move.amr.rightPanel.topology.link.selectAtLeastTwoShort":"최소 2개 이상의 노드를 선택하세요.","move.amr.rightPanel.topology.link.sequential":"순차","move.amr.rightPanel.topology.link.unidirectional":"단방향","move.amr.rightPanel.topology.link.willCreateCount":"{{count}}개 링크를 생성합니다.","move.amr.rightPanel.topology.link.willCreateNamed":"{{from}}{{connector}}{{to}} 링크를 생성합니다.","move.amr.rightPanel.topology.nodeType.align":"Align","move.amr.rightPanel.topology.nodeType.all":"전체","move.amr.rightPanel.topology.nodeType.goal":"Goal","move.amr.rightPanel.topology.nodeType.route":"Route","move.amr.rightPanel.topology.nodes.deleteCount":"{{count}}개 노드 삭제","move.amr.rightPanel.topology.nodes.empty":"사용 가능한 노드가 없습니다.","move.amr.rightPanel.topology.nodes.noSelected":"선택된 노드가 없습니다.","move.amr.rightPanel.topology.nodes.searchByName":"이름으로 검색","move.amr.rightPanel.topology.nodes.selectedTitle":"선택된 노드","move.amr.rightPanel.topology.nodes.title":"노드","move.amr.rightPanel.topology.tab.add":"추가","move.amr.rightPanel.topology.tab.edit":"편집","move.amr.rightPanel.topology.tab.link":"링크","move.amr.rightPanel.topology.tab.nodes":"노드","move.amr.rightPanel.topology.tab.zone":"존","move.amr.rightPanel.hud.obstacleDetect":"장애물 감지","move.amr.rightPanel.hud.status.detected":"감지","move.amr.rightPanel.hud.status.notDetected":"미감지","move.amr.rightPanel.cameraPanel.empty":"카메라 없음","move.amr.toast.markerScanReject.title":"마커 스캔 불가","move.amr.toast.markerScanReject.localizationUnavailable":"위치 인식 후 마커 스캔을 시작해주세요.","move.amr.rightPanel.cameraPanel.connecting":"카메라 연결 중...","program.interface.mechmind.joints":"조인트","program.interface.mechmind.pose":"위치값","program.interface.mechmind.expected_count":"예상 수","program.interface.mechmind.project_id":"Project ID","program.interface.mechmind.position":"설치 위치","move.amr.rightPanel.marker.dockOffset":"도킹 위치 보정값","move.amr.rightPanel.marker.moveToTarget":"목표로 이동","move.amr.toast.markerRegister.title":"마커 등록 완료","move.amr.toast.markerRegister.success":"마커 #{{markerID}}가 등록되었습니다.","move.amr.toast.markerTeach.title":"목표 저장 완료","move.amr.rightPanel.capability.streamFrequency":"통신 주기 (Hz)","move.amr.rightPanel.topology.edit.nodeidCopied":"노드 ID 복사 완료","move.amr.toast.markerTeach.reject.markerNotVisible":"마커가 보이지 않습니다. 마커를 정면으로 향한 후 다시 시도하세요.","settings.amr.frs.title":"FRS","settings.amr.frs.menu":"FRS 연결","settings.amr.frs.connectionSetting":"연결 설정","settings.amr.frs.connectionStatus":"연결 상태","settings.amr.frs.button.refresh":"새로고침","settings.amr.frs.label.ip":"FRS IP","settings.amr.frs.label.zenohUrl":"Zenoh URL","settings.amr.frs.label.connection":"연결","settings.amr.frs.label.state":"상태","settings.amr.frs.status.connected":"연결됨","settings.amr.frs.status.disconnected":"연결 안 됨","settings.amr.frs.state.none":"없음","settings.amr.frs.state.connecting":"연결 중","settings.amr.frs.state.connected":"연결됨","settings.amr.frs.state.disconnecting":"연결 해제 중","settings.amr.frs.state.reconnecting":"재연결 중","settings.amr.frs.state.error":"오류","settings.amr.frs.state.closed":"닫힘","program.dialog.close_confirm.title":"저장되지 않은 변경사항","program.dialog.close_confirm.content":"저장되지 않은 변경사항이 있습니다. 저장하지 않고 닫으시겠습니까?","program.dialog.close_confirm.yes":"저장하지 않고 닫기","program.dialog.close_confirm.no":"취소","program.options.syncOff":"동기화 끄기","program.options.syncOn":"동기화 켜기","program.field.syncroMode":"동기화 모드","ik.disconnected.title":"로봇 연결 끊김","ik.disconnected.content":"로봇과의 연결이 끊어졌습니다.","login.modal.title.unauthorized":"권한 없음","login.modal.desc.unauthorized":"현재 권한으로는 해당 요청을 처리할 수 없습니다.","move.ghostRobot.title":"고스트 로봇","move.ghostRobot.section.gizmoType":"조작 모드","move.ghostRobot.gizmoType.translate":"이동","move.ghostRobot.gizmoType.rotate":"회전","move.ghostRobot.gizmoType.joint":"조인트","move.ghostRobot.section.axisLimit":"축 선택","move.ghostRobot.section.handleSize":"핸들 크기","move.ghostRobot.section.poseControl":"자세 제어","move.ghostRobot.button.undo":"실행 취소","move.ghostRobot.button.redo":"다시 실행","move.ghostRobot.button.reset":"리셋","move.ghostRobot.section.gizmoSpace":"좌표계","move.ghostRobot.gizmoSpace.world":"글로벌","move.ghostRobot.gizmoSpace.local":"로컬","move.amr.rightPanel.menu.debug":"디버그","move.amr.rightPanel.pdu.safetyIo.pending":"적용 중","move.amr.rightPanel.pdu.safetyIo.read":"조회","move.amr.rightPanel.pdu.safetyIo.outputControl":"출력 제어","move.amr.rightPanel.pdu.safetyIo.apply":"적용","program.changeProgram.title":"변경할 프로그램 선택","program.changeProgram.desc":"프로그램 실행 중간에 변경할 프로그램을 선택하세요.","program.subtask.title":"하위 작업 호출 방식 선택","program.subtask.desc":"하위 작업은 이벤트 스레드에서 실행되지 않습니다.","program.subtask.items.call_sub":"하위 작업 호출","program.subtask.items.copy_sub":"작업 내용 복사","program.subtask.items.switch_sub":"작업 전환 방식으로 호출","program.button.prev":"이전","program.button.next":"다음","program.subtask.select_task":"루틴 선택","program.subtask.select_program":"프로그램 선택","program.subTaskModal.title":"서브 태스크 이름: {{name}}","program.subTaskModal.desc":"현재 실행중인 서브 태스크의 진행 상황을 보여드립니다.","program.field.label.connectionPort":"연결 포트","program.field.label.deviceId":"디바이스 ID","program.field.label.functionList":"기능 목록","program.field.label.gripperType":"그리퍼 타입","program.field.label.initialize":"초기화","program.field.label.motorType":"모터 타입","program.field.label.controlMode":"제어 모드","program.gripper.option.currBasePos":"전류 기반 위치","program.section.title.setGoalCurrent":"목표 전류 설정","program.section.title.setGoalPos":"목표 위치 설정","program.section.title.setGoalPosSpdForce":"목표 위치/속도/힘 설정","program.section.title.setGoalPosForce":"목표 위치/힘 설정","program.section.title.action":"구동","program.gripper.option.functionCall":"명령 호출","program.gripper.option.reset":"리셋","program.gripper.option.suction":"흡입 (Suction)","program.gripper.option.release":"배출 (Release)","program.gripper.option.hold":"홀드 (Hold)","program.gripper.option.laserOn":"레이저 켜기","program.gripper.option.laserOff":"레이저 끄기","program.gripper.option.setZeroPos":"영점 자세로 설정","program.gripper.option.facotryReset":"공장 초기화","program.field.label.targetCurrent":"목표 전류","program.field.label.targetPosition":"목표 위치","program.field.label.targetSpeed":"목표 속도","program.field.label.targetForce":"목표 힘","program.field.label.targetWidth":"목표 너비","program.field.label.initializeType":"초기화 타입","program.gripper.option.simpleInit":"심플 초기화","program.gripper.option.fullInit":"전체 초기화","program.gripper.option.inward":"안쪽","program.gripper.option.outward":"바깥쪽","program.field.label.fingerOrient":"핑거 방향","program.field.label.fingerLength":"핑거 길이","program.field.label.fingerTipWidth":"핑거 팁 너비","program.gripper.option.extGrip":"외부 그립","program.gripper.option.interGrip":"내부 그립","program.gripper.option.stop":"정지","program.gripper.option.grip":"그립","program.gripper.option.move":"이동","program.field.label.gripDirection":"그립 방향","program.field.label.moveType":"구동 타입","program.field.label.fingerPosition":"핑거 위치","program.field.label.fingerDiameter":"핑거 직경","program.field.label.gripType":"그립 유형","program.field.label.powerConsumption":"전력 소비율","program.field.label.chFunction":"채널 {{msg}} 함수","program.field.label.chPressure":"채널 {{msg}} 압력","program.field.label.cmdMode":"명령어 모드","program.field.label.magneticStrength":"자력 세기","program.gripper.option.none":"사용 안함","program.field.label.siliconModel":"실리콘 모델","program.field.label.gripMode":"그립 모드","program.gripper.option.use":"사용","program.gripper.option.notUse":"사용하지 않음","program.gripper.option.active":"활성","program.gripper.option.ignore":"무시","program.field.label.channel":"채널","program.field.label.pressure":"압력","program.field.label.timeOutput":"시간 출력","program.field.label.rpmDeviLevel":"RPM 편차 레벨","program.field.label.vibLimitLevel":"진동 제한 레벨","program.gripper.option.motorStop":"모터 정지","program.gripper.option.motorStart":"모터 기동","program.gripper.option.ledOff":"LED 끄기","program.gripper.option.ledOn":"LED 켜기","program.field.label.targetRPM":"목표 RPM","program.field.label.productModel":"제품 모델","program.section.title.setParam":"파라미터 설정","program.field.label.force":"힘","program.section.title.gotoTarget":"타겟으로 이동","maintenance.field.label.boardNumber":"보드 번호","maintenance.title.jointInfo":"조인트 정보","maintenance.title.jointDqAxis":"조인트 DQ축 엔코더","maintenance.title.encoderZero":"엔코더 영점","maintenance.title.sensorReset":"센서 리셋","maintenance.title.brakeControl":"브레이크 제어","maintenance.field.label.brakeOption":"브레이크 옵션","maintenance.title.currentControl":"전류 제어","maintenance.title.positionControl":"위치 제어","maintenance.title.robotArmPowerCtrl":"로봇 팔 전원 제어","maintenance.button.powerOff":"전원 끄기","maintenance.button.powerOn":"전원 켜기","maintenance.title.robotArmInfo":"로봇 팔 정보","maintenance.button.jointsInfo":"전체 조인트 정보","maintenance.title.emcHandGuiding":"비상 직접 교시","maintenance.button.startFunction":"기능 시작","maintenance.title.boardIdChange":"보드 ID 변경","maintenance.field.label.chNumber":"채널 번호","maintenance.field.label.targetNumber":"타겟 번호","maintenance.title.canMsgCheck":"CAN 메시지 확인","maintenance.field.label.msgOption":"메시지 옵션","maintenance.button.check":"확인","maintenance.options.controlBox":"제어박스","maintenance.options.cbRobot":"제어박스 + 로봇","maintenance.title.shortCircuitCheck":"DC 전원 버스 단락 확인","maintenance.title.forceBleederOn":"블리더 강제 켜기","maintenance.field.label.time":"동작 시간","maintenance.button.execute":"실행","maintenance.title.update":"SW 업데이트","maintenance.sub-title.update":"각 SW의 빌드 파일을 업로드하면 파일명에서 버전을 추출합니다. 같은 SW의 여러 대는 한 번에 업데이트되며, 동작 중인 장비는 자동으로 제외됩니다.","maintenance.update.manipulate.description":"협동로봇 제어를 담당하는 소프트웨어","maintenance.update.amr.description":"AMR 제어 소프트웨어 (SLAMNAV2)","maintenance.update.rby1.description":"RBY1 제어 소프트웨어","maintenance.update.vision.description":"비전 소프트웨어","maintenance.update.muscat.description":"Rainbow Robotics 로봇 미들웨어 플랫폼","maintenance.update.web-ui.description":"Muscat 웹 사용자 인터페이스","program.interface.mechmind.recipe_id":"Recipe ID","program.button.vision":"비전","move.panel.zoomOperation":"확대/축소","move.panel.cameraView":"카메라 뷰","move.panel.trajectory":"궤적 그리기","move.panel.drag":"로봇 드래그","move.panel.cameraViewOption.front":"정면 뷰","move.panel.cameraViewOption.left":"좌측 뷰","move.panel.cameraViewOption.right":"우측 뷰","move.panel.cameraViewOption.bottom":"하단 뷰","move.panel.cameraViewOption.top":"상단 뷰","move.panel.cameraViewOption.back":"후면 뷰","move.panel.cameraViewOption.reverse":"반전(상하 반전) 뷰","login.toast.msg.error.approve":"승인 요청 처리 중 오류가 발생했습니다.","login.toast.msg.error.deny":"거절 요청 처리 중 오류가 발생했습니다.","login.toast.title.error":"로그인 요청 오류","login.toast.title.fail":"로그인 요청 처리 실패","login.toast.msg.fail.already_processed":"이미 처리된 요청입니다.","move.ghostRobot.gizmoType.surface":"표면","move.ghostRobot.surface.filter.free":"자유","move.ghostRobot.surface.filter.plane":"평면","move.ghostRobot.surface.filter.cylinder":"원통","move.ghostRobot.surface.showRings":"구멍 표시","plugin.button.install":"설치","plugin.button.uninstall":"제거","plugin.button.enable":"활성화","plugin.button.disable":"비활성화","plugin.button.update":"업데이트","plugin.toast.title.installed":"플러그인 설치","plugin.toast.title.uninstalled":"플러그인 삭제","plugin.toast.content.installed":"{{name}}' 을(를) 설치 하였습니다","plugin.toast.content.uninstalled":"{{name}}' 을(를) 삭제 하였습니다","plugin.button.pluginList":"플러그인 목록","plugin.tab.detailInfo":"세부정보","plugin.tab.logs":"로그","plugin.log.find.placeholder":"로그 검색","plugin.log.find.noResults":"결과 없음","plugin.log.find.invalidRegex":"잘못된 정규식","plugin.log.find.matchCase":"대/소문자 구분","plugin.log.find.wholeWord":"단어 단위","plugin.log.find.regex":"정규식 사용","plugin.log.find.prev":"이전 결과","plugin.log.find.next":"다음 결과","plugin.log.placeholder.range":"기간 선택","plugin.log.status.live":"실시간","plugin.log.status.paused":"일시정지","plugin.log.status.range":"조회 구간","plugin.log.status.lastReceived":"마지막 수신 {{time}}","plugin.log.status.lines":"{{count}}줄","plugin.log.newLines":"새 로그 {{count}}줄","plugin.log.button.pause":"일시정지","plugin.log.button.resume":"재개","plugin.log.button.backToLive":"실시간","plugin.log.button.retry":"다시 시도","plugin.log.button.download":"TXT 다운로드","plugin.log.noData":"로그가 없습니다.","plugin.log.error":"로그를 불러오지 못했습니다.","plugin.detail.label.identifier":"식별자","plugin.detail.label.lastUpdated":"마지막으로 업데이트한 날짜","plugin.detail.title.moreInfo":"더 많은 정보","plugin.detail.label.published":"등록일","plugin.detail.label.lastReleased":"마지막 릴리스일","plugin.detail.label.author":"제작자","plugin.preview.noCommands":"플러그인으로 원하는 커맨드를 추가해보세요.","program.treeItem.replaceDetail.title":"상세 보기 교체","program.treeItem.replaceDetail.toCommandList":"명령어 목록 리스트로 진입하시겠습니까?","program.treeItem.replaceDetail.toOtherItem":"{{fromName}} 상세 보기를 닫고 {{toName}} 상세 보기를 진입하시겠습니까?","program.treeItem.replaceDetail.unsavedNotice":"현재 변경사항은 저장되지 않을 수 있습니다.","settings.amr.docking.chargeType.contactDesc":"접촉 충전","settings.amr.docking.chargeType.wirelessDesc":"무선 충전","program.work.toast.copyNotAllowed.title":"복사/잘라내기 불가","program.work.toast.copyNotAllowed.content":"동일한 작업 내의 명령만 복사/잘라내기 할 수 있습니다.","program.work.toast.commandNotFound":"추가할 명령을 찾을 수 없습니다.","program.work.toast.postProgramOnlyOne":"PostProgram 명령은 하나만 추가할 수 있습니다.","program.work.toast.preProgramOnlyOne":"PreProgram 명령은 하나만 추가할 수 있습니다.","program.work.toast.fixedCommandCopyNotAllowed":"PreProgram, PostProgram 명령은 복사/잘라내기 할 수 없습니다.","program.work.toast.notAllowedInParent":"{{parentName}} 안에 {{childName}}을(를) 추가할 수 없습니다.","program.work.toast.postProgramMainTaskOnly":"PostProgram 명령은 메인 작업에만 추가할 수 있습니다.","program.work.toast.preProgramMainTaskOnly":"PreProgram 명령은 메인 작업에만 추가할 수 있습니다.","program.work.toast.allowedParentsOnly":"{{name}}은(는) {{parents}} 안에만 추가할 수 있습니다.","program.work.toast.strictParentRestricted":"상위 명령 제한으로 인해 {{name}}을(를) 추가할 수 없습니다.","program.work.toast.subtreePasteThreadOnly":"서브트리로 붙여넣기하려면 쓰레드 명령을 선택해서 복사해야 합니다.","program.work.toast.threadMaxLimit":"쓰레드는 최대 {{count}}개까지만 추가가 가능합니다.","program.work.toast.pasteDifferentTask":"복사한 명령의 작업이 붙여넣을 작업과 다릅니다.","program.work.toast.subtreeMoveSameMainTaskOnly":"서브트리 이동은 동일한 메인 작업 내에서만 가능합니다.","program.work.toast.parentDisabled":"상위 명령이 비활성화되어 있습니다. 먼저 상위 명령을 활성화한 후 다시 시도해주세요.","program.work.toast.groupFirstItemDisabled":"{{name}}'가 비활성화되어 있습니다. 먼저 '{{name}}'를 활성화한 후 다시 시도해주세요.","program.work.toast.copyThreadOnly":"복사한 명령 중에 쓰레드 명령이 아닌 명령이 있습니다.","program.work.toast.copyRequireParent":"복사한 명령 중에 상위 명령이 필수인 명령이 있습니다.","program.work.toast.pasteNotAllowedInParent":"{{parentMethod}} 명령 안에 현재 복사한 내용을 붙여넣을 수 없습니다.","program.work.toast.pasteAllowedParentsOnly":"{{name}} 명령은 {{parents}} 명령 안에만 붙여넣기가 가능합니다.","header.confirm.goToDashboard.title":"로봇 연결 화면으로 이동","header.confirm.goToDashboard.content":"로봇 연결 화면으로 이동하면 현재 화면에서 나가게 됩니다. 이동하시겠습니까?","plugin.tab.registryList":"플러그인 리스트","plugin.tab.installedList":"설치된 리스트","plugin.button.upload":"플러그인 업로드","plugin.desc.noDataMsg":"플러그인을 찾을 수 없습니다.","plugin.search.placeholder":"플러그인 검색 (이름, 설명, 제작자)","message.arrived.info":"[{{swName}}] 알림 메시지가 도착했습니다.","message.arrived.warning":"[{{swName}}] 경고 메시지가 도착했습니다.","message.arrived.error":"[{{swName}}] 오류 메시지가 도착했습니다.","message.arrived.user":"[{{swName}}] 사용자 메시지가 도착했습니다.","message.arrived.debug":"[{{swName}}] 디버그 메시지가 도착했습니다.","message.arrived.general":"[{{swName}}] 일반 메시지가 도착했습니다.","dashboard.status.inDevelopment":"개발중입니다..","program.delete.confirm.title":"프로그램 삭제","program.delete.confirm.content":"{{programName}} 프로그램을 삭제하시겠습니까?","program.delete.toast.successTitle":"프로그램 삭제 성공","program.delete.toast.successContent":"프로그램을 삭제하였습니다.","program.deleted.alert.title":"삭제된 프로그램","program.deleted.alert.content":"삭제된 프로그램입니다.","program.select.notAllowed.title":"선택 불가","program.select.notAllowed.differentParent":"상위 명령이 이미 선택된 명령과 다릅니다.","program.select.notAllowed.selectFirstGroupItem":"그룹 내 첫 번째 명령을 선택해주세요.","program.select.notAllowed.preStep":"Pre Program에 포함된 명령은 Jump 대상으로 선택할 수 없습니다.","program.select.notAllowed.onlyPreStep":"Pre Program 내부 명령은 Pre Program 내부 명령으로만 Jump할 수 있습니다.","program.delete.toast.failTitle":"프로그램 삭제 실패","program.delete.toast.failContent":"프로그램 삭제에 실패하였습니다.","program.load.confirm.content":"{{programName}} 프로그램을 불러오시겠습니까?","program.load.confirm.unsavedNotice":"이전 변경사항은 저장되지 않습니다.","program.load.toast.failTitle":"불러오기 실패","program.load.toast.failContent":"잠시 후 다시 시도해주세요.","program.controller.confirm.changedTitle":"프로그램 변경 확인","program.controller.confirm.changedContent":"현재 프로그램에 변경 사항이 있습니다.\\n저장 후 실행하시겠습니까?","program.controller.reset.title":"프로그램 Reset 확인","program.controller.reset.line1":"프로그램을 Reset 하시겠습니까?","program.controller.reset.line2":"프로그램이 멈추지 않거나 비정상 작동일때 Reset 기능을 사용하면 프로그램 시스템을 초기화 할 수 있습니다.","program.save.toast.successTitle":"프로그램 저장 완료","program.save.toast.successContent":"프로그램이 저장되었습니다.","program.save.confirm.content":"현재 저장한 프로그램을 진행중인 프로그램으로 지정하시겠습니까?","program.save.toast.failTitle":"프로그램 저장 실패","program.save.toast.failContent":"프로그램 저장에 실패하였습니다.","program.modal.title.save":"프로그램 저장","program.modal.desc.save":"프로그램명을 입력하여 변경 사항을 저장하세요.","program.modal.title.create":"새 프로그램 생성","program.modal.desc.create":"빈 프로젝트로 시작하거나 템플릿을 선택하여 새로운 로봇 프로그램을 생성하세요.","program.modal.button.create":"생성","program.modal.label.projectType":"프로그램 타입","program.modal.label.emptyProject":"빈 프로그램","program.modal.desc.emptyProject":"아무것도 없는 빈 프로그램으로 시작합니다.","program.modal.label.importProgram":"프로그램 가져오기","program.modal.desc.importProgram":"업로드한 다른 프로그램 내용을 가져와서 생성합니다.","program.modal.label.uploadProgram":"프로그램 업로드","program.modal.import.placeholder":"클릭하거나 .zip 파일을 끌어다 놓아 업로드하세요","program.modal.upload.invalidFormat":".zip 파일만 업로드할 수 있습니다.","program.monitor.dialog.addVariable.title":"모니터링 변수 추가","program.monitor.dialog.addVariable.content":"모니터링할 변수 이름을 입력해주세요.","program.monitor.button.addVariable":"모니터링 변수 추가","program.dimOverlay.line1":"다른 프로그램이 실행 중 입니다.","program.dimOverlay.line2":"실행중인 프로그램으로 이동하시겠습니까?","program.dimOverlay.notice":"(현재 작성 중인 프로그램이 있다면 저장되지 않습니다.)","program.dimOverlay.button.move":"이동","program.dimOverlay.toast.invalidTask":"존재하지 않는 Task 정보입니다.\\n테스트 중이거나 프로그램 외부에서 실행된 Task일 수 있습니다.","program.beginJoint.modal.title":"로봇 시작 위치 설정","program.beginJoint.modal.description":"먼저 로봇의 관절 위치를 시작 위치로 이동해주세요.","program.beginJoint.confirm.title":"로봇 시작 위치 설정 완료","program.beginJoint.confirm.line1":"로봇의 시작 위치가 설정되었습니다.","program.beginJoint.confirm.line2":"이어서 바로 프로그램을 실행하시겠습니까?","program.beginJoint.confirm.run":"실행","program.beginJoint.button.moveJoint":"시작점 이동","program.ph.select_task":"태스크를 선택해주세요.","login.modal.title.sessionExpired":"세션이 만료되었습니다","login.modal.desc.sessionExpired":"토큰 정보가 만료되었습니다. 로그인 페이지로 이동합니다.","login.modal.button.sessionExpiredConfirm":"확인","common.button.confirm":"확인","common.button.cancel":"취소","move.preview.descriptionLine1":"이곳은 시뮬레이터 영역 입니다.","move.preview.descriptionLine2":"오른쪽에 보이는 패널에 플러그인으로 원하는 메뉴와 컨텐츠를 추가하실 수 있습니다.","move.preview.connectionGuideBefore":"로봇과 연결을 통해 실제 연동 테스트를 진행하시려면","move.preview.connectionGuideAfter":"명령을 진행하실때 로봇 IP와 SDK Token 값을 입력해주세요.","common.unit.seconds":"초","move.trajectory.description":"입력하신 시간(초)동안 궤적이 유지된 후 줄어듭니다.","program.gcode.modal.title":"G-Code 기능 목록","program.gcode.modal.code":"코드","program.gcode.modal.function":"기능","program.gcode.modal.rapidMove":"급속 이동","program.gcode.modal.linearMove":"직선 이동 (지정 속도)","program.gcode.modal.clockwise":"원호 이동 (시계 방향)","program.gcode.modal.counterclockwise":"원호 이동 (반시계 방향)","program.gcode.modal.dwell":"일시정지 (Dwell)","program.gcode.modal.planeXY":"평면 선택 - XY","program.gcode.modal.planeZX":"평면 선택 - ZX","program.gcode.modal.planeYZ":"평면 선택 - YZ","program.gcode.modal.unitInch":"단위 - 인치","program.gcode.modal.unitMillimeter":"단위 - mm (기본)","program.gcode.modal.returnToHomePos":"홈 위치 복귀","program.gcode.modal.absCoordMode":"절대좌표 모드","program.gcode.modal.relCoordMode":"상대좌표 모드","program.gcode.modal.setCurrentCoord":"현재 위치 좌표계 설정","program.gcode.modal.doutOnSync":"디지털 출력 ON (모션 동기화)","program.gcode.modal.doutOffSync":"디지털 출력 OFF (모션 동기화)","program.gcode.modal.doutOnImmediate":"디지털 출력 ON (즉시 실행)","program.gcode.modal.doutOffImmediate":"디지털 출력 OFF (즉시 실행)","notfound.desc":"페이지를 찾을 수 없습니다.","notfound.button.home":"홈으로 이동","alarm.banner.button.hide":"접기","alarm.banner.button.show":"펼치기","alarm.banner.msg.noNotifications":"알림이 없습니다","alarm.banner.title.importantNotification":"중요 알림","alarm.banner.toast.readFailContent":"알림을 읽음 처리하지 못했습니다. 다시 시도해주세요.","alarm.banner.toast.readFailTitle":"알림 확인 처리 실패","alarm.banner.toast.resolvePending":"계속하려면 대기 중인 작업을 처리해주세요.","dashboard.detail.robotNotConnected":"로봇이 연결되지 않았습니다.","move.amr.panel.virtualJoysticks":"가상 조이스틱","move.rby1.accordion.detailControl":"세부 제어","move.rby1.button.batchJointMove":"관절 일괄 이동","move.rby1.button.batchMove":"일괄 이동","move.rby1.button.moveZeroPose":"원점 자세 이동","move.rby1.field.jogStepDeg":"조그 스텝 (deg)","move.rby1.field.minimumTimeSec":"최소 시간 (sec)","move.rby1.modal.batchMoveJoints.title":"관절 일괄 이동","move.tool.modal.title":"TCP 툴 목록 선택","move.userFrame.modal.title":"유저 좌표계 선택","plugin.options.ariaLabel.more":"더보기","plugin.options.ariaLabel.pin":"고정","plugin.options.ariaLabel.unpin":"고정 해제","plugin.popover.ariaLabel.close":"닫기","plugin.options.button.detailInfo":"상세 정보","plugin.options.button.viewLogs":"로그 보기","plugin.options.button.uninstall":"제거","plugin.popover.button.manageInstalled":"설치된 플러그인 관리","plugin.popover.installedList.desc":"사용자가 설치한 플러그인 목록입니다.","plugin.popover.installedList.empty":"설치된 플러그인이 없습니다","plugin.popover.installedList.emptyDesc":"플러그인을 설치하면 이곳에서 상태를 확인하고 자주 쓰는 플러그인을 고정할 수 있습니다.","program.amrStream.field.frequency":"주파수 (Hz)","program.amrStream.field.target":"전송 대상","program.commandList.msg.notFound":"커맨드를 찾을 수 없습니다","program.pointPreview.title":"동작 미리보기","program.toast.title.programError":"프로그램 오류","settings.devices.menu.externalAxis":"부가 축","settings.devices.menu.softwarePlc":"소프트웨어 PLC","settings.general.afterAction.card.actionTypeLabel":"동작 종류","settings.io.label.extDinput":"Ext 디지털 입력","settings.io.label.extDinputPort":"Ext 디지털 입력 포트","settings.io.label.extDoutput":"Ext 디지털 출력","settings.io.label.extDoutputPort":"Ext 디지털 출력 포트","settings.io.label.toolDinput":"Tool 디지털 입력","settings.io.label.toolDinputPort":"Tool 디지털 입력 포트","settings.io.label.toolDoutput":"Tool 디지털 출력","settings.io.label.toolDoutputPort":"Tool 디지털 출력 포트","plugin.detail.label.version":"버전","plugin.detail.label.size":"용량","plugin.detail.title.installation":"설치 세부내역","program.modal.error.duplicateName":"이미 존재하는 프로그램 이름입니다.","program.monitor.dialog.addVariable.label":"변수명","program.desc.loadOrAddNew":"프로그램을 불러오거나 새로 추가해주세요.","program.button.loadProgram":"프로그램 불러오기","program.button.newProgram":"새 프로그램","program.desc.noRobotComponentsFound":"로봇 구성 요소를 찾을 수 없습니다.","settings.io.label.dinput":"디지털 입력","settings.io.label.dinputPort":"디지털 입력 포트","settings.io.label.doutput":"디지털 출력","settings.io.label.doutputPort":"디지털 출력 포트","settings.io.label.delay":"신호 지연 적용값","settings.io.label.count":"횟수","settings.io.label.direction":"방향","settings.devices.label.type":"타입","maintenance.safety.desc.noData":"안전 데이터가 없습니다","maintenance.safety.desc.search":"검색어를 입력해주세요.","settings.joint.menu.bigInputError":"Big Error & Input Error","settings.joint.label.bigErrorPulse":"Big Error Pulse","settings.joint.label.inputErrorPulse":"Input Error Pulse","settings.joint.label.gain":"게인","maintenance.update.modal.title.confirmVersion":"업로드 버전 확인","maintenance.update.modal.content.confirmVersion":"[{{category}}]의 SW 업데이트 버전이 아래와 같습니까?","maintenance.update.modal.content.confirmVersionSub":"다르다면 원하시는 버전으로 수정해주세요.","maintenance.update.toast.title.unavailable":"업데이트 불가","maintenance.update.toast.title.complete":"업데이트 완료","maintenance.update.toast.content.updateSuccess":"{{names}} 업데이트에 성공했습니다. 적용까지 1~3분 가량 소요될 수 있습니다.","maintenance.update.dialog.title.result":"업데이트 결과","maintenance.update.dialog.label.succeeded":"성공: {{names}}","maintenance.update.dialog.label.failed":"실패: {{names}}","maintenance.update.label.unitCount":"{{count}}대","maintenance.update.label.autoUpdate":"자동 업데이트","maintenance.update.button.execute":"업데이트","maintenance.update.button.uploading":"업로드 중... {{progress}}%","maintenance.update.button.uploadBuildFile":"빌드 파일 업로드","maintenance.update.label.available":"업데이트 가능","maintenance.update.label.unavailable":"업데이트 불가","program.monitor.dialog.placeholder.search":"모니터링할 변수 입력","program.box.photoneo":"Photoneo 3D 인터페이스","program.box.initialize_configuration":"초기화 설정","program.box.scan_configuration":"스캔 설정","program.box.get_object_pose_configuration":"오브젝트 포즈 조회 설정","program.box.get_trajectory_configuration":"궤적 조회 설정","program.box.solution_change_configuration":"솔루션 변경 설정","program.box.solution_start_configuration":"솔루션 시작 설정","program.box.solution_stop_configuration":"솔루션 정지 설정","program.box.solution_ask_configuration":"솔루션 조회 설정","program.interface.photoneo.vision_system_id":"Vision System ID","program.interface.photoneo.start_joint":"시작 조인트","program.interface.photoneo.end_joint":"종료 조인트","program.interface.photoneo.point_variable_name":"포인트 변수 이름","program.interface.photoneo.solution_id":"Solution ID","program.interface.photoneo.current_solution_id":"현재 Solution ID","program.interface.photoneo.position":"설치 위치","program.interface.photoneo.trajectory_start_to_approach":"시작 → 접근","program.interface.photoneo.trajectory_approach_to_grasp":"접근 → 집기","program.interface.photoneo.trajectory_grasp_to_deapproach":"집기 → 이탈","program.interface.photoneo.trajectory_deapproach_to_end":"이탈 → 완료","program.options.photoneo_function.create_connection":"연결 생성","program.options.photoneo_function.initialize":"초기화","program.options.photoneo_function.scan":"스캔","program.options.photoneo_function.get_object_pose":"오브젝트 위치 조회","program.options.photoneo_function.get_trajectory":"궤적 조회","program.options.photoneo_function.solution_change":"솔루션 변경","program.options.photoneo_function.solution_start":"솔루션 시작","program.options.photoneo_function.solution_stop":"솔루션 정지","program.options.photoneo_function.solution_ask":"솔루션 조회","program.box.move_trajectory_configuration":"궤적 이동 설정","program.interface.photoneo.trajectory_name":"궤적 이름","program.options.photoneo_function.move_trajectory":"궤적 이동","move.ghostRobot.desc":"로봇을 드래그하거나 표면을 클릭하여 목표 자세를 설정합니다.","program.box.trajectory_variables":"궤적 구간 변수","program.weaving.modal.title":"위빙 파라미터","program.weaving.modal.trapOddTime":"직선 왕복 이동 시간","program.weaving.modal.trapEvenTime":"우측 끝/중앙/좌측 끝 정지 시간","program.weaving.modal.trapMag1":"+측 (우측) 최대 진폭","program.weaving.modal.trapMag2":"-측 (좌측) 최대 진폭","program.weaving.modal.sineOddTime":"S자형 완만 이동 시간","program.weaving.modal.sineMag1":"+측 진폭","program.weaving.modal.sineMag2":"-측 진폭","program.weaving.modal.polyOddTime":"가감속까지 매끄러운 (5차) 이동 시간","program.weaving.modal.ellipseOddTime":"타원 궤적 진행 (위상 이동) 시간","program.weaving.modal.ellipseEvenTime":"궤적상 정점 정지 시간","program.weaving.modal.ellipseMag1":"Y축 (위빙 방향) 반지름","program.weaving.modal.ellipseMag2":"X축 (깊이 방향) 반지름","program.weaving.modal.8ShapeOddTime":"8자 루프 진행 시간","program.weaving.modal.8ShapeEvenTime":"루프 교차점 부근 정지 시간","program.weaving.modal.8ShapeMag1":"Y폭","program.weaving.modal.8ShapeMag2":"X폭","program.weaving.modal.lissaOddTime":"리사쥬 궤적 진행 시간","program.weaving.modal.lissaEvenTime":"궤적상 정지 시간","program.weaving.modal.lissaPhase":"Y, X축 진동수 배수","program.weaving.modal.cShapeOddTime":"호 (Arc)를 따라 이동하는 시간","program.weaving.modal.cShapeEvenTime":"호의 양 끝/중앙 정지 시간","program.weaving.modal.cShapeMag1":"호의 세로 폭 (곡률 결정)","program.weaving.modal.cShapeMag2":"호의 반지름","program.weaving.modal.diagOddTime":"대각선 이동 시간","program.weaving.modal.diagEvenTime":"대각선 양 끝/중앙 정지 시간","program.weaving.modal.diagMag1":"Y축 이동거리","program.weaving.modal.diagMag2":"X축 이동거리","program.weaving.tooltip.scaleRate":"Magnitude 1/2에 곱해지는 전체 배율입니다.","program.weaving.tooltip.torchDirection":"패턴 전체를 토치(깊이) 방향으로 평행이동한 값 입니다.","program.weaving.tooltip.weavingDirection":"패턴 전체를 좌우(위빙) 방향으로 평행이동한 값 입니다.","program.weaving.tooltip.swingAngle":"위빙 위치에 비례한 토치 자세 스윙 각입니다.","program.weaving.tooltip.distortionAngle":"위빙 평면을 Z축 기준으로 비트는 각도입니다.","move.ghostRobot.surface.filter.requiresCad":"평면·원통은 STL·STP·STEP 파일에서만 사용할 수 있습니다.","move.ghostRobot.surface.unreachable":"도달할 수 없는 위치입니다.","move.ghostRobot.section.moreOptions":"추가 옵션","move.ghostRobot.section.gizmoOffset":"기즈모 오프셋","move.ghostRobot.button.useToolOffset":"툴 값 사용","program.interface.photoneo.ext_axis_notice":"부가축이 있는 경우, 부가축을 제외한 6축에 대한 값만 전달됩니다.","program.options.interface.photoneo":"Photoneo","program.box.pickit":"PICKIT 3D 인터페이스","program.options.interface.pickit":"PICKIT 3D","program.options.pickit_function.connect":"연결 생성","program.options.pickit_function.update_robot_pose":"로봇 자세 업데이트","program.options.pickit_function.check_mode":"모드 확인","program.options.pickit_function.shutdown_system":"시스템 종료","program.options.pickit_function.find_calib_plate":"캘리브레이션 플레이트 찾기","program.options.pickit_function.configure_calib":"캘리브레이션 설정","program.options.pickit_function.compute_calib":"캘리브레이션 계산","program.options.pickit_function.validate_calib":"캘리브레이션 검증","program.options.pickit_function.look_for_objects":"객체 탐색","program.options.pickit_function.look_for_objects_with_retries":"재시도 객체 탐색","program.options.pickit_function.next_object":"다음 객체","program.options.pickit_function.capture_image":"이미지 캡처","program.options.pickit_function.process_image":"이미지 처리","program.options.pickit_function.get_pick_point_data":"피킹 포인트 데이터 가져오기","program.options.pickit_function.configure":"셋업 및 제품 설정","program.options.pickit_function.set_cylinder_dim":"실린더 치수 설정","program.options.pickit_function.save_active_setup":"활성 셋업 저장","program.options.pickit_function.save_active_product":"활성 제품 저장","program.options.pickit_function.build_background":"배경 생성","program.options.pickit_function.save_snapshot":"스냅샷 저장","program.box.update_robot_pose_configuration":"로봇 자세 업데이트 설정","program.box.check_mode_configuration":"모드 확인 설정","program.box.shutdown_system_configuration":"시스템 종료 설정","program.box.find_calib_plate_configuration":"캘리브레이션 플레이트 찾기 설정","program.box.configure_calib_configuration":"캘리브레이션 설정 구성","program.box.compute_calib_configuration":"캘리브레이션 계산 설정","program.box.validate_calib_configuration":"캘리브레이션 검증 설정","program.box.look_for_objects_configuration":"객체 탐색 설정","program.box.look_for_objects_with_retries_configuration":"재시도 객체 탐색 설정","program.box.next_object_configuration":"다음 객체 설정","program.box.capture_image_configuration":"이미지 캡처 설정","program.box.process_image_configuration":"이미지 처리 설정","program.box.get_pick_point_data_configuration":"피킹 포인트 데이터 설정","program.box.pickit_configure_configuration":"셋업 및 제품 설정","program.box.set_cylinder_dim_configuration":"실린더 치수 설정","program.box.save_active_setup_configuration":"활성 셋업 저장 설정","program.box.save_active_product_configuration":"활성 제품 저장 설정","program.box.build_background_configuration":"배경 생성 설정","program.box.save_snapshot_configuration":"스냅샷 저장 설정","program.interface.pickit.position":"설정 위치","program.interface.pickit.pickit_mode":"Pickit 모드","program.interface.pickit.calib_method":"캘리브레이션 방식","program.interface.pickit.calib_mount":"캘리브레이션 마운트","program.interface.pickit.pick_point_name":"피킹 포인트 변수","program.interface.pickit.remaining_count_name":"잔여 개수 변수","program.interface.pickit.model_id_or_type_name":"모델 ID/타입 변수","program.interface.pickit.retry_count":"재시도 횟수","program.interface.pickit.gripper_pose_name":"그리퍼 자세 변수","program.interface.pickit.reference_pick_point_id_name":"참조 피킹 포인트 ID 변수","program.interface.pickit.setup_id":"Setup ID","program.interface.pickit.product_id":"Product ID","program.interface.pickit.cylinder_length":"실린더 길이","program.interface.pickit.cylinder_diameter":"실린더 지름","program.options.pickit_calib_method.single_pose":"싱글 포즈","program.options.pickit_calib_method.multi_pose":"멀티 포즈","program.options.pickit_calib_method.manual":"매뉴얼","program.options.pickit_calib_method.default":"기본값","program.options.mechmind_function.create_connection":"연결 생성","program.options.mechmind_function.set_recipe":"레시피 설정","program.options.mechmind_function.trigger":"트리거","program.options.mechmind_function.trigger_and_read_pose":"트리거 & 자세 읽기","program.options.mechmind_function.read_pose":"자세 읽기","program.button.canBus":"캔 버스","program.options.canBus.connect":"연결","program.options.canBus.disconnect":"연결 해제","program.options.canBus.transmit":"전송","program.box.disconnect_configuration":"연결 해제 설정","program.box.transmit_configuration":"전송 설정","program.field.can_channel":"채널","program.field.can_bitrate":"비트레이트","program.field.can_fd":"캔 FD","program.field.can_data_bitrate":"데이터 비트레이트","program.field.can_receive_own_messages":"자체 송신 메시지 수신","program.field.can_interface":"인터페이스","program.field.can_arbitration_id":"중재 ID","program.field.can_data":"데이터","program.field.can_dlc":"DLC","program.field.can_extended_id":"확장 ID","program.field.can_remote_frame":"원격 프레임","program.field.can_bitrate_switch":"비트레이트 전환","program.field.can_error_frame":"오류 프레임","program.field.can_error_state_indicator":"오류 상태 표시기","program.field.can_timestamp":"타임스탬프","program.field.can_flags":"플래그","program.desc.can.add_data":"쉼표로 구분된 바이트 값(0~255)을 입력하세요.","program.validation.can.data.invalid_array_format":"데이터 배열 형식이 올바르지 않습니다.","program.validation.can.data.integer_only":"각 데이터 값은 쉼표로 구분된 정수여야 합니다.","program.validation.can.data.out_of_range":"각 데이터 값은 {{min}}에서 {{max}} 사이여야 합니다.","program.validation.variableNameRule":"변수 이름은 영문과 언더스코어(_)만 사용할 수 있습니다.","move.toast.performanceWarning.title":"성능 경고","move.toast.performanceWarning.content":"화면 요소가 너무 많아 렌더링 지연이 발생하고 있습니다.","move.bottomBar.complexity.ok":"양호","move.bottomBar.complexity.warning":"보통","move.bottomBar.complexity.danger":"느림","move.bottomBar.complexity.triangles":"삼각형","move.bottomBar.complexity.framerate":"프레임레이트","move.bottomBar.complexity.label":"3D 복잡도","ik.blocked.unreachable.title":"더 이상 도달할 수 없습니다.","ik.blocked.unreachable.content":"팔이 최대로 뻗었습니다. 로봇 쪽으로 당겨보세요.","ik.blocked.unreachableRotate.title":"더 이상 회전할 수 없습니다.","ik.blocked.unreachableRotate.content":"이 자세에서는 목표 방향을 만들 수 없습니다. 위치를 조금 옮겨보세요.","ik.blocked.jointLimit.title":"관절이 한계에 닿았습니다.","ik.blocked.jointLimit.content":"강조된 관절이 한계에 걸렸습니다. 반대 방향으로 움직여보세요.","ik.blocked.singularity.title":"특이 자세입니다.","ik.blocked.singularity.content":"축이 일직선에 가까워 이 방향으로 갈 수 없습니다. 옆으로 움직여보세요.","ik.blocked.branch.title":"자세를 바꿔야 합니다.","ik.blocked.branch.content":"여기서 더 가려면 팔 자세가 크게 바뀌어야 합니다. 다른 경로로 접근해보세요.","ik.blocked.diverged.title":"해를 찾지 못했습니다.","ik.blocked.diverged.content":"계산이 수렴하지 않았습니다. 자세를 조금 바꾼 뒤 다시 시도해보세요.","ik.blocked.axisProximity.title":"베이스 축에 너무 가깝습니다.","ik.blocked.axisProximity.content":"이 지점은 로봇의 회전 중심축에 너무 가까워 닿을 수 없습니다. 로봇에서 조금 더 떨어진 위치로 옮겨보세요.","move.ghostRobot.section.detailedBlockReason":"동작 제한 상세 표시","ik.blocked.dev.candidates.some":"해석해=있음","ik.blocked.dev.candidates.none":"해석해=없음","ik.blocked.dev.clamped.true":"안전반경=초과(클램프)","ik.blocked.dev.clamped.false":"안전반경=정상","ik.blocked.dev.jointLimit":"{{name}}={{val}}° [한계: {{lower}}°, {{upper}}°]","ik.blocked.dev.conditioning":"특이점 조건수={{cond}} (기준: < 0.01)","ik.blocked.dev.jump":"자세도약={{jump}}° (기준: > 30.0°)","ik.blocked.dev.status":"수치상태={{status}}","ik.blocked.dev.path":"솔버경로={{path}}","ik.blocked.dev.path.analytic":"해석해","ik.blocked.dev.path.fallback":"하이브리드(fallback)","ik.blocked.dev.path.numeric":"수치해","settings.tool.flange.title.bootupTool":"부팅 시 사용할 툴 번호 선택","settings.tool.flange.field.label.toolNumber":"툴 번호","settings.tool.flange.title.bootupVoltage":"부팅 시 DC 전압","settings.tool.flange.field.label.dcVoltage":"DC 전압","settings.tool.flange.title.dtButton":"직접 교시 버튼","settings.tool.flange.field.label.workingMode":"동작 모드","settings.tool.flange.options.use":"사용","settings.tool.flange.options.notUse":"사용하지 않음","settings.tool.flange.title.vibrationSensor":"진동(IMU) 센서","move.menu.button.label.assetManager":"워크스페이스","move.modal.workspace.file.button.add":"추가","move.modal.workspace.file.button.cancelUpload":"업로드 취소","move.modal.workspace.file.confirmDelete.content":'"{{name}}"을(를) 정말 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.',"move.modal.workspace.file.confirmDelete.multiContent":"{{count}}개 항목을 정말 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.","move.modal.workspace.button.confirm":"확인","move.modal.workspace.button.deleteSelected":"{{count}}개 삭제","move.modal.workspace.button.select":"선택","move.modal.workspace.button.selectExit":"완료","move.modal.workspace.file.deleteTitle":"모델 삭제","move.modal.workspace.file.dropLabel":"파일을 끌어다 놓아 업로드","move.modal.workspace.file.empty.noAvailable":"3D 파일이 없습니다","move.modal.workspace.file.empty.noFound":"3D 파일을 찾을 수 없습니다","move.modal.workspace.footer.hint":"더블클릭하면 바로 불러옵니다.","move.modal.workspace.file.search.placeholder":"3D 파일 검색...","move.modal.workspace.file.title":"3D 파일 선택","move.modal.workspace.title":"워크스페이스 선택","move.workspace.tab.base":"베이스","move.workspace.title":"워크스페이스","move.workspace.button.continue":"계속","move.workspace.itemList.deleteLabel":"오브젝트 삭제","move.modal.workspace.card.itemCount":"도형 {{shapeCount}}개, 파일 {{fileCount}}개","move.workspace.itemList.empty":"도형이나 파일을 추가해주세요.","move.workspace.jsonSlot.empty":"워크스페이스를 선택하세요","move.workspace.shapeLimitReached":"도형은 최대 5개까지 추가할 수 있습니다.","move.workspace.toast.saveFailed":"워크스페이스 저장에 실패했습니다.","move.workspace.toast.saveSuccess":"워크스페이스를 저장했습니다.","move.workspace.toast.uploadFailed":"파일 업로드에 실패했습니다.","move.modal.workspace.file.preview.error":"미리보기를 불러올 수 없습니다","move.modal.workspace.file.preview.multiSelectUnsupported":"여러 개의 3D 파일을 선택한 경우에는 미리보기가 지원되지 않습니다.","move.modal.workspace.file.preview.selectPrompt":"3D 모델 파일을 선택하면 미리보기가 표시됩니다","move.modal.workspace.file.preview.triangles":"삼각형","move.modal.workspace.file.slotLoading":"로딩 중...","move.workspace.toast.renameFailed":"모델 이름 변경에 실패했습니다.","move.workspace.toast.renameInvalid":"올바른 이름을 입력해주세요.","move.workspace.toast.renameSuccess":"모델 이름이 변경되었습니다.","move.modal.workspace.file.upload.abort":"업로드가 취소되었습니다.","move.modal.workspace.file.upload.duplicateName":"같은 이름의 파일이 이미 존재합니다.","move.workspace.toast.invalidCharacters":"이름에 공백이나 # ? & % 문자를 사용할 수 없습니다.","move.modal.workspace.file.upload.invalidFormat":"지원하지 않는 파일 형식입니다. .stl, .obj, .stp, .step, .dae, .glb만 가능합니다.","move.modal.workspace.file.upload.maxFilesExceeded":"최대 {{count}}개까지 파일을 드래그하여 업로드할 수 있습니다.","move.modal.workspace.file.upload.createFailed":"모델 생성에 실패했습니다. 다시 시도해주세요.","move.modal.workspace.file.upload.tooLarge":"파일 크기가 최대 제한(50MB)을 초과합니다.","move.modal.workspace.file.upload.unknown":"네트워크 오류입니다. 연결을 확인하고 다시 시도해주세요","move.modal.workspace.button.delete":"삭제","move.workspace.properties.translate":"위치","move.workspace.properties.rotate":"회전","move.workspace.properties.scale":"크기","move.modal.workspace.search.placeholder":"워크스페이스 검색...","move.modal.workspace.empty.noAvailable":"워크스페이스가 없습니다","move.modal.workspace.empty.noFound":"워크스페이스를 찾을 수 없습니다","move.workspace.stepFormatWarning.title":".stp/.step 파일 로딩","move.workspace.stepFormatWarning.message":"STEP 형식(.stp, .step) 파일은 로딩 시간이 오래 걸릴 수 있습니다. 기다려주세요.","move.workspace.header.renameLabel":"워크스페이스 이름 변경","move.workspace.header.undo":"되돌리기","move.workspace.header.redo":"다시 실행","move.workspace.header.menu":"워크스페이스 메뉴","move.workspace.header.open":"불러오기","move.workspace.header.createNew":"새로 만들기","move.workspace.header.clearAll":"오브젝트 전체 삭제","move.workspace.header.reset":"마지막 저장 상태로 되돌리기","move.workspace.addMenu.trigger":"오브젝트 추가","move.workspace.addMenu.customFile":"불러온 파일","move.workspace.itemList.title":"오브젝트 리스트","move.workspace.confirm.clearAllTitle":"모든 오브젝트 삭제","move.workspace.confirm.clearAllContent":"워크스페이스의 모든 도형과 파일을 삭제하시겠습니까?","move.workspace.confirm.replaceFileTitle":"불러온 파일을 교체할까요?","move.workspace.confirm.replaceFileContent":"워크스페이스에는 불러온 파일을 1개만 둘 수 있어요. 기존 파일은 제거됩니다.","move.workspace.properties.groupLabel":"기즈모 모드","move.workspace.itemList.hideLabel":"씬에서 숨기기","move.workspace.itemList.showLabel":"씬에 다시 표시","move.workspace.toast.nameDuplicate":"이미 같은 이름의 워크스페이스가 있어요.","move.workspace.toast.saveFailedPartial":"{{count}}개 오브젝트 저장에 실패했습니다.","move.workspace.toast.loadTimeout":'"{{name}}" 불러오기가 너무 오래 걸려 중단했습니다.',"move.modal.workspace.toast.deletePartialFailure":"{{total}}개 오브젝트 중 {{failed}}개 삭제에 실패했습니다.","move.modal.workspace.confirmDelete.title":"워크스페이스 삭제","move.modal.workspace.confirmDelete.content":'"{{name}}" 워크스페이스를 정말 삭제하시겠습니까? 포함된 모든 오브젝트가 함께 삭제되며, 이 작업은 취소할 수 없습니다.',"move.workspace.tab.loadingLabel":"아직 로딩 중인 오브젝트가 있어요","move.workspace.itemList.saveFailedLabel":"저장 실패","move.workspace.itemList.loadFailedLabel":"파일을 불러오지 못했습니다","move.workspace.toast.loadedSyncFailed":"활성 상태 동기화에 실패했습니다.","move.workspace.tab.tool":"툴","move.workspace.tab.toolRight":"오른쪽 툴","move.workspace.tab.toolLeft":"왼쪽 툴","move.workspace.tab.toolIndexed":"툴 {{index}}","move.workspace.properties.title":"오브젝트 속성","move.workspace.properties.resetTransform":"초기화","move.modal.workspace.confirmDelete.multiContent":"{{count}}개 워크스페이스를 정말 삭제하시겠습니까? 포함된 모든 오브젝트가 함께 삭제되며, 이 작업은 취소할 수 없습니다.","move.workspace.dialog.createTitle":"새 워크스페이스 만들기","move.workspace.dialog.renameTitle":"워크스페이스 이름 변경","move.workspace.dialog.namePlaceholder":"워크스페이스 이름을 입력하세요","move.workspace.header.rename":"이름 변경","move.workspace.header.delete":"삭제","move.workspace.header.close":"닫기","move.workspace.dialog.saveAsTitle":"다른 이름으로 저장","program.section.title.variableConfig":"변수 설정","program.field.variableType":"변수 유형","program.field.variableSelection":"변수 선택","program.section.title.dialogSettings":"팝업 설정","program.field.askMessage":"질문 메시지","program.field.varNameToStore":"선택한 번호를 저장할 변수 이름","program.field.timeoutDuration":"선택 지연시간 (초)","program.field.fallbackNumber":"타임아웃이 발생했을 때 선택할 번호","program.section.title.comment":"선택지","program.list.box.maxCommentLimit":"선택지는 최대 {{count}}개까지만 추가가 가능합니다.","program.section.title.addComment":"선택지 추가","program.modal.title.changeUserVariable":"사용자 변수 값 변경","program.button.skip":"스킵","program.button.continueAfterReflection":"반영 후 계속","program.field.variable":"변수","program.field.applyValue":"적용할 값","program.modal.label.typingExample":"입력 예시","program.modal.desc.string":'큰따옴표로 감싸 문자 데이터를 저장하는 타입 (Ex: "Robot_Mode_1", "PASS")',"program.modal.desc.numeric":"정수와 실수를 포함하여 수치를 표현하는 타입 (Ex: 100, 3.14, -45.5)","program.modal.desc.boolean":"참(true) 또는 거짓(false) 논리 값 (Ex: true, false)","program.modal.desc.list":"순서가 있는 여러 값이나 좌표를 묶어놓은 값 (Ex: [0, -90, 90, -90, -90, 0, 0])","program.modal.desc.dictionary":'키와 값의 쌍으로 구조화된 데이터 값 (Ex: {"tool_name": "Gripper_A"})',"program.modal.desc.variable":"지역 또는 전역 변수를 참조해 할당하는 타입 (Ex: target_pose = RB_JOINT_REF)","program.field.description":"설명","program.field.owner":"출처","move.workspace.header.duplicate":"사본 만들기","move.workspace.header.saving":"저장 중...","move.workspace.header.saved":"저장됨","program.script.meta-info-view":"Meta 정보 표시","maintenance.menu.database":"데이터베이스","maintenance.database.desc":"데이터베이스 컬렉션과 디스크 데이터를 항목별로 초기화합니다. 초기화된 데이터는 복구할 수 없습니다.","maintenance.db.title.programReset":"프로그램 초기화","maintenance.db.desc.programReset":"저장된 프로그램, 태스크, 스텝, 변수를 모두 삭제합니다.","maintenance.db.button.programReset":"프로그램 초기화","maintenance.db.title.logReset":"로그 초기화","maintenance.db.desc.logReset":"상태 로그를 즉시 비웁니다. (보관 기간은 Log 메뉴에서 설정)","maintenance.db.button.logReset":"로그 초기화","maintenance.db.title.pluginReset":"플러그인 초기화","maintenance.db.desc.pluginReset":"설치된 플러그인과 플러그인 범위의 변수를 삭제합니다.","maintenance.db.button.pluginReset":"플러그인 초기화","maintenance.db.title.fileReset":"파일/모델 초기화","maintenance.db.desc.fileReset":"업로드된 파일과 등록된 모델을 삭제합니다.","maintenance.db.button.fileReset":"파일 초기화","maintenance.db.title.amrReset":"AMR 초기화","maintenance.db.desc.amrReset":"맵, 주행 설정, 위치 추정, 이동 명령 기록을 삭제합니다.","maintenance.db.button.amrReset":"AMR 초기화","maintenance.db.warning.amrReset":"주의: 맵 데이터는 복구할 수 없습니다.","maintenance.db.title.userReset":"사용자/인증 초기화","maintenance.db.desc.userReset":"admin을 제외한 사용자 계정, 세션, SDK 화이트리스트, 로그인 정책을 삭제합니다.","maintenance.db.button.userReset":"사용자 초기화","maintenance.db.title.factoryReset":"공장 초기화 (전체)","maintenance.db.desc.factoryReset":"위 모든 항목과 로봇 정보, FRS 정보까지 삭제하고 출고 상태로 되돌립니다.","maintenance.db.button.factoryReset":"공장 초기화","maintenance.db.warning.factoryReset":"주의: 초기화시 복구할 수 없습니다.","maintenance.modal.content.confirmResetDB":"정말 초기화 하시겠습니까?\\n이 작업은 되돌릴 수 없습니다.","move.menu.button.label.masterMode":"Master Mode","move.menu.button.label.master.modeJ":"Master Move J","move.menu.button.label.master.modeL":"Master Move L","move.menu.button.label.master.stop":"Master Mode Stop","move.workspace.itemList.selectionMode":"선택","move.workspace.itemList.selectionExit":"선택 취소","move.workspace.itemList.selectionCount":"{{count}}개 선택됨","move.workspace.itemList.hideSelected":"숨기기 {{count}}","move.workspace.itemList.deleteSelected":"삭제 {{count}}","move.workspace.header.saveNow":"저장","move.workspace.confirm.closeTitle":"저장되지 않은 변경 사항","move.workspace.confirm.closeContent":"저장하지 않은 변경 사항이 있습니다. 닫으시겠습니까?","move.workspace.button.closeWithoutSaving":"저장하지 않고 닫기","move.workspace.confirm.openTitle":"다른 워크스페이스 불러오기","move.workspace.confirm.openContent":"저장하지 않은 변경 사항이 사라집니다. 계속하시겠습니까?","move.workspace.confirm.deleteTitle":"워크스페이스 삭제","move.workspace.confirm.deleteContent":'"{{name}}" 워크스페이스를 삭제하시겠습니까?',"move.workspace.toast.deleteSuccess":"워크스페이스를 삭제했습니다.","move.workspace.toast.deleteFailed":"워크스페이스 삭제에 실패했습니다.","move.workspace.header.unsaved":"저장 안 됨","move.workspace.properties.selectItem":"오브젝트를 선택해주세요","move.workspace.addMenu.box":"직육면체","move.workspace.addMenu.cylinder":"원기둥","move.workspace.addMenu.sphere":"구","move.modal.asset.button.add":"추가","move.modal.workspace.card.deleteLabel":"삭제","settings.general.menu.netComm":"네트워크/통신","settings.network.title.ipSettings":"IP 설정","settings.network.desc.ipSettings":"장치의 네트워크 연결 방식을 설정합니다. IP를 자동으로 할당받으려면 DHCP를, 직접 지정하려면 고정 IP(Static)를 선택하세요.","settings.network.label.settingMode":"설정 모드","settings.network.label.mask":"마스크","settings.network.label.gateway":"게이트웨이","program.userInput.errorMsg.varSelection":"변수를 선택해주세요.","program.options.clearDataTable":"데이터 테이블 초기화","program.options.addDataTable":"데이터 테이블 추가","program.options.calcTable":"테이블 결과 계산","program.options.reflectResult":"로봇팔에 결과 반영","program.options.usePosInfo":"위치 정보 사용","program.options.usePosAndOri":"위치 및 회전 정보 사용","program.label.jointAngle":"관절 각도 (°)","program.label.groundTruthTCP":"TCP 실측값","program.field.calcOption":"계산 옵션","program.field.password":"비밀번호","move.panel.measureDistance":"거리 측정","move.measure.title":"거리 측정","move.measure.activate":"거리 측정 활성화","move.measure.target1":"대상 1","move.measure.target2":"대상 2","move.measure.selectFirstPrompt":"첫 번째 도형을 클릭하세요","move.measure.selectSecondPrompt":"두 번째 도형을 클릭하세요","move.measure.mode.center":"중심 간 거리","move.measure.mode.min":"최단 거리","move.measure.result.distance":"총 거리","move.measure.reset":"초기화","move.amr.rightPanel.map.info.downloadMap":"맵 다운로드","move.amr.toast.title.mapDownload.fail":"맵 다운로드 실패","move.amr.toast.content.mapDownload.fail":"다운로드할 수 있는 지도 포인트 클라우드 데이터가 없습니다","move.align.switch.label":"이동 및 정렬","move.align.button.send":"전송","settings.box.option.notUse":"사용하지 않음","settings.box.option.activeAfterReal":"리얼 모드 전환 후 활성화","settings.tool.gripper.label.defaultGripper":"기본 부착 그리퍼","settings.tool.gripper.label.pubDataType":"퍼블리시 데이터 유형 {{idx}}","settings.box.option.notMounted":"장착 안함","settings.box.option.notAssigned":"지정 안함","settings.box.option.posRef":"위치 레퍼런스","settings.box.option.posFeedback":"위치 피드백","settings.box.option.speedRef":"속도 레퍼런스","settings.box.option.speedFeedback":"속도 피드백","settings.box.option.forceRef":"힘 레퍼런스","settings.box.option.forceFeedback":"힘 피드백","move.box.option.global":"전역 좌표계","move.box.option.local":"로컬 좌표계","move.box.option.user":"사용자 좌표계","move.amr.viewportControls.visibility.lidarPoints":"라이다 포인트","move.amr.viewportControls.visibility.lidarPointsDescription":"실시간 포인트 클라우드","move.amr.viewportControls.visibility.simpleNodes":"단순 노드","move.amr.viewportControls.visibility.simpleNodesDescription":"토폴로지 노드를 작은 구체로 렌더링합니다","move.amr.viewportControls.visibility.nodeLabels":"노드 라벨","move.amr.viewportControls.visibility.nodeLabelsDescription":"CSS2D 객체 라벨","move.amr.viewportControls.visibility.grid":"격자","move.amr.viewportControls.visibility.gridDescription":"블렌더 스타일의 바닥 격자","move.amr.viewportControls.camera.projection":"시점","move.amr.viewportControls.camera.projectionDescription":"3D 궤도 뷰와 탑다운 맵 뷰를 전환합니다.","move.amr.viewportControls.camera.topView":"탑 뷰","move.amr.viewportControls.camera.topViewDescription":"회전을 잠그고 맵을 위에서 내려다봅니다.","move.amr.viewportControls.camera.perspective":"원근 뷰","move.amr.viewportControls.camera.perspectiveDescription":"3D 궤도 카메라를 사용합니다.","move.amr.viewportControls.rendering.lidarPointSize":"라이다 포인트 사이즈","move.amr.viewportControls.rendering.lidarPointSizeDescription":"실시간 포인트 클라우드 크기 조정하기","move.amr.viewportControls.section.camera":"카메라","move.amr.viewportControls.section.visibility":"표시","move.amr.viewportControls.section.rendering":"렌더링","move.amr.panel.viewportControl":"뷰포트 제어","program.modal.button.stopProg":"프로그램 정지","move.ghostRobot.section.torsoMode":"Torso 모드","move.ghostRobot.torsoMode.free":"자유","move.ghostRobot.torsoMode.constrained":"구속","maintenance.menu.resources":"CPU/Mem 리소스","maintenance.menu.logRetention":"로그 저장 기간","maintenance.logRetention.desc":"로그 보관 기간을 설정합니다. 기간이 지난 로그는 자동으로 삭제되며, 변경은 즉시 적용됩니다.","maintenance.logRetention.retentionDays":"로그 저장 일수","maintenance.logRetention.retentionRange":"최소 1일 ~ 최대 30일 (기본값 15일)","maintenance.logRetention.days":"{{days}}일","maintenance.logRetention.confirm.title":"로그 보관 기간 단축","maintenance.logRetention.confirm.content":"보관 기간을 {{from}}일에서 {{to}}일로 줄이면 {{to}}일이 지난 로그가 모두 영구 삭제됩니다. 계속하시겠습니까?","maintenance.logRetention.toast.savedTitle":"저장 완료","maintenance.logRetention.toast.savedContent":"로그 보관 기간이 {{days}}일로 변경되었습니다.","maintenance.resources.desc":"muscat 컨테이너의 CPU·메모리 상한을 설정합니다. 변경은 재시작 없이 즉시 적용됩니다.","maintenance.resources.cpu":"CPU 상한","maintenance.resources.memory":"메모리 상한","maintenance.resources.unlimited":"제한 없음","maintenance.resources.usage":"현재 사용량","maintenance.resources.host":"호스트","maintenance.resources.cores":"코어","maintenance.modal.content.confirmResources":"너무 낮은 값은 시스템을 느리게 하거나 메모리 부족으로 종료시킬 수 있습니다.\\n변경하시겠습니까?","move.chart.title":"차트","move.chart.emptyDesc":"차트 데이터가 없습니다","program.modal.title.setRepeatCount":"반복 횟수 설정","program.modal.desc.setRepeatCount":"새로 추가할 반복문의 반복 횟수를 설정합니다.","program.options.avoidSingularity":"특이점 회피","program.field.checkMode":"확인 모드","progarm.field.dataOption":"데이터 옵션","program.options.finishCheck":"확인 완료","program.options.startCheck":"확인 시작","program.options.reference":"레퍼런스 값","program.field.returnType":"반환 타입","program.field.arguments":"인자","program.field.returnVariable":"반환값 저장 변수","program.msg.selectFunction":"목록에서 함수를 선택하세요.","program.placeholder.searchFunction":"함수 이름으로 검색","program.field.functions":"함수","program.field.argCount":"{{count}}개","program.field.argN":"인자 {{n}}","program.placeholder.valueOrVariable":"값 또는 변수명","program.desc.noDescription":"등록된 설명이 없습니다.","program.desc.returnVariableEmpty":"비워두면 반환값을 저장하지 않습니다.","program.placeholder.returnVariable":"예: result","program.field.preview":"미리보기","program.desc.functionCallArgs":'문자열 값은 반드시 큰따옴표로 감싸세요 (예: "text"). 변수를 넘길 때는 get("변수명") 사용을 권장합니다.',"program.msg.noFunctions":"조회된 함수 리스트가 없습니다.","program.msg.noFunctionsDesc":"다른 검색어로 다시 시도해 보세요.","program.msg.selectFunctionDesc":"선택한 함수의 설명, 인자, 반환값 저장 변수를 여기서 설정합니다.","move.amr.viewportControls.section.manualCamera":"수동 카메라","move.amr.viewportControls.camera.move":"수동 이동","move.amr.viewportControls.camera.moveDescription":"버튼으로 카메라를 상하좌우로 이동하거나 중앙으로 맞춥니다.","move.amr.rightPanel.history.noHistory":"히스토리 없음","move.amr.rightPanel.history.latest":"최신","move.amr.rightPanel.history.time":"시간","move.amr.rightPanel.history.command":"명령","move.amr.rightPanel.history.result":"결과","move.amr.rightPanel.topology.overview.title":"개요","move.amr.rightPanel.topology.overview.description":"토폴로지 수준 정보와 파일 작업을 관리합니다.","move.amr.rightPanel.topology.overview.summaryTitle":"토폴로지 요약","move.amr.rightPanel.topology.overview.createdAt":"생성일","move.amr.rightPanel.topology.overview.nodes":"노드","move.amr.rightPanel.topology.overview.links":"링크","move.amr.rightPanel.topology.overview.zones":"존","move.amr.rightPanel.topology.overview.fileTitle":"토폴로지 파일","move.amr.rightPanel.topology.overview.fileDescription":"현재 토폴로지 데이터를 topology.json으로 다운로드합니다.","move.amr.rightPanel.topology.overview.download":"토폴로지 다운로드","move.amr.rightPanel.topology.tab.overview":"개요","move.amr.rightPanel.topology.tab.node":"노드","move.amr.rightPanel.topology.zone.updateZone":"존 업데이트","move.amr.rightPanel.topology.zone.createZone":"존 생성","move.amr.rightPanel.topology.zone.discardEditContent":"편집 내용을 버리고 원래 존으로 복원할까요?","move.amr.rightPanel.topology.zone.discardDraftContent":"이 존 초안과 저장하지 않은 토폴로지 변경사항을 버릴까요?","move.amr.rightPanel.topology.zone.createNewZone":"새 존 생성","move.amr.rightPanel.topology.zone.startDrawing":"그리기 시작","move.amr.rightPanel.topology.zone.selectedCount":"{{count}}개 존 선택됨","move.amr.rightPanel.topology.zone.editingZone":"존 편집 중","move.amr.rightPanel.topology.zone.oneSelected":"존 1개 선택됨","move.amr.rightPanel.topology.zone.selectedZones":"선택된 존","move.amr.rightPanel.topology.zone.pointCount":"{{type}} / {{count}}개 점","move.amr.rightPanel.topology.zone.details":"상세 정보","move.amr.rightPanel.topology.zone.name":"존 이름","move.amr.rightPanel.topology.zone.namePlaceholder":"존 이름 입력","move.amr.rightPanel.topology.zone.type":"존 타입","move.amr.rightPanel.topology.zone.editZone":"존 편집","move.amr.rightPanel.topology.zone.deleteZone":"존 삭제","move.amr.rightPanel.topology.zone.deleteContent":"선택한 존을 삭제할까요?","move.amr.rightPanel.topology.zone.keep":"유지","move.amr.rightPanel.topology.zone.reopenZone":"존 다시 열기","move.amr.rightPanel.topology.zone.reopen":"다시 열기","move.amr.rightPanel.topology.zone.undoLastPoint":"마지막 점 되돌리기","move.amr.rightPanel.topology.zone.clearPoints":"점 지우기","move.amr.rightPanel.topology.zone.closeZone":"존 닫기","move.amr.rightPanel.bottomBar.obstacleMap":"장애물 지도","common.unit.meters":"m","move.amr.obstacleMap.title":"장애물 지도","move.amr.obstacleMap.description":"실시간 2D 캔버스 미리보기","move.amr.obstacleMap.waitingForData":"장애물 지도 데이터를 기다리는 중","move.amr.obstacleMap.statusLabel":"상태","move.amr.obstacleMap.gridLabel":"그리드","move.amr.obstacleMap.gridSizePerPixel":"{{value}} m/px","move.amr.obstacleMap.layerCount":"레이어 {{count}}개","move.amr.obstacleMap.status.waitingForStream":"스트림 대기 중","move.amr.obstacleMap.status.live":"실시간","move.amr.obstacleMap.status.noActiveLayers":"활성 레이어 없음","move.amr.obstacleMap.status.idle":"대기","move.amr.panel.viewportVisibility":"뷰포트 표시","move.amr.panel.fullscreen.enter":"전체 화면","move.amr.panel.fullscreen.exit":"전체 화면 종료","move.amr.leftToolBar.select":"선택","move.amr.leftToolBar.cursor":"커서","move.amr.leftToolBar.move":"이동","move.amr.leftToolBar.rotate":"회전","move.amr.leftToolBar.scale":"크기 조절","move.amr.viewportControls.visibility.mapBoundary":"맵 경계","move.amr.viewportControls.visibility.mapBoundaryDescription":"불러온 맵의 경계 범위를 강조 표시","program.options.goalId.string":"문자열","program.options.goalId.expression":"표현식","program.validation.goalId.quotedLiteralNotAllowed":"표현식에는 문자열 리터럴은 입력할 수 없습니다.","move.amr.rightPanel.topology.edit.nodeType":"노드 타입","move.amr.rightPanel.topology.edit.nodeTypeSingleSelect":"타입을 변경하려면 노드 하나를 선택하세요.","move.amr.rightPanel.topology.edit.nodeTypeUnavailable":"타입 변경 기능은 추후 제공될 예정입니다.","move.amr.rightPanel.topology.edit.nodeTypeDescription":"노드 타입을 변경하면 노드 ID와 연결된 링크는 유지됩니다.","move.field.label.sensitivity":"감도","move.button.stop":"정지","move.button.start":"시작","move.options.interJoint":"내부 조인트","move.options.externalFt":"외부 F/T","maintenance.title.lastJoint":"최종 관절 각도 DB","maintenance.button.erase":"지우기","maintenance.title.editRobotInfo":"로봇 정보 수정","maintenance.desc.editRobotInfo":"로봇 카테고리 및 모델을 변경하고, 선택적으로 별칭으로 사용할 로봇 이름을 지정합니다.","move.gripper.notMountDesc":"그리퍼가 장착되지 않았습니다.","move.amr.viewportControls.section.clipping":"포인트 클라우드 클리핑","move.amr.viewportControls.clipping.height":"높이 클리핑","move.amr.viewportControls.clipping.heightDescription":"선택한 높이 범위 안의 맵 포인트만 표시합니다","move.amr.viewportControls.clipping.minHeight":"최소 높이","move.amr.viewportControls.clipping.maxHeight":"최대 높이","move.amr.viewportControls.clipping.reset":"클리핑 초기화","move.button.off":"끄기","move.button.time":"시간"},P4n={en:{translation:T4n},ko:{translation:E4n}},_7e={manipulate:Pw,amr:j9,rby1:Bse},R4n="rb_manipulate_sdk.point.set_point",b7e=(i,e,t=null)=>{const n=[..._7e[e.beService]??[],...SA];return i.map(s=>{const o=n.find(d=>d.command===s.command);if(!o)throw new Error(`unknown command: ${s.command}`);const{args:r,...a}=o.data??{method:o.command},l={...r??{},...s.args??{}};"robot_model"in l&&!l.robot_model&&(l.robot_model=e.robotModel);const c=ut.uniqueId();return{...a,stepId:c,taskId:e.taskId,programId:e.programId,parentStepId:t,name:o.label,icon:o.icon,method:a.method??o.command,summary:s.summary??a.summary??null,args:l,funcName:a.funcName??(o.command==="Point"?R4n:null),groupId:a.groupId??(o.groupFirstItem?ut.uniqueId():void 0),allowChildren:o.allowChildren||void 0,allowParents:o.allowParents||void 0,notAllowChildren:o.notAllowChildren||void 0,fixChildren:o.fixChildren||void 0,requireChildren:o.requireChildren||void 0,groupFirstItem:o.groupFirstItem||void 0,groupLastItem:o.groupLastItem||void 0,requireParent:o.requireParent||void 0,disableCopy:o.disableCopy||void 0,disableDelete:o.disableDelete||void 0,isStrict:o.isStrict||void 0,children:s.children?.length?b7e(s.children,e,c):void 0}})},M4n=3e3,A4n=(i,e)=>Promise.race([i,new Promise(t=>setTimeout(()=>t(null),e))]),O4n=async(i,e,t)=>{const n=[..._7e[e]??[],...SA];return Promise.all(i.map(async s=>{const o=n.find(a=>a.command===s.command);if(!o?.factoryDataFn)return s;const r=o.allowParents?.length?n.find(a=>a.command===o.allowParents?.[0]):void 0;try{const a=await A4n(Promise.resolve(o.factoryDataFn({...r?.data??{},args:{...r?.data?.args??{},robot_model:t}},t)),M4n);if(!a)return s;const{children:l,...c}=a;return{...s,defaultData:JSON.parse(JSON.stringify(c))}}catch{return s}}))},F4n=i=>i===void 0?null:JSON.parse(JSON.stringify(i)),R3=(i,e)=>{const t=F4n(i.data);return{source:e,label:i.label,command:i.command,method:i.data?.method??i.command??null,defaultData:t,sdk:{funcName:i.data?.funcName??null,postFuncName:i.data?.postFuncName??null},rules:{allowChildren:i.allowChildren,allowParents:i.allowParents,notAllowChildren:i.notAllowChildren,requireChildren:i.requireChildren,requireParent:i.requireParent,fixChildren:i.fixChildren,disableCopy:i.disableCopy,disableDelete:i.disableDelete,groupFirstItem:i.groupFirstItem,groupLastItem:i.groupLastItem,isStrict:i.isStrict,childrenCommand:i.childrenCommand,hasFactoryDataFn:!!i.factoryDataFn,hasConfirmModal:!!i.confirmModal}}},B4n=(i,e=[])=>{const t=i==="manipulate"?Pw.map(o=>R3(o,"manipulate")):i==="amr"?j9.map(o=>R3(o,"amr")):[],n=SA.map(o=>R3(o,"common")),s=e.map(o=>R3(o,"plugin"));return[...t,...s,...n]},{useMemo:V4n}=await F("react"),z4n=({children:i})=>{const{alertDialog:e,confirmDialog:t,promptDialog:n}=Gn(),{t:s}=q(),{data:o}=Ys(),r=o?.modelInfo?.be_service,a=V4n(()=>{const d=h=>tse(null,h)?.be_service??r??"manipulate";return{alert:async h=>{await e({...h,content:h.message})},confirm:async h=>!!await t({...h,content:h.message}),prompt:async h=>await n({...h,content:h.message}),toast:h=>rt.openToast({...h,type:"basic",content:h.message,variant:h.type==="info"?"default":h.type}),program:{setSteps:async h=>{const{programInfo:g,treeItems:m,setTreeItems:f}=se.getState(),p=Object.keys(m??{})[0];if(!g?.programId||!p)throw new Error("program not loaded");f(p,b7e(h,{taskId:p,programId:g.programId,robotModel:g.robotModel,beService:d(g.robotModel)}))},getCatalog:async()=>{const h=se.getState().programInfo?.robotModel,g=d(h),m=B4n(g).map(f=>({...f,title:s(f.label)}));return O4n(m,g,h)}}}},[e,t,n,r,s]),l=Rie()||window.location.hostname;return u(Aut,{wsUrl:`ws://${l==="localhost"?"127.0.0.1":l}:10000`,liveBase:`http://${l}:3000/common/plugin`,hostServices:a,children:i})},{useEffect:Tke}=await F("react"),{QueryClientProvider:W4n}=await F("@tanstack/react-query");function G6n(){const{hostname:i}=window.location,e=`ws://${Rie()||i}:3000`;return Tke(()=>{const n=new URLSearchParams(window.location.search).get("rb_mode");n&&hLe("rb_mode",n)},[]),Tke(()=>{D4n();const t=n=>{n.pointerType==="touch"&&n.preventDefault()};return document.addEventListener("contextmenu",t),()=>{document.removeEventListener("contextmenu",t)}},[]),u(W4n,{client:CGe,children:u(SGe,{appName:"nexus",resources:P4n,children:u(xGe,{theme:"dark",variableModal:v6e,children:u(jqe,{children:u(NGe,{url:e,socketOptions:{path:"/common/socket.io",auth:t=>{t({role:"client",token:Gqe(),autoLogin:hDe()?"true":"false"})}},loadingElement:u(JXe,{className:P("min-h-screen-vh-full bg-[#333] text-[white]")}),children:x(z4n,{children:[x(_4n,{history:g4n,children:[!1,u(L4n,{className:"relative z-100"}),u(IGe,{className:"z-200",position:"top-right",duration:5e3,toastComponent:nLe}),u(h4n,{})]}),u("div",{id:"dialog-container",className:"relative z-120 [&>:not(:nth-child(1_of_[data-slot='dialog-overlay']))]:transition-none [&>:nth-child(1_of_[data-slot='dialog-overlay'])]:!block [&>[data-slot='dialog-content']]:transition-none [&>[data-slot='dialog-content']:nth-last-child(1_of_[data-slot='dialog-content'])]:mt-[-12px] [&>[data-slot='dialog-content']:nth-last-child(1_of_[data-slot='dialog-content'])]:ml-[-12px] [&>[data-slot='dialog-content']:nth-last-child(2_of_[data-slot='dialog-content'])]:mt-[-6px] [&>[data-slot='dialog-content']:nth-last-child(2_of_[data-slot='dialog-content'])]:ml-[-6px] [&>[data-slot='dialog-content']:nth-last-child(3_of_[data-slot='dialog-content'])]:mt-[0px] [&>[data-slot='dialog-content']:nth-last-child(3_of_[data-slot='dialog-content'])]:ml-[0px] [&>[data-slot='dialog-content']:nth-last-child(4_of_[data-slot='dialog-content'])]:mt-[6px] [&>[data-slot='dialog-content']:nth-last-child(4_of_[data-slot='dialog-content'])]:ml-[6px] [&>[data-slot='dialog-content']:nth-last-child(5_of_[data-slot='dialog-content'])]:mt-[12px] [&>[data-slot='dialog-content']:nth-last-child(5_of_[data-slot='dialog-content'])]:ml-[12px] [&>[data-slot='dialog-overlay']]:hidden"})]})})})})})})}export{pg as M,AL as R,h7 as U,Amn as a,VW as b,mDe as c,G6n as default,op as e,pt as l,h9e as t};