vendor: 4,134 bytes, line 1
1import{$ as F,$a as Mt,A as Q,Aa as qr,Ab as la,Ac as Ft,B as cn,Ba as Ci,Bc as Ca,C as _e,Ca as En,D as X,Da as He,Ea as rt,Fa as $r,G as ln,Ga as Xr,H as De,Ha as Zr,I as hi,Ia as Jr,J as Si,Ja as ea,Jb as da,K as xr,Ka as ta,L as z,La as na,M as dn,Ma as Ge,N as pe,O as A,Ob as Ea,P as Oe,Qa as ia,Qb as Ta,R as _,Rb as _a,S as he,T as Vr,U as f,Ua as at,V as h,Va as ra,W as l,Wa as Tn,X as Je,Xa as yt,Ya as Ii,Z as Wr,Za as Ri,_ as Y,_a as aa,a as T,ab as M,b as w,bb as oa,c as Fr,cb as ot,db as sa,ea as Ue,eb as _n,f as D,fa as N,fb as ua,g as kr,ga as et,gb as Se,h as Br,ha as Kr,hb as se,i as Nt,ia as Fe,ib as st,j as H,ja as ke,k as K,ka as Ai,l as j,la as vt,lb as Di,m as B,ma as tt,mb as Oi,n as p,na as jr,nb as Li,nc as pa,o as zr,ob as wt,oc as Ni,p as ae,pa as Z,pb as Ut,pc as ha,q as Hr,qb as ca,r as P,ra as Be,rc as Sa,s as pi,sa as ze,t as oe,ta as fi,u as Pt,ua as nt,v as bt,va as Qr,vc as Aa,w as we,wa as gi,wc as fa,x as Gr,xa as Yr,xc as Le,ya as it,yc as ga,za as mi,zc as ma}from"./chunk-3J67LAPG.js";var Ia=null;function ue(){return Ia}function Pi(t){Ia??=t}var kt=class{},Ae=(()=>{class t{historyGo(e){throw new Error("")}static \u0275fac=function(n){return new(n||t)};static \u0275prov=_({token:t,factory:()=>l(Ra),providedIn:"platform"})}return t})(),bi=new f(""),Ra=(()=>{class t extends Ae{_location;_history;_doc=l(N);constructor(){super(),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return ue().getBaseHref(this._doc)}onPopState(e){let n=ue().getGlobalEventTarget(this._doc,"window");return n.addEventListener("popstate",e,!1),()=>n.removeEventListener("popstate",e)}onHashChange(e){let n=ue().getGlobalEventTarget(this._doc,"window");return n.addEventListener("hashchange",e,!1),()=>n.removeEventListener("hashchange",e)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(e){this._location.pathname=e}pushState(e,n,r){this._history.pushState(e,n,r)}replaceState(e,n,r){this._history.replaceState(e,n,r)}forward(){this._history.forward()}back(){this._history.back()}historyGo(e=0){this._history.go(e)}getState(){return this._history.state}static \u0275fac=function(n){return new(n||t)};static \u0275prov=_({token:t,factory:()=>new t,providedIn:"platform"})}return t})();function pn(t,i){return t?i?t.endsWith("/")?i.startsWith("/")?t+i.slice(1):t+i:i.startsWith("/")?t+i:`${t}/${i}`:t:i}function Da(t){let i=t.search(/#|\?|$/);return t[i-1]==="/"?t.slice(0,i-1)+t.slice(i):t}function ee(t){return t&&t[0]!=="?"?`?${t}`:t}var te=(()=>{class t{historyGo(e){throw new Error("")}static \u0275fac=function(n){return new(n||t)};static \u0275prov=_({token:t,factory:()=>l(Sn),providedIn:"root"})}return t})(),hn=new f(""),Sn=(()=>{class t extends te{_platformLocation;_baseHref;_removeListenerFns=[];constructor(e,n){super(),this._platformLocation=e,this._baseHref=n??this._platformLocation.getBaseHrefFromDOM()??l(N).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}getBaseHref(){return this._baseHref}prepareExternalUrl(e){return pn(this._baseHref,e)}path(e=!1){let n=this._platformLocation.pathname+ee(this._platformLocation.search),r=this._platformLocation.hash;return r&&e?`${n}${r}`:n}pushState(e,n,r,a){let o=this.prepareExternalUrl(r+ee(a));this._platformLocation.pushState(e,n,o)}replaceState(e,n,r,a){let o=this.prepareExternalUrl(r+ee(a));this._platformLocation.replaceState(e,n,o)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}static \u0275fac=function(n){return new(n||t)(h(Ae),h(hn,8))};static \u0275prov=_({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Ne=(()=>
vendor: 42,365 bytes, lines 1-2
1{class t{_subject=new H;_basePath;_locationStrategy;_urlChangeListeners=[];_urlChangeSubscription=null;constructor(e){this._locationStrategy=e;let n=this._locationStrategy.getBaseHref();this._basePath=Rs(Da(Oa(n))),this._locationStrategy.onPopState(r=>{this._subject.next({url:this.path(!0),pop:!0,state:r.state,type:r.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(e=!1){return this.normalize(this._locationStrategy.path(e))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(e,n=""){return this.path()==this.normalize(e+ee(n))}normalize(e){return t.stripTrailingSlash(Is(this._basePath,Oa(e)))}prepareExternalUrl(e){return e&&e[0]!=="/"&&(e="/"+e),this._locationStrategy.prepareExternalUrl(e)}go(e,n="",r=null){this._locationStrategy.pushState(r,"",e,n),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+ee(n)),r)}replaceState(e,n="",r=null){this._locationStrategy.replaceState(r,"",e,n),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+ee(n)),r)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(e=0){this._locationStrategy.historyGo?.(e)}onUrlChange(e){return this._urlChangeListeners.push(e),this._urlChangeSubscription??=this.subscribe(n=>{this._notifyUrlChangeListeners(n.url,n.state)}),()=>{let n=this._urlChangeListeners.indexOf(e);this._urlChangeListeners.splice(n,1),this._urlChangeListeners.length===0&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(e="",n){this._urlChangeListeners.forEach(r=>r(e,n))}subscribe(e,n,r){return this._subject.subscribe({next:e,error:n??void 0,complete:r??void 0})}static normalizeQueryParams=ee;static joinWithSlash=pn;static stripTrailingSlash=Da;static \u0275fac=function(n){return new(n||t)(h(te))};static \u0275prov=_({token:t,factory:()=>Cs(),providedIn:"root"})}return t})();function Cs(){return new Ne(h(te))}function Is(t,i){if(!t||!i.startsWith(t))return i;let e=i.substring(t.length);return e===""||["/",";","?","#"].includes(e[0])?e:i}function Oa(t){return t.replace(/\/index.html$/,"")}function Rs(t){if(new RegExp("^(https?:)?//").test(t)){let[,e]=t.split(/\/\/[^\/]+/);return e}return t}var vi=(()=>{class t extends te{_platformLocation;_baseHref="";_removeListenerFns=[];constructor(e,n){super(),this._platformLocation=e,n!=null&&(this._baseHref=n)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}getBaseHref(){return this._baseHref}path(e=!1){let n=this._platformLocation.hash??"#";return n.length>0?n.substring(1):n}prepareExternalUrl(e){let n=pn(this._baseHref,e);return n.length>0?"#"+n:n}pushState(e,n,r,a){let o=this.prepareExternalUrl(r+ee(a))||this._platformLocation.pathname;this._platformLocation.pushState(e,n,o)}replaceState(e,n,r,a){let o=this.prepareExternalUrl(r+ee(a))||this._platformLocation.pathname;this._platformLocation.replaceState(e,n,o)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}static \u0275fac=function(n){return new(n||t)(h(Ae),h(hn,8))};static \u0275prov=_({token:t,factory:t.\u0275fac})}return t})();var An=class{$implicit;ngForOf;index;count;constructor(i,e,n,r){this.$implicit=i,this.ngForOf=e,this.index=n,this.count=r}get first(){return this.index===0}get last(){return this.index===this.count-1}get even(){return this.index%2===0}get odd(){return!this.even}},Pa=(()=>{class t{_viewContainer;_template;_differs;set ngForOf(e){this._ngForOf=e,this._ngForOfDirty=!0}set ngForTrackBy(e){this._trackByFn=e}get ngForTrackBy(){return this._trackByFn}_ngForOf=null;_ngForOfDirty=!0;_differ=null;_trackByFn;constructor(e,n,r){this._viewContainer=e,this._template=n,this._differs=r}set ngForTemplate(e){e&&(this._template=e)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;let e=this._ngForOf;!this._differ&&e&&(this._differ=this._differs.find(e).create(this.ngForTrackBy))}if(this._differ){let e=this._differ.diff(this._ngForOf);e&&this._applyChanges(e)}}_applyChanges(e){let n=this._viewContainer;e.forEachOperation((r,a,o)=>{if(r.previousIndex==null)n.createEmbeddedView(this._template,new An(r.item,this._ngForOf,-1,-1),o===null?void 0:o);else if(o==null)n.remove(a===null?void 0:a);else if(a!==null){let s=n.get(a);n.move(s,o),La(s,r)}});for(let r=0,a=n.length;r<a;r++){let s=n.get(r).context;s.index=r,s.count=a,s.ngForOf=this._ngForOf}e.forEachIdentityChange(r=>{let a=n.get(r.currentIndex);La(a,r)})}static ngTemplateContextGuard(e,n){return!0}static \u0275fac=function(n){return new(n||t)(M(ot),M(Ri),M(ga))};static \u0275dir=se({type:t,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"}})}return t})();function La(t,i){t.context.$implicit=i.item}var Ds=(()=>{class t{_viewContainer;_context=new fn;_thenTemplateRef=null;_elseTemplateRef=null;_thenViewRef=null;_elseViewRef=null;constructor(e,n){this._viewContainer=e,this._thenTemplateRef=n}set ngIf(e){this._context.$implicit=this._context.ngIf=e,this._updateView()}set ngIfThen(e){Na(e,!1),this._thenTemplateRef=e,this._thenViewRef=null,this._updateView()}set ngIfElse(e){Na(e,!1),this._elseTemplateRef=e,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngIfUseIfTypeGuard;static ngTemplateGuard_ngIf;static ngTemplateContextGuard(e,n){return!0}static \u0275fac=function(n){return new(n||t)(M(ot),M(Ri))};static \u0275dir=se({type:t,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"}})}return t})(),fn=class{$implicit=null;ngIf=null};function Na(t,i){if(t&&!t.createEmbeddedView)throw new A(2020,!1)}var Os=(()=>{class t{_viewContainerRef;_viewRef=null;ngTemplateOutletContext=null;ngTemplateOutlet=null;ngTemplateOutletInjector=null;constructor(e){this._viewContainerRef=e}ngOnChanges(e){if(this._shouldRecreateView(e)){let n=this._viewContainerRef;if(this._viewRef&&n.remove(n.indexOf(this._viewRef)),!this.ngTemplateOutlet){this._viewRef=null;return}let r=this._createContextForwardProxy();this._viewRef=n.createEmbeddedView(this.ngTemplateOutlet,r,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(e){return!!e.ngTemplateOutlet||!!e.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(e,n,r)=>this.ngTemplateOutletContext?Reflect.set(this.ngTemplateOutletContext,n,r):!1,get:(e,n,r)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,n,r)}})}static \u0275fac=function(n){return new(n||t)(M(ot))};static \u0275dir=se({type:t,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},features:[Be]})}return t})();function Ls(t,i){return new A(2100,!1)}var Ns=(()=>{class t{transform(e){return e==null?null:(Ps(t,e),e.toUpperCase())}static \u0275fac=function(n){return new(n||t)};static \u0275pipe=st({name:"uppercase",type:t,pure:!0})}return t})();function Ps(t,i){if(typeof i!="string")throw Ls(t,i)}var ba=(()=>{class t{static \u0275fac=function(n){return new(n||t)};static \u0275mod=Se({type:t});static \u0275inj=he({})}return t})();function Bt(t,i){i=encodeURIComponent(i);for(let e of t.split(";")){let n=e.indexOf("="),[r,a]=n==-1?[e,""]:[e.slice(0,n),e.slice(n+1)];if(r.trim()===i)return decodeURIComponent(a)}return null}var xe=class{};var Mi="browser";function va(t){return t===Mi}var wi=(()=>{class t{static \u0275prov=_({token:t,providedIn:"root",factory:()=>new yi(l(N),window)})}return t})(),yi=class{document;window;offset=()=>[0,0];constructor(i,e){this.document=i,this.window=e}setOffset(i){Array.isArray(i)?this.offset=()=>i:this.offset=i}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(i,e){this.window.scrollTo(w(T({},e),{left:i[0],top:i[1]}))}scrollToAnchor(i,e){let n=ys(this.document,i);n&&(this.scrollToElement(n,e),n.focus())}setHistoryScrollRestoration(i){try{this.window.history.scrollRestoration=i}catch(e){console.warn(Oe(2400,!1))}}scrollToElement(i,e){let n=i.getBoundingClientRect(),r=n.left+this.window.pageXOffset,a=n.top+this.window.pageYOffset,o=this.offset();this.window.scrollTo(w(T({},e),{left:r-o[0],top:a-o[1]}))}};function ys(t,i){let e=t.getElementById(i)||t.getElementsByName(i)[0];if(e)return e;if(typeof t.createTreeWalker=="function"&&t.body&&typeof t.body.attachShadow=="function"){let n=t.createTreeWalker(t.body,NodeFilter.SHOW_ELEMENT),r=n.currentNode;for(;r;){let a=r.shadowRoot;if(a){let o=a.getElementById(i)||a.querySelector(`[name="${i}"]`);if(o)return o}r=n.nextNode()}}return null}var zt=class{_doc;constructor(i){this._doc=i}manager},gn=(()=>{class t extends zt{constructor(e){super(e)}supports(e){return!0}addEventListener(e,n,r,a){return e.addEventListener(n,r,a),()=>this.removeEventListener(e,n,r,a)}removeEventListener(e,n,r,a){return e.removeEventListener(n,r,a)}static \u0275fac=function(n){return new(n||t)(h(N))};static \u0275prov=_({token:t,factory:t.\u0275fac})}return t})(),In=new f(""),Bi=(()=>{class t{_zone;_plugins;_eventNameToPlugin=new Map;constructor(e,n){this._zone=n,e.forEach(o=>{o.manager=this});let r=e.filter(o=>!(o instanceof gn));this._plugins=r.slice().reverse();let a=e.find(o=>o instanceof gn);a&&this._plugins.push(a)}addEventListener(e,n,r,a){return this._findPluginFor(n).addEventListener(e,n,r,a)}getZone(){return this._zone}_findPluginFor(e){let n=this._eventNameToPlugin.get(e);if(n)return n;if(n=this._plugins.find(a=>a.supports(e)),!n)throw new A(5101,!1);return this._eventNameToPlugin.set(e,n),n}static \u0275fac=function(n){return new(n||t)(h(In),h(ke))};static \u0275prov=_({token:t,factory:t.\u0275fac})}return t})(),Ui="ng-app-id";function ya(t){for(let i of t)i.remove()}function Ma(t,i){let e=i.createElement("style");return e.textContent=t,e}function ws(t,i,e,n){let r=t.head?.querySelectorAll(`style[${Ui}="${i}"],link[${Ui}="${i}"]`);if(r)for(let a of r)a.removeAttribute(Ui),a instanceof HTMLLinkElement?n.set(a.href.slice(a.href.lastIndexOf("/")+1),{usage:0,elements:[a]}):a.textContent&&e.set(a.textContent,{usage:0,elements:[a]})}function ki(t,i){let e=i.createElement("link");return e.setAttribute("rel","stylesheet"),e.setAttribute("href",t),e}var zi=(()=>{class t{doc;appId;nonce;inline=new Map;external=new Map;hosts=new Set;constructor(e,n,r,a={}){this.doc=e,this.appId=n,this.nonce=r,ws(e,n,this.inline,this.external),this.hosts.add(e.head)}addStyles(e,n){for(let r of e)this.addUsage(r,this.inline,Ma);n?.forEach(r=>this.addUsage(r,this.external,ki))}removeStyles(e,n){for(let r of e)this.removeUsage(r,this.inline);n?.forEach(r=>this.removeUsage(r,this.external))}addUsage(e,n,r){let a=n.get(e);a?a.usage++:n.set(e,{usage:1,elements:[...this.hosts].map(o=>this.addElement(o,r(e,this.doc)))})}removeUsage(e,n){let r=n.get(e);r&&(r.usage--,r.usage<=0&&(ya(r.elements),n.delete(e)))}ngOnDestroy(){for(let[,{elements:e}]of[...this.inline,...this.external])ya(e);this.hosts.clear()}addHost(e){this.hosts.add(e);for(let[n,{elements:r}]of this.inline)r.push(this.addElement(e,Ma(n,this.doc)));for(let[n,{elements:r}]of this.external)r.push(this.addElement(e,ki(n,this.doc)))}removeHost(e){this.hosts.delete(e)}addElement(e,n){return this.nonce&&n.setAttribute("nonce",this.nonce),e.appendChild(n)}static \u0275fac=function(n){return new(n||t)(h(N),h(gi),h(mi,8),h(it))};static \u0275prov=_({token:t,factory:t.\u0275fac})}return t})(),Fi={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/Math/MathML"},Hi=/%COMP%/g;var Ua="%COMP%",Us=`_nghost-${Ua}`,Fs=`_ngcontent-${Ua}`,ks=!0,Bs=new f("",{factory:()=>ks});function zs(t){return Fs.replace(Hi,t)}function Hs(t){return Us.replace(Hi,t)}function Fa(t,i){return i.map(e=>e.replace(Hi,t))}var Gi=(()=>{class t{eventManager;sharedStylesHost;appId;removeStylesOnCompDestroy;doc;ngZone;nonce;tracingService;rendererByCompId=new Map;defaultRenderer;constructor(e,n,r,a,o,s,u=null,c=null){this.eventManager=e,this.sharedStylesHost=n,this.appId=r,this.removeStylesOnCompDestroy=a,this.doc=o,this.ngZone=s,this.nonce=u,this.tracingService=c,this.defaultRenderer=new Ht(e,o,s,this.tracingService)}createRenderer(e,n){if(!e||!n)return this.defaultRenderer;let r=this.getOrCreateRenderer(e,n);return r instanceof Cn?r.applyToHost(e):r instanceof Gt&&r.applyStyles(),r}getOrCreateRenderer(e,n){let r=this.rendererByCompId,a=r.get(n.id);if(!a){let o=this.doc,s=this.ngZone,u=this.eventManager,c=this.sharedStylesHost,d=this.removeStylesOnCompDestroy,E=this.tracingService;switch(n.encapsulation){case En.Emulated:a=new Cn(u,c,n,this.appId,d,o,s,E);break;case En.ShadowDom:return new mn(u,e,n,o,s,this.nonce,E,c);case En.ExperimentalIsolatedShadowDom:return new mn(u,e,n,o,s,this.nonce,E);default:a=new Gt(u,c,n,d,o,s,E);break}r.set(n.id,a)}return a}ngOnDestroy(){this.rendererByCompId.clear()}componentReplaced(e){this.rendererByCompId.delete(e)}static \u0275fac=function(n){return new(n||t)(h(Bi),h(zi),h(gi),h(Bs),h(N),h(ke),h(mi),h(Tn,8))};static \u0275prov=_({token:t,factory:t.\u0275fac})}return t})(),Ht=class{eventManager;doc;ngZone;tracingService;data=Object.create(null);throwOnSyntheticProps=!0;constructor(i,e,n,r){this.eventManager=i,this.doc=e,this.ngZone=n,this.tracingService=r}destroy(){}destroyNode=null;createElement(i,e){return e?this.doc.createElementNS(Fi[e]||e,i):this.doc.createElement(i)}createComment(i){return this.doc.createComment(i)}createText(i){return this.doc.createTextNode(i)}appendChild(i,e){(wa(i)?i.content:i).appendChild(e)}insertBefore(i,e,n){i&&(wa(i)?i.content:i).insertBefore(e,n)}removeChild(i,e){e.remove()}selectRootElement(i,e){let n=typeof i=="string"?this.doc.querySelector(i):i;if(!n)throw new A(-5104,!1);return e||(n.textContent=""),n}parentNode(i){return i.parentNode}nextSibling(i){return i.nextSibling}setAttribute(i,e,n,r){if(r){e=r+":"+e;let a=Fi[r];a?i.setAttributeNS(a,e,n):i.setAttribute(e,n)}else i.setAttribute(e,n)}removeAttribute(i,e,n){if(n){let r=Fi[n];r?i.removeAttributeNS(r,e):i.removeAttribute(`${n}:${e}`)}else i.removeAttribute(e)}addClass(i,e){i.classList.add(e)}removeClass(i,e){i.classList.remove(e)}setStyle(i,e,n,r){r&(at.DashCase|at.Important)?i.style.setProperty(e,n,r&at.Important?"important":""):i.style[e]=n}removeStyle(i,e,n){n&at.DashCase?i.style.removeProperty(e):i.style[e]=""}setProperty(i,e,n){i!=null&&(i[e]=n)}setValue(i,e){i.nodeValue=e}listen(i,e,n,r){if(typeof i=="string"&&(i=ue().getGlobalEventTarget(this.doc,i),!i))throw new A(5102,!1);let a=this.decoratePreventDefault(n);return this.tracingService?.wrapEventListener&&(a=this.tracingService.wrapEventListener(i,e,a)),this.eventManager.addEventListener(i,e,a,r)}decoratePreventDefault(i){return e=>{if(e==="__ngUnwrap__")return i;i(e)===!1&&e.preventDefault()}}};function wa(t){return t.tagName==="TEMPLATE"&&t.content!==void 0}var mn=class extends Ht{hostEl;sharedStylesHost;shadowRoot;constructor(i,e,n,r,a,o,s,u){super(i,r,a,s),this.hostEl=e,this.sharedStylesHost=u,this.shadowRoot=e.attachShadow({mode:"open"}),this.sharedStylesHost&&this.sharedStylesHost.addHost(this.shadowRoot);let c=n.styles;c=Fa(n.id,c);for(let E of c){let m=document.createElement("style");o&&m.setAttribute("nonce",o),m.textContent=E,this.shadowRoot.appendChild(m)}let d=n.getExternalStyles?.();if(d)for(let E of d){let m=ki(E,r);o&&m.setAttribute("nonce",o),this.shadowRoot.appendChild(m)}}nodeOrShadowRoot(i){return i===this.hostEl?this.shadowRoot:i}appendChild(i,e){return super.appendChild(this.nodeOrShadowRoot(i),e)}insertBefore(i,e,n){return super.insertBefore(this.nodeOrShadowRoot(i),e,n)}removeChild(i,e){return super.removeChild(null,e)}parentNode(i){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(i)))}destroy(){this.sharedStylesHost&&this.sharedStylesHost.removeHost(this.shadowRoot)}},Gt=class extends Ht{sharedStylesHost;removeStylesOnCompDestroy;styles;styleUrls;constructor(i,e,n,r,a,o,s,u){super(i,a,o,s),this.sharedStylesHost=e,this.removeStylesOnCompDestroy=r;let c=n.styles;this.styles=u?Fa(u,c):c,this.styleUrls=n.getExternalStyles?.(u)}applyStyles(){this.sharedStylesHost.addStyles(this.styles,this.styleUrls)}destroy(){this.removeStylesOnCompDestroy&&ra.size===0&&this.sharedStylesHost.removeStyles(this.styles,this.styleUrls)}},Cn=class extends Gt{contentAttr;hostAttr;constructor(i,e,n,r,a,o,s,u){let c=r+"-"+n.id;super(i,e,n,a,o,s,u,c),this.contentAttr=zs(c),this.hostAttr=Hs(c)}applyToHost(i){this.applyStyles(),this.setAttribute(i,this.hostAttr,"")}createElement(i,e){let n=super.createElement(i,e);return super.setAttribute(n,this.contentAttr,""),n}};var Rn=class t extends kt{supportsDOMEvents=!0;static makeCurrent(){Pi(new t)}onAndCancel(i,e,n,r){return i.addEventListener(e,n,r),()=>{i.removeEventListener(e,n,r)}}dispatchEvent(i,e){i.dispatchEvent(e)}remove(i){i.remove()}createElement(i,e){return e=e||this.getDefaultDocument(),e.createElement(i)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(i){return i.nodeType===Node.ELEMENT_NODE}isShadowRoot(i){return i instanceof DocumentFragment}getGlobalEventTarget(i,e){return e==="window"?window:e==="document"?i:e==="body"?i.body:null}getBaseHref(i){let e=xs();return e==null?null:Vs(e)}resetBaseElement(){xt=null}getUserAgent(){return window.navigator.userAgent}getCookie(i){return Bt(document.cookie,i)}},xt=null;function xs(){return xt=xt||document.head.querySelector("base"),xt?xt.getAttribute("href"):null}function Vs(t){return new URL(t,document.baseURI).pathname}var Ws=(()=>{class t{build(){return new XMLHttpRequest}static \u0275fac=function(n){return new(n||t)};static \u0275prov=_({token:t,factory:t.\u0275fac})}return t})(),ka=["alt","control","meta","shift"],Ks={"\b":"Backspace"," ":"Tab","\x7F":"Delete","\x1B":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},js={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey},Ba=(()=>{class t extends zt{constructor(e){super(e)}supports(e){return t.parseEventName(e)!=null}addEventListener(e,n,r,a){let o=t.parseEventName(n),s=t.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>ue().onAndCancel(e,o.domEventName,s,a))}static parseEventName(e){let n=e.toLowerCase().split("."),r=n.shift();if(n.length===0||!(r==="keydown"||r==="keyup"))return null;let a=t._normalizeKey(n.pop()),o="",s=n.indexOf("code");if(s>-1&&(n.splice(s,1),o="code."),ka.forEach(c=>{let d=n.indexOf(c);d>-1&&(n.splice(d,1),o+=c+".")}),o+=a,n.length!=0||a.length===0)return null;let u={};return u.domEventName=r,u.fullKey=o,u}static matchEventFullKeyCode(e,n){let r=Ks[e.key]||e.key,a="";return n.indexOf("code.")>-1&&(r=e.code,a="code."),r==null||!r?!1:(r=r.toLowerCase(),r===" "?r="space":r==="."&&(r="dot"),ka.forEach(o=>{if(o!==r){let s=js[o];s(e)&&(a+=o+".")}}),a+=r,a===n)}static eventCallback(e,n,r){return a=>{t.matchEventFullKeyCode(a,e)&&r.runGuarded(()=>n(a))}}static _normalizeKey(e){return e==="esc"?"escape":e}static \u0275fac=function(n){return new(n||t)(h(N))};static \u0275prov=_({token:t,factory:t.\u0275fac})}return t})();function Qs(t,i,e){return D(this,null,function*(){let n=T({rootComponent:t},Ys(i,e));return ma(n)})}function Ys(t,i){return{platformRef:i?.platformRef,appProviders:[...Js,...t?.providers??[]],platformProviders:Zs}}function qs(){Rn.makeCurrent()}function $s(){return new Ai}function Xs(){return Qr(document),document}var Zs=[{provide:it,useValue:Mi},{provide:Yr,useValue:qs,multi:!0},{provide:N,useFactory:Xs}];var Js=[{provide:Wr,useValue:"root"},{provide:Ai,useFactory:$s},{provide:In,useClass:gn,multi:!0},{provide:In,useClass:Ba,multi:!0},Gi,zi,Bi,{provide:aa,useExisting:Gi},{provide:xe,useClass:Ws},[]];var ne=class t{headers;normalizedNames=new Map;lazyInit;lazyUpdate=null;constructor(i){i?typeof i=="string"?this.lazyInit=()=>{this.headers=new Map,i.split(` 2`).forEach(e=>{let n=e.indexOf(":");if(n>0){let r=e.slice(0,n),a=e.slice(n+1).trim();this.addHeaderEntry(r,a)}})}:typeof Headers<"u"&&i instanceof Headers?(this.headers=new Map,i.forEach((e,n)=>{this.addHeaderEntry(n,e)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(i).forEach(([e,n])=>{this.setHeaderEntries(e,n)})}:this.headers=new Map}has(i){return this.init(),this.headers.has(i.toLowerCase())}get(i){this.init();let e=this.headers.get(i.toLowerCase());return e&&e.length>0?e[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(i){return this.init(),this.headers.get(i.toLowerCase())||null}append(i,e){return this.clone({name:i,value:e,op:"a"})}set(i,e){return this.clone({name:i,value:e,op:"s"})}delete(i,e){return this.clone({name:i,value:e,op:"d"})}maybeSetNormalizedName(i,e){this.normalizedNames.has(e)||this.normalizedNames.set(e,i)}init(){this.lazyInit&&(this.lazyInit instanceof t?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(i=>this.applyUpdate(i)),this.lazyUpdate=null))}copyFrom(i){i.init(),Array.from(i.headers.keys()).forEach(e=>{this.headers.set(e,i.headers.get(e)),this.normalizedNames.set(e,i.normalizedNames.get(e))})}clone(i){let e=new t;return e.lazyInit=this.lazyInit&&this.lazyInit instanceof t?this.lazyInit:this,e.lazyUpdate=(this.lazyUpdate||[]).concat([i]),e}applyUpdate(i){let e=i.name.toLowerCase();switch(i.op){case"a":case"s":let n=i.value;if(typeof n=="string"&&(n=[n]),n.length===0)return;this.maybeSetNormalizedName(i.name,e);let r=(i.op==="a"?this.headers.get(e):void 0)||[];r.push(...n),this.headers.set(e,r);break;case"d":let a=i.value;if(!a)this.headers.delete(e),this.normalizedNames.delete(e);else{let o=this.headers.get(e);if(!o)return;o=o.filter(s=>a.indexOf(s)===-1),o.length===0?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,o)}break}}addHeaderEntry(i,e){let n=i.toLowerCase();this.maybeSetNormalizedName(i,n),this.headers.has(n)?this.headers.get(n).push(e):this.headers.set(n,[e])}setHeaderEntries(i,e){let n=(Array.isArray(e)?e:[e]).map(a=>a.toString()),r=i.toLowerCase();this.headers.set(r,n),this.maybeSetNormalizedName(i,r)}forEach(i){this.init(),Array.from(this.normalizedNames.keys()).forEach(e=>i(this.normalizedNames.get(e),this.headers.get(e)))}};var Ln=class{map=new Map;set(i,e){return this.map.set(i,e),this}get(i){return this.map.has(i)||this.map.set(i,i.defaultValue()),this.map.get(i)}delete(i){return this.map.delete(i),this}has(i){return this.map.has(i)}keys(){return this.map.keys()}},Nn=class{encodeKey(i){return za(i)}encodeValue(i){return za(i)}decodeKey(i){return decodeURIComponent(i)}decodeValue(i){return decodeURIComponent(i)}};function eu(t,i){let e=new Map;return t.length>0&&t.replace(/^\?/,"").split("&").forEach(r=>{let a=r.indexOf("="),[o,s]=a==-1?[i.decodeKey(r),""]:[i.decodeKey(r.slice(0,a)),i.decodeValue(r.slice(a+1))],u=e.get(o)||[];u.push(s),e.set(o,u)}),e}var tu=/%(\d[a-f0-9])/gi,nu={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function za(t){return encodeURIComponent(t).replace(tu,(i,e)=>nu[e]??i)}function Dn(t){return`${t}`}var fe=class t{map;encoder;updates=null;cloneFrom=null;constructor(i={}){if(this.encoder=i.encoder||new Nn,i.fromString){if(i.fromObject)throw new A(2805,!1);this.map=eu(i.fromString,this.encoder)}else i.fromObject?(this.map=new Map,Object.keys(i.fromObject).forEach(e=>{let n=i.fromObject[e],r=Array.isArray(n)?n.map(Dn):[Dn(n)];this.map.set(e,r)})):this.map=null}has(i){return this.init(),this.map.has(i)}get(i){this.init();let e=this.map.get(i);return e?e[0]:null}getAll(i){return this.init(),this.map.get(i)||null}keys(){return this.init(),Array.from(this.map.keys())}append(i,e){return this.clone({param:i,value:e,op:"a"})}appendAll(i){let e=[];return Object.keys(i).forEach(n=>{let r=i[n];Array.isArray(r)?r.forEach(a=>{e.push({param:n,value:a,op:"a"})}):e.push({param:n,value:r,op:"a"})}),this.clone(e)}set(i,e){return this.clone({param:i,value:e,op:"s"})}delete(i,e){return this.clone({param:i,value:e,op:"d"})}toString(){return this.init(),this.keys().map(i=>{let e=this.encoder.encodeKey(i);return this.map.get(i).map(n=>e+"="+this.encoder.encodeValue(n)).join("&")}).filter(i=>i!=="").join("&")}clone(i){let e=new t({encoder:this.encoder});return e.cloneFrom=this.cloneFrom||this,e.updates=(this.updates||[]).concat(i),e}init(){this.map===null&&(this.map=new Map),this.cloneFrom!==null&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(i=>this.map.set(i,this.cloneFrom.map.get(i))),this.updates.forEach(i=>{switch(i.op){case"a":case"s":let e=(i.op==="a"?this.map.get(i.param):void 0)||[];e.push(Dn(i.value)),this.map.set(i.param,e);break;case"d":if(i.value!==void 0){let n=this.map.get(i.param)||[],r=n.indexOf(Dn(i.value));r!==-1&&n.splice(r,1),n.length>0?this.map.set(i.param,n):this.map.delete(i.param)}else{this.map.delete(i.param);break}}}),this.cloneFrom=this.updates=null)}};function iu(t){switch(t){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}function Ha(t){return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer}function Ga(t){return typeof Blob<"u"&&t instanceof Blob}function xa(t){return typeof FormData<"u"&&t instanceof FormData}function ru(t){return typeof URLSearchParams<"u"&&t instanceof URLSearchParams}var Vt="Content-Type",Pn="Accept",Va="text/plain",Wa="application/json",Ka=`${Wa}, ${Va}, */*`,ut=class t{url;body=null;headers;context;reportProgress=!1;withCredentials=!1;credentials;keepalive=!1;cache;priority;mode;redirect;referrer;integrity;referrerPolicy;responseType="json";method;params;urlWithParams;transferCache;timeout;constructor(i,e,n,r){this.url=e,this.method=i.toUpperCase();let a;if(iu(this.method)||r?(this.body=n!==void 0?n:null,a=r):a=n,a){if(this.reportProgress=!!a.reportProgress,this.withCredentials=!!a.withCredentials,this.keepalive=!!a.keepalive,a.responseType&&(this.responseType=a.responseType),a.headers&&(this.headers=a.headers),a.context&&(this.context=a.context),a.params&&(this.params=a.params),a.priority&&(this.priority=a.priority),a.cache&&(this.cache=a.cache),a.credentials&&(this.credentials=a.credentials),typeof a.timeout=="number"){if(a.timeout<1||!Number.isInteger(a.timeout))throw new A(2822,"");this.timeout=a.timeout}a.mode&&(this.mode=a.mode),a.redirect&&(this.redirect=a.redirect),a.integrity&&(this.integrity=a.integrity),a.referrer&&(this.referrer=a.referrer),a.referrerPolicy&&(this.referrerPolicy=a.referrerPolicy),this.transferCache=a.transferCache}if(this.headers??=new ne,this.context??=new Ln,!this.params)this.params=new fe,this.urlWithParams=e;else{let o=this.params.toString();if(o.length===0)this.urlWithParams=e;else{let s=e.indexOf("?"),u=s===-1?"?":s<e.length-1?"&":"";this.urlWithParams=e+u+o}}}serializeBody(){return this.body===null?null:typeof this.body=="string"||Ha(this.body)||Ga(this.body)||xa(this.body)||ru(this.body)?this.body:this.body instanceof fe?this.body.toString():typeof this.body=="object"||typeof this.body=="boolean"||Array.isArray(this.body)?JSON.stringify(this.body):this.body.toString()}detectContentTypeHeader(){return this.body===null||xa(this.body)?null:Ga(this.body)?this.body.type||null:Ha(this.body)?null:typeof this.body=="string"?Va:this.body instanceof fe?"application/x-www-form-urlencoded;charset=UTF-8":typeof this.body=="object"||typeof this.body=="number"||typeof this.body=="boolean"?Wa:null}clone(i={}){let e=i.method||this.method,n=i.url||this.url,r=i.responseType||this.responseType,a=i.keepalive??this.keepalive,o=i.priority||this.priority,s=i.cache||this.cache,u=i.mode||this.mode,c=i.redirect||this.redirect,d=i.credentials||this.credentials,E=i.referrer||this.referrer,m=i.integrity||this.integrity,C=i.referrerPolicy||this.referrerPolicy,v=i.transferCache??this.transferCache,L=i.timeout??this.timeout,g=i.body!==void 0?i.body:this.body,I=i.withCredentials??this.withCredentials,b=i.reportProgress??this.reportProgress,W=i.headers||this.headers,O=i.params||this.params,re=i.context??this.context;return i.setHeaders!==void 0&&(W=Object.keys(i.setHeaders).reduce((Re,Te)=>Re.set(Te,i.setHeaders[Te]),W)),i.setParams&&(O=Object.keys(i.setParams).reduce((Re,Te)=>Re.set(Te,i.setParams[Te]),O)),new t(e,n,g,{params:O,headers:W,context:re,reportProgress:b,responseType:r,withCredentials:I,transferCache:v,keepalive:a,cache:s,priority:o,timeout:L,mode:u,redirect:c,credentials:d,referrer:E,integrity:m,referrerPolicy:C})}},ge=(function(t){return t[t.Sent=0]="Sent",t[t.UploadProgress=1]="UploadProgress",t[t.ResponseHeader=2]="ResponseHeader",t[t.DownloadProgress=3]="DownloadProgress",t[t.Response=4]="Response",t[t.User=5]="User",t})(ge||{}),ct=class{headers;status;statusText;url;ok;type;redirected;responseType;constructor(i,e=200,n="OK"){this.headers=i.headers||new ne,this.status=i.status!==void 0?i.status:e,this.statusText=i.statusText||n,this.url=i.url||null,this.redirected=i.redirected,this.responseType=i.responseType,this.ok=this.status>=200&&this.status<300}},Wt=class t extends ct{constructor(i={}){super(i)}type=ge.ResponseHeader;clone(i={}){return new t({headers:i.headers||this.headers,status:i.status!==void 0?i.status:this.status,statusText:i.statusText||this.statusText,url:i.url||this.url||void 0})}},Ve=class t extends ct{body;constructor(i={}){super(i),this.body=i.body!==void 0?i.body:null}type=ge.Response;clone(i={}){return new t({body:i.body!==void 0?i.body:this.body,headers:i.headers||this.headers,status:i.status!==void 0?i.status:this.status,statusText:i.statusText||this.statusText,url:i.url||this.url||void 0,redirected:i.redirected??this.redirected,responseType:i.responseType??this.responseType})}},ce=class extends ct{name="HttpErrorResponse";message;error;ok=!1;constructor(i){super(i,0,"Unknown Error"),this.status>=200&&this.status<300?this.message=`Http failure during parsing for ${i.url||"(unknown url)"}`:this.message=`Http failure response for ${i.url||"(unknown url)"}: ${i.status} ${i.statusText}`,this.error=i.error||null}},ja=200,au=204;var ou=/^\)\]\}',?\n/,Qa=new f(""),On=(()=>{class t{fetchImpl=l(Vi,{optional:!0})?.fetch??((...e)=>globalThis.fetch(...e));ngZone=l(ke);destroyRef=l(et);handle(e){return new Nt(n=>{let r=new AbortController;this.doRequest(e,r.signal,n).then(Wi,o=>n.error(new ce({error:o})));let a;return e.timeout&&(a=this.ngZone.runOutsideAngular(()=>setTimeout(()=>{r.signal.aborted||r.abort(new DOMException("signal timed out","TimeoutError"))},e.timeout))),()=>{a!==void 0&&clearTimeout(a),r.abort()}})}doRequest(e,n,r){return D(this,null,function*(){let a=this.createRequestInit(e),o;try{let L=this.ngZone.runOutsideAngular(()=>this.fetchImpl(e.urlWithParams,T({signal:n},a)));su(L),r.next({type:ge.Sent}),o=yield L}catch(L){r.error(new ce({error:L,status:L.status??0,statusText:L.statusText,url:e.urlWithParams,headers:L.headers}));return}let s=new ne(o.headers),u=o.statusText,c=o.url||e.urlWithParams,d=o.status,E=null;if(e.reportProgress&&r.next(new Wt({headers:s,status:d,statusText:u,url:c})),o.body){let L=o.headers.get("content-length"),g=[],I=o.body.getReader(),b=0,W,O,re=typeof Zone<"u"&&Zone.current,Re=!1;if(yield this.ngZone.runOutsideAngular(()=>D(this,null,function*(){for(;;){if(this.destroyRef.destroyed){yield I.cancel(),Re=!0;break}let{done:Lt,value:_i}=yield I.read();if(Lt)break;if(g.push(_i),b+=_i.length,e.reportProgress){O=e.responseType==="text"?(O??"")+(W??=new TextDecoder).decode(_i,{stream:!0}):void 0;let Ur=()=>r.next({type:ge.DownloadProgress,total:L?+L:void 0,loaded:b,partialText:O});re?re.run(Ur):Ur()}}})),Re){r.complete();return}let Te=this.concatChunks(g,b);try{let Lt=o.headers.get(Vt)??"";E=this.parseBody(e,Te,Lt,d)}catch(Lt){r.error(new ce({error:Lt,headers:new ne(o.headers),status:o.status,statusText:o.statusText,url:o.url||e.urlWithParams}));return}}d===0&&(d=E?ja:0);let m=d>=200&&d<300,C=o.redirected,v=o.type;m?(r.next(new Ve({body:E,headers:s,status:d,statusText:u,url:c,redirected:C,responseType:v})),r.complete()):r.error(new ce({error:E,headers:s,status:d,statusText:u,url:c,redirected:C,responseType:v}))})}parseBody(e,n,r,a){switch(e.responseType){case"json":let o=new TextDecoder().decode(n).replace(ou,"");if(o==="")return null;try{return JSON.parse(o)}catch(s){if(a<200||a>=300)return o;throw s}case"text":return new TextDecoder().decode(n);case"blob":return new Blob([n],{type:r});case"arraybuffer":return n.buffer}}createRequestInit(e){let n={},r;if(r=e.credentials,e.withCredentials&&(r="include"),e.headers.forEach((a,o)=>n[a]=o.join(",")),e.headers.has(Pn)||(n[Pn]=Ka),!e.headers.has(Vt)){let a=e.detectContentTypeHeader();a!==null&&(n[Vt]=a)}return{body:e.serializeBody(),method:e.method,headers:n,credentials:r,keepalive:e.keepalive,cache:e.cache,priority:e.priority,mode:e.mode,redirect:e.redirect,referrer:e.referrer,integrity:e.integrity,referrerPolicy:e.referrerPolicy}}concatChunks(e,n){let r=new Uint8Array(n),a=0;for(let o of e)r.set(o,a),a+=o.length;return r}static \u0275fac=function(n){return new(n||t)};static \u0275prov=_({token:t,factory:t.\u0275fac})}return t})(),Vi=class{};function Wi(){}function su(t){t.then(Wi,Wi)}var uu=/^\)\]\}',?\n/;var Ki=(()=>{class t{xhrFactory;tracingService=l(Tn,{optional:!0});constructor(e){this.xhrFactory=e}maybePropagateTrace(e){return this.tracingService?.propagate?this.tracingService.propagate(e):e}handle(e){if(e.method==="JSONP")throw new A(-2800,!1);let n=this.xhrFactory;return p(null).pipe(z(()=>new Nt(a=>{let o=n.build();if(o.open(e.method,e.urlWithParams),e.withCredentials&&(o.withCredentials=!0),e.headers.forEach((g,I)=>o.setRequestHeader(g,I.join(","))),e.headers.has(Pn)||o.setRequestHeader(Pn,Ka),!e.headers.has(Vt)){let g=e.detectContentTypeHeader();g!==null&&o.setRequestHeader(Vt,g)}if(e.timeout&&(o.timeout=e.timeout),e.responseType){let g=e.responseType.toLowerCase();o.responseType=g!=="json"?g:"text"}let s=e.serializeBody(),u=null,c=()=>{if(u!==null)return u;let g=o.statusText||"OK",I=new ne(o.getAllResponseHeaders()),b=o.responseURL||e.url;return u=new Wt({headers:I,status:o.status,statusText:g,url:b}),u},d=this.maybePropagateTrace(()=>{let{headers:g,status:I,statusText:b,url:W}=c(),O=null;I!==au&&(O=typeof o.response>"u"?o.responseText:o.response),I===0&&(I=O?ja:0);let re=I>=200&&I<300;if(e.responseType==="json"&&typeof O=="string"){let Re=O;O=O.replace(uu,"");try{O=O!==""?JSON.parse(O):null}catch(Te){O=Re,re&&(re=!1,O={error:Te,text:O})}}re?(a.next(new Ve({body:O,headers:g,status:I,statusText:b,url:W||void 0})),a.complete()):a.error(new ce({error:O,headers:g,status:I,statusText:b,url:W||void 0}))}),E=this.maybePropagateTrace(g=>{let{url:I}=c(),b=new ce({error:g,status:o.status||0,statusText:o.statusText||"Unknown Error",url:I||void 0});a.error(b)}),m=E;e.timeout&&(m=this.maybePropagateTrace(g=>{let{url:I}=c(),b=new ce({error:new DOMException("Request timed out","TimeoutError"),status:o.status||0,statusText:o.statusText||"Request timeout",url:I||void 0});a.error(b)}));let C=!1,v=this.maybePropagateTrace(g=>{C||(a.next(c()),C=!0);let I={type:ge.DownloadProgress,loaded:g.loaded};g.lengthComputable&&(I.total=g.total),e.responseType==="text"&&o.responseText&&(I.partialText=o.responseText),a.next(I)}),L=this.maybePropagateTrace(g=>{let I={type:ge.UploadProgress,loaded:g.loaded};g.lengthComputable&&(I.total=g.total),a.next(I)});return o.addEventListener("load",d),o.addEventListener("error",E),o.addEventListener("timeout",m),o.addEventListener("abort",E),e.reportProgress&&(o.addEventListener("progress",v),s!==null&&o.upload&&o.upload.addEventListener("progress",L)),o.send(s),a.next({type:ge.Sent}),()=>{o.removeEventListener("error",E),o.removeEventListener("abort",E),o.removeEventListener("load",d),o.removeEventListener("timeout",m),e.reportProgress&&(o.removeEventListener("progress",v),s!==null&&o.upload&&o.upload.removeEventListener("progress",L)),o.readyState!==o.DONE&&o.abort()}})))}static \u0275fac=function(n){return new(n||t)(h(xe))};static \u0275prov=_({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function cu(t,i){return i(t)}function lu(t,i,e){return(n,r)=>F(e,()=>i(n,a=>t(a,r)))}var Ya=new f("",{factory:()=>[]}),ji=new f(""),qa=new f("",{factory:()=>!0});var vn=(()=>{class t{static \u0275fac=function(n){return new(n||t)};static \u0275prov=_({token:t,factory:function(n){let r=null;return n?r=new(n||t):r=h(Ki),r},providedIn:"root"})}return t})();var bn=(()=>{class t{backend;injector;chain=null;pendingTasks=l(jr);contributeToStability=l(qa);constructor(e,n){this.backend=e,this.injector=n}handle(e){if(this.chain===null){let n=Array.from(new Set([...this.injector.get(Ya),...this.injector.get(ji,[])]));this.chain=n.reduceRight((r,a)=>lu(r,a,this.injector),cu)}if(this.contributeToStability){let n=this.pendingTasks.add();return this.chain(e,r=>this.backend.handle(r)).pipe(ln(n))}else return this.chain(e,n=>this.backend.handle(n))}static \u0275fac=function(n){return new(n||t)(h(vn),h(Y))};static \u0275prov=_({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Qi=(()=>{class t{static \u0275fac=function(n){return new(n||t)};static \u0275prov=_({token:t,factory:function(n){let r=null;return n?r=new(n||t):r=h(bn),r},providedIn:"root"})}return t})();function xi(t,i){return{body:i,headers:t.headers,context:t.context,observe:t.observe,params:t.params,reportProgress:t.reportProgress,responseType:t.responseType,withCredentials:t.withCredentials,credentials:t.credentials,transferCache:t.transferCache,timeout:t.timeout,keepalive:t.keepalive,priority:t.priority,cache:t.cache,mode:t.mode,redirect:t.redirect,integrity:t.integrity,referrer:t.referrer,referrerPolicy:t.referrerPolicy}}var $a=(()=>{class t{handler;constructor(e){this.handler=e}request(e,n,r={}){let a;if(e instanceof ut)a=e;else{let u;r.headers instanceof ne?u=r.headers:u=new ne(r.headers);let c;r.params&&(r.params instanceof fe?c=r.params:c=new fe({fromObject:r.params})),a=new ut(e,n,r.body!==void 0?r.body:null,{headers:u,context:r.context,params:c,reportProgress:r.reportProgress,responseType:r.responseType||"json",withCredentials:r.withCredentials,transferCache:r.transferCache,keepalive:r.keepalive,priority:r.priority,cache:r.cache,mode:r.mode,redirect:r.redirect,credentials:r.credentials,referrer:r.referrer,referrerPolicy:r.referrerPolicy,integrity:r.integrity,timeout:r.timeout})}let o=p(a).pipe(_e(u=>this.handler.handle(u)));if(e instanceof ut||r.observe==="events")return o;let s=o.pipe(Q(u=>u instanceof Ve));switch(r.observe||"body"){case"body":switch(a.responseType){case"arraybuffer":return s.pipe(P(u=>{if(u.body!==null&&!(u.body instanceof ArrayBuffer))throw new A(2806,!1);return u.body}));case"blob":return s.pipe(P(u=>{if(u.body!==null&&!(u.body instanceof Blob))throw new A(2807,!1);return u.body}));case"text":return s.pipe(P(u=>{if(u.body!==null&&typeof u.body!="string")throw new A(2808,!1);return u.body}));default:return s.pipe(P(u=>u.body))}case"response":return s;default:throw new A(2809,!1)}}delete(e,n={}){return this.request("DELETE",e,n)}get(e,n={}){return this.request("GET",e,n)}head(e,n={}){return this.request("HEAD",e,n)}jsonp(e,n){return this.request("JSONP",e,{params:new fe().append(n,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(e,n={}){return this.request("OPTIONS",e,n)}patch(e,n,r={}){return this.request("PATCH",e,xi(r,n))}post(e,n,r={}){return this.request("POST",e,xi(r,n))}put(e,n,r={}){return this.request("PUT",e,xi(r,n))}static \u0275fac=function(n){return new(n||t)(h(Qi))};static \u0275prov=_({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var du=new f("",{factory:()=>!0}),Eu="XSRF-TOKEN",Tu=new f("",{factory:()=>Eu}),_u="X-XSRF-TOKEN",pu=new f("",{factory:()=>_u}),hu=(()=>{class t{cookieName=l(Tu);doc=l(N);lastCookieString="";lastToken=null;parseCount=0;getToken(){let e=this.doc.cookie||"";return e!==this.lastCookieString&&(this.parseCount++,this.lastToken=Bt(e,this.cookieName),this.lastCookieString=e),this.lastToken}static \u0275fac=function(n){return new(n||t)};static \u0275prov=_({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Xa=(()=>{class t{static \u0275fac=function(n){return new(n||t)};static \u0275prov=_({token:t,factory:function(n){let r=null;return n?r=new(n||t):r=h(hu),r},providedIn:"root"})}return t})();function Su(t,i){if(!l(du)||t.method==="GET"||t.method==="HEAD")return i(t);try{let r=l(Ae).href,{origin:a}=new URL(r),{origin:o}=new URL(t.url,a);if(a!==o)return i(t)}catch(r){return i(t)}let e=l(Xa).getToken(),n=l(pu);return e!=null&&!t.headers.has(n)&&(t=t.clone({headers:t.headers.set(n,e)})),i(t)}var Yi=(function(t){return t[t.Interceptors=0]="Interceptors",t[t.LegacyInterceptors=1]="LegacyInterceptors",t[t.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",t[t.NoXsrfProtection=3]="NoXsrfProtection",t[t.JsonpSupport=4]="JsonpSupport",t[t.RequestsMadeViaParent=5]="RequestsMadeViaParent",t[t.Fetch=6]="Fetch",t})(Yi||{});function Au(t,i){return{\u0275kind:t,\u0275providers:i}}function fu(...t){let i=[$a,bn,{provide:Qi,useExisting:bn},{provide:vn,useFactory:()=>l(Qa,{optional:!0})??l(Ki)},{provide:Ya,useValue:Su,multi:!0}];for(let e of t)i.push(...e.\u0275providers);return Je(i)}function gu(){return Au(Yi.Fetch,[On,{provide:Qa,useExisting:On},{provide:vn,useExisting:On}])}var mu=new f(""),Cu="b",Iu="h",Ru="s",Du="st",Ou="u",Lu="rt",qi=new f(""),Nu=["GET","HEAD"];function Pu(t,i){let C=l(qi),{isCacheActive:e}=C,n=Fr(C,["isCacheActive"]),{transferCache:r,method:a}=t;if(!e||r===!1||a==="POST"&&!n.includePostRequests&&!r||a!=="POST"&&!Nu.includes(a)||!n.includeRequestsWithAuthHeaders&&bu(t)||n.filter?.(t)===!1)return i(t);let o=l(qr);
2if(l(mu,{optional:!0}))throw new A(2803,!1);let u=t.url,c=vu(t,u),d=o.get(c,null),E=n.includeHeaders;if(typeof r=="object"&&r.includeHeaders&&(E=r.includeHeaders),d){let{[Cu]:v,[Lu]:L,[Iu]:g,[Ru]:I,[Du]:b,[Ou]:W}=d,O=v;switch(L){case"arraybuffer":O=Ja(v);break;case"blob":O=new Blob([Ja(v)]);break}let re=new ne(g);return p(new Ve({body:O,headers:re,status:I,statusText:b,url:W}))}return i(t)}function bu(t){return t.headers.has("authorization")||t.headers.has("proxy-authorization")}function Za(t){return[...t.keys()].sort().map(i=>`${i}=${t.getAll(i)}`).join("&")}function vu(t,i){let{params:e,method:n,responseType:r}=t,a=Za(e),o=t.serializeBody();o instanceof URLSearchParams?o=Za(o):typeof o!="string"&&(o="");let s=[n,r,i,o,a].join("|"),u=yu(s);return u}function yu(t){let i=0;for(let e of t)i=Math.imul(31,i)+e.charCodeAt(0)<<0;return i+=2147483648,i.toString()}function Ja(t){let i=atob(t);return Uint8Array.from(i,n=>n.charCodeAt(0)).buffer}function eo(t){return[{provide:qi,useFactory:()=>(yt("NgHttpTransferCache"),T({isCacheActive:!0},t))},{provide:ji,useValue:Pu,multi:!0},{provide:wt,multi:!0,useFactory:()=>{let i=l(Ut),e=l(qi);return()=>{i.whenStable().then(()=>{e.isCacheActive=!1})}}}]}var ZT=(()=>{class t{_doc;_dom;constructor(e){this._doc=e,this._dom=ue()}addTag(e,n=!1){return e?this._getOrCreateElement(e,n):null}addTags(e,n=!1){return e?e.reduce((r,a)=>(a&&r.push(this._getOrCreateElement(a,n)),r),[]):[]}getTag(e){return e&&this._doc.querySelector(`meta[${e}]`)||null}getTags(e){if(!e)return[];let n=this._doc.querySelectorAll(`meta[${e}]`);return n?[].slice.call(n):[]}updateTag(e,n){if(!e)return null;n=n||this._parseSelector(e);let r=this.getTag(n);return r?this._setMetaElementAttributes(e,r):this._getOrCreateElement(e,!0)}removeTag(e){this.removeTagElement(this.getTag(e))}removeTagElement(e){e&&this._dom.remove(e)}_getOrCreateElement(e,n=!1){if(!n){let o=this._parseSelector(e),s=this.getTags(o).filter(u=>this._containsAttributes(e,u))[0];if(s!==void 0)return s}let r=this._dom.createElement("meta");return this._setMetaElementAttributes(e,r),this._doc.getElementsByTagName("head")[0].appendChild(r),r}_setMetaElementAttributes(e,n){return Object.keys(e).forEach(r=>n.setAttribute(this._getMetaKeyMap(r),e[r])),n}_parseSelector(e){let n=e.name?"name":"property";return`${n}="${e[n]}"`}_containsAttributes(e,n){return Object.keys(e).every(r=>n.getAttribute(this._getMetaKeyMap(r))===e[r])}_getMetaKeyMap(e){return wu[e]||e}static \u0275fac=function(n){return new(n||t)(h(N))};static \u0275prov=_({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),wu={httpEquiv:"http-equiv"},to=(()=>{class t{_doc;constructor(e){this._doc=e}getTitle(){return this._doc.title}setTitle(e){this._doc.title=e||""}static \u0275fac=function(n){return new(n||t)(h(N))};static \u0275prov=_({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var Uu=(()=>{class t{static \u0275fac=function(n){return new(n||t)};static \u0275prov=_({token:t,factory:function(n){let r=null;return n?r=new(n||t):r=h(Fu),r},providedIn:"root"})}return t})(),Fu=(()=>{class t extends Uu{_doc;constructor(e){super(),this._doc=e}sanitize(e,n){if(n==null)return null;switch(e){case Ge.NONE:return n;case Ge.HTML:return rt(n,"HTML")?He(n):na(this._doc,String(n)).toString();case Ge.STYLE:return rt(n,"Style")?He(n):n;case Ge.SCRIPT:if(rt(n,"Script"))return He(n);throw new A(5200,!1);case Ge.URL:return rt(n,"URL")?He(n):ta(String(n));case Ge.RESOURCE_URL:if(rt(n,"ResourceURL"))return He(n);throw new A(5201,!1);default:throw new A(5202,!1)}}bypassSecurityTrustHtml(e){return $r(e)}bypassSecurityTrustStyle(e){return Xr(e)}bypassSecurityTrustScript(e){return Zr(e)}bypassSecurityTrustUrl(e){return Jr(e)}bypassSecurityTrustResourceUrl(e){return ea(e)}static \u0275fac=function(n){return new(n||t)(h(N))};static \u0275prov=_({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),yn=(function(t){return t[t.NoHttpTransferCache=0]="NoHttpTransferCache",t[t.HttpTransferCacheOptions=1]="HttpTransferCacheOptions",t[t.I18nSupport=2]="I18nSupport",t[t.EventReplay=3]="EventReplay",t[t.IncrementalHydration=4]="IncrementalHydration",t})(yn||{});function ku(t,i=[],e={}){return{\u0275kind:t,\u0275providers:i}}function JT(){return ku(yn.EventReplay,Aa())}function e_(...t){let i=[],e=new Set;for(let{\u0275providers:r,\u0275kind:a}of t)e.add(a),r.length&&i.push(r);let n=e.has(yn.HttpTransferCacheOptions);return Je([[],[],fa(),e.has(yn.NoHttpTransferCache)||n?[]:eo({}),i])}var S="primary",en=Symbol("RouteTitle"),er=class{params;constructor(i){this.params=i||{}}has(i){return Object.prototype.hasOwnProperty.call(this.params,i)}get(i){if(this.has(i)){let e=this.params[i];return Array.isArray(e)?e[0]:e}return null}getAll(i){if(this.has(i)){let e=this.params[i];return Array.isArray(e)?e:[e]}return[]}get keys(){return Object.keys(this.params)}};function je(t){return new er(t)}function $i(t,i,e){for(let n=0;n<t.length;n++){let r=t[n],a=i[n];if(r[0]===":")e[r.substring(1)]=a;else if(r!==a.path)return!1}return!0}function lo(t,i,e){let n=e.path.split("/"),r=n.indexOf("**");if(r===-1){if(n.length>t.length||e.pathMatch==="full"&&(i.hasChildren()||n.length<t.length))return null;let u={},c=t.slice(0,n.length);return $i(n,c,u)?{consumed:c,posParams:u}:null}if(r!==n.lastIndexOf("**"))return null;let a=n.slice(0,r),o=n.slice(r+1);if(a.length+o.length>t.length||e.pathMatch==="full"&&i.hasChildren()&&e.path!=="**")return null;let s={};return!$i(a,t.slice(0,a.length),s)||!$i(o,t.slice(t.length-o.length),s)?null:{consumed:t,posParams:s}}function Bn(t){return new Promise((i,e)=>{t.pipe(De()).subscribe({next:n=>i(n),error:n=>e(n)})})}function zu(t,i){if(t.length!==i.length)return!1;for(let e=0;e<t.length;++e)if(!le(t[e],i[e]))return!1;return!0}function le(t,i){let e=t?tr(t):void 0,n=i?tr(i):void 0;if(!e||!n||e.length!=n.length)return!1;let r;for(let a=0;a<e.length;a++)if(r=e[a],!Eo(t[r],i[r]))return!1;return!0}function tr(t){return[...Object.keys(t),...Object.getOwnPropertySymbols(t)]}function Eo(t,i){if(Array.isArray(t)&&Array.isArray(i)){if(t.length!==i.length)return!1;let e=[...t].sort(),n=[...i].sort();return e.every((r,a)=>n[a]===r)}else return t===i}function Hu(t){return t.length>0?t[t.length-1]:null}function Ye(t){return ae(t)?t:Oi(t)?B(Promise.resolve(t)):p(t)}function To(t){return ae(t)?Bn(t):Promise.resolve(t)}var Gu={exact:po,subset:ho},_o={exact:xu,subset:Vu,ignored:()=>!0};function pr(t,i,e){let n=t instanceof x?t:i.parseUrl(t);return Ni(()=>nr(i.lastSuccessfulNavigation()?.finalUrl??new x,n,e))}function nr(t,i,e){return Gu[e.paths](t.root,i.root,e.matrixParams)&&_o[e.queryParams](t.queryParams,i.queryParams)&&!(e.fragment==="exact"&&t.fragment!==i.fragment)}function xu(t,i){return le(t,i)}function po(t,i,e){if(!We(t.segments,i.segments)||!Un(t.segments,i.segments,e)||t.numberOfChildren!==i.numberOfChildren)return!1;
vendor: 12,359 bytes, line 2
2for(let n in i.children)if(!t.children[n]||!po(t.children[n],i.children[n],e))return!1;return!0}function Vu(t,i){return Object.keys(i).length<=Object.keys(t).length&&Object.keys(i).every(e=>Eo(t[e],i[e]))}function ho(t,i,e){return So(t,i,i.segments,e)}function So(t,i,e,n){if(t.segments.length>e.length){let r=t.segments.slice(0,e.length);return!(!We(r,e)||i.hasChildren()||!Un(r,e,n))}else if(t.segments.length===e.length){if(!We(t.segments,e)||!Un(t.segments,e,n))return!1;for(let r in i.children)if(!t.children[r]||!ho(t.children[r],i.children[r],n))return!1;return!0}else{let r=e.slice(0,t.segments.length),a=e.slice(t.segments.length);return!We(t.segments,r)||!Un(t.segments,r,n)||!t.children[S]?!1:So(t.children[S],i,a,n)}}function Un(t,i,e){return i.every((n,r)=>_o[e](t[r].parameters,n.parameters))}var x=class{root;queryParams;fragment;_queryParamMap;constructor(i=new R([],{}),e={},n=null){this.root=i,this.queryParams=e,this.fragment=n}get queryParamMap(){return this._queryParamMap??=je(this.queryParams),this._queryParamMap}toString(){return ju.serialize(this)}},R=class{segments;children;parent=null;constructor(i,e){this.segments=i,this.children=e,Object.values(e).forEach(n=>n.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return Fn(this)}},Pe=class{path;parameters;_parameterMap;constructor(i,e){this.path=i,this.parameters=e}get parameterMap(){return this._parameterMap??=je(this.parameters),this._parameterMap}toString(){return fo(this)}};function Wu(t,i){return We(t,i)&&t.every((e,n)=>le(e.parameters,i[n].parameters))}function We(t,i){return t.length!==i.length?!1:t.every((e,n)=>e.path===i[n].path)}function Ku(t,i){let e=[];return Object.entries(t.children).forEach(([n,r])=>{n===S&&(e=e.concat(i(r,n)))}),Object.entries(t.children).forEach(([n,r])=>{n!==S&&(e=e.concat(i(r,n)))}),e}var qe=(()=>{class t{static \u0275fac=function(n){return new(n||t)};static \u0275prov=_({token:t,factory:()=>new Ce,providedIn:"root"})}return t})(),Ce=class{parse(i){let e=new rr(i);return new x(e.parseRootSegment(),e.parseQueryParams(),e.parseFragment())}serialize(i){let e=`/${Kt(i.root,!0)}`,n=qu(i.queryParams),r=typeof i.fragment=="string"?`#${Qu(i.fragment)}`:"";return`${e}${n}${r}`}},ju=new Ce;function Fn(t){return t.segments.map(i=>fo(i)).join("/")}function Kt(t,i){if(!t.hasChildren())return Fn(t);if(i){let e=t.children[S]?Kt(t.children[S],!1):"",n=[];return Object.entries(t.children).forEach(([r,a])=>{r!==S&&n.push(`${r}:${Kt(a,!1)}`)}),n.length>0?`${e}(${n.join("//")})`:e}else{let e=Ku(t,(n,r)=>r===S?[Kt(t.children[S],!1)]:[`${r}:${Kt(n,!1)}`]);return Object.keys(t.children).length===1&&t.children[S]!=null?`${Fn(t)}/${e[0]}`:`${Fn(t)}/(${e.join("//")})`}}function Ao(t){return encodeURIComponent(t).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function Mn(t){return Ao(t).replace(/%3B/gi,";")}function Qu(t){return encodeURI(t)}function ir(t){return Ao(t).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function kn(t){return decodeURIComponent(t)}function no(t){return kn(t.replace(/\+/g,"%20"))}function fo(t){return`${ir(t.path)}${Yu(t.parameters)}`}function Yu(t){return Object.entries(t).map(([i,e])=>`;${ir(i)}=${ir(e)}`).join("")}function qu(t){let i=Object.entries(t).map(([e,n])=>Array.isArray(n)?n.map(r=>`${Mn(e)}=${Mn(r)}`).join("&"):`${Mn(e)}=${Mn(n)}`).filter(e=>e);return i.length?`?${i.join("&")}`:""}var $u=/^[^\/()?;#]+/;function Xi(t){let i=t.match($u);return i?i[0]:""}var Xu=/^[^\/()?;=#]+/;function Zu(t){let i=t.match(Xu);return i?i[0]:""}var Ju=/^[^=?&#]+/;function ec(t){let i=t.match(Ju);return i?i[0]:""}var tc=/^[^&#]+/;function nc(t){let i=t.match(tc);return i?i[0]:""}var rr=class{url;remaining;constructor(i){this.url=i,this.remaining=i}parseRootSegment(){return this.consumeOptional("/"),this.remaining===""||this.peekStartsWith("?")||this.peekStartsWith("#")?new R([],{}):new R([],this.parseChildren())}parseQueryParams(){let i={};if(this.consumeOptional("?"))do this.parseQueryParam(i);while(this.consumeOptional("&"));return i}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(i=0){if(i>50)throw new A(4010,!1);if(this.remaining==="")return{};this.consumeOptional("/");let e=[];for(this.peekStartsWith("(")||e.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),e.push(this.parseSegment());let n={};this.peekStartsWith("/(")&&(this.capture("/"),n=this.parseParens(!0,i));let r={};return this.peekStartsWith("(")&&(r=this.parseParens(!1,i)),(e.length>0||Object.keys(n).length>0)&&(r[S]=new R(e,n)),r}parseSegment(){let i=Xi(this.remaining);if(i===""&&this.peekStartsWith(";"))throw new A(4009,!1);return this.capture(i),new Pe(kn(i),this.parseMatrixParams())}parseMatrixParams(){let i={};for(;this.consumeOptional(";");)this.parseParam(i);return i}parseParam(i){let e=Zu(this.remaining);if(!e)return;this.capture(e);let n="";if(this.consumeOptional("=")){let r=Xi(this.remaining);r&&(n=r,this.capture(n))}i[kn(e)]=kn(n)}parseQueryParam(i){let e=ec(this.remaining);if(!e)return;this.capture(e);let n="";if(this.consumeOptional("=")){let o=nc(this.remaining);o&&(n=o,this.capture(n))}let r=no(e),a=no(n);if(i.hasOwnProperty(r)){let o=i[r];Array.isArray(o)||(o=[o],i[r]=o),o.push(a)}else i[r]=a}parseParens(i,e){let n={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){let r=Xi(this.remaining),a=this.remaining[r.length];if(a!=="/"&&a!==")"&&a!==";")throw new A(4010,!1);let o;r.indexOf(":")>-1?(o=r.slice(0,r.indexOf(":")),this.capture(o),this.capture(":")):i&&(o=S);let s=this.parseChildren(e+1);n[o??S]=Object.keys(s).length===1&&s[S]?s[S]:new R([],s),this.consumeOptional("//")}return n}peekStartsWith(i){return this.remaining.startsWith(i)}consumeOptional(i){return this.peekStartsWith(i)?(this.remaining=this.remaining.substring(i.length),!0):!1}capture(i){if(!this.consumeOptional(i))throw new A(4011,!1)}};function go(t){return t.segments.length>0?new R([],{[S]:t}):t}function mo(t){let i={};for(let[n,r]of Object.entries(t.children)){let a=mo(r);if(n===S&&a.segments.length===0&&a.hasChildren())for(let[o,s]of Object.entries(a.children))i[o]=s;else(a.segments.length>0||a.hasChildren())&&(i[n]=a)}let e=new R(t.segments,i);return ic(e)}function ic(t){if(t.numberOfChildren===1&&t.children[S]){let i=t.children[S];return new R(t.segments.concat(i.segments),i.children)}return t}function be(t){return t instanceof x}function Co(t,i,e=null,n=null,r=new Ce){let a=Io(t);return Ro(a,i,e,n,r)}function Io(t){let i;function e(a){let o={};for(let u of a.children){let c=e(u);o[u.outlet]=c}let s=new R(a.url,o);return a===t&&(i=s),s}let n=e(t.root),r=go(n);return i??r}function Ro(t,i,e,n,r){let a=t;for(;a.parent;)a=a.parent;if(i.length===0)return Zi(a,a,a,e,n,r);let o=rc(i);if(o.toRoot())return Zi(a,a,new R([],{}),e,n,r);let s=ac(o,a,t),u=s.processChildren?Qt(s.segmentGroup,s.index,o.commands):Oo(s.segmentGroup,s.index,o.commands);return Zi(a,s.segmentGroup,u,e,n,r)}function zn(t){return typeof t=="object"&&t!=null&&!t.outlets&&!t.segmentPath}function qt(t){return typeof t=="object"&&t!=null&&t.outlets}function io(t,i,e){t||="\u0275";let n=new x;return n.queryParams={[t]:i},e.parse(e.serialize(n)).queryParams[t]}function Zi(t,i,e,n,r,a){let o={};for(let[c,d]of Object.entries(n??{}))o[c]=Array.isArray(d)?d.map(E=>io(c,E,a)):io(c,d,a);let s;t===i?s=e:s=Do(t,i,e);let u=go(mo(s));return new x(u,o,r)}function Do(t,i,e){let n={};return Object.entries(t.children).forEach(([r,a])=>{a===i?n[r]=e:n[r]=Do(a,i,e)}),new R(t.segments,n)}var Hn=class{isAbsolute;numberOfDoubleDots;commands;constructor(i,e,n){if(this.isAbsolute=i,this.numberOfDoubleDots=e,this.commands=n,i&&n.length>0&&zn(n[0]))throw new A(4003,!1);let r=n.find(qt);if(r&&r!==Hu(n))throw new A(4004,!1)}toRoot(){return this.isAbsolute&&this.commands.length===1&&this.commands[0]=="/"}};function rc(t){if(typeof t[0]=="string"&&t.length===1&&t[0]==="/")return new Hn(!0,0,t);let i=0,e=!1,n=t.reduce((r,a,o)=>{if(typeof a=="object"&&a!=null){if(a.outlets){let s={};return Object.entries(a.outlets).forEach(([u,c])=>{s[u]=typeof c=="string"?c.split("/"):c}),[...r,{outlets:s}]}if(a.segmentPath)return[...r,a.segmentPath]}return typeof a!="string"?[...r,a]:o===0?(a.split("/").forEach((s,u)=>{u==0&&s==="."||(u==0&&s===""?e=!0:s===".."?i++:s!=""&&r.push(s))}),r):[...r,a]},[]);return new Hn(e,i,n)}var dt=class{segmentGroup;processChildren;index;constructor(i,e,n){this.segmentGroup=i,this.processChildren=e,this.index=n}};function ac(t,i,e){if(t.isAbsolute)return new dt(i,!0,0);if(!e)return new dt(i,!1,NaN);if(e.parent===null)return new dt(e,!0,0);let n=zn(t.commands[0])?0:1,r=e.segments.length-1+n;return oc(e,r,t.numberOfDoubleDots)}function oc(t,i,e){let n=t,r=i,a=e;for(;a>r;){if(a-=r,n=n.parent,!n)throw new A(4005,!1);r=n.segments.length}return new dt(n,!1,r-a)}function sc(t){return qt(t[0])?t[0].outlets:{[S]:t}}function Oo(t,i,e){if(t??=new R([],{}),t.segments.length===0&&t.hasChildren())return Qt(t,i,e);let n=uc(t,i,e),r=e.slice(n.commandIndex);if(n.match&&n.pathIndex<t.segments.length){let a=new R(t.segments.slice(0,n.pathIndex),{});return a.children[S]=new R(t.segments.slice(n.pathIndex),t.children),Qt(a,0,r)}else return n.match&&r.length===0?new R(t.segments,{}):n.match&&!t.hasChildren()?ar(t,i,e):n.match?Qt(t,0,r):ar(t,i,e)}function Qt(t,i,e){if(e.length===0)return new R(t.segments,{});{let n=sc(e),r={};if(Object.keys(n).some(a=>a!==S)&&t.children[S]&&t.numberOfChildren===1&&t.children[S].segments.length===0){let a=Qt(t.children[S],i,e);return new R(t.segments,a.children)}return Object.entries(n).forEach(([a,o])=>{typeof o=="string"&&(o=[o]),o!==null&&(r[a]=Oo(t.children[a],i,o))}),Object.entries(t.children).forEach(([a,o])=>{n[a]===void 0&&(r[a]=o)}),new R(t.segments,r)}}function uc(t,i,e){let n=0,r=i,a={match:!1,pathIndex:0,commandIndex:0};for(;r<t.segments.length;){if(n>=e.length)return a;let o=t.segments[r],s=e[n];if(qt(s))break;let u=`${s}`,c=n<e.length-1?e[n+1]:null;if(r>0&&u===void 0)break;if(u&&c&&typeof c=="object"&&c.outlets===void 0){if(!ao(u,c,o))return a;n+=2}else{if(!ao(u,{},o))return a;n++}r++}return{match:!0,pathIndex:r,commandIndex:n}}function ar(t,i,e){let n=t.segments.slice(0,i),r=0;for(;r<e.length;){let a=e[r];if(qt(a)){let u=cc(a.outlets);return new R(n,u)}if(r===0&&zn(e[0])){let u=t.segments[i];n.push(new Pe(u.path,ro(e[0]))),r++;continue}let o=qt(a)?a.outlets[S]:`${a}`,s=r<e.length-1?e[r+1]:null;o&&s&&zn(s)?(n.push(new Pe(o,ro(s))),r+=2):(n.push(new Pe(o,{})),r++)}return new R(n,{})}function cc(t){let i={};return Object.entries(t).forEach(([e,n])=>{typeof n=="string"&&(n=[n]),n!==null&&(i[e]=ar(new R([],{}),0,n))}),i}function ro(t){let i={};return Object.entries(t).forEach(([e,n])=>i[e]=`${n}`),i}function ao(t,i,e){return t==e.path&&le(i,e.parameters)}var Et="imperative",y=(function(t){return t[t.NavigationStart=0]="NavigationStart",t[t.NavigationEnd=1]="NavigationEnd",t[t.NavigationCancel=2]="NavigationCancel",t[t.NavigationError=3]="NavigationError",t[t.RoutesRecognized=4]="RoutesRecognized",t[t.ResolveStart=5]="ResolveStart",t[t.ResolveEnd=6]="ResolveEnd",t[t.GuardsCheckStart=7]="GuardsCheckStart",t[t.GuardsCheckEnd=8]="GuardsCheckEnd",t[t.RouteConfigLoadStart=9]="RouteConfigLoadStart",t[t.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",t[t.ChildActivationStart=11]="ChildActivationStart",t[t.ChildActivationEnd=12]="ChildActivationEnd",t[t.ActivationStart=13]="ActivationStart",t[t.ActivationEnd=14]="ActivationEnd",t[t.Scroll=15]="Scroll",t[t.NavigationSkipped=16]="NavigationSkipped",t})(y||{}),V=class{id;url;constructor(i,e){this.id=i,this.url=e}},ve=class extends V{type=y.NavigationStart;navigationTrigger;restoredState;constructor(i,e,n="imperative",r=null){super(i,e),this.navigationTrigger=n,this.restoredState=r}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}},k=class extends V{urlAfterRedirects;type=y.NavigationEnd;constructor(i,e,n){super(i,e),this.urlAfterRedirects=n}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}},U=(function(t){return t[t.Redirect=0]="Redirect",t[t.SupersededByNewNavigation=1]="SupersededByNewNavigation",t[t.NoDataFromRe
2solver=2]="NoDataFromResolver",t[t.GuardRejected=3]="GuardRejected",t[t.Aborted=4]="Aborted",t})(U||{}),_t=(function(t){return t[t.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",t[t.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",t})(_t||{}),q=class extends V{reason;code;type=y.NavigationCancel;constructor(i,e,n,r){super(i,e),this.reason=n,this.code=r}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}};function Lo(t){return t instanceof q&&(t.code===U.Redirect||t.code===U.SupersededByNewNavigation)}var de=class extends V{reason;code;type=y.NavigationSkipped;constructor(i,e,n,r){super(i,e),this.reason=n,this.code=r}},Qe=class extends V{error;target;type=y.NavigationError;constructor(i,e,n,r){super(i,e),this.error=n,this.target=r}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}},pt=class extends V{urlAfterRedirects;state;type=y.RoutesRecognized;constructor(i,e,n,r){super(i,e),this.urlAfterRedirects=n,this.state=r}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},Gn=class extends V{urlAfterRedirects;state;type=y.GuardsCheckStart;constructor(i,e,n,r){super(i,e),this.urlAfterRedirects=n,this.state=r}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},xn=class extends V{urlAfterRedirects;state;shouldActivate;type=y.GuardsCheckEnd;constructor(i,e,n,r,a){super(i,e),this.urlAfterRedirects=n,this.state=r,this.shouldActivate=a}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}},Vn=class extends V{urlAfterRedirects;state;type=y.ResolveStart;constructor(i,e,n,r){super(i,e),this.urlAfterRedirects=n,this.state=r}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},Wn=class extends V{urlAfterRedirects;state;type=y.ResolveEnd;constructor(i,e,n,r){super(i,e),this.urlAfterRedirects=n,this.state=r}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},Kn=class{route;type=y.RouteConfigLoadStart;constructor(i){this.route=i}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}},jn=class{route;type=y.RouteConfigLoadEnd;constructor(i){this.route=i}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}},Qn=class{snapshot;type=y.ChildActivationStart;constructor(i){this.snapshot=i}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},Yn=class{snapshot;type=y.ChildActivationEnd;constructor(i){this.snapshot=i}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},qn=class{snapshot;type=y.ActivationStart;constructor(i){this.snapshot=i}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},$n=class{snapshot;type=y.ActivationEnd;constructor(i){this.snapshot=i}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},ht=class{routerEvent;position;anchor;scrollBehavior;type=y.Scroll;constructor(i,e,n,r){this.routerEvent=i,this.position=e,this.anchor=n,this.scrollBehavior=r}toString(){let i=this.position?`${this.position[0]}, ${this.position[1]}`:null;return`Scroll(anchor: '${this.anchor}', position: '${i}')`}},St=class{},At=class{url;navigationBehaviorOptions;constructor(i,e){this.url=i,this.navigationBehaviorOptions=e}};function lc(t){return!(t instanceof St)&&!(t instanceof At)}var Xn=class{rootInjector;outlet=null;route=null;children;attachRef=null;get injector(){return this.route?.snapshot._environmentInjector??this.rootInjector}constructor(i){this.rootInjector=i,this.children=new $e(this.rootInjector)}},$e=(()=>{class t{rootInjector;contexts=new Map;constructor(e){this.rootInjector=e}onChildOutletCreated(e,n){let r=this.getOrCreateContext(e);r.outlet=n,this.contexts.set(e,r)}onChildOutletDestroyed(e){let n=this.getContext(e);n&&(n.outlet=null,n.attachRef=null)}onOutletDeactivated(){let e=this.contexts;return this.contexts=new Map,e}onOutletReAttached(e){this.contexts=e}getOrCreateContext(e){let n=this.getContext(e);return n||(n=new Xn(this.rootInjector),this.contexts.set(e,n)),n}getContext(e){return this.contexts.get(e)||null}static \u0275fac=function(n){return new(n||t)(h(Y))};static \u0275prov=_({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Zn=class{_root;constructor(i){this._root=i}get root(){return this._root.value}
vendor: 17,966 bytes, line 2
2parent(i){let e=this.pathFromRoot(i);return e.length>1?e[e.length-2]:null}children(i){let e=or(i,this._root);return e?e.children.map(n=>n.value):[]}firstChild(i){let e=or(i,this._root);return e&&e.children.length>0?e.children[0].value:null}siblings(i){let e=sr(i,this._root);return e.length<2?[]:e[e.length-2].children.map(r=>r.value).filter(r=>r!==i)}pathFromRoot(i){return sr(i,this._root).map(e=>e.value)}};function or(t,i){if(t===i.value)return i;for(let e of i.children){let n=or(t,e);if(n)return n}return null}function sr(t,i){if(t===i.value)return[i];for(let e of i.children){let n=sr(t,e);if(n.length)return n.unshift(i),n}return[]}var G=class{value;children;constructor(i,e){this.value=i,this.children=e}toString(){return`TreeNode(${this.value})`}};function lt(t){let i={};return t&&t.children.forEach(e=>i[e.value.outlet]=e),i}var $t=class extends Zn{snapshot;constructor(i,e){super(i),this.snapshot=e,hr(this,i)}toString(){return this.snapshot.toString()}};function No(t,i){let e=dc(t,i),n=new K([new Pe("",{})]),r=new K({}),a=new K({}),o=new K({}),s=new K(""),u=new Ee(n,r,o,s,a,S,t,e.root);return u.snapshot=e.root,new $t(new G(u,[]),e)}function dc(t,i){let e={},n={},r={},o=new Ke([],e,r,"",n,S,t,null,{},i);return new Xt("",new G(o,[]))}var Ee=class{urlSubject;paramsSubject;queryParamsSubject;fragmentSubject;dataSubject;outlet;component;snapshot;_futureSnapshot;_routerState;_paramMap;_queryParamMap;title;url;params;queryParams;fragment;data;constructor(i,e,n,r,a,o,s,u){this.urlSubject=i,this.paramsSubject=e,this.queryParamsSubject=n,this.fragmentSubject=r,this.dataSubject=a,this.outlet=o,this.component=s,this._futureSnapshot=u,this.title=this.dataSubject?.pipe(P(c=>c[en]))??p(void 0),this.url=i,this.params=e,this.queryParams=n,this.fragment=r,this.data=a}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe(P(i=>je(i))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe(P(i=>je(i))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}};function Jn(t,i,e="emptyOnly"){let n,{routeConfig:r}=t;return i!==null&&(e==="always"||r?.path===""||!i.component&&!i.routeConfig?.loadComponent)?n={params:T(T({},i.params),t.params),data:T(T({},i.data),t.data),resolve:T(T(T(T({},t.data),i.data),r?.data),t._resolvedData)}:n={params:T({},t.params),data:T({},t.data),resolve:T(T({},t.data),t._resolvedData??{})},r&&bo(r)&&(n.resolve[en]=r.title),n}var Ke=class{url;params;queryParams;fragment;data;outlet;component;routeConfig;_resolve;_resolvedData;_routerState;_paramMap;_queryParamMap;_environmentInjector;get title(){return this.data?.[en]}constructor(i,e,n,r,a,o,s,u,c,d){this.url=i,this.params=e,this.queryParams=n,this.fragment=r,this.data=a,this.outlet=o,this.component=s,this.routeConfig=u,this._resolve=c,this._environmentInjector=d}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=je(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=je(this.queryParams),this._queryParamMap}toString(){let i=this.url.map(n=>n.toString()).join("/"),e=this.routeConfig?this.routeConfig.path:"";return`Route(url:'${i}', path:'${e}')`}},Xt=class extends Zn{url;constructor(i,e){super(e),this.url=i,hr(this,e)}toString(){return Po(this._root)}};function hr(t,i){i.value._routerState=t,i.children.forEach(e=>hr(t,e))}function Po(t){let i=t.children.length>0?` { ${t.children.map(Po).join(", ")} } `:"";return`${t.value}${i}`}function Ji(t){if(t.snapshot){let i=t.snapshot,e=t._futureSnapshot;t.snapshot=e,le(i.queryParams,e.queryParams)||t.queryParamsSubject.next(e.queryParams),i.fragment!==e.fragment&&t.fragmentSubject.next(e.fragment),le(i.params,e.params)||t.paramsSubject.next(e.params),zu(i.url,e.url)||t.urlSubject.next(e.url),le(i.data,e.data)||t.dataSubject.next(e.data)}else t.snapshot=t._futureSnapshot,t.dataSubject.next(t._futureSnapshot.data)}function ur(t,i){let e=le(t.params,i.params)&&Wu(t.url,i.url),n=!t.parent!=!i.parent;return e&&!n&&(!t.parent||ur(t.parent,i.parent))}function bo(t){return typeof t.title=="string"||t.title===null}var vo=new f(""),Sr=(()=>{class t{activated=null;get activatedComponentRef(){return this.activated}_activatedRoute=null;name=S;activateEvents=new Fe;deactivateEvents=new Fe;attachEvents=new Fe;detachEvents=new Fe;routerOutletData=Sa();parentContexts=l($e);location=l(ot);changeDetector=l(Le);inputBinder=l(tn,{optional:!0});supportsBindingToComponentInputs=!0;ngOnChanges(e){if(e.name){let{firstChange:n,previousValue:r}=e.name;if(n)return;this.isTrackedInParentContexts(r)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(r)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(e){return this.parentContexts.getContext(e)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;let e=this.parentContexts.getContext(this.name);e?.route&&(e.attachRef?this.attach(e.attachRef,e.route):this.activateWith(e.route,e.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new A(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new A(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new A(4012,!1);this.location.detach();let e=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(e.instance),e}attach(e,n){this.activated=e,this._activatedRoute=n,this.location.insert(e.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(e.instance)}deactivate(){if(this.activated){let e=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(e)}}activateWith(e,n){if(this.isActivated)throw new A(4013,!1);this._activatedRoute=e;let r=this.location,o=e.snapshot.component,s=this.parentContexts.getOrCreateContext(this.name).children,u=new cr(e,s,r.injector,this.routerOutletData);this.activated=r.createComponent(o,{index:r.length,injector:u,environmentInjector:n}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static \u0275fac=function(n){return new(n||t)};static \u0275dir=se({type:t,selectors:[["router-outlet"]],inputs:{name:"name",routerOutletData:[1,"routerOutletData"]},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],features:[Be]})}return t})(),cr=class{route;childContexts;parent;outletData;constructor(i,e,n,r){this.route=i,this.childContexts=e,this.parent=n,this.outletData=r}get(i,e){return i===Ee?this.route:i===$e?this.childContexts:i===vo?this.outletData:this.parent.get(i,e)}},tn=new f(""),Ar=(()=>{class t{outletDataSubscriptions=new Map;bindActivatedRouteToOutletComponent(e){this.unsubscribeFromRouteData(e),this.subscribeToRouteData(e)}unsubscribeFromRouteData(e){this.outletDataSubscriptions.get(e)?.unsubscribe(),this.outletDataSubscriptions.delete(e)}subscribeToRouteData(e){let{activatedRoute:n}=e,r=pi([n.queryParams,n.params,n.data]).pipe(z(([a,o,s],u)=>(s=T(T(T({},a),o),s),u===0?p(s):Promise.resolve(s)))).subscribe(a=>{if(!e.isActivated||!e.activatedComponentRef||e.activatedRoute!==n||n.component===null){this.unsubscribeFromRouteData(e);return}let o=Ca(n.component);if(!o){this.unsubscribeFromRouteData(e);return}for(let{templateName:s}of o.inputs)e.activatedComponentRef.setInput(s,a[s])});this.outletDataSubscriptions.set(e,r)}static \u0275fac=function(n){return new(n||t)};static \u0275prov=_({token:t,factory:t.\u0275fac})}return t})(),fr=(()=>{class t{static \u0275fac=function(n){return new(n||t)};static \u0275cmp=ua({type:t,selectors:[["ng-component"]],exportAs:["emptyRouterOutlet"],decls:1,vars:0,template:function(n,r){n&1&&la(0,"router-outlet")},dependencies:[Sr],encapsulation:2})}return t})();function gr(t){let i=t.children&&t.children.map(gr),e=i?w(T({},t),{children:i}):T({},t);return!e.component&&!e.loadComponent&&(i||e.loadChildren)&&e.outlet&&e.outlet!==S&&(e.component=fr),e}function Ec(t,i,e){let n=Zt(t,i._root,e?e._root:void 0);return new $t(n,i)}function Zt(t,i,e){if(e&&t.shouldReuseRoute(i.value,e.value.snapshot)){let n=e.value;n._futureSnapshot=i.value;let r=Tc(t,i,e);return new G(n,r)}else{if(t.shouldAttach(i.value)){let a=t.retrieve(i.value);if(a!==null){let o=a.route;return o.value._futureSnapshot=i.value,o.children=i.children.map(s=>Zt(t,s)),o}}let n=_c(i.value),r=i.children.map(a=>Zt(t,a));return new G(n,r)}}function Tc(t,i,e){return i.children.map(n=>{for(let r of e.children)if(t.shouldReuseRoute(n.value,r.value.snapshot))return Zt(t,n,r);return Zt(t,n)})}function _c(t){return new Ee(new K(t.url),new K(t.params),new K(t.queryParams),new K(t.fragment),new K(t.data),t.outlet,t.component,t)}var ft=class{redirectTo;navigationBehaviorOptions;constructor(i,e){this.redirectTo=i,this.navigationBehaviorOptions=e}},yo="ngNavigationCancelingError";function ei(t,i){let{redirectTo:e,navigationBehaviorOptions:n}=be(i)?{redirectTo:i,navigationBehaviorOptions:void 0}:i,r=Mo(!1,U.Redirect);return r.url=e,r.navigationBehaviorOptions=n,r}function Mo(t,i){let e=new Error(`NavigationCancelingError: ${t||""}`);return e[yo]=!0,e.cancellationCode=i,e}function pc(t){return wo(t)&&be(t.url)}function wo(t){return!!t&&t[yo]}var lr=class{routeReuseStrategy;futureState;currState;forwardEvent;inputBindingEnabled;constructor(i,e,n,r,a){this.routeReuseStrategy=i,this.futureState=e,this.currState=n,this.forwardEvent=r,this.inputBindingEnabled=a}activate(i){let e=this.futureState._root,n=this.currState?this.currState._root:null;this.deactivateChildRoutes(e,n,i),Ji(this.futureState.root),this.activateChildRoutes(e,n,i)}deactivateChildRoutes(i,e,n){let r=lt(e);i.children.forEach(a=>{let o=a.value.outlet;this.deactivateRoutes(a,r[o],n),delete r[o]}),Object.values(r).forEach(a=>{this.deactivateRouteAndItsChildren(a,n)})}deactivateRoutes(i,e,n){let r=i.value,a=e?e.value:null;if(r===a)if(r.component){let o=n.getContext(r.outlet);o&&this.deactivateChildRoutes(i,e,o.children)}else this.deactivateChildRoutes(i,e,n);else a&&this.deactivateRouteAndItsChildren(e,n)}deactivateRouteAndItsChildren(i,e){i.value.component&&this.routeReuseStrategy.shouldDetach(i.value.snapshot)?this.detachAndStoreRouteSubtree(i,e):this.deactivateRouteAndOutlet(i,e)}detachAndStoreRouteSubtree(i,e){let n=e.getContext(i.value.outlet),r=n&&i.value.component?n.children:e,a=lt(i);for(let o of Object.values(a))this.deactivateRouteAndItsChildren(o,r);if(n&&n.outlet){let o=n.outlet.detach(),s=n.children.onOutletDeactivated();this.routeReuseStrategy.store(i.value.snapshot,{componentRef:o,route:i,contexts:s})}}deactivateRouteAndOutlet(i,e){let n=e.getContext(i.value.outlet),r=n&&i.value.component?n.children:e,a=lt(i);for(let o of Object.values(a))this.deactivateRouteAndItsChildren(o,r);n&&(n.outlet&&(n.outlet.deactivate(),n.children.onOutletDeactivated()),n.attachRef=null,n.route=null)}activateChildRoutes(i,e,n){let r=lt(e);i.children.forEach(a=>{this.activateRoutes(a,r[a.value.outlet],n),this.forwardEvent(new $n(a.value.snapshot))}),i.children.length&&this.forwardEvent(new Yn(i.value.snapshot))}activateRoutes(i,e,n){let r=i.value,a=e?e.value:null;if(Ji(r),r===a)if(r.component){let o=n.getOrCreateContext(r.outlet);this.activateChildRoutes(i,e,o.children)}else this.activateChildRoutes(i,e,n);else if(r.component){let o=n.getOrCreateContext(r.outlet);if(this.routeReuseStrategy.shouldAttach(r.snapshot)){let s=this.routeReuseStrategy.retrieve(r.snapshot);this.routeReuseStrategy.store(r.snapshot,null),o.children.onOutletReAttached(s.contexts),o.attachRef=s.componentRef,o.route=s.route.value,o.outlet&&o.outlet.attach(s.componentRef,s.route.value),Ji(s.route.value),this.activateChildRoutes(i,null,o.children)}else o.attachRef=null,o.route=r,o.outlet&&o.outlet.activateWith(r,o.injector),this.activateChildRoutes(i,null,o.children)}else this.activateChildRoutes(i,null,n)}},ti=class{path;route;constructor(i){this.path=i,this.route=this.path[this.path.length-1]}},Tt=class{component;route;constructor(i,e){this.component=i,this.route=e}};function hc(t,i,e){let n=t._root,r=i?i._root:null;return jt(n,r,e,[n.value])}function Sc(t){let i=t.routeConfig?t.routeConfig.canActivateChild:null;return!i||i.length===0?null:{node:t,guards:i}}function mt(t,i){let e=Symbol(),n=i.get(t,e);return n===e?typeof t=="function"&&!Vr(t)?t:i.get(t):n}function jt(t,i,e,n,r={canDeactivateChecks:[],canActivateChecks:[]}){let a=lt(i);return t.children.forEach(o=>{Ac(o,a[o.value.outlet],e,n.concat([o.value]),r),delete a[o.value.outlet]}),Object.entries(a).forEach(([o,s])=>Yt(s,e.getContext(o),r)),r}function Ac(t,i,e,n,r={canDeactivateChecks:[],canActivateChecks:[]}){let a=t.value,o=i?i.value:null,s=e?e.getContext(t.value.outlet):null;if(o&&a.routeConfig===o.routeConfig){let u=fc(o,a,a.routeConfig.runGuardsAndResolvers);u?r.canActivateChecks.push(new ti(n)):(a.data=o.data,a._resolvedData=o._resolvedData),a.component?jt(t,i,s?s.children:null,n,r):jt(t,i,e,n,r),u&&s&&s.outlet&&s.outlet.isActivated&&r.canDeactivateChecks.push(new Tt(s.outlet.component,o))}else o&&Yt(i,s,r),r.canActivateChecks.push(new ti(n)),a.component?jt(t,null,s?s.children:null,n,r):jt(t,null,e,n,r);return r}function fc(t,i,e){if(typeof e=="function")return F(i._environmentInjector,()=>e(t,i));switch(e){case"pathParamsChange":return!We(t.url,i.url);case"pathParamsOrQueryParamsChange":return!We(t.url,i.url)||!le(t.queryParams,i.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!ur(t,i)||!le(t.queryParams,i.queryParams);default:return!ur(t,i)}}function Yt(t,i,e){let n=lt(t),r=t.value;Object.entries(n).forEach(([a,o])=>{r.component?i?Yt(o,i.children.getContext(a),e):Yt(o,null,e):Yt(o,i,e)}),r.component?i&&i.outlet&&i.outlet.isActivated?e.canDeactivateChecks.push(new Tt(i.outlet.component,r)):e.canDeactivateChecks.push(new Tt(null,r)):e.canDeactivateChecks.push(new Tt(null,r))}function nn(t){return typeof t=="function"}function gc(t){return typeof t=="boolean"}function mc(t){return t&&nn(t.canLoad)}function Cc(t){return t&&nn(t.canActivate)}function Ic(t){return t&&nn(t.canActivateChild)}function Rc(t){return t&&nn(t.canDeactivate)}function Dc(t){return t&&nn(t.canMatch)}function Uo(t){return t instanceof Hr||t?.name==="EmptyError"}var wn=Symbol("INITIAL_VALUE");function gt(){return z(t=>pi(t.map(i=>i.pipe(X(1),xr(wn)))).pipe(P(i=>{for(let e of i)if(e!==!0){if(e===wn)return wn;if(e===!1||Oc(e))return e}return!0}),Q(i=>i!==wn),X(1)))}function Oc(t){return be(t)||t instanceof ft}function Fo(t){return t.aborted?p(void 0).pipe(X(1)):new Nt(i=>{let e=()=>{i.next(),i.complete()};return t.addEventListener("abort",e),()=>t.removeEventListener("abort",e)})}function ko(t){return dn(Fo(t))}function Lc(t){return oe(i=>{let{targetSnapshot:e,currentSnapshot:n,guards:{canActivateChecks:r,canDeactivateChecks:a}}=i;return a.length===0&&r.length===0?p(w(T({},i),{guardsResult:!0})):Nc(a,e,n).pipe(oe(o=>o&&gc(o)?Pc(e,r,t):p(o)),P(o=>w(T({},i),{guardsResult:o})))})}function Nc(t,i,e){return B(t).pipe(oe(n=>wc(n.component,n.route,e,i)),De(n=>n!==!0,!0))}function Pc(t,i,e){return B(i).pipe(_e(n=>bt(vc(n.route.parent,e),bc(n.route,e),Mc(t,n.path),yc(t,n.route))),De(n=>n!==!0,!0))}function bc(t,i){return t!==null&&i&&i(new qn(t)),p(!0)}function vc(t,i){return t!==null&&i&&i(new Qn(t)),p(!0)}function yc(t,i){let e=i.routeConfig?i.routeConfig.canActivate:null;if(!e||e.length===0)return p(!0);let n=e.map(r=>we(()=>{let a=i._environmentInjector,o=mt(r,a),s=Cc(o)?o.canActivate(i,t):F(a,()=>o(i,t));return Ye(s).pipe(De())}));return p(n).pipe(gt())}function Mc(t,i){let e=i[i.length-1],r=i.slice(0,i.length-1).reverse().map(a=>Sc(a)).filter(a=>a!==null).map(a=>we(()=>{let o=a.guards.map(s=>{let u=a.node._environmentInjector,c=mt(s,u),d=Ic(c)?c.canActivateChild(e,t):F(u,()=>c(e,t));return Ye(d).pipe(De())});return p(o).pipe(gt())}));return p(r).pipe(gt())}function wc(t,i,e,n){let r=i&&i.routeConfig?i.routeConfig.canDeactivate:null;if(!r||r.length===0)return p(!0);let a=r.map(o=>{let s=i._environmentInjector,u=mt(o,s),c=Rc(u)?u.canDeactivate(t,i,e,n):F(s,()=>u(t,i,e,n));return Ye(c).pipe(De())});return p(a).pipe(gt())}function Uc(t,i,e,n,r){let a=i.canLoad;if(a===void 0||a.length===0)return p(!0);let o=a.map(s=>{let u=mt(s,t),c=mc(u)?u.canLoad(i,e):F(t,()=>u(i,e)),d=Ye(c);return r?d.pipe(ko(r)):d});return p(o).pipe(gt(),Bo(n))}function Bo(t){return Br(pe(i=>{if(typeof i!="boolean")throw ei(t,i)}),P(i=>i===!0))}function Fc(t,i,e,n,r){let a=i.canMatch;if(!a||a.length===0)return p(!0);let o=a.map(s=>{let u=mt(s,t),c=Dc(u)?u.canMatch(i,e):F(t,()=>u(i,e));return Ye(c).pipe(ko(r))});return p(o).pipe(gt(),Bo(n))}var me=class t extends Error{segmentGroup;constructor(i){super(),this.segmentGroup=i||null,Object.setPrototypeOf(this,t.prototype)}},Jt=class t extends Error{urlTree;constructor(i){super(),this.urlTree=i,Object.setPrototypeOf(this,t.prototype)}};function kc(t){throw new A(4e3,!1)}function Bc(t){throw Mo(!1,U.GuardRejected)}var dr=class{urlSerializer;urlTree;
2constructor(i,e){this.urlSerializer=i,this.urlTree=e}lineralizeSegments(i,e){return D(this,null,function*(){let n=[],r=e.root;for(;;){if(n=n.concat(r.segments),r.numberOfChildren===0)return n;if(r.numberOfChildren>1||!r.children[S])throw kc(`${i.redirectTo}`);r=r.children[S]}})}applyRedirectCommands(i,e,n,r,a){return D(this,null,function*(){let o=yield zc(e,r,a);if(o instanceof x)throw new Jt(o);let s=this.applyRedirectCreateUrlTree(o,this.urlSerializer.parse(o),i,n);if(o[0]==="/")throw new Jt(s);return s})}applyRedirectCreateUrlTree(i,e,n,r){let a=this.createSegmentGroup(i,e.root,n,r);return new x(a,this.createQueryParams(e.queryParams,this.urlTree.queryParams),e.fragment)}createQueryParams(i,e){let n={};return Object.entries(i).forEach(([r,a])=>{if(typeof a=="string"&&a[0]===":"){let s=a.substring(1);n[r]=e[s]}else n[r]=a}),n}createSegmentGroup(i,e,n,r){let a=this.createSegments(i,e.segments,n,r),o={};return Object.entries(e.children).forEach(([s,u])=>{o[s]=this.createSegmentGroup(i,u,n,r)}),new R(a,o)}createSegments(i,e,n,r){return e.map(a=>a.path[0]===":"?this.findPosParam(i,a,r):this.findOrReturn(a,n))}findPosParam(i,e,n){let r=n[e.path.substring(1)];if(!r)throw new A(4001,!1);return r}findOrReturn(i,e){let n=0;for(let r of e){if(r.path===i.path)return e.splice(n),r;n++}return i}};function zc(t,i,e){if(typeof t=="string")return Promise.resolve(t);let n=t,{queryParams:r,fragment:a,routeConfig:o,url:s,outlet:u,params:c,data:d,title:E,paramMap:m,queryParamMap:C}=i;return Bn(Ye(F(e,()=>n({params:c,data:d,queryParams:r,fragment:a,routeConfig:o,url:s,outlet:u,title:E,paramMap:m,queryParamMap:C}))))}function Hc(t,i){return t.providers&&!t._injector&&(t._injector=_n(t.providers,i,`Route: ${t.path}`)),t._injector??i}function ie(t){return t.outlet||S}function Gc(t,i){let e=t.filter(n=>ie(n)===i);return e.push(...t.filter(n=>ie(n)!==i)),e}var Er={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function xc(t,i,e,n,r,a){let o=zo(t,i,e);return o.matched?(n=Hc(i,n),Fc(n,i,e,r,a).pipe(P(s=>s===!0?o:T({},Er)))):p(o)}function zo(t,i,e){if(i.path==="")return i.pathMatch==="full"&&(t.hasChildren()||e.length>0)?T({},Er):{matched:!0,consumedSegments:[],remainingSegments:e,parameters:{},positionalParamSegments:{}};let r=(i.matcher||lo)(e,t,i);if(!r)return T({},Er);let a={};Object.entries(r.posParams??{}).forEach(([s,u])=>{a[s]=u.path});let o=r.consumed.length>0?T(T({},a),r.consumed[r.consumed.length-1].parameters):a;return{matched:!0,consumedSegments:r.consumed,remainingSegments:e.slice(r.consumed.length),parameters:o,positionalParamSegments:r.posParams??{}}}function oo(t,i,e,n){return e.length>0&&Kc(t,e,n)?{segmentGroup:new R(i,Wc(n,new R(e,t.children))),slicedSegments:[]}:e.length===0&&jc(t,e,n)?{segmentGroup:new R(t.segments,Vc(t,e,n,t.children)),slicedSegments:e}:{segmentGroup:new R(t.segments,t.children),slicedSegments:e}}function Vc(t,i,e,n){let r={};for(let a of e)if(ii(t,i,a)&&!n[ie(a)]){let o=new R([],{});r[ie(a)]=o}return T(T({},n),r)}function Wc(t,i){let e={};e[S]=i;for(let n of t)if(n.path===""&&ie(n)!==S){let r=new R([],{});e[ie(n)]=r}return e}function Kc(t,i,e){return e.some(n=>ii(t,i,n)&&ie(n)!==S)}function jc(t,i,e){return e.some(n=>ii(t,i,n))}function ii(t,i,e){return(t.hasChildren()||i.length>0)&&e.pathMatch==="full"?!1:e.path===""}function Qc(t,i,e){return i.length===0&&!t.children[e]}var Tr=class{};function Yc(t,i,e,n,r,a,o="emptyOnly",s){return D(this,null,function*(){return new _r(t,i,e,n,r,o,a,s).recognize()})}var qc=31,_r=class{injector;configLoader;rootComponentType;config;urlTree;paramsInheritanceStrategy;urlSerializer;abortSignal;applyRedirects;absoluteRedirectCount=0;allowRedirects=!0;constructor(i,e,n,r,a,o,s,u){this.injector=i,this.configLoader=e,this.rootComponentType=n,this.config=r,this.urlTree=a,this.paramsInheritanceStrategy=o,this.urlSerializer=s,this.abortSignal=u,this.applyRedirects=new dr(this.urlSerializer,this.urlTree)}noMatchError(i){return new A(4002,`'${i.segmentGroup}'`)}recognize(){return D(this,null,function*(){let i=oo(this.urlTree.root,[],[],this.config).segmentGroup,{children:e,rootSnapshot:n}=yield this.match(i),r=new G(n,e),a=new Xt("",r),o=Co(n,[],this.urlTree.queryParams,this.urlTree.fragment);return o.queryParams=this.urlTree.queryParams,a.url=this.urlSerializer.serialize(o),{state:a,tree:o}})}match(i){return D(this,null,function*(){let e=new Ke([],Object.freeze({}),Object.freeze(T({},this.urlTree.queryParams)),this.urlTree.fragment,Object.freeze({}),S,this.rootComponentType,null,{},this.injector);try{return{children:yield this.processSegmentGroup(this.injector,this.config,i,S,e),rootSnapshot:e}}catch(n){if(n instanceof Jt)return this.urlTree=n.urlTree,this.match(n.urlTree.root);throw n instanceof me?this.noMatchError(n):n}})}processSegmentGroup(i,e,n,r,a){return D(this,null,function*(){if(n.segments.length===0&&n.hasChildren())return this.processChildren(i,e,n,a);let o=yield this.processSegment(i,e,n,n.segments,r,!0,a);return o instanceof G?[o]:[]})}processChildren(i,e,n,r){return D(this,null,function*(){let a=[];for(let u of Object.keys(n.children))u==="primary"?a.unshift(u):a.push(u);let o=[];for(let u of a){let c=n.children[u],d=Gc(e,u),E=yield this.processSegmentGroup(i,d,c,u,r);o.push(...E)}let s=Ho(o);return $c(s),s})}processSegment(i,e,n,r,a,o,s){return D(this,null,function*(){for(let u of e)try{return yield this.processSegmentAgainstRoute(u._injector??i,e,u,n,r,a,o,s)}catch(c){if(c instanceof me||Uo(c))continue;throw c}if(Qc(n,r,a))return new Tr;throw new me(n)})}processSegmentAgainstRoute(i,e,n,r,a,o,s,u){return D(this,null,function*(){if(ie(n)!==o&&(o===S||!ii(r,a,n)))throw new me(r);if(n.redirectTo===void 0)return this.matchSegmentAgainstRoute(i,r,n,a,o,u);if(this.allowRedirects&&s)return this.expandSegmentAgainstRouteUsingRedirect(i,r,e,n,a,o,u);throw new me(r)})}
2expandSegmentAgainstRouteUsingRedirect(i,e,n,r,a,o,s){return D(this,null,function*(){let{matched:u,parameters:c,consumedSegments:d,positionalParamSegments:E,remainingSegments:m}=zo(e,r,a);if(!u)throw new me(e);typeof r.redirectTo=="string"&&r.redirectTo[0]==="/"&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>qc&&(this.allowRedirects=!1));let C=new Ke(a,c,Object.freeze(T({},this.urlTree.queryParams)),this.urlTree.fragment,so(r),ie(r),r.component??r._loadedComponent??null,r,uo(r),i),v=Jn(C,s,this.paramsInheritanceStrategy);if(C.params=Object.freeze(v.params),C.data=Object.freeze(v.data),this.abortSignal.aborted)throw new Error(this.abortSignal.reason);let L=yield this.applyRedirects.applyRedirectCommands(d,r.redirectTo,E,C,i),g=yield this.applyRedirects.lineralizeSegments(r,L);return this.processSegment(i,n,e,g.concat(m),o,!1,s)})}matchSegmentAgainstRoute(i,e,n,r,a,o){return D(this,null,function*(){if(this.abortSignal.aborted)throw new Error(this.abortSignal.reason);let s=yield Bn(xc(e,n,r,i,this.urlSerializer,this.abortSignal));if(n.path==="**"&&(e.children={}),!s?.matched)throw new me(e);i=n._injector??i;let{routes:u}=yield this.getChildConfig(i,n,r),c=n._loadedInjector??i,{parameters:d,consumedSegments:E,remainingSegments:m}=s,C=new Ke(E,d,Object.freeze(T({},this.urlTree.queryParams)),this.urlTree.fragment,so(n),ie(n),n.component??n._loadedComponent??null,n,uo(n),i),v=Jn(C,o,this.paramsInheritanceStrategy);C.params=Object.freeze(v.params),C.data=Object.freeze(v.data);let{segmentGroup:L,slicedSegments:g}=oo(e,E,m,u);if(g.length===0&&L.hasChildren()){let W=yield this.processChildren(c,u,L,C);return new G(C,W)}if(u.length===0&&g.length===0)return new G(C,[]);let I=ie(n)===a,b=yield this.processSegment(c,u,L,g,I?S:a,!0,C);return new G(C,b instanceof G?[b]:[])})}getChildConfig(i,e,n){return D(this,null,function*(){if(e.children)return{routes:e.children,injector:i};if(e.loadChildren){if(e._loadedRoutes!==void 0){let a=e._loadedNgModuleFactory;return a&&!e._loadedInjector&&(e._loadedInjector=a.create(i).injector),{routes:e._loadedRoutes,injector:e._loadedInjector}}if(this.abortSignal.aborted)throw new Error(this.abortSignal.reason);if(yield Bn(Uc(i,e,n,this.urlSerializer,this.abortSignal))){let a=yield this.configLoader.loadChildren(i,e);return e._loadedRoutes=a.routes,e._loadedInjector=a.injector,e._loadedNgModuleFactory=a.factory,a}throw Bc(e)}return{routes:[],injector:i}})}};function $c(t){t.sort((i,e)=>i.value.outlet===S?-1:e.value.outlet===S?1:i.value.outlet.localeCompare(e.value.outlet))}function Xc(t){let i=t.value.routeConfig;return i&&i.path===""}function Ho(t){let i=[],e=new Set;for(let n of t){if(!Xc(n)){i.push(n);continue}let r=i.find(a=>n.value.routeConfig===a.value.routeConfig);r!==void 0?(r.children.push(...n.children),e.add(r)):i.push(n)}for(let n of e){let r=Ho(n.children);i.push(new G(n.value,r))}return i.filter(n=>!e.has(n))}function so(t){return t.data||{}}function uo(t){return t.resolve||{}}function Zc(t,i,e,n,r,a,o){return oe(s=>D(null,null,function*(){let{state:u,tree:c}=yield Yc(t,i,e,n,s.extractedUrl,r,a,o);return w(T({},s),{targetSnapshot:u,urlAfterRedirects:c})}))}function Jc(t){return oe(i=>{let{targetSnapshot:e,guards:{canActivateChecks:n}}=i;if(!n.length)return p(i);let r=new Set(n.map(s=>s.route)),a=new Set;for(let s of r)if(!a.has(s))for(let u of Go(s))a.add(u);let o=0;return B(a).pipe(_e(s=>r.has(s)?el(s,e,t):(s.data=Jn(s,s.parent,t).resolve,p(void 0))),pe(()=>o++),hi(1),oe(s=>o===a.size?p(i):j))})}function Go(t){let i=t.children.map(e=>Go(e)).flat();return[t,...i]}function el(t,i,e){let n=t.routeConfig,r=t._resolve;return n?.title!==void 0&&!bo(n)&&(r[en]=n.title),we(()=>(t.data=Jn(t,t.parent,e).resolve,tl(r,t,i).pipe(P(a=>(t._resolvedData=a,t.data=T(T({},t.data),a),null)))))}function tl(t,i,e){let n=tr(t);if(n.length===0)return p({});let r={};return B(n).pipe(oe(a=>nl(t[a],i,e).pipe(De(),pe(o=>{if(o instanceof ft)throw ei(new Ce,o);r[a]=o}))),hi(1),P(()=>r),cn(a=>Uo(a)?j:zr(a)))}function nl(t,i,e){let n=i._environmentInjector,r=mt(t,n),a=r.resolve?r.resolve(i,e):F(n,()=>r(i,e));return Ye(a)}function co(t){return z(i=>{let e=t(i);return e?B(e).pipe(P(()=>i)):p(i)})}var mr=(()=>{class t{buildTitle(e){let n,r=e.root;for(;r!==void 0;)n=this.getResolvedTitleForRoute(r)??n,r=r.children.find(a=>a.outlet===S);return n}getResolvedTitleForRoute(e){return e.data[en]}static \u0275fac=function(n){return new(n||t)};static \u0275prov=_({token:t,factory:()=>l(xo),providedIn:"root"})}return t})(),xo=(()=>{class t extends mr{title;constructor(e){super(),this.title=e}updateTitle(e){let n=this.buildTitle(e);n!==void 0&&this.title.setTitle(n)}static \u0275fac=function(n){return new(n||t)(h(to))};static \u0275prov=_({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),ye=new f("",{factory:()=>({})}),Xe=new f(""),ri=(()=>{class t{componentLoaders=new WeakMap;childrenLoaders=new WeakMap;onLoadStartListener;onLoadEndListener;compiler=l(pa);loadComponent(e,n){return D(this,null,function*(){if(this.componentLoaders.get(n))return this.componentLoaders.get(n);if(n._loadedComponent)return Promise.resolve(n._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(n);let r=D(this,null,function*(){try{let a=yield To(F(e,()=>n.loadComponent())),o=yield Ko(Wo(a));return this.onLoadEndListener&&this.onLoadEndListener(n),n._loadedComponent=o,o}finally{this.componentLoaders.delete(n)}});return this.componentLoaders.set(n,r),r})}
2loadChildren(e,n){if(this.childrenLoaders.get(n))return this.childrenLoaders.get(n);if(n._loadedRoutes)return Promise.resolve({routes:n._loadedRoutes,injector:n._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(n);let r=D(this,null,function*(){try{let a=yield Vo(n,this.compiler,e,this.onLoadEndListener);return n._loadedRoutes=a.routes,n._loadedInjector=a.injector,n._loadedNgModuleFactory=a.factory,a}finally{this.childrenLoaders.delete(n)}});return this.childrenLoaders.set(n,r),r}static \u0275fac=function(n){return new(n||t)};static \u0275prov=_({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Vo(t,i,e,n){return D(this,null,function*(){let r=yield To(F(e,()=>t.loadChildren())),a=yield Ko(Wo(r)),o;a instanceof sa||Array.isArray(a)?o=a:o=yield i.compileModuleAsync(a),n&&n(t);let s,u,c=!1,d;return Array.isArray(o)?(u=o,c=!0):(s=o.create(e).injector,d=o,u=s.get(Xe,[],{optional:!0,self:!0}).flat()),{routes:u.map(gr),injector:s,factory:d}})}function il(t){return t&&typeof t=="object"&&"default"in t}function Wo(t){return il(t)?t.default:t}function Ko(t){return D(this,null,function*(){return t})}var ai=(()=>{class t{static \u0275fac=function(n){return new(n||t)};static \u0275prov=_({token:t,factory:()=>l(rl),providedIn:"root"})}return t})(),rl=(()=>{class t{shouldProcessUrl(e){return!0}extract(e){return e}merge(e,n){return e}static \u0275fac=function(n){return new(n||t)};static \u0275prov=_({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Cr=new f(""),Ir=new f("");function jo(t,i,e){let n=t.get(Ir),r=t.get(N);if(!r.startViewTransition||n.skipNextTransition)return n.skipNextTransition=!1,new Promise(c=>setTimeout(c));let a,o=new Promise(c=>{a=c}),s=r.startViewTransition(()=>(a(),al(t)));s.updateCallbackDone.catch(c=>{}),s.ready.catch(c=>{}),s.finished.catch(c=>{});let{onViewTransitionCreated:u}=n;return u&&F(t,()=>u({transition:s,from:i,to:e})),o}function al(t){return new Promise(i=>{Ii({read:()=>setTimeout(i)},{injector:t})})}var ol=()=>{},Rr=new f(""),oi=(()=>{class t{currentNavigation=tt(null,{equal:()=>!1});currentTransition=null;lastSuccessfulNavigation=tt(null);events=new H;transitionAbortWithErrorSubject=new H;configLoader=l(ri);environmentInjector=l(Y);destroyRef=l(et);urlSerializer=l(qe);rootContexts=l($e);location=l(Ne);inputBindingEnabled=l(tn,{optional:!0})!==null;titleStrategy=l(mr);options=l(ye,{optional:!0})||{};paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly";urlHandlingStrategy=l(ai);createViewTransition=l(Cr,{optional:!0});navigationErrorHandler=l(Rr,{optional:!0});navigationId=0;get hasRequestedNavigation(){return this.navigationId!==0}transitions;afterPreactivation=()=>p(void 0);rootComponentType=null;destroyed=!1;constructor(){let e=r=>this.events.next(new Kn(r)),n=r=>this.events.next(new jn(r));this.configLoader.onLoadEndListener=n,this.configLoader.onLoadStartListener=e,this.destroyRef.onDestroy(()=>{this.destroyed=!0})}complete(){this.transitions?.complete()}handleNavigationRequest(e){let n=++this.navigationId;Z(()=>{this.transitions?.next(w(T({},e),{extractedUrl:this.urlHandlingStrategy.extract(e.rawUrl),targetSnapshot:null,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null,id:n}))})}setupNavigations(e){return this.transitions=new K(null),this.transitions.pipe(Q(n=>n!==null),z(n=>{let r=!1,a=new AbortController,o=()=>!r&&this.currentTransition?.id===n.id;return p(n).pipe(z(s=>{if(this.navigationId>n.id)return this.cancelNavigationTransition(n,"",U.SupersededByNewNavigation),j;this.currentTransition=n;let u=this.lastSuccessfulNavigation();this.currentNavigation.set({id:s.id,initialUrl:s.rawUrl,extractedUrl:s.extractedUrl,targetBrowserUrl:typeof s.extras.browserUrl=="string"?this.urlSerializer.parse(s.extras.browserUrl):s.extras.browserUrl,trigger:s.source,extras:s.extras,previousNavigation:u?w(T({},u),{previousNavigation:null}):null,abort:()=>a.abort()});let c=!e.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl(),d=s.extras.onSameUrlNavigation??e.onSameUrlNavigation;if(!c&&d!=="reload")return this.events.next(new de(s.id,this.urlSerializer.serialize(s.rawUrl),"",_t.IgnoredSameUrlNavigation)),s.resolve(!1),j;if(this.urlHandlingStrategy.shouldProcessUrl(s.rawUrl))return p(s).pipe(z(E=>(this.events.next(new ve(E.id,this.urlSerializer.serialize(E.extractedUrl),E.source,E.restoredState)),E.id!==this.navigationId?j:Promise.resolve(E))),Zc(this.environmentInjector,this.configLoader,this.rootComponentType,e.config,this.urlSerializer,this.paramsInheritanceStrategy,a.signal),pe(E=>{n.targetSnapshot=E.targetSnapshot,n.urlAfterRedirects=E.urlAfterRedirects,this.currentNavigation.update(C=>(C.finalUrl=E.urlAfterRedirects,C));let m=new pt(E.id,this.urlSerializer.serialize(E.extractedUrl),this.urlSerializer.serialize(E.urlAfterRedirects),E.targetSnapshot);this.events.next(m)}));if(c&&this.urlHandlingStrategy.shouldProcessUrl(s.currentRawUrl)){let{id:E,extractedUrl:m,source:C,restoredState:v,extras:L}=s,g=new ve(E,this.urlSerializer.serialize(m),C,v);this.events.next(g);let I=No(this.rootComponentType,this.environmentInjector).snapshot;return this.currentTransition=n=w(T({},s),{targetSnapshot:I,urlAfterRedirects:m,extras:w(T({},L),{skipLocationChange:!1,replaceUrl:!1})}),this.currentNavigation.update(b=>(b.finalUrl=m,b)),p(n)}else return this.events.next(new de(s.id,this.urlSerializer.serialize(s.extractedUrl),"",_t.IgnoredByUrlHandlingStrategy)),s.resolve(!1),j}),P(s=>{let u=new Gn(s.id,this.urlSerializer.serialize(s.extractedUrl),this.urlSerializer.serialize(s.urlAfterRedirects),s.targetSnapshot);return this.events.next(u),this.currentTransition=n=w(T({},s),{guards:hc(s.targetSnapshot,s.currentSnapshot,this.rootContexts)}),n}),Lc(s=>this.events.next(s)),z(s=>{if(n.guardsResult=s.guardsResult,s.guardsResult&&typeof s.guardsResult!="boolean")throw ei(this.urlSerializer,s.guardsResult);let u=new xn(s.id,this.urlSerializer.serialize(s.extractedUrl),this.urlSerializer.serialize(s.urlAfterRedirects),s.targetSnapshot,!!s.guardsResult);if(this.events.next(u),!o())return j;if(!s.guardsResult)return this.cancelNavigationTransition(s,"",U.GuardRejected),j;if(s.guards.canActivateChecks.length===0)return p(s);let c=new Vn(s.id,this.urlSerializer.serialize(s.extractedUrl),this.urlSerializer.serialize(s.urlAfterRedirects),s.targetSnapshot);if(this.events.next(c),!o())return j;let d=!1;return p(s).pipe(Jc(this.paramsInheritanceStrategy),pe({next:()=>{d=!0;let E=new Wn(s.id,this.urlSerializer.serialize(s.extractedUrl),this.urlSerializer.serialize(s.urlAfterRedirects),s.targetSnapshot);this.events.next(E)},complete:()=>
2{d||this.cancelNavigationTransition(s,"",U.NoDataFromResolver)}}))}),co(s=>{let u=d=>{let E=[];if(d.routeConfig?._loadedComponent)d.component=d.routeConfig?._loadedComponent;else if(d.routeConfig?.loadComponent){let m=d._environmentInjector;E.push(this.configLoader.loadComponent(m,d.routeConfig).then(C=>{d.component=C}))}for(let m of d.children)E.push(...u(m));return E},c=u(s.targetSnapshot.root);return c.length===0?p(s):B(Promise.all(c).then(()=>s))}),co(()=>this.afterPreactivation()),z(()=>{let{currentSnapshot:s,targetSnapshot:u}=n,c=this.createViewTransition?.(this.environmentInjector,s.root,u.root);return c?B(c).pipe(P(()=>n)):p(n)}),X(1),P(s=>{let u=Ec(e.routeReuseStrategy,s.targetSnapshot,s.currentRouterState);this.currentTransition=n=s=w(T({},s),{targetRouterState:u}),this.currentNavigation.update(c=>(c.targetRouterState=u,c)),this.events.next(new St),o()&&(new lr(e.routeReuseStrategy,n.targetRouterState,n.currentRouterState,c=>this.events.next(c),this.inputBindingEnabled).activate(this.rootContexts),o()&&(r=!0,this.currentNavigation.update(c=>(c.abort=ol,c)),this.lastSuccessfulNavigation.set(Z(this.currentNavigation)),this.events.next(new k(s.id,this.urlSerializer.serialize(s.extractedUrl),this.urlSerializer.serialize(s.urlAfterRedirects))),this.titleStrategy?.updateTitle(s.targetRouterState.snapshot),s.resolve(!0)))}),dn(Fo(a.signal).pipe(Q(()=>!r&&!n.targetRouterState),pe(()=>{this.cancelNavigationTransition(n,a.signal.reason+"",U.Aborted)}))),pe({complete:()=>{r=!0}}),dn(this.transitionAbortWithErrorSubject.pipe(pe(s=>{throw s}))),ln(()=>{a.abort(),r||this.cancelNavigationTransition(n,"",U.SupersededByNewNavigation),this.currentTransition?.id===n.id&&(this.currentNavigation.set(null),this.currentTransition=null)}),cn(s=>{if(r=!0,this.destroyed)return n.resolve(!1),j;if(wo(s))this.events.next(new q(n.id,this.urlSerializer.serialize(n.extractedUrl),s.message,s.cancellationCode)),pc(s)?this.events.next(new At(s.url,s.navigationBehaviorOptions)):n.resolve(!1);else{let u=new Qe(n.id,this.urlSerializer.serialize(n.extractedUrl),s,n.targetSnapshot??void 0);try{let c=F(this.environmentInjector,()=>this.navigationErrorHandler?.(u));if(c instanceof ft){let{message:d,cancellationCode:E}=ei(this.urlSerializer,c);this.events.next(new q(n.id,this.urlSerializer.serialize(n.extractedUrl),d,E)),this.events.next(new At(c.redirectTo,c.navigationBehaviorOptions))}else throw this.events.next(u),s}catch(c){this.options.resolveNavigationPromiseOnError?n.resolve(!1):n.reject(c)}}return j}))}))}cancelNavigationTransition(e,n,r){let a=new q(e.id,this.urlSerializer.serialize(e.extractedUrl),n,r);this.events.next(a),e.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){let e=this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))),n=Z(this.currentNavigation),r=n?.targetBrowserUrl??n?.extractedUrl;return e.toString()!==r?.toString()&&!n?.extras.skipLocationChange}static \u0275fac=function(n){return new(n||t)};static \u0275prov=_({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function sl(t){return t!==Et}var Qo=new f("");var Yo=(()=>{class t{static \u0275fac=function(n){return new(n||t)};static \u0275prov=_({token:t,factory:()=>l(ul),providedIn:"root"})}return t})(),ni=class{shouldDetach(i){return!1}store(i,e){}shouldAttach(i){return!1}retrieve(i){return null}shouldReuseRoute(i,e){return i.routeConfig===e.routeConfig}shouldDestroyInjector(i){return!0}},ul=(()=>{class t extends ni{static \u0275fac=(()=>{let e;return function(r){return(e||(e=ze(t)))(r||t)}})();static \u0275prov=_({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Dr=(()=>{class t{urlSerializer=l(qe);options=l(ye,{optional:!0})||{};canceledNavigationResolution=this.options.canceledNavigationResolution||"replace";location=l(Ne);urlHandlingStrategy=l(ai);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";currentUrlTree=new x;getCurrentUrlTree(){return this.currentUrlTree}rawUrlTree=this.currentUrlTree;getRawUrlTree(){return this.rawUrlTree}createBrowserPath({finalUrl:e,initialUrl:n,targetBrowserUrl:r}){let a=e!==void 0?this.urlHandlingStrategy.merge(e,n):n,o=r??a;return o instanceof x?this.urlSerializer.serialize(o):o}commitTransition({targetRouterState:e,finalUrl:n,initialUrl:r}){n&&e?(this.currentUrlTree=n,this.rawUrlTree=this.urlHandlingStrategy.merge(n,r),this.routerState=e):this.rawUrlTree=r}routerState=No(null,l(Y));getRouterState(){return this.routerState}_stateMemento=this.createStateMemento();get stateMemento(){return this._stateMemento}updateStateMemento(){this._stateMemento=this.createStateMemento()}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}restoredState(){return this.location.getState()}static \u0275fac=function(n){return new(n||t)};static \u0275prov=_({token:t,factory:()=>l(cl),providedIn:"root"})}return t})(),cl=(()=>{class t extends Dr{currentPageId=0;lastSuccessfulId=-1;get browserPageId(){return this.canceledNavigationResolution!=="computed"?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}registerNonRouterCurrentEntryChangeListener(e){return this.location.subscribe(n=>{n.type==="popstate"&&setTimeout(()=>{e(n.url,n.state,"popstate")})})}handleRouterEvent(e,n){e instanceof ve?this.updateStateMemento():e instanceof de?this.commitTransition(n):e instanceof pt?this.urlUpdateStrategy==="eager"&&(n.extras.skipLocationChange||this.setBrowserUrl(this.createBrowserPath(n),n)):e instanceof St?(this.commitTransition(n),this.urlUpdateStrategy==="deferred"&&!n.extras.skipLocationChange&&this.setBrowserUrl(this.createBrowserPath(n),n)):e instanceof q&&!Lo(e)?this.restoreHistory(n):e instanceof Qe?this.restoreHistory(n,!0):e instanceof k&&(this.lastSuccessfulId=e.id,this.currentPageId=this.browserPageId)}setBrowserUrl(e,{extras:n,id:r}){let{replaceUrl:a,state:o}=n;
vendor: 11,617 bytes, line 2
2if(this.location.isCurrentPathEqualTo(e)||a){let s=this.browserPageId,u=T(T({},o),this.generateNgRouterState(r,s));this.location.replaceState(e,"",u)}else{let s=T(T({},o),this.generateNgRouterState(r,this.browserPageId+1));this.location.go(e,"",s)}}restoreHistory(e,n=!1){if(this.canceledNavigationResolution==="computed"){let r=this.browserPageId,a=this.currentPageId-r;a!==0?this.location.historyGo(a):this.getCurrentUrlTree()===e.finalUrl&&a===0&&(this.resetInternalState(e),this.resetUrlToCurrentUrlTree())}else this.canceledNavigationResolution==="replace"&&(n&&this.resetInternalState(e),this.resetUrlToCurrentUrlTree())}resetInternalState({finalUrl:e}){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,e??this.rawUrlTree)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.getRawUrlTree()),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(e,n){return this.canceledNavigationResolution==="computed"?{navigationId:e,\u0275routerPageId:n}:{navigationId:e}}static \u0275fac=(()=>{let e;return function(r){return(e||(e=ze(t)))(r||t)}})();static \u0275prov=_({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function si(t,i){t.events.pipe(Q(e=>e instanceof k||e instanceof q||e instanceof Qe||e instanceof de),P(e=>e instanceof k||e instanceof de?0:(e instanceof q?e.code===U.Redirect||e.code===U.SupersededByNewNavigation:!1)?2:1),Q(e=>e!==2),X(1)).subscribe(()=>{i()})}var Or={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},Lr={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"},$=(()=>{class t{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}disposed=!1;nonRouterCurrentEntryChangeSubscription;console=l(Di);stateManager=l(Dr);options=l(ye,{optional:!0})||{};pendingTasks=l(Kr);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";navigationTransitions=l(oi);urlSerializer=l(qe);location=l(Ne);urlHandlingStrategy=l(ai);injector=l(Y);_events=new H;get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}navigated=!1;routeReuseStrategy=l(Yo);injectorCleanup=l(Qo,{optional:!0});onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore";config=l(Xe,{optional:!0})?.flat()??[];componentInputBindingEnabled=!!l(tn,{optional:!0});currentNavigation=this.navigationTransitions.currentNavigation.asReadonly();constructor(){this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this).subscribe({error:e=>{}}),this.subscribeToNavigationEvents()}eventsSubscription=new kr;subscribeToNavigationEvents(){let e=this.navigationTransitions.events.subscribe(n=>{try{let r=this.navigationTransitions.currentTransition,a=Z(this.navigationTransitions.currentNavigation);if(r!==null&&a!==null){if(this.stateManager.handleRouterEvent(n,a),n instanceof q&&n.code!==U.Redirect&&n.code!==U.SupersededByNewNavigation)this.navigated=!0;else if(n instanceof k)this.navigated=!0,this.injectorCleanup?.(this.routeReuseStrategy,this.routerState,this.config);else if(n instanceof At){let o=n.navigationBehaviorOptions,s=this.urlHandlingStrategy.merge(n.url,r.currentRawUrl),u=T({scroll:r.extras.scroll,browserUrl:r.extras.browserUrl,info:r.extras.info,skipLocationChange:r.extras.skipLocationChange,replaceUrl:r.extras.replaceUrl||this.urlUpdateStrategy==="eager"||sl(r.source)},o);this.scheduleNavigation(s,Et,null,u,{resolve:r.resolve,reject:r.reject,promise:r.promise})}}lc(n)&&this._events.next(n)}catch(r){this.navigationTransitions.transitionAbortWithErrorSubject.next(r)}});this.eventsSubscription.add(e)}resetRootComponentType(e){this.routerState.root.component=e,this.navigationTransitions.rootComponentType=e}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),Et,this.stateManager.restoredState())}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((e,n,r)=>{this.navigateToSyncWithBrowser(e,r,n)})}navigateToSyncWithBrowser(e,n,r){let a={replaceUrl:!0},o=r?.navigationId?r:null;if(r){let u=T({},r);delete u.navigationId,delete u.\u0275routerPageId,Object.keys(u).length!==0&&(a.state=u)}let s=this.parseUrl(e);this.scheduleNavigation(s,n,o,a).catch(u=>{this.disposed||this.injector.get(vt)(u)})}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return Z(this.navigationTransitions.currentNavigation)}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(e){this.config=e.map(gr),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this._events.unsubscribe(),this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription?.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0,this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(e,n={}){let{relativeTo:r,queryParams:a,fragment:o,queryParamsHandling:s,preserveFragment:u}=n,c=u?this.currentUrlTree.fragment:o,d=null;switch(s??this.options.defaultQueryParamsHandling){case"merge":d=T(T({},this.currentUrlTree.queryParams),a);break;case"preserve":d=this.currentUrlTree.queryParams;break;default:d=a||null}d!==null&&(d=this.removeEmptyProps(d));let E;try{let m=r?r.snapshot:this.routerState.snapshot.root;E=Io(m)}catch(m){(typeof e[0]!="string"||e[0][0]!=="/")&&(e=[]),E=this.currentUrlTree.root}return Ro(E,e,d,c??null,this.urlSerializer)}navigateByUrl(e,n={skipLocationChange:!1}){let r=be(e)?e:this.parseUrl(e),a=this.urlHandlingStrategy.merge(r,this.rawUrlTree);return this.scheduleNavigation(a,Et,null,n)}navigate(e,n={skipLocationChange:!1}){return ll(e),this.navigateByUrl(this.createUrlTree(e,n),n)}serializeUrl(e){return this.urlSerializer.serialize(e)}parseUrl(e){try{return this.urlSerializer.parse(e)}catch(n){return this.console.warn(Oe(4018,!1)),this.urlSerializer.parse("/")}}isActive(e,n){let r;if(n===!0?r=T({},Or):n===!1?r=T({},Lr):r=n,be(e))return nr(this.currentUrlTree,e,r);let a=this.parseUrl(e);return nr(this.currentUrlTree,a,r)}removeEmptyProps(e){return Object.entries(e).reduce((n,[r,a])=>(a!=null&&(n[r]=a),n),{})}scheduleNavigation(e,n,r,a,o){if(this.disposed)return Promise.resolve(!1);let s,u,c;o?(s=o.resolve,u=o.reject,c=o.promise):c=new Promise((E,m)=>{s=E,u=m});let d=this.pendingTasks.add();return si(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(d))}),this.navigationTransitions.handleNavigationRequest({source:n,restoredState:r,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:e,extras:a,resolve:s,reject:u,promise:c,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),c.catch(Promise.reject.bind(Promise))}static \u0275fac=function(n){return new(n||t)};static \u0275prov=_({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function ll(t){for(let i=0;i<t.length;i++)if(t[i]==null)throw new A(4008,!1)}var ui=(()=>{class t{router;route;tabIndexAttribute;renderer;el;locationStrategy;reactiveHref=tt(null);get href(){return Z(this.reactiveHref)}set href(e){this.reactiveHref.set(e)}target;queryParams;fragment;queryParamsHandling;state;info;relativeTo;isAnchorElement;subscription;onChanges=new H;applicationErrorHandler=l(vt);options=l(ye,{optional:!0});constructor(e,n,r,a,o,s){this.router=e,this.route=n,this.tabIndexAttribute=r,this.renderer=a,this.el=o,this.locationStrategy=s,this.reactiveHref.set(l(new ha("href"),{optional:!0}));let u=o.nativeElement.tagName?.toLowerCase();this.isAnchorElement=u==="a"||u==="area"||!!(typeof customElements=="object"&&customElements.get(u)?.observedAttributes?.includes?.("href")),this.isAnchorElement&&(this.setTabIndexIfNotOnNativeEl("0"),this.subscribeToNavigationEventsIfNecessary())}subscribeToNavigationEventsIfNecessary(){this.subscription===void 0&&(this.subscription=this.router.events.subscribe(e=>{e instanceof k&&this.updateHref()}))}preserveFragment=!1;skipLocationChange=!1;replaceUrl=!1;setTabIndexIfNotOnNativeEl(e){this.tabIndexAttribute!=null||this.isAnchorElement||this.applyAttributeValue("tabindex",e)}ngOnChanges(e){this.isAnchorElement&&this.updateHref(),this.onChanges.next(this)}routerLinkInput=null;set routerLink(e){e==null?(this.routerLinkInput=null,this.setTabIndexIfNotOnNativeEl(null)):(be(e)?this.routerLinkInput=e:this.routerLinkInput=Array.isArray(e)?e:[e],this.setTabIndexIfNotOnNativeEl("0"))}onClick(e,n,r,a,o){let s=this.urlTree;if(s===null||this.isAnchorElement&&(e!==0||n||r||a||o||typeof this.target=="string"&&this.target!="_self"))return!0;let u={skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state,info:this.info};return this.router.navigateByUrl(s,u)?.catch(c=>{this.applicationErrorHandler(c)}),!this.isAnchorElement}ngOnDestroy(){this.subscription?.unsubscribe()}updateHref(){let e=this.urlTree;this.reactiveHref.set(e!==null&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(e))??"":null)}applyAttributeValue(e,n){let r=this.renderer,a=this.el.nativeElement;n!==null?r.setAttribute(a,e,n):r.removeAttribute(a,e)}get urlTree(){return this.routerLinkInput===null?null:be(this.routerLinkInput)?this.routerLinkInput:this.router.createUrlTree(this.routerLinkInput,{relativeTo:this.relativeTo!==void 0?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:this.preserveFragment})}static \u0275fac=function(n){return new(n||t)(M($),M(Ee),fi("tabindex"),M(Mt),M(nt),M(te))};static \u0275dir=se({type:t,selectors:[["","routerLink",""]],hostVars:2,hostBindings:function(n,r){n&1&&da("click",function(o){return r.onClick(o.button,o.ctrlKey,o.shiftKey,o.altKey,o.metaKey)}),n&2&&ca("href",r.reactiveHref(),ia)("target",r.target)},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",state:"state",info:"info",relativeTo:"relativeTo",preserveFragment:[2,"preserveFragment","preserveFragment",Ft],skipLocationChange:[2,"skipLocationChange","skipLocationChange",Ft],replaceUrl:[2,"replaceUrl","replaceUrl",Ft],routerLink:"routerLink"},features:[Be]})}return t})(),dl=(()=>{class t{router;element;renderer;cdr;links;classes=[];routerEventsSubscription;linkInputChangesSubscription;_isActive=!1;get isActive(){return this._isActive}routerLinkActiveOptions={exact:!1};ariaCurrentWhenActive;isActiveChange=new Fe;link=l(ui,{optional:!0});constructor(e,n,r,a){this.router=e,this.element=n,this.renderer=r,this.cdr=a,this.routerEventsSubscription=e.events.subscribe(o=>{o instanceof k&&this.update()})}ngAfterContentInit(){p(this.links.changes,p(null)).pipe(Pt()).subscribe(e=>{this.update(),this.subscribeToEachLinkOnChanges()})}subscribeToEachLinkOnChanges(){this.linkInputChangesSubscription?.unsubscribe();let e=[...this.links.toArray(),this.link].filter(n=>!!n).map(n=>n.onChanges);this.linkInputChangesSubscription=B(e).pipe(Pt()).subscribe(n=>{this._isActive!==this.isLinkActive(this.router)(n)&&this.update()})}set routerLinkActive(e){let n=Array.isArray(e)?e:e.split(" ");this.classes=n.filter(r=>!!r)}ngOnChanges(e){this.update()}ngOnDestroy(){this.routerEventsSubscription.unsubscribe(),this.linkInputChangesSubscription?.unsubscribe()}update(){!this.links||!this.router.navigated||queueMicrotask(()=>{let e=this.hasActiveLinks();
2this.classes.forEach(n=>{e?this.renderer.addClass(this.element.nativeElement,n):this.renderer.removeClass(this.element.nativeElement,n)}),e&&this.ariaCurrentWhenActive!==void 0?this.renderer.setAttribute(this.element.nativeElement,"aria-current",this.ariaCurrentWhenActive.toString()):this.renderer.removeAttribute(this.element.nativeElement,"aria-current"),this._isActive!==e&&(this._isActive=e,this.cdr.markForCheck(),this.isActiveChange.emit(e))})}isLinkActive(e){let n=El(this.routerLinkActiveOptions)?this.routerLinkActiveOptions:this.routerLinkActiveOptions.exact??!1?T({},Or):T({},Lr);return r=>{let a=r.urlTree;return a?Z(pr(a,e,n)):!1}}hasActiveLinks(){let e=this.isLinkActive(this.router);return this.link&&e(this.link)||this.links.some(e)}static \u0275fac=function(n){return new(n||t)(M($),M(nt),M(Mt),M(Le))};static \u0275dir=se({type:t,selectors:[["","routerLinkActive",""]],contentQueries:function(n,r,a){if(n&1&&Ea(a,ui,5),n&2){let o;Ta(o=_a())&&(r.links=o)}},inputs:{routerLinkActiveOptions:"routerLinkActiveOptions",ariaCurrentWhenActive:"ariaCurrentWhenActive",routerLinkActive:"routerLinkActive"},outputs:{isActiveChange:"isActiveChange"},exportAs:["routerLinkActive"],features:[Be]})}return t})();function El(t){return!!t.paths}var rn=class{};var qo=(()=>{class t{router;injector;preloadingStrategy;loader;subscription;constructor(e,n,r,a){this.router=e,this.injector=n,this.preloadingStrategy=r,this.loader=a}setUpPreloading(){this.subscription=this.router.events.pipe(Q(e=>e instanceof k),_e(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription?.unsubscribe()}processRoutes(e,n){let r=[];for(let a of n){a.providers&&!a._injector&&(a._injector=_n(a.providers,e,""));let o=a._injector??e;a._loadedNgModuleFactory&&!a._loadedInjector&&(a._loadedInjector=a._loadedNgModuleFactory.create(o).injector);let s=a._loadedInjector??o;(a.loadChildren&&!a._loadedRoutes&&a.canLoad===void 0||a.loadComponent&&!a._loadedComponent)&&r.push(this.preloadConfig(o,a)),(a.children||a._loadedRoutes)&&r.push(this.processRoutes(s,a.children??a._loadedRoutes))}return B(r).pipe(Pt())}preloadConfig(e,n){return this.preloadingStrategy.preload(n,()=>{if(e.destroyed)return p(null);let r;n.loadChildren&&n.canLoad===void 0?r=B(this.loader.loadChildren(e,n)):r=p(null);let a=r.pipe(oe(o=>o===null?p(void 0):(n._loadedRoutes=o.routes,n._loadedInjector=o.injector,n._loadedNgModuleFactory=o.factory,this.processRoutes(o.injector??e,o.routes))));if(n.loadComponent&&!n._loadedComponent){let o=this.loader.loadComponent(e,n);return B([a,o]).pipe(Pt())}else return a})}static \u0275fac=function(n){return new(n||t)(h($),h(Y),h(rn),h(ri))};static \u0275prov=_({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Pr=new f(""),$o=(()=>{class t{options;routerEventsSubscription;scrollEventsSubscription;lastId=0;lastSource=Et;restoredId=0;store={};urlSerializer=l(qe);zone=l(ke);viewportScroller=l(wi);transitions=l(oi);constructor(e){this.options=e,this.options.scrollPositionRestoration||="disabled",this.options.anchorScrolling||="disabled"}init(){this.options.scrollPositionRestoration!=="disabled"&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(e=>{e instanceof ve?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=e.navigationTrigger,this.restoredId=e.restoredState?e.restoredState.navigationId:0):e instanceof k?(this.lastId=e.id,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.urlAfterRedirects).fragment)):e instanceof de&&e.code===_t.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(e=>{if(!(e instanceof ht)||e.scrollBehavior==="manual")return;let n={behavior:"instant"};e.position?this.options.scrollPositionRestoration==="top"?this.viewportScroller.scrollToPosition([0,0],n):this.options.scrollPositionRestoration==="enabled"&&this.viewportScroller.scrollToPosition(e.position,n):e.anchor&&this.options.anchorScrolling==="enabled"?this.viewportScroller.scrollToAnchor(e.anchor):this.options.scrollPositionRestoration!=="disabled"&&this.viewportScroller.scrollToPosition([0,0])})}scheduleScrollEvent(e,n){let r=Z(this.transitions.currentNavigation)?.extras.scroll;this.zone.runOutsideAngular(()=>D(this,null,function*(){yield new Promise(a=>{setTimeout(a),typeof requestAnimationFrame<"u"&&requestAnimationFrame(a)}),this.zone.run(()=>{this.transitions.events.next(new ht(e,this.lastSource==="popstate"?this.store[this.restoredId]:null,n,r))})}))}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static \u0275fac=function(n){oa()};static \u0275prov=_({token:t,factory:t.\u0275fac})}return t})();function Tl(t,...i){return Je([{provide:Xe,multi:!0,useValue:t},[],{provide:Ee,useFactory:Xo},{provide:wt,multi:!0,useFactory:Zo},i.map(e=>e.\u0275providers)])}function Xo(){return l($).routerState.root}function Ct(t,i){return{\u0275kind:t,\u0275providers:i}}function _l(t={}){return Ct(4,[{provide:Pr,useFactory:()=>new $o(t)}])}function Zo(){let t=l(Ue);return i=>{let e=t.get(Ut);
2if(i!==e.components[0])return;let n=t.get($),r=t.get(Jo);t.get(br)===1&&n.initialNavigation(),t.get(ns,null,{optional:!0})?.setUpPreloading(),t.get(Pr,null,{optional:!0})?.init(),n.resetRootComponentType(e.componentTypes[0]),r.closed||(r.next(),r.complete(),r.unsubscribe())}}var Jo=new f("",{factory:()=>new H}),br=new f("",{factory:()=>1});function es(){let t=[{provide:Ci,useValue:!0},{provide:br,useValue:0},Li(()=>{let i=l(Ue);return i.get(bi,Promise.resolve()).then(()=>new Promise(n=>{let r=i.get($),a=i.get(Jo);si(r,()=>{n(!0)}),i.get(oi).afterPreactivation=()=>(n(!0),a.closed?p(void 0):a),r.initialNavigation()}))})];return Ct(2,t)}function ts(){let t=[Li(()=>{l($).setUpLocationChangeListener()}),{provide:br,useValue:2}];return Ct(3,t)}var ns=new f("");function is(t){return Ct(0,[{provide:ns,useExisting:qo},{provide:rn,useExisting:t}])}function rs(){return Ct(8,[Ar,{provide:tn,useExisting:Ar}])}function as(t){yt("NgRouterViewTransitions");let i=[{provide:Cr,useValue:jo},{provide:Ir,useValue:T({skipNextTransition:!!t?.skipInitialTransition},t)}];return Ct(9,i)}var os=[Ne,{provide:qe,useClass:Ce},$,$e,{provide:Ee,useFactory:Xo},ri,[]],pl=(()=>{class t{constructor(){}static forRoot(e,n){return{ngModule:t,providers:[os,[],{provide:Xe,multi:!0,useValue:e},[],n?.errorHandler?{provide:Rr,useValue:n.errorHandler}:[],{provide:ye,useValue:n||{}},n?.useHash?Sl():Al(),hl(),n?.preloadingStrategy?is(n.preloadingStrategy).\u0275providers:[],n?.initialNavigation?fl(n):[],n?.bindToComponentInputs?rs().\u0275providers:[],n?.enableViewTransitions?as().\u0275providers:[],gl()]}}static forChild(e){return{ngModule:t,providers:[{provide:Xe,multi:!0,useValue:e}]}}static \u0275fac=function(n){return new(n||t)};static \u0275mod=Se({type:t});static \u0275inj=he({})}return t})();function hl(){return{provide:Pr,useFactory:()=>{let t=l(wi),i=l(ye);return i.scrollOffset&&t.setOffset(i.scrollOffset),new $o(i)}}}function Sl(){return{provide:te,useClass:vi}}function Al(){return{provide:te,useClass:Sn}}function fl(t){return[t.initialNavigation==="disabled"?ts().\u0275providers:[],t.initialNavigation==="enabledBlocking"?es().\u0275providers:[]]}var Nr=new f("");function gl(){return[{provide:Nr,useFactory:Zo},{provide:wt,multi:!0,useExisting:Nr}]}var sn=class{},us=(()=>{class t{handle(e){return e.key}static \u0275fac=function(n){return new(n||t)};static \u0275prov=_({token:t,factory:t.\u0275fac})}return t})(),It=class{},cs=(()=>{class t extends It{compile(e,n){return e}compileTranslations(e,n){return e}static \u0275fac=(()=>{let e;return function(r){return(e||(e=ze(t)))(r||t)}})();static \u0275prov=_({token:t,factory:t.\u0275fac})}return t})(),Rt=class{},ls=(()=>{class t extends Rt{getTranslation(e){return p({})}static \u0275fac=(()=>{let e;return function(r){return(e||(e=ze(t)))(r||t)}})();static \u0275prov=_({token:t,factory:t.\u0275fac})}return t})();function ci(t,i){if(t===i)return!0;if(t===null||i===null)return!1;if(t!==t&&i!==i)return!0;let e=typeof t,n=typeof i,r;if(e==n&&e=="object")if(Array.isArray(t)){if(!Array.isArray(i))return!1;if((r=t.length)==i.length){for(let a=0;a<r;a++)if(!ci(t[a],i[a]))return!1;return!0}}else{if(Array.isArray(i))return!1;if(Ie(t)&&Ie(i)){let a=Object.create(null);for(let o in t){if(!ci(t[o],i[o]))return!1;a[o]=!0}for(let o in i)if(!(o in a)&&typeof i[o]<"u")return!1;return!0}}return!1}function Me(t){return typeof t<"u"&&t!==null}function ss(t){return t!==void 0}function Ie(t){return on(t)&&!Ze(t)&&t!==null}function on(t){return typeof t=="object"&&t!==null}function Ze(t){return Array.isArray(t)}function li(t){return typeof t=="string"}function ml(t){return typeof t=="function"}function di(t){if(Ze(t))return t.map(i=>di(i));if(Ie(t)){let i={};return Object.keys(t).forEach(e=>{i[e]=di(t[e])}),i}else return t}function wr(t,i){if(!on(t))return di(i);let e=di(t);
2return on(e)&&on(i)&&Object.keys(i).forEach(n=>{Ie(i[n])?n in t?e[n]=wr(t[n],i[n]):Object.assign(e,{[n]:i[n]}):Object.assign(e,{[n]:i[n]})}),e}function ds(t,i){let e=i.split(".");i="";do{i+=e.shift();let n=!e.length;if(Me(t)){if(Ie(t)&&ss(t[i])&&(Ie(t[i])||Ze(t[i])||n)){t=t[i],i="";continue}if(Ze(t)){let r=parseInt(i,10);if(ss(t[r])&&(Ie(t[r])||Ze(t[r])||n)){t=t[r],i="";continue}}}if(n){t=void 0;continue}i+="."}while(e.length);return t}function Cl(t,i,e){return wr(t,Il(i,e))}function Il(t,i){return t.split(".").reduceRight((e,n)=>({[n]:e}),i)}var Dt=class{},Es=(()=>{class t extends Dt{templateMatcher=/{{\s?([^{}\s]*)\s?}}/g;interpolate(e,n){if(li(e))return this.interpolateString(e,n);if(ml(e))return this.interpolateFunction(e,n)}interpolateFunction(e,n){return e(n)}interpolateString(e,n){return n?e.replace(this.templateMatcher,(r,a)=>{let o=this.getInterpolationReplacement(n,a);return o!==void 0?o:r}):e}getInterpolationReplacement(e,n){return this.formatValue(ds(e,n))}formatValue(e){if(li(e))return e;if(typeof e=="number"||typeof e=="boolean")return e.toString();if(e===null)return"null";if(Ze(e))return e.join(", ");if(on(e))return typeof e.toString=="function"&&e.toString!==Object.prototype.toString?e.toString():JSON.stringify(e)}static \u0275fac=(()=>{let e;return function(r){return(e||(e=ze(t)))(r||t)}})();static \u0275prov=_({token:t,factory:t.\u0275fac})}return t})(),vr=(()=>{class t{_onTranslationChange=new H;_onLangChange=new H;_onFallbackLangChange=new H;fallbackLang=null;currentLang;translations={};languages=[];getTranslations(e){return this.translations[e]}setTranslations(e,n,r){this.translations[e]=r&&this.hasTranslationFor(e)?wr(this.translations[e],n):n,this.addLanguages([e]),this._onTranslationChange.next({lang:e,translations:this.getTranslations(e)})}getLanguages(){return this.languages}getCurrentLang(){return this.currentLang}getFallbackLang(){return this.fallbackLang}setFallbackLang(e,n=!0){this.fallbackLang=e,n&&this._onFallbackLangChange.next({lang:e,translations:this.translations[e]})}setCurrentLang(e,n=!0){this.currentLang=e,n&&this._onLangChange.next({lang:e,translations:this.translations[e]})}get onTranslationChange(){return this._onTranslationChange.asObservable()}get onLangChange(){return this._onLangChange.asObservable()}get onFallbackLangChange(){return this._onFallbackLangChange.asObservable()}addLanguages(e){this.languages=Array.from(new Set([...this.languages,...e]))}hasTranslationFor(e){return typeof this.translations[e]<"u"}deleteTranslations(e){delete this.translations[e]}getTranslation(e){let n=this.getValue(this.currentLang,e);return n===void 0&&this.fallbackLang!=null&&this.fallbackLang!==this.currentLang&&(n=this.getValue(this.fallbackLang,e)),n}getValue(e,n){return ds(this.getTranslations(e),n)}static \u0275fac=function(n){return new(n||t)};static \u0275prov=_({token:t,factory:t.\u0275fac})}return t})(),yr=new f("TRANSLATE_CONFIG"),an=t=>ae(t)?t:p(t);var un=(()=>{class t{loadingTranslations;pending=!1;_translationRequests={};lastUseLanguage=null;currentLoader=l(Rt);compiler=l(It);parser=l(Dt);missingTranslationHandler=l(sn);store=l(vr);extend=!1;get onTranslationChange(){return this.store.onTranslationChange}get onLangChange(){return this.store.onLangChange}get onFallbackLangChange(){return this.store.onFallbackLangChange}get onDefaultLangChange(){return this.store.onFallbackLangChange}constructor(){let e=T({extend:!1,fallbackLang:null},l(yr,{optional:!0}));e.lang&&this.use(e.lang),e.fallbackLang&&this.setFallbackLang(e.fallbackLang),e.extend&&(this.extend=!0)}setFallbackLang(e){this.getFallbackLang()||this.store.setFallbackLang(e,!1);let n=this.loadOrExtendLanguage(e);return ae(n)?(n.pipe(X(1)).subscribe({next:()=>{this.store.setFallbackLang(e)},error:()=>{}}),n):(this.store.setFallbackLang(e),p(this.store.getTranslations(e)))}use(e){this.lastUseLanguage=e,this.getCurrentLang()||this.store.setCurrentLang(e,!1);let n=this.loadOrExtendLanguage(e);return ae(n)?(n.pipe(X(1)).subscribe({next:()=>{this.changeLang(e)},error:()=>{}}),n):(this.changeLang(e),p(this.store.getTranslations(e)))}loadOrExtendLanguage(e){if(!this.store.hasTranslationFor(e)||this.extend)return this._translationRequests[e]=this._translationRequests[e]||this.loadAndCompileTranslations(e),this._translationRequests[e]}changeLang(e){e===this.lastUseLanguage&&this.store.setCurrentLang(e)}getCurrentLang(){return this.store.getCurrentLang()}loadAndCompileTranslations(e){this.pending=!0;let n=this.currentLoader.getTranslation(e).pipe(Si(1),X(1));return this.loadingTranslations=n.pipe(P(r=>this.compiler.compileTranslations(r,e)),Si(1),X(1)),this.loadingTranslations.subscribe({next:r=>{this.store.setTranslations(e,r,this.extend),this.pending=!1},error:r=>{this.pending=!1}}),n}setTranslation(e,n,r=!1){let a=this.compiler.compileTranslations(n,e);this.store.setTranslations(e,a,r||this.extend)}getLangs(){return this.store.getLanguages()}addLangs(e){this.store.addLanguages(e)}getParsedResultForKey(e,n){let r=this.getTextToInterpolate(e);if(Me(r))return this.runInterpolation(r,n);let a=this.missingTranslationHandler.handle(T({key:e,translateService:this},n!==void 0&&{interpolateParams:n}));return a!==void 0?a:e}getFallbackLang(){return this.store.getFallbackLang()}getTextToInterpolate(e){return this.store.getTranslation(e)}runInterpolation(e,n){if(Me(e))return Ze(e)?this.runInterpolationOnArray(e,n):Ie(e)?this.runInterpolationOnDict(e,n):this.parser.interpolate(e,n)}runInterpolationOnArray(e,n){return e.map(r=>this.runInterpolation(r,n))}runInterpolationOnDict(e,n){let r={};for(let a in e){let o=this.runInterpolation(e[a],n);o!==void 0&&(r[a]=o)}return r}getParsedResult(e,n){return e instanceof Array?this.getParsedResultForArray(e,n):this.getParsedResultForKey(e,n)}getParsedResultForArray(e,n){let r={},a=!1;for(let s of e)r[s]=this.getParsedResultForKey(s,n),a=a||ae(r[s]);if(!a)return r;let o=e.map(s=>an(r[s]));return Gr(o).pipe(P(s=>{let u={};
2return s.forEach((c,d)=>{u[e[d]]=c}),u}))}get(e,n){if(!Me(e)||!e.length)throw new Error('Parameter "key" is required and cannot be empty');return this.pending?this.loadingTranslations.pipe(_e(()=>an(this.getParsedResult(e,n)))):an(this.getParsedResult(e,n))}getStreamOnTranslationChange(e,n){if(!Me(e)||!e.length)throw new Error('Parameter "key" is required and cannot be empty');return bt(we(()=>this.get(e,n)),this.onTranslationChange.pipe(z(()=>{let r=this.getParsedResult(e,n);return an(r)})))}stream(e,n){if(!Me(e)||!e.length)throw new Error('Parameter "key" required');return bt(we(()=>this.get(e,n)),this.onLangChange.pipe(z(()=>{let r=this.getParsedResult(e,n);return an(r)})))}instant(e,n){if(!Me(e)||e.length===0)throw new Error('Parameter "key" is required and cannot be empty');let r=this.getParsedResult(e,n);return ae(r)?Array.isArray(e)?e.reduce((a,o)=>(a[o]=o,a),{}):e:r}set(e,n,r=this.getCurrentLang()){this.store.setTranslations(r,Cl(this.store.getTranslations(r),e,li(n)?this.compiler.compile(n,r):this.compiler.compileTranslations(n,r)),!1)}reloadLang(e){return this.resetLang(e),this.loadAndCompileTranslations(e)}
2resetLang(e){delete this._translationRequests[e],this.store.deleteTranslations(e)}static getBrowserLang(){if(typeof window>"u"||!window.navigator)return;let e=this.getBrowserCultureLang();return e?e.split(/[-_]/)[0]:void 0}static getBrowserCultureLang(){if(!(typeof window>"u"||typeof window.navigator>"u"))return window.navigator.languages?window.navigator.languages[0]:window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage}getBrowserLang(){return t.getBrowserLang()}getBrowserCultureLang(){return t.getBrowserCultureLang()}get defaultLang(){return this.getFallbackLang()}get currentLang(){return this.store.getCurrentLang()}get langs(){return this.store.getLanguages()}setDefaultLang(e){return this.setFallbackLang(e)}getDefaultLang(){return this.getFallbackLang()}static \u0275fac=function(n){return new(n||t)};static \u0275prov=_({token:t,factory:t.\u0275fac})}return t})();var sp=(()=>{class t{translate=l(un);_ref=l(Le);value="";lastKey=null;lastParams=[];onTranslationChange;onLangChange;onFallbackLangChange;
2updateValue(e,n,r){let a=o=>{this.value=o!==void 0?o:e,this.lastKey=e,this._ref.markForCheck()};if(r){let o=this.translate.getParsedResult(e,n);ae(o)?o.subscribe(a):a(o)}this.translate.get(e,n).subscribe(a)}transform(e,...n){if(!e||!e.length)return e;if(ci(e,this.lastKey)&&ci(n,this.lastParams))return this.value;let r;if(Me(n[0])&&n.length)if(li(n[0])&&n[0].length){let a=n[0].replace(/(')?([a-zA-Z0-9_]+)(')?(\s)?:/g,'"$2":').replace(/:(\s)?(')(.*?)(')/g,':"$3"');try{r=JSON.parse(a)}catch(o){throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${n[0]}`)}}else Ie(n[0])&&(r=n[0]);return this.lastKey=e,this.lastParams=n,this.updateValue(e,r),this._dispose(),this.onTranslationChange||(this.onTranslationChange=this.translate.onTranslationChange.subscribe(a=>{(this.lastKey&&a.lang===this.translate.getCurrentLang()||a.lang===this.translate.getFallbackLang())&&(this.lastKey=null,this.updateValue(e,r,a.translations))})),this.onLangChange||(this.onLangChange=this.translate.onLangChange.subscribe(a=>{this.lastKey&&(this.lastKey=null,this.updateValue(e,r,a.translations))})),this.onFallbackLangChange||(this.onFallbackLangChange=this.translate.onFallbackLangChange.subscribe(()=>{this.lastKey&&(this.lastKey=null,this.updateValue(e,r))})),this.value}_dispose(){typeof this.onTranslationChange<"u"&&(this.onTranslationChange.unsubscribe(),this.onTranslationChange=void 0),typeof this.onLangChange<"u"&&(this.onLangChange.unsubscribe(),this.onLangChange=void 0),typeof this.onFallbackLangChange<"u"&&(this.onFallbackLangChange.unsubscribe(),this.onFallbackLangChange=void 0)}ngOnDestroy(){this._dispose()}static \u0275fac=function(n){return new(n||t)};static \u0275pipe=st({name:"translate",type:t,pure:!1});static \u0275prov=_({token:t,factory:t.\u0275fac})}return t})();function Ts(t){return{provide:Rt,useClass:t}}function _s(t){return{provide:It,useClass:t}}function ps(t){return{provide:Dt,useClass:t}}function hs(t){return{provide:sn,useClass:t}}function up(t={}){return Mr(T({compiler:_s(cs),parser:ps(Es),loader:Ts(ls),missingTranslationHandler:hs(us)},t),!0)}function Mr(t={},i){let e=[];t.loader&&e.push(t.loader),t.compiler&&e.push(t.compiler),t.parser&&e.push(t.parser),t.missingTranslationHandler&&e.push(t.missingTranslationHandler),i&&e.push(vr),(t.useDefaultLang||t.defaultLanguage)&&(console.warn("The `useDefaultLang` and `defaultLanguage` options are deprecated. Please use `fallbackLang` instead."),t.useDefaultLang===!0&&t.defaultLanguage&&(t.fallbackLang=t.defaultLanguage));let n={fallbackLang:t.fallbackLang??null,lang:t.lang,extend:t.extend??!1};return e.push({provide:yr,useValue:n}),e.push({provide:un,useClass:un,deps:[vr,Rt,It,Dt,sn,yr]}),e}var cp=(()=>{class t{static forRoot(e={}){return{ngModule:t,providers:[...Mr(T({compiler:_s(cs),parser:ps(Es),loader:Ts(ls),missingTranslationHandler:hs(us)},e),!0)]}}static forChild(e={}){return{ngModule:t,providers:[...Mr(e,e.isolate??!1)]}}static \u0275fac=function(n){return new(n||t)};static \u0275mod=Se({type:t});static \u0275inj=he({})}return t})();var Ei=["en","de","es","ro"];var Ss={NAV:{HOME:"Home",VIRA_QIRA:"Vira & Qira",PRODUCT:"Product",FEATURES:"Features",RESOURCES:"Resources",DOCS:"Docs",TUTORIALS:"Tutorials",ROADMAP:"Roadmap",MEET_VIRA:"Meet Vira",MEET_QIRA:"Meet Qira",CONTACT:"Contact",PRICING:"Pricing",START_FREE:"Start Free",QIRA:"Qira Agent",COMPANY:"Company",LOGIN:"Log in",START_BUILDING:"Start building",FEATURES_DESC:"Everything the platform can do",ROADMAP_DESC:"What we are building next",CONTACT_DESC:"Talk to us about your project",LANGUAGE:"Language",TOGGLE_THEME:"Toggle light/dark theme",THEME_LIGHT:"Switch to light theme",THEME_DARK:"Switch to dark theme",LABS:"Ubex Labs",REGISTER:"Register"},FOOTER:{TAGLINE:"One AI. Every layer of your app.",PRODUCT:"Product",FEATURES:"Features",VIRA_QIRA:"Vira & Qira",PRICING:"Pricing",RESOURCES:"Resources",DOCS:"Docs",TUTORIALS:"Tutorials",MEET_VIRA:"Meet Vira",MEET_QIRA:"Meet Qira",ROADMAP:"Roadmap",COMPANY:"Company",CONTACT:"Contact",LEGAL:"Legal",PRIVACY:"Privacy",TERMS:"Terms",IMPRINT:"Imprint",SITEMAP:"Sitemap",COMMUNITY:"Community",ALL_RIGHTS:"All rights reserved.",BUILT_WITH:"Built with",QIRA:"Qira Agent",STATUS:"All systems operational",CHANGELOG:"Roadmap",LABS:"Ubex Labs"},CHAT:{WELCOME_GREETING:"Hi there \u{1F44B}",WELCOME_TEXT:"How can we help you today?",SUGGESTION_WHAT:"What is Ubex and how does it work?",SUGGESTION_PRICING:"What are the pricing plans?",SUGGESTION_DIFF:"How is Ubex different from Zapier or Make?",SUGGESTION_VIRA:"Tell me about Vira",SUGGESTION_QIRA:"Tell me about Qira",VIRA_DESC:"AI Backend Builder",QIRA_DESC:"AI Frontend Builder",INPUT_PLACEHOLDER:"Ask about Ubex...",CONTACT_PROMPT:"Want to leave a message for our team?",CONTACT_YES:"Yes, send a message",CONTACT_NO:"No thanks",FORM_TITLE:"Get in touch",FORM_SUBTITLE:"Our team will get back to you shortly.",CONTACT_TITLE:"Contact our team",CONTACT_SUBTITLE:"We'd love to hear from you.",FIELD_NAME:"Your name *",FIELD_EMAIL:"Your email *",FIELD_COMPANY:"Company (optional)",FIELD_MESSAGE:"Tell us what you need...",FIELD_HOW_HELP:"How can we help?",SUBJECT_GENERAL:"General Inquiry",SUBJECT_SALES:"Sales & Pricing",SUBJECT_SUPPORT:"Technical Support",SUBJECT_PARTNERSHIP:"Partnership",SUBJECT_LABS:"Ubex Labs - Join as Engineer",SUBJECT_TRAINING:"Training",SUBJECT_FEEDBACK:"Feedback",SENDING:"Sending...",SEND:"Send Message",SUCCESS_TITLE:"Message sent!",SUCCESS_SUBTITLE:"Our team will reach out to you soon.",BACK_TO_CHAT:"Back to chat",TAB_CHAT:"Chat",TAB_CONTACT:"Contact",ERROR_MESSAGE:"Sorry, I'm having trouble connecting right now. You can visit ubex.ai/contact to reach the team directly."},HOME:{PROMPT_PLACEHOLDER:"Ask Qira to build...",PROMPT_CTA:"Build",EX_1:"Build a dashboard with stats, a members table and a settings page",EX_2:"Create a booking app with calendar, payments and email confirmations",EX_3:"Make a CRM that alerts Slack when a deal moves to Won",EX_4:"Build an internal tool to track inventory with barcode scanning",CHIP_1:"Dashboard with login",CHIP_2:"Booking app",CHIP_3:"CRM with Slack alerts",CHIP_4:"Inventory tool",HERO_NOTE:"Free to start \xB7 No credit card",HERO_MAP:{HINT_HOVER:"Click a category to explore its agents",HINT_TAP:"Tap a category to explore its agents",AGENT_HINT_HOVER:"Hover an agent to see what it does",AGENT_HINT_TAP:"Tap an agent to see what it does",OPERATIONS:"Operations",INTELLIGENCE:"Intelligence",CUSTOMER:"Customer",BACK_OFFICE:"Back office",SALES:"Sales",DEALS:"Deals",MARKETING:"Marketing",CATEGORIES:{OPERATIONS:"Keep projects moving from onboarding through delivery, with every handoff and deadline covered.",INTELLIGENCE:"Turn company, people and market signals into the context your team needs to make sharper decisions.",CUSTOMER:"Give every customer timely support, proactive success guidance and a clear way to be heard.",BACK_OFFICE:"Keep finance, administration and people operations accurate, organised and moving forward.",SALES:"Find the right prospects, personalise outreach and move every conversation toward a booked meeting.",DEALS:"Help reps prepare, understand calls, remove risk and turn active opportunities into signed business.",MARKETING:"Create on-brand content, distribute it through the right channels and learn what performs."},NODES:{OPS_ONBOARDING:"Onboarding",CLIENT_ONBOARDING:"Client Onboarding Agent",KICKOFF_SCHEDULER:"Kickoff Scheduler",ACCESS_PROVISIONER:"Access Provisioner",OPS_BUILDS:"Builds",PROJECT_PLANNER:"Project Planner",BUILD_TRACKER:"Build Tracker",QA_CHECKER:"QA Checker",RELEASE_COORDINATOR:"Release Coordinator",OPS_CLIENT_OPS:"Client ops",STATUS_REPORTER:"Status Reporter",REQUEST_ROUTER:"Request Router",SLA_MONITOR:"SLA Monitor",INT_COMPANIES:"Companies",COMPANY_RESEARCH:"Company Research Agent",COMPETITOR_TRACKER:"Competitor Tracker",INT_PEOPLE:"People",CONTACT_ENRICHER:"Contact Enricher",ORG_CHART_MAPPER:"Org Chart Mapper",INT_MARKETS:"Markets",MARKET_SCANNER:"Market Scanner",SIGNAL_SYNTHESIZER:"Signal Synthesizer",TREND_WATCHER:"Trend Watcher",CUS_SUPPORT:"Support",SUPPORT_RESOLVER:"Support Resolver",TICKET_TRIAGE:"Ticket Triage",KB_WRITER:"Knowledge Base Writer",CUS_SUCCESS:"Success",HEALTH_MONITOR:"Health Score Monitor",RENEWAL_ASSISTANT:"Renewal Assistant",CHURN_PREDICTOR:"Churn Predictor",CUS_COMMUNITY:"Community",COMMUNITY_MODERATOR:"Community Moderator",FEEDBACK_COLLECTOR:"Feedback Collector",BO_MONEY:"Money",INVOICE_RECONCILER:"Invoice Reconciler",EXPENSE_AUDITOR:"Expense Auditor",CASHFLOW_FORECASTER:"Cash Flow Forecaster",BO_BOOKS:"Books",BOOKKEEPER:"Bookkeeping Agent",TAX_PREP:"Tax Prep Assistant",BO_OFFICE:"Office",CONTRACT_FILER:"Contract Filer",VENDOR_MANAGER:"Vendor Manager",BO_PEOPLE:"People",PAYROLL_CHECKER:"Payroll Checker",LEAVE_TRACKER:"Leave Tracker",HIRING_COORDINATOR:"Hiring Coordinator",
2SAL_TARGETING:"Targeting",LEAD_SCORER:"Lead Scorer",ICP_MATCHER:"ICP Matcher",LIST_BUILDER:"List Builder",INTENT_WATCHER:"Intent Watcher",SAL_OUTREACH:"Outreach",EMAIL_WRITER:"Email Writer",LINKEDIN_PROSPECTOR:"LinkedIn Prospector",PERSONALIZER:"Personalization Agent",CALL_PREP:"Cold Call Prep",SAL_SEQUENCING:"Sequencing",OUTREACH_SEQUENCER:"Outreach Sequencer",FOLLOWUP_SCHEDULER:"Follow-up Scheduler",REPLY_CLASSIFIER:"Reply Classifier",MEETING_BOOKER:"Meeting Booker",CRM_UPDATER:"CRM Updater",DEA_REPS:"Reps",REP_COACH:"Rep Coach",DEA_CALLS:"Calls",CALL_ANALYST:"Call Analyst",MEETING_SUMMARIZER:"Meeting Summarizer",OBJECTION_TRACKER:"Objection Tracker",DEA_CLOSING:"Closing",PROPOSAL_GENERATOR:"Proposal Generator",QUOTE_BUILDER:"Quote Builder",CONTRACT_DRAFTER:"Contract Drafter",DEA_PIPELINE:"Pipeline",PIPELINE_FORECASTER:"Pipeline Forecaster",DEAL_RISK_MONITOR:"Deal Risk Monitor",MKT_CONTENT:"Content",CONTENT_COMPOSER:"Content Composer",BLOG_WRITER:"Blog Writer",VIDEO_SCRIPT_WRITER:"Video Script Writer",CASE_STUDY_WRITER:"Case Study Writer",MKT_BRAND:"Brand",BRAND_GUARDIAN:"Brand Voice Guardian",DESIGN_BRIEF_WRITER:"Design Brief Writer",MKT_DISTRIBUTION:"Distribution",SOCIAL_SCHEDULER:"Social Scheduler",SEO_OPTIMIZER:"SEO Optimizer",NEWSLETTER_BUILDER:"Newsletter Builder",AD_CAMPAIGN_MANAGER:"Ad Campaign Manager",ANALYTICS_REPORTER:"Analytics Reporter"},PANEL:{CATEGORY:"Category overview",ACTIVITY:"Runs, last 14 days",EXAMPLE:"Example figures",HANDLES:"What it handles",WORKS_WITH:"Works with",APPROVAL_AUTO:"Runs on its own",APPROVAL_OPTIONAL:"Human review optional",APPROVAL_REQUIRED:"Human approval required",CTA:"Build this agent",CLOSE:"Close",STAT_AGENTS:"Agents",STAT_TEAMS:"Teams",STAT_TOOLS:"Tools connected",STAT_APPROVAL:"Need sign-off",AGENTS_IN:"Agents inside",TEAMS_IN:"Teams inside",PICK_AGENT:"Show agent details",ACTIVITY_BRANCH:"Runs across these agents, last 14 days",BRANCH_ALL_AUTO:"All agents run on their own",BRANCH_SOME_REQUIRED:"{{count}} of {{total}} agents need human approval",CTA_BRANCH:"Start building"},METRICS:{CLIENTS_ONBOARDED:"Clients onboarded",DAYS_SAVED:"Days saved",ON_TIME:"On time",MEETINGS_MONTH:"Meetings / mo",TIME_SAVED:"Saved / week",REQUESTS_ROUTED:"Requests handled",ACCURACY:"Accuracy",PLANS_MONTH:"Plans / mo",RUNS_DAY:"Runs / day",ISSUES_CAUGHT:"Issues caught",RELEASES_MONTH:"Releases / mo",REPORTS_WEEK:"Reports / week",RESPONSE_TIME:"Avg. response",BRIEFINGS_DAY:"Briefings / day",SOURCES:"Sources",COMPANIES_TRACKED:"Companies tracked",SIGNALS_DAY:"Signals / day",CONTACTS_ENRICHED:"Contacts enriched",MATCH_RATE:"Match rate",TICKETS_RESOLVED:"Tickets resolved",CSAT:"CSAT",ARTICLES:"Articles",DEFLECTION:"Tickets deflected",ACCOUNTS_WATCHED:"Accounts watched",RENEWALS:"Renewals / qtr",RESPONSES:"Responses",INVOICES_MONTH:"Invoices / mo",EXPENSES_MONTH:"Expenses / mo",FORECAST_ACCURACY:"Forecast accuracy",HORIZON:"Weeks ahead",TRANSACTIONS_MONTH:"Transactions / mo",DOCS_FILED:"Documents / mo",VENDORS:"Vendors managed",SAVINGS:"Cost saved",PAYSLIPS:"Payslips checked",CANDIDATES:"Candidates / mo",LEADS_SCORED:"Leads scored / mo",CONVERSION:"Conversion lift",EMAILS_WEEK:"Emails / week",REPLY_RATE:"Reply rate",CALLS_ANALYZED:"Calls analysed / mo",PROPOSALS_WEEK:"Proposals / week",POSTS_WEEK:"Posts / week",CHANNELS:"Channels",TRAFFIC_LIFT:"Traffic lift",REVIEWED:"Pieces reviewed",OPEN_RATE:"Open rate"},AGENTS:{CLIENT_ONBOARDING:{DESC:"Welcomes new clients, collects what's needed and sets everything up.",T1:"Send welcome pack",T2:"Collect documents",T3:"Create workspace"},KICKOFF_SCHEDULER:{DESC:"Finds a slot that works for everyone and prepares the kickoff agenda.",T1:"Match calendars",T2:"Draft agenda",T3:"Send invites"},ACCESS_PROVISIONER:{DESC:"Grants and removes tool access as people join or leave a project.",T1:"Create accounts",T2:"Assign roles",T3:"Revoke on exit"},PROJECT_PLANNER:{DESC:"Turns a brief into milestones, tasks and a realistic timeline.",T1:"Break down scope",T2:"Estimate effort",T3:"Assign owners"},BUILD_TRACKER:{DESC:"Watches every build and flags anything that slips before it becomes late.",T1:"Track progress",T2:"Flag blockers",T3:"Update status"},QA_CHECKER:{DESC:"Tests each release against the checklist and reports what breaks.",T1:"Run test plans",T2:"Log bugs",T3:"Verify fixes"},RELEASE_COORDINATOR:{DESC:"Plans releases, writes the notes and tells everyone what shipped.",T1:"Schedule release",T2:"Write release notes",T3:"Notify clients"},STATUS_REPORTER:{DESC:"Writes the weekly client update from what actually happened.",T1:"Gather updates",T2:"Summarise progress",T3:"Send report"},REQUEST_ROUTER:{DESC:"Reads incoming requests and sends each one to the right person.",T1:"Classify request",T2:"Pick owner",T3:"Set priority"},SLA_MONITOR:{DESC:"Keeps an eye on every commitment and warns before a deadline is missed.",T1:"Track deadlines",T2:"Warn owners",T3:"Escalate breaches"},COMPANY_RESEARCH:{DESC:"Builds a full profile of any company from public sources in minutes.",T1:"Pull company data",T2:"Read filings",T3:"Summarise news"},COMPETITOR_TRACKER:{DESC:"Follows competitors' launches, pricing and hiring, and tells you what changed.",T1:"Watch websites",T2:"Track pricing",T3:"Spot new hires"},CONTACT_ENRICHER:{DESC:"Fills in missing emails, roles and phone numbers for your contacts.",T1:"Find emails",T2:"Verify roles",T3:"Update CRM"},ORG_CHART_MAPPER:{DESC:"Maps who decides, who influences and who reports to whom.",T1:"Map reporting lines",T2:"Find decision makers",T3:"Flag changes"},MARKET_SCANNER:{DESC:"Scans news, filings and forums for moves in your market.",T1:"Scan sources",T2:"Cluster topics",T3:"Rank relevance"},SIGNAL_SYNTHESIZER:{DESC:"Turns hundreds of signals into one short briefing you can act on.",T1:"Merge signals",T2:"Remove noise",T3:"Write briefing"},TREND_WATCHER:{DESC:"Spots topics gaining momentum before they become obvious.",T1:"Track mentions",T2:"Measure momentum",T3:"Alert early"},SUPPORT_RESOLVER:{DESC:"Answers customer questions using your docs and past tickets.",T1:"Draft answers",T2:"Resolve tickets",T3:"Hand off edge cases"},TICKET_TRIAGE:{DESC:"Tags, prioritises and routes every new ticket the moment it arrives.",T1:"Detect intent",T2:"Set priority",T3:"Route to team"},KB_WRITER:{DESC:"Turns solved tickets into help articles so customers find answers themselves.",T1:"Spot repeat questions",T2:"Draft articles",T3:"Keep docs current"},HEALTH_MONITOR:{DESC:"Scores every account's health and warns you about the ones cooling off.",T1:"Track usage",T2:"Score health",T3:"Flag risk"},RENEWAL_ASSISTANT:{DESC:"Prepares each renewal early with usage, value delivered and an offer.",T1:"Prep renew
2al brief",T2:"Draft offer",T3:"Book the call"},CHURN_PREDICTOR:{DESC:"Predicts which customers may leave and suggests how to keep them.",T1:"Model churn risk",T2:"Explain drivers",T3:"Suggest actions"},COMMUNITY_MODERATOR:{DESC:"Keeps your community friendly, answers common questions and removes spam.",T1:"Remove spam",T2:"Answer FAQs",T3:"Welcome members"},FEEDBACK_COLLECTOR:{DESC:"Gathers feedback from every channel and groups it into clear themes.",T1:"Collect feedback",T2:"Group themes",T3:"Report trends"},INVOICE_RECONCILER:{DESC:"Matches invoices to payments and flags anything that doesn't add up.",T1:"Match payments",T2:"Flag mismatches",T3:"Chase missing ones"},EXPENSE_AUDITOR:{DESC:"Checks every expense against policy before it gets approved.",T1:"Read receipts",T2:"Check policy",T3:"Flag exceptions"},CASHFLOW_FORECASTER:{DESC:"Forecasts cash for the next 13 weeks and updates it every day.",T1:"Project inflows",T2:"Model scenarios",T3:"Warn on gaps"},BOOKKEEPER:{DESC:"Categorises transactions and keeps the books ready for month-end.",T1:"Categorise transactions",T2:"Reconcile accounts",T3:"Close the month"},TAX_PREP:{DESC:"Collects the numbers and documents your accountant needs at tax time.",T1:"Gather documents",T2:"Prepare schedules",T3:"Watch deadlines"},CONTRACT_FILER:{DESC:"Files every signed contract and reminds you before renewal and notice dates.",T1:"Extract key terms",T2:"File contracts",T3:"Remind on dates"},VENDOR_MANAGER:{DESC:"Keeps track of suppliers, contracts and spend in one place.",T1:"Track spend",T2:"Compare quotes",T3:"Renew contracts"},PAYROLL_CHECKER:{DESC:"Double-checks payroll before it runs, so nobody gets paid the wrong amount.",T1:"Compare timesheets",T2:"Check deductions",T3:"Flag errors"},LEAVE_TRACKER:{DESC:"Tracks holidays and sick days and keeps team calendars in sync.",T1:"Log requests",T2:"Update calendars",T3:"Warn on clashes"},HIRING_COORDINATOR:{DESC:"Screens applicants, schedules interviews and keeps candidates informed.",T1:"Screen CVs",T2:"Book interviews",T3:"Update candidates"},LEAD_SCORER:{DESC:"Scores every new lead on fit and intent so reps start with the best.",T1:"Score fit",T2:"Score intent",T3:"Route hot leads"},ICP_MATCHER:{DESC:"Checks accounts against your ideal customer profile and explains the match.",T1:"Compare company data",T2:"Score the match",T3:"Explain why"},LIST_BUILDER:{DESC:"Builds targeted prospect lists from your filters in minutes.",T1:"Apply filters",T2:"Find contacts",T3:"Remove duplicates"},INTENT_WATCHER:{DESC:"Notices when target accounts start researching what you sell.",T1:"Track visits",T2:"Read intent data",T3:"Alert reps"},EMAIL_WRITER:{DESC:"Writes first-touch emails that sound like your best rep.",T1:"Research prospect",T2:"Draft email",T3:"Suggest subject lines"},LINKEDIN_PROSPECTOR:{DESC:"Finds the right people on LinkedIn and drafts a personal note.",T1:"Find prospects",T2:"Draft connection note",T3:"Log activity"},PERSONALIZER:{DESC:"Adds a relevant, specific line to every message using fresh research.",T1:"Find hooks",T2:"Tailor openers",T3:"Check tone"},CALL_PREP:{DESC:"Hands reps a one-page brief before every cold call.",T1:"Summarise account",T2:"List talking points",T3:"Predict objections"},OUTREACH_SEQUENCER:{DESC:"Runs multi-step email and LinkedIn sequences and stops at the first reply.",T1:"Build sequence",T2:"Send each step",T3:"Stop on reply"},FOLLOWUP_SCHEDULER:{DESC:"Makes sure no conversation goes quiet by timing every follow-up.",T1:"Time follow-ups",T2:"Draft nudges",T3:"Remind reps"},REPLY_CLASSIFIER:{DESC:"Reads every reply and sorts interested, not now and unsubscribe.",T1:"Classify replies",T2:"Update status",T3:"Alert on hot replies"},MEETING_BOOKER:{DESC:"Turns interested replies into booked meetings without the back and forth.",T1:"Offer slots",T2:"Confirm time",T3:"Send invite"},CRM_UPDATER:{DESC:"Logs calls, emails and next steps in the CRM so reps don't have to.",T1:"Log activity",T2:"Update fields",T3:"Create tasks"},REP_COACH:{DESC:"Reviews each rep's calls and gives specific coaching tips every week.",T1:"Review calls",T2:"Spot patterns",T3:"Suggest drills"},CALL_ANALYST:{DESC:"Listens to sales calls and pulls out needs, risks and next steps.",T1:"Transcribe calls",T2:"Extract insights",T3:"Score the call"},MEETING_SUMMARIZER:{DESC:"Sends a clear summary and action items minutes after every meeting.",T1:"Summarise meeting",T2:"List actions",T3:"Share notes"}
2,OBJECTION_TRACKER:{DESC:"Tracks the objections buyers raise and which answers win deals.",T1:"Detect objections",T2:"Link to outcomes",T3:"Update the playbook"},PROPOSAL_GENERATOR:{DESC:"Drafts tailored proposals from the call notes and your templates.",T1:"Pull requirements",T2:"Draft proposal",T3:"Price options"},QUOTE_BUILDER:{DESC:"Builds accurate quotes with the right discounts and approvals.",T1:"Configure products",T2:"Apply discounts",T3:"Route for approval"},CONTRACT_DRAFTER:{DESC:"Prepares contracts from approved terms and highlights anything unusual.",T1:"Fill template",T2:"Check clauses",T3:"Send for signature"},PIPELINE_FORECASTER:{DESC:"Forecasts the quarter from real deal activity, not gut feeling.",T1:"Score deals",T2:"Forecast revenue",T3:"Explain changes"},DEAL_RISK_MONITOR:{DESC:"Warns you when a deal goes quiet, loses its champion or starts to slip.",T1:"Track engagement",T2:"Detect risk",T3:"Suggest next step"},CONTENT_COMPOSER:{DESC:"Plans and drafts content in your brand voice from a single brief.",T1:"Plan the calendar",T2:"Draft pieces",T3:"Repurpose content"},BLOG_WRITER:{DESC:"Researches and writes SEO-ready blog posts your team only has to polish.",T1:"Research topic",T2:"Outline post",T3:"Write draft"},VIDEO_SCRIPT_WRITER:{DESC:"Writes hooks and scripts for short videos and webinars.",T1:"Write hooks",T2:"Script scenes",T3:"Add captions"},CASE_STUDY_WRITER:{DESC:"Interviews happy customers and turns their story into a case study.",T1:"Prepare questions",T2:"Transcribe interview",T3:"Write the story"},BRAND_GUARDIAN:{DESC:"Checks every piece of content against your brand voice and style guide.",T1:"Check tone",T2:"Fix terminology",T3:"Flag off-brand content"},DESIGN_BRIEF_WRITER:{DESC:"Turns campaign goals into clear briefs designers can start on.",T1:"Define goals",T2:"List assets",T3:"Set specs"},SOCIAL_SCHEDULER:{DESC:"Schedules posts at the best times across every social channel.",T1:"Pick best times",T2:"Queue posts",T3:"Reply to comments"},SEO_OPTIMIZER:{DESC:"Finds keyword gaps and fixes pages so they rank higher.",T1:"Find keywords",T2:"Optimise pages",T3:"Track rankings"},NEWSLETTER_BUILDER:{DESC:"Assembles a newsletter from your latest content and sends it on schedule.",T1:"Pick stories",T2:"Write the intro",T3:"Schedule send"},AD_CAMPAIGN_MANAGER:{DESC:"Launches and tunes ad campaigns, moving budget to what performs.",T1:"Launch ads",T2:"Test variants",T3:"Shift budget"},ANALYTICS_REPORTER:{DESC:"Pulls results from every channel into one weekly marketing report.",T1:"Collect metrics",T2:"Explain changes",T3:"Send the report"}},BRANCHES:{OPS_ONBOARDING:"Everything that gets a new client from signed to up and running.",OPS_BUILDS:"Planning, tracking and shipping the work you deliver.",OPS_CLIENT_OPS:"Keeps client requests, updates and commitments under control.",INT_COMPANIES:"Know any company inside out before you talk to them.",INT_PEOPLE:"Find the right people and understand who decides.",INT_MARKETS:"Stay ahead of what's moving in your market.",CUS_SUPPORT:"Fast, accurate answers for every customer question.",CUS_SUCCESS:"Keep customers healthy, renewing and growing.",CUS_COMMUNITY:"A friendly community and a clear picture of what customers say.",BO_MONEY:"Invoices, expenses and cash, reconciled and forecast.",BO_BOOKS:"Clean books every month and no surprises at tax time.",BO_OFFICE:"Contracts and suppliers, filed and managed in one place.",BO_PEOPLE:"Payroll, time off and hiring handled without the admin.",SAL_TARGETING:"Decide who to go after, and when.",SAL_OUTREACH:"Personal first messages at a scale no team could write by hand.",SAL_SEQUENCING:"Follow-ups, replies and meetings that run themselves.",DEA_REPS:"Help every rep sell like your best one.",DEA_CALLS:"Turn every sales conversation into notes, insight and next steps.",DEA_CLOSING:"Proposals, quotes and contracts ready in hours, not days.",DEA_PIPELINE:"A forecast you can trust and early warning on every deal.",MKT_CONTENT:"A steady stream of content in your voice.",MKT_BRAND:"Every piece on brand, every brief clear.",MKT_DISTRIBUTION:"Get your content in front of the right people, and measure it."}},CTA_START_FREE:"Start building",CTA_SEE_HOW:"See how it works",FINAL_CTA:{EYEBROW:"Get started",TITLE:"Start building today",SUBTITLE:"Describe your idea. Qira takes it from prompt to production.",CTA_START:"Start building for free",CTA_DEMO:"Talk to us",TRUST:"Managed Cloud \xB7 GDPR \xB7 VPC or on-premise"},HERO_EYEBROW:"Meet Qira. One AI that builds it all.",HERO_TITLE_1:"Build your entire",HERO_TITLE_ACCENT:"company's brain",HERO_SUBTITLE:"Qira writes the frontend, backend and database, and puts it on your domain.",STORY:{DESCRIBE:"Describe",REFINE:"Refine",PUBLISH:"Publish",DESCRIBE_T:"An idea becomes a working app.",DESCRIBE_D:"Describe the pages and features you need. Qira builds an app you can preview and explore.",REFINE_T:"Make every detail yours.",REFINE_D:"Select an element, ask for a change, and keep refining your app in the same conversation.",PUBLISH_T:"Ready for your own domain.",PUBLISH_D:"Connect your domain and publish. Keep improving your app as your needs evolve.",EXPLORE:"Explore the Qira Studio",LABEL:"Qira \xB7 Frontend builder",TITLE:"Watch your app take shape",S1_T:"Say what you want",S1_D:"Type it like a message to a colleague. Qira plans the pages, the data and the navigation before writing a line.",S2_T:"It builds in front of you",S2_D:"Components, pages and routing are written in real time. You see every file as it lands.",S3_T:"Preview instantly",S3_D:"The app runs the moment it is generated. Click around, it is real.",S4_T:"Change anything by chatting",S4_D:"Select an element and say what should be different. Qira edits the code, not a mockup.",S5_T:"Restyle in one click",S5_D:"Dark, light, forest or your own brand. Every component adapts.",S6_T:"Ship on your domain",S6_D:"Pick a subdomain or c
2onnect your own. SSL, hosting and updates are handled."},FLOW:{EXAMPLE_NOTE:"Illustrative workflow and timings, not a performance benchmark.",LABEL:"Qira \xB7 Backend",TITLE:"From a booking to a saved record.",SUB:"Validate an incoming booking, apply your business rules and save it to your database. Qira connects the steps in a workflow you can inspect.",P1_T:"Parallel by default",P1_D:"Independent steps run at the same time. 84 ms instead of 108.",P2_T:"Logic you can see",P2_D:"Validation, conditions, AI calls, database writes and integrations. Each one is a node you can open.",P3_T:"No servers, no YAML",P3_D:"Qira wires the workflow, Ubex hosts it. You only describe the behaviour.",REPLAY:"Replay request"},ONE:{LABEL:"Everything in one place",TITLE:"One workspace instead of seven subscriptions",SUB:"Frontend, backend, database, auth, automations, domain and AI. Built together, running together.",USUAL:"The usual way",USUAL_SUB:"7 tools \xB7 7 logins \xB7 glue code in between",UBEX:"With Ubex",UBEX_SUB:"1 project \xB7 1 login \xB7 nothing to stitch",T1:"Frontend hosting",T2:"Backend & APIs",T3:"Database",T4:"Auth & users",T5:"Automations",T6:"Domain & SSL",T7:"AI models",TAB_NONTECH:"I'm not technical",TAB_DEV:"I'm a developer",TAB_BIZ:"I run a business",NONTECH_H:"You never leave the chat.",NONTECH_1:"No setup, no hosting accounts, no tools that refuse to talk to each other.",NONTECH_2:"Say what you need in plain language. Qira builds it and hosts it.",NONTECH_3:"Change your mind any time. Ask, and the app updates.",DEV_H:"Full control when you want it.",DEV_1:"Edit the generated code, or open the visual workflow and wire logic by hand.",DEV_2:"Bring your own PostgreSQL, MySQL, MongoDB or AI keys. Or use ours.",DEV_3:"Deploy to Managed Cloud, your own servers or on-premise. Same project, one click.",BIZ_H:"One bill, one owner, one place to look.",BIZ_1:"Frontend, backend, database and domain in a single project. Nothing to stitch, nothing to lose.",BIZ_2:"You choose where your data lives. Security-reviewed workflows and audit trails.",BIZ_3:"Start free and grow into team plans when the app does."},TESTIMONIALS:{LABEL:"From the builders",TITLE:"What they built, in their own words",MORE:"Read more",LESS:"Show less",PIXL_NAME:"PIXL VISN",PIXL_ROLE:"Media arts academy \xB7 Cologne, Germany",PIXL_QUOTE:"We needed a full app for our academy - attendance, sessions, student management, authentication, Excel imports. With Ubex, the entire thing was built on one platform. Nothing external. Just Ubex.",MRW_NAME:"Mallorca Restaurant Week",MRW_ROLE:"Annual culinary event \xB7 Mallorca, Spain",MRW_QUOTE:"Ubex played a pivotal role in the success of Mallorca Restaurant Week. Onboarding a large number of restaurants in record time, while keeping everything structured and clear, turned a complex process into a seamless one.",TASK_NAME:"Ubex Team",TASK_ROLE:"Built by the team, for the team",TASK_QUOTE:"We built our entire task manager on Ubex - 10 workflows, 10+ tables, JWT auth, cron jobs, the whole app. Nothing external. We use it every day.",VLF_NAME:"VON LILIENFELD",VLF_ROLE:"E-commerce \xB7 Premium umbrellas & accessories",VLF_QUOTE:"This is the first time we've gone on holiday without anyone in the office or the warehouse. The workflows worked brilliantly and kept us selling through our shop and on Otto.",R1_NAME:"Marc Ostrowski",R1_ROLE:"Solo founder \xB7 SaaS analytics tool",R1_QUOTE:"I'm not a backend developer, but Qira built my database schema, my auth flow and my API in a single afternoon. I shipped the MVP before I finished my coffee.",R2_NAME:"Sana Iqbal",R2_ROLE:"Lead developer \xB7 digital agency",R2_QUOTE:"We pitch client sites in half the time now. Qira scaffolds the frontend and backend together, so what used to be a two-week sprint is a two-day one - and clients still get a codebase we can hand off.",R3_NAME:"Elena Radu",R3_ROLE:"Owner \xB7 boutique fitness studio",R3_QUOTE:"I described what I wanted in plain language and watched the booking system appear. No developer, no agency, no waiting around. I deployed it myself the same day.",R4_NAME:"Devon Marsh",R4_ROLE:"CTO \xB7 early-stage startup",R4_QUOTE:"We use Ubex for everything that isn't our core product - internal tools, admin dashboards, integration glue. It frees the team to spend engineering time where it actually matters.",R5_NAME:"Priya Nair",R5_ROLE:"Program lead \xB7 community nonprofit",R5_QUOTE:"We had zero budget for developers. Qira built our volunteer sign-up system, the database behind it, and a dashboard for our coordinators - live in a week.",R6_NAME:"Tom\xE1s Herrera",R6_ROLE:"Operations manager \xB7 online retailer",R6_QUOTE:"Order tracking, supplier syncs, customer notifications - it all runs on workflows I set up myself through Qira. I stopped waiting on developer time for every small change."},BUILD:{LABEL:"How Ubex works",TITLE:"One Agent builds the whole thing",SUB:"The interface your users see and the logic running behind it, in the same place.",TAB_FRONTEND:"Frontend",TAB_BACKEND:"Backend"}},INTERFACE:{HERO_LABEL:"UBEX INTERFACE",HERO_TITLE:"Build full-stack apps with Qira. Choose your model. Ship in minutes.",HERO_SUBTITLE:"Qira is your AI builder inside Ubex Interface. Pick any LLM - from Claude to GPT to Gemini - and build complete frontend + backend applications through conversation. Upload designs, switch models mid-project, and deploy instantly.",HERO_STAT_MODELS:"Multi-LLM",HERO_STAT_MODELS_LBL:"Choose your model",HERO_STAT_FULLSTACK:"Full-Stack",HERO_STAT_FULLSTACK_LBL:"Frontend + Backend + DB",HERO_STAT_DEPLOY:"1-click",HERO_STAT_DEPLOY_LBL:"Publish & go live",HERO_STAT_LIVE:"Visual Design",HERO_STAT_LIVE_LBL:"Select & edit live",CTA_START_FREE:"Start Free",CTA_BOOK_DEMO:"Book a Demo",MODELS_LABEL:"MODEL SELECTION",MODELS_TITLE:"Choose the brain behind your build.",MODELS_SUBTITLE:"Qira works with the LLM you choose. Switch between models anytime - use a powerful model for complex layouts, a lighter one for quick edits. You control the cost and capability.",MODELS_ANTHROPIC:"Anthropic",MODELS_OPENAI:"OpenAI",MODELS_GOOGLE:"Google",MODELS_OPUS:"Claude Opus 4.6",MODELS_SONNET:"Claude Sonnet",MODELS_HAIKU:"Claude Haiku",MODELS_GPT4:"GPT-4o",MODELS_GPT4_MINI:"GPT-4o Mini",MODELS_GEMINI_PRO:"Gemini Pro",MODELS_GEMINI_FLASH:"Gemini Flash",MODELS_SWITCH_TIT
2LE:"Switch models on the fly",MODELS_SWITCH_DESC:"You don't have to stick with one model for your entire project. Start with a powerful model for complex architecture, switch to a lighter one for simple tweaks. Ubex gives you this choice - optimize for quality or cost at every step.",FULLSTACK_LABEL:"FULL-STACK CREATION",FULLSTACK_TITLE:"Qira builds the frontend. Vira handles the backend. Automatically.",FULLSTACK_SUBTITLE:"Once your project is selected, Qira live-calls Vira to create the backend. Together they build everything - frontend pages, backend APIs, and database tables. A complete application, from one conversation.",FULLSTACK_F1_TITLE:"Frontend generation",FULLSTACK_F1_DESC:"Pages, components, forms, dashboards, auth flows - Qira generates the complete UI from your description.",FULLSTACK_F2_TITLE:"Automatic backend creation",FULLSTACK_F2_DESC:"Qira calls Vira in real-time to create REST APIs, authentication workflows, and business logic - no manual setup.",FULLSTACK_F3_TITLE:"Database tables",FULLSTACK_F3_DESC:"Vira creates and configures all database tables your application needs. Users, sessions, content - everything structured and ready.",FULLSTACK_F4_TITLE:"Everything connected",FULLSTACK_F4_DESC:"Frontend talks to backend natively. No CORS headaches, no API wiring. It just works because it's all built on the same platform.",CONTROL_LABEL:"FULL CONTROL",CONTROL_TITLE:"Your project, your rules.",CONTROL_SUBTITLE:"Stop the model anytime. Upload reference images. Switch LLMs mid-conversation. Ubex gives you complete control over how your application gets built.",CONTROL_STOP_TITLE:"Stop anytime",CONTROL_STOP_DESC:"Not going in the right direction? Stop the model instantly and redirect. You're always in control of the generation process.",CONTROL_UPLOAD_TITLE:"Upload images and examples",CONTROL_UPLOAD_DESC:"Drop in screenshots, mockups, or examples from other websites. Qira uses them as reference to match the design you have in mind.",CONTROL_SWITCH_TITLE:"Switch models mid-project",CONTROL_SWITCH_DESC:"Start with Claude Opus for complex architecture, switch to Haiku for quick text changes. You don't have to use the same model until the end.",PREVIEW_LABEL:"PREVIEW & CODE",PREVIEW_TITLE:"See it live. Edit the code. Both at once.",PREVIEW_SUBTITLE:"The Interface gives you two views side by side - a live Preview of what Qira created, and a Code view where you can manually adjust anything. See the full project structure, edit files directly, and watch changes reflect instantly.",PREVIEW_LIVE_TITLE:"Live Preview",PREVIEW_LIVE_DESC:"See exactly what Qira is building in real-time. Every component, every page, every interaction - rendered live as it's generated.",PREVIEW_CODE_TITLE:"Code View",PREVIEW_CODE_DESC:"Full access to the source code. Browse the project structure, open any file, and make manual adjustments. Your code, your way.",SELECT_LABEL:"SELECT & DESIGN TOOL",SELECT_TITLE:"Click any element. Design it visually. Save on AI costs.",SELECT_SUBTITLE:"The Select tool lets you click on any element in the live preview and modify it instantly. A full Design panel appears with every option you need - no code required for visual changes. Instead of burning tokens asking the AI to change a font size or a color, do it yourself in one click. The Design tool saves you real money.",SELECT_SAVE_TITLE:"Save money with visual editing",SELECT_SAVE_DESC:"Every time you ask the AI to tweak a color, adjust spacing, or change a font - that costs tokens. With the Design tool, you make those changes yourself in seconds, visually. Reserve the AI for what matters: building new features, complex logic, and full pages. Simple design tweaks should never cost you a prompt.",SELECT_CLASSES_TITLE:"Classes",SELECT_CLASSES_DESC:"Add or remove CSS classes instantly. See all applied classes as tags, remove with one click, or add new ones from the input field.",SELECT_LAYOUT_TITLE:"Layout",SELECT_LAYOUT_DESC:"Control display mode, position type, and overflow behavior. Switch between block, flex, grid, inline - all with visual toggles.",SELECT_SIZE_TITLE:"Size",SELECT_SIZE_DESC:"Set width, height, min/max dimensions with precise pixel values. Full control over how much space your element takes.",SELECT_SPACING_TITLE:"Spacing",SELECT_SPACING_DESC:"Adjust padding and margin with linked or individual values. Fine-tune the breathing room around every element.",SELECT_FILL_TITLE:"Fill & Borders",SELECT_FILL_DESC:"Backgroun
2d colors, gradients, opacity, cursor, border styles, and border radius. Includes preset gradient options for quick styling.",SELECT_EFFECTS_TITLE:"Effects",SELECT_EFFECTS_DESC:"Add shadows from subtle to dramatic - None, SM, MD, LG, XL, or Inner. Plus custom shadow values for precise control.",SELECT_TYPO_TITLE:"Typography",SELECT_TYPO_DESC:"Font family, size, weight, line height, letter spacing, color, alignment, and decoration. Complete text styling in one panel.",SELECT_RESPONSIVE_TITLE:"Responsive breakpoints",SELECT_RESPONSIVE_DESC:"Style per breakpoint - All, \u2265640, \u2265768, \u22651024, \u22651280. Each element can have different styles at different screen sizes.",RESPONSIVE_LABEL:"RESPONSIVE PREVIEW",RESPONSIVE_TITLE:"Desktop. Tablet. Mobile. See it all.",RESPONSIVE_SUBTITLE:"Three live preview modes let you see exactly how your application looks on every device. Switch between Desktop, Tablet, and Mobile views instantly - no guessing, no surprises when you go live.",RESPONSIVE_DESKTOP:"Desktop",RESPONSIVE_TABLET:"Tablet",RESPONSIVE_MOBILE:"Mobile",SETTINGS_LABEL:"SETTINGS & VERSIONING",SETTINGS_TITLE:"Subdomains, themes, and version control. Built in.",SETTINGS_SUBTITLE:"Configure your deployment, switch themes instantly, and manage application versions - all from the Interface settings.",SETTINGS_SUBDOMAIN_TITLE:"Custom subdomain",SETTINGS_SUBDOMAIN_DESC:"Don't want to use your main domain? Set up a subdomain for publishing. Your app goes live at yourapp.ubex.ai or any custom domain you connect.",SETTINGS_THEME_TITLE:"One-click theme switching",SETTINGS_THEME_DESC:"Used a default Ubex theme? Switch it with one click. All colors update automatically across every element on your page - buttons, text, backgrounds, everything.",SETTINGS_VERSION_TITLE:"Application versioning",SETTINGS_VERSION_DESC:"Every publish creates a version. Add descriptions to track what changed. Revert to any previous version and go live with it in seconds - just select it from the top bar.",DEMO_LABEL:"SEE IT IN ACTION",DEMO_TITLE:"Watch Qira and Vira build a full app together.",DEMO_SUBTITLE:"From conversation to deployed application - register, login, dashboard, members, settings, and deployment. All in one flow.",DEMO_CHAT_INPUT:"Tell Qira what to build...",DEMO_WAITING:"Waiting for Qira...",DEMO_VIRA_JOINED:"Vira joined the conversation",DEMO_P1_USER:"Build me a SaaS app with email login, OTP verification, a dashboard with stats, a members page, and settings.",DEMO_P1_QIRA:"On it. Creating your full frontend - register, email-based login, OTP verification, dashboard with sidebar, members table, and settings page.",DEMO_P2_USER:"Now connect everything to a real backend - auth, database, API endpoints.",DEMO_P2_QIRA:"That needs backend work. Let me bring in Vira.",DEMO_P2_VIRA1:"Hey! I'll handle the backend. Creating auth workflows, database tables for users and members, and REST endpoints for everything.",DEMO_P2_VIRA2:"Done. Register, OTP login workflows are live. Members API with pagination ready. Dashboard stats endpoint connected. All secured with JWT.",COMPARE_LABEL:"WHY UBEX",COMPARE_TITLE:"Everything in one place. Not five.",COMPARE_SUBTITLE:"Other platforms make you stitch together frontend hosting, backend services, databases, auth providers, and deployment pipelines. Ubex is one platform.",COMPARE_FRONTEND:"Frontend",COMPARE_BACKEND:"Backend",COMPARE_DATABASE:"Database",COMPARE_AUTH:"Authentication",COMPARE_HOSTING:"Hosting",COMPARE_SSL:"SSL",COMPARE_SERVICES:"Services to manage",COMPARE_UBEX_FRONTEND:"Qira generates from chat",COMPARE_UBEX_BACKEND:"Vira visual workflows",COMPARE_UBEX_DB:"Hosted on Ubex, zero setup",COMPARE_UBEX_AUTH:"JWT/OTP included",COMPARE_UBEX_HOSTING:"One-click deploy",COMPARE_UBEX_SSL:"Automatic",COMPARE_UBEX_SERVICES:"1 platform",COMPARE_ALT_FRONTEND:"React/Vue + manual coding",COMPARE_ALT_BACKEND:"Express/Django + server setup",COMPARE_ALT_DB:"Separate DB service",COMPARE_ALT_AUTH:"Auth0 / Firebase Auth",COMPARE_ALT_HOSTING:"Separate frontend + API hosting",COMPARE_ALT_SSL:"Manual or Let's Encrypt",COMPARE_ALT_SERVICES:"4-6
2services",CTA_TITLE:"Stop stitching. Start shipping.",CTA_SUBTITLE:"Describe your app, get a full stack, deploy in one click. Free tier included - no credit card required.",CTA_TALK:"Talk to Us",CTA_TRUST:"Free tier \xB7 Managed Cloud \xB7 SSL included \xB7 Custom domains"},FEATURES:{HERO_LABEL:"FEATURES",HERO_TITLE:"Everything you need to build apps, automate work, and deploy with confidence",HERO_SUBTITLE:"AI, integrations, data, security - all in one platform. 3 years of engineering. One powerful engine.",HERO_CTA_START:"Start Free",HERO_CTA_INTERFACE:"See Interface",DIFF_PARALLEL_TITLE:"Parallel Execution",DIFF_PARALLEL_DESC:"Runs 3x-10x faster than sequential tools. Your workflows execute independent tasks simultaneously, not one at a time.",DIFF_DB_TITLE:"Multi-Database Support",DIFF_DB_DESC:"MySQL, PostgreSQL, MongoDB. Secure connections built in. Your data stays protected.",DIFF_EU_TITLE:"Flexible Deployment",DIFF_EU_DESC:"Cloud, VPC, or on-premise. Your data, your rules. Choose where it lives.",DIFF_COMPLIANCE_TITLE:"Compliance Built-In",DIFF_COMPLIANCE_DESC:"Auto-audit, execution logs, data retention. Working towards GDPR, SOC 2, and ISO 27001 alignment.",SOLVES_LABEL:"WHAT UBEX SOLVES",SOLVES_TITLE:"Stop stitching tools. Start shipping products.",SOLVES_SUBTITLE:"Ubex replaces the scattered stack of services, scripts, and tools you maintain today - with one platform.",BENTO_POPULAR:"Most popular",BENTO_AGENT_TITLE:"Create Your Own AI Agent",BENTO_AGENT_DESC:"Build personal assistants that handle your daily tasks - email triage, data lookups, scheduled reports, Slack alerts. Deploy as a chat interface, API endpoint, or scheduled job. Your agent, your rules, your data.",BENTO_AGENT_T1:"Daily summaries",BENTO_AGENT_T2:"Email assistant",BENTO_AGENT_T3:"Data monitor",BENTO_AGENT_T4:"Chat support",BENTO_AGENT_T5:"Scheduled reports",BENTO_BACKEND_TITLE:"Build a Full Backend",BENTO_BACKEND_DESC:"Everything your app needs to work - user accounts, data storage, emails, files. Deploy production endpoints from a visual canvas.",BENTO_ENDPOINTS_DEPLOYED:"endpoints deployed",BENTO_AUTOMATE_TITLE:"Automate Anything",BENTO_AUTOMATE_DESC:"Connect databases, APIs, and services into scheduled or event-driven pipelines. Process invoices, sync catalogs, trigger alerts.",BENTO_AI_TITLE:"Ship AI-Powered Apps",BENTO_AI_DESC:"Apps that think. Chatbots that know your business. Documents that process themselves. Wire AI models to your data and deploy.",NODES_TITLE:"All Node Types",FILTER_ALL:"All",FILTER_AI:"AI & ML",FILTER_INTEGRATION:"Integrations",FILTER_LOGIC:"Logic & Code",FILTER_OUTPUT:"Output",READ_DOCS:"Read docs \u2192",MORE_NODES_TITLE:"More nodes available",MORE_NODES_DESC:"The platform includes additional node types beyond what's listed here. New nodes are added regularly based on user feedback.",VIEW_ROADMAP:"View roadmap \u2192",TRIGGERS_LABEL:"TRIGGERS",TRIGGERS_TITLE:"Start workflows your way",TRIGGERS_SUBTITLE:"Every workflow starts with a trigger. Pick the one that fits your use case.",TRIGGER_DOCS_BTN:"Read documentation \u2192",SECURITY_LABEL:"SECURITY & INFRASTRUCTURE",SECURITY_TITLE:"Production-grade security. Not an afterthought.",SECURITY_SUBTITLE:"Every endpoint ships with the controls you'd expect from hand-written infrastructure - configured visually.",SEC_API_AUTH_TITLE:"API Authentication",SEC_API_AUTH_DESC:"Required auth toggle on every endpoint. API key management with x-api-key header validation.",SEC_IP_TITLE:"IP Whitelisting",SEC_IP_DESC:"Restrict endpoint access to specific IPs or CIDR ranges. Control exactly who can reach your workflows.",SEC_CORS_TITLE:"CORS Controls",SEC_CORS_DESC:"Configure which origins can call your endpoints. Fine-grained cross-origin resource sharing per workflow.",SEC_RATE_TITLE:"Rate Limiting",SEC_RATE_DESC:"Configurable requests-per-minute on every API endpoint. Prevent abuse and control traffic.",SEC_SSL_TITLE:"SSL/TLS & SSH Tunneling",SEC_SSL_DESC:"All database connections encrypted. Route through SSH tunnels for secure access to private databases.",SEC_LOGS_TITLE:"Execution Logs & Audit",SEC_LOGS_DESC:"Step-by-step debugging. 7 to 365 days retention. Full audit trail of every workflow run.",INTEGRATIONS_LABEL:"INTEGRATIONS",INTEGRATIONS_TITLE:"Connect to the tools you already use",INTEGRATIONS_SUBTITLE:"Pre-built connectors and growing. Plus HTTP Request node for any API.",INTEGRATIONS_NOTE:"Can't find your tool? Use the HTTP Request node to connect to any REST API.",AI_LABEL:"AI BUILDER",AI_TITLE:"Built by describing it",AI_DESC1:"Skip the manual setup. Tell Qira what your app should do and she builds it - triggers, conditions, integrations, database, frontend - all wired up and ready to deploy.",AI_DESC2:"She can also edit existing work, add features, swap integrations, or restructure logic - all through conversation.",AI_CTA:"Meet Qira",AI_DEMO_USER:"Monitor a website for price drops and alert me on Telegram",AI_DEMO_BOT:"Built. Schedule trigger \u2192 Web scraper \u2192 Condition (price check) \u2192 Telegram alert. Running every 30 minutes.",CTA_TITLE:"Ready to build?",CTA_SUBTITLE:"Start building apps and automations in minutes. No credit card required.",CTA_START:"Start Free",CTA_TUTORIALS:"Explore Tutorials",MODAL_LOADING:"Loading documentation...",MODAL_TOC_TITLE:"On this page",CHAT_USER1:"Summarize today's sales data",CHAT_BOT1:"Today's revenue is \u20AC12,450 across 34 orders. Top product: Pro Plan (18 sales). +12% revenue vs yesterday.",CHAT_USER2:"Send this to the #sales Slack channel",CHAT_BOT2:"Done. Summary posted to #sales with the daily chart attached.",TRIGGER_CHAT_NAME:"Chat",TRIGGER_CHAT_HEADLINE:"Build conversational AI",TRIGGER_CHAT_DESC:"Turn any workflow into a chatbot. Session memory, streaming responses, and a built-in chat UI. Connect to GPT-4, Claude, Gemini - or all of them.",TRIGGER_CHAT_F1:"Session memory",TRIGGER_CHAT_F2:"Streaming responses",TRIGGER_CHAT_F3:"Built-in chat UI",TRIGGER_CHAT_F4:"Multi-LLM support",TRIGGER_MANUAL_NAME:"Manual",TRIGGER_MANUAL_HEADLINE:"Run on demand",TRIGGER_MANUAL_DESC:"Execute workflows from the dashboard with one click. Pass input parameters, see step-by-step execution, debug in real-time. Perfect for testing and internal tools.",TRIGGER_MANUAL_F1:"One-click execution",TRIGGER_MANUAL_F2:"Input parameters",TRIGGER_MANUAL_F3:"Step-by-step debug",TRIGGER_MANUAL_F4:"Execution logs",TRIGGER_SCHEDULE_NAME:"Schedule",TRIGGER_SCHEDULE_HEADLINE:"Automate on a schedule",TRIGGER_SCHEDULE_DESC:"Cron-based scheduling with full flexibility. Run every minute, hourly, daily, weekly, or define custom cron expressions. Timezone-aware.",TRIGGER_SCHEDULE_F1:"Cron expressions",TRIGGER_SCHEDULE_F2:"Timezone support",TRIGGER_SCHEDULE_F3:"Custom intervals",TRIGGER_SCHEDULE_F4:"Retry on failure",TRIGGER_API_NAME:"API",TRIGGER_API_HEADLINE:"Expose as a REST endpoint",TRIGGER_API_DESC:"Every workflow gets a unique URL. Add API key authentication, IP whitelisting, rate limiting, and CORS controls. Deploy production APIs without writing server code.",TRIGGER_API_F1:"Unique endpoint URL",TRIGGER_API_F2:"API key auth",TRIGGER_API_F3:"Rate limiting",TRIGGER_API_F4:"CORS controls",NODE_FLOW_START_TITLE:"Flow Start",NODE_FLOW_START_DESC:"Entry point for Workflow and Agent flows. Supports Chat, Manual, Schedule, and API triggers with configurable capabilities and chat interface.",NODE_FLOW_START_H1:"Multiple triggers",NODE_FLOW_START_H2:"Chat interface",NODE_FLOW_START_H3:"Schedule & API",NODE_FLOW_START_H4:"Agent capabilities",NODE_CONDITIONS_TITLE:"Conditions",NODE_CONDITIONS_DESC:"Branch your workflow based on data. Support for complex conditions with AND/OR logic. Route data to different paths.",NODE_CONDITIONS_H1:"If/else branches",NODE_CONDITIONS_H2:"Multiple conditions",NODE_CONDITIONS_H3:"Data comparison",NODE_CONDITIONS_H4:"Regex matching",NODE_DELAY_TITLE:"Delay",NODE_DELAY_DESC:"Pause workflow execution for a specified duration. Useful for rate limiting, waiting for external processes, or timed intervals.",NODE_DELAY_H1:"Configurable duration",NODE_DELAY_H2:"Multiple time units",NODE_DELAY_H3:"Rate limiting",NODE_DELAY_H4:"Cancellable",NODE_MCP_TITLE:"MCP Server",NODE_MCP_DESC:"Connect to an external MCP server and invoke a tool. Supports SSE and
2Streamable HTTP transports with API Key or Bearer Token authentication.",NODE_MCP_H1:"SSE & HTTP transport",NODE_MCP_H2:"Auto-discover tools",NODE_MCP_H3:"API Key & Bearer auth",NODE_MCP_H4:"Dynamic arguments",NODE_VALIDATOR_TITLE:"Data Validator",NODE_VALIDATOR_DESC:"Validate and structure data using JSON Schema. Ensure data conforms to expected types, formats, and constraints before processing.",NODE_VALIDATOR_H1:"Schema validation",NODE_VALIDATOR_H2:"Type checking",NODE_VALIDATOR_H3:"Format constraints",NODE_VALIDATOR_H4:"Required fields",NODE_FORLOOP_TITLE:"For Loops",NODE_FORLOOP_DESC:"Iterate over arrays and collections. Process items in parallel or sequentially. Aggregate results automatically.",NODE_FORLOOP_H1:"Array iteration",NODE_FORLOOP_H2:"Parallel processing",NODE_FORLOOP_H3:"Result aggregation",NODE_FORLOOP_H4:"Break conditions",NODE_SUBWORKFLOW_TITLE:"Sub-workflow",NODE_SUBWORKFLOW_DESC:"Organize complex logic into reusable sub-workflows. Call workflows from other workflows. Share common patterns.",NODE_SUBWORKFLOW_H1:"Reusable logic",NODE_SUBWORKFLOW_H2:"Nested execution",NODE_SUBWORKFLOW_H3:"Parameter passing",NODE_SUBWORKFLOW_H4:"Error isolation",NODE_TRYCATCH_TITLE:"Try / Catch",NODE_TRYCATCH_DESC:"Error handling and retry logic for your workflows. Catch errors, configure retries with fixed or exponential backoff, and route failures gracefully.",NODE_TRYCATCH_H1:"Configurable retries",NODE_TRYCATCH_H2:"Exponential backoff",NODE_TRYCATCH_H3:"Error routing",NODE_TRYCATCH_H4:"Retry delay control",NODE_THROWERROR_TITLE:"Throw Error",NODE_THROWERROR_DESC:"Immediately stop the workflow and raise an error. Use inside a Try / Catch scope to trigger the error path, or on its own to halt execution with a message.",NODE_THROWERROR_H1:"Custom error message",NODE_THROWERROR_H2:"Optional error code",NODE_THROWERROR_H3:"Try / Catch integration",NODE_THROWERROR_H4:"Precondition enforcement",NODE_HUMANLOOP_TITLE:"Human in the Loop",NODE_HUMANLOOP_DESC:"Pause workflows for human review. Approve or reject before continuing. Configurable timeout with auto-approve or auto-reject fallback.",NODE_HUMANLOOP_H1:"Approval gates",NODE_HUMANLOOP_H2:"Configurable timeout",NODE_HUMANLOOP_H3:"Auto-approve/reject",NODE_HUMANLOOP_H4:"Context display",NODE_MODEL_TITLE:"Model",NODE_MODEL_DESC:"Connect to any major LLM provider with a unified interface. Switch between GPT-4, Claude, Gemini, Llama, and Mistral without changing your workflow.",NODE_MODEL_H1:"Multi-provider support",NODE_MODEL_H2:"Session memory",NODE_MODEL_H3:"Temperature control",NODE_MODEL_H4:"Token tracking",NODE_AGENT_TITLE:"Agent",NODE_AGENT_DESC:"Autonomous AI agent that stacks nodes inside it as tools. Select a model and it automatically accesses all inner node data - no manual wiring needed.",NODE_AGENT_H1:"Container node",NODE_AGENT_H2:"Auto tool access",NODE_AGENT_H3:"Multi-step reasoning",NODE_AGENT_H4:"Stack any no
2de inside",NODE_IMAGEGEN_TITLE:"Image Generation",NODE_IMAGEGEN_DESC:"Generate images using DALL-E, Stable Diffusion, and other AI models. Create visuals directly in your workflow.",NODE_IMAGEGEN_H1:"DALL-E 3",NODE_IMAGEGEN_H2:"Stable Diffusion",NODE_IMAGEGEN_H3:"Image editing",NODE_IMAGEGEN_H4:"Style control",NODE_QUERYDATA_TITLE:"Query Data",NODE_QUERYDATA_DESC:"Search a data source using semantic, keyword, or hybrid search. Control result count and relevance filtering for RAG workflows.",NODE_QUERYDATA_H1:"Semantic search",NODE_QUERYDATA_H2:"Hybrid retrieval",NODE_QUERYDATA_H3:"Relevance threshold",NODE_QUERYDATA_H4:"MMR diversity",NODE_WRITEDATA_TITLE:"Write Data",NODE_WRITEDATA_DESC:"Perform database write operations - insert, update, upsert, or delete - against a selected data source.",NODE_WRITEDATA_H1:"Insert & update",NODE_WRITEDATA_H2:"Upsert support",NODE_WRITEDATA_H3:"Where conditions",NODE_WRITEDATA_H4:"Column mapping",NODE_EXTRACTFILE_TITLE:"Extract from File",NODE_EXTRACTFILE_DESC:"Extract text and structured data from uploaded files. Support for PDFs, documents, spreadsheets, and more.",NODE_EXTRACTFILE_H1:"PDF parsing",NODE_EXTRACTFILE_H2:"Text extraction",NODE_EXTRACTFILE_H3:"Table detection",NODE_EXTRACTFILE_H4:"Multi-format",NODE_DATABASE_TITLE:"Database",NODE_DATABASE_DESC:"Execute SQL queries on connected databases. Read, write, and manage data directly from your workflows.",NODE_DATABASE_H1:"SQL queries",NODE_DATABASE_H2:"Multiple databases",NODE_DATABASE_H3:"Parameterized queries",NODE_DATABASE_H4:"Result mapping",NODE_SETVARS_TITLE:"Set Variables",NODE_SETVARS_DESC:"Define named variables that become available to all subsequent nodes. Initialize values, store constants, or prepare data.",NODE_SETVARS_H1:"Variable creation",NODE_SETVARS_H2:"Dynamic values",NODE_SETVARS_H3:"Template syntax",NODE_SETVARS_H4:"Reusable data",NODE_DATAMAPPER_TITLE:"Data Mapper",NODE_DATAMAPPER_DESC:"Transform and reshape data by defining a JSON output template. Use variable interpolation to inject dynamic values.",NODE_DATAMAPPER_H1:"JSON templates",NODE_DATAMAPPER_H2:"Data reshaping",NODE_DATAMAPPER_H3:"Variable injection",NODE_DATAMAPPER_H4:"Structure mapping",NODE_FILE_TITLE:"File",NODE_FILE_DESC:"Perform file system operations within your workflows. Create, read, write, rename, and delete files.",NODE_FILE_H1:"Create & read",NODE_FILE_H2:"Write & rename",NODE_FILE_H3:"Delete files",NODE_FILE_H4:"Dynamic paths",NODE_CODE_TITLE:"Code Execution",NODE_CODE_DESC:"Write custom JavaScript code when you need full control. Access workflow data and return transformed results.",NODE_CODE_H1:"JavaScript",NODE_CODE_H2:"Full data access",NODE_CODE_H3:"Custom logic",NODE_CODE_H4:"Async support",NODE_HTTP_TITLE:"HTTP Request",NODE_HTTP_DESC:"Call any REST API with full control over headers, authentication, and request body. Support for all HTTP methods.",NODE_HTTP_H1:"All HTTP methods",NODE_HTTP_H2:"Custom headers",NODE_HTTP_H3:"Auth support",NODE_HTTP_H4:"Response parsing",NODE_SCRAPER_TITLE:"Web Scraper",NODE_SCRAPER_DESC:"Extract content from any webpage. Use CSS selectors or let AI identify the data you need. Handle pagination and dynamic content.",NODE_SCRAPER_H1:"CSS selectors",NODE_SCRAPER_H2:"AI extraction",NODE_SCRAPER_H3:"Pagination",NODE_SCRAPER_H4:"JavaScript rendering",NODE_INTEGRATIONS_TITLE:"Integrations",NODE_INTEGRATIONS_DESC:"Pre-built connectors for popular services. Slack, Discord, email, databases, and more. No API knowledge required.",NODE_INTEGRATIONS_H1:"Slack & Discord",NODE_INTEGRATIONS_H2:"Email (SMTP)",NODE_INTEGRATIONS_H3:"Databases",NODE_INTEGRATIONS_H4:"Cloud storage",NODE_OUTPUT_TITLE:"Simple Output",NODE_OUTPUT_DESC:"Return data from your workflow as an API response. Format as JSON, text, or HTML. Perfect for building AI microservices.",NODE_OUTPUT_H1:"JSON responses",NODE_OUTPUT_H2:"Custom formatting",NODE_OUTPUT_H3:"Status codes",NODE_OUTPUT_H4:"Headers control",CAT_AI:"AI & ML",CAT_INTEGRATION:"Integration",CAT_LOGIC:"Logic & Code",CAT_OUTPUT:"Output"},TUTORIALS:{HERO_LABEL:"LEARN",HERO_TITLE:"Tutorials",HERO_SUBTITLE:"Step-by-step guides to building real features with Ubex workflows.",DISCLAIMER:"These tutorials are continuously being improved and updated. If you use them in production, you do so at your own responsibility. Always review and test workflows before deploying.",FILTER_ALL:"All",FILTER_AVAILABLE:"Available",FILTER_IN_PROGRESS:"In Progress",DIFF_BEGINNER:"Beginner",DIFF_INTERMEDIATE:"Intermediate",DIFF_ADVANCED:"Advanced",DIFF_EXPERT:"Expert",EMPTY_TITLE:"No tutorials found",EMPTY_DESC:'There are no tutorials matching the "{{filter}}" filter yet. Try a different filter or check back soon.',EMPTY_RESET:"Show all tutorials",STATUS_IN_PROGRESS:"In Progress",CAT_AUTH:"Authentication",CAT_AUTH_DESC:"Build secure login flows, registration, email verification, and multi-factor authentication.",AUTH_PREREQ_TITLE:"Authentication Prerequisites",AUTH_PREREQ_DESC:"Complete database setup, secrets configuration, and security checklist for the entire auth system.",AUTH_REGIST
2ER_TITLE:"User Registration",AUTH_REGISTER_DESC:"Schema validation, password hashing, duplicate detection, hashed tokens, and email verification.",AUTH_EMAIL_TITLE:"Email Verification",AUTH_EMAIL_DESC:"Secure token-based verification with rate limiting, hashed tokens, expiration, and audit logging.",AUTH_LOGIN_TITLE:"User Login",AUTH_LOGIN_DESC:"Authenticate users, verify account status, and issue JWT tokens.",AUTH_FORGOT_TITLE:"Forgotten Password",AUTH_FORGOT_DESC:"Secure password reset with rate limiting, hashed tokens, expiration, and audit logging.",AUTH_CHANGE_TITLE:"Change Password",AUTH_CHANGE_DESC:"JWT-authenticated password change with current password verification and strength enforcement.",AUTH_OTP_TITLE:"OTP Authentication",AUTH_OTP_DESC:"One-time password authentication for enhanced security via email.",AUTH_TOTP_TITLE:"Google Authenticator (TOTP)",AUTH_TOTP_DESC:"Time-based one-time passwords with Google Authenticator or Authy.",CAT_PAYMENTS:"Payments",CAT_PAYMENTS_DESC:"Integrate payment providers like Stripe to handle checkouts, subscriptions, and webhooks.",PAY_STRIPE_TITLE:"Stripe Checkout Session",PAY_STRIPE_DESC:"Create a Stripe Checkout session and return the payment URL to your frontend.",CAT_CONTACT:"Contact",CAT_CONTACT_DESC:"Build contact forms with validation, storage, and automated confirmation emails.",CONTACT_FORM_TITLE:"Website Contact Form",CONTACT_FORM_DESC:"Validate submissions, store in a table, and send confirmation emails via Resend.",CAT_TELEGRAM:"Telegram",CAT_TELEGRAM_DESC:"Build AI-powered Telegram bots with knowledge base search, LLM responses, and webhook integration.",TELEGRAM_BOT_TITLE:"Telegram AI Bot",TELEGRAM_BOT_DESC:"Connect a Telegram bot to an AI-powered assistant with RAG and LLM responses.",CAT_WHATSAPP:"WhatsApp",CAT_WHATSAPP_DESC:"Build AI-powered WhatsApp bots with Twilio integration, webhook signature validation, and secure messaging.",WHATSAPP_BOT_TITLE:"WhatsApp AI Bot",WHATSAPP_BOT_DESC:"Connect WhatsApp to an AI assistant with Twilio webhook verification and HMAC-SHA1 signature validation.",CAT_DISCORD:"Discord",CAT_DISCORD_DESC:"Connect Discord bots to your workflows for tickets, notifications, and automation.",DISCORD_TICKETS_TITLE:"Discord Support Tickets",DISCORD_TICKETS_DESC:"Let users submit support tickets via Discord slash commands, verified and stored automatically.",DISCORD_STATS_TITLE:"Discord Server Stats",DISCORD_STATS_DESC:"Fetch live member counts and online presence from your Discord server.",CTA_TITLE:"Can't find what you're looking for?",CTA_SUBTITLE:"Check out our documentation or reach out to the community on Discord.",CTA_DOCS:"Documentation",CTA_DISCORD:"Join Discord"},ROADMAP:{HERO_LABEL:"PRODUCT ROADMAP",HERO_TITLE:"What we're building",HERO_SUBTITLE:"We shipped the engine. Now we're building the ecosystem around it. Here's what's done, what's in progress, and what's coming.",LEGEND_COMPLETED:"COMPLETED",LEGEND_IN_PROGRESS:"IN PROGRESS",LEGEND_PLANNED:"PLANNED",LEGEND_EXPLORING:"EXPLORING",STATUS_COMPLETED:"Completed",STATUS_IN_PROGRESS:"In Progress",STATUS_PLANNED:"Planned",STATUS_EXPLORING:"Exploring",Q4_2024:"Q4 2024",Q1_2025:"Q1 2025",Q2_2025:"Q2 2025",Q3_Q4_2025:"Q3\u2013Q4 2025",Q1_2026:"Q1 2026",Q2_2026:"Q2 2026",FUTURE:"Future",DATE_DEC_2024:"Dec 2024",DATE_NOV_2024:"Nov 2024",DATE_OCT_2024:"Oct 2024",DATE_JAN_2025:"Jan 2025",DATE_FEB_2025:"Feb 2025",DATE_MAR_2025:"Mar 2025",DATE_APR_2025:"Apr 2025",DATE_MAY_2025:"May 2025",DATE_JUN_2025:"Jun 2025",DATE_Q3_2025:"Q3 2025",DATE_Q4_2025:"Q4 2025",DATE_Q1_2026:"Q1 2026",DATE_Q2_2026:"Q2 2026",VISUAL_ENGINE_TITLE:"Visual Execution Engine",VISUAL_ENGINE_DESC:"Build apps visually without code. Drag-and-drop interface with 21+ building blocks and parallel execution.",MULTI_LLM_TITLE:"Multi-LLM Support",MULTI_LLM_DESC:"Connect to ChatGPT, Claude, Gemini, and more from a single interface. Switch providers anytime.",RAG_TITLE:"RAG & Datasources",RAG_DESC:"AI that searches your documents. Built-in vector storage and document processing for knowledge bases.",TEMPLATES_TITLE:"Workflow Templates",TEMPLATES_DESC:"Pre-built templates for common use cases: content generation, data extraction, customer support.",TEAM_COLLAB_TITLE:"Team Collaboration",TEAM_COLLAB_DESC:"Shared workspaces, role-based permissions, and real-time collaboration on workflows.",API_AUTH_TITLE:"API Endpoints & Auth",API_AUTH_DESC:"Turn any workflow into a live API with security. Authentication, rate limiting, IP whitelisting, and access controls.",SCHEDULED_TITLE:"Scheduled Workflows",SCHEDULED_DESC:"Run tasks automatically on a schedule. Cron-like triggers with timezone support.",WEBHOOKS_TITLE:"Webhook Triggers",WEBHOOKS_DESC:"Start workflows from external events. Connect to any app that sends webhooks, with automatic payload handling.",ANALYTICS_TITLE:"Advanced Analytics",ANALYTICS_DESC:"Detailed workflow execution metrics, cost tracking, and performance insights.",QIRA_TITLE:"Qira - AI App Builder",QIRA_DESC:"AI assistant that builds complete applications from conversation. Describe what you need and Qira creates it - frontend, backend, database, and deployment.",HOSTING_TITLE:"Frontend Hosting & Deployment",HOSTING_DESC:"One-click deployment for frontends with custom domains, SSL, and Cloud hosting. Build with Qira or bring your own.",GDPR_SOC2_TITLE:"GDPR & SOC 2 Type II",GDPR_SOC2_DESC:"Working towards GDPR compliance and SOC 2 Type II certification. Audit logs, data retention controls, and role-based access across all plans.",EU_AI_ACT_TITLE:"AI Governance Alignment",EU_AI_ACT_DESC:"Execution audit trails for AI transparency, conditional nodes for human-in-the-loop oversight, and data governance controls.",EU_DEPLOY_TITLE:"Flexible Deployment Options",EU_DEPLOY_DESC:"Cloud, VPC, and on-premise deployment. Run the entire engine in your data center. Air-gapped if needed.",DOCS_TITLE:"Platform Documentation",DOCS_DESC:"Comprehensive documentation covering all nodes, configuration options, and step-by-step guides for building and deploying workflows.",MARKETPLACE_TITLE:"Certified Workflow Marketplace",MARKETPLACE_DESC:"Security-audited workflow templates built by certified engineers. Every workflow reviewed for security and compliance.",VERSION_CONTROL_TITLE:"Version Control",VERSION_CONTROL_DESC:"Git-like versioning for workflows with branching, merging, and rollback. Essential for enterprise governance.",ISO_TITLE:"ISO 27001 Certification",ISO_DESC:"Information security management aligned with international standards. Building on SO
2C 2 foundations.",SEC_COMPLIANCE_TITLE:"Security & Compliance",SEC_COMPLIANCE_DESC:"mTLS support for service-to-service authentication. Exportable audit logs to S3, SIEM, and external observability platforms.",AUTO_AUDIT_TITLE:"Auto-Audit Compliance Layer",AUTO_AUDIT_DESC:"Automated compliance tracking and reporting. Generate audit reports for AI governance, GDPR, and SOC 2 with one click.",MULTI_REGION_TITLE:"Multi-Region Deployment",MULTI_REGION_DESC:"Deploy workflows across multiple regions for redundancy and latency optimization. Jurisdiction-aware routing.",MOBILE_TITLE:"Mobile Monitoring",MOBILE_DESC:"Monitor and trigger workflows from iOS and Android devices. Real-time execution alerts.",FEEDBACK_TITLE:"Have a feature request?",FEEDBACK_DESC:"We build in public and prioritize based on community feedback. Let us know what you'd like to see next.",FEEDBACK_CTA:"Submit Feedback",FEEDBACK_DISCORD:"Join Discord",TAG_CORE:"Core",TAG_EXECUTION:"Execution",TAG_LLM:"LLM",TAG_INTEGRATION:"Integration",TAG_RAG:"RAG",TAG_TEMPLATES:"Templates",TAG_UX:"UX",TAG_TEAMS:"Teams",TAG_ENTERPRISE:"Enterprise",TAG_API:"API",TAG_SECURITY:"Security",TAG_AUTOMATION:"Automation",TAG_TRIGGERS:"Triggers",TAG_WEBHOOKS:"Webhooks",TAG_ANALYTICS:"Analytics",TAG_MONITORING:"Monitoring",TAG_AI:"AI",TAG_BACKEND:"Backend",TAG_FRONTEND:"Frontend",TAG_HOSTING:"Hosting",TAG_DEPLOYMENT:"Deployment",TAG_GDPR:"GDPR",TAG_SOC2:"SOC 2",TAG_COMPLIANCE:"Compliance",TAG_EU_AI_ACT:"AI Governance",TAG_ON_PREMISE:"On-Premise",TAG_VPC:"VPC",TAG_DOCS:"Docs",TAG_PLATFORM:"Platform",TAG_MARKETPLACE:"Marketplace",TAG_VERSIONING:"Versioning",TAG_GOVERNANCE:"Governance",TAG_ISO:"ISO 27001",TAG_MTLS:"mTLS",TAG_AUDIT_LOGS:"Audit Logs",TAG_SIEM:"SIEM",TAG_AUTO_AUDIT:"Auto-Audit",TAG_INFRASTRUCTURE:"Infrastructure",TAG_EU_DEPLOY:"Flexible Deploy",TAG_MOBILE:"Mobile"},MEET_VIRA:{HERO_LABEL:"MEET VIRA",HERO_TITLE:"Stop configuring. Start describing.",HERO_SUBTITLE:"Vira is the AI inside Ubex that turns plain language into live workflows and agents. You talk, it builds.",DEMO_LABEL:"LIVE DEMO",DEMO_TITLE:"Watch Vira work",DEMO_SUBTITLE:"A real conversation turns into a live workflow - node by node.",DEMO_INPUT_PLACEHOLDER:"Ask Vira to build something...",DEMO_USER1:"Create a workflow that listens for Stripe webhook payments, checks if the amount is over \u20AC100, sends a Slack notification, and logs it to the database",DEMO_VIRA1:"On it. I'll wire up a Stripe webhook trigger, add a condition node to filter amounts over \u20AC100, connect Slack for notifications, and add a database write for logging. Building now...",DEMO_USER2:"Also add an email notification to the finance team after the Slack message",DEMO_VIRA2:"I will add a HTTP Request node for the Gmail API right after Slack. Same condition applies - only for charges over \u20AC100.",CANVAS_HEADER:"Workflow Canvas",CANVAS_NODES:"nodes",CANVAS_BRANCHES:"branches",CAP_LABEL:"CAPABILITIES",CAP_TITLE:"What Vira can do",CAP_SUBTITLE:"Build workflows, create agents, edit on the fly - all through conversation.",CAP_BUILD_TITLE:"Build Workflows",CAP_BUILD_DESC:'Say "connect Stripe to Slack when payments exceed \u20AC100" and Vira assembles the trigger, condition, integration, and output nodes - deployed in seconds.',CAP_AGENTS_TITLE:"Create Agents",CAP_AGENTS_DESC:"Describe a support agent that reads tickets, queries your knowledge base, and drafts replies. Vira wires the tools, memory, and instructions into a ready-to-run agent.",CAP_EDIT_TITLE:"Edit Live Workflows",CAP_EDIT_DESC:'"Add an email step after Slack" - Vira inserts the node, reconnects the flow, and keeps everything running. No rebuild needed.',CAP_ISSUES_TITLE:"Catch Issues Early",CAP_ISSUES_DESC:"Vira flags missing error handlers, suggests retry logic for flaky APIs, and warns when a condition branch has no fallback - while you're still building.",CAP_PLAIN_TITLE:"Plain English, Real Logic",CAP_PLAIN_DESC:"Describe flows the way you'd explain them to a colleague. Vira maps your words to Ubex nodes, conditions, and data transformations automatically.",CAP_NODES_TITLE:"Every Ubex Node Available",CAP_NODES_DESC:"HTTP requests, database writes, AI models, 50+ integrations - Vira has access to the full Ubex node library and picks the right ones for your use case.",COMP_LABEL:"THE DIFFERENCE",COMP_TITLE:"Build in minutes, not hours",COMP_WITHOUT:"Without Vira",COMP_STEP1:"Drag and place 12 nodes on the canvas",COMP_STEP2:"Configure each node's settings manually",COMP_STEP3:"Wire connections between every node",COMP_STEP4
2:"Set up conditions and branching logic",COMP_STEP5:"Debug, test, fix, repeat",COMP_STEP6:"Deploy and configure the endpoint",COMP_TIME_WITHOUT:"~30-60 minutes",COMP_WITH:"With Vira",COMP_WITH_PROMPT:'"Create a workflow that listens for Stripe payments over \u20AC100, notifies Slack, emails finance, and logs to the database."',COMP_WITH_RESULT:"Workflow built, connected, and deployed.",COMP_TIME_WITH:"~30 seconds",EX_LABEL:"EXAMPLES",EX_TITLE:"From prompt to production",EX_SUBTITLE:"Real requests and what Vira creates from them.",EX1_PROMPT:"Build an agent that monitors support tickets, classifies urgency with AI, and auto-assigns to the right team in Jira",EX2_PROMPT:"When a new order comes in from Shopify, check inventory in our database, and if stock is low send a restock request to the supplier API",EX3_PROMPT:"Every Friday at 5pm, pull this week's analytics from Google Sheets, generate an AI summary, and post it to our #metrics Slack channel",EX_WORKFLOW_CREATED:"workflow created",EX_AUTO_DEPLOYED:"auto-deployed",CTA_TITLE:"Start building with Vira",CTA_SUBTITLE:"Describe what you need. Vira takes it from there.",CTA_CROSSLINK_PREFIX:"Vira handles the backend.",CTA_CROSSLINK_LINK:"Meet Qira for the frontend",CTA_START:"Start Free",CTA_CONTACT:"Get in Touch",CTA_TRUST:"No credit card required \xB7 Free tier included"},MEET_QIRA:{CREDIT_BALANCE:"$3.11 credits remaining",TOKEN_RATE_LABEL:"Input / output \xB7 per million tokens",DEMO_NOTE:"Interactive product illustration. Explore the tools, then try them in Ubex.",NEXT:"Next tool",PREVIOUS:"Previous tool",PATH_PUBLISH:"Publish & evolve",PATH_REFINE:"Make it yours",PATH_DESCRIBE:"Describe your idea",HERO_LABEL:"MEET QIRA",HERO_TITLE_1:"One Agent.",HERO_TITLE_ACCENT:"Your whole app.",HERO_SUBTITLE:"Qira is the builder inside Ubex. Describe what you want and she writes the frontend, the backend and the database, picks a theme with you and takes it live on your domain. All from one chat.",HERO_CTA:"Start building",HERO_TOUR:"Take the Studio tour",START_CAPTION:"This is the first screen of every Qira project. Try the toggle and the themes.",MODELS_LABEL:"MODELS",MODELS_TITLE:"Pick the brain behind Qira.",MODELS_SUB:"Qira is not tied to one vendor. Choose the model for every message from OpenAI, Anthropic, Google, xAI, Mistral, DeepSeek and more, and pay only for the tokens you use.",MODELS_FACT_COUNT:"models to choose from",MODELS_FACT_FROM:"per million tokens, from",MODELS_FACT_SWITCH:"click to switch, mid-conversation",MODELS_NOTE:"Prices are shown as input / output per million tokens, straight from the picker in the Studio. Credits are deducted as you go, so you always know what a build cost.",TOUR_LABEL:"THE STUDIO",TOUR_TITLE:"One frame. Everything you need to ship.",TOUR_SUB:"Choose a tool to explore. Preview, refine, inspect and publish, all alongside your conversation with Qira.",TOUR:{PREVIEW_K:"Preview",PREVIEW_T:"Your app, live, while Qira builds it.",PREVIEW_D:"The preview is the real app on its real URL, not a mock. Go back, forward and refresh exactly like in a browser, and open it in a new window whenever you want the full view.",CODE_K:"Code",CODE_T:"Every file is yours to read and edit.",CODE_D:"Switch to Code and the file tree of the project is right there: components, styles, config. Open any file, edit it in place, and Qira keeps working with your changes.",SELECT_K:"Select",SELECT_T:"Click an element. Then decide what to do with it.",SELECT_D:"The Select tool picks any element on the page. Send it to Qira with your request, jump straight to it in the code, or adjust its fill, borders, spacing and text by hand in the side panel.",NETWORK_K:"Network",NETWORK_T:"See every request your app makes.",NETWORK_D:"The Network console lists each call with status, method, timing, payload and response. When something looks wrong, you and Qira look at the same evidence.",DEVICES_K:"Devices",DEVICES_T:"Check it on an iPhone before anyone else does.",DEVICES_D:"Switch the preview to a desktop, an iPad, an iPhone 17, a Galaxy S24 or a Xiaomi 14. Every screen Qira builds is responsive, and here you can see it.",SETTINGS_K:"Settings",SETTINGS_T:"Your domain, your theme, one Deploy button.",
2SETTINGS_D:"Connect a custom domain or pick a subdomain, choose one of the built-in themes, and deploy. Status, SSL and hosting are handled for you.",VERSIONS_K:"Versions",VERSIONS_T:"Write what changed. Roll back when you need to.",VERSIONS_D:"Each publish gets a note you write yourself, so the history reads like a changelog. Restore any earlier version with one click, no git required.",OPEN_K:"Open in new window",SEL_TO_QIRA:"Send to Qira",SEL_TO_CODE:"Open in code",DEV_DESKTOP:"Desktop",DEV_TABLET:"Tablet",DEV_MOBILE:"Mobile",VER_PUBLISHING:"Publishing",VER_NOTE:"Added SMS reminders for bookings and fixed the timezone on the calendar",VER_CURRENT:"Current",VER_RESTORE:"Restore"},ONE_LABEL:"NOT JUST THE INTERFACE",ONE_TITLE:"Qira builds the whole thing.",ONE_SUB:"Other builders stop at the screen. Qira writes what runs behind it too, in the same conversation.",ONE_FRONTEND_T:"Frontend",ONE_FRONTEND_D:"Pages, components, forms, tables, dashboards. Responsive by default, themed to match your brand.",ONE_FRONTEND_X:"React, styled, responsive",ONE_BACKEND_T:"Backend",ONE_BACKEND_D:"APIs, authentication, roles, email campaigns and the workflows behind every button.",ONE_BACKEND_X:"APIs, auth, workflows",ONE_DATABASE_T:"Database",ONE_DATABASE_D:"Tables and relations designed for your data, with reads and writes wired into the pages that need them.",ONE_DATABASE_X:"Schema, queries, storage",ONE_DEPLOY_T:"Domain & deploy",ONE_DEPLOY_D:"A subdomain or your own domain, SSL, hosting and versions. Live in one click, rolled back in one more.",ONE_DEPLOY_X:"Hosting, SSL, versions",COMP_WITHOUT:"The usual way",COMP_STEP1:"Set up a frontend project and a backend service",COMP_STEP2:"Install dependencies and configure tooling",COMP_STEP3:"Design a database schema and write the API",COMP_STEP4:"Build each page and wire it to the backend",COMP_STEP5:"Handle auth, routing and responsive styling",COMP_STEP6:"Configure hosting, SSL and a domain",COMP_TIME_WITHOUT:"Days to weeks",COMP_WITH:"With Qira",COMP_WITH_PROMPT:'"Build me a CRM for my coaching business with clients, bookings, payments and email campaigns."',COMP_TIME_WITH:"One conversation",COMP_DONE1:"Frontend, backend and database written",COMP_DONE2:"Theme chosen, responsive on every device",COMP_DONE3:"Deployed on your domain with SSL",COMP_DONE4:"Versioned, so you can always go back",CTA_TITLE:"Start building with Qira",CTA_SUBTITLE:"Describe what you need. Qira takes it from there: frontend, backend, database and hosting.",CTA_START:"Start Free",CTA_CONTACT:"Get in Touch",CTA_TRUST:"No credit card required \xB7 Free tier included"},CONTACT:{HERO_LABEL:"GET IN TOUCH",HERO_TITLE:"Let's talk",HERO_SUBTITLE:"Whether you're an engineer, an enterprise, or just curious - we'd love to hear from you.",INFO_CHAT_TITLE:"Chat with us",INFO_CHAT_DESC:"Our team is here to help with any questions about the platform.",INFO_CHAT_DETAIL:"Response within 24 hours",INFO_ENTERPRISE_TITLE:"Enterprise & Deployment",INFO_ENTERPRISE_DESC:"Need VPC deployment, on-premise, or compliance controls? Let's scope it together.",INFO_ENTERPRISE_DETAIL:"Let's discuss your requirements",INFO_COMMUNITY_TITLE:"Community",INFO_COMMUNITY_DESC:"Join our Discord community for tips, support, and feature requests.",INFO_COMMUNITY_LINK:"Join Discord \u2192",FORM_TITLE:"Send us a message",FORM_NAME_LABEL:"Name *",FORM_NAME_PLACEHOLDER:"Your name",FORM_NAME_REQUIRED:"Name is required.",FORM_NAME_PATTERN:"Name can only contain letters, spaces, hyphens, and apostrophes.",FORM_EMAIL_LABEL:"Email *",FORM_EMAIL_PLACEHOLDER:"[email protected]",FORM_EMAIL_REQUIRED:"Email is required.",FORM_EMAIL_INVALID:"Please enter a valid email address.",FORM_COMPANY_LABEL:"Company",FORM_COMPANY_PLACEHOLDER:"Your company (optional)",FORM_SUBJECT_LABEL:"Subject",FORM_MESSAGE_LABEL:"Message *",FORM_MESSAGE_PLACEHOLDER:"Tell us about your project or question...",FORM_MESSAGE_HINT_SUFFIX:"more character(s) needed",FORM_MESSAGE_REQUIRED:"Message is required.",FORM_MESSAGE_MINLENGTH:"Message must be at least 10 characters.",FORM_SUBMIT:"Send Message",FORM_SUBMITTING:"Sending...",FORM_JOIN_DISCORD:"Join Discord",SUBJECT_GENERAL:"General Inquiry",SUBJECT_SALES:"Sales & Pricing",SUBJECT_SUPPORT:"Technical Support",SUBJECT_PARTNERSHIP:"Partnership",SUBJECT_LABS:"Ubex Labs - Join as Engineer",SUBJECT_TRAINING:"Training",SUBJECT_FEEDBACK:"Feedback",PREFILL_ENTERPRISE_INTRO:"Enterprise plan request",PREFILL_ENTERPRISE_NEEDS:"Also needed",PREFILL_ENTERPRISE_OUTRO:"Please send a quote for this setup.",SUCCESS_TITLE:"Message sent!",SUCCESS_RESET_COOLDOWN:"Send another message ({{seconds}}s)",SUCCESS_RESET:"Send another message",STATS_RESPONSE:"24h",STATS_RESPONSE_LABEL:"Response time",
2STATS_FREE:"Free",STATS_FREE_LABEL:"To get started",STATS_ONBOARDING:"1:1",STATS_ONBOARDING_LABEL:"Enterprise onboarding",FAQ_LABEL:"FREQUENTLY ASKED",FAQ_TITLE:"Common questions",FAQ_Q1:"How long does enterprise onboarding take?",FAQ_A1:"Most enterprise deployments are scoped and running within 2-4 weeks, depending on your infrastructure and compliance requirements.",FAQ_Q2:"Can you help migrate from another platform?",FAQ_A2:"Yes. We work with teams to migrate existing workflows, APIs, and data pipelines to Ubex. Contact us to discuss your setup.",FAQ_Q3:"Do you offer custom development?",FAQ_A3:"For enterprise clients, we offer custom workflow development and integration services. Let's talk about what you need.",FAQ_Q4:"Is my data secure?",FAQ_A4:"All data is encrypted in transit and at rest. Enterprise plans include IP whitelisting, audit logs, and flexible deployment - Cloud, VPC, or on-premise."},PRICING:{LABEL:"PRICING",TITLE:"Simple, transparent pricing",SUBTITLE:"Simple plans that grow with you. Pick a size, change it whenever.",SUBTITLE_DETAIL_1:"Choose a plan for workflow runs. Scale from Lite to on-premise.",SUBTITLE_DETAIL_2:"AI usage is separate - connect your own keys or use our managed credits.",MONTHLY:"Monthly",ANNUALLY:"Annually",SAVE_BADGE:"Save 17%",PER_MO_ANNUAL:"/mo, billed annually",PER_MO_MONTHLY:"/mo, billed monthly",RUNS_PER_MONTH:"workflow runs / month",UNLIMITED_NODES:"unlimited nodes per workflow",CLOUD_HOSTED:"Cloud hosted",CLOUD:"Cloud",OR:"or",SELF_HOSTED:"Self-hosted",ON_PREMISE:"On-premise",INCLUDES:"Includes:",NO_CREDIT_CARD:"No credit card required",MOST_POPULAR:"Most Popular",FREE_NAME:"Free",FREE_DESC:"Get started and explore the platform at no cost.",FREE_PERIOD:"forever free",FREE_RESETS:"resets monthly",FREE_CTA:"Start Free",FREE_F1:"1 project",FREE_F2:"2 parallel executions",FREE_F3:"All node types",FREE_F4:"Bring your own API keys",FREE_F5:"Community support",FREE_AI_NOTE:"No AI credits needed to start",LITE_NAME:"Lite",LITE_DESC:"For individuals and small projects getting started.",LITE_CTA:"Begin here",LITE_HOSTING:"Host 1 application",LITE_INCLUDES:"Includes:",LITE_F1:"1 workspace",LITE_F2:"3 projects",LITE_F3:"2 parallel executions",LITE_F4:"1 GB storage",LITE_F5:"All LLM providers",LITE_F6:"7 days execution history",LITE_F7:"Email support",LITE_AI_NOTE:"AI credits available as add-on",STARTER_NAME:"Starter",STARTER_DESC:"For teams building real applications.",STARTER_CTA:"Get Started",STARTER_HOSTING:"Host 2 applications",STARTER_INCLUDES:"Everything in Lite, plus:",STARTER_F1:"3 workspaces",STARTER_F2:"10 projects",STARTER_F3:"5 parallel executions",STARTER_F4:"5 GB storage",STARTER_F5:"15 days execution history",STARTER_F6:"Team collaboration (3 seats)",STARTER_F7:"Priority email support",STARTER_AI_NOTE:"\u20AC5 AI credits included monthly",PRO_NAME:"Pro",PRO_DESC:"For growing teams that need scale, control, and self-hosted deployment.",PRO_CTA:"Get Started",PRO_HOSTING:"Host 3 applications",PRO_INCLUDES:"Everything in Starter, plus:",PRO_F1:"Unlimited projects",PRO_F2:"20 parallel executions",PRO_F3:"25 GB storage",PRO_F4:"30 days execution history",PRO_F5:"SSO / SAML",PRO_F6:"Staging environments",PRO_F7:"Custom domains",PRO_F8:"Team seats (5 included)",PRO_AI_NOTE:"\u20AC25 AI credits included monthly",ENTERPRISE_BADGE:"Enterprise",ENTERPRISE_NAME:"Enterprise",ENTERPRISE_DESC:"Compliance, security, and full deployment control.",ENTERPRISE_PRICE:"Let's talk",ENTERPRISE_VOLUME:"Custom volume",ENTERPRISE_TAILORED:"tailored to your needs",ENTERPRISE_CTA:"Contact sales",ENTERPRISE_HOSTING:"Custom application hosting",ENTERPRISE_INCLUDES:"Everything in Pro, plus:",ENTERPRISE_F1:"Unlimited parallel executions",ENTERPRISE_F2:"365 days data retention",ENTERPRISE_F3:"Audit logs & auto-audit",ENTERPRISE_F4:"VPC or on-premise deployment",ENTERPRISE_F5:"AI Governance alignment (in progress)",ENTERPRISE_F6:"GDPR & SOC 2 controls",ENTERPRISE_F7:"Custom integrations",ENTERPRISE_F8:"Dedicated account manager",ENTERPRISE_F9:"SLA guarantee",ENTERPRISE_F10:"Invoice billing",ENTERPRISE_AI_NOTE:"Custom AI credits package",COMPARISON_TITLE:"Deployment & Compliance by Plan",TABLE_APP_HOSTING:"Application Hosting",TABLE_1_APP:"1 app",TABLE_2_APPS:"2 apps",TABLE_3_APPS:"3 apps",TABLE_CUSTOM:"Custom",TABLE_DEPLOYMENT:"Deployment",TABLE_CLOUD_OR_SELF:"Cloud or Self-Hosted",TABLE_CLOUD_VPC_ONPREM:"Cloud, VPC, or On-Premise",TABLE_DATA_RETENTION:"Data Retention",TABLE_7_DAYS:"7 days",TABLE_15_DAYS:"15 days",TABLE_30_DAYS:"30 days",TABLE_365_DAYS:"365 days",TABLE_STAGING:"Staging Environments",TABLE_AUDIT_LOGS:"Audit Logs",TABLE_SOC2_GDPR:"SOC 2 & GDPR Controls",TABLE_EU_AI_ACT:"AI Governance Alignment (in progress)",CREDITS_TITLE:"AI Credits",CREDITS_DESC:"Credits work across all AI providers - OpenAI, Anthropic, Google, and more. Or skip credits entirely and connect your own API keys.",CREDITS_KEYS_TITLE:"Your Keys:",CREDITS_KEYS_DESC:"Connect your own provider keys and pay them directly",CREDITS_OUR_TITLE:"Our Credits:",CREDITS_OUR_DESC:"Use managed connections without setting up provider accounts",CREDITS_TRANSPARENT_TITLE:"Transparent:",CREDITS_TRANSPARENT_DESC:"Pay only for tokens consumed, no markup",CREDITS_FLEXIBLE_TITLE:"Flexible:",CREDITS_FLEXIBLE_DESC:"Mix both - your keys for some models, credits for others",CREDITS_POPULAR:"Popular",CREDITS_10_DESC:"Good for ~500k tokens (GPT-4o)",CREDITS_25_DESC:"Good for ~1.25M tokens (GPT-4o)",CREDITS_50_DESC:"Good for ~2.5M tokens (GPT-4o)",FAQ_TITLE:"Frequently Asked Questions",FAQ1_Q:"Do I need to know how to code?",FAQ1_A:"No. Qira can build for you from plain language descriptions - she uses AI credits from your account. Developers can also use the visual canvas and code nodes for full control.",FAQ2_Q:"What can I build with Ubex?",FAQ2_A:"Apps, automations, AI chatbots, data pipelines, booking systems, dashboards, internal tools
2- anything from a simple workflow to a full-stack application.",FAQ3_Q:'What counts as a "workflow run"?',FAQ3_A:"Each time a workflow executes from start to finish, that's one run - regardless of how many nodes or steps are inside it.",FAQ4_Q:"How do AI credits work?",FAQ4_A:"Credits are consumed based on tokens processed. Each model has different rates. You can also connect your own provider keys instead - no credits needed.",FAQ5_Q:"Do I need a credit card to start?",FAQ5_A:"No. The Free plan is completely free - no credit card, no time limit. Start building and upgrade when you're ready.",FAQ6_Q:"Can I change my plan later?",FAQ6_A:"Anytime. Upgrade, downgrade, or cancel from your account settings. Prorated charges apply automatically.",FAQ7_Q:"Do unused credits roll over?",FAQ7_A:"Purchased AI credits never expire. Included monthly credits (Starter/Pro) reset each billing cycle and don't roll over.",FAQ8_Q:"Can I add team members?",FAQ8_A:"Starter includes 3 team seats, Pro includes 5, and Enterprise offers unlimited seats. All plans support role-based access.",FAQ9_Q:"What deployment options are available?",FAQ9_A:"Free through Starter run on Managed Cloud. Pro adds self-hosted deployment. Enterprise adds VPC and full on-premise options.",BUILD_RUNS:"Workflow runs / month",BUILD_APPS:"Applications to host",BUILD_SEATS:"Team seats",BUILD_CREDITS:"AI credits / month",BUILD_RECOMMENDED:"Recommended plan",BUILD_ESTIMATE:"Estimated monthly total",BUILD_CUSTOM:"Custom quote",BUILD_PER_MONTH:"per month",VPC:"VPC",ENT_TITLE:"Build your Enterprise plan",ENT_DESC:"Set the volumes you actually need and where it runs. We price the agreement around that, not around a tier.",ENT_DEPLOYMENT:"Deployment",ENT_NEEDS:"Add what you need",ENT_NEED_SLA:"SLA & dedicated support",ENT_NEED_AUDIT:"Audit logs & compliance",ENT_NEED_INTEGRATIONS:"Custom integrations",ENT_NEED_TRAINING:"Onboarding & training",ENT_SUMMARY:"Your configuration",ENT_TALK_ANYWAY:"Talk to sales anyway",ENT_NOTE:"We reply with a written quote within one business day. Nothing is charged before you sign.",ENT_INCLUDED_TITLE:"Every Enterprise agreement includes"},PRIVACY:{LABEL:"LEGAL",TITLE:"Privacy Policy",LAST_UPDATED:"Last updated: February 2026",TOC_TITLE:"Contents",TOC_INTRO:"Introduction",TOC_COLLECTION:"1. Information We Collect",TOC_USE:"2. How We Use Your Information",TOC_SHARING:"3. Information Sharing",TOC_SECURITY:"4. Data Security",TOC_RETENTION:"5. Data Retention",TOC_RIGHTS:"6. Your Rights",TOC_COOKIES:"7. Cookies",TOC_CHILDREN:"8. Children's Privacy",TOC_CHANGES:"9. Changes to Policy",TOC_CONTACT:"10. Contact Us",INTRO_TITLE:"Introduction",INTRO_P1:'At Ubex AI ("we", "us", or "our"), we are committed to protecting your privacy and ensuring the security of your personal information. This Privacy Policy explains how we collect, use, disclose, and safeguard your information when you use our platform and services.',INTRO_P2:"By using our Services, you agree to the collection and use of information in accordance with this policy. If you do not agree with our policies and practices, please do not use our Services.",COLLECTION_TITLE:"1. Information We Collect",COLLECTION_PROVIDED_TITLE:"1.1. Information You Provide",COLLECTION_ACCOUNT:"Account Information:",COLLECTION_ACCOUNT_DESC:"Name, email address, password, and profile details when you create an account.",COLLECTION_PAYMENT:"Payment Information:",COLLECTION_PAYMENT_DESC:"Billing address and payment method details for paid subscriptions.",COLLECTION_COMMS:"Communications:",COLLECTION_COMMS_DESC:"Information you provide when contacting our support team.",COLLECTION_CONTENT:"User Content:",COLLECTION_CONTENT_DESC:"Prompts, inputs, and content you create using our Services.",COLLECTION_AUTO_TITLE:"1.2. Information Collected Automatically",COLLECTION_USAGE:"Usage Data:",COLLECTION_USAGE_DESC:"Information about how you interact with our Services, including features used and time spent.",COLLECTION_DEVICE:"Device Information:",COLLECTION_DEVICE_DESC:"Browser type, operating system, device identifiers, and IP address.",COLLECTION_LOG:"Log Data:",COLLECTION_LOG_DESC:"Server logs including access times, pages viewed, and referring URLs.",USE_TITLE:"2. How We Use Your Information",USE_INTRO:"We use the information we collect to:",USE_1:"Provide, maintain, and improve our Services",USE_2:"Process transactions and send related information",USE_3:"Send technical notices, updates, and support messages",USE_4:"Respond to your comments, questions, and requests",USE_5:"Monitor and analyze trends, usage, and activities",USE_6:"Detect, investigate, and prevent fraudulent transactions and abuse",USE_7:"Personalize and improve your experience",USE_8:"Develop new products, services, and features",SHARING_TITLE:"3. Information Sharing",SHARING_INTRO:"We may share your information in the following circumstances:",SHARING_PROVIDERS:"Service Providers:",SHARING_PROVIDERS_DESC:"With third-party vendors who perform services on our behalf (payment processing, hosting, analytics).",SHARING_LEGAL:"Legal Requirements:",SHARING_LEGAL_DESC:"When required by law or to respond to legal process.",SHARING_PROTECTION:"Protection:",SHARING_PROTECTION_DESC:"To protect the rights, property, and safety of Ubex AI, our users, or others.",SHARING_TRANSFERS:"Business Transfers:",SHARING_TRANSFERS_DESC:"In connection with a merger, acquisition, or sale of assets.",SHARING_CONSENT:"With Your Consent:",SHARING_CONSENT_DESC:"When you have given us explicit permission to share your information.",SHARING_NO_SELL:"We do not sell your personal information to third parties.",SECURITY_TITLE:"4. Data Security",SECURITY_P1:"We implement appropriate technical and organizational measures to protect your personal information against unauthorized access, alteration, disclosure, or destruction.",SECURITY_INTRO:"These measures include:",SECURITY_1:"Encryption of data in transit and at rest",SECURITY_2:"Regular security assessments and penetration testing",SECURITY_3:"Access controls and authentication mechanisms",SECURITY_4:"Employee training on data protection",SECURITY_5:"Incident response procedures",SECURITY_DISCLAIMER:"While we strive to protect your information, no method of transmission over the Internet is 100% secure. We cannot guarantee absolute security.",RETENTION_TIT
2LE:"5. Data Retention",RETENTION_P1:"We retain your personal information for as long as necessary to fulfill the purposes for which it was collected, including to satisfy legal, accounting, or reporting requirements.",RETENTION_P2:"When you delete your account, we will delete or anonymize your personal information within 30 days, except where we are required to retain it for legal purposes.",RIGHTS_TITLE:"6. Your Rights",RIGHTS_INTRO:"Depending on your location, you may have the following rights:",RIGHTS_ACCESS:"Access:",RIGHTS_ACCESS_DESC:"Request a copy of the personal information we hold about you.",RIGHTS_CORRECTION:"Correction:",RIGHTS_CORRECTION_DESC:"Request correction of inaccurate or incomplete information.",RIGHTS_DELETION:"Deletion:",RIGHTS_DELETION_DESC:"Request deletion of your personal information.",RIGHTS_PORTABILITY:"Portability:",RIGHTS_PORTABILITY_DESC:"Request a copy of your data in a portable format.",RIGHTS_OBJECTION:"Objection:",RIGHTS_OBJECTION_DESC:"Object to processing of your personal information.",RIGHTS_RESTRICTION:"Restriction:",RIGHTS_RESTRICTION_DESC:"Request restriction of processing in certain circumstances.",RIGHTS_CONTACT:"To exercise these rights, please contact us at",COOKIES_TITLE:"7. Cookies and Tracking",COOKIES_P1:"We use cookies and similar tracking technologies to collect and track information about your activity on our Services.",COOKIES_TYPES_TITLE:"Types of Cookies We Use:",COOKIES_ESSENTIAL:"Essential Cookies:",COOKIES_ESSENTIAL_DESC:"Required for the operation of our Services.",COOKIES_ANALYTICS:"Analytics Cookies:",COOKIES_ANALYTICS_DESC:"Help us understand how visitors interact with our Services.",COOKIES_PREFERENCE:"Preference Cookies:",COOKIES_PREFERENCE_DESC:"Remember your settings and preferences.",COOKIES_CONTROL:"You can control cookies through your browser settings. Note that disabling certain cookies may affect the functionality of our Services.",CHILDREN_TITLE:"8. Children's Privacy",CHILDREN_P1:"Our Services are not intended for children under 18 years of age. We do not knowingly collect personal information from children under 18. If we learn we have collected information from a child under 18, we will delete that information promptly.",CHANGES_TITLE:"9. Changes to This Policy",CHANGES_P1:'We may update this Privacy Policy from time to time. We will notify you of any changes by posting the new Privacy Policy on this page and updating the "Last updated" date.',CHANGES_P2:"We encourage you to review this Privacy Policy periodically for any changes. Changes are effective when they are posted on this page.",CONTACT_TITLE:"10. Contact Us",CONTACT_P1:"If you have any questions about this Privacy Policy or our data practices, please contact us:",QUESTIONS:"Questions?",QUESTIONS_DESC:"If you have any questions about this Privacy Policy, please contact us at"},TERMS:{LABEL:"LEGAL",TITLE:"Terms of Use",LAST_UPDATED:"Last updated: February 2026",TOC_TITLE:"Contents",TOC_PREAMBLE:"Preamble",TOC_DEFINITIONS:"1. Definitions",TOC_PURPOSE:"2. Purpose and Scope",TOC_ACCEPTANCE:"3. Acceptance",TOC_ACCESS:"4. Access to Services",TOC_SUBSCRIPTION:"5. Subscription",TOC_FEES:"6. Fees and Payment",TOC_OBLIGATIONS:"7. Your Obligations",TOC_IP:"8. Intellectual Property",TOC_LIABILITY:"9. Liability",TOC_TERMINATION:"10. Termination",PREAMBLE_TITLE:"Preamble",PREAMBLE_P1:`Welcome to Ubex! Our platform provides access to Ubex AI's artificial intelligence models tailored for text generation alongside a range of complementary services (the "Services").`,PREAMBLE_P2:'This agreement (the "Agreement") is entered into by and between Ubex AI, a company specializing in AI solutions ("Ubex AI" or "Us") and any person who uses, accesses, or subscribes to the Services ("You" or the "Customer").',PREAMBLE_P3:"These Terms of Use apply to any Subscription, use, and/or access to the Services by You. By subscribing, accessing, or using the Services, You expressly agree to abide by and be bound by this Agreement.",DEFINITIONS_TITLE:"1. Definitions",DEFINITIONS_INTRO:"The capitalized words in this document shall have the meaning set forth below:",DEF_ACCOUNT:'"Account"',DEF_ACCOUNT_DESC:"means Your account on the Platform.",DEF_AGREEMENT:'"Agreement"',DEF_AGREEMENT_DESC:"means the agreement entered into by and between Ubex AI and You, composed of these Terms of Use, applicable Terms of Service, and all materials referred to herein.",DEF_PLATFORM:'"Platform"',DEF_PLATFORM_DESC:"means the Ubex website and application through which Services are provided.",DEF_SERVICES:'"Services"',DEF_SERVICES_DESC:"means all products, features, and functionalities provided by Ubex AI.",DEF_SUBSCRIPTION:'"Subscription"',DEF_SUBSCRIPTION_DESC:"means Your registration to access and use the Services.",DEF_PLAN:'"Subscription Plan"',DEF_PLAN_DESC:"means the specific tier of Services You have subscribed to.",PURPOSE_TITLE:"2. Purpose and Scope",PURPOSE_SUBTITLE:"2.1. Purpose",PURPOSE_P1:"The purpose of this Agreement is to describe the rights and responsibilities of the Parties in connection with Your use of the Services.",SCOPE_SUBTITLE:"2.2. Scope",SCOPE_P1:"These Terms of Use apply to any Subscription, access to or use of the Services by You on the Platform or via a Marketplace.",SCOPE_P2:"Some Services may be subject to additional terms specific to that Service as set forth in the applicable Terms of Service. By accessing or using a Service covered by the Terms of Service, You also agree to such Terms of Service.",ACCEPTANCE_TITLE:"3. Acceptance",ACCEPTANCE_P1:"Any access or use of the Services by You implies Your unreserved agreement to these Terms of Use. You must read these Terms of Use carefully before using the Services.",ACCEPTANCE_P2:'By clicking on "I agree" (or any similar button or checkbox on the Platform) at the time You sign up for a Service, You expressly agree to be bound by this Agreement.',ACCEPTANCE_P3:"If You agree to any of the terms composing this Agreement on behalf of Your employer or a legal entity, You warrant and represent that You possess the authority to act and accept such terms on their behalf.",ACCESS_TITLE:"4. Access to Our Services",ACCESS_REQ_SUBTITLE:"4.1. Requirements",ACCESS_AGE:"Age Limitation:",ACCESS_AGE_DESC:"You must be at least eighteen (18) years old to use Our Services.",ACCESS_TECH:"Technical Requirements:",ACCESS_TECH_DESC:"You need a computer or compatible device and high-speed internet connection to access the Services.",ACCESS_COSTS:"Costs:",ACCESS_COSTS_DESC:"Unless otherwise stated, the costs of technical requirements shall be borne solely by You.",ACCESS_ACCOUNT_SUBTITLE:"4.2. Your Account",ACCESS_ACCOUNT_P1:"You must create an Account on the Platform to use the Services. You must provide complete, correct, and up-to-date information and promptly update it if any changes occur.",ACCESS_ACCOUNT_P2:"Your Account is intended for Your use only. You shall not share Your Account with any third party without Ubex's prior written consent. You are solely responsible for any action carried out via Your Account.",SUBSCRIPTION_TITLE:"5. Subscription to the Services",SUBSCRIPTION_FREE_SUBTITLE:"5.1. Free Services",SUBSCRIPTION_FREE_P1:"To access Free Services, You must create Your Account and accept this Agreement.",SUBSCRIPTION_PAID_SUBTITLE:"5.2. Paid Services",SUBSCRIPTION_PAID_INTRO:"To subscribe to Paid Services, You must:",SUBSCRIPTION_PAID_1:"
2Create Your Account in compliance with these Terms",SUBSCRIPTION_PAID_2:"Choose Your Subscription Plan",SUBSCRIPTION_PAID_3:"Choose Your payment method",SUBSCRIPTION_PAID_4:"Provide Your payment and billing information",SUBSCRIPTION_PAID_5:"Accept this Agreement",SUBSCRIPTION_PAID_6:"Review and confirm Your Subscription",FEES_TITLE:"6. Fees and Payment",FEES_P1:"Fees for Paid Services are as described on the Platform. You must provide accurate payment information and keep it up-to-date.",FEES_P2:"Ubex reserves the right to decline Your Subscription in case of suspected fraud or misrepresentation. In such cases, any pre-paid Fees will be refunded.",OBLIGATIONS_TITLE:"7. Your Obligations",OBLIGATIONS_INTRO:"You agree to:",OBLIGATIONS_1:"Use the Services in compliance with all applicable laws and regulations",OBLIGATIONS_2:"Not use the Services for any illegal or unauthorized purpose",OBLIGATIONS_3:"Not attempt to gain unauthorized access to any part of the Services",OBLIGATIONS_4:"Not interfere with or disrupt the Services or servers",OBLIGATIONS_5:"Not use the Services to generate harmful, abusive, or illegal content",OBLIGATIONS_6:"Maintain the security of Your Account credentials",IP_TITLE:"8. Intellectual Property",IP_P1:"All intellectual property rights in the Services, including but not limited to software, algorithms, models, and documentation, are owned by Ubex AI or its licensors.",IP_P2:"You retain ownership of any content You create using the Services, subject to Ubex AI's underlying intellectual property rights.",LIABILITY_TITLE:"9. Liability",LIABILITY_P1:'The Services are provided "as is" without warranties of any kind. Ubex AI shall not be liable for any indirect, incidental, special, or consequential damages.',LIABILITY_P2:"Ubex AI's total liability shall not exceed the amounts paid by You for the Services during the twelve (12) months preceding the claim.",TERMINATION_TITLE:"10. Termination",TERMINATION_P1:"You may deactivate Your Account at any time by contacting [email protected]. For Paid Services, termination is subject to the terms of Your Subscription Plan.",TERMINATION_P2:"Ubex reserves the right to suspend or terminate Your Account if You violate these Terms of Use or engage in unauthorized use of the Services.",QUESTIONS:"Questions?",QUESTIONS_DESC:"If you have any questions about these Terms, please contact us at"},CONSENT:{TITLE:"We value your privacy",DESC:"We use cookies to improve your experience, analyze traffic, and personalize content. You can choose which cookies to allow. Read our ",PRIVACY_LINK:"Privacy Policy",ACCEPT:"Accept all",REJECT:"Reject all",CUSTOMIZE:"Customize",CUSTOMIZE_TITLE:"Cookie preferences",CUSTOMIZE_DESC:"Choose which cookies you want to allow. Essential cookies are always active as they are necessary for the website to function.",CAT_ESSENTIAL:"Essential",CAT_ESSENTIAL_DESC:"Required for the website to function. These cannot be disabled.",ALWAYS_ON:"Always on",CAT_ANALYTICS:"Analytics",CAT_ANALYTICS_DESC:"Help us understand how visitors interact with our website by collecting anonymous usage data.",CAT_ADS:"Advertising",CAT_ADS_DESC:"Used to deliver relevant ads and measure campaign effectiveness.",CAT_FUNCTIONAL:"Functional",CAT_FUNCTIONAL_DESC:"Enable enhanced features like language preferences and personalized content.",REJECT_ALL:"Reject all",SAVE_PREFS:"Save preferences",MANAGE_COOKIES:"Manage cookies"},IMPRINT:{LABEL:"LEGAL",TITLE:"Imprint",SUBTITLE:"Information in accordance with \xA7 5 TMG",COMPANY_TITLE:"Company Information",COMPANY_NAME:"TechVision Mallorca SL (operating as Ubex AI)",COMPANY_ADDRESS:`Calle Bartomeu Ferra 16 A 307141 Marratx\xED, Mallorca, Spain`,COMPANY_REPRESENTED:"Represented by: Adelina Bolota",CONTACT_TITLE:"Contact",CONTACT_PAGE_LINK:"Contact us \u2192",CONTACT_WEBSITE_LABEL:"Website",REGISTRATION_TITLE:"Registration Details",REGISTRATION_COURT:"TOMO: 3006 \xB7 HOJA: PM-96905",REGISTRATION_NUMBER:"CIF: B72772940",VAT_ID:"NIF/CIF: B72772940",RESPONSIBLE_TITLE:"Responsible for Content",RESPONSIBLE_DESC:"Responsible for content according to \xA7 18 Abs. 2 MStV:",RESPONSIBLE_PERSON:"Adelina Bolota",RESPONSIBLE_ADDRESS:"Calle Bartomeu Ferra 16 A, 07141 Marratx\xED, Mallorca, Spain",DISPUTE_TITLE:"Dispute Resolution",DISPUTE_NO_OBLIGATION:"We are not obligated and not willing to participate in dispute resolution proceedings before a consumer arbitration board.",QUESTIONS:"Questions?",QUESTIONS_DESC:"If you have any questions about this imprint, visit our"},SITEMAP:{LABEL:"SITEMAP",TITLE:"Sitemap",SUBTITLE:"All pages at a glance",MAIN_PAGES:"Main Pages",AI_ASSISTANTS:"AI Assistants",RESOURCES:"Resources",COMPANY:"Company",LEGAL:"Legal"},LABS:{LABEL:"Ubex Labs \xB7 Summer Camp 2026",TITLE:"Learn to build real AI products.",SUBTITLE:"Taught by the team building them.",CTA_APPLY:"Apply Now",PROBLEM_HEADLINE:"The world stopped hiring junior developers. We didn't.",PROBLEM_TITLE:"The Problem",PROBLEM_TEXT:"Companies need AI-skilled engineers. But they've stopped hiring juniors. They want mid-level talent. They want people who can build from day one. So where does that leave you?",SOLUTION_TIT
3LE:"The Solution",SOLUTION_TEXT:"Ubex Labs is a 2-month mentorship program that closes the gap. 4 weeks of intensive bootcamp with Vlad, CTO of Ubex AI and a 20-year software architect. 4 weeks of follow-up support while you refine, polish, and ship your portfolio project. 24/7 team support for the full 2 months. 38+ hours of direct mentorship.",PROBLEM_CLOSING:"This isn't theory. This isn't a certificate. This is you building real AI products inside a real engineering team.",BENEFITS_TITLE:"What You Get",BENEFIT_1_TITLE:"38+ Hours with Vlad",BENEFIT_1_DESC:"Direct mentorship from a 20-year software architect. Not a lecture. One-on-one guidance on your code, your architecture, your growth.",BENEFIT_2_TITLE:"4 Weeks Intensive Bootcamp",BENEFIT_2_DESC:"5 days per week. 2-hour sessions. Hands-on building from day one. AI agents, workflow automation, application development, production deployment.",BENEFIT_3_TITLE:"4 Weeks Follow-Up Support",BENEFIT_3_DESC:"10 additional mentorship hours when you need them. Refine your project. Polish your portfolio. We don't disappear after the bootcamp.",BENEFIT_4_TITLE:"24/7 Team Access",BENEFIT_4_DESC:"The full Ubex AI team is behind you. Developers, engineers, technical staff. Dedicated channels. Any time. Any question. For 2 months.",BENEFIT_5_TITLE:"Real Portfolio Project",BENEFIT_5_DESC:"Not a tutorial copy. A polished, functional AI product you built and refined over 2 months. The kind you show employers.",BENEFIT_6_TITLE:"\u20AC100 Platform Credits",BENEFIT_6_DESC:"Build on Ubex AI during and after the program. Yours to keep.",BENEFIT_7_TITLE:"Certificate + References",BENEFIT_7_DESC:"Official Ubex AI certificate. Personalized professional references from Vlad.",BENEFIT_8_TITLE:"Career Opportunity",BENEFIT_8_DESC:"Top performers may be considered for roles at Ubex AI.",INVESTMENT_TITLE:"Your Investment",INVESTMENT_INSTALLMENTS:"Paid in two installments.",INSTALLMENT_1:"On acceptance",INSTALLMENT_2:"End of bootcamp (week 4)",INCLUDED_TITLE:"Everything included:",INCLUDED_1:"38+ hours of mentorship with Vlad",INCLUDED_2:"2 months of 24/7 team support",INCLUDED_3:"Dedicated communication channels",INCLUDED_4:"\u20AC100 in Ubex AI platform credits",INCLUDED_5:"Certificate of completion",INCLUDED_6:"Professional references",INVESTMENT_VALUE:"The real value of this program exceeds \u20AC12,000. Your investment is \u20AC499. That's less than \u20AC14 per hour of mentorship with a 20-year architect.",INVESTMENT_CTA_TEXT:"This is an investment in your career. In the AI era, the developers who invest in themselves now will be the ones companies fight to hire later.",AUDIENCE_TITLE:"We're looking for builders.",AUDIENCE_1:"Students or recent graduates looking for real-world experience",AUDIENCE_2:"Junior developers wanting to specialize in AI",AUDIENCE_3:"Career changers transitioning into tech",AUDIENCE_4:"Self-taught programmers ready to go professional",AUDIENCE_5:"Anyone who sees the AI era coming and wants to be ready",AUDIENCE_NOTE:"No CS degree required. No years of experience needed. You need motivation, commitment, and a willingness to build.",FAQ_TITLE:"Frequently Asked Questions",FAQ_1_Q:"Do I need prior AI experience?",FAQ_1_A:"No. Basic technical aptitude is enough. We care about motivation and commitment.",FAQ_2_Q:"How long is the program?",FAQ_2_A:"2 months. 4 weeks intensive bootcamp + 4 weeks follow-up support.",FAQ_3_Q:"What's the time commitment?",FAQ_3_A:"Phase 1: approximately 20-25 hours per week. Phase 2: approximately 10-15 hours per week.",FAQ_4_Q:"Is it remote or in-person?",FAQ_4_A:"Both options available. Details shared upon acceptance.",FAQ_5_Q:"How much does it cost?",FAQ_5_A:"\u20AC499. Two installments of \u20AC250. Includes \u20AC100 in platform credits.",FAQ_6_Q:"What happens after the program?",FAQ_6_A:"You keep your portfolio, skills, credits, and network. Top performers may be considered for roles at Ubex AI.",FAQ_7_Q:"Who is Vlad?",FAQ_7_A:"CTO of Ubex AI. Software architect with 20+ years of experience. Your primary mentor.",FAQ_8_Q:"What if I'm not accepted?",FAQ_8_A:"You're placed on the waiting list with priority access to future cohorts.",FAQ_9_Q:"What if I miss a session?",FAQ_9_A:"Life happens. Sessions are structured so missing one doesn't derail you. Consistent attendance is expected.",FAQ_10_Q:"Will I receive a certificate?",FAQ_10_A:"Yes. Official Ubex AI certificate of completion for all participants who finish the program.",FINAL_STATS:"30 spots. One first cohort. 2 months. 38+ hours with a 20-year architect. 24/7 support. \u20AC100 in platform credits. \u20AC499.",FINAL_QUOTE:"Most bootcamps end and wish you luck. We build with you, then we keep building with you.",COPYRIGHT:"All rights reserved.",WAITLIST_HEADLINE:"The first cohort is now full.",WAITLIST_DESC:"30 participants have been selected for the inaugural Ubex Labs program. But great programs deserve to grow.",WAITLIST_CTA_TEXT:"Join the waiting list.",WAITLIST_NAME:"Name",WAITLIST_EMAIL:"Email",WAITLIST_BUTTON:"Join the Waiting List",WAITLIST_NOTE:"If a spot opens, you'll be the first to know. Waiting list members receive priority access to future Ubex Labs cohorts before public applications open."}};
3var As={NAV:{HOME:"Startseite",VIRA_QIRA:"Vira & Qira",PRODUCT:"Produkt",FEATURES:"Funktionen",RESOURCES:"Ressourcen",DOCS:"Dokumentation",TUTORIALS:"Tutorials",ROADMAP:"Roadmap",MEET_VIRA:"Vira kennenlernen",MEET_QIRA:"Qira kennenlernen",CONTACT:"Kontakt",PRICING:"Preise",START_FREE:"Kostenlos starten",QIRA:"Qira Agent",COMPANY:"Unternehmen",LOGIN:"Anmelden",START_BUILDING:"Jetzt bauen",FEATURES_DESC:"Alles, was die Plattform kann",ROADMAP_DESC:"Woran wir als N\xE4chstes arbeiten",CONTACT_DESC:"Sprechen Sie mit uns \xFCber Ihr Projekt",LANGUAGE:"Sprache",TOGGLE_THEME:"Hell-/Dunkelmodus umschalten",THEME_LIGHT:"Zum hellen Design wechseln",THEME_DARK:"Zum dunklen Design wechseln",LABS:"Ubex Labs",REGISTER:"Registrieren"},FOOTER:{TAGLINE:"Eine KI. Jede Ebene Ihrer App.",PRODUCT:"Produkt",FEATURES:"Funktionen",VIRA_QIRA:"Vira & Qira",PRICING:"Preise",RESOURCES:"Ressourcen",DOCS:"Dokumentation",TUTORIALS:"Tutorials",MEET_VIRA:"Vira kennenlernen",MEET_QIRA:"Qira kennenlernen",ROADMAP:"Roadmap",COMPANY:"Unternehmen",CONTACT:"Kontakt",LEGAL:"Rechtliches",PRIVACY:"Datenschutz",TERMS:"AGB",IMPRINT:"Impressum",SITEMAP:"Sitemap",COMMUNITY:"Community",ALL_RIGHTS:"Alle Rechte vorbehalten.",BUILT_WITH:"Gebaut mit",QIRA:"Qira Agent",STATUS:"Alle Systeme laufen",CHANGELOG:"Roadmap",LABS:"Ubex Labs"},CHAT:{WELCOME_GREETING:"Hallo \u{1F44B}",WELCOME_TEXT:"Wie k\xF6nnen wir Ihnen heute helfen?",SUGGESTION_WHAT:"Was ist Ubex und wie funktioniert es?",SUGGESTION_PRICING:"Welche Preispl\xE4ne gibt es?",SUGGESTION_DIFF:"Wie unterscheidet sich Ubex von Zapier oder Make?",SUGGESTION_VIRA:"Erz\xE4hl mir von Vira",SUGGESTION_QIRA:"Erz\xE4hl mir von Qira",VIRA_DESC:"KI-Backend-Builder",QIRA_DESC:"KI-Frontend-Builder",INPUT_PLACEHOLDER:"Fragen Sie \xFCber Ubex...",CONTACT_PROMPT:"M\xF6chten Sie unserem Team eine Nachricht hinterlassen?",CONTACT_YES:"Ja, Nachricht senden",CONTACT_NO:"Nein danke",FORM_TITLE:"Kontakt aufnehmen",FORM_SUBTITLE:"Unser Team meldet sich in K\xFCrze bei Ihnen.",CONTACT_TITLE:"Unser Team kontaktieren",CONTACT_SUBTITLE:"Wir freuen uns von Ihnen zu h\xF6ren.",FIELD_NAME:"Ihr Name *",FIELD_EMAIL:"Ihre E-Mail *",FIELD_COMPANY:"Unternehmen (optional)",FIELD_MESSAGE:"Sagen Sie uns, was Sie brauchen...",FIELD_HOW_HELP:"Wie k\xF6nnen wir helfen?",SUBJECT_GENERAL:"Allgemeine Anfrage",SUBJECT_SALES:"Vertrieb & Preise",SUBJECT_SUPPORT:"Technischer Support",SUBJECT_PARTNERSHIP:"Partnerschaft",SUBJECT_LABS:"Ubex Labs - Als Ingenieur beitreten",SUBJECT_TRAINING:"Schulung",SUBJECT_FEEDBACK:"Feedback",SENDING:"Wird gesendet...",SEND:"Nachricht senden",SUCCESS_TITLE:"Nachricht gesendet!",SUCCESS_SUBTITLE:"Unser Team wird sich bald bei Ihnen melden.",BACK_TO_CHAT:"Zur\xFCck zum Chat",TAB_CHAT:"Chat",TAB_CONTACT:"Kontakt",ERROR_MESSAGE:"Entschuldigung, ich habe gerade Verbindungsprobleme. Sie k\xF6nnen ubex.ai/contact besuchen, um das Team direkt zu erreichen."},HOME:{PROMPT_PLACEHOLDER:"Qira bitten, etwas zu bauen...",PROMPT_CTA:"Bauen",EX_1:"Baue ein Dashboard mit Statistiken, einer Mitgliedertabelle und einer Einstellungsseite",EX_2:"Erstelle eine Buchungs-App mit Kalender, Zahlungen und E-Mail-Best\xE4tigungen",EX_3:"Erstelle ein CRM, das Slack benachrichtigt, wenn ein Deal gewonnen wird",EX_4:"Baue ein internes Tool zur Bestandsverfolgung mit Barcode-Scanning",CHIP_1:"Dashboard mit Login",CHIP_2:"Buchungs-App",CHIP_3:"CRM mit Slack-Alerts",CHIP_4:"Bestands-Tool",HERO_NOTE:"Kostenlos starten \xB7 Keine Kreditkarte",HERO_MAP:{HINT_HOVER:"Klicke auf eine Kategorie, um ihre Agenten zu entdecken",HINT_TAP:"Tippe auf eine Kategorie, um ihre Agenten zu entdecken",AGENT_HINT_HOVER:"Fahre \xFCber einen Agenten, um zu sehen, was er macht",AGENT_HINT_TAP:"Tippe auf einen Agenten, um zu sehen, was er macht",OPERATIONS:"Betrieb",INTELLIGENCE:"Intelligence",CUSTOMER:"Kunden",BACK_OFFICE:"Backoffice",SALES:"Vertrieb",DEALS:"Deals",MARKETING:"Marketing",CATEGORIES:{OPERATIONS:"H\xE4lt Projekte vom Onboarding bis zur Auslieferung in Bewegung \u2013 mit klaren \xDCbergaben und Fristen.",INTELLIGENCE:"Macht aus Signalen zu Unternehmen, Personen und M\xE4rkten den Kontext f\xFCr bessere Entscheidungen.",CUSTOMER:"Bietet jedem Kunden zeitnahen Support, proaktive Begleitung und einen klaren Weg f\xFCr Feedback.",BACK_OFFICE:"H\xE4lt Finanzen, Verwaltung und People Operations korrekt, organisiert und in Bewegung.",SALES:"Findet die passenden Interessenten, personalisiert die Ansprache und bringt Gespr\xE4che zu gebuchten Terminen.",DEALS:"Hilft Vertriebsteams bei der Vorbereitung, bei Gespr\xE4chserkenntnissen, beim Risikomanagement und beim Abschluss.",MARKETING:"Erstellt markengerechte Inhalte, verteilt sie \xFCber die richtigen Kan\xE4le und zeigt, was wirkt."},NODES:{OPS_ONBOARDING:"Onboarding",CLIENT_ONBOARDING:"Kunden-Onboarding-Agent",KICKOFF_SCHEDULER:"Kickoff-Planer",ACCESS_PROVISIONER:"Zugangsverwalter",OPS_BUILDS:"Builds",PROJECT_PLANNER:"Projektplaner",BUILD_TRACKER:"Build-Tracker",QA_CHECKER:"QA-Pr\xFCfer",RELEASE_COORDINATOR:"Release-Koordinator",OPS_CLIENT_OPS:"Kundenbetrieb",STATUS_REPORTER:"Statusberichte",REQUEST_ROUTER:"Anfragen-Router",SLA_MONITOR:"SLA-Monitor",INT_COMPANIES:"Unternehmen",COMPANY_RESEARCH:"Unternehmensrecherche",COMPETITOR_TRACKER:"Wettbewerbs-Tracker",INT_PEOPLE:"Personen",CONTACT_ENRICHER:"Kontaktanreicherung",ORG_CHART_MAPPER:"Organigramm-Mapper",INT_MARKETS:"M\xE4rkte",MARKET_SCANNER:"Markt-Scanner",SIGNAL_SYNTHESIZER:"Signal-Synthese",TREND_WATCHER:"Trend-Beobachter",CUS_SUPPORT:"Support",SUPPORT_RESOLVER:"Support-L\xF6ser",TICKET_TRIAGE:"Ticket-Triage",KB_WRITER:"Wissensdatenbank-Autor",CUS_SUCCESS:"Success",HEALTH_MONITOR:"Health-Score-Monitor",RENEWAL_ASSISTANT:"Verl\xE4ngerungs-Assistent",CHURN_PREDICTOR:"Abwanderungsprognose",CUS_COMMUNITY:"Community",COMMUNITY_MODERATOR:"Community-Moderator",FEEDBACK_COLLECTOR:"Feedback-Sammler",BO_MONEY:"Finanzen",INVOICE_RECONCILER:"Rechnungsabgleich",EXPENSE_AUDITOR:"Ausgabenpr\xFCfer",CASHFLOW_FORECASTER:"Cashflow-Prognose",BO_BOOKS:"Buchhaltung",BOOKKEEPER:"Buchhaltungs-Agent",TAX_PREP:"Steuer-Assistent",BO_OFFICE:"B\xFCro",CONTRACT_FILER:"Vertragsablage",VENDOR_MANAGER:"Lieferantenmanager",BO_PEOPLE:"Personal",PAYROLL_CHECKER:"Gehaltspr\xFCfer",LEAVE_TRACKER:"Urlaubs-Tracker",HIRING_COORDINATOR:"Recruiting-Koordinator",
3SAL_TARGETING:"Targeting",LEAD_SCORER:"Lead-Scoring",ICP_MATCHER:"ICP-Abgleich",LIST_BUILDER:"Listen-Builder",INTENT_WATCHER:"Kaufsignal-Beobachter",SAL_OUTREACH:"Outreach",EMAIL_WRITER:"E-Mail-Autor",LINKEDIN_PROSPECTOR:"LinkedIn-Prospektor",PERSONALIZER:"Personalisierungs-Agent",CALL_PREP:"Kaltakquise-Vorbereitung",SAL_SEQUENCING:"Sequenzen",OUTREACH_SEQUENCER:"Outreach-Sequenzer",FOLLOWUP_SCHEDULER:"Follow-up-Planer",REPLY_CLASSIFIER:"Antwort-Klassifizierer",MEETING_BOOKER:"Terminbuchung",CRM_UPDATER:"CRM-Aktualisierung",DEA_REPS:"Vertriebler",REP_COACH:"Vertriebscoach",DEA_CALLS:"Gespr\xE4che",CALL_ANALYST:"Gespr\xE4chsanalyse",MEETING_SUMMARIZER:"Meeting-Zusammenfassung",OBJECTION_TRACKER:"Einwand-Tracker",DEA_CLOSING:"Abschluss",PROPOSAL_GENERATOR:"Angebotsgenerator",QUOTE_BUILDER:"Kostenvoranschl\xE4ge",CONTRACT_DRAFTER:"Vertragsentw\xFCrfe",DEA_PIPELINE:"Pipeline",PIPELINE_FORECASTER:"Pipeline-Prognose",DEAL_RISK_MONITOR:"Deal-Risiko-Monitor",MKT_CONTENT:"Content",CONTENT_COMPOSER:"Content-Composer",BLOG_WRITER:"Blog-Autor",VIDEO_SCRIPT_WRITER:"Videoskript-Autor",CASE_STUDY_WRITER:"Fallstudien-Autor",MKT_BRAND:"Marke",BRAND_GUARDIAN:"Markenstimme-W\xE4chter",DESIGN_BRIEF_WRITER:"Design-Briefings",MKT_DISTRIBUTION:"Distribution",SOCIAL_SCHEDULER:"Social-Media-Planer",SEO_OPTIMIZER:"SEO-Optimierer",NEWSLETTER_BUILDER:"Newsletter-Builder",AD_CAMPAIGN_MANAGER:"Kampagnen-Manager",ANALYTICS_REPORTER:"Analytics-Berichte"},PANEL:{CATEGORY:"Kategorie\xFCbersicht",ACTIVITY:"L\xE4ufe, letzte 14 Tage",EXAMPLE:"Beispielwerte",HANDLES:"Was er \xFCbernimmt",WORKS_WITH:"Arbeitet mit",APPROVAL_AUTO:"L\xE4uft selbstst\xE4ndig",APPROVAL_OPTIONAL:"Menschliche Pr\xFCfung optional",APPROVAL_REQUIRED:"Menschliche Freigabe erforderlich",CTA:"Diesen Agenten bauen",CLOSE:"Schlie\xDFen",STAT_AGENTS:"Agenten",STAT_TEAMS:"Teams",STAT_TOOLS:"Verbundene Tools",STAT_APPROVAL:"Mit Freigabe",AGENTS_IN:"Enthaltene Agenten",TEAMS_IN:"Enthaltene Teams",PICK_AGENT:"Agentendetails anzeigen",ACTIVITY_BRANCH:"L\xE4ufe dieser Agenten, letzte 14 Tage",BRANCH_ALL_AUTO:"Alle Agenten laufen selbstst\xE4ndig",BRANCH_SOME_REQUIRED:"{{count}} von {{total}} Agenten brauchen menschliche Freigabe",CTA_BRANCH:"Jetzt bauen"},METRICS:{CLIENTS_ONBOARDED:"Kunden onboardet",DAYS_SAVED:"Tage gespart",ON_TIME:"P\xFCnktlich",MEETINGS_MONTH:"Termine / Monat",TIME_SAVED:"Gespart / Woche",REQUESTS_ROUTED:"Anfragen bearbeitet",ACCURACY:"Genauigkeit",PLANS_MONTH:"Pl\xE4ne / Monat",RUNS_DAY:"L\xE4ufe / Tag",ISSUES_CAUGHT:"Probleme erkannt",RELEASES_MONTH:"Releases / Monat",REPORTS_WEEK:"Berichte / Woche",RESPONSE_TIME:"\xD8 Antwortzeit",BRIEFINGS_DAY:"Briefings / Tag",SOURCES:"Quellen",COMPANIES_TRACKED:"Firmen beobachtet",SIGNALS_DAY:"Signale / Tag",CONTACTS_ENRICHED:"Kontakte erg\xE4nzt",MATCH_RATE:"Trefferquote",TICKETS_RESOLVED:"Tickets gel\xF6st",CSAT:"CSAT",ARTICLES:"Artikel",DEFLECTION:"Tickets vermieden",ACCOUNTS_WATCHED:"Konten beobachtet",RENEWALS:"Verl\xE4ngerungen / Quartal",RESPONSES:"Antworten",INVOICES_MONTH:"Rechnungen / Monat",EXPENSES_MONTH:"Ausgaben / Monat",FORECAST_ACCURACY:"Prognosegenauigkeit",HORIZON:"Wochen voraus",TRANSACTIONS_MONTH:"Buchungen / Monat",DOCS_FILED:"Dokumente / Monat",VENDORS:"Lieferanten betreut",SAVINGS:"Kosten gespart",PAYSLIPS:"Abrechnungen gepr\xFCft",CANDIDATES:"Kandidaten / Monat",LEADS_SCORED:"Leads bewertet / Monat",CONVERSION:"Conversion-Plus",EMAILS_WEEK:"E-Mails / Woche",REPLY_RATE:"Antwortquote",CALLS_ANALYZED:"Gespr\xE4che / Monat",PROPOSALS_WEEK:"Angebote / Woche",POSTS_WEEK:"Beitr\xE4ge / Woche",CHANNELS:"Kan\xE4le",TRAFFIC_LIFT:"Traffic-Plus",REVIEWED:"Inhalte gepr\xFCft",OPEN_RATE:"\xD6ffnungsrate"},AGENTS:{CLIENT_ONBOARDING:{DESC:"Begr\xFC\xDFt neue Kunden, sammelt alles N\xF6tige und richtet alles ein.",T1:"Willkommenspaket senden",T2:"Dokumente sammeln",T3:"Workspace anlegen"},KICKOFF_SCHEDULER:{DESC:"Findet einen Termin, der allen passt, und bereitet die Kickoff-Agenda vor.",T1:"Kalender abgleichen",T2:"Agenda entwerfen",T3:"Einladungen senden"},ACCESS_PROVISIONER:{DESC:"Vergibt und entzieht Tool-Zug\xE4nge, wenn Personen einem Projekt beitreten oder es verlassen.",T1:"Konten anlegen",T2:"Rollen zuweisen",T3:"Zugang entziehen"},PROJECT_PLANNER:{DESC:"Macht aus einem Briefing Meilensteine, Aufgaben und einen realistischen Zeitplan.",T1:"Umfang aufteilen",T2:"Aufwand sch\xE4tzen",T3:"Verantwortliche festlegen"},BUILD_TRACKER:{DESC:"Verfolgt jeden Build und meldet Verz\xF6gerungen, bevor es zu sp\xE4t ist.",T1:"Fortschritt verfolgen",T2:"Blocker melden",T3:"Status aktualisieren"},QA_CHECKER:{DESC:"Testet jedes Release anhand der Checkliste und meldet, was kaputtgeht.",T1:"Testpl\xE4ne ausf\xFChren",T2:"Bugs erfassen",T3:"Fixes pr\xFCfen"},RELEASE_COORDINATOR:{DESC:"Plant Releases, schreibt die Notes und informiert alle, was live ist.",T1:"Release planen",T2:"Release Notes schreiben",T3:"Kunden informieren"},STATUS_REPORTER:{DESC:"Schreibt das w\xF6chentliche Kunden-Update aus dem, was wirklich passiert ist.",T1:"Updates sammeln",T2:"Fortschritt zusammenfassen",T3:"Bericht senden"},REQUEST_ROUTER:{DESC:"Liest eingehende Anfragen und leitet jede an die richtige Person weiter.",T1:"Anfrage einordnen",T2:"Zust\xE4ndige w\xE4hlen",T3:"Priorit\xE4t setzen"},SLA_MONITOR:{DESC:"Beh\xE4lt jede Zusage im Blick und warnt, bevor eine Frist verpasst wird.",T1:"Fristen verfolgen",T2:"Verantwortliche warnen",T3:"Verst\xF6\xDFe eskalieren"},COMPANY_RESEARCH:{DESC:"Erstellt in Minuten ein vollst\xE4ndiges Profil jedes
3Unternehmens aus \xF6ffentlichen Quellen.",T1:"Firmendaten abrufen",T2:"Berichte lesen",T3:"News zusammenfassen"},COMPETITOR_TRACKER:{DESC:"Verfolgt Launches, Preise und Einstellungen der Konkurrenz und meldet \xC4nderungen.",T1:"Websites beobachten",T2:"Preise verfolgen",T3:"Neueinstellungen erkennen"},CONTACT_ENRICHER:{DESC:"Erg\xE4nzt fehlende E-Mails, Rollen und Telefonnummern Ihrer Kontakte.",T1:"E-Mails finden",T2:"Rollen pr\xFCfen",T3:"CRM aktualisieren"},ORG_CHART_MAPPER:{DESC:"Zeigt, wer entscheidet, wer beeinflusst und wer an wen berichtet.",T1:"Berichtslinien abbilden",T2:"Entscheider finden",T3:"\xC4nderungen melden"},MARKET_SCANNER:{DESC:"Durchsucht News, Berichte und Foren nach Bewegungen in Ihrem Markt.",T1:"Quellen scannen",T2:"Themen b\xFCndeln",T3:"Relevanz bewerten"},SIGNAL_SYNTHESIZER:{DESC:"Verdichtet Hunderte Signale zu einem kurzen Briefing, mit dem Sie arbeiten k\xF6nnen.",T1:"Signale b\xFCndeln",T2:"Rauschen entfernen",T3:"Briefing schreiben"},TREND_WATCHER:{DESC:"Erkennt Themen mit R\xFCckenwind, bevor sie offensichtlich werden.",T1:"Erw\xE4hnungen verfolgen",T2:"Dynamik messen",T3:"Fr\xFCh warnen"},SUPPORT_RESOLVER:{DESC:"Beantwortet Kundenfragen anhand Ihrer Doku und fr\xFCherer Tickets.",T1:"Antworten entwerfen",T2:"Tickets l\xF6sen",T3:"Sonderf\xE4lle \xFCbergeben"},TICKET_TRIAGE:{DESC:"Taggt, priorisiert und verteilt jedes neue Ticket, sobald es eingeht.",T1:"Anliegen erkennen",T2:"Priorit\xE4t setzen",T3:"An Team leiten"},KB_WRITER:{DESC:"Macht aus gel\xF6sten Tickets Hilfeartikel, damit Kunden selbst Antworten finden.",T1:"Wiederholte Fragen erkennen",T2:"Artikel entwerfen",T3:"Doku aktuell halten"},HEALTH_MONITOR:{DESC:"Bewertet die Gesundheit jedes Kontos und warnt vor denen, die abk\xFChlen.",T1:"Nutzung verfolgen",T2:"Health bewerten",T3:"Risiken melden"},RENEWAL_ASSISTANT:{DESC:"Bereitet jede Verl\xE4ngerung fr\xFCh vor \u2013 mit Nutzung, geliefertem Wert und Angebot.",T1:"Verl\xE4ngerung vorbereiten",T2:"Angebot entwerfen",T3:"Termin buchen"},CHURN_PREDICTOR:{DESC:"Sagt voraus, welche Kunden abspringen k\xF6nnten, und schl\xE4gt Gegenma\xDFnahmen vor.",T1:"Risiko modellieren",T2:"Ursachen erkl\xE4ren",T3:"Ma\xDFnahmen vorschlagen"},COMMUNITY_MODERATOR:{DESC:"H\xE4lt Ihre Community freundlich, beantwortet h\xE4ufige Fragen und entfernt Spam.",T1:"Spam entfernen",T2:"FAQs beantworten",T3:"Mitglieder begr\xFC\xDFen"},FEEDBACK_COLLECTOR:{DESC:"Sammelt Feedback aus allen Kan\xE4len und ordnet es klaren Themen zu.",T1:"Feedback sammeln",T2:"Themen b\xFCndeln",T3:"Trends berichten"},INVOICE_RECONCILER:{DESC:"Gleicht Rechnungen mit Zahlungen ab und meldet alles, was nicht aufgeht.",T1:"Zahlungen zuordnen",T2:"Abweichungen melden",T3:"Fehlende nachfassen"},EXPENSE_AUDITOR:{DESC:"Pr\xFCft jede Ausgabe gegen die Richtlinie, bevor sie freigegeben wird.",T1:"Belege lesen",T2:"Richtlinie pr\xFCfen",T3:"Ausnahmen melden"},CASHFLOW_FORECASTER:{DESC:"Prognostiziert die Liquidit\xE4t der n\xE4chsten 13 Wochen und aktualisiert sie t\xE4glich.",T1:"Zufl\xFCsse planen",T2:"Szenarien rechnen",T3:"Vor L\xFCcken warnen"},BOOKKEEPER:{DESC:"Kategorisiert Buchungen und h\xE4lt die B\xFCcher bereit f\xFCr den Monatsabschluss.",T1:"Buchungen kategorisieren",T2:"Konten abstimmen",T3:"Monat abschlie\xDFen"},TAX_PREP:{DESC:"Sammelt Zahlen und Unterlagen, die Ihr Steuerberater braucht.",T1:"Unterlagen sammeln",T2:"Aufstellungen vorbereiten",T3:"Fristen im Blick behalten"},CONTRACT_FILER:{DESC:"Legt jeden unterschriebenen Vertrag ab und erinnert vor Verl\xE4ngerungs- und K\xFCndigungsfristen.",T1:"Kernbedingungen erfassen",T2:"Vertr\xE4ge ablegen",T3:"An Termine erinnern"},VENDOR_MANAGER:{DESC:"Beh\xE4lt Lieferanten, Vertr\xE4ge und Ausgaben an einem Ort im Blick.",T1:"Ausgaben verfolgen",T2:"Angebote vergleichen",T3:"Vertr\xE4ge verl\xE4ngern"},PAYROLL_CHECKER:{DESC:"Pr\xFCft die Gehaltsabrechnung vor dem Lauf, damit niemand falsch bezahlt wird.",T1:"Zeiten abgleichen",T2:"Abz\xFCge pr\xFCfen",T3:"Fehler melden"},LEAVE_TRACKER:{DESC:"Erfasst Urlaub und Krankheitstage und h\xE4lt Teamkalender synchron.",T1:"Antr\xE4ge erfassen",T2:"Kalender aktualisieren",T3:"\xDCberschneidungen melden"},HIRING_COORDINATOR:{DESC:"Sichtet Bewerbungen, plant Interviews und h\xE4lt Kandidaten auf dem Laufenden.",T1:"Lebensl\xE4ufe sichten",T2:"Interviews planen",T3:"Kandidaten informieren"},LEAD_SCORER:{DESC:"Bewertet jeden neuen Lead nach Passung und Interesse, damit der Vertrieb mit den besten startet.",T1:"Passung bewerten",T2:"Interesse bewerten",T3:"Hei\xDFe Leads verteilen"},ICP_MATCHER:{DESC:"Gleicht Accounts mit Ihrem idealen Kundenprofil ab und erkl\xE4rt die \xDCbereinstimmung.",T1:"Firmendaten vergleichen",T2:"Passung bewerten",T3:"Begr\xFCndung liefern"},LIST_BUILDER:{DESC:"Erstellt in Minuten gezielte Prospect-Listen aus Ihren Filtern.",T1:"Filter anwenden",T2:"Kontakte finden",T3:"Duplikate entfernen"},INTENT_WATCHER:{DESC:"Merkt, wenn Zielkunden anfangen, sich \xFCber Ihr Angebot zu informieren.",T1:"Besuche verfolgen",T2:"Intent-Daten lesen",T3:"Vertrieb alarmieren"},EMAIL_WRITER:{DESC:"Schreibt Erstkontakt-E-Mails, die wie Ihr bester Vertriebler klingen.",T1:"Prospect recherchieren",T2:"E-Mail entwerfen",T3:"Betreffzeilen vorschlagen"},LINKEDIN_PROSPECTOR:{DESC:"Findet die richtigen Personen auf LinkedIn und entwirft eine pers\xF6nliche Nachricht.",T1:"Prospects finden",T2:"Kontaktnachricht entwerfen",T3:"Aktivit\xE4t erfassen"},PERSONALIZER:{DESC:"Erg\xE4nzt jede Nachricht um eine relevante, konkrete Zeile aus aktueller Recherche.",T1:"Aufh\xE4nger finden",T2:"Einstiege anpassen",T3:"Ton pr\xFCfen"},CALL_PREP:{DESC:"Gibt dem Vertrieb vor jedem Kaltakquise-Anruf ein einseitiges Brief
3ing.",T1:"Account zusammenfassen",T2:"Gespr\xE4chspunkte listen",T3:"Einw\xE4nde vorhersagen"},OUTREACH_SEQUENCER:{DESC:"F\xFChrt mehrstufige E-Mail- und LinkedIn-Sequenzen aus und stoppt bei der ersten Antwort.",T1:"Sequenz aufbauen",T2:"Schritte senden",T3:"Bei Antwort stoppen"},FOLLOWUP_SCHEDULER:{DESC:"Sorgt daf\xFCr, dass kein Gespr\xE4ch einschl\xE4ft, indem es jedes Follow-up terminiert.",T1:"Follow-ups timen",T2:"Erinnerungen entwerfen",T3:"Vertrieb erinnern"},REPLY_CLASSIFIER:{DESC:"Liest jede Antwort und sortiert nach interessiert, sp\xE4ter und abmelden.",T1:"Antworten einordnen",T2:"Status aktualisieren",T3:"Hei\xDFe Antworten melden"},MEETING_BOOKER:{DESC:"Macht aus interessierten Antworten gebuchte Termine \u2013 ohne Hin und Her.",T1:"Termine anbieten",T2:"Zeit best\xE4tigen",T3:"Einladung senden"},CRM_UPDATER:{DESC:"Erfasst Anrufe, E-Mails und n\xE4chste Schritte im CRM, damit der Vertrieb es nicht muss.",T1:"Aktivit\xE4ten erfassen",T2:"Felder aktualisieren",T3:"Aufgaben anlegen"},REP_COACH:{DESC:"Wertet die Gespr\xE4che jedes Vertrieblers aus und gibt w\xF6chentlich konkrete Coaching-Tipps.",T1:"Gespr\xE4che auswerten",T2:"Muster erkennen",T3:"\xDCbungen vorschlagen"},CALL_ANALYST:{DESC:"H\xF6rt Verkaufsgespr\xE4che an und filtert Bedarf, Risiken und n\xE4chste Schritte heraus.",T1:"Gespr\xE4che transkribieren",T2:"Erkenntnisse ziehen",T3:"Gespr\xE4ch bewerten"},MEETING_SUMMARIZER:{DESC:"Schickt Minuten nach jedem Meeting eine klare Zusammenfassung mit Aufgaben.",T1:"Meeting zusammenfassen",T2:"Aufgaben listen",T3:"Notizen teilen"},OBJECTION_TRACKER:{DESC:"Erfasst die Einw\xE4nde von K\xE4ufern und welche Antworten Deals gewinnen.",T1:"Einw\xE4nde erkennen",T2:"Mit Ergebnissen verkn\xFCpfen",T3:"Playbook aktualisieren"},PROPOSAL_GENERATOR:{DESC:"Entwirft ma\xDFgeschneiderte Angebote aus Gespr\xE4chsnotizen und Ihren Vorlagen.",T1:"Anforderungen erfassen",T2:"Angebot entwerfen",T3:"Optionen bepreisen"},QUOTE_BUILDER:{DESC:"Erstellt korrekte Kostenvoranschl\xE4ge mit den richtigen Rabatten und Freigaben.",T1:"Produkte konfigurieren",T2:"Rabatte anwenden",T3:"Zur Freigabe leiten"},CONTRACT_DRAFTER:{DESC:"Erstellt Vertr\xE4ge aus freigegebenen Konditionen und markiert Ungew\xF6hnliches.",T1:"Vorlage ausf\xFCllen",T2:"Klauseln pr\xFCfen",T3:"Zur Unterschrift senden"},PIPELINE_FORECASTER:{DESC:"Prognostiziert das Quartal aus echter Deal-Aktivit\xE4t statt aus dem Bauch.",T1:"Deals bewerten",T2:"Umsatz prognostizieren",T3:"\xC4nderungen erkl\xE4ren"},DEAL_RISK_MONITOR:{DESC:"Warnt, wenn ein Deal still wird, seinen F\xFCrsprecher verliert oder ins Rutschen ger\xE4t.",T1:"Engagement verfolgen",T2:"Risiko erkennen",T3:"N\xE4chsten Schritt vorschlagen"},CONTENT_COMPOSER:{DESC:"Plant und entwirft Content in Ihrer Markenstimme aus einem einzigen Briefing.",T1:"Redaktionsplan erstellen",T2:"Inhalte entwerfen",T3:"Content wiederverwenden"},BLOG_WRITER:{DESC:"Recherchiert und schreibt SEO-fertige Blogartikel, die Ihr Team nur noch feinschleift.",T1:"Thema recherchieren",T2:"Gliederung erstellen",T3:"Entwurf schreiben"},VIDEO_SCRIPT_WRITER:{DESC:"Schreibt Hooks und Skripte f\xFCr kurze Videos und Webinare.",T1:"Hooks schreiben",T2:"Szenen skripten",T3:"Untertitel erg\xE4nzen"},CASE_STUDY_WRITER:{DESC:"Interviewt zufriedene Kunden und macht aus ihrer Geschichte eine Fallstudie.",T1:"Fragen vorbereiten",T2:"Interview transkribieren",T3:"Geschichte schreiben"},BRAND_GUARDIAN:{DESC:"Pr\xFCft jeden Inhalt gegen Markenstimme und Styleguide.",T1:"Ton pr\xFCfen",T2:"Begriffe korrigieren",T3:"Unpassendes melden"},DESIGN_BRIEF_WRITER:{DESC:"Macht aus Kampagnenzielen klare Briefings, mit denen Designer loslegen k\xF6nnen.",T1:"Ziele definieren",T2:"Assets auflisten",T3:"Specs festlegen"},SOCIAL_SCHEDULER:{DESC:"Plant Beitr\xE4ge zur besten Zeit auf allen Social-Kan\xE4len.",T1:"Beste Zeiten w\xE4hlen",T2:"Beitr\xE4ge einplanen",T3:"Kommentare beantworten"},SEO_OPTIMIZER:{DESC:"Findet Keyword-L\xFCcken und optimiert Seiten, damit sie besser ranken.",T1:"Keywords finden",T2:"Seiten optimieren",T3:"Rankings verfolgen"},NEWSLETTER_BUILDER:{DESC:"Stellt einen Newsletter aus Ihren neuesten Inhalten zusammen und verschickt ihn p\xFCnktlich.",T1:"Themen ausw\xE4hlen",T2:"Intro schreiben",T3:"Versand planen"},AD_CAMPAIGN_MANAGER:{DESC:"Startet und optimiert Anzeigenkampagnen und verschiebt Budget zu dem, was funktioniert.",T1:"Anzeigen starten",T2:"Varianten testen",T3:"Budget verschieben"},ANALYTICS_REPORTER:{DESC:"F\xFChrt Ergebnisse aus allen Kan\xE4len in einem w\xF6chentlichen Marketingbericht zusammen.",T1:"Kennzahlen sammeln",T2:"\xC4nderungen erkl\xE4ren",T3:"Bericht senden"}},BRANCHES:{OPS_ONBOARDING:"Alles, was einen neuen Kunden von der Unterschrift bis zum Start bringt.",OPS_BUILDS:"Planung, Verfolgung und Auslieferung Ihrer Projekte.",OPS_CLIENT_OPS:"Beh\xE4lt Kundenanfragen, Updates und Zusagen im Griff.",INT_COMPANIES:"Kennen Sie jedes
3Unternehmen genau, bevor Sie mit ihm sprechen.",INT_PEOPLE:"Die richtigen Personen finden und verstehen, wer entscheidet.",INT_MARKETS:"Bleiben Sie vorne bei allem, was sich in Ihrem Markt bewegt.",CUS_SUPPORT:"Schnelle, pr\xE4zise Antworten auf jede Kundenfrage.",CUS_SUCCESS:"Kunden zufrieden halten, Vertr\xE4ge verl\xE4ngern und ausbauen.",CUS_COMMUNITY:"Eine freundliche Community und ein klares Bild davon, was Kunden sagen.",BO_MONEY:"Rechnungen, Ausgaben und Liquidit\xE4t \u2013 abgeglichen und prognostiziert.",BO_BOOKS:"Saubere B\xFCcher jeden Monat und keine \xDCberraschungen bei der Steuer.",BO_OFFICE:"Vertr\xE4ge und Lieferanten, abgelegt und verwaltet an einem Ort.",BO_PEOPLE:"Geh\xE4lter, Abwesenheiten und Recruiting ohne Verwaltungsaufwand.",SAL_TARGETING:"Entscheiden, wen Sie ansprechen \u2013 und wann.",SAL_OUTREACH:"Pers\xF6nliche Erstnachrichten in einem Umfang, den kein Team von Hand schafft.",SAL_SEQUENCING:"Follow-ups, Antworten und Termine, die von selbst laufen.",DEA_REPS:"Jeden Vertriebler so gut verkaufen lassen wie Ihren besten.",DEA_CALLS:"Jedes Verkaufsgespr\xE4ch wird zu Notizen, Erkenntnissen und n\xE4chsten Schritten.",DEA_CLOSING:"Angebote, Kostenvoranschl\xE4ge und Vertr\xE4ge in Stunden statt Tagen.",DEA_PIPELINE:"Eine Prognose, der Sie vertrauen k\xF6nnen, und Fr\xFChwarnung bei jedem Deal.",MKT_CONTENT:"Ein stetiger Strom an Inhalten in Ihrer Stimme.",MKT_BRAND:"Jeder Inhalt markenkonform, jedes Briefing klar.",MKT_DISTRIBUTION:"Bringen Sie Inhalte zu den richtigen Menschen \u2013 und messen Sie den Erfolg."}},CTA_START_FREE:"Jetzt bauen",CTA_SEE_HOW:"So funktioniert es",FINAL_CTA:{EYEBROW:"Jetzt starten",TITLE:"Starten Sie noch heute",SUBTITLE:"Beschreiben Sie Ihre Idee. Qira bringt sie vom Prompt in die Produktion.",CTA_START:"Kostenlos starten",CTA_DEMO:"Sprechen Sie mit uns",TRUST:"Managed Cloud \xB7 DSGVO \xB7 VPC oder On-Premise"},HERO_EYEBROW:"Das ist Qira. Eine KI, die alles baut.",HERO_TITLE_1:"Baue das Gehirn",HERO_TITLE_ACCENT:"deines ganzen Unternehmens",HERO_SUBTITLE:"Qira schreibt Frontend, Backend und Datenbank und bringt alles auf deine Domain.",STORY:{DESCRIBE:"Beschreiben",REFINE:"Verfeinern",PUBLISH:"Ver\xF6ffentlichen",DESCRIBE_T:"Aus einer Idee wird eine funktionierende App.",DESCRIBE_D:"Beschreibe die gew\xFCnschten Seiten und Funktionen. Qira erstellt eine App, die du direkt erkunden kannst.",REFINE_T:"Gestalte jedes Detail.",REFINE_D:"W\xE4hle ein Element, beschreibe die \xC4nderung und verbessere deine App im selben Gespr\xE4ch.",PUBLISH_T:"Bereit f\xFCr deine eigene Domain.",PUBLISH_D:"Verbinde deine Domain und ver\xF6ffentliche. Entwickle deine App weiter, wenn sich deine Anforderungen \xE4ndern.",EXPLORE:"Qira Studio entdecken",LABEL:"Qira \xB7 Frontend-Builder",TITLE:"Sehen Sie zu, wie Ihre App entsteht",S1_T:"Sagen Sie, was Sie wollen",S1_D:"Schreiben Sie es wie eine Nachricht an eine Kollegin. Qira plant Seiten, Daten und Navigation, bevor eine Zeile Code entsteht.",S2_T:"Es entsteht vor Ihren Augen",S2_D:"Komponenten, Seiten und Routing werden in Echtzeit geschrieben. Sie sehen jede Datei, sobald sie fertig ist.",S3_T:"Sofort ausprobieren",S3_D:"Die App l\xE4uft, sobald sie generiert ist. Klicken Sie sich durch, sie ist echt.",S4_T:"Alles per Chat \xE4ndern",S4_D:"Element ausw\xE4hlen und sagen, was anders sein soll. Qira \xE4ndert den Code, kein Mockup.",S5_T:"Mit einem Klick neu gestalten",S5_D:"Dunkel, hell, Forest oder Ihre eigene Marke. Jede Komponente passt sich an.",S6_T:"Auf Ihrer Domain live",S6_D:"Subdomain w\xE4hlen oder eigene Domain verbinden. SSL, Hosting und Updates sind erledigt."},FLOW:{EXAMPLE_NOTE:"Workflow und Zeitangaben dienen der Veranschaulichung, nicht als Leistungsbenchmark.",LABEL:"Qira \xB7 Backend",TITLE:"Von der Buchung zum gespeicherten Datensatz.",SUB:"Pr\xFCfe eine Buchung, wende deine Gesch\xE4ftsregeln an und speichere sie in deiner Datenbank. Qira verbindet die Schritte in einem einsehbaren Workflow.",P1_T:"Parallel als Standard",P1_D:"Unabh\xE4ngige Schritte laufen gleichzeitig. 84 ms statt 108.",P2_T:"Logik, die man sieht",P2_D:"Validierung, Bedingungen, KI-Aufrufe, Datenbank-Schreibvorg\xE4nge und Integrationen. Jeder Schritt ist ein Node, den Sie \xF6ffnen k\xF6nnen.",P3_T:"Keine Server, kein YAML",P3_D:"Qira verdrahtet den Workflow, Ubex hostet ihn. Sie beschreiben nur das Verhalten.",REPLAY:"Anfrage erneut abspielen"},ONE:{LABEL:"Alles an einem Ort",TITLE:"Ein Arbeitsbereich statt sieben Abos",SUB:"Frontend, Backend, Datenbank, Auth, Automatisierungen, Domain und KI. Zusammen gebaut, zusammen betrieben.",USUAL:"Der \xFCbliche Weg",USUAL_SUB:"7 Tools \xB7 7 Logins \xB7 Glue-Code dazwischen",UBEX:"Mit Ubex",UBEX_SUB:"1 Projekt \xB7 1 Login \xB7 nichts zusammenzuflicken",T1:"Frontend-Hosting",T2:"Backend & APIs",T3:"Datenbank",T4:"Auth & Nutzer",T5:"Automatisierungen",T6:"Domain & SSL",T7:"KI-Modelle",TAB_NONTECH:"Ich bin nicht technisch",TAB_DEV:"Ich bin Entwickler:in",TAB_BIZ:"Ich f\xFChre ein Unternehmen",NONTECH_H:"Sie verlassen den Chat nie.",NONTECH_1:"Kein Setup, keine Hosting-Konten, keine Tools, die nicht miteinander reden.",NONTECH_2:"Sagen Sie in normaler Sprache, was Sie brauchen. Qira baut und hostet es.",NONTECH_3:"\xC4ndern Sie Ihre Meinung jederzeit. Fragen Sie, und die App wird aktualisiert.",DEV_H:"Volle Kontrolle, wenn Sie sie wollen.",DEV_1:"Bearbeiten Sie den generierten Code oder \xF6ffnen Sie den visuellen Workflow und verdrahten Sie die Logik selbst.",DEV_2:"Bringen Sie Ihre eigene PostgreSQL, MySQL, MongoDB oder KI-Keys mit. Oder nutzen Sie unsere.",DEV_3:"Bereitstellung in der Managed Cloud, auf eigenen Servern oder On-Premise. Gleiches Projekt, ein Klick.",BIZ_H:"Eine Rechnung, ein Verantwortlicher, ein Ort.",BIZ_1:"Frontend, Backend, Datenbank und Domain in einem Projekt. Nichts zusammenflicken, nichts verlieren.",BIZ_2:"Sie entscheiden, wo Ihre Daten liegen. Sicherheitsgepr\xFCfte Workflows und Audit-Trails.",BIZ_3:"Kostenlos starten und in Team-Pl\xE4ne wachsen, wenn die App w\xE4chst."},TESTIMONIALS:{LABEL:"Von den Erbauern",TITLE:"Was sie gebaut haben, in ihren eigenen Worten",MORE:"Mehr lesen",LESS:"Weniger anzeigen",PIXL_NAME:"PIXL VISN",PIXL_ROLE:"Medie
3nkunst-Akademie \xB7 K\xF6ln, Deutschland",PIXL_QUOTE:"Wir brauchten eine komplette App f\xFCr unsere Akademie - Anwesenheit, Kurse, Studierendenverwaltung, Authentifizierung, Excel-Importe. Mit Ubex wurde alles auf einer einzigen Plattform gebaut. Nichts extern. Nur Ubex.",MRW_NAME:"Mallorca Restaurant Week",MRW_ROLE:"J\xE4hrliches Kulinarik-Event \xB7 Mallorca, Spanien",MRW_QUOTE:"Ubex spielte eine entscheidende Rolle f\xFCr den Erfolg der Mallorca Restaurant Week. Eine gro\xDFe Zahl an Restaurants in Rekordzeit einzubinden, dabei strukturiert und klar zu bleiben, machte aus einem komplexen Prozess einen reibungslosen.",TASK_NAME:"Ubex Team",TASK_ROLE:"Vom Team, f\xFCr das Team gebaut",TASK_QUOTE:"Wir haben unseren gesamten Task-Manager mit Ubex gebaut - 10 Workflows, 10+ Tabellen, JWT-Auth, Cronjobs, die ganze App. Nichts extern. Wir nutzen es jeden Tag.",VLF_NAME:"VON LILIENFELD",VLF_ROLE:"E-Commerce \xB7 Premium-Regenschirme & Accessoires",VLF_QUOTE:"Das ist das erste Mal, dass wir in den Urlaub gefahren sind, ohne dass jemand im B\xFCro oder im Lager war. Die Workflows liefen hervorragend und hielten unseren Verkauf im Shop und auf Otto am Laufen.",R1_NAME:"Marc Ostrowski",R1_ROLE:"Solo-Gr\xFCnder \xB7 SaaS-Analyse-Tool",R1_QUOTE:"Ich bin kein Backend-Entwickler, aber Qira hat mein Datenbankschema, meinen Auth-Flow und meine API an einem einzigen Nachmittag gebaut. Ich hatte das MVP live, bevor mein Kaffee kalt war.",R2_NAME:"Sana Iqbal",R2_ROLE:"Lead-Entwicklerin \xB7 Digitalagentur",R2_QUOTE:"Wir pitchen Kundenseiten jetzt in halber Zeit. Qira baut Frontend und Backend zusammen, aus einem Zwei-Wochen-Sprint wird ein Zwei-Tage-Sprint - und Kunden bekommen trotzdem eine Codebasis, die wir \xFCbergeben k\xF6nnen.",R3_NAME:"Elena Radu",R3_ROLE:"Inhaberin \xB7 Boutique-Fitnessstudio",R3_QUOTE:"Ich habe in einfachen Worten beschrieben, was ich brauche, und das Buchungssystem entstand vor meinen Augen. Kein Entwickler, keine Agentur, kein Warten. Ich habe es noch am selben Tag selbst live geschaltet.",R4_NAME:"Devon Marsh",R4_ROLE:"CTO \xB7 Fr\xFChphasen-Startup",R4_QUOTE:"Wir nutzen Ubex f\xFCr alles, was nicht unser Kernprodukt ist - interne Tools, Admin-Dashboards, Integrationsklebstoff. Das gibt dem Team die Zeit, sich auf das zu konzentrieren, was wirklich z\xE4hlt.",R5_NAME:"Priya Nair",R5_ROLE:"Programmleiterin \xB7 gemeinn\xFCtzige Organisation",R5_QUOTE:"Wir hatten kein Budget f\xFCr Entwickler. Qira baute unser Freiwilligen-Anmeldesystem, die Datenbank dahinter und ein Dashboard f\xFCr unsere Koordinatoren - live innerhalb einer Woche.",R6_NAME:"Tom\xE1s Herrera",R6_ROLE:"Betriebsleiter \xB7 Online-H\xE4ndler",R6_QUOTE:"Sendungsverfolgung, Lieferanten-Synchronisation, Kundenbenachrichtigungen - alles l\xE4uft \xFCber Workflows, die ich selbst mit Qira eingerichtet habe. Ich warte nicht mehr auf Entwicklerzeit f\xFCr jede kleine \xC4nderung."},BUILD:{LABEL:"So funktioniert Ubex",TITLE:"Ein Agent baut das Ganze",SUB:"Die Oberfl\xE4che, die deine Nutzer sehen, und die Logik dahinter \u2013 am selben Ort.",TAB_FRONTEND:"Frontend",TAB_BACKEND:"Backend"}},INTERFACE:{HERO_LABEL:"UBEX INTERFACE",HERO_TITLE:"Baue Full-Stack-Apps mit Qira. W\xE4hle dein Modell. Liefere in Minuten.",HERO_SUBTITLE:"Qira ist dein KI-Builder im Ubex Interface. W\xE4hle ein beliebiges LLM \u2013 von Claude \xFCber GPT bis Gemini \u2013 und baue komplette Frontend- + Backend-Anwendungen per Gespr\xE4ch. Lade Designs hoch, wechsle Modelle mitten im Projekt und deploye sofort.",HERO_STAT_MODELS:"Multi-LLM",HERO_STAT_MODELS_LBL:"W\xE4hle dein Modell",HERO_STAT_FULLSTACK:"Full-Stack",HERO_STAT_FULLSTACK_LBL:"Frontend + Backend + DB",HERO_STAT_DEPLOY:"1-Klick",HERO_STAT_DEPLOY_LBL:"Ver\xF6ffentlichen & live",HERO_STAT_LIVE:"Visual Design",HERO_STAT_LIVE_LBL:"Ausw\xE4hlen & live bearbeiten",CTA_START_FREE:"Kostenlos starten",CTA_BOOK_DEMO:"Demo buchen",MODELS_LABEL:"MODELLAUSWAHL",MODELS_TITLE:"W\xE4hle das Gehirn hinter deinem Build.",MODELS_SUBTITLE:"Qira arbeitet mit dem LLM deiner Wahl. Wechsle jederzeit zwischen Modellen \u2013 nutze ein leistungsstarkes Modell f\xFCr komplexe Layouts, ein leichteres f\xFCr schnelle \xC4nderungen. Du kontrollierst Kosten und Leistung.",MODELS_ANTHROPIC:"Anthropic",MODELS_OPENAI:"OpenAI",MODELS_GOOGLE:"Google",MODELS_OPUS:"Claude Opus 4.6",MODELS_SONNET:"Claude Sonnet",MODELS_HAIKU:"Claude Haiku",MODELS_GPT4:"GPT-4o",MODELS_GPT4_MINI:"GPT-4o Mini",MODELS_GEMINI_PRO:"Gemini Pro",MODELS_GEMINI_FLASH:"Gemini Flash",MODELS_SWITCH_TIT
3LE:"Modelle spontan wechseln",MODELS_SWITCH_DESC:"Du musst nicht das ganze Projekt mit einem Modell arbeiten. Starte mit einem leistungsstarken Modell f\xFCr komplexe Architektur, wechsle zu einem leichteren f\xFCr einfache Anpassungen. Ubex gibt dir diese Wahl \u2013 optimiere bei jedem Schritt f\xFCr Qualit\xE4t oder Kosten.",FULLSTACK_LABEL:"FULL-STACK-ERSTELLUNG",FULLSTACK_TITLE:"Qira baut das Frontend. Vira \xFCbernimmt das Backend. Automatisch.",FULLSTACK_SUBTITLE:"Sobald dein Projekt ausgew\xE4hlt ist, ruft Qira live Vira auf, um das Backend zu erstellen. Zusammen bauen sie alles \u2013 Frontend-Seiten, Backend-APIs und Datenbanktabellen. Eine komplette Anwendung aus einem Gespr\xE4ch.",FULLSTACK_F1_TITLE:"Frontend-Generierung",FULLSTACK_F1_DESC:"Seiten, Komponenten, Formulare, Dashboards, Auth-Flows \u2013 Qira generiert die komplette UI aus deiner Beschreibung.",FULLSTACK_F2_TITLE:"Automatische Backend-Erstellung",FULLSTACK_F2_DESC:"Qira ruft Vira in Echtzeit auf, um REST-APIs, Authentifizierungs-Workflows und Gesch\xE4ftslogik zu erstellen \u2013 kein manuelles Setup.",FULLSTACK_F3_TITLE:"Datenbanktabellen",FULLSTACK_F3_DESC:"Vira erstellt und konfiguriert alle Datenbanktabellen, die deine Anwendung braucht. Benutzer, Sitzungen, Inhalte \u2013 alles strukturiert und bereit.",FULLSTACK_F4_TITLE:"Alles verbunden",FULLSTACK_F4_DESC:"Frontend kommuniziert nativ mit dem Backend. Keine CORS-Probleme, kein API-Verdrahten. Es funktioniert einfach, weil alles auf derselben Plattform gebaut ist.",CONTROL_LABEL:"VOLLE KONTROLLE",CONTROL_TITLE:"Dein Projekt, deine Regeln.",CONTROL_SUBTITLE:"Stoppe das Modell jederzeit. Lade Referenzbilder hoch. Wechsle LLMs mitten im Gespr\xE4ch. Ubex gibt dir die volle Kontrolle dar\xFCber, wie deine Anwendung gebaut wird.",CONTROL_STOP_TITLE:"Jederzeit stoppen",CONTROL_STOP_DESC:"L\xE4uft es nicht in die richtige Richtung? Stoppe das Modell sofort und lenke um. Du hast immer die Kontrolle \xFCber den Generierungsprozess.",CONTROL_UPLOAD_TITLE:"Bilder und Beispiele hochladen",CONTROL_UPLOAD_DESC:"Lade Screenshots, Mockups oder Beispiele von anderen Websites hoch. Qira nutzt sie als Referenz, um das Design zu treffen, das du im Kopf hast.",CONTROL_SWITCH_TITLE:"Modelle mitten im Projekt wechseln",CONTROL_SWITCH_DESC:"Starte mit Claude Opus f\xFCr komplexe Architektur, wechsle zu Haiku f\xFCr schnelle Text\xE4nderungen. Du musst nicht bis zum Ende mit demselben Modell arbeiten.",PREVIEW_LABEL:"VORSCHAU & CODE",PREVIEW_TITLE:"Live sehen. Code bearbeiten. Beides gleichzeitig.",PREVIEW_SUBTITLE:"Das Interface bietet dir zwei Ansichten nebeneinander \u2013 eine Live-Vorschau von dem, was Qira erstellt hat, und eine Code-Ansicht, in der du alles manuell anpassen kannst.",PREVIEW_LIVE_TITLE:"Live-Vorschau",PREVIEW_LIVE_DESC:"Sieh genau, was Qira in Echtzeit baut. Jede Komponente, jede Seite, jede Interaktion \u2013 live gerendert w\xE4hrend der Generierung.",PREVIEW_CODE_TITLE:"Code-Ansicht",PREVIEW_CODE_DESC:"Voller Zugriff auf den Quellcode. Durchsuche die Projektstruktur, \xF6ffne jede Datei und nimm manuelle Anpassungen vor.",SELECT_LABEL:"SELECT & DESIGN-TOOL",SELECT_TITLE:"Klicke auf ein Element. Designe es visuell. Spare KI-Kosten.",SELECT_SUBTITLE:"Das Select-Tool l\xE4sst dich auf jedes Element in der Live-Vorschau klicken und es sofort \xE4ndern. Ein vollst\xE4ndiges Design-Panel erscheint mit allen Optionen, die du brauchst. Statt Tokens zu verbrauchen, um die KI nach einer Schriftgr\xF6\xDFen- oder Farb\xE4nderung zu fragen, machst du es selbst mit einem Klick. Das Design-Tool spart dir echtes Geld.",SELECT_SAVE_TITLE:"Geld sparen mit visueller Bearbeitung",SELECT_SAVE_DESC:"Jedes Mal, wenn du die KI bittest, eine Farbe anzupassen, Abst\xE4nde zu \xE4ndern oder eine Schrift zu wechseln \u2013 das kostet Tokens. Mit dem Design-Tool machst du diese \xC4nderungen selbst in Sekunden, visuell. Reserviere die KI f\xFCr das, was z\xE4hlt: neue Features bauen, komplexe Logik und ganze Seiten. Einfache Design-Anpassungen sollten dich nie einen Prompt kosten.",SELECT_CLASSES_TITLE:"Klassen",SELECT_CLASSES_DESC:"CSS-Klassen sofort hinzuf\xFCgen oder entfernen. Alle angewandten Klassen als Tags sehen, mit einem Klick entfernen oder neue hinzuf\xFCgen.",SELECT_LAYOUT_TITLE:"Layout",SELECT_LAYOUT_DESC:"Display-Modus, Positionstyp und Overflow-Verhalten steuern. Zwischen Block, Flex, Grid, Inline wechseln \u2013 alles mit visuellen Toggles.",SELECT_SIZE_TITLE:"Gr\xF6\xDFe",SELECT_SIZE_DESC:"Breite, H\xF6he, Min/Max-Dimensionen mit pr\xE4zisen Pixelwerten setzen. Volle Kontrolle \xFCber den Platz deines Elements.",SELECT_SPACING_TITLE:"Abst\xE4nde",SELECT_SPACING_DESC:"Padding und Margin mit verkn\xFCpften oder einzelnen Werten anpassen. Den Freiraum um jedes Element fein abstimmen.",SELECT_FILL_TITLE:"F\xFCllung & Rahmen",SELECT_FILL_DESC:"Hintergrundfarben, Verl\xE4ufe, Deckkraft, Cursor, Rahmenstile und Rahmenradius. Inklusive voreingestellter Verlaufsoptionen.",SELECT_EFFECTS_TITLE:"Effekte",SELECT_EFFECTS_DESC:"Schatten von subtil bis dramatisch hinzuf\xFCgen \u2013 None, SM, MD, LG, XL oder Inner. Plus benutzerdefinierte Schattenwerte.",SELECT_TYPO_TITLE:"Typografie",SELECT_TYPO_DESC:"Schriftfamilie, Gr\xF6\xDFe, Gewicht, Zeilenh\xF6he, Zeichenabstand, Farbe, Ausrichtung und Dekoration. Komplettes Text-Styling in einem Panel.",SELECT_RESPONSIVE_TITLE:"Responsive Breakpoints",SELECT_RESPONSIVE_DESC:"Stil pro Breakpoint \u2013 All, \u2265640, \u2265768, \u22651024, \u22651280. Jedes Element kann bei verschiedenen Bildschirmgr\xF6\xDFen unter
3schiedliche Stile haben.",RESPONSIVE_LABEL:"RESPONSIVE VORSCHAU",RESPONSIVE_TITLE:"Desktop. Tablet. Mobil. Alles sehen.",RESPONSIVE_SUBTITLE:"Drei Live-Vorschaumodi zeigen dir genau, wie deine Anwendung auf jedem Ger\xE4t aussieht. Wechsle sofort zwischen Desktop-, Tablet- und Mobilansicht.",RESPONSIVE_DESKTOP:"Desktop",RESPONSIVE_TABLET:"Tablet",RESPONSIVE_MOBILE:"Mobil",SETTINGS_LABEL:"EINSTELLUNGEN & VERSIONIERUNG",SETTINGS_TITLE:"Subdomains, Themes und Versionskontrolle. Eingebaut.",SETTINGS_SUBTITLE:"Konfiguriere dein Deployment, wechsle Themes sofort und verwalte Anwendungsversionen \u2013 alles aus den Interface-Einstellungen.",SETTINGS_SUBDOMAIN_TITLE:"Eigene Subdomain",SETTINGS_SUBDOMAIN_DESC:"Du willst nicht deine Hauptdomain nutzen? Richte eine Subdomain zum Ver\xF6ffentlichen ein. Deine App geht live unter deineapp.ubex.ai oder jeder eigenen Domain.",SETTINGS_THEME_TITLE:"Theme-Wechsel mit einem Klick",SETTINGS_THEME_DESC:"Ein Standard-Ubex-Theme verwendet? Wechsle es mit einem Klick. Alle Farben aktualisieren sich automatisch \xFCber jedes Element auf deiner Seite.",SETTINGS_VERSION_TITLE:"Anwendungs-Versionierung",SETTINGS_VERSION_DESC:"Jede Ver\xF6ffentlichung erstellt eine Version. F\xFCge Beschreibungen hinzu, um \xC4nderungen zu verfolgen. Kehre in Sekunden zu jeder vorherigen Version zur\xFCck.",DEMO_LABEL:"IN AKTION SEHEN",DEMO_TITLE:"Sieh zu, wie Qira und Vira eine komplette App bauen.",DEMO_SUBTITLE:"Vom Gespr\xE4ch zur deployen Anwendung \u2013 Registrierung, Login, Dashboard, Mitglieder, Einstellungen und Deployment. Alles in einem Flow.",DEMO_CHAT_INPUT:"Sag Qira, was sie bauen soll...",DEMO_WAITING:"Warte auf Qira...",DEMO_VIRA_JOINED:"Vira ist dem Gespr\xE4ch beigetreten",DEMO_P1_USER:"Baue mir eine SaaS-App mit E-Mail-Login, OTP-Verifizierung, einem Dashboard mit Statistiken, einer Mitgliederseite und Einstellungen.",DEMO_P1_QIRA:"Bin dran. Erstelle dein komplettes Frontend \u2013 Registrierung, E-Mail-basiertes Login, OTP-Verifizierung, Dashboard mit Sidebar, Mitgliedertabelle und Einstellungsseite.",DEMO_P2_USER:"Jetzt verbinde alles mit einem echten Backend \u2013 Auth, Datenbank, API-Endpunkte.",DEMO_P2_QIRA:"Das braucht Backend-Arbeit. Ich hole Vira dazu.",DEMO_P2_VIRA1:"Hey! Ich \xFCbernehme das Backend. Erstelle Auth-Workflows, Datenbanktabellen f\xFCr Benutzer und Mitglieder und REST-Endpunkte f\xFCr alles.",DEMO_P2_VIRA2:"Fertig. Registrierung, OTP-Login-Workflows sind live. Mitglieder-API mit Paginierung bereit. Dashboard-Statistik-Endpunkt verbunden. Alles mit JWT gesichert.",COMPARE_LABEL:"WARUM UBEX",COMPARE_TITLE:"Alles an einem Ort. Nicht f\xFCnf.",COMPARE_SUBTITLE:"Andere Plattformen zwingen dich, Frontend-Hosting, Backend-Dienste, Datenbanken, Auth-Anbieter und Deployment-Pipelines zusammenzuflicken. Ubex ist eine Plattform.",COMPARE_FRONTEND:"Frontend",COMPARE_BACKEND:"Backend",COMPARE_DATABASE:"Datenbank",COMPARE_AUTH:"Authentifizierung",COMPARE_HOSTING:"Hosting",COMPARE_SSL:"SSL",COMPARE_SERVICES:"Zu verwaltende Dienste",COMPARE_UBEX_FRONTEND:"Qira generiert per Chat",COMPARE_UBEX_BACKEND:"Vira visuelle Workflows",COMPARE_UBEX_DB:"Auf Ubex gehostet, kein Setup",COMPARE_UBEX_AUTH:"JWT/OTP inklusive",COMPARE_UBEX_HOSTING:"Ein-Klick-Deploy",COMPARE_UBEX_SSL:"Automatisch",COMPARE_UBEX_SERVICES:"1 Plattform",COMPARE_ALT_FRONTEND:"React/Vue + manuelles Coding",COMPARE_ALT_BACKEND:"Express/Django + Server-Setup",COMPARE_ALT_DB:"Separater DB-Dienst",COMPARE_ALT_AUTH:"Auth0 / Firebase Auth",COMPARE_ALT_HOSTING:"Separates Frontend + API-Hosting",COMPARE_ALT_SSL:"Manuell oder Let's Encrypt",COMPARE_ALT_SERVICES:"4-6 Dienste",CTA_TITLE:"Schluss mit Flickwerk. Anfangen zu liefern.",CTA_SUBTITLE:"Beschreibe deine App, erhalte einen Full Stack, deploye mit einem Klick. Kostenlose Stufe inklusive \u2013 keine Kreditkarte erforderlich.",CTA_TALK:"Kontakt aufnehmen",CTA_TRUST:"Kostenlose Stufe \xB7 Managed Cloud \xB7 SSL inklusive \xB7 Eigene Domains"},FEATURES:{HERO_LABEL:"FUNKTIONEN",HERO_TITLE:"Alles, was du brauchst, um Apps zu bauen, Arbeit zu automatisieren und sicher zu deployen",HERO_SUBTITLE:"KI, Integrationen, Daten, Sicherheit \u2013 alles in einer Plattform. 3 Jahre Engineering. Eine leistungsstarke Engine.",HERO_CTA_START:"Kostenlos starten",HERO_CTA_INTERFACE:"Interface ansehen",DIFF_PARALLEL_TITLE:"Parallele Ausf\xFChrung",DIFF_PARALLEL_DESC:"L\xE4uft 3x-10x schneller als sequenzielle Tools. Deine Workflows f\xFChren unabh\xE4ngige Aufgaben gleichzeitig aus, nicht nacheinander.",DIFF_DB_TITLE:"Multi-Datenbank-Unterst\xFCtzung",DIFF_DB_DESC:"MySQL, PostgreSQL, MongoDB. Sichere Verbindungen integriert. Deine Daten bleiben gesch\xFCtzt.",DIFF_EU_TITLE:"Flexibles Deployment",DIFF_EU_DESC:"Cloud, VPC oder On-Premise. Deine Daten, de
3ine Regeln. W\xE4hle, wo sie leben.",DIFF_COMPLIANCE_TITLE:"Compliance integriert",DIFF_COMPLIANCE_DESC:"Auto-Audit, Ausf\xFChrungsprotokolle, Datenspeicherung. Auf dem Weg zur DSGVO-, SOC 2- und ISO 27001-Konformit\xE4t.",SOLVES_LABEL:"WAS UBEX L\xD6ST",SOLVES_TITLE:"Schluss mit Tool-Flickwerk. Anfangen, Produkte zu liefern.",SOLVES_SUBTITLE:"Ubex ersetzt den verstreuten Stack aus Diensten, Skripten und Tools, den du heute pflegst \u2013 mit einer Plattform.",BENTO_POPULAR:"Am beliebtesten",BENTO_AGENT_TITLE:"Erstelle deinen eigenen KI-Agenten",BENTO_AGENT_DESC:"Baue pers\xF6nliche Assistenten f\xFCr t\xE4gliche Aufgaben \u2013 E-Mail-Triage, Datenabfragen, geplante Berichte, Slack-Benachrichtigungen. Als Chat-Interface, API-Endpunkt oder geplanter Job deployen. Dein Agent, deine Regeln, deine Daten.",BENTO_AGENT_T1:"T\xE4gliche Zusammenfassungen",BENTO_AGENT_T2:"E-Mail-Assistent",BENTO_AGENT_T3:"Datenmonitor",BENTO_AGENT_T4:"Chat-Support",BENTO_AGENT_T5:"Geplante Berichte",BENTO_BACKEND_TITLE:"Vollst\xE4ndiges Backend bauen",BENTO_BACKEND_DESC:"Alles, was deine App braucht \u2013 Benutzerkonten, Datenspeicherung, E-Mails, Dateien. Produktions-Endpunkte von einer visuellen Oberfl\xE4che deployen.",BENTO_ENDPOINTS_DEPLOYED:"Endpunkte deployed",BENTO_AUTOMATE_TITLE:"Alles automatisieren",BENTO_AUTOMATE_DESC:"Datenbanken, APIs und Dienste in geplante oder ereignisgesteuerte Pipelines verbinden. Rechnungen verarbeiten, Kataloge synchronisieren, Benachrichtigungen ausl\xF6sen.",BENTO_AI_TITLE:"KI-gest\xFCtzte Apps liefern",BENTO_AI_DESC:"Apps, die denken. Chatbots, die dein Business kennen. Dokumente, die sich selbst verarbeiten. KI-Modelle mit deinen Daten verbinden und deployen.",NODES_TITLE:"Alle Node-Typen",FILTER_ALL:"Alle",FILTER_AI:"KI & ML",FILTER_INTEGRATION:"Integrationen",FILTER_LOGIC:"Logik & Code",FILTER_OUTPUT:"Ausgabe",READ_DOCS:"Docs lesen \u2192",MORE_NODES_TITLE:"Weitere Nodes verf\xFCgbar",MORE_NODES_DESC:"Die Plattform enth\xE4lt weitere Node-Typen \xFCber die hier aufgef\xFChrten hinaus. Neue Nodes werden regelm\xE4\xDFig basierend auf Nutzerfeedback hinzugef\xFCgt.",VIEW_ROADMAP:"Roadmap ansehen \u2192",TRIGGERS_LABEL:"TRIGGER",TRIGGERS_TITLE:"Workflows nach deiner Wahl starten",TRIGGERS_SUBTITLE:"Jeder Workflow beginnt mit einem Trigger. W\xE4hle den, der zu deinem Anwendungsfall passt.",TRIGGER_DOCS_BTN:"Dokumentation lesen \u2192",SECURITY_LABEL:"SICHERHEIT & INFRASTRUKTUR",SECURITY_TITLE:"Produktionsreife Sicherheit. Kein Nachgedanke.",SECURITY_SUBTITLE:"Jeder Endpunkt wird mit den Kontrollen ausgeliefert, die du von handgeschriebener Infrastruktur erwartest \u2013 visuell konfiguriert.",SEC_API_AUTH_TITLE:"API-Authentifizierung",SEC_API_AUTH_DESC:"Pflicht-Auth-Toggle auf jedem Endpunkt. API-Schl\xFCsselverwaltung mit x-api-key-Header-Validierung.",SEC_IP_TITLE:"IP-Whitelisting",SEC_IP_DESC:"Endpunktzugriff auf bestimmte IPs oder CIDR-Bereiche beschr\xE4nken. Kontrolliere genau, wer deine Workflows erreichen kann.",SEC_CORS_TITLE:"CORS-Kontrollen",SEC_CORS_DESC:"Konfiguriere, welche Origins deine Endpunkte aufrufen k\xF6nnen. Feink\xF6rniges Cross-Origin Resource Sharing pro Workflow.",SEC_RATE_TITLE:"Rate Limiting",SEC_RATE_DESC:"Konfigurierbare Anfragen-pro-Minute auf jedem API-Endpunkt. Missbrauch verhindern und Traffic kontrollieren.",SEC_SSL_TITLE:"SSL/TLS & SSH-Tunneling",SEC_SSL_DESC:"Alle Datenbankverbindungen verschl\xFCsselt. \xDCber SSH-Tunnel f\xFCr sicheren Zugriff auf private Datenbanken routen.",SEC_LOGS_TITLE:"Ausf\xFChrungsprotokolle & Audit",SEC_LOGS_DESC:"Schritt-f\xFCr-Schritt-Debugging. 7 bis 365 Tage Aufbewahrung. Vollst\xE4ndiger Pr\xFCfpfad jedes Workflow-Laufs.",INTEGRATIONS_LABEL:"INTEGRATIONEN",INTEGRATIONS_TITLE:"Mit den Tools verbinden, die du bereits nutzt",INTEGRATIONS_SUBTITLE:"Vorgefertigte Konnektoren und wachsend. Plus HTTP-Request-Node f\xFCr jede API.",INTEGRATIONS_NOTE:"Dein Tool nicht gefunden? Nutze den HTTP-Request-Node, um dich mit jeder REST-API zu verbinden.",AI_LABEL:"KI-BUILDER",AI_TITLE:"Gebaut durch Beschreiben",AI_DESC1:"Kein manuelles Setup. Sag Qira, was deine App tun soll, und sie baut es \u2013 Trigger, Bedingungen, Integrationen, Datenbank, Frontend \u2013 alles verdrahtet und bereit zum Deployen.",AI_DESC2:"Sie kann auch bestehende Arbeit bearbeiten, Funktionen hinzuf\xFCgen, Integrationen tauschen oder Logik umstrukturieren \u2013 alles per Gespr\xE4ch.",AI_CTA:"Qira kennenlernen",AI_DEMO_USER:"\xDCberwache eine Website auf Preissenkungen und benachrichtige mich auf Telegram",AI_DEMO_BOT:"Fertig. Schedule-Trigger \u2192 Web-Scraper \u2192 Bedingung (Preischeck) \u2192 Telegram-Ben
3achrichtigung. L\xE4uft alle 30 Minuten.",CTA_TITLE:"Bereit zu bauen?",CTA_SUBTITLE:"Beginne in Minuten mit dem Bauen von Apps und Automatisierungen. Keine Kreditkarte erforderlich.",CTA_START:"Kostenlos starten",CTA_TUTORIALS:"Tutorials entdecken",MODAL_LOADING:"Dokumentation wird geladen...",MODAL_TOC_TITLE:"Auf dieser Seite",CHAT_USER1:"Fasse die heutigen Verkaufsdaten zusammen",CHAT_BOT1:"Heutiger Umsatz: 12.450 \u20AC aus 34 Bestellungen. Top-Produkt: Pro Plan (18 Verk\xE4ufe). +12% Umsatz vs. gestern.",CHAT_USER2:"Sende das an den #sales Slack-Kanal",CHAT_BOT2:"Erledigt. Zusammenfassung mit dem Tagesdiagramm an #sales gepostet.",TRIGGER_CHAT_NAME:"Chat",TRIGGER_CHAT_HEADLINE:"Konversationelle KI bauen",TRIGGER_CHAT_DESC:"Verwandle jeden Workflow in einen Chatbot. Session-Memory, Streaming-Antworten und eine integrierte Chat-UI. Verbinde GPT-4, Claude, Gemini \u2013 oder alle.",TRIGGER_CHAT_F1:"Session-Memory",TRIGGER_CHAT_F2:"Streaming-Antworten",TRIGGER_CHAT_F3:"Integrierte Chat-UI",TRIGGER_CHAT_F4:"Multi-LLM-Unterst\xFCtzung",TRIGGER_MANUAL_NAME:"Manuell",TRIGGER_MANUAL_HEADLINE:"Auf Abruf ausf\xFChren",TRIGGER_MANUAL_DESC:"Workflows vom Dashboard mit einem Klick ausf\xFChren. Eingabeparameter \xFCbergeben, Schritt-f\xFCr-Schritt-Ausf\xFChrung sehen, in Echtzeit debuggen. Perfekt f\xFCr Tests und interne Tools.",TRIGGER_MANUAL_F1:"Ein-Klick-Ausf\xFChrung",TRIGGER_MANUAL_F2:"Eingabeparameter",TRIGGER_MANUAL_F3:"Schritt-f\xFCr-Schritt-Debug",TRIGGER_MANUAL_F4:"Ausf\xFChrungsprotokolle",TRIGGER_SCHEDULE_NAME:"Zeitplan",TRIGGER_SCHEDULE_HEADLINE:"Nach Zeitplan automatisieren",TRIGGER_SCHEDULE_DESC:"Cron-basierte Planung mit voller Flexibilit\xE4t. Jede Minute, st\xFCndlich, t\xE4glich, w\xF6chentlich oder benutzerdefinierte Cron-Ausdr\xFCcke. Zeitzonenunterst\xFCtzung.",TRIGGER_SCHEDULE_F1:"Cron-Ausdr\xFCcke",TRIGGER_SCHEDULE_F2:"Zeitzonenunterst\xFCtzung",TRIGGER_SCHEDULE_F3:"Benutzerdefinierte Intervalle",TRIGGER_SCHEDULE_F4:"Wiederholung bei Fehler",TRIGGER_API_NAME:"API",TRIGGER_API_HEADLINE:"Als REST-Endpunkt bereitstellen",TRIGGER_API_DESC:"Jeder Workflow erh\xE4lt eine eindeutige URL. API-Schl\xFCssel-Auth, IP-Whitelisting, Rate Limiting und CORS-Kontrollen hinzuf\xFCgen. Produktions-APIs ohne Server-Code deployen.",TRIGGER_API_F1:"Eindeutige Endpunkt-URL",TRIGGER_API_F2:"API-Schl\xFCssel-Auth",TRIGGER_API_F3:"Rate Limiting",TRIGGER_API_F4:"CORS-Kontrollen",NODE_FLOW_START_TITLE:"Flow Start",NODE_FLOW_START_DESC:"Einstiegspunkt f\xFCr Workflow- und Agent-Flows. Unterst\xFCtzt Chat-, Manuell-, Zeitplan- und API-Trigger mit konfigurierbaren F\xE4higkeiten und Chat-Interface.",NODE_FLOW_START_H1:"Mehrere Trigger",NODE_FLOW_START_H2:"Chat-Interface",NODE_FLOW_START_H3:"Zeitplan & API",NODE_FLOW_START_H4:"Agent-F\xE4higkeiten",NODE_CONDITIONS_TITLE:"Bedingungen",NODE_CONDITIONS_DESC:"Verzweige deinen Workflow basierend auf Daten. Unterst\xFCtzung f\xFCr komplexe Bedingungen mit UND/ODER-Logik. Daten auf verschiedene Pfade routen.",NODE_CONDITIONS_H1:"If/else-Verzweigungen",NODE_CONDITIONS_H2:"Mehrere Bedingungen",NODE_CONDITIONS_H3:"Datenvergleich",NODE_CONDITIONS_H4:"Regex-Matching",NODE_DELAY_TITLE:"Verz\xF6gerung",NODE_DELAY_DESC:"Workflow-Ausf\xFChrung f\xFCr eine bestimmte Dauer pausieren. N\xFCtzlich f\xFCr Rate Limiting, Warten auf externe Prozesse oder zeitgesteuerte Intervalle.",NODE_DELAY_H1:"Konfigurierbare Dauer",NODE_DELAY_H2:"Mehrere Zeiteinheiten",NODE_DELAY_H3:"Rate Limiting",NODE_DELAY_H4:"Abbrechbar",NODE_MCP_TITLE:"MCP-Server",NODE_MCP_DESC:"Mit einem externen MCP-Server verbinden und ein Tool aufrufen. Unterst\xFCtzt SSE- und Streamable-HTTP-Transporte mit API-Key- oder Bearer-Token-Authentifizierung.",NODE_MCP_H1:"SSE & HTTP-Transport",NODE_MCP_H2:"Tools auto-entdecken",NODE_MCP_H3:"API-Key & Bearer-Auth",NODE_MCP_H4:"Dynamische Argumente",NODE_VALIDATOR_TITLE:"Daten-Validator",NODE_VALIDATOR_DESC:"Daten mit JSON Schema validieren und strukturieren. Sicherstellen, dass Daten erwarteten Typen, Formaten und Einschr\xE4nkungen entsprechen.",NODE_VALIDATOR_H1:"Schema-Validierung",NODE_VALIDATOR_H2:"Typpr\xFCfung",NODE_VALIDATOR_H3:"Format-Einschr\xE4nkungen",NODE_VALIDATOR_H4:"Pflichtfelder",NODE_FORLOOP_TITLE:"For-Schleifen",NODE_FORLOOP_DESC:"Arrays und Sammlungen iterieren. Elemente parallel oder sequenziell verarbeiten. Ergebnisse automatisch aggregieren.",NODE_FORLOOP_H1:"Array-Iteration",NODE_FORLOOP_H2:"Parallele Verarbeitung",NODE_FORLOOP_H3:"Ergebnis-Aggregation",NODE_FORLOOP_H4:"Abbruchbedingungen",NODE_SUBWORKFLOW_TITLE:"Sub-Workflow",NODE_SUBWORKFLOW_DESC:"Komplexe Logik in wiederverwendbare Sub-Workflows organisieren. Workflows aus anderen Workflows aufrufen. Gemeinsame Muster teilen.",NODE_SUBWORKFLOW_H1:"Wiederverwendbare Logik",NODE_SUBWORKFLOW_H2:"Verschachtelte Ausf\xFChrung",NODE_SUBWORKFLOW_H3:"Parameter-\xDCbergabe",NODE_SUBWORKFLOW_H4:"Fehler-Isolation",NODE_TRYCATCH_TITLE:"Try / Catch",NODE_TRYCATCH_DESC:"Fehlerbehandlung und Wiederholungslogik f\xFCr deine Workflows. Fehler abfangen, Wiederholungen mit festem oder exponentiellem Backoff konfigurieren.",NODE_TRYCATCH_H1:"Konfigurierbare Wiederholungen",NODE_TRYCATCH_H2:"Exponentielles Backoff",NODE_TRYCATCH_H3:"Fehler-Routing",NODE_TRYCATCH_H4:"Wiederholungsverz\xF6gerung",NODE_THROWERROR_TITLE:"Fehler werfen",NODE_THROWERROR_DESC:"Workflow sofort stoppen und einen Fehler ausl\xF6sen. Innerhalb eines Try/Catch-Bereichs oder eigenst\xE4ndig zur Ausf\xFChrungsunterbrechung.",NODE_THROWERROR_H1:"Benutzerdefinierte Fehlermeldung",NODE_THROWERROR_H2:"Optionaler Fehlercode",NODE_THROWERROR_H3:"Try/Catch-Integration",NODE_THROWERROR_H4:"Vorbedingungspr\xFCfung",NODE_HUMANLOOP_TITLE:"Mensch in der Schleife",NODE_HUMANLOOP_DESC:"Workflows f\xFCr menschliche \xDCberpr\xFCfung pausieren. Vor dem Fortfahren genehmigen oder ablehnen. Konfigurierbares Timeout mit Auto-Genehmigungs-/Ablehnungs-Fallback.",NODE_HUMANLOOP_H1:"Genehmigungstore",NODE_HUMANLOOP_H2:"Konfigurierbares Timeout",NODE_HUMANLOOP_H3:"Auto-Genehmigung/Ablehnung",NODE_HUMANLOOP_H4:"Kontextanzeige",NODE_MODEL_TITLE:"Modell",NODE_MODEL_DESC:"Mit jedem gro\xDFen LLM-Anbieter \xFCber eine einheitliche Schnittstelle verbinden. Zwischen GPT-4, Claude, Gemini, Llama und Mistral wechseln ohne Workflow-\xC4nderung.",NODE_MODEL_H1:"Multi-Anbieter-Unterst\xFCtzung",NODE_MODEL_H2:"Session-Memory",NODE_MODEL_H3:"Temperaturkontrolle",NODE_MODEL_H4:"Token-Tracking",NODE_AGENT_TITLE:"Agent",NODE_AGENT_DESC:"Autonomer KI-Agent, der Nodes als Tools stapelt. Modell ausw\xE4hlen und er greift automatisch auf alle inneren Node-Daten zu \u2013 kein manuelles Verdrahten n\xF6tig.",NODE_AGENT_H1:"Container-Node",NODE_AGENT_H2:"Auto-Tool-Zugriff",NODE_AGENT_H3:"Mehrstufiges Reasoning",NODE_AGENT_H4:"Beliebige Nodes stapeln",NODE_IMAGEGEN_TITLE:"Bildgenerierung",NODE_IMAGEGEN_DESC:"Bilder mit DALL-E, Stable Diffusion und anderen KI-Modellen generieren. Visuals direkt in deinem Workflow erstellen.",NODE_IMAGEGEN_H1:"DALL-E 3",NODE_IMAGEGEN_H2:"Stable Diffusion",NODE_IMAGEGEN_H3:"Bildbearbeitung",NODE_IMAGEGEN_H4:"Stilkontrolle",NODE_QUERYDATA_TITLE:"Daten abfragen",NODE_QUERYDATA_DESC:"Eine Datenquelle mit semantischer, Schl\xFCsselwort- oder Hybridsuche durchsuchen. Ergebnisanzahl und Relevanzfilterung f\xFCr RAG-Workflows steuern.",NODE_QUERYDATA_H1:"Semantische Suche",NODE_QUERYDATA_H2:"Hybrid-Retrieval",
3NODE_QUERYDATA_H3:"Relevanzschwelle",NODE_QUERYDATA_H4:"MMR-Diversit\xE4t",NODE_WRITEDATA_TITLE:"Daten schreiben",NODE_WRITEDATA_DESC:"Datenbank-Schreiboperationen durchf\xFChren \u2013 einf\xFCgen, aktualisieren, upsert oder l\xF6schen \u2013 gegen eine ausgew\xE4hlte Datenquelle.",NODE_WRITEDATA_H1:"Einf\xFCgen & Aktualisieren",NODE_WRITEDATA_H2:"Upsert-Unterst\xFCtzung",NODE_WRITEDATA_H3:"Where-Bedingungen",NODE_WRITEDATA_H4:"Spalten-Mapping",NODE_EXTRACTFILE_TITLE:"Aus Datei extrahieren",NODE_EXTRACTFILE_DESC:"Text und strukturierte Daten aus hochgeladenen Dateien extrahieren. Unterst\xFCtzung f\xFCr PDFs, Dokumente, Tabellen und mehr.",NODE_EXTRACTFILE_H1:"PDF-Parsing",NODE_EXTRACTFILE_H2:"Textextraktion",NODE_EXTRACTFILE_H3:"Tabellenerkennung",NODE_EXTRACTFILE_H4:"Multi-Format",NODE_DATABASE_TITLE:"Datenbank",NODE_DATABASE_DESC:"SQL-Abfragen auf verbundenen Datenbanken ausf\xFChren. Daten direkt aus deinen Workflows lesen, schreiben und verwalten.",NODE_DATABASE_H1:"SQL-Abfragen",NODE_DATABASE_H2:"Mehrere Datenbanken",NODE_DATABASE_H3:"Parametrisierte Abfragen",NODE_DATABASE_H4:"Ergebnis-Mapping",NODE_SETVARS_TITLE:"Variablen setzen",NODE_SETVARS_DESC:"Benannte Variablen definieren, die allen nachfolgenden Nodes zur Verf\xFCgung stehen. Werte initialisieren, Konstanten speichern oder Daten vorbereiten.",NODE_SETVARS_H1:"Variablenerstellung",NODE_SETVARS_H2:"Dynamische Werte",NODE_SETVARS_H3:"Template-Syntax",NODE_SETVARS_H4:"Wiederverwendbare Daten",NODE_DATAMAPPER_TITLE:"Daten-Mapper",NODE_DATAMAPPER_DESC:"Daten durch Definition eines JSON-Ausgabe-Templates transformieren und umformen. Variable Interpolation zum Einbetten dynamischer Werte nutzen.",NODE_DATAMAPPER_H1:"JSON-Templates",NODE_DATAMAPPER_H2:"Daten-Umformung",NODE_DATAMAPPER_H3:"Variable Injektion",NODE_DATAMAPPER_H4:"Struktur-Mapping",NODE_FILE_TITLE:"Datei",NODE_FILE_DESC:"Dateisystemoperationen in deinen Workflows durchf\xFChren. Dateien erstellen, lesen, schreiben, umbenennen und l\xF6schen.",NODE_FILE_H1:"Erstellen & Lesen",NODE_FILE_H2:"Schreiben & Umbenennen",NODE_FILE_H3:"Dateien l\xF6schen",NODE_FILE_H4:"Dynamische Pfade",NODE_CODE_TITLE:"Code-Ausf\xFChrung",NODE_CODE_DESC:"Benutzerdefinierten JavaScript-Code schreiben, wenn du volle Kontrolle brauchst. Auf Workflow-Daten zugreifen und transformierte Ergebnisse zur\xFCckgeben.",NODE_CODE_H1:"JavaScript",NODE_CODE_H2:"Voller Datenzugriff",NODE_CODE_H3:"Benutzerdefinierte Logik",NODE_CODE_H4:"Async-Unterst\xFCtzung",NODE_HTTP_TITLE:"HTTP-Anfrage",NODE_HTTP_DESC:"Jede REST-API mit voller Kontrolle \xFCber Header, Authentifizierung und Request-Body aufrufen. Unterst\xFCtzung f\xFCr alle HTTP-Methoden.",NODE_HTTP_H1:"Alle HTTP-Methoden",NODE_HTTP_H2:"Benutzerdefinierte Header",NODE_HTTP_H3:"Auth-Unterst\xFCtzung",NODE_HTTP_H4:"Antwort-Parsing",NODE_SCRAPER_TITLE:"Web-Scraper",NODE_SCRAPER_DESC:"Inhalte von jeder Webseite extrahieren. CSS-Selektoren nutzen oder KI die ben\xF6tigten Daten identifizieren lassen. Paginierung und dynamische Inhalte verarbeiten.",NODE_SCRAPER_H1:"CSS-Selektoren",NODE_SCRAPER_H2:"KI-Extraktion",NODE_SCRAPER_H3:"Paginierung",NODE_SCRAPER_H4:"JavaScript-Rendering",NODE_INTEGRATIONS_TITLE:"Integrationen",NODE_INTEGRATIONS_DESC:"Vorgefertigte Konnektoren f\xFCr beliebte Dienste. Slack, Discord, E-Mail, Datenbanken und mehr. Kein API-Wissen erforderlich.",NODE_INTEGRATIONS_H1:"Slack & Discord",NODE_INTEGRATIONS_H2:"E-Mail (SMTP)",NODE_INTEGRATIONS_H3:"Datenbanken",NODE_INTEGRATIONS_H4:"Cloud-Speicher",NODE_OUTPUT_TITLE:"Einfache Ausgabe",NODE_OUTPUT_DESC:"Daten aus deinem Workflow als API-Antwort zur\xFCckgeben. Als JSON, Text oder HTML formatieren. Perfekt f\xFCr KI-Microservices.",NODE_OUTPUT_H1:"JSON-Antworten",NODE_OUTPUT_H2:"Benutzerdefinierte Formatierung",NODE_OUTPUT_H3:"Status-Codes",NODE_OUTPUT_H4:"Header-Kontrolle",CAT_AI:"KI & ML",CAT_INTEGRATION:"Integration",CAT_LOGIC:"Logik & Code",CAT_OUTPUT:"Ausgabe"},TUTORIALS:{HERO_LABEL:"LERNEN",HERO_TITLE:"Tutorials",HERO_SUBTITLE:"Schritt-f\xFCr-Schritt-Anleitungen zum Erstellen echter Funktionen mit Ubex-Workflows.",DISCLAIMER:"Diese Tutorials werden kontinuierlich verbessert und aktualisiert. Wenn Sie sie in der Produktion verwenden, geschieht dies auf eigene Verantwortung. \xDCberpr\xFCfen und testen Sie Workflows immer vor dem Deployment.",FILTER_ALL:"Alle",FILTER_AVAILABLE:"Verf\xFCgbar",FILTER_IN_PROGRESS:"In Bearbeitung",DIFF_BEGINNER:"Anf\xE4nger",DIFF_INTERMEDIATE:"Fortgeschritten",DIFF_ADVANCED:"Experte",DIFF_EXPERT:"Profi",EMPTY_TITLE:"Keine Tutorials gefunden",EMPTY_DESC:'Es gibt noch keine Tutorials f\xFCr den Filter "{{filter}}". Versuchen Sie einen anderen Filter oder schauen Sie bald wieder vorbei.',EMPTY_RESET:"Alle Tutorials anzeigen",STATUS_IN_PROGRESS:"In Bearbeitung",CAT_AUTH:"Authentifizierung",CAT_AUTH_DESC:"Sichere Login-Flows, Registrierung, E-Mail-Verifizierung und Multi-Faktor-Authentifizierung erstellen.",AUTH_PREREQ_TITLE:"Authentifizierungs-Voraussetzungen",AUTH_PREREQ_DESC:"Datenbank-Setup, Secrets-Konfiguration und Sicherheits-Checkliste f\xFCr das gesamte Auth-System.",AUTH_REGIST
3ER_TITLE:"Benutzerregistrierung",AUTH_REGISTER_DESC:"Schema-Validierung, Passwort-Hashing, Duplikaterkennung, gehashte Tokens und E-Mail-Verifizierung.",AUTH_EMAIL_TITLE:"E-Mail-Verifizierung",AUTH_EMAIL_DESC:"Sichere tokenbasierte Verifizierung mit Rate Limiting, gehashten Tokens, Ablauf und Audit-Logging.",AUTH_LOGIN_TITLE:"Benutzer-Login",AUTH_LOGIN_DESC:"Benutzer authentifizieren, Kontostatus \xFCberpr\xFCfen und JWT-Tokens ausstellen.",AUTH_FORGOT_TITLE:"Passwort vergessen",AUTH_FORGOT_DESC:"Sicheres Passwort-Reset mit Rate Limiting, gehashten Tokens, Ablauf und Audit-Logging.",AUTH_CHANGE_TITLE:"Passwort \xE4ndern",AUTH_CHANGE_DESC:"JWT-authentifizierte Passwort\xE4nderung mit aktueller Passwort\xFCberpr\xFCfung und St\xE4rke-Durchsetzung.",AUTH_OTP_TITLE:"OTP-Authentifizierung",AUTH_OTP_DESC:"Einmalpasswort-Authentifizierung f\xFCr erh\xF6hte Sicherheit per E-Mail.",AUTH_TOTP_TITLE:"Google Authenticator (TOTP)",AUTH_TOTP_DESC:"Zeitbasierte Einmalpassw\xF6rter mit Google Authenticator oder Authy.",CAT_PAYMENTS:"Zahlungen",CAT_PAYMENTS_DESC:"Zahlungsanbieter wie Stripe f\xFCr Checkouts, Abonnements und Webhooks integrieren.",PAY_STRIPE_TITLE:"Stripe Checkout-Sitzung",PAY_STRIPE_DESC:"Eine Stripe Checkout-Sitzung erstellen und die Zahlungs-URL an Ihr Frontend zur\xFCckgeben.",CAT_CONTACT:"Kontakt",CAT_CONTACT_DESC:"Kontaktformulare mit Validierung, Speicherung und automatischen Best\xE4tigungs-E-Mails erstellen.",CONTACT_FORM_TITLE:"Website-Kontaktformular",CONTACT_FORM_DESC:"Eingaben validieren, in einer Tabelle speichern und Best\xE4tigungs-E-Mails \xFCber Resend senden.",CAT_TELEGRAM:"Telegram",CAT_TELEGRAM_DESC:"KI-gest\xFCtzte Telegram-Bots mit Wissensbasis-Suche, LLM-Antworten und Webhook-Integration erstellen.",TELEGRAM_BOT_TITLE:"Telegram KI-Bot",TELEGRAM_BOT_DESC:"Einen Telegram-Bot mit einem KI-gest\xFCtzten Assistenten mit RAG und LLM-Antworten verbinden.",CAT_WHATSAPP:"WhatsApp",CAT_WHATSAPP_DESC:"KI-gest\xFCtzte WhatsApp-Bots mit Twilio-Integration, Webhook-Signaturvalidierung und sicherem Messaging erstellen.",WHATSAPP_BOT_TITLE:"WhatsApp KI-Bot",WHATSAPP_BOT_DESC:"WhatsApp mit einem KI-Assistenten mit Twilio-Webhook-Verifizierung und HMAC-SHA1-Signaturvalidierung verbinden.",CAT_DISCORD:"Discord",CAT_DISCORD_DESC:"Discord-Bots mit Ihren Workflows f\xFCr Tickets, Benachrichtigungen und Automatisierung verbinden.",DISCORD_TICKETS_TITLE:"Discord Support-Tickets",DISCORD_TICKETS_DESC:"Benutzer k\xF6nnen Support-Tickets \xFCber Discord-Slash-Befehle einreichen, automatisch verifiziert und gespeichert.",DISCORD_STATS_TITLE:"Discord Server-Statistiken",DISCORD_STATS_DESC:"Live-Mitgliederzahlen und Online-Pr\xE4senz von Ihrem Discord-Server abrufen.",CTA_TITLE:"Nicht gefunden, was Sie suchen?",CTA_SUBTITLE:"Schauen Sie in unsere Dokumentation oder wenden Sie sich an die Community auf Discord.",CTA_DOCS:"Dokumentation",CTA_DISCORD:"Discord beitreten"},ROADMAP:{HERO_LABEL:"PRODUKT-ROADMAP",HERO_TITLE:"Was wir bauen",HERO_SUBTITLE:"Die Engine steht. Jetzt bauen wir das \xD6kosystem drumherum. Hier ist, was fertig ist, woran wir arbeiten und was kommt.",LEGEND_COMPLETED:"ABGESCHLOSSEN",LEGEND_IN_PROGRESS:"IN ARBEIT",LEGEND_PLANNED:"GEPLANT",LEGEND_EXPLORING:"IN ERKUNDUNG",STATUS_COMPLETED:"Abgeschlossen",STATUS_IN_PROGRESS:"In Arbeit",STATUS_PLANNED:"Geplant",STATUS_EXPLORING:"In Erkundung",Q4_2024:"Q4 2024",Q1_2025:"Q1 2025",Q2_2025:"Q2 2025",Q3_Q4_2025:"Q3\u2013Q4 2025",Q1_2026:"Q1 2026",Q2_2026:"Q2 2026",FUTURE:"Zukunft",DATE_DEC_2024:"Dez 2024",DATE_NOV_2024:"Nov 2024",DATE_OCT_2024:"Okt 2024",DATE_JAN_2025:"Jan 2025",DATE_FEB_2025:"Feb 2025",DATE_MAR_2025:"M\xE4r 2025",DATE_APR_2025:"Apr 2025",DATE_MAY_2025:"Mai 2025",DATE_JUN_2025:"Jun 2025",DATE_Q3_2025:"Q3 2025",DATE_Q4_2025:"Q4 2025",DATE_Q1_2026:"Q1 2026",DATE_Q2_2026:"Q2 2026",VISUAL_ENGINE_TITLE:"Visuelle Ausf\xFChrungs-Engine",VISUAL_ENGINE_DESC:"Apps visuell ohne Code bauen. Drag-and-Drop-Oberfl\xE4che mit 21+ Bausteinen und paralleler Ausf\xFChrung.",MULTI_LLM_TITLE:"Multi-LLM-Unterst\xFCtzung",MULTI_LLM_DESC:"Verbinde dich mit ChatGPT, Claude, Gemini und mehr \xFCber eine einzige Oberfl\xE4che. Anbieter jederzeit wechseln.",RAG_TITLE:"RAG & Datenquellen",RAG_DESC:"KI, die deine Dokumente durchsucht. Integrierter Vektorspeicher und Dokumentenverarbeitung f\xFCr Wissensbasen.",TEMPLATES_TITLE:"Workflow-Vorlagen",TEMPLATES_DESC:"Vorgefertigte Vorlagen f\xFCr g\xE4ngige Anwendungsf\xE4lle: Content-Erstellung, Datenextraktion, Kundensupport.",TEAM_COLLAB_TITLE:"Team-Zusammenarbeit",TEAM_COLLAB_DESC:"Gemeinsame Arbeitsbereiche, rollenbasierte Berechtigungen und Echtzeit-Zusammenarbeit an Workflows.",API_AUTH_TITLE:"API-Endpunkte & Auth",API_AUTH_DESC:"Jeden Workflow in eine Live-API mit Sicherheit verwandeln. Authentifizierung, Rate Limiting, IP-Whitelisting und Zugriffskontrollen.",SCHEDULED_TITLE:"Geplante Workflows",SCHEDULED_DESC:"Aufgaben automatisch nach Zeitplan ausf\xFChren. Cron-\xE4hnliche Trigger mit Zeitzonenunterst\xFCtzung.",WEBHOOKS_TITLE:"Webhook-Trigger",WEBHOOKS_DESC:"Workflows durch externe Ereignisse starten. Mit jeder App verbinden, die Webhooks sendet, mit automatischer Payload-Verarbeitung.",ANALYTICS_TITLE:"Erweiterte Analysen",ANALYTICS_DESC:"Detaillierte Workflow-Ausf\xFChrungsmetriken, Kostenverfolgung und Performance-Einblicke.",QIRA_TITLE:"Qira \u2013 KI-App-Builder",QIRA_DESC:"KI-Assistent, der komplette Anwendungen aus Gespr\xE4chen erstellt. Beschreibe, was du brauchst, und Qira erstellt es \u2013 Frontend, Backend, Datenbank und Deployment.",HOSTING_TITLE:"Frontend-Hosting & Deployment",HOSTING_DESC:"Ein-Klick-Deployment f\xFCr Frontends mit eigenen Domains, SSL und Cloud-Hosting. Mit Qira bauen oder eigenes mitbringen.",GDPR_SOC2_TITLE:"DSGVO & SOC 2 Typ II",GDPR_SOC2_DESC:"Auf dem Weg zur DSGVO-Konformit\xE4t und SOC 2 Typ II-Zertifizierung. Pr\xFCfprotokolle, Datenspeicherungskontrollen und rollenbasierter Zugriff in allen Pl\xE4nen.",EU_AI_ACT_TITLE:"KI-Governance-Ausrichtung",EU_AI_ACT_DESC:"Ausf\xFChrungs-Audit-Trails f\xFCr KI-Transparenz, bedingte Knoten f\xFCr Human-in-the-Loop-Aufsicht und Daten-Governance-Kontrollen.",EU_DEPLOY_TITLE:"Flexible Deployment-Optionen",EU_DEPLOY_DESC:"Cloud, VPC und On-Premise-Deployment. Die gesamte Engine in deinem Rechenzentrum betreiben. Air-Gapped wenn n\xF6tig.",DOCS_TITLE:"Plattform-Dokumentation",DOCS_DESC:"Umfassende Dokumentation aller Knoten, Konfigurationsoptionen und Schritt-f\xFCr-Schritt-Anleitungen zum Erstellen und Deployen von Workflows.",MARKETPLACE_TITLE:"Zertifizierter Workflow-Marktplatz",MARKETPLACE_DESC:"Sicherheitsgepr\xFCfte Workflow-Vorlagen von zertifizierten Ingenieuren. Jeder Workflow auf Sicherheit und Compliance gepr\xFCft.",VERSION_CONTROL_TITLE:"Versionskontrolle",VERSION_CONTROL_DESC:"Git-\xE4hnliche Versionierung f\xFCr Workflows mit Branching, Merging und Rollback. Unverzichtbar f\xFCr Enterprise-Governance.",ISO_TITLE:"ISO 27001-Zertifizierung",ISO_DESC:"Informationssicherheitsmanagement nach internationalen Standards. Aufbauend auf SOC 2-Grundlagen.",SEC_COMPLIANCE_TITLE:"Sicherheit & Compliance",SEC_COMPLIANCE_DESC:"mTLS-Unterst\xFCtzung f\xFCr Service-zu-Service-Authentifizierung. Exportierbare Pr\xFCfprotokolle zu S3, SIEM und externen Observability-Plattformen.",AUTO_AUDIT_TITLE:"Auto-Audit Compliance-Schicht",AUTO_AUDIT_DESC:"Automatisierte Compliance-Verfolgung und Berichterstattung. Audit-Berichte f\xFCr KI-Governance, DSGVO und SOC 2 mit einem Klick generieren.",MULTI_REGION_TITLE:"Multi-Region-Deployment",MULTI_REGION_DESC:"Workflows \xFCber mehrere Regionen deployen f\xFCr Redun
3danz und Latenzoptimierung. Jurisdiktionsbewusstes Routing.",MOBILE_TITLE:"Mobile \xDCberwachung",MOBILE_DESC:"Workflows von iOS- und Android-Ger\xE4ten \xFCberwachen und ausl\xF6sen. Echtzeit-Ausf\xFChrungsbenachrichtigungen.",FEEDBACK_TITLE:"Einen Feature-Wunsch?",FEEDBACK_DESC:"Wir bauen \xF6ffentlich und priorisieren basierend auf Community-Feedback. Sag uns, was du als N\xE4chstes sehen m\xF6chtest.",FEEDBACK_CTA:"Feedback senden",FEEDBACK_DISCORD:"Discord beitreten",TAG_CORE:"Kern",TAG_EXECUTION:"Ausf\xFChrung",TAG_LLM:"LLM",TAG_INTEGRATION:"Integration",TAG_RAG:"RAG",TAG_TEMPLATES:"Vorlagen",TAG_UX:"UX",TAG_TEAMS:"Teams",TAG_ENTERPRISE:"Enterprise",TAG_API:"API",TAG_SECURITY:"Sicherheit",TAG_AUTOMATION:"Automatisierung",TAG_TRIGGERS:"Trigger",TAG_WEBHOOKS:"Webhooks",TAG_ANALYTICS:"Analysen",TAG_MONITORING:"\xDCberwachung",TAG_AI:"KI",TAG_BACKEND:"Backend",TAG_FRONTEND:"Frontend",TAG_HOSTING:"Hosting",TAG_DEPLOYMENT:"Deployment",TAG_GDPR:"DSGVO",TAG_SOC2:"SOC 2",TAG_COMPLIANCE:"Compliance",TAG_EU_AI_ACT:"KI-Governance",TAG_ON_PREMISE:"On-Premise",TAG_VPC:"VPC",TAG_DOCS:"Doku",TAG_PLATFORM:"Plattform",TAG_MARKETPLACE:"Marktplatz",TAG_VERSIONING:"Versionierung",TAG_GOVERNANCE:"Governance",TAG_ISO:"ISO 27001",TAG_MTLS:"mTLS",TAG_AUDIT_LOGS:"Pr\xFCfprotokolle",TAG_SIEM:"SIEM",TAG_AUTO_AUDIT:"Auto-Audit",TAG_INFRASTRUCTURE:"Infrastruktur",TAG_EU_DEPLOY:"Flexibles Deployment",TAG_MOBILE:"Mobil"},MEET_VIRA:{HERO_LABEL:"VIRA KENNENLERNEN",HERO_TITLE:"Schluss mit Konfigurieren. Anfangen zu beschreiben.",HERO_SUBTITLE:"Vira ist die KI in Ubex, die nat\xFCrliche Sprache in live Workflows und Agenten verwandelt. Du sprichst, sie baut.",DEMO_LABEL:"LIVE-DEMO",DEMO_TITLE:"Sieh Vira bei der Arbeit",DEMO_SUBTITLE:"Ein echtes Gespr\xE4ch wird zum Live-Workflow \u2013 Knoten f\xFCr Knoten.",DEMO_INPUT_PLACEHOLDER:"Bitte Vira, etwas zu bauen...",DEMO_USER1:"Erstelle einen Workflow, der auf Stripe-Webhook-Zahlungen h\xF6rt, pr\xFCft ob der Betrag \xFCber 100 \u20AC liegt, eine Slack-Benachrichtigung sendet und es in der Datenbank protokolliert",DEMO_VIRA1:"Bin dran. Ich verdrahte einen Stripe-Webhook-Trigger, f\xFCge einen Bedingungsknoten f\xFCr Betr\xE4ge \xFCber 100 \u20AC hinzu, verbinde Slack f\xFCr Benachrichtigungen und f\xFCge einen Datenbank-Schreibvorgang zum Protokollieren hinzu. Baue jetzt...",DEMO_USER2:"F\xFCge auch eine E-Mail-Benachrichtigung an das Finanzteam nach der Slack-Nachricht hinzu",DEMO_VIRA2:"Ich f\xFCge einen HTTP-Request-Knoten f\xFCr die Gmail-API direkt nach Slack hinzu. Gleiche Bedingung gilt \u2013 nur f\xFCr Zahlungen \xFCber 100 \u20AC.",CANVAS_HEADER:"Workflow-Canvas",CANVAS_NODES:"Knoten",CANVAS_BRANCHES:"Verzweigungen",CAP_LABEL:"F\xC4HIGKEITEN",CAP_TITLE:"Was Vira kann",CAP_SUBTITLE:"Workflows bauen, Agenten erstellen, live bearbeiten \u2013 alles per Gespr\xE4ch.",CAP_BUILD_TITLE:"Workflows bauen",CAP_BUILD_DESC:"Sage 'verbinde Stripe mit Slack bei Zahlungen \xFCber 100 \u20AC' und Vira baut Trigger, Bedingung, Integration und Ausgabeknoten \u2013 in Sekunden deployed.",CAP_AGENTS_TITLE:"Agenten erstellen",CAP_AGENTS_DESC:"Beschreibe einen Support-Agenten, der Tickets liest, deine Wissensbasis abfragt und Antworten entwirft. Vira verdrahtet Tools, Speicher und Anweisungen zu einem einsatzbereiten Agenten.",CAP_EDIT_TITLE:"Live-Workflows bearbeiten",CAP_EDIT_DESC:"'F\xFCge einen E-Mail-Schritt nach Slack hinzu' \u2013 Vira f\xFCgt den Knoten ein, verbindet den Flow neu und h\xE4lt alles am Laufen. Kein Neuaufbau n\xF6tig.",CAP_ISSUES_TITLE:"Probleme fr\xFCh erkennen",CAP_ISSUES_DESC:"Vira markiert fehlende Fehlerbehandler, schl\xE4gt Wiederholungslogik f\xFCr instabile APIs vor und warnt bei fehlenden Fallback-Verzweigungen \u2013 w\xE4hrend du noch baust.",CAP_PLAIN_TITLE:"Einfache Sprache, echte Logik",CAP_PLAIN_DESC:"Beschreibe Flows so, wie du sie einem Kollegen erkl\xE4ren w\xFCrdest. Vira \xFCbersetzt deine Worte automatisch in Ubex-Knoten, Bedingungen und Datentransformationen.",CAP_NODES_TITLE:"Jeder Ubex-Knoten verf\xFCgbar",CAP_NODES_DESC:"HTTP-Requests, Datenbank-Schreibvorg\xE4nge, KI-Modelle, 50+ Integrationen \u2013 Vira hat Zugriff auf die gesamte Ubex-Knotenbibliothek und w\xE4hlt die richtigen f\xFCr deinen Anwendungsfall.",COMP_LABEL:"DER UNTERSCHIED",COMP_TITLE:"In Minuten bauen, nicht Stunden",COMP_WITHOUT:"Ohne Vira",COMP_STEP1:"12 Knoten auf dem Canvas platzieren",COMP_STEP2:"Jeden Knoten manuell konfigurieren",COMP_STEP3:"Verbindungen zwischen allen Knoten verdrahten",COMP_STEP4
3:"Bedingungen und Verzweigungslogik einrichten",COMP_STEP5:"Debuggen, testen, reparieren, wiederholen",COMP_STEP6:"Deployen und Endpunkt konfigurieren",COMP_TIME_WITHOUT:"~30-60 Minuten",COMP_WITH:"Mit Vira",COMP_WITH_PROMPT:"'Erstelle einen Workflow, der auf Stripe-Zahlungen \xFCber 100 \u20AC h\xF6rt, Slack benachrichtigt, die Finanzabteilung per E-Mail informiert und in der Datenbank protokolliert.'",COMP_WITH_RESULT:"Workflow gebaut, verbunden und deployed.",COMP_TIME_WITH:"~30 Sekunden",EX_LABEL:"BEISPIELE",EX_TITLE:"Vom Prompt zur Produktion",EX_SUBTITLE:"Echte Anfragen und was Vira daraus erstellt.",EX1_PROMPT:"Baue einen Agenten, der Support-Tickets \xFCberwacht, Dringlichkeit mit KI klassifiziert und automatisch dem richtigen Team in Jira zuweist",EX2_PROMPT:"Wenn eine neue Bestellung von Shopify eingeht, pr\xFCfe den Bestand in unserer Datenbank, und wenn der Vorrat niedrig ist, sende eine Nachbestellanfrage an die Lieferanten-API",EX3_PROMPT:"Jeden Freitag um 17 Uhr die Wochenanalysen aus Google Sheets abrufen, eine KI-Zusammenfassung generieren und im #metrics Slack-Kanal posten",EX_WORKFLOW_CREATED:"Workflow erstellt",EX_AUTO_DEPLOYED:"auto-deployed",CTA_TITLE:"Starte mit Vira",CTA_SUBTITLE:"Beschreibe, was du brauchst. Vira \xFCbernimmt den Rest.",CTA_CROSSLINK_PREFIX:"Vira \xFCbernimmt das Backend.",CTA_CROSSLINK_LINK:"Qira f\xFCr das Frontend kennenlernen",CTA_START:"Kostenlos starten",CTA_CONTACT:"Kontakt aufnehmen",CTA_TRUST:"Keine Kreditkarte erforderlich \xB7 Kostenlose Stufe inklusive"},MEET_QIRA:{CREDIT_BALANCE:"3,11 $ Guthaben verbleibend",TOKEN_RATE_LABEL:"Eingabe / Ausgabe \xB7 pro Million Tokens",DEMO_NOTE:"Interaktive Produktillustration. Entdecke die Werkzeuge und probiere sie in Ubex aus.",NEXT:"N\xE4chstes Werkzeug",PREVIOUS:"Vorheriges Werkzeug",PATH_PUBLISH:"Ver\xF6ffentliche & entwickle weiter",PATH_REFINE:"Mach sie zu deiner",PATH_DESCRIBE:"Beschreibe deine Idee",HERO_LABEL:"QIRA KENNENLERNEN",HERO_TITLE_1:"Ein Agent.",HERO_TITLE_ACCENT:"Deine ganze App.",HERO_SUBTITLE:"Qira ist der Builder in Ubex. Beschreibe, was du willst, und sie schreibt Frontend, Backend und Datenbank, w\xE4hlt mit dir ein Theme und bringt alles auf deiner Domain live. Alles aus einem Chat.",HERO_CTA:"Jetzt bauen",HERO_TOUR:"Studio-Tour starten",START_CAPTION:"Das ist der erste Bildschirm jedes Qira-Projekts. Probiere den Schalter und die Themes aus.",MODELS_LABEL:"MODELLE",MODELS_TITLE:"W\xE4hle das Gehirn hinter Qira.",MODELS_SUB:"Qira ist an keinen Anbieter gebunden. W\xE4hle f\xFCr jede Nachricht das Modell von OpenAI, Anthropic, Google, xAI, Mistral, DeepSeek und mehr und zahle nur die Tokens, die du nutzt.",MODELS_FACT_COUNT:"Modelle zur Auswahl",MODELS_FACT_FROM:"pro Million Tokens, ab",MODELS_FACT_SWITCH:"Klick zum Wechseln, mitten im Gespr\xE4ch",MODELS_NOTE:"Die Preise stehen als Input / Output pro Million Tokens direkt in der Auswahl im Studio. Credits werden laufend abgezogen, du wei\xDFt also immer, was ein Build gekostet hat.",TOUR_LABEL:"DAS STUDIO",TOUR_TITLE:"Ein Fenster. Alles, was du zum Ver\xF6ffentlichen brauchst.",TOUR_SUB:"W\xE4hle ein Werkzeug. Vorschau, Anpassungen, Analyse und Ver\xF6ffentlichung \u2013 direkt neben deinem Gespr\xE4ch mit Qira.",TOUR:{PREVIEW_K:"Vorschau",PREVIEW_T:"Deine App, live, w\xE4hrend Qira sie baut.",PREVIEW_D:"Die Vorschau ist die echte App unter ihrer echten URL, kein Mock. Zur\xFCck, vor und neu laden wie im Browser, und bei Bedarf in einem neuen Fenster \xF6ffnen.",CODE_K:"Code",CODE_T:"Jede Datei geh\xF6rt dir, zum Lesen und Bearbeiten.",CODE_D:"Wechsle zu Code und der Dateibaum des Projekts liegt vor dir: Komponenten, Styles, Konfiguration. \xD6ffne jede Datei, bearbeite sie direkt, und Qira arbeitet mit deinen \xC4nderungen weiter.",SELECT_K:"Ausw\xE4hlen",SELECT_T:"Klicke ein Element an. Dann entscheide, was damit passiert.",SELECT_D:"Das Auswahl-Tool greift jedes Element der Seite. Schicke es mit deiner Anfrage an Qira, springe direkt zur Stelle im Code oder passe F\xFCllung, Rahmen, Abst\xE4nde und Text im Seitenpanel von Hand an.",NETWORK_K:"Netzwerk",NETWORK_T:"Sieh jede Anfrage, die deine App stellt.",NETWORK_D:"Die Netzwerk-Konsole listet jeden Aufruf mit Status, Methode, Dauer, Payload und Antwort. Wenn etwas nicht stimmt, schauen du und Qira auf dieselben Fakten.",DEVICES_K:"Ger\xE4te",DEVICES_T:"Pr\xFCfe es auf dem iPhone, bevor es jemand anderes tut.",DEVICES_D:"Schalte die Vorschau auf Desktop, iPad, iPhone 17, Galaxy S24 oder Xiaomi 14. Jeder Screen von Qira ist responsiv, und hier siehst du es.",SETTINGS_K:"Einstellungen",SETTINGS_T:"Deine Domain, dein Theme, ein Deploy-Button.",SETTINGS_D:"Verbinde eine eigene Domain oder w\xE4hle eine Subdomain, nimm eines der eingebauten Themes und deploye. Status, SSL und Hosting werden f\xFCr dich erledigt.",VERSIONS_K:"Versionen",VERSIONS_T:"Schreib auf, was sich ge\xE4ndert hat. Geh zur\xFCck, wenn n\xF6tig.",VERSIONS_D:"Jede Ver\xF6ffentlichung bekommt eine Notiz von dir, sodass die Historie wie ein Changelog liest. Stelle jede fr\xFChere Version mit einem Klick wieder her, ganz ohne Git.",OPEN_K:"In neuem Fenster \xF6ffnen",SEL_TO_QIRA:"An Qira senden",SEL_TO_CODE:"Im Code \xF6ffnen",DEV_DESKTOP:"Desktop",DEV_TABLET:"Tablet",DEV_MOBILE:"Mobil",VER_PUBLISHING:"Ver\xF6ffentlichung",VER_NOTE:"SMS-Erinnerungen f\xFCr Buchungen erg\xE4nzt und die Zeitzone im Kalender korrigiert",VER_CURRENT:"Aktuell",VER_RESTORE:"Wiederherstellen"},ONE_LABEL:"NICHT NUR DIE OBERFL\xC4CHE",ONE_TITLE:"Qira baut das Ganze.",ONE_SUB:"Andere Builder h\xF6ren beim Bildschirm auf. Qira schreibt auch, was dahinter l\xE4uft, im selben Gespr\xE4ch.",ONE_FRONTEND_T:"Frontend",ONE_FRONTEND_D:"Seiten, Komponenten, Formulare, Tabellen, Dashboards. Standardm\xE4\xDFig responsiv, passend zu deiner Marke.",ONE_FRONTEND_X:"React, gestylt, responsiv",ONE_BACKEND_T:"Backend",ONE_BACKEND_D:"APIs, Authentifizierung, Rollen, E-Mail-Kampagnen und die Workflows hinter jedem Button.",ONE_BACKEND_X:"APIs, Auth, Workflows",ONE_DATABASE_T:"Datenbank",ONE_DATABASE_D:"Tabellen und Relationen f\xFCr deine Daten, mit Lese- und Schreibzugriffen in den Seiten, die sie brauchen.",ONE_DATABASE_X:"Schema, Abfragen, Speicher",ONE_DEPLOY_T:"Domain & Deploy",ONE_DEPLOY_D:"Subdomain oder eigene Domain, SSL, Hosting und Versionen. Mit einem Klick live, mit einem weiteren zur\xFCck.",ONE_DEPLOY_X:"Hosting, SSL, Versionen",COMP_WITHOUT:"Der \xFCbliche Weg",COMP_STEP1:"Frontend-Projekt und Backend-Service aufsetzen",COMP_STEP2:"Abh\xE4ngigkeiten installieren und Tooling konfigurieren",COMP_STEP3:"Datenbankschema entwerfen und die API schreiben",COMP_STEP4
3:"Jede Seite bauen und mit dem Backend verbinden",COMP_STEP5:"Auth, Routing und responsives Styling umsetzen",COMP_STEP6:"Hosting, SSL und eine Domain konfigurieren",COMP_TIME_WITHOUT:"Tage bis Wochen",COMP_WITH:"Mit Qira",COMP_WITH_PROMPT:"\u201EBau mir ein CRM f\xFCr mein Coaching-Business mit Kunden, Buchungen, Zahlungen und E-Mail-Kampagnen.\u201C",COMP_TIME_WITH:"Ein Gespr\xE4ch",COMP_DONE1:"Frontend, Backend und Datenbank geschrieben",COMP_DONE2:"Theme gew\xE4hlt, responsiv auf jedem Ger\xE4t",COMP_DONE3:"Auf deiner Domain mit SSL deployt",COMP_DONE4:"Versioniert, du kannst jederzeit zur\xFCck",CTA_TITLE:"Fang an, mit Qira zu bauen",CTA_SUBTITLE:"Beschreibe, was du brauchst. Qira \xFCbernimmt den Rest: Frontend, Backend, Datenbank und Hosting.",CTA_START:"Kostenlos starten",CTA_CONTACT:"Kontakt aufnehmen",CTA_TRUST:"Keine Kreditkarte n\xF6tig \xB7 Kostenloser Tarif inklusive"},CONTACT:{HERO_LABEL:"KONTAKT",HERO_TITLE:"Lass uns reden",HERO_SUBTITLE:"Ob Ingenieur, Unternehmen oder einfach neugierig \u2013 wir freuen uns von dir zu h\xF6ren.",INFO_CHAT_TITLE:"Chatte mit uns",INFO_CHAT_DESC:"Unser Team hilft dir bei allen Fragen zur Plattform.",INFO_CHAT_DETAIL:"Antwort innerhalb von 24 Stunden",INFO_ENTERPRISE_TITLE:"Enterprise & Deployment",INFO_ENTERPRISE_DESC:"VPC-Deployment, On-Premise oder Compliance-Kontrollen n\xF6tig? Lass uns das gemeinsam planen.",INFO_ENTERPRISE_DETAIL:"Lass uns deine Anforderungen besprechen",INFO_COMMUNITY_TITLE:"Community",INFO_COMMUNITY_DESC:"Tritt unserer Discord-Community bei f\xFCr Tipps, Support und Feature-W\xFCnsche.",INFO_COMMUNITY_LINK:"Discord beitreten \u2192",FORM_TITLE:"Sende uns eine Nachricht",FORM_NAME_LABEL:"Name *",FORM_NAME_PLACEHOLDER:"Dein Name",FORM_NAME_REQUIRED:"Name ist erforderlich.",FORM_NAME_PATTERN:"Name darf nur Buchstaben, Leerzeichen, Bindestriche und Apostrophe enthalten.",FORM_EMAIL_LABEL:"E-Mail *",FORM_EMAIL_PLACEHOLDER:"[email protected]",FORM_EMAIL_REQUIRED:"E-Mail ist erforderlich.",FORM_EMAIL_INVALID:"Bitte gib eine g\xFCltige E-Mail-Adresse ein.",FORM_COMPANY_LABEL:"Unternehmen",FORM_COMPANY_PLACEHOLDER:"Dein Unternehmen (optional)",FORM_SUBJECT_LABEL:"Betreff",FORM_MESSAGE_LABEL:"Nachricht *",FORM_MESSAGE_PLACEHOLDER:"Erz\xE4hl uns von deinem Projekt oder deiner Frage...",FORM_MESSAGE_HINT_SUFFIX:"weitere(s) Zeichen ben\xF6tigt",FORM_MESSAGE_REQUIRED:"Nachricht ist erforderlich.",FORM_MESSAGE_MINLENGTH:"Nachricht muss mindestens 10 Zeichen lang sein.",FORM_SUBMIT:"Nachricht senden",FORM_SUBMITTING:"Wird gesendet...",FORM_JOIN_DISCORD:"Discord beitreten",SUBJECT_GENERAL:"Allgemeine Anfrage",SUBJECT_SALES:"Vertrieb & Preise",SUBJECT_SUPPORT:"Technischer Support",SUBJECT_PARTNERSHIP:"Partnerschaft",SUBJECT_LABS:"Ubex Labs \u2013 Als Ingenieur beitreten",SUBJECT_TRAINING:"Schulung",SUBJECT_FEEDBACK:"Feedback",PREFILL_ENTERPRISE_INTRO:"Anfrage f\xFCr einen Enterprise-Plan",PREFILL_ENTERPRISE_NEEDS:"Zus\xE4tzlich ben\xF6tigt",PREFILL_ENTERPRISE_OUTRO:"Bitte senden Sie ein Angebot f\xFCr dieses Setup.",SUCCESS_TITLE:"Nachricht gesendet!",SUCCESS_RESET_COOLDOWN:"Weitere Nachricht senden ({{seconds}}s)",SUCCESS_RESET:"Weitere Nachricht senden",STATS_RESPONSE:"24h",STATS_RESPONSE_LABEL:"Antwortzeit",STATS_FREE:"Kostenlos",STATS_FREE_LABEL:"Zum Starten",STATS_ONBOARDING:"1:1",STATS_ONBOARDING_LABEL:"Enterprise-Onboarding",FAQ_LABEL:"H\xC4UFIG GEFRAGT",FAQ_TITLE:"H\xE4ufige Fragen",FAQ_Q1:"Wie lange dauert das Enterprise-Onboarding?",FAQ_A1:"Die meisten Enterprise-Deployments sind innerhalb von 2-4 Wochen geplant und laufen, abh\xE4ngig von Infrastruktur und Compliance-Anforderungen.",FAQ_Q2:"K\xF6nnt ihr bei der Migration von einer anderen Plattform helfen?",FAQ_A2:"Ja. Wir arbeiten mit Teams zusammen, um bestehende Workflows, APIs und Daten-Pipelines zu Ubex zu migrieren. Kontaktiere uns, um dein Setup zu besprechen.",FAQ_Q3:"Bietet ihr individuelle Entwicklung an?",FAQ_A3:"F\xFCr Enterprise-Kunden bieten wir individuelle Workflow-Entwicklung und Integrationsservices an. Lass uns besprechen, was du brauchst.",FAQ_Q4:"Sind meine Daten sicher?",FAQ_A4:"Alle Daten werden bei \xDCbertragung und Speicherung verschl\xFCsselt. Enterprise-Pl\xE4ne beinhalten IP-Whitelisting, Audit-Logs und flexibles Deployment \u2013 Cloud, VPC oder On-Premise."},PRICING:{LABEL:"PREISE",TITLE:"Einfache, transparente Preise",SUBTITLE:"Einfache Pl\xE4ne, die mit dir wachsen. W\xE4hle eine Gr\xF6\xDFe und \xE4ndere sie jederzeit.",SUBTITLE_DETAIL_1:"W\xE4hle einen Plan f\xFCr Workflow-Ausf\xFChrungen. Skaliere von Lite bis On-Premise.",SUBTITLE_DETAIL_2:"KI-Nutzung ist separat \u2013 verbinde deine eigenen Schl\xFCssel oder nutze unsere verwalteten Credits.",MONTHLY:"Monatlich",ANNUALLY:"J\xE4hrlich",SAVE_BADGE:"17% sparen",PER_MO_ANNUAL:"/Mo, j\xE4hrlich abgerechnet",PER_MO_MONTHLY:"/Mo, monatlich abgerechnet",RUNS_PER_MONTH:"Workflow-Ausf\xFChrungen / Monat",UNLIMITED_NODES:"unbegrenzte Nodes pro Workflow",CLOUD_HOSTED:"Cloud-gehostet",CLOUD:"Cloud",OR:"oder",SELF_HOSTED:"Self-hosted",ON_PREMISE:"On-Premise",INCLUDES:"Enth\xE4lt:",NO_CREDIT_CARD:"Keine Kreditkarte erforderlich",MOST_POPULAR:"Am beliebtesten",FREE_NAME:"Free",FREE_DESC:"Starte und erkunde die Plattform kostenlos.",FREE_PERIOD:"f\xFCr immer kostenlos",FREE_RESETS:"wird monatlich zur\xFCckgesetzt",FREE_CTA:"Kostenlos starten",FREE_F1:"1 Projekt",FREE_F2:"2 parallele Ausf\xFChrungen",FREE_F3:"Alle Node-Typen",FREE_F4:"Eigene API-Schl\xFCssel nutzen",FREE_F5:"Community-Support",FREE_AI_NOTE:"Keine KI-Credits n\xF6tig",LITE_
3NAME:"Lite",LITE_DESC:"F\xFCr Einzelpersonen und kleine Projekte zum Einstieg.",LITE_CTA:"Hier starten",LITE_HOSTING:"1 Anwendung hosten",LITE_INCLUDES:"Enth\xE4lt:",LITE_F1:"1 Workspace",LITE_F2:"3 Projekte",LITE_F3:"2 parallele Ausf\xFChrungen",LITE_F4:"1 GB Speicher",LITE_F5:"Alle LLM-Anbieter",LITE_F6:"7 Tage Ausf\xFChrungshistorie",LITE_F7:"E-Mail-Support",LITE_AI_NOTE:"KI-Credits als Add-on verf\xFCgbar",STARTER_NAME:"Starter",STARTER_DESC:"F\xFCr Teams, die echte Anwendungen bauen.",STARTER_CTA:"Jetzt starten",STARTER_HOSTING:"2 Anwendungen hosten",STARTER_INCLUDES:"Alles aus Lite, plus:",STARTER_F1:"3 Workspaces",STARTER_F2:"10 Projekte",STARTER_F3:"5 parallele Ausf\xFChrungen",STARTER_F4:"5 GB Speicher",STARTER_F5:"15 Tage Ausf\xFChrungshistorie",STARTER_F6:"Team-Zusammenarbeit (3 Pl\xE4tze)",STARTER_F7:"Priorisierter E-Mail-Support",STARTER_AI_NOTE:"5 \u20AC KI-Credits mtl. inklusive",PRO_NAME:"Pro",PRO_DESC:"F\xFCr wachsende Teams, die Skalierung, Kontrolle und Self-Hosted-Deployment brauchen.",PRO_CTA:"Jetzt starten",PRO_HOSTING:"3 Anwendungen hosten",PRO_INCLUDES:"Alles aus Starter, plus:",PRO_F1:"Unbegrenzte Projekte",PRO_F2:"20 parallele Ausf\xFChrungen",PRO_F3:"25 GB Speicher",PRO_F4:"30 Tage Ausf\xFChrungshistorie",PRO_F5:"SSO / SAML",PRO_F6:"Staging-Umgebungen",PRO_F7:"Eigene Domains",PRO_F8:"Team-Pl\xE4tze (5 inklusive)",PRO_AI_NOTE:"25 \u20AC KI-Credits mtl. inklusive",ENTERPRISE_BADGE:"Enterprise",ENTERPRISE_NAME:"Enterprise",ENTERPRISE_DESC:"Compliance, Sicherheit und volle Deployment-Kontrolle.",ENTERPRISE_PRICE:"Lass uns reden",ENTERPRISE_VOLUME:"Individuelles Volumen",ENTERPRISE_TAILORED:"auf deine Bed\xFCrfnisse zugeschnitten",ENTERPRISE_CTA:"Vertrieb kontaktieren",ENTERPRISE_HOSTING:"Individuelles Anwendungs-Hosting",ENTERPRISE_INCLUDES:"Alles aus Pro, plus:",ENTERPRISE_F1:"Unbegrenzte parallele Ausf\xFChrungen",ENTERPRISE_F2:"365 Tage Datenspeicherung",ENTERPRISE_F3:"Audit-Logs & Auto-Audit",ENTERPRISE_F4:"VPC- oder On-Premise-Deployment",ENTERPRISE_F5:"KI-Governance-Alignment (in Arbeit)",ENTERPRISE_F6:"DSGVO- & SOC 2-Kontrollen",ENTERPRISE_F7:"Individuelle Integrationen",ENTERPRISE_F8:"Dedizierter Account Manager",ENTERPRISE_F9:"SLA-Garantie",ENTERPRISE_F10:"Rechnungsstellung",ENTERPRISE_AI_NOTE:"Individuelles KI-Credits-Paket",COMPARISON_TITLE:"Deployment & Compliance nach Plan",TABLE_APP_HOSTING:"Anwendungs-Hosting",TABLE_1_APP:"1 App",TABLE_2_APPS:"2 Apps",TABLE_3_APPS:"3 Apps",TABLE_CUSTOM:"Individuell",TABLE_DEPLOYMENT:"Deployment",TABLE_CLOUD_OR_SELF:"Cloud oder Self-Hosted",TABLE_CLOUD_VPC_ONPREM:"Cloud, VPC oder On-Premise",TABLE_DATA_RETENTION:"Datenspeicherung",TABLE_7_DAYS:"7 Tage",TABLE_15_DAYS:"15 Tage",TABLE_30_DAYS:"30 Tage",TABLE_365_DAYS:"365 Tage",TABLE_STAGING:"Staging-Umgebungen",TABLE_AUDIT_LOGS:"Audit-Logs",TABLE_SOC2_GDPR:"SOC 2 & DSGVO-Kontrollen",TABLE_EU_AI_ACT:"KI-Governance-Alignment (in Arbeit)",CREDITS_TITLE:"KI-Credits",CREDITS_DESC:"Credits funktionieren mit allen KI-Anbietern \u2013 OpenAI, Anthropic, Google und mehr. Oder \xFCberspringe Credits komplett und verbinde deine eigenen API-Schl\xFCssel.",CREDITS_KEYS_TITLE:"Deine Schl\xFCssel:",CREDITS_KEYS_DESC:"Verbinde deine eigenen Anbieter-Schl\xFCssel und zahle direkt",CREDITS_OUR_TITLE:"Unsere Credits:",CREDITS_OUR_DESC:"Nutze verwaltete Verbindungen ohne Anbieter-Konten einzurichten",CREDITS_TRANSPARENT_TITLE:"Transparent:",CREDITS_TRANSPARENT_DESC:"Zahle nur f\xFCr verbrauchte Tokens, kein Aufschlag",CREDITS_FLEXIBLE_TITLE:"Flexibel:",CREDITS_FLEXIBLE_DESC:"Mische beides \u2013 deine Schl\xFCssel f\xFCr einige Modelle, Credits f\xFCr andere",CREDITS_POPULAR:"Beliebt",CREDITS_10_DESC:"Reicht f\xFCr ~500k Tokens (GPT-4o)",CREDITS_25_DESC:"Reicht f\xFCr ~1,25M Tokens (GPT-4o)",CREDITS_50_DESC:"Reicht f\xFCr ~2,5M Tokens (GPT-4o)",FAQ_TITLE:"H\xE4ufig gestellte Fragen",FAQ1_Q:"Muss ich programmieren k\xF6nnen?",FAQ1_A:"Nein. Qira kann f\xFCr dich aus einfachen Beschreibungen bauen \u2013 sie nutzt KI-Credits von deinem Konto. Entwickler k\xF6nnen auch den visuellen Canvas und Code-Nodes f\xFCr volle Kontrolle nutzen.",FAQ2_Q:"Was kann ich mit Ubex bauen?",FAQ2_A:"Apps, Automatisierungen, KI-Chatbots, Daten-Pipelines, Buchungssysteme, Dashboards, interne Tools \u2013 alles von einem einfachen Workflow bis zur Full-Stack-Anwendung.",FAQ3_Q:'Was z\xE4hlt als "Workflow-Ausf\xFChrung"?',FAQ3_A:"Jedes Mal, wenn ein Workflow von Anfang bis Ende ausgef\xFChrt wird, ist das eine Ausf\xFChrung \u2013 unabh\xE4ngig davon, wie viele Nodes oder Schritte darin enthalten sind.",FAQ4_Q:"Wie funktionieren KI-Credits?",FAQ4_A:"Credits werden basierend auf verarbeiteten Tokens verbraucht. Jedes Modell hat unterschiedliche Raten. Du kannst auch deine eigenen Anbieter-Schl\xFCssel verbinden \u2013 keine Credits n\xF6tig.",FAQ5_Q:"Brauche ich eine Kreditkarte zum Starten?",FAQ5_A:"Nein. Der Free-Plan ist komplett kostenlos \u2013 keine Kreditkarte, kein Zeitlimit. Fang an zu bauen und upgrade, wenn du bereit bist.",FAQ6_Q:"Kann ich meinen Plan sp\xE4ter \xE4ndern?",FAQ6_A:"Jederzeit. Upgrade, Downgrade oder K\xFCndigung in deinen Kontoeinstellungen. Anteilige Berechnung erfolgt automatisch.",FAQ7_Q:"Werden ungenutzte Credits \xFCbertragen?",FAQ7_A:"Gekaufte KI-Credits verfallen nie. Monatlich enthaltene Credits (Starter/Pro) werden jeden Abrechnungszyklus zur\xFCckgesetzt und nicht \xFCbertragen.",FAQ8_Q:"Kann ich Teammitglieder hinzuf\xFCgen?",FAQ8_A:"Starter enth\xE4lt 3 Team-Pl\xE4tze, Pro enth\xE4lt 5 und Enterprise bietet unbegrenzte Pl\xE4tze. Alle Pl\xE4ne unterst\xFCtzen rollenbasierten Zugriff.",FAQ9_Q:"Welche Deployment-Optionen gibt es?",FAQ9_A:"Free bis Starter laufen auf Managed Cloud. Pro bietet zus\xE4tzlich Self-Hosted-Deployment. Enterprise bietet VPC und vollst\xE4ndige On-Premise-Optionen.",BUILD_RUNS:"Workflow-Ausf\xFChrungen / Monat",BUILD_APPS:"Zu hostende Anwendungen",BUILD_SEATS:"Team-Pl\xE4tze",BUILD_CREDITS:"KI-Credits / Monat",BUILD_RECOMMENDED:"Empfohlener Plan",BUILD_ESTIMATE:"Gesch\xE4tzte Monatssumme",BUILD_CUSTOM:"Individuelles Angebot",BUILD_PER_MONTH:"pro Monat",VPC:"VPC",ENT_TITLE:"Stelle deinen Enterprise-Plan zusammen",ENT_DESC:"Lege die Volumen fest, die du wirklich brauchst, und wo alles l\xE4uft. Wir kalkulieren die
3Vereinbarung darauf \u2013 nicht auf eine Stufe.",ENT_DEPLOYMENT:"Deployment",ENT_NEEDS:"Erg\xE4nze, was du brauchst",ENT_NEED_SLA:"SLA & dedizierter Support",ENT_NEED_AUDIT:"Audit-Logs & Compliance",ENT_NEED_INTEGRATIONS:"Individuelle Integrationen",ENT_NEED_TRAINING:"Onboarding & Schulung",ENT_SUMMARY:"Deine Konfiguration",ENT_TALK_ANYWAY:"Trotzdem mit dem Vertrieb sprechen",ENT_NOTE:"Wir antworten innerhalb eines Werktags mit einem schriftlichen Angebot. Es wird nichts berechnet, bevor du unterschreibst.",ENT_INCLUDED_TITLE:"In jeder Enterprise-Vereinbarung enthalten"},PRIVACY:{LABEL:"RECHTLICHES",TITLE:"Datenschutzrichtlinie",LAST_UPDATED:"Zuletzt aktualisiert: Februar 2026",TOC_TITLE:"Inhalt",TOC_INTRO:"Einleitung",TOC_COLLECTION:"1. Informationen, die wir erheben",TOC_USE:"2. Wie wir Ihre Informationen verwenden",TOC_SHARING:"3. Weitergabe von Informationen",TOC_SECURITY:"4. Datensicherheit",TOC_RETENTION:"5. Datenspeicherung",TOC_RIGHTS:"6. Ihre Rechte",TOC_COOKIES:"7. Cookies",TOC_CHILDREN:"8. Datenschutz f\xFCr Kinder",TOC_CHANGES:"9. \xC4nderungen der Richtlinie",TOC_CONTACT:"10. Kontakt",INTRO_TITLE:"Einleitung",INTRO_P1:'Bei Ubex AI ("wir", "uns" oder "unser") sind wir dem Schutz Ihrer Privatsph\xE4re und der Sicherheit Ihrer pers\xF6nlichen Daten verpflichtet. Diese Datenschutzrichtlinie erkl\xE4rt, wie wir Ihre Informationen erheben, verwenden, offenlegen und sch\xFCtzen, wenn Sie unsere Plattform und Dienste nutzen.',INTRO_P2:"Durch die Nutzung unserer Dienste stimmen Sie der Erhebung und Verwendung von Informationen gem\xE4\xDF die
3ser Richtlinie zu. Wenn Sie mit unseren Richtlinien und Praktiken nicht einverstanden sind, nutzen Sie unsere Dienste bitte nicht.",COLLECTION_TITLE:"1. Informationen, die wir erheben",COLLECTION_PROVIDED_TITLE:"1.1. Von Ihnen bereitgestellte Informationen",COLLECTION_ACCOUNT:"Kontoinformationen:",COLLECTION_ACCOUNT_DESC:"Name, E-Mail-Adresse, Passwort und Profildetails bei der Kontoerstellung.",COLLECTION_PAYMENT:"Zahlungsinformationen:",COLLECTION_PAYMENT_DESC:"Rechnungsadresse und Zahlungsmethode f\xFCr kostenpflichtige Abonnements.",COLLECTION_COMMS:"Kommunikation:",COLLECTION_COMMS_DESC:"Informationen, die Sie bei der Kontaktaufnahme mit unserem Support-Team bereitstellen.",COLLECTION_CONTENT:"Nutzerinhalte:",COLLECTION_CONTENT_DESC:"Prompts, Eingaben und Inhalte, die Sie mit unseren Diensten erstellen.",COLLECTION_AUTO_TITLE:"1.2. Automatisch erhobene Informationen",COLLECTION_USAGE:"Nutzungsdaten:",COLLECTION_USAGE_DESC:"Informationen dar\xFCber, wie Sie mit unseren Diensten interagieren, einschlie\xDFlich genutzter Funktionen und verbrachter Zeit.",COLLECTION_DEVICE:"Ger\xE4teinformationen:",COLLECTION_DEVICE_DESC:"Browsertyp, Betriebssystem, Ger\xE4tekennungen und IP-Adresse.",COLLECTION_LOG:"Protokolldaten:",COLLECTION_LOG_DESC:"Serverprotokolle einschlie\xDFlich Zugriffszeiten, angesehener Seiten und verweisender URLs.",USE_TITLE:"2. Wie wir Ihre Informationen verwenden",USE_INTRO:"Wir verwenden die erhobenen Informationen, um:",USE_1:"Unsere Dienste bereitzustellen, zu warten und zu verbessern",USE_2:"Transaktionen zu verarbeiten und zugeh\xF6rige Informationen zu senden",USE_3:"Technische Hinweise, Updates und Support-Nachrichten zu senden",USE_4:"Auf Ihre Kommentare, Fragen und Anfragen zu antworten",USE_5:"Trends, Nutzung und Aktivit\xE4ten zu \xFCberwachen und zu analysieren",USE_6:"Betr\xFCgerische Transaktionen und Missbrauch zu erkennen, zu untersuchen und zu verhindern",USE_7:"Ihre Erfahrung zu personalisieren und zu verbessern",USE_8:"Neue Produkte, Dienste und Funktionen zu entwickeln",SHARING_TITLE:"3. Weitergabe von Informationen",SHARING_INTRO:"Wir k\xF6nnen Ihre Informationen unter folgenden Umst\xE4nden weitergeben:",SHARING_PROVIDERS:"Dienstleister:",SHARING_PROVIDERS_DESC:"An Drittanbieter, die Dienste in unserem Auftrag erbringen (Zahlungsabwicklung, Hosting, Analysen).",SHARING_LEGAL:"Gesetzliche Anforderungen:",SHARING_LEGAL_DESC:"Wenn gesetzlich vorgeschrieben oder zur Beantwortung rechtlicher Verfahren.",SHARING_PROTECTION:"Schutz:",SHARING_PROTECTION_DESC:"Zum Schutz der Rechte, des Eigentums und der Sicherheit von Ubex AI, unseren Nutzern oder anderen.",SHARING_TRANSFERS:"Gesch\xE4fts\xFCbertragungen:",SHARING_TRANSFERS_DESC:"Im Zusammenhang mit einer Fusion, \xDCbernahme oder einem Verkauf von Verm\xF6genswerten.",SHARING_CONSENT:"Mit Ihrer Zustimmung:",SHARING_CONSENT_DESC:"Wenn Sie uns ausdr\xFCcklich die Erlaubnis zur Weitergabe Ihrer Informationen erteilt haben.",SHARING_NO_SELL:"Wir verkaufen Ihre pers\xF6nlichen Daten nicht an Dritte.",SECURITY_TITLE:"4. Datensicherheit",SECURITY_P1:"Wir implementieren angemessene technische und organisatorische Ma\xDFnahmen zum Schutz Ihrer pers\xF6nlichen Daten gegen unbefugten Zugriff, \xC4nderung, Offenlegung oder Zerst\xF6rung.",SECURITY_INTRO:"Diese Ma\xDFnahmen umfassen:",SECURITY_1:"Verschl\xFCsselung von Daten bei der \xDCbertragung und im Ruhezustand",SECURITY_2:"Regelm\xE4\xDFige Sicherheitsbewertungen und Penetrationstests",SECURITY_3:"Zugriffskontrollen und Authentifizierungsmechanismen",SECURITY_4:"Mitarbeiterschulungen zum Datenschutz",SECURITY_5:"Verfahren zur Reaktion auf Vorf\xE4lle",SECURITY_DISCLAIMER:"Obwohl wir uns bem\xFChen, Ihre Informationen zu sch\xFCtzen, ist keine \xDCbertragungsmethode \xFCber das Internet zu 100 % sicher. Wir k\xF6nnen keine absolute Sicherheit garantieren.",RETENTION_TITLE:"5. Datenspeicherung",RETENTION_P1:"Wir bewahren Ihre pers\xF6nlichen Daten so lange auf, wie es zur Erf\xFCllung der Zwecke erforderlich ist, f\xFCr die sie erhoben wurden, einschlie\xDFlich zur Erf\xFCllung gesetzlicher, buchhalterischer oder berichtspflichtiger Anforderungen.",RETENTION_P2:"Wenn Sie Ihr Konto l\xF6schen, werden wir Ihre pers\xF6nlichen Daten innerhalb von 30 Tagen l\xF6schen oder anonymisieren, es sei denn, wir sind gesetzlich verpflichtet, sie aufzubewahren.",RIGHTS_TITLE:"6. Ihre Rechte",RIGHTS_INTRO:"Je nach Ihrem Standort haben Sie m\xF6glicherweise folgende Rechte:",RIGHTS_ACCESS:"Auskunft:",RIGHTS_ACCESS_DESC:"Fordern Sie eine Kopie der pers\xF6nlichen Daten an, die wir \xFCber Sie gespeichert haben.",RIGHTS_CORRECTION:"Beric
3htigung:",RIGHTS_CORRECTION_DESC:"Fordern Sie die Berichtigung ungenauer oder unvollst\xE4ndiger Informationen an.",RIGHTS_DELETION:"L\xF6schung:",RIGHTS_DELETION_DESC:"Fordern Sie die L\xF6schung Ihrer pers\xF6nlichen Daten an.",RIGHTS_PORTABILITY:"Daten\xFCbertragbarkeit:",RIGHTS_PORTABILITY_DESC:"Fordern Sie eine Kopie Ihrer Daten in einem portablen Format an.",RIGHTS_OBJECTION:"Widerspruch:",RIGHTS_OBJECTION_DESC:"Widersprechen Sie der Verarbeitung Ihrer pers\xF6nlichen Daten.",RIGHTS_RESTRICTION:"Einschr\xE4nkung:",RIGHTS_RESTRICTION_DESC:"Fordern Sie die Einschr\xE4nkung der Verarbeitung unter bestimmten Umst\xE4nden an.",RIGHTS_CONTACT:"Um diese Rechte auszu\xFCben, kontaktieren Sie uns bitte unter",COOKIES_TITLE:"7. Cookies und Tracking",COOKIES_P1:"Wir verwenden Cookies und \xE4hnliche Tracking-Technologien, um Informationen \xFCber Ihre Aktivit\xE4ten auf unseren Diensten zu sammeln und zu verfolgen.",COOKIES_TYPES_TITLE:"Arten von Cookies, die wir verwenden:",COOKIES_ESSENTIAL:"Essentielle Cookies:",COOKIES_ESSENTIAL_DESC:"Erforderlich f\xFCr den Betrieb unserer Dienste.",COOKIES_ANALYTICS:"Analyse-Cookies:",COOKIES_ANALYTICS_DESC:"Helfen uns zu verstehen, wie Besucher mit unseren Diensten interagieren.",COOKIES_PREFERENCE:"Pr\xE4ferenz-Cookies:",COOKIES_PREFERENCE_DESC:"Merken sich Ihre Einstellungen und Pr\xE4ferenzen.",COOKIES_CONTROL:"Sie k\xF6nnen Cookies \xFCber Ihre Browsereinstellungen steuern. Beachten Sie, dass das Deaktivieren bestimmter Cookies die Funktionalit\xE4t unserer Dienste beeintr\xE4chtigen kann.",CHILDREN_TITLE:"8. Datenschutz f\xFCr Kinder",CHILDREN_P1:"Unsere Dienste sind nicht f\xFCr Kinder unter 18 Jahren bestimmt. Wir erheben wissentlich keine pers\xF6nlichen Daten von Kindern unter 18 Jahren. Wenn wir erfahren, dass wir Daten eines Kindes unter 18 Jahren erhoben haben, werden wir diese umgehend l\xF6schen.",CHANGES_TITLE:"9. \xC4nderungen dieser Richtlinie",CHANGES_P1:'Wir k\xF6nnen diese Datenschutzrichtlinie von Zeit zu Zeit aktualisieren. Wir werden Sie \xFCber \xC4nderungen informieren, indem wir die neue Datenschutzrichtlinie auf dieser Seite ver\xF6ffentlichen und das Datum "Zuletzt aktualisiert" aktualisieren.',CHANGES_P2:"Wir empfehlen Ihnen, diese Datenschutzrichtlinie regelm\xE4\xDFig auf \xC4nderungen zu \xFCberpr\xFCfen. \xC4nderungen werden wirksam, wenn sie auf dieser Seite ver\xF6ffentlicht werden.",CONTACT_TITLE:"10. Kontakt",CONTACT_P1:"Wenn Sie Fragen zu dieser Datenschutzrichtlinie oder unseren Datenpraktiken haben, kontaktieren Sie uns bitte:",QUESTIONS:"Fragen?",QUESTIONS_DESC:"Wenn Sie Fragen zu dieser Datenschutzrichtlinie haben, kontaktieren Sie uns bitte unter"},TERMS:{LABEL:"RECHTLICHES",TITLE:"Nutzungsbedingungen",LAST_UPDATED:"Zuletzt aktualisiert: Februar 2026",TOC_TITLE:"Inhalt",TOC_PREAMBLE:"Pr\xE4ambel",TOC_DEFINITIONS:"1. Definitionen",TOC_PURPOSE:"2. Zweck und Geltungsbereich",TOC_ACCEPTANCE:"3. Annahme",TOC_ACCESS:"4. Zugang zu den Diensten",TOC_SUBSCRIPTION:"5. Abonnement",TOC_FEES:"6. Geb\xFChren und Zahlung",TOC_OBLIGATIONS:"7. Ihre Pflichten",TOC_IP:"8. Geistiges Eigentum",TOC_LIABILITY:"9. Haftung",TOC_TERMINATION:"10. K\xFCndigung",PREAMBLE_TITLE:"Pr\xE4ambel",PREAMBLE_P1:'Willkommen bei Ubex! Unsere Plattform bietet Zugang zu den KI-Modellen von Ubex AI f\xFCr Textgenerierung sowie eine Reihe erg\xE4nzender Dienste (die "Dienste").',PREAMBLE_P2:'Diese Vereinbarung (die "Vereinbarung") wird zwischen Ubex AI, einem auf KI-L\xF6sungen spezialisierten Unternehmen ("Ubex AI" oder "Wir") und jeder Person geschlossen, die die Dienste nutzt, darauf zugreift oder sie abonniert ("Sie" oder der "Kunde").',PREAMBLE_P3:"Diese Nutzungsbedingungen gelten f\xFCr jedes Abonnement, jede Nutzung und/oder jeden Zugriff auf die Dienste durch Sie. Durch das Abonnieren, den Zugriff oder die Nutzung der Dienste erkl\xE4ren Sie sich ausdr\xFCcklich mit dieser Vereinbarung einverstanden.",DEFINITIONS_TITLE:"1. Definitionen",DEFINITIONS_INTRO:"Die gro\xDFgeschriebenen Begriffe in diesem Dokument haben die nachstehend festgelegte Bedeutung:",DEF_ACCOUNT:'"Konto"',DEF_ACCOUNT_DESC:"bezeichnet Ihr Konto auf der Plattform.",DEF_AGREEMENT:'"Vereinbarung"',DEF_AGREEMENT_DESC:"bezeichnet die zwischen Ubex AI und Ihnen geschlossene Vereinbarung, bestehend aus diesen Nutzungsbedingungen, den geltenden Servicebedingungen und allen hierin genannten Materialien.",DEF_PLATFORM:'"Plattform"',DEF_PLATFORM_DESC:"bezeichnet die Ubex-Website und -Anwendung, \xFCber die die Dienste bereitgestellt werden.",DEF_SERVICES:'"Dienste"',DEF_SERVICES_DESC:"bezeichnet alle von Ubex AI bereitgestellten Produkte, Funktionen und Funktionalit\xE4ten.",DEF_SUBSCRIPTION:'"Abonnement"',DEF_SUBSCRIPTION_DESC:"bezeichnet Ihre Registrierung f\xFCr den Zugang und die Nutzung der Dienste.",DEF_PLAN:'"Abonnementplan"',DEF_PLAN_DESC:"bezeichnet die spezifische Stufe der Dienste, die Sie abonniert haben.",PURPOSE_TITLE:"2. Zweck und Geltungsbereich",PURPOSE_SUBTITLE:"2.1. Zweck",PURPOSE_P1:"Zweck dieser Vereinbarung ist es, die Rechte und Pflichten der Parteien im Zusammenhang mit Ihrer Nutzung der Dienste zu beschreiben.",SCOPE_SUBTITLE:"2.2. Geltungsbereich",SCOPE_P1:"Diese Nutzungsbedingungen gelten f\xFCr jedes Abonnement, jeden Zugriff auf oder jede Nutzung der Dienste durch Sie auf der Plattform oder \xFCber einen Marktplatz.",SCOPE_P2:"Einige Dienste k\xF6nnen zus\xE4tzlichen, f\xFCr diesen Dienst spezifischen Bedingungen unterliegen, wie in den geltenden Servicebedingungen festgelegt. Durch den Zugriff auf oder die Nutzung eines von den Servicebedingungen abgedeckten Dienstes stimmen Sie auch diesen Servicebedingungen zu.",ACCEPTANCE_TITLE:"3. Annahme",ACCEPTANCE_P1:"Jeder Zugriff auf oder jede Nutzung der Dienste durch Sie impliziert Ihre vorbehaltlose Zustimmung zu diesen Nutzungsbedingungen. Sie m\xFCssen diese Nutzungsbedingungen sorgf\xE4ltig lesen, bevor Sie die Dienste nutzen.",ACCEPTANCE_P2:'Durch Klicken auf "Ich stimme zu" (oder eine \xE4hnliche Schaltfl\xE4che oder ein Kontrollk\xE4stchen auf der Plattform) bei der Anmeldung f\xFCr einen Dienst erkl\xE4ren Sie sich ausdr\xFCcklich mit dieser Vereinbarung einverstanden.',ACCEPTANCE_P3:"Wenn Sie den Bedingungen dieser Vereinbarung im Namen Ihres Arbeitgebers oder einer juristischen Person zustimmen, garantieren und versichern Sie, dass Sie die Befugnis haben, in deren Namen zu handeln und diese Bedingungen zu akzeptieren.",ACCESS_TITLE:"4. Zugang zu unseren Die
3nsten",ACCESS_REQ_SUBTITLE:"4.1. Voraussetzungen",ACCESS_AGE:"Altersbeschr\xE4nkung:",ACCESS_AGE_DESC:"Sie m\xFCssen mindestens achtzehn (18) Jahre alt sein, um unsere Dienste zu nutzen.",ACCESS_TECH:"Technische Voraussetzungen:",ACCESS_TECH_DESC:"Sie ben\xF6tigen einen Computer oder ein kompatibles Ger\xE4t und eine Hochgeschwindigkeits-Internetverbindung, um auf die Dienste zuzugreifen.",ACCESS_COSTS:"Kosten:",ACCESS_COSTS_DESC:"Sofern nicht anders angegeben, sind die Kosten f\xFCr technische Voraussetzungen allein von Ihnen zu tragen.",ACCESS_ACCOUNT_SUBTITLE:"4.2. Ihr Konto",ACCESS_ACCOUNT_P1:"Sie m\xFCssen ein Konto auf der Plattform erstellen, um die Dienste zu nutzen. Sie m\xFCssen vollst\xE4ndige, korrekte und aktuelle Informationen angeben und diese bei \xC4nderungen umgehend aktualisieren.",ACCESS_ACCOUNT_P2:"Ihr Konto ist nur f\xFCr Ihre Nutzung bestimmt. Sie d\xFCrfen Ihr Konto ohne vorherige schriftliche Zustimmung von Ubex nicht mit Dritten teilen. Sie sind allein verantwortlich f\xFCr alle \xFCber Ihr Konto durchgef\xFChrten Aktionen.",SUBSCRIPTION_TITLE:"5. Abonnement der Dienste",SUBSCRIPTION_FREE_SUBTITLE:"5.1. Kostenlose Dienste",SUBSCRIPTION_FREE_P1:"Um auf kostenlose Dienste zuzugreifen, m\xFCssen Sie Ihr Konto erstellen und diese Vereinbarung akzeptieren.",SUBSCRIPTION_PAID_SUBTITLE:"5.2. Kostenpflichtige Dienste",SUBSCRIPTION_PAID_INTRO:"Um kostenpflichtige Dienste zu abonnieren, m\xFCssen Sie:",SUBSCRIPTION_PAID_1:"Ihr Konto gem\xE4\xDF die
3sen Bedingungen erstellen",SUBSCRIPTION_PAID_2:"Ihren Abonnementplan w\xE4hlen",SUBSCRIPTION_PAID_3:"Ihre Zahlungsmethode w\xE4hlen",SUBSCRIPTION_PAID_4:"Ihre Zahlungs- und Rechnungsinformationen angeben",SUBSCRIPTION_PAID_5:"Diese Vereinbarung akzeptieren",SUBSCRIPTION_PAID_6:"Ihr Abonnement \xFCberpr\xFCfen und best\xE4tigen",FEES_TITLE:"6. Geb\xFChren und Zahlung",FEES_P1:"Die Geb\xFChren f\xFCr kostenpflichtige Dienste sind wie auf der Plattform beschrieben. Sie m\xFCssen genaue Zahlungsinformationen angeben und diese aktuell halten.",FEES_P2:"Ubex beh\xE4lt sich das Recht vor, Ihr Abonnement bei Verdacht auf Betrug oder Falschdarstellung abzulehnen. In solchen F\xE4llen werden vorausbezahlte Geb\xFChren erstattet.",OBLIGATIONS_TITLE:"7. Ihre Pflichten",OBLIGATIONS_INTRO:"Sie verpflichten sich:",OBLIGATIONS_1:"Die Dienste in \xDCbereinstimmung mit allen geltenden Gesetzen und Vorschriften zu nutzen",OBLIGATIONS_2:"Die Dienste nicht f\xFCr illegale oder unbefugte Zwecke zu nutzen",OBLIGATIONS_3:"Nicht zu versuchen, unbefugten Zugang zu Teilen der Dienste zu erlangen",OBLIGATIONS_4:"Die Dienste oder Server nicht zu st\xF6ren oder zu beeintr\xE4chtigen",OBLIGATIONS_5:"Die Dienste nicht zur Erstellung sch\xE4dlicher, missbr\xE4uchlicher oder illegaler Inhalte zu nutzen",OBLIGATIONS_6:"Die Sicherheit Ihrer Kontodaten zu wahren",IP_TITLE:"8. Geistiges Eigentum",IP_P1:"Alle geistigen Eigentumsrechte an den Diensten, einschlie\xDFlich, aber nicht beschr\xE4nkt auf Software, Algorithmen, Modelle und Dokumentation, geh\xF6ren Ubex AI oder seinen Lizenzgebern.",IP_P2:"Sie behalten das Eigentum an allen Inhalten, die Sie mit den Diensten erstellen, vorbehaltlich der zugrunde liegenden geistigen Eigentumsrechte von Ubex AI.",LIABILITY_TITLE:"9. Haftung",LIABILITY_P1:'Die Dienste werden "wie besehen" ohne jegliche Gew\xE4hrleistung bereitgestellt. Ubex AI haftet nicht f\xFCr indirekte, zuf\xE4llige, besondere oder Folgesch\xE4den.',LIABILITY_P2:"Die Gesamthaftung von Ubex AI darf die von Ihnen f\xFCr die Dienste in den zw\xF6lf (12) Monaten vor dem Anspruch gezahlten Betr\xE4ge nicht \xFCbersteigen.",TERMINATION_TITLE:"10. K\xFCndigung",TERMINATION_P1:"Sie k\xF6nnen Ihr Konto jederzeit deaktivieren, indem Sie [email protected] kontaktieren. Bei kostenpflichtigen Diensten unterliegt die K\xFCndigung den Bedingungen Ihres Abonnementplans.",TERMINATION_P2:"Ubex beh\xE4lt sich das Recht vor, Ihr Konto zu sperren oder zu k\xFCndigen, wenn Sie gegen diese Nutzungsbedingungen versto\xDFen oder die Dienste unbefugt nutzen.",QUESTIONS:"Fragen?",QUESTIONS_DESC:"Wenn Sie Fragen zu diesen Nutzungsbedingungen haben, kontaktieren Sie uns bitte unter"},CONSENT:{TITLE:"Wir respektieren Ihre Privatsph\xE4re",DESC:"Wir verwenden Cookies, um Ihre Erfahrung zu verbessern, den Datenverkehr zu analysieren und Inhalte zu personalisieren. Sie k\xF6nnen w\xE4hlen, welche Cookies Sie zulassen m\xF6chten. Lesen Sie unsere ",PRIVACY_LINK:"Datenschutzerkl\xE4rung",ACCEPT:"Alle akzeptieren",REJECT:"Alle ablehnen",CUSTOMIZE:"Anpassen",CUSTOMIZE_TITLE:"Cookie-Einstellungen",CUSTOMIZE_DESC:"W\xE4hlen Sie, welche Cookies Sie zulassen m\xF6chten. Essentielle Cookies sind immer aktiv, da sie f\xFCr die Funktion der Website erforderlich sind.",CAT_ESSENTIAL:"Essentiell",CAT_ESSENTIAL_DESC:"Erforderlich f\xFCr die Funktion der Website. Diese k\xF6nnen nicht deaktiviert werden.",ALWAYS_ON:"Immer aktiv",CAT_ANALYTICS:"Analyse",CAT_ANALYTICS_DESC:"Helfen uns zu verstehen, wie Besucher mit unserer Website interagieren, indem anonyme Nutzungsdaten gesammelt werden.",CAT_ADS:"Werbung",CAT_ADS_DESC:"Werden verwendet, um relevante Anzeigen zu liefern und die Kampagneneffektivit\xE4t zu messen.",CAT_FUNCTIONAL:"Funktional",CAT_FUNCTIONAL_DESC:"Erm\xF6glichen erweiterte Funktionen wie Spracheinstellungen und personalisierte Inhalte.",REJECT_ALL:"Alle ablehnen",SAVE_PREFS:"Einstellungen speichern",MANAGE_COOKIES:"Cookies verwalten"},IMPRINT:{LABEL:"RECHTLICHES",TITLE:"Impressum",SUBTITLE:"Angaben gem\xE4\xDF \xA7 5 TMG",COMPANY_TITLE:"Unternehmensangaben",COMPANY_NAME:"TechVision Mallorca SL (betrieben als Ubex AI)",COMPANY_ADDRESS:`Calle Bartomeu Ferra 16 A 407141 Marratx\xED, Mallorca, Spanien`,COMPANY_REPRESENTED:"Vertreten durch: Adelina Bolota",CONTACT_TITLE:"Kontakt",CONTACT_PAGE_LINK:"Kontaktieren Sie uns \u2192",CONTACT_WEBSITE_LABEL:"Webseite",REGISTRATION_TITLE:"Registrierungsangaben",REGISTRATION_COURT:"TOMO: 3006 \xB7 HOJA: PM-96905",REGISTRATION_NUMBER:"CIF: B72772940",VAT_ID:"NIF/CIF: B72772940",RESPONSIBLE_TITLE:"Verantwortlich f\xFCr den Inhalt",RESPONSIBLE_DESC:"Verantwortlich f\xFCr den Inhalt gem\xE4\xDF \xA7 18 Abs. 2 MStV:",RESPONSIBLE_PERSON:"Adelina Bolota",RESPONSIBLE_ADDRESS:"Calle Bartomeu Ferra 16 A, 07141 Marratx\xED, Mallorca, Spanien",DISPUTE_TITLE:"Streitschlic
4htung",DISPUTE_NO_OBLIGATION:"Wir sind nicht bereit oder verpflichtet, an Streitbeilegungsverfahren vor einer Verbraucherschlichtungsstelle teilzunehmen.",QUESTIONS:"Fragen?",QUESTIONS_DESC:"Bei Fragen zu diesem Impressum besuchen Sie unsere"},SITEMAP:{LABEL:"SITEMAP",TITLE:"Sitemap",SUBTITLE:"Alle Seiten auf einen Blick",MAIN_PAGES:"Hauptseiten",AI_ASSISTANTS:"KI-Assistenten",RESOURCES:"Ressourcen",COMPANY:"Unternehmen",LEGAL:"Rechtliches"},LABS:{LABEL:"Ubex Labs \xB7 Summer Camp 2026",TITLE:"Lerne, echte KI-Produkte zu bauen.",SUBTITLE:"Vermittelt vom Team, das sie selbst entwickelt.",CTA_APPLY:"Jetzt bewerben",PROBLEM_HEADLINE:"Die Welt hat aufgeh\xF6rt, Junior-Entwickler einzustellen. Wir nicht.",PROBLEM_TITLE:"Das Problem",PROBLEM_TEXT:"Unternehmen brauchen Ingenieure mit KI-Kenntnissen. Aber sie stellen keine Junioren mehr ein. Sie wollen erfahrene Profis. Sie wollen Menschen, die vom ersten Tag an bauen k\xF6nnen. Wo bleibst du also?",SOLUTION_TITLE:"Die L\xF6sung",SOLUTION_TEXT:"Ubex Labs ist ein 2-monatiges Mentoring-Programm, das diese L\xFCcke schlie\xDFt. 4 Wochen intensives Bootcamp mit Vlad, CTO von Ubex AI und Softwarearchitekt mit 20 Jahren Erfahrung. 4 weitere Wochen Nachbetreuung, in denen wir dich begleiten, w\xE4hrend du dein Portfolio-Projekt verfeinerst, polierst und fertigstellst. 24/7-Team-Support w\xE4hrend der gesamten 2 Monate. \xDCber 38 Stunden direktes Mentoring.",PROBLEM_CLOSING:"Das ist keine Theorie. Das ist kein Zertifikat. Das bist du, wie du echte KI-Produkte innerhalb eines echten Entwicklungsteams baust.",BENEFITS_TITLE:"Das bekommst du",BENEFIT_1_TITLE:"38+ Stunden mit Vlad",BENEFIT_1_DESC:"Direktes Mentoring von einem Softwarearchitekten mit 20 Jahren Erfahrung. Keine Vorlesung. Pers\xF6nliches Feedback zu deinem Code, deiner Architektur, deinem Wachstum.",BENEFIT_2_TITLE:"4 Wochen intensives Bootcamp",BENEFIT_2_DESC:"5 Tage pro Woche. 2-Stunden-Sessions. Praktisches Bauen ab Tag eins. KI-Agenten, Workflow-Automatisierung, Anwendungsentwicklung, Produktions-Deployment.",BENEFIT_3_TITLE:"4 Wochen Nachbetreuung",BENEFIT_3_DESC:"10 zus\xE4tzliche Mentoring-Stunden, wenn DU sie brauchst. Verfeinere dein Projekt. Poliere dein Portfolio. Wir verschwinden nicht nach dem Bootcamp.",BENEFIT_4_TITLE:"24/7-Team-Zugang",BENEFIT_4_DESC:"Das gesamte Ubex-AI-Team steht hinter dir. Entwickler, Ingenieure, technisches Personal. Dedizierte Kan\xE4le. Jederzeit. Jede Frage. F\xFCr 2 Monate.",BENEFIT_5_TITLE:"Echtes Portfolio-Projekt",BENEFIT_5_DESC:"Keine Tutorial-Kopie. Ein ausgereiftes, funktionsf\xE4higes KI-Produkt, das du \xFCber 2 Monate baust und verfeinerst. Die Art von Projekt, die du Arbeitgebern zeigst.",BENEFIT_6_TITLE:"100 \u20AC Plattform-Guthaben",BENEFIT_6_DESC:"Baue auf Ubex AI w\xE4hrend und nach dem Programm. Es geh\xF6rt dir.",BENEFIT_7_TITLE:"Zertifikat + Referenzen",BENEFIT_7_DESC:"Offizielles Ubex-AI-Zertifikat. Pers\xF6nliche professionelle Referenzen von Vlad.",BENEFIT_8_TITLE:"Karrierechance",BENEFIT_8_DESC:"Top-Absolventen k\xF6nnen f\xFCr Positionen bei Ubex AI in Betracht gezogen werden.",INVESTMENT_TITLE:"Deine Investition",INVESTMENT_INSTALLMENTS:"In zwei Raten zahlbar.",INSTALLMENT_1:"Bei Zusage",INSTALLMENT_2:"Am Ende des Bootcamps (Woche 4)",INCLUDED_TITLE:"Alles inklusive:",INCLUDED_1:"38+ Stunden Mentoring mit Vlad",INCLUDED_2:"2 Monate 24/7-Team-Support",INCLUDED_3:"Dedizierte Kommunikationskan\xE4le",INCLUDED_4:"100 \u20AC Ubex-AI-Plattform-Guthaben",INCLUDED_5:"Abschlusszertifikat",INCLUDED_6:"Professionelle Referenzen",INVESTMENT_VALUE:"Der reale Wert dieses Programms \xFCbersteigt 12.000 \u20AC. Deine Investition betr\xE4gt 499 \u20AC. Das sind weniger als 14 \u20AC pro Stunde Mentoring mit einem 20 Jahre erfahrenen Architekten.",INVESTMENT_CTA_TEXT:"Das ist eine Investition in deine Karriere. Im KI-Zeitalter werden genau die Entwickler, die jetzt in sich selbst investieren, sp\xE4ter von Unternehmen umworben.",AUDIENCE_TITLE:"Wir suchen Macher.",AUDIENCE_1:"Studierende oder Absolventen auf der Suche nach echter Praxiserfahrung",AUDIENCE_2:"Junior-Entwickler, die sich auf KI spezialisieren wollen",AUDIENCE_3:"Quereinsteiger auf dem Weg in die Tech-Branche",AUDIENCE_4:"Autodidakten, die den Sprung ins Berufsleben wagen wollen",AUDIENCE_5:"Alle, die das KI-Zeitalter kommen sehen und bereit sein wollen",AUDIENCE_NOTE:"Kein Informatikabschluss n\xF6tig. Keine Jahre an Erfahrung n\xF6tig. Du brauchst Motivation, Engagement und den Willen zu bauen.",FAQ_TITLE:"H\xE4ufig gestellte Fragen",FAQ_1_Q:"Brauche ich Vorerfahrung mit KI?",FAQ_1_A:"Nein. Grundlegendes technisches Verst\xE4ndnis reicht aus. Uns ist Motivation und Engagement wichtig.",FAQ_2_Q:"Wie lange dauert das Programm?",FAQ_2_A:"2 Monate. 4 Wochen intensives Bootcamp + 4 Wochen Nachbetreuung.",FAQ_3_Q:"Wie hoch ist der Zeitaufwand?",FAQ_3_A:"Phase 1: etwa 20-25 Stunden pro Woche. Phase 2: etwa 10-15 Stunden pro Woche.",FAQ_4_Q:"Ist es remote oder vor Ort?",FAQ_4_A:"Beide Optionen sind verf\xFCgbar. Details werden nach Zusage mitgeteilt.",FAQ_5_Q:"Was kostet das Programm?",FAQ_5_A:"499 \u20AC. Zwei Raten zu je 250 \u20AC. Inklusive 100 \u20AC Plattform-Guthaben.",FAQ_6_Q:"Was passiert nach dem Programm?",FAQ_6_A:"Du beh\xE4ltst dein Portfolio, deine F\xE4higkeiten, de
4in Guthaben und dein Netzwerk. Top-Absolventen k\xF6nnen f\xFCr Positionen bei Ubex AI in Betracht gezogen werden.",FAQ_7_Q:"Wer ist Vlad?",FAQ_7_A:"CTO von Ubex AI. Softwarearchitekt mit \xFCber 20 Jahren Erfahrung. Dein Hauptmentor.",FAQ_8_Q:"Was, wenn ich nicht angenommen werde?",FAQ_8_A:"Du kommst auf die Warteliste mit priorisiertem Zugang zu zuk\xFCnftigen Kohorten.",FAQ_9_Q:"Was, wenn ich eine Session verpasse?",FAQ_9_A:"Kein Problem. Die Sessions sind so aufgebaut, dass eine verpasste Session dich nicht zur\xFCckwirft. Regelm\xE4\xDFige Teilnahme wird jedoch erwartet.",FAQ_10_Q:"Erhalte ich ein Zertifikat?",FAQ_10_A:"Ja. Offizielles Ubex-AI-Abschlusszertifikat f\xFCr alle Teilnehmer, die das Programm abschlie\xDFen.",FINAL_STATS:"30 Pl\xE4tze. Eine erste Kohorte. 2 Monate. 38+ Stunden mit einem 20 Jahre erfahrenen Architekten. 24/7-Support. 100 \u20AC Plattform-Guthaben. 499 \u20AC.",FINAL_QUOTE:"Die meisten Bootcamps enden und w\xFCnschen dir viel Gl\xFCck. Wir bauen mit dir - und bauen weiter mit dir.",COPYRIGHT:"Alle Rechte vorbehalten.",WAITLIST_HEADLINE:"Die erste Kohorte ist jetzt voll.",WAITLIST_DESC:"30 Teilnehmer wurden f\xFCr das erste Ubex-Labs-Programm ausgew\xE4hlt. Aber gute Programme sollten wachsen.",WAITLIST_CTA_TEXT:"Trage dich in die Warteliste ein.",WAITLIST_NAME:"Name",WAITLIST_EMAIL:"E-Mail",WAITLIST_BUTTON:"Zur Warteliste hinzuf\xFCgen",WAITLIST_NOTE:"Wenn ein Platz frei wird, erf\xE4hrst du es als Erstes. Mitglieder der Warteliste erhalten bevorzugten Zugang zu zuk\xFCnftigen Ubex-Labs-Kohorten, bevor die \xF6ffentliche Bewerbung startet."}};var fs={NAV:{HOME:"Inicio",VIRA_QIRA:"Vira & Qira",PRODUCT:"Producto",FEATURES:"Caracter\xEDsticas",RESOURCES:"Recursos",DOCS:"Documentaci\xF3n",TUTORIALS:"Tutoriales",ROADMAP:"Hoja de ruta",MEET_VIRA:"Conoce a Vira",MEET_QIRA:"Conoce a Qira",CONTACT:"Contacto",PRICING:"Precios",START_FREE:"Empezar gratis",QIRA:"Qira Agent",COMPANY:"Empresa",LOGIN:"Iniciar sesi\xF3n",START_BUILDING:"Empezar a construir",FEATURES_DESC:"Todo lo que puede hacer la plataforma",ROADMAP_DESC:"Lo que construiremos a continuaci\xF3n",CONTACT_DESC:"H\xE1blanos de tu proyecto",LANGUAGE:"Idioma",TOGGLE_THEME:"Alternar tema claro/oscuro",THEME_LIGHT:"Cambiar a tema claro",THEME_DARK:"Cambiar a tema oscuro",LABS:"Ubex Labs",REGISTER:"Registrarse"},FOOTER:{TAGLINE:"Una IA. Cada capa de tu app.",PRODUCT:"Producto",FEATURES:"Caracter\xEDsticas",VIRA_QIRA:"Vira & Qira",PRICING:"Precios",RESOURCES:"Recursos",DOCS:"Documentaci\xF3n",TUTORIALS:"Tutoriales",MEET_VIRA:"Conoce a Vira",MEET_QIRA:"Conoce a Qira",ROADMAP:"Hoja de ruta",COMPANY:"Empresa",CONTACT:"Contacto",LEGAL:"Legal",PRIVACY:"Privacidad",TERMS:"T\xE9rminos",IMPRINT:"Aviso legal",SITEMAP:"Mapa del sitio",COMMUNITY:"Comunidad",ALL_RIGHTS:"Todos los derechos reservados.",BUILT_WITH:"Construido con",QIRA:"Qira Agent",STATUS:"Todos los sistemas operativos",CHANGELOG:"Hoja de ruta",LABS:"Ubex Labs"},CHAT:{WELCOME_GREETING:"Hola \u{1F44B}",WELCOME_TEXT:"\xBFC\xF3mo podemos ayudarte hoy?",SUGGESTION_WHAT:"\xBFQu\xE9 es Ubex y c\xF3mo funciona?",SUGGESTION_PRICING:"\xBFCu\xE1les son los planes de precios?",SUGGESTION_DIFF:"\xBFEn qu\xE9 se diferencia Ubex de Zapier o Make?",SUGGESTION_VIRA:"Cu\xE9ntame sobre Vira",SUGGESTION_QIRA:"Cu\xE9ntame sobre Qira",VIRA_DESC:"Constructor Backend IA",QIRA_DESC:"Constructor Frontend IA",INPUT_PLACEHOLDER:"Pregunta sobre Ubex...",CONTACT_PROMPT:"\xBFQuieres dejar un mensaje a nuestro equipo?",CONTACT_YES:"S\xED, enviar un mensaje",CONTACT_NO:"No, gracias",FORM_TITLE:"Ponte en contacto",FORM_SUBTITLE:"Nuestro equipo te responder\xE1 pronto.",CONTACT_TITLE:"Contacta a nuestro equipo",CONTACT_SUBTITLE:"Nos encantar\xEDa saber de ti.",FIELD_NAME:"Tu nombre *",FIELD_EMAIL:"Tu email *",FIELD_COMPANY:"Empresa (opcional)",FIELD_MESSAGE:"Cu\xE9ntanos qu\xE9 necesitas...",FIELD_HOW_HELP:"\xBFC\xF3mo podemos ayudarte?",SUBJECT_GENERAL:"Consulta general",SUBJECT_SALES:"Ventas y precios",SUBJECT_SUPPORT:"Soporte t\xE9cnico",SUBJECT_PARTNERSHIP:"Colaboraci\xF3n",SUBJECT_LABS:"Ubex Labs - \xDAnete como ingeniero",SUBJECT_TRAINING:"Formaci\xF3n",SUBJECT_FEEDBACK:"Feedback",SENDING:"Enviando...",SEND:"Enviar mensaje",SUCCESS_TITLE:"\xA1Mensaje enviado!",SUCCESS_SUBTITLE:"Nuestro equipo se pondr\xE1 en contacto contigo pronto.",BACK_TO_CHAT:"Volver al chat",TAB_CHAT:"Chat",TAB_CONTACT:"Contacto",ERROR_MESSAGE:"Lo siento, tengo problemas de conexi\xF3n ahora mismo. Puedes visitar ubex.ai/contact para contactar al equipo directamente."},HOME:{PROMPT_PLACEHOLDER:"Pide a Qira que construya...",PROMPT_CTA:"Construir",EX_1:"Crea un panel c
4on estad\xEDsticas, una tabla de miembros y una p\xE1gina de ajustes",EX_2:"Crea una app de reservas con calendario, pagos y confirmaciones por email",EX_3:"Haz un CRM que avise en Slack cuando una oportunidad pase a Ganada",EX_4:"Crea una herramienta interna de inventario con escaneo de c\xF3digos de barras",CHIP_1:"Panel con login",CHIP_2:"App de reservas",CHIP_3:"CRM con alertas en Slack",CHIP_4:"Herramienta de inventario",HERO_NOTE:"Gratis para empezar \xB7 Sin tarjeta",HERO_MAP:{HINT_HOVER:"Haz clic en una categor\xEDa para ver sus agentes",HINT_TAP:"Toca una categor\xEDa para ver sus agentes",AGENT_HINT_HOVER:"Pasa el cursor por un agente para ver qu\xE9 hace",AGENT_HINT_TAP:"Toca un agente para ver qu\xE9 hace",OPERATIONS:"Operaciones",INTELLIGENCE:"Inteligencia",CUSTOMER:"Clientes",BACK_OFFICE:"Back office",SALES:"Ventas",DEALS:"Acuerdos",MARKETING:"Marketing",CATEGORIES:{OPERATIONS:"Mant\xE9n los proyectos en marcha desde la incorporaci\xF3n hasta la entrega, con cada traspaso y plazo cubierto.",INTELLIGENCE:"Convierte se\xF1ales de empresas, personas y mercados en el contexto que tu equipo necesita para decidir mejor.",CUSTOMER:"Da a cada cliente soporte a tiempo, orientaci\xF3n proactiva y una v\xEDa clara para ser escuchado.",BACK_OFFICE:"Mant\xE9n las finanzas, la administraci\xF3n y las operaciones de personas precisas, organizadas y en marcha.",SALES:"Encuentra los prospectos adecuados, personaliza el contacto y lleva cada conversaci\xF3n a una reuni\xF3n agendada.",DEALS:"Ayuda a los comerciales a prepararse, entender llamadas, reducir riesgos y cerrar oportunidades activas.",MARKETING:"Crea contenido fiel a la marca, distrib\xFAyelo en los canales adecuados y descubre qu\xE9 funciona."},NODES:{OPS_ONBOARDING:"Incorporaci\xF3n",CLIENT_ONBOARDING:"Agente de incorporaci\xF3n",KICKOFF_SCHEDULER:"Planificador de kickoff",ACCESS_PROVISIONER:"Gestor de accesos",OPS_BUILDS:"Proyectos",PROJECT_PLANNER:"Planificador de proyectos",BUILD_TRACKER:"Seguimiento de proyectos",QA_CHECKER:"Revisor de calidad",RELEASE_COORDINATOR:"Coordinador de lanzamientos",OPS_CLIENT_OPS:"Operaciones de clientes",STATUS_REPORTER:"Informes de estado",REQUEST_ROUTER:"Enrutador de solicitudes",SLA_MONITOR:"Monitor de SLA",INT_COMPANIES:"Empresas",COMPANY_RESEARCH:"Investigaci\xF3n de empresas",COMPETITOR_TRACKER:"Seguimiento de competidores",INT_PEOPLE:"Personas",CONTACT_ENRICHER:"Enriquecedor de contactos",ORG_CHART_MAPPER:"Mapa de organigramas",INT_MARKETS:"Mercados",MARKET_SCANNER:"Esc\xE1ner de mercado",SIGNAL_SYNTHESIZER:"Sintetizador de se\xF1ales",TREND_WATCHER:"Observador de tendencias",CUS_SUPPORT:"Soporte",SUPPORT_RESOLVER:"Resolutor de soporte",TICKET_TRIAGE:"Clasificador de tickets",KB_WRITER:"Redactor de ayuda",CUS_SUCCESS:"\xC9xito del cliente",HEALTH_MONITOR:"Monitor de salud de cuentas",RENEWAL_ASSISTANT:"Asistente de renovaciones",CHURN_PREDICTOR:"Predictor de abandono",CUS_COMMUNITY:"Comunidad",COMMUNITY_MODERATOR:"Moderador de comunidad",FEEDBACK_COLLECTOR:"Recopilador de opiniones",BO_MONEY:"Dinero",INVOICE_RECONCILER:"Conciliador de facturas",EXPENSE_AUDITOR:"Auditor de gastos",CASHFLOW_FORECASTER:"Previsi\xF3n de tesorer\xEDa",BO_BOOKS:"Contabilidad",BOOKKEEPER:"Agente contable",TAX_PREP:"Asistente fiscal",BO_OFFICE:"Oficina",CONTRACT_FILER:"Archivador de contratos",VENDOR_MANAGER:"Gestor de proveedores",BO_PEOPLE:"Personas",PAYROLL_CHECKER:"Revisor de n\xF3minas",LEAVE_TRACKER:"Control de ausencias",HIRING_COORDINATOR:"Coordinador de contrataci\xF3n",SAL_TARGETING:"Segmentaci\xF3n",LEAD_SCORER:"Puntuaci\xF3n de leads",ICP_MATCHER:"Buscador de cliente ideal",LIST_BUILDER:"Creador de listas",INTENT_WATCHER:"Detector de intenci\xF3n",SAL_OUTREACH:"Prospecci\xF3n",EMAIL_WRITER:"Redactor de emails",LINKEDIN_PROSPECTOR:"Prospector de LinkedIn",PERSONALIZER:"Agente de personalizaci\xF3n",CALL_PREP:"Preparaci\xF3n de llamadas",SAL_SEQUENCING:"Secuencias",OUTREACH_SEQUENCER:"Secuenciador de prospecci\xF3n",FOLLOWUP_SCHEDULER:"Planificador de seguimientos",REPLY_CLASSIFIER:"Clasificador de respuestas",MEETING_BOOKER:"Agendador de reuniones",CRM_UPDATER:"Actualizador de CRM",DEA_REPS:"Comerciales",REP_COACH:"Coach de ventas",DEA_CALLS:"Llamadas",CALL_ANALYST:"Analista de llamadas",MEETING_SUMMARIZER:"Resumen de reuniones",OBJECTION_TRACKER:"Seguimiento de objeciones",DEA_CLOSING:"Cierre",PROPOSAL_GENERATOR:"Generador de propuestas",QUOTE_BUILDER:"Creador de presupuestos",CONTRACT_DRAFTER:"Redactor de contratos",DEA_PIPELINE:"Pipeline",PIPELINE_FORECASTER:"Previsi\xF3n de pipeline",DEAL_RISK_MONITOR:"Monitor de riesgo",MKT_CONTENT:"Contenido",CONTENT_COMPOSER:"Compositor de contenido",BLOG_WRITER:"Redactor de blog",VIDEO_SCRIPT_WRITER:"Guionista de v\xEDdeo",CASE_STUDY_WRITER:"Redactor de casos de \xE9xito",MKT_BRAND:"Marca",BRAND_GUARDIAN:"Guardi\xE1n de marca",DESIGN_BRIEF_WRITER:"Redactor de briefs",MKT_DISTRIBUTION:"Distribuci\xF3n",SOCIAL_SCHEDULER:"Programador de redes",SEO_OPTIMIZER:"Optimizador SEO",NEWSLETTER_BUILDER:"Creador de newsletters",AD_CAMPAIGN_MANAGER:"Gestor de campa\xF1as",ANALYTICS_REPORTER:"Informes de anal\xEDtica"},PANEL:{CATEGORY:"Resumen de categor\xEDa",ACTIVITY:"Ejecuciones, \xFAltimos 14 d\xEDas",EXAMPLE:"Cifras de ejemplo",HANDLES:"Qu\xE9 hace",WORKS_WITH:"Funciona con",APPROVAL_AUTO:"Funciona de forma aut\xF3noma",APPROVAL_OPTIONAL:"Revisi\xF3n humana opcional",APPROVAL_REQUIRED:"Requiere aprobaci\xF3n humana",CTA:"Crear este agente",CLOSE:"Cerrar",STAT_AGENTS:"Agentes",STAT_TEAMS:"Equipos",STAT_TOOLS:"Herramientas conectadas",STAT_APPROVAL:"Con aprobaci\xF3n",AGENTS_IN:"Agentes incluidos",TEAMS_IN:"Equipos incluidos",PICK_AGENT:"Ver detalles del agente",ACTIVITY_BRANCH:"Ejecuciones de estos agentes, \xFAltimos 14 d\xEDas",BRANCH_ALL_AUTO:"Todos los agentes funcionan solos",BRANCH_SOME_REQUIRED:"{{count}} de {{total}} agentes requieren aprobaci\xF3n humana",CTA_BRANCH:"Empezar a construir"},METRICS:{CLIENTS_ONBOARDED:"Clientes incorporados",DAYS_SAVED:"D\xEDas ahorrados",ON_TIME:"A tiempo",MEETINGS_MONTH:"Reuniones / mes",TIME_SAVED:"Ahorro / semana",REQUESTS_ROUTED:"Solicitudes gestionadas",ACCURACY:"Precisi\xF3n",PLANS_MONTH:"Planes / mes",RUNS_DAY:"Ejecuciones / d\xEDa",ISSUES_CAUGHT:"Incidencias detectadas",RELEASES_MONTH:"Lanzamientos / mes",REPORTS_WEEK:"Informes / semana",RESPONSE_TIME:"Respuesta media",BRIEFINGS_DAY:"Informes / d\xEDa",SOURCES:"Fuentes",COMPANIES_TRACKED:"Empresas seguidas",SIGNALS_DAY:"Se\xF1ales / d\xEDa",CONTACTS_ENRICHED:"Contactos enriquecidos",MATCH_RATE:"Tasa de acierto",TICKETS_RESOLVED:"Tickets resueltos",CSAT:"CSAT",ARTICLES:"Art\xEDculos",DEFLECTION:"Tickets evitados",ACCOUNTS_WATCHED:"Cuentas vigiladas",RENEWALS:"Renovaciones / trim.",RESPONSES:"Respuestas",INVOICES_MONTH:"Facturas / mes",EXPENSES_MONTH:"Gastos / mes",FORECAST_ACCURACY:"Precisi\xF3n de previsi\xF3n",HORIZON:"Semanas vista",TRANSACTIONS_MONTH:"Movimientos / mes",DOCS_FILED:"Documentos / mes",VENDORS:"Proveedores gestionados",SAVINGS:"Ahorro",PAYSLIPS:"N\xF3minas revisadas",CANDIDATES:"Candidatos / mes",LEADS_SCORED:"Leads puntuados / mes",CONVERSION:"Mejora de conversi\xF3n",EMAILS_WEEK:"Emails / semana",REPLY_RATE:"Tasa de respuesta",CALLS_ANALYZED:"Llamadas / mes",PROPOSALS_WEEK:"Propuestas / semana",POSTS_WEEK:"Publicaciones / semana",CHANNELS:"Canales",TRAFFIC_LIFT:"Aumento de tr\xE1fico",REVIEWED:"Piezas revisadas",OPEN_RATE:"Tasa de apertura"},AGENTS:{CLIENT_ONBOARDING:{DESC:"Da la bienvenida a nuevos clientes, re\xFAne lo necesario y lo deja todo listo.",T1:"Enviar bienvenida",T2:"Reunir documentos",T3:"Crear espacio de trabajo"},KICKOFF_SCHEDULER:{DESC:"Encuentra un hueco que va bien a todos y prepara la agenda del kickoff.",T1:"Cruzar calendarios",T2:"Redactar agenda",T3:"Env
4iar invitaciones"},ACCESS_PROVISIONER:{DESC:"Da y retira accesos a herramientas cuando alguien entra o sale de un proyecto.",T1:"Crear cuentas",T2:"Asignar roles",T3:"Revocar accesos"},PROJECT_PLANNER:{DESC:"Convierte un brief en hitos, tareas y un calendario realista.",T1:"Desglosar alcance",T2:"Estimar esfuerzo",T3:"Asignar responsables"},BUILD_TRACKER:{DESC:"Sigue cada proyecto y avisa de cualquier retraso antes de que sea tarde.",T1:"Seguir el progreso",T2:"Se\xF1alar bloqueos",T3:"Actualizar estado"},QA_CHECKER:{DESC:"Prueba cada versi\xF3n con la checklist e informa de lo que falla.",T1:"Ejecutar pruebas",T2:"Registrar errores",T3:"Verificar arreglos"},RELEASE_COORDINATOR:{DESC:"Planifica lanzamientos, redacta las notas y cuenta a todos qu\xE9 sali\xF3.",T1:"Programar lanzamiento",T2:"Redactar notas",T3:"Avisar a clientes"},STATUS_REPORTER:{DESC:"Redacta la actualizaci\xF3n semanal para el cliente con lo que realmente pas\xF3.",T1:"Reunir novedades",T2:"Resumir avances",T3:"Enviar informe"},REQUEST_ROUTER:{DESC:"Lee las solicitudes entrantes y env\xEDa cada una a la persona adecuada.",T1:"Clasificar solicitud",T2:"Elegir responsable",T3:"Fijar prioridad"},SLA_MONITOR:{DESC:"Vigila cada compromiso y avisa antes de que se incumpla un plazo.",T1:"Seguir plazos",T2:"Avisar responsables",T3:"Escalar incumplimientos"},COMPANY_RESEARCH:{DESC:"Crea en minutos el perfil completo de cualquier empresa con fuentes p\xFAblicas.",T1:"Obtener datos de empresa",T2:"Leer informes",T3:"Resumir noticias"},COMPETITOR_TRACKER:{DESC:"Sigue lanzamientos, precios y contrataciones de la competencia y te cuenta qu\xE9 cambi\xF3.",T1:"Vigilar webs",T2:"Seguir precios",T3:"Detectar fichajes"},CONTACT_ENRICHER:{DESC:"Completa emails, cargos y tel\xE9fonos que faltan en tus contactos.",T1:"Encontrar emails",T2:"Verificar cargos",T3:"Actualizar CRM"},ORG_CHART_MAPPER:{DESC:"Muestra qui\xE9n decide, qui\xE9n influye y qui\xE9n reporta a qui\xE9n.",T1:"Mapear jerarqu\xEDas",T2:"Encontrar decisores",T3:"Se\xF1alar cambios"},MARKET_SCANNER:{DESC:"Rastrea noticias, informes y foros en busca de movimientos en tu mercado.",T1:"Rastrear fuentes",T2:"Agrupar temas",T3:"Ordenar por relevancia"},SIGNAL_SYNTHESIZER:{DESC:"Convierte cientos de se\xF1ales en un informe breve y accionable.",T1:"Unir se\xF1ales",T2:"Quitar ruido",T3:"Redactar informe"},TREND_WATCHER:{DESC:"Detecta temas que ganan fuerza antes de que sean evidentes.",T1:"Seguir menciones",T2:"Medir impulso",T3:"Avisar pronto"},SUPPORT_RESOLVER:{DESC:"Responde a clientes usando tu documentaci\xF3n y tickets anteriores.",T1:"Redactar respuestas",T2:"Resolver tickets",T3:"Derivar casos especiales"},TICKET_TRIAGE:{DESC:"Etiqueta, prioriza y asigna cada ticket nuevo en cuanto llega.",T1:"Detectar intenci\xF3n",T2:"Fijar prioridad",T3:"Asignar al equipo"},KB_WRITER:{DESC:"Convierte tickets resueltos en art\xEDculos de ayuda para que los clientes encuentren respuestas solos.",T1:"Detectar preguntas repetidas",T2:"Redactar art\xEDculos",T3:"Mantener la ayuda al d\xEDa"},HEALTH_MONITOR:{DESC:"Punt\xFAa la salud de cada cuenta y avisa de las que se enfr\xEDan.",T1:"Seguir el uso",T2:"Puntuar salud",T3:"Se\xF1alar riesgos"},RENEWAL_ASSISTANT:{DESC:"Prepara cada renovaci\xF3n con tiempo: uso, valor aportado y una oferta.",T1:"Preparar renovaci\xF3n",T2:"Redactar oferta",T3:"Agendar llamada"},CHURN_PREDICTOR:{DESC:"Predice qu\xE9 clientes podr\xEDan irse y sugiere c\xF3mo retenerlos.",T1:"Modelar riesgo",T2:"Explicar causas",T3:"Sugerir acciones"},COMMUNITY_MODERATOR:{DESC:"Mantiene tu comunidad amable, responde dudas frecuentes y elimina spam.",T1:"Eliminar spam",T2:"Responder dudas",T3:"Dar la bienvenida"},FEEDBACK_COLLECTOR:{DESC:"Re\xFAne opiniones de todos los canales y las agrupa en temas claros.",T1:"Reunir opiniones",T2:"Agrupar temas",T3:"Informar tendencias"},INVOICE_RECONCILER:{DESC:"Cruza facturas con pagos y se\xF1ala todo lo que no cuadra.",T1:"Cruzar pagos",T2:"Se\xF1alar descuadres",T3:"Reclamar pendientes"},EXPENSE_AUDITOR:{DESC:"Revisa cada gasto frente a la pol\xEDtica antes de aprobarlo.",T1:"Leer recibos",T2:"Revisar pol\xEDtica",T3:"Se\xF1alar excepciones"},CASHFLOW_FORECASTER:{DESC:"Prev\xE9 la tesorer\xEDa de las pr\xF3ximas 13 semanas y la actualiza cada d\xEDa.",T1:"Proyectar cobros",T2:"Modelar escenarios",T3:"Avisar de huecos"},BOOKKEEPER:{DESC:"Clasifica transacciones y deja la contabilidad lista para el cierre de mes.",T1:"Clasificar movimientos",T2:"Conciliar cuentas",T3:"Cerrar el mes"},TAX_PREP:{DESC:"Re\xFAne las cifras y documentos que tu asesor necesita para los impuestos.",T1:"Reunir documentos",T2:"Preparar anexos",T3:"Vigilar plazos"},CONTRACT_FILER:{DESC:"Archiva cada contrato firmado y avisa antes de renovaciones y preavisos.",T1:"Extraer condiciones",T2:"Archivar contratos",T3:"Recordar fechas"},VENDOR_MANAGER:{DESC:"Controla proveedores, contratos y gasto en un solo lugar.",T1:"Controlar gasto",T2:"Comparar ofertas",T3:"Renovar contratos"},PAYROLL_CHECKER:{DESC:"Revisa la n\xF3mina antes de pagarla para que nadie cobre mal.",T1:"Cruzar horas",T2:"Revisar deducciones",T3:"Se\xF1alar errores"},LEAVE_TRACKER:{DESC:"Registra vacaciones y bajas y mantiene sincronizados los calendarios.",T1:"Registrar solicitudes",T2:"Actualizar calendarios",T3:"Avisar de solapes"},HIRING_COORDINATOR:{DESC:"Filtra candidaturas, agenda entrevistas y mantiene informados a los candidatos.",T1:"Filtrar CVs",T2:"Agendar entrevistas",T3:"Informar candidatos"},LEAD_SCORER:{DESC:"Punt\xFAa cada lead nuevo por encaje e intenci\xF3n para empezar por los mejores.",T1:"Puntuar encaje",T2:"Puntuar intenci\xF3n",T3:"Asignar leads calientes"},ICP_MATCHER:{DESC:"Compara cuentas con tu perfil de cliente ideal y explica el encaje.",T1:"Comparar datos",T2:"Puntuar encaje",T3:"Explicar el motivo"},LIST_BUILDER:{DESC:"Crea en minutos listas de prospectos a partir de tus filtros.",T1:"Aplicar filtros",T2:"Encontrar c
4ontactos",T3:"Quitar duplicados"},INTENT_WATCHER:{DESC:"Detecta cu\xE1ndo tus cuentas objetivo empiezan a investigar lo que vendes.",T1:"Seguir visitas",T2:"Leer datos de intenci\xF3n",T3:"Avisar a comerciales"},EMAIL_WRITER:{DESC:"Escribe emails de primer contacto que suenan como tu mejor comercial.",T1:"Investigar prospecto",T2:"Redactar email",T3:"Sugerir asuntos"},LINKEDIN_PROSPECTOR:{DESC:"Encuentra a las personas adecuadas en LinkedIn y redacta una nota personal.",T1:"Encontrar prospectos",T2:"Redactar nota",T3:"Registrar actividad"},PERSONALIZER:{DESC:"A\xF1ade a cada mensaje una frase relevante y concreta con investigaci\xF3n reciente.",T1:"Encontrar ganchos",T2:"Adaptar aperturas",T3:"Revisar tono"},CALL_PREP:{DESC:"Entrega al comercial un resumen de una p\xE1gina antes de cada llamada en fr\xEDo.",T1:"Resumir cuenta",T2:"Listar temas",T3:"Anticipar objeciones"},OUTREACH_SEQUENCER:{DESC:"Lanza secuencias de email y LinkedIn en varios pasos y se detiene con la primera respuesta.",T1:"Crear secuencia",T2:"Enviar pasos",T3:"Parar al responder"},FOLLOWUP_SCHEDULER:{DESC:"Evita que las conversaciones se enfr\xEDen programando cada seguimiento.",T1:"Programar seguimientos",T2:"Redactar recordatorios",T3:"Avisar a comerciales"},REPLY_CLASSIFIER:{DESC:"Lee cada respuesta y la clasifica en interesado, m\xE1s adelante o baja.",T1:"Clasificar respuestas",T2:"Actualizar estado",T3:"Avisar de respuestas calientes"},MEETING_BOOKER:{DESC:"Convierte respuestas interesadas en reuniones agendadas sin idas y venidas.",T1:"Ofrecer horarios",T2:"Confirmar hora",T3:"Enviar invitaci\xF3n"},CRM_UPDATER:{DESC:"Registra llamadas, emails y pr\xF3ximos pasos en el CRM para que el comercial no tenga que hacerlo.",T1:"Registrar actividad",T2:"Actualizar campos",T3:"Crear tareas"},REP_COACH:{DESC:"Revisa las llamadas de cada comercial y da consejos concretos cada semana.",T1:"Revisar llamadas",T2:"Detectar patrones",T3:"Proponer ejercicios"},CALL_ANALYST:{DESC:"Escucha llamadas de venta y extrae necesidades, riesgos y pr\xF3ximos pasos.",T1:"Transcribir llamadas",T2:"Extraer hallazgos",T3:"Puntuar la llamada"},MEETING_SUMMARIZER:{DESC:"Env\xEDa un resumen claro y tareas minutos despu\xE9s de cada reuni\xF3n.",T1:"Resumir reuni\xF3n",T2:"Listar tareas",T3:"Compartir notas"},OBJECTION_TRACKER:{DESC:"Registra las objeciones de los compradores y qu\xE9 respuestas cierran acuerdos.",T1:"Detectar objeciones",T2:"Vincular a resultados",T3:"Actualizar el playbook"},PROPOSAL_GENERATOR:{DESC:"Redacta propuestas a medida con las notas de la llamada y tus plantillas.",T1:"Recoger requisitos",T2:"Redactar propuesta",T3:"Valorar opciones"},QUOTE_BUILDER:{DESC:"Crea presupuestos exactos con los descuentos y aprobaciones correctos.",T1:"Configurar productos",T2:"Aplicar descuentos",T3:"Enviar a aprobaci\xF3n"},CONTRACT_DRAFTER:{DESC:"Prepara contratos a partir de condiciones aprobadas y resalta lo inusual.",T1:"Rellenar plantilla",T2:"Revisar cl\xE1usulas",T3:"Enviar a firma"},PIPELINE_FORECASTER:{DESC:"Prev\xE9 el trimestre con la actividad real de los acuerdos, no por intuici\xF3n.",T1:"Puntuar acuerdos",T2:"Prever ingresos",T3:"Explicar cambios"},DEAL_RISK_MONITOR:{DESC:"Avisa cuando un acuerdo se enfr\xEDa, pierde a su valedor o empieza a retrasarse.",T1:"Seguir interacci\xF3n",T2:"Detectar riesgo",T3:"Sugerir siguiente paso"},CONTENT_COMPOSER:{DESC:"Planifica y redacta contenido con la voz de tu marca a partir de un solo brief.",T1:"Planificar calendario",T2:"Redactar piezas",T3:"Reutilizar contenido"},BLOG_WRITER:{DESC:"Investiga y escribe art\xEDculos listos para SEO que tu equipo solo tiene que pulir.",T1:"Investigar tema",T2:"Estructurar art\xEDculo",T3:"Escribir borrador"},VIDEO_SCRIPT_WRITER:{DESC:"Escribe ganchos y guiones para v\xEDdeos cortos y webinars.",T1:"Escribir ganchos",T2:"Guionizar escenas",T3:"A\xF1adir subt\xEDtulos"},CASE_STUDY_WRITER:{DESC:"Entrevista a clientes satisfechos y convierte su historia en un caso de \xE9xito.",T1:"Preparar preguntas",T2:"Transcribir entrevista",T3:"Escribir la historia"},BRAND_GUARDIAN:{DESC:"Revisa cada contenido frente a la voz y la gu\xEDa de estilo de tu marca.",T1:"Revisar tono",T2:"C
4orregir t\xE9rminos",T3:"Se\xF1alar lo que no encaja"},DESIGN_BRIEF_WRITER:{DESC:"Convierte objetivos de campa\xF1a en briefs claros con los que dise\xF1o puede empezar.",T1:"Definir objetivos",T2:"Listar piezas",T3:"Fijar especificaciones"},SOCIAL_SCHEDULER:{DESC:"Programa publicaciones en el mejor momento en cada red social.",T1:"Elegir mejores horas",T2:"Programar publicaciones",T3:"Responder comentarios"},SEO_OPTIMIZER:{DESC:"Encuentra huecos de palabras clave y mejora p\xE1ginas para posicionar mejor.",T1:"Buscar palabras clave",T2:"Optimizar p\xE1ginas",T3:"Seguir posiciones"},NEWSLETTER_BUILDER:{DESC:"Monta una newsletter con tu contenido m\xE1s reciente y la env\xEDa a su hora.",T1:"Elegir temas",T2:"Escribir la intro",T3:"Programar env\xEDo"},AD_CAMPAIGN_MANAGER:{DESC:"Lanza y ajusta campa\xF1as de anuncios, moviendo presupuesto a lo que funciona.",T1:"Lanzar anuncios",T2:"Probar variantes",T3:"Mover presupuesto"},ANALYTICS_REPORTER:{DESC:"Re\xFAne resultados de todos los canales en un informe semanal de marketing.",T1:"Reunir m\xE9tricas",T2:"Explicar cambios",T3:"Enviar informe"}},BRANCHES:{OPS_ONBOARDING:"Todo lo que lleva a un cliente nuevo de la firma a estar en marcha.",OPS_BUILDS:"Planificar, seguir y entregar el trabajo que realizas.",OPS_CLIENT_OPS:"Mantiene bajo control solicitudes, novedades y compromisos con clientes.",INT_COMPANIES:"Conoce a fondo cualquier empresa antes de hablar con ella.",INT_PEOPLE:"Encuentra a las personas adecuadas y entiende qui\xE9n decide.",INT_MARKETS:"Adel\xE1ntate a lo que se mueve en tu mercado.",CUS_SUPPORT:"Respuestas r\xE1pidas y precisas a cada duda de cliente.",CUS_SUCCESS:"Clientes satisfechos que renuevan y crecen.",CUS_COMMUNITY:"Una comunidad amable y una visi\xF3n clara de lo que dicen tus clientes.",BO_MONEY:"Facturas, gastos y tesorer\xEDa, conciliados y previstos.",BO_BOOKS:"Contabilidad limpia cada mes y sin sorpresas con los impuestos.",BO_OFFICE:"Contratos y proveedores, archivados y gestionados en un solo lugar.",BO_PEOPLE:"N\xF3minas, ausencias y contrataci\xF3n sin papeleo.",SAL_TARGETING:"Decide a qui\xE9n dirigirte y cu\xE1ndo.",SAL_OUTREACH:"Primeros mensajes personales a una escala imposible de escribir a mano.",SAL_SEQUENCING:"Seguimientos, respuestas y reuniones que funcionan solos.",DEA_REPS:"Ayuda a cada comercial a vender como el mejor.",DEA_CALLS:"Convierte cada conversaci\xF3n de venta en notas, hallazgos y pr\xF3ximos pasos.",DEA_CLOSING:"Propuestas, presupuestos y contratos listos en horas, no d\xEDas.",DEA_PIPELINE:"Una previsi\xF3n fiable y alertas tempranas en cada acuerdo.",MKT_CONTENT:"Un flujo constante de contenido con tu voz.",MKT_BRAND:"Todo fiel a la marca, cada brief claro.",MKT_DISTRIBUTION:"Lleva tu contenido a las personas adecuadas y mide los resultados."}},CTA_START_FREE:"Empezar a construir",CTA_SEE_HOW:"Ver c\xF3mo funciona",FINAL_CTA:{EYEBROW:"Empieza ahora",TITLE:"Empieza a construir hoy",SUBTITLE:"Describe tu idea. Qira la lleva del prompt a producci\xF3n.",CTA_START:"Empezar gratis",CTA_DEMO:"Habla con nosotros",TRUST:"Managed Cloud \xB7 RGPD \xB7 VPC u on-premise"},HERO_EYEBROW:"Conoce a Qira. Una IA que lo construye todo.",HERO_TITLE_1:"Construye el cerebro",HERO_TITLE_ACCENT:"de toda tu empresa",HERO_SUBTITLE:"Qira escribe el frontend, el backend y la base de datos, y lo publica en tu dominio.",STORY:{DESCRIBE:"Describe",REFINE:"Refina",PUBLISH:"Publica",DESCRIBE_T:"Una idea se convierte en una app funcional.",DESCRIBE_D:"Describe las p\xE1ginas y funciones que necesitas. Qira crea una app que puedes previsualizar y explorar.",REFINE_T:"Personaliza cada detalle.",REFINE_D:"Selecciona un elemento, pide un cambio y sigue mejorando tu app en la misma conversaci\xF3n.",PUBLISH_T:"Lista para tu propio dominio.",PUBLISH_D:"Conecta tu dominio y publica. Sigue mejorando tu app a medida que cambian tus necesidades.",EXPLORE:"Explora Qira Studio",LABEL:"Qira \xB7 Constructor de frontend",TITLE:"Mira c\xF3mo toma forma tu app",S1_T:"Di lo que quieres",S1_D:"Escr\xEDbelo como un mensaje a un compa\xF1ero. Qira planifica p\xE1ginas, datos y navegaci\xF3n antes de escribir una l\xEDnea.",
4S2_T:"Se construye delante de ti",S2_D:"Componentes, p\xE1ginas y rutas se escriben en tiempo real. Ves cada archivo en cuanto aparece.",S3_T:"Previsualiza al instante",S3_D:"La app funciona en cuanto se genera. Haz clic, es real.",S4_T:"Cambia cualquier cosa por chat",S4_D:"Selecciona un elemento y di qu\xE9 deber\xEDa ser diferente. Qira edita el c\xF3digo, no un boceto.",S5_T:"Cambia el estilo con un clic",S5_D:"Oscuro, claro, forest o tu propia marca. Cada componente se adapta.",S6_T:"Publica en tu dominio",S6_D:"Elige un subdominio o conecta el tuyo. SSL, alojamiento y actualizaciones est\xE1n resueltos."},FLOW:{EXAMPLE_NOTE:"Flujo y tiempos ilustrativos, no una prueba de rendimiento.",LABEL:"Qira \xB7 Backend",TITLE:"De una reserva a un registro guardado.",SUB:"Valida una reserva, aplica tus reglas de negocio y gu\xE1rdala en tu base de datos. Qira conecta los pasos en un flujo que puedes inspeccionar.",P1_T:"Paralelo por defecto",P1_D:"Los pasos independientes corren a la vez. 84 ms en lugar de 108.",P2_T:"L\xF3gica que se ve",P2_D:"Validaci\xF3n, condiciones, llamadas a IA, escrituras en base de datos e integraciones. Cada uno es un nodo que puedes abrir.",P3_T:"Sin servidores, sin YAML",P3_D:"Qira conecta el flujo, Ubex lo aloja. T\xFA solo describes el comportamiento.",REPLAY:"Repetir petici\xF3n"},ONE:{LABEL:"Todo en un solo lugar",TITLE:"Un espacio de trabajo en vez de siete suscripciones",SUB:"Frontend, backend, base de datos, auth, automatizaciones, dominio e IA. Construidos juntos, funcionando juntos.",USUAL:"La forma habitual",USUAL_SUB:"7 herramientas \xB7 7 logins \xB7 c\xF3digo pegamento entre medias",UBEX:"Con Ubex",UBEX_SUB:"1 proyecto \xB7 1 login \xB7 nada que unir",T1:"Alojamiento frontend",T2:"Backend y APIs",T3:"Base de datos",T4:"Auth y usuarios",T5:"Automatizaciones",T6:"Dominio y SSL",T7:"Modelos de IA",TAB_NONTECH:"No soy t\xE9cnico",TAB_DEV:"Soy desarrollador",TAB_BIZ:"Dirijo un negocio",NONTECH_H:"Nunca sales del chat.",NONTECH_1:"Sin configuraci\xF3n, sin cuentas de hosting, sin herramientas que no se hablan entre s\xED.",NONTECH_2:"Di lo que necesitas en lenguaje natural. Qira lo construye y lo aloja.",NONTECH_3:"Cambia de opini\xF3n cuando quieras. P\xEDdelo y la app se actualiza.",DEV_H:"Control total cuando lo quieras.",DEV_1:"Edita el c\xF3digo generado o abre el flujo visual y conecta la l\xF3gica a mano.",DEV_2:"Trae tu propio PostgreSQL, MySQL, MongoDB o claves de IA. O usa las nuestras.",DEV_3:"Despliega en Managed Cloud, en tus servidores o en local. Mismo proyecto, un clic.",BIZ_H:"Una factura, un responsable, un solo sitio donde mirar.",BIZ_1:"Frontend, backend, base de datos y dominio en un solo proyecto. Nada que unir, nada que perder.",BIZ_2:"T\xFA eliges d\xF3nde viven tus datos. Flujos revisados en seguridad y registros de auditor\xEDa.",BIZ_3:"Empieza gratis y pasa a planes de equipo cuando la app crezca."},TESTIMONIALS:{LABEL:"De quienes construyen",TITLE:"Lo que construyeron, en sus propias palabras",MORE:"Leer m\xE1s",LESS:"Mostrar menos",PIXL_NAME:"PIXL VISN",PIXL_ROLE:"Academia de artes medi\xE1ticas \xB7 Colonia, Alemania",PIXL_QUOTE:"Necesit\xE1bamos una app completa para nuestra academia: asistencia, sesiones, gesti\xF3n de alumnos, autenticaci\xF3n, importaciones de Excel. Con Ubex, todo se construy\xF3 en una sola plataforma. Nada externo. Solo Ubex.",MRW_NAME:"Mallorca Restaurant Week",MRW_ROLE:"Evento culinario anual \xB7 Mallorca, Espa\xF1a",MRW_QUOTE:"Ubex jug\xF3 un papel decisivo en el \xE9xito de Mallorca Restaurant Week. Incorporar a un gran n\xFAmero de restaurantes en tiempo r\xE9cord, manteniendo todo estructurado y claro, convirti\xF3 un proceso complejo en uno fluido.",TASK_NAME:"Equipo Ubex",TASK_ROLE:"Construido por el equipo, para el equipo",TASK_QUOTE:"Construimos todo nuestro gestor de tareas en Ubex: 10 flujos de trabajo, m\xE1s de 10 tablas, autenticaci\xF3n JWT, tareas programadas, la app entera. Nada externo. Lo usamos todos los d\xEDas.",VLF_NAME:"VON LILIENFELD",VLF_ROLE:"E-commerce \xB7 Paraguas y accesorios premium",VLF_QUOTE:"Es la primera vez que nos vamos de vacaciones sin nadie en la oficina ni en el almac\xE9n. Los flujos de trabajo funcionaron a la perfecci\xF3n y mantuvieron las ventas en nuestra tienda y en Otto.",R1_NAME:"Marc Ostrowski",R1_ROLE:"Fundador solo \xB7 Herramienta de anal\xEDtica SaaS",R1_QUOTE:"No soy desarrollador backend, pero Qira construy\xF3 mi esquema de base de datos, mi flujo de autenticaci\xF3n y mi API en una sola tarde. Lanc\xE9 el MVP antes de terminarme el caf\xE9.",R2_NAME:"Sana Iqbal",R2_ROLE:"Desarrolladora principal \xB7 agencia digital",R2_QUOTE:"Ahora presentamos webs de clientes en la mitad de tiempo. Qira arma el frontend y el backend juntos, as\xED que lo que antes era un sprint de dos semanas ahora es de dos d\xEDas, y los clientes siguen recibiendo un c\xF3digo que podemos entregar.",R3_NAME:"Elena Radu",R3_ROLE:"Propietaria \xB7 estudio de fitness boutique",R3_QUOTE:"Describ\xED lo que quer\xEDa en lenguaje sencillo y vi aparecer el sistema de reservas. Sin desarrollador, sin agencia, sin esperas. Lo puse en marcha yo misma el mismo d\xEDa.",R4_NAME:"Devon Marsh",R4_ROLE:"CTO \xB7 startup en fase inicial",R4_QUOTE:"Usamos Ubex para todo lo que no es nuestro producto principal: herramientas internas, paneles de administraci\xF3n, integraciones. Eso libera al equipo para dedicar tiempo de ingenier\xEDa a lo que realmente importa.",R5_NAME:"Priya Nair",R5_ROLE:"Coordinadora de programas \xB7 ONG comunitaria",R5_QUOTE:"No ten\xEDamos presupuesto para desarrolladores. Qira construy\xF3 nuestro sistema de inscripci\xF3n de voluntarios, la base de datos detr\xE1s y un panel para nuestros coordinadores, todo en una semana.",R6_NAME:"Tom\xE1s Herrera",R6_ROLE:"Gerente de operaciones \xB7 comercio online",R6_QUOTE:"Seguimiento de pedidos, sincronizaci\xF3n con proveedores, notificaciones a clientes: todo funciona con flujos que configur\xE9 yo mismo con Qira. Dej\xE9 de esperar tiempo de desarrollo para cada peque\xF1o cambio."},BUILD:{LABEL:"C\xF3mo funciona Ubex",TITLE:"Un solo agente lo construye todo",SUB:"La interfaz que ven tus usuarios y la l\xF3gica que corre detr\xE1s, en el mismo
4sitio.",TAB_FRONTEND:"Frontend",TAB_BACKEND:"Backend"}},INTERFACE:{HERO_LABEL:"UBEX INTERFACE",HERO_TITLE:"Crea apps full-stack con Qira. Elige tu modelo. Despliega en minutos.",HERO_SUBTITLE:"Qira es tu constructor IA dentro de Ubex Interface. Elige cualquier LLM \u2013 de Claude a GPT a Gemini \u2013 y construye aplicaciones completas de frontend + backend por conversaci\xF3n. Sube dise\xF1os, cambia de modelo a mitad de proyecto y despliega al instante.",HERO_STAT_MODELS:"Multi-LLM",HERO_STAT_MODELS_LBL:"Elige tu modelo",HERO_STAT_FULLSTACK:"Full-Stack",HERO_STAT_FULLSTACK_LBL:"Frontend + Backend + BD",HERO_STAT_DEPLOY:"1 clic",HERO_STAT_DEPLOY_LBL:"Publicar y lanzar",HERO_STAT_LIVE:"Visual Design",HERO_STAT_LIVE_LBL:"Seleccionar y editar en vivo",CTA_START_FREE:"Empezar gratis",CTA_BOOK_DEMO:"Reservar demo",MODELS_LABEL:"SELECCI\xD3N DE MODELO",MODELS_TITLE:"Elige el cerebro detr\xE1s de tu proyecto.",MODELS_SUBTITLE:"Qira funciona con el LLM que elijas. Cambia entre modelos en cualquier momento \u2013 usa un modelo potente para dise\xF1os complejos, uno m\xE1s ligero para ediciones r\xE1pidas. T\xFA controlas el coste y la capacidad.",MODELS_ANTHROPIC:"Anthropic",MODELS_OPENAI:"OpenAI",MODELS_GOOGLE:"Google",MODELS_OPUS:"Claude Opus 4.6",MODELS_SONNET:"Claude Sonnet",MODELS_HAIKU:"Claude Haiku",MODELS_GPT4:"GPT-4o",MODELS_GPT4_MINI:"GPT-4o Mini",MODELS_GEMINI_PRO:"Gemini Pro",MODELS_GEMINI_FLASH:"Gemini Flash",MODELS_SWITCH_TITLE:"Cambia de modelo sobre la marcha",MODELS_SWITCH_DESC:"No tienes que quedarte con un solo modelo para todo tu proyecto. Empieza con un modelo potente para arquitectura compleja, cambia a uno m\xE1s ligero para ajustes simples. Ubex te da esta opci\xF3n \u2013 optimiza por calidad o coste en cada paso.",FULLSTACK_LABEL:"CREACI\xD3N FULL-STACK",FULLSTACK_TITLE:"Qira construye el frontend. Vira se encarga del backend. Autom\xE1ticamente.",FULLSTACK_SUBTITLE:"Una vez seleccionado tu proyecto, Qira llama a Vira en vivo para crear el backend. Juntos construyen todo \u2013 p\xE1ginas frontend, APIs backend y tablas de base de datos. Una aplicaci\xF3n completa, desde una conversaci\xF3n.",FULLSTACK_F1_TITLE:"Generaci\xF3n de frontend",FULLSTACK_F1_DESC:"P\xE1ginas, componentes, formularios, dashboards, flujos de autenticaci\xF3n \u2013 Qira genera la UI completa desde tu descripci\xF3n.",FULLSTACK_F2_TITLE:"Creaci\xF3n autom\xE1tica de backend",FULLSTACK_F2_DESC:"Qira llama a Vira en tiempo real para crear REST APIs, flujos de autenticaci\xF3n y l\xF3gica de negocio \u2013 sin configuraci\xF3n manual.",FULLSTACK_F3_TITLE:"Tablas de base de datos",FULLSTACK_F3_DESC:"Vira crea y configura todas las tablas de base de datos que tu aplicaci\xF3n necesita. Usuarios, sesiones, contenido \u2013 todo estructurado y listo.",FULLSTACK_F4_TITLE:"Todo conectado",FULLSTACK_F4_DESC:"El frontend se comunica con el backend de forma nativa. Sin problemas de CORS, sin cableado de APIs. Simplemente funciona porque todo est\xE1 construido en la misma plataforma.",CONTROL_LABEL:"CONTROL TOTAL",CONTROL_TITLE:"Tu proyecto, tus reglas.",CONTROL_SUBTITLE:"Det\xE9n el modelo en cualquier momento. Sube im\xE1genes de referencia. Cambia de LLM a mitad de conversaci\xF3n. Ubex te da control completo sobre c\xF3mo se construye tu aplicaci\xF3n.",CONTROL_STOP_TITLE:"Det\xE9n en cualquier momento",CONTROL_STOP_DESC:"\xBFNo va en la direcci\xF3n correcta? Det\xE9n el modelo al instante y redirige. Siempre tienes el control del proceso de generaci\xF3n.",CONTROL_UPLOAD_TITLE:"Sube im\xE1genes y ejemplos",CONTROL_UPLOAD_DESC:"Arrastra capturas de pantalla, mockups o ejemplos de otros sitios web. Qira los usa como referencia para lograr el dise\xF1o que tienes en mente.",CONTROL_SWITCH_TITLE:"Cambia de modelo a mitad de proyecto",CONTROL_SWITCH_DESC:"Empieza con Claude Opus para arquitectura compleja, cambia a Haiku para cambios r\xE1pidos de texto. No tienes que usar el mismo modelo hasta el final.",PREVIEW_LABEL:"VISTA PREVIA Y C\xD3DIGO",PREVIEW_TITLE:"M\xEDralo en vivo. Edita el c\xF3digo. Ambos a la vez.",PREVIEW_SUBTITLE:"Interface te ofrece dos vistas lado a lado \u2013 una vista previa en vivo de lo que Qira cre\xF3, y una vista de c\xF3digo donde puedes ajustar cualquier cosa manualmente. Ve la estructura completa del proyecto, edita archivos directamente y observa los cambios reflejados al instante.",PREVIEW_LIVE_TITLE:"Vista previa en vivo",PREVIEW_LIVE_DESC:"Ve exactamente lo que Qira est\xE1 construyendo en tiempo real. Cada componente, cada p\xE1gina, cada interacci\xF3n \u2013 renderizado en vivo mientras se genera.",PREVIEW_CODE_TITLE:"Vista de c\xF3digo",PREVIEW_CODE_DESC:"Acceso completo al c\xF3digo fuente. Navega la estructura del proyecto, abre cualquier archivo y haz ajustes manuales. Tu c\xF3digo, a tu manera.",SELECT_LABEL:"HERRAMIENTA SELECT Y DISE\xD1O",SELECT_TITLE:"Haz clic en cualquier elemento. Dise\xF1a visualmente. Ahorra en costes de IA.",SELECT_SUBTITLE:"La herramienta de selecci\xF3n te permite hacer clic en cualquier elemento de la vista previa en vivo y modificarlo al instante. Un panel de dise\xF1o completo aparece con todas las opciones que necesitas. En lugar de gastar tokens pidiendo a la IA que cambie un tama\xF1o de fuente o un color, hazlo t\xFA mismo con un clic. La herramienta de dise\xF1o te ahorra dinero real.",SELECT_SAVE_TITLE:"Ahorra dinero con edici\xF3n visual",SELECT_SAVE_DESC:"Cada vez que le pides a la IA que ajuste un color, modifique espaciados o cambie una fuente \u2013 eso cuesta tokens. Con la herramienta de dise\xF1o, haces esos cambios t\xFA mismo en segundos, visualmente. Reserva la IA para lo que importa: construir nuevas funciones, l\xF3gica compleja y p\xE1ginas completas. Los ajustes de dise\xF1o simples nunca deber\xEDan costarte un prompt.",SELECT_CLASSES_TITLE:"Clases",SELECT_CLASSES_DESC:"A\xF1ade o elimina clases CSS al instante. Ve todas las clases aplicadas como etiquetas, elimina con un clic o a\xF1ade nuevas desde el campo de entrada.",SELECT_LAYOUT_TITLE:"Dise\xF1o",SELECT_LAYOUT_DESC:"Controla el modo de visualizaci\xF3n, tipo de posici\xF3n y comportamiento de desbordamiento. Cambia entre block, flex, grid, inline \u2013 todo con controles visuales.",SELECT_SIZE_TITLE:"Tama\xF1o",SELECT_SIZE_DESC:"Establece ancho, alto, dimensiones m\xEDn/m\xE1x con valores precisos en p\xEDxeles. Control total sobre cu\xE1nto espacio ocupa tu elemento.",SELECT_SPACING_TITLE:"Espaciado",SELECT_SPACING_DESC:"Ajusta padding y margin con valores vinculados o individuales. Afina el espacio alrededor de cada elemento.",SELECT_FILL_TITLE:"Relleno y bordes",SELECT_FILL_DESC:"Colores de fondo, degradados, opacidad, cursor, estilos de borde y radio de borde. Incluye opciones de degradado predefinidas para estilos r\xE1pidos.",SELECT_EFFECTS_TITLE:"Efectos",SELECT_EFFECTS_DESC:"A\xF1ade sombras de sutiles a dram\xE1ticas \u2013 Ninguna, SM, MD, LG, XL o Interior. Adem\xE1s valores de sombra personalizados para control preciso.",SELECT_TYPO_TITLE:"Tipograf\xEDa",SELECT_TYPO_DESC:"Familia tipogr\xE1fica, tama\xF1o, pe
4so, altura de l\xEDnea, espaciado entre letras, color, alineaci\xF3n y decoraci\xF3n. Estilizado de texto completo en un panel.",SELECT_RESPONSIVE_TITLE:"Puntos de quiebre responsivos",SELECT_RESPONSIVE_DESC:"Estiliza por punto de quiebre \u2013 Todos, \u2265640, \u2265768, \u22651024, \u22651280. Cada elemento puede tener estilos diferentes en distintos tama\xF1os de pantalla.",RESPONSIVE_LABEL:"VISTA PREVIA RESPONSIVA",RESPONSIVE_TITLE:"Escritorio. Tablet. M\xF3vil. M\xEDralo todo.",RESPONSIVE_SUBTITLE:"Tres modos de vista previa en vivo te permiten ver exactamente c\xF3mo se ve tu aplicaci\xF3n en cada dispositivo. Cambia entre vistas de Escritorio, Tablet y M\xF3vil al instante \u2013 sin adivinar, sin sorpresas al publicar.",RESPONSIVE_DESKTOP:"Escritorio",RESPONSIVE_TABLET:"Tablet",RESPONSIVE_MOBILE:"M\xF3vil",SETTINGS_LABEL:"CONFIGURACI\xD3N Y VERSIONADO",SETTINGS_TITLE:"Subdominios, temas y control de versiones. Integrado.",SETTINGS_SUBTITLE:"Configura tu despliegue, cambia de tema al instante y gestiona las versiones de tu aplicaci\xF3n \u2013 todo desde la configuraci\xF3n de Interface.",SETTINGS_SUBDOMAIN_TITLE:"Subdominio personalizado",SETTINGS_SUBDOMAIN_DESC:"\xBFNo quieres usar tu dominio principal? Configura un subdominio para publicar. Tu app se publica en tuapp.ubex.ai o cualquier dominio personalizado que conectes.",SETTINGS_THEME_TITLE:"Cambio de tema con un clic",SETTINGS_THEME_DESC:"\xBFUsaste un tema predeterminado de Ubex? C\xE1mbialo con un clic. Todos los colores se actualizan autom\xE1ticamente en cada elemento de tu p\xE1gina \u2013 botones, texto, fondos, todo.",SETTINGS_VERSION_TITLE:"Versionado de aplicaci\xF3n",SETTINGS_VERSION_DESC:"Cada publicaci\xF3n crea una versi\xF3n. A\xF1ade descripciones para rastrear qu\xE9 cambi\xF3. Revierte a cualquier versi\xF3n anterior y publ\xEDcala en segundos \u2013 solo selecci\xF3nala desde la barra superior.",DEMO_LABEL:"VERLO EN ACCI\xD3N",DEMO_TITLE:"Mira c\xF3mo Qira y Vira construyen una app completa juntas.",DEMO_SUBTITLE:"De la conversaci\xF3n a la aplicaci\xF3n desplegada \u2013 registro, login, dashboard, miembros, configuraci\xF3n y despliegue. Todo en un flujo.",DEMO_CHAT_INPUT:"Dile a Qira qu\xE9 construir...",DEMO_WAITING:"Esperando a Qira...",DEMO_VIRA_JOINED:"Vira se uni\xF3 a la conversaci\xF3n",DEMO_P1_USER:"Constr\xFAyeme una app SaaS con login por email, verificaci\xF3n OTP, un dashboard con estad\xEDsticas, una p\xE1gina de miembros y configuraci\xF3n.",DEMO_P1_QIRA:"En ello. Creando tu frontend completo \u2013 registro, login por email, verificaci\xF3n OTP, dashboard con barra lateral, tabla de miembros y p\xE1gina de configuraci\xF3n.",DEMO_P2_USER:"Ahora conecta todo a un backend real \u2013 auth, base de datos, endpoints API.",DEMO_P2_QIRA:"Eso necesita trabajo de backend. D\xE9jame traer a Vira.",DEMO_P2_VIRA1:"\xA1Hola! Yo me encargo del backend. Creando workflows de auth, tablas de base de datos para usuarios y miembros, y endpoints REST para todo.",DEMO_P2_VIRA2:"Listo. Workflows de registro y login OTP activos. API de miembros con paginaci\xF3n lista. Endpoint de estad\xEDsticas del dashboard conectado. Todo asegurado con JWT.",COMPARE_LABEL:"POR QU\xC9 UBEX",COMPARE_TITLE:"Todo en un lugar. No en cinco.",COMPARE_SUBTITLE:"Otras plataformas te obligan a unir hosting frontend, servicios backend, bases de datos, proveedores de auth y pipelines de despliegue. Ubex es una plataforma.",COMPARE_FRONTEND:"Frontend",COMPARE_BACKEND:"Backend",COMPARE_DATABASE:"Base de datos",COMPARE_AUTH:"Autenticaci\xF3n",COMPARE_HOSTING:"Hosting",COMPARE_SSL:"SSL",COMPARE_SERVICES:"Servicios a gestionar",COMPARE_UBEX_FRONTEND:"Qira genera desde el chat",COMPARE_UBEX_BACKEND:"Workflows visuales de Vira",COMPARE_UBEX_DB:"Alojado en Ubex, sin configuraci\xF3n",COMPARE_UBEX_AUTH:"JWT/OTP incluido",COMPARE_UBEX_HOSTING:"Despliegue con un clic",COMPARE_UBEX_SSL:"Autom\xE1tico",COMPARE_UBEX_SERVICES:"1 plataforma",COMPARE_ALT_FRONTEND:"React/Vue + c\xF3digo manual",COMPARE_ALT_BACKEND:"Express/Django + configuraci\xF3n de servidor",COMPARE_ALT_DB:"Servicio de BD separado",COMPARE_ALT_AUTH:"Auth0 / Firebase Auth",COMPARE_ALT_HOSTING:"Hosting separado frontend + API",COMPARE_ALT_SSL:"Manual o Let's Encrypt",COMPARE_ALT_SERVICES:"4-6
4servicios",CTA_TITLE:"Deja de parchear. Empieza a entregar.",CTA_SUBTITLE:"Describe tu app, obt\xE9n un full stack, despliega con un clic. Plan gratuito incluido \u2013 sin tarjeta de cr\xE9dito.",CTA_TALK:"Habla con nosotros",CTA_TRUST:"Plan gratuito \xB7 Managed Cloud \xB7 SSL incluido \xB7 Dominios personalizados"},FEATURES:{HERO_LABEL:"CARACTER\xCDSTICAS",HERO_TITLE:"Todo lo que necesitas para crear apps, automatizar trabajo y desplegar con confianza",HERO_SUBTITLE:"IA, integraciones, datos, seguridad - todo en una plataforma. 3 a\xF1os de ingenier\xEDa. Un motor potente.",HERO_CTA_START:"Empezar gratis",HERO_CTA_INTERFACE:"Ver interfaz",DIFF_PARALLEL_TITLE:"Ejecuci\xF3n paralela",DIFF_PARALLEL_DESC:"Corre 3x-10x m\xE1s r\xE1pido que las herramientas secuenciales. Tus workflows ejecutan tareas independientes simult\xE1neamente.",DIFF_DB_TITLE:"Soporte multi-base de datos",DIFF_DB_DESC:"MySQL, PostgreSQL, MongoDB. Conexiones seguras integradas. Tus datos permanecen protegidos.",DIFF_EU_TITLE:"Despliegue flexible",DIFF_EU_DESC:"Cloud, VPC u on-premise. Tus datos, tus reglas. Elige d\xF3nde viven.",DIFF_COMPLIANCE_TITLE:"Cumplimiento integrado",DIFF_COMPLIANCE_DESC:"Auto-auditor\xEDa, logs de ejecuci\xF3n, retenci\xF3n de datos. Avanzando hacia la alineaci\xF3n con GDPR, SOC 2 e ISO 27001.",SOLVES_LABEL:"QU\xC9 RESUELVE UBEX",SOLVES_TITLE:"Deja de parchear herramientas. Empieza a entregar productos.",SOLVES_SUBTITLE:"Ubex reemplaza el stack disperso de servicios, scripts y herramientas que mantienes hoy - con una plataforma.",BENTO_POPULAR:"M\xE1s popular",BENTO_AGENT_TITLE:"Crea tu propio agente IA",BENTO_AGENT_DESC:"Construye asistentes personales para tareas diarias - triaje de emails, consultas de datos, informes programados, alertas de Slack. Despliega como interfaz de chat, endpoint API o trabajo programado.",BENTO_AGENT_T1:"Res\xFAmenes diarios",BENTO_AGENT_T2:"Asistente de email",BENTO_AGENT_T3:"Monitor de datos",BENTO_AGENT_T4:"Soporte por chat",BENTO_AGENT_T5:"Informes programados",BENTO_BACKEND_TITLE:"Construye un backend completo",BENTO_BACKEND_DESC:"Todo lo que tu app necesita - cuentas de usuario, almacenamiento de datos, emails, archivos. Despliega endpoints de producci\xF3n desde un canvas visual.",BENTO_ENDPOINTS_DEPLOYED:"endpoints desplegados",BENTO_AUTOMATE_TITLE:"Automatiza cualquier cosa",BENTO_AUTOMATE_DESC:"Conecta bases de datos, APIs y servicios en pipelines programados o basad
4os en eventos. Procesa facturas, sincroniza cat\xE1logos, dispara alertas.",BENTO_AI_TITLE:"Lanza apps con IA",BENTO_AI_DESC:"Apps que piensan. Chatbots que conocen tu negocio. Documentos que se procesan solos. Conecta modelos IA a tus datos y despliega.",NODES_TITLE:"Todos los tipos de nodos",FILTER_ALL:"Todos",FILTER_AI:"IA & ML",FILTER_INTEGRATION:"Integraciones",FILTER_LOGIC:"L\xF3gica & C\xF3digo",FILTER_OUTPUT:"Salida",READ_DOCS:"Leer docs \u2192",MORE_NODES_TITLE:"M\xE1s nodos disponibles",MORE_NODES_DESC:"La plataforma incluye tipos de nodos adicionales m\xE1s all\xE1 de los listados aqu\xED. Se a\xF1aden nuevos nodos regularmente seg\xFAn el feedback de usuarios.",VIEW_ROADMAP:"Ver hoja de ruta \u2192",TRIGGERS_LABEL:"DISPARADORES",TRIGGERS_TITLE:"Inicia workflows a tu manera",TRIGGERS_SUBTITLE:"Cada workflow comienza con un disparador. Elige el que se adapte a tu caso de uso.",TRIGGER_DOCS_BTN:"Leer documentaci\xF3n \u2192",SECURITY_LABEL:"SEGURIDAD E INFRAESTRUCTURA",SECURITY_TITLE:"Seguridad de nivel producci\xF3n. No como ocurrencia tard\xEDa.",SECURITY_SUBTITLE:"Cada endpoint viene con los controles que esperar\xEDas de infraestructura escrita a mano - configurados visualmente.",SEC_API_AUTH_TITLE:"Autenticaci\xF3n API",SEC_API_AUTH_DESC:"Toggle de auth obligatorio en cada endpoint. Gesti\xF3n de claves API con validaci\xF3n de cabecera x-api-key.",SEC_IP_TITLE:"Whitelisting de IP",SEC_IP_DESC:"Restringe el acceso al endpoint a IPs espec\xEDficas o rangos CIDR. Controla exactamente qui\xE9n puede llegar a tus workflows.",SEC_CORS_TITLE:"Controles CORS",SEC_CORS_DESC:"Configura qu\xE9 or\xEDgenes pueden llamar a tus endpoints. Compartici\xF3n de recursos de origen cruzado detallada por workflow.",SEC_RATE_TITLE:"Limitaci\xF3n de tasa",SEC_RATE_DESC:"Solicitudes por minuto configurables en cada endpoint API. Previene abusos y controla el tr\xE1fico.",SEC_SSL_TITLE:"SSL/TLS y t\xFAneles SSH",SEC_SSL_DESC:"Todas las conexiones de base de datos cifradas. Enruta a trav\xE9s de t\xFAneles SSH para acceso seguro a bases de datos privadas.",SEC_LOGS_TITLE:"Logs de ejecuci\xF3n y auditor\xEDa",SEC_LOGS_DESC:"Depuraci\xF3n paso a paso. Retenci\xF3n de 7 a 365 d\xEDas. Registro de auditor\xEDa completo de cada ejecuci\xF3n de workflow.",INTEGRATIONS_LABEL:"INTEGRACIONES",INTEGRATIONS_TITLE:"Con\xE9ctate a las herramientas que ya usas",INTEGRATIONS_SUBTITLE:"Conectores predise\xF1ados y en crecimiento. M\xE1s el nodo HTTP Request para cualquier API.",INTEGRATIONS_NOTE:"\xBFNo encuentras tu herramienta? Usa el nodo HTTP Request para conectarte a cualquier REST API.",AI_LABEL:"CONSTRUCTORA IA",AI_TITLE:"Construido describi\xE9ndolo",AI_DESC1:"Sin configuraci\xF3n manual. Dile a Qira qu\xE9 debe hacer tu app y ella lo construye - triggers, condiciones, integraciones, base de datos, frontend - todo cableado y listo para desplegar.",AI_DESC2:"Tambi\xE9n puede editar trabajo existente, a\xF1adir funciones, cambiar integraciones o reestructurar l\xF3gica - todo por conversaci\xF3n.",AI_CTA:"Conoce a Qira",AI_DEMO_USER:"Monitorea un sitio web para bajadas de precio y av\xEDsame en Telegram",AI_DEMO_BOT:"Listo. Trigger programado \u2192 Web scraper \u2192 Condici\xF3n (verificaci\xF3n de precio) \u2192 Alerta Telegram. Ejecut\xE1ndose cada 30 minutos.",CTA_TITLE:"\xBFListo para construir?",CTA_SUBTITLE:"Empieza a crear apps y automatizaciones en minutos. Sin tarjeta de cr\xE9dito.",CTA_START:"Empezar gratis",CTA_TUTORIALS:"Explorar tutoriales",MODAL_LOADING:"Cargando documentaci\xF3n...",MODAL_TOC_TITLE:"En esta p\xE1gina",CHAT_USER1:"Resume los datos de ventas de hoy",CHAT_BOT1:"Ingresos de hoy: 12.450 \u20AC en 34 pedidos. Producto top: Plan Pro (18 ventas). +12% ingresos vs ayer.",CHAT_USER2:"Env\xEDa esto al canal #sales de Slack",CHAT_BOT2:"Listo. Resumen publicado en #sales con el gr\xE1fico diario adjunto.",TRIGGER_CHAT_NAME:"Chat",TRIGGER_CHAT_HEADLINE:"Construye IA conversacional",TRIGGER_CHAT_DESC:"Convierte cualquier workflow en un chatbot. Memoria de sesi\xF3n, respuestas en streaming y UI de chat integrada. Conecta GPT-4, Claude, Gemini - o todos.",TRIGGER_CHAT_F1:"Memoria de sesi\xF3n",TRIGGER_CHAT_F2:"Respuestas en streaming",TRIGGER_CHAT_F3:"UI de chat integrada",TRIGGER_CHAT_F4:"Soporte multi-LLM",TRIGGER_MANUAL_NAME:"Manual",TRIGGER_MANUAL_HEADLINE:"Ejecuta bajo demanda",TRIGGER_MANUAL_DESC:"Ejecuta workflows desde el dashboard con un clic. Pasa par\xE1metros de entrada, ve la ejecuci\xF3n paso a paso, depura en tiempo real.",TRIGGER_MANUAL_F1:"Ejecuci\xF3n con un clic",TRIGGER_MANUAL_F2:"Par\xE1metros de entrada",TRIGGER_MANUAL_F3:"Depuraci\xF3n paso a paso",TRIGGER_MANUAL_F4:"Logs de ejecuci\xF3n",TRIGGER_SCHEDULE_NAME:"Programado",TRIGGER_SCHEDULE_HEADLINE:"Automatiza con un horario",TRIGGER_SCHEDULE_DESC:"Programaci\xF3n basada en cron con total flexibilidad. Ejecuta cada minuto, hora, d\xEDa, semana o define expresiones cron personalizadas.",TRIGGER_SCHEDULE_F1:"Expresiones cron",TRIGGER_SCHEDULE_F2:"Soporte de zona horaria",TRIGGER_SCHEDULE_F3:"Intervalos personalizados",TRIGGER_SCHEDULE_F4:"Reintento en fallo",TRIGGER_API_NAME:"API",TRIGGER_API_HEADLINE:"Exp\xF3n como endpoint REST",TRIGGER_API_DESC:"Cada workflow obtiene una URL \xFAnica. A\xF1ade autenticaci\xF3n por clave API, whitelisting IP, limitaci\xF3n de tasa y controles CORS.",TRIGGER_API_F1:"URL de endpoint \xFAnica",TRIGGER_API_F2:"Auth por clave API",TRIGGER_API_F3:"Limitaci\xF3n de tasa",TRIGGER_API_F4:"Controles CORS",NODE_FLOW_START_TITLE:"Inicio de flujo",NODE_FLOW_START_DESC:"Punto de entrada para flujos de Workflow y Agente. Soporta disparadores Chat, Manual, Programado y API.",NODE_FLOW_START_H1:"M\xFAltiples disparadores",NODE_FLOW_START_H2:"Interfaz de chat",NODE_FLOW_START_H3:"Programado & API",NODE_FLOW_START_H4:"Capacidades de agente",NODE_CONDITIONS_TITLE:"Condiciones",NODE_CONDITIONS_DESC:"Ramifica tu workflow bas\xE1ndote en datos. Soporte para condiciones complejas con l\xF3gica AND/OR.",NODE_CONDITIONS_H1:"Ramas if/else",NODE_CONDITIONS_H2:"M\xFAltiples condiciones",NODE_CONDITIONS_H3:"Comparaci\xF3n de datos",NODE_CONDITIONS_H4:"Coincidencia regex",NODE_DELAY_TITLE:"Retraso",NODE_DELAY_DESC:"Pausa la ejecuci\xF3n del workflow por una duraci\xF3n especificada. \xDAtil para limitaci\xF3n de tasa o esperar procesos externos.",NODE_DELAY_H1:"Duraci\xF3n configurable",NODE_DELAY_H2:"M\xFAltiples unidades de tiempo",NODE_DELAY_H3:"Limitaci\xF3n de tasa",NODE_DELAY_H4:"Cancelable",NODE_MCP_TITLE:"Servidor MCP",NODE_MCP_DESC:"Con\xE9ctate a un servidor MCP externo e invoca una herramienta. Soporta transportes SSE y HTTP con autenticaci\xF3n API Key o Bearer Token.",NODE_MCP_H1:"Transporte SSE & HTTP",NODE_MCP_H2:"Auto-descubrir herramientas",NODE_MCP_H3:"Auth API Key & Bearer",NODE_MCP_H4:"Argumentos din\xE1micos",NODE_VALIDATOR_TITLE:"Validador de datos",NODE_VALIDATOR_DESC:"Valida y estructura datos usando JSON Schema. Asegura que los datos se ajusten a tipos, formatos y restricciones esperados.",NODE_VALIDATOR_H1:"Validaci\xF3n de esquema",NODE_VALIDATOR_H2:"Verificaci\xF3n de tipos",NODE_VALIDATOR_H3:"Restricciones de formato",NODE_VALIDATOR_H4:"Campos requeridos",NODE_FORLOOP_TITLE:"Bucles For",NODE_FORLOOP_DESC:"Itera sobre arrays y colecciones. Procesa elementos en paralelo o secuencialmente. Agrega resultados autom\xE1ticamente.",NODE_FORLOOP_H1:"Iteraci\xF3n de arrays",NODE_FORLOOP_H2:"Procesamiento paralelo",NODE_FORLOOP_H3:"Agregaci\xF3n de resultados",NODE_FORLOOP_H4:"Condiciones de ruptura",NODE_SUBWORKFLOW_TITLE:"Sub-workflow",NODE_SUBWORKFLOW_DESC:"Organiza l\xF3gica compleja en sub-workflows reutilizables. Llama workflows desde otros workflows.",NODE_SUBWORKFLOW_H1:"L\xF3gica reutilizable",NODE_SUBWORKFLOW_H2:"Ejecuci\xF3n anidada",NODE_SUBWORKFLOW_H3:"Paso de par\xE1metros",NODE_SUBWORKFLOW_H4:"Aislamiento de errores",NODE_TRYCATCH_TITLE:"Try / Catch",NODE_TRYCATCH_DESC:"Manejo de errores y l\xF3gica de reintento para tus workflows. Captura errores, configura reintentos con backoff fijo o exponencial.",NODE_TRYCATCH_H1:"Reintentos configurables",NODE_TRYCATCH_H2:"Backoff exponencial",NODE_TRYCATCH_H3:"Enrutamiento de errores",NODE_TRYCATCH_H4:"Control de retraso",NODE_THROWERROR_TITLE:"Lanzar error",NODE_THROWERROR_DESC:"Detiene inmediatamente el workflow y lanza un error. \xDAsalo dentro de un Try/Catch o solo para detener la ejecuci\xF3n.",NODE_THROWERROR_H1:"Mensaje de error personalizado",NODE_THROWERROR_H2:"C\xF3digo de error opcional",NODE_THROWERROR_H3:"Integraci\xF3n Try/Catch",NODE_THROWERROR_H4:"Verificaci\xF3n de precondici\xF3n",NODE_HUMANLOOP_TITLE:"Humano en el bucle",NODE_HUMANLOOP_DESC:"Pausa workflows para revisi\xF3n humana. Aprueba o rechaza antes de continuar. Timeout configurable con fallback de auto-aprobaci\xF3n/rechazo.",NODE_HUMANLOOP_H1:"Puertas de aprobaci\xF3n",NODE_HUMANLOOP_H2:"Timeout configurable",NODE_HUMANLOOP_H3:"Auto-aprobaci\xF3n/rechazo",NODE_HUMANLOOP_H4:"Visualizaci\xF3n de contexto",NODE_MODEL_TITLE:"Modelo",NODE_MODEL_DESC:"Con\xE9ctate a cualquier proveedor LLM principal con una interfaz unificada. Cambia entre GPT-4, Claude, Gemini, Llama y Mistral sin modificar tu workflow.",NODE_MODEL_H1:"Soporte multi-proveedor",NODE_MODEL_H2:"Memoria de sesi\xF3n",NODE_MODEL_H3:"Control de temperatura",NODE_MODEL_H4:"Seguimiento de tokens",NODE_AGENT_TITLE:"Agente",NODE_AGENT_DESC:"Agente IA aut\xF3nomo que apila nodos como herramientas. Selecciona un modelo y accede autom\xE1ticamente a todos los datos de nodos internos.",NODE_AGENT_H1:"Nodo contenedor",NODE_AGENT_H2:"Acceso auto a herramientas",NODE_AGENT_H3:"Razonamiento multi-paso",NODE_AGENT_H4:"Apila cualquier nodo",NODE_IMAGEGEN_TITLE:"Generaci\xF3n de im\xE1genes",NODE_IMAGEGEN_DESC:"Genera im\xE1genes usando DALL-E, Stable Diffusion y otros modelos IA. Crea visuales directamente en tu workflow.",NODE_IMAGEGEN_H1:"DALL-E 3",NODE_IMAGEGEN_H2:"Stable Diffusion",NODE_IMAGEGEN_H3:"Edici\xF3n de im\xE1genes",NODE_IMAGEGEN_H4:"Control de estilo",NODE_QUERYDATA_TITLE:"Consultar datos",NODE_QUERYDATA_DESC:"Busca en una fuente de datos usando b\xFAsqueda sem\xE1ntica, por palabras clave o h\xEDbrida. Controla el recuento de resultados y el filtrado de relevancia.",NODE_QUERYDATA_H1:"B\xFAsqueda sem\xE1ntica",NODE_QUERYDATA_H2:"Recuperaci\xF3n h\xEDbrida",NODE_QUERYDATA_H3:"Umbral de relevancia",NODE_QUERYDATA_H4:"Diversidad MMR",NODE_WRITEDATA_TITLE:"Escribir datos",NODE_WRITEDATA_DESC:"Realiza operaciones de escritura en base de datos - insertar, actualizar, upsert o eliminar - contra una fuente de datos seleccionad
4a.",NODE_WRITEDATA_H1:"Insertar & actualizar",NODE_WRITEDATA_H2:"Soporte upsert",NODE_WRITEDATA_H3:"Condiciones where",NODE_WRITEDATA_H4:"Mapeo de columnas",NODE_EXTRACTFILE_TITLE:"Extraer de archivo",NODE_EXTRACTFILE_DESC:"Extrae texto y datos estructurados de archivos subidos. Soporte para PDFs, documentos, hojas de c\xE1lculo y m\xE1s.",NODE_EXTRACTFILE_H1:"Parsing PDF",NODE_EXTRACTFILE_H2:"Extracci\xF3n de texto",NODE_EXTRACTFILE_H3:"Detecci\xF3n de tablas",NODE_EXTRACTFILE_H4:"Multi-formato",NODE_DATABASE_TITLE:"Base de datos",NODE_DATABASE_DESC:"Ejecuta consultas SQL en bases de datos conectadas. Lee, escribe y gestiona datos directamente desde tus workflows.",NODE_DATABASE_H1:"Consultas SQL",NODE_DATABASE_H2:"M\xFAltiples bases de datos",NODE_DATABASE_H3:"Consultas parametrizadas",NODE_DATABASE_H4:"Mapeo de resultados",NODE_SETVARS_TITLE:"Establecer variables",NODE_SETVARS_DESC:"Define variables con nombre disponibles para todos los nodos siguientes. Inicializa valores, almacena constantes o prepara datos.",NODE_SETVARS_H1:"Creaci\xF3n de variables",NODE_SETVARS_H2:"Valores din\xE1micos",NODE_SETVARS_H3:"Sintaxis de plantilla",NODE_SETVARS_H4:"Datos reutilizables",NODE_DATAMAPPER_TITLE:"Mapeador de datos",NODE_DATAMAPPER_DESC:"Transforma y remodela datos definiendo una plantilla de salida JSON. Usa interpolaci\xF3n de variables para inyectar valores din\xE1micos.",NODE_DATAMAPPER_H1:"Plantillas JSON",NODE_DATAMAPPER_H2:"Remodelado de datos",NODE_DATAMAPPER_H3:"Inyecci\xF3n de variables",NODE_DATAMAPPER_H4:"Mapeo de estructura",NODE_FILE_TITLE:"Archivo",NODE_FILE_DESC:"Realiza operaciones del sistema de archivos en tus workflows. Crea, lee, escribe, renombra y elimina archivos.",NODE_FILE_H1:"Crear & leer",NODE_FILE_H2:"Escribir & renombrar",NODE_FILE_H3:"Eliminar archivos",NODE_FILE_H4:"Rutas din\xE1micas",NODE_CODE_TITLE:"Ejecuci\xF3n de c\xF3digo",NODE_CODE_DESC:"Escribe c\xF3digo JavaScript personalizado cuando necesitas control total. Accede a datos del workflow y devuelve resultados transformados.",NODE_CODE_H1:"JavaScript",NODE_CODE_H2:"Acceso completo a datos",NODE_CODE_H3:"L\xF3gica personalizada",NODE_CODE_H4:"Soporte async",NODE_HTTP_TITLE:"Solicitud HTTP",NODE_HTTP_DESC:"Llama a cualquier REST API con control total sobre cabeceras, autenticaci\xF3n y cuerpo de solicitud. Soporte para todos los m\xE9todos HTTP.",NODE_HTTP_H1:"Todos los m\xE9todos HTTP",NODE_HTTP_H2:"Cabeceras personalizadas",NODE_HTTP_H3:"Soporte de auth",NODE_HTTP_H4:"Parsing de respuesta",NODE_SCRAPER_TITLE:"Web Scraper",NODE_SCRAPER_DESC:"Extrae contenido de cualquier p\xE1gina web. Usa selectores CSS o deja que la IA identifique los datos que necesitas.",NODE_SCRAPER_H1:"Selectores CSS",NODE_SCRAPER_H2:"Extracci\xF3n IA",NODE_SCRAPER_H3:"Paginaci\xF3n",NODE_SCRAPER_H4:"Renderizado JavaScript",NODE_INTEGRATIONS_TITLE:"Integraciones",NODE_INTEGRATIONS_DESC:"Conectores predise\xF1ados para servicios populares. Slack, Discord, email, bases de datos y m\xE1s. Sin conocimiento de API requerido.",NODE_INTEGRATIONS_H1:"Slack & Discord",NODE_INTEGRATIONS_H2:"Email (SMTP)",NODE_INTEGRATIONS_H3:"Bases de datos",NODE_INTEGRATIONS_H4:"Almacenamiento en nube",NODE_OUTPUT_TITLE:"Salida simple",NODE_OUTPUT_DESC:"Devuelve datos de tu workflow como respuesta API. Formatea como JSON, texto o HTML. Perfecto para microservicios IA.",NODE_OUTPUT_H1:"Respuestas JSON",NODE_OUTPUT_H2:"Formato personalizado",NODE_OUTPUT_H3:"C\xF3digos de estado",NODE_OUTPUT_H4:"Control de cabeceras",CAT_AI:"IA & ML",CAT_INTEGRATION:"Integraci\xF3n",CAT_LOGIC:"L\xF3gica & C\xF3digo",CAT_OUTPUT:"Salida"},TUTORIALS:{HERO_LABEL:"APRENDE",HERO_TITLE:"Tutoriales",HERO_SUBTITLE:"Gu\xEDas paso a paso para construir funcionalidades reales con workflows de Ubex.",DISCLAIMER:"Estos tutoriales se mejoran y actualizan continuamente. Si los usas en producci\xF3n, lo haces bajo tu propia responsabilidad. Siempre revisa y prueba los workflows antes de desplegar.",FILTER_ALL:"Todos",FILTER_AVAILABLE:"Disponibles",FILTER_IN_PROGRESS:"En progreso",DIFF_BEGINNER:"Principiante",DIFF_INTERMEDIATE:"Intermedio",DIFF_ADVANCED:"Avanzado",DIFF_EXPERT:"Experto",EMPTY_TITLE:"No se encontraron tutoriales",EMPTY_DESC:'No hay tutoriales que coincidan con el filtro "{{filter}}". Prueba un filtro diferente o vuelve pronto.',EMPTY_RESET:"Mostrar todos los tutoriales",STATUS_IN_PROGRESS:"En progreso",CAT_AUTH:"Autenticaci\xF3n",CAT_AUTH_DESC:"Construye flujos de login seguros, registro, verificaci\xF3n de email y autenticaci\xF3n multifactor.",AUTH_PREREQ_TITLE:"Requisitos previos de autenticaci\xF3n",AUTH_PREREQ_DESC:"Configuraci\xF3n de base de datos, configuraci\xF3n de secretos y lista de verificaci\xF3n de seguridad para todo el sistema de auth.",AUTH_REGIST
4ER_TITLE:"Registro de usuario",AUTH_REGISTER_DESC:"Validaci\xF3n de esquema, hashing de contrase\xF1a, detecci\xF3n de duplicados, tokens hasheados y verificaci\xF3n de email.",AUTH_EMAIL_TITLE:"Verificaci\xF3n de email",AUTH_EMAIL_DESC:"Verificaci\xF3n segura basada en tokens con limitaci\xF3n de tasa, tokens hasheados, expiraci\xF3n y registro de auditor\xEDa.",AUTH_LOGIN_TITLE:"Login de usuario",AUTH_LOGIN_DESC:"Autenticar usuarios, verificar estado de cuenta y emitir tokens JWT.",AUTH_FORGOT_TITLE:"Contrase\xF1a olvidada",AUTH_FORGOT_DESC:"Restablecimiento seguro de contrase\xF1a con limitaci\xF3n de tasa, tokens hasheados, expiraci\xF3n y registro de auditor\xEDa.",AUTH_CHANGE_TITLE:"Cambiar contrase\xF1a",AUTH_CHANGE_DESC:"Cambio de contrase\xF1a autenticado por JWT con verificaci\xF3n de contrase\xF1a actual y aplicaci\xF3n de requisitos de complejidad.",AUTH_OTP_TITLE:"Autenticaci\xF3n OTP",AUTH_OTP_DESC:"Autenticaci\xF3n con contrase\xF1a de un solo uso para mayor seguridad por email.",AUTH_TOTP_TITLE:"Google Authenticator (TOTP)",AUTH_TOTP_DESC:"Contrase\xF1as de un solo uso basadas en tiempo con Google Authenticator o Authy.",CAT_PAYMENTS:"Pagos",CAT_PAYMENTS_DESC:"Integra proveedores de pago como Stripe para checkouts, suscripciones y webhooks.",PAY_STRIPE_TITLE:"Sesi\xF3n de Stripe Checkout",PAY_STRIPE_DESC:"Crea una sesi\xF3n de Stripe Checkout y devuelve la URL de pago a tu frontend.",CAT_CONTACT:"Contacto",CAT_CONTACT_DESC:"Construye formularios de contacto con validaci\xF3n, almacenamiento y emails de confirmaci\xF3n autom\xE1ticos.",CONTACT_FORM_TITLE:"Formulario de contacto web",CONTACT_FORM_DESC:"Valida env\xEDos, almacena en una tabla y env\xEDa emails de confirmaci\xF3n a trav\xE9s de Resend.",CAT_TELEGRAM:"Telegram",CAT_TELEGRAM_DESC:"Construye bots de Telegram con IA con b\xFAsqueda en base de conocimiento, respuestas LLM e integraci\xF3n webhook.",TELEGRAM_BOT_TITLE:"Bot IA de Telegram",TELEGRAM_BOT_DESC:"Conecta un bot de Telegram a un asistente con IA con RAG y respuestas LLM.",CAT_WHATSAPP:"WhatsApp",CAT_WHATSAPP_DESC:"Construye bots de WhatsApp con IA con integraci\xF3n Twilio, validaci\xF3n de firma webhook y mensajer\xEDa segura.",WHATSAPP_BOT_TITLE:"Bot IA de WhatsApp",WHATSAPP_BOT_DESC:"Conecta WhatsApp a un asistente IA con verificaci\xF3n webhook de Twilio y validaci\xF3n de firma HMAC-SHA1.",CAT_DISCORD:"Discord",CAT_DISCORD_DESC:"Conecta bots de Discord a tus workflows para tickets, notificaciones y automatizaci\xF3n.",DISCORD_TICKETS_TITLE:"Tickets de soporte Discord",DISCORD_TICKETS_DESC:"Permite a los usuarios enviar tickets de soporte mediante comandos slash de Discord, verificados y almacenados autom\xE1ticamente.",DISCORD_STATS_TITLE:"Estad\xEDsticas del servidor Discord",DISCORD_STATS_DESC:"Obt\xE9n conteos de miembros en vivo y presencia online de tu servidor Discord.",CTA_TITLE:"\xBFNo encuentras lo que buscas?",CTA_SUBTITLE:"Consulta nuestra documentaci\xF3n o contacta con la comunidad en Discord.",CTA_DOCS:"Documentaci\xF3n",CTA_DISCORD:"Unirse a Discord"},ROADMAP:{HERO_LABEL:"HOJA DE RUTA DEL PRODUCTO",HERO_TITLE:"Lo que estamos construyendo",HERO_SUBTITLE:"Lanzamos el motor. Ahora estamos construyendo el ecosistema a su alrededor. Esto es lo que est\xE1 hecho, en progreso y lo que viene.",LEGEND_COMPLETED:"COMPLETADO",LEGEND_IN_PROGRESS:"EN PROGRESO",LEGEND_PLANNED:"PLANIFICADO",LEGEND_EXPLORING:"EN EXPLORACI\xD3N",STATUS_COMPLETED:"Completado",STATUS_IN_PROGRESS:"En progreso",STATUS_PLANNED:"Planificado",STATUS_EXPLORING:"En exploraci\xF3n",Q4_2024:"T4 2024",Q1_2025:"T1 2025",Q2_2025:"T2 2025",Q3_Q4_2025:"T3\u2013T4 2025",Q1_2026:"T1 2026",Q2_2026:"T2 2026",FUTURE:"Futuro",DATE_DEC_2024:"Dic 2024",DATE_NOV_2024:"Nov 2024",DATE_OCT_2024:"Oct 2024",DATE_JAN_2025:"Ene 2025",DATE_FEB_2025:"Feb 2025",DATE_MAR_2025:"Mar 2025",DATE_APR_2025:"Abr 2025",DATE_MAY_2025:"May 2025",DATE_JUN_2025:"Jun 2025",DATE_Q3_2025:"T3 2025",DATE_Q4_2025:"T4 2025",DATE_Q1_2026:"T1 2026",DATE_Q2_2026:"T2 2026",VISUAL_ENGINE_TITLE:"Motor de ejecuci\xF3n visual",VISUAL_ENGINE_DESC:"Crea apps visualmente sin c\xF3digo. Interfaz drag-and-drop con m\xE1s de 21 bloques y ejecuci\xF3n paralela.",MULTI_LLM_TITLE:"Soporte multi-LLM",MULTI_LLM_DESC:"Con\xE9ctate a ChatGPT, Claude, Gemini y m\xE1s de
4sde una sola interfaz. Cambia de proveedor en cualquier momento.",RAG_TITLE:"RAG y fuentes de datos",RAG_DESC:"IA que busca en tus documentos. Almacenamiento vectorial integrado y procesamiento de documentos para bases de conocimiento.",TEMPLATES_TITLE:"Plantillas de workflow",TEMPLATES_DESC:"Plantillas predise\xF1adas para casos comunes: generaci\xF3n de contenido, extracci\xF3n de datos, soporte al cliente.",TEAM_COLLAB_TITLE:"Colaboraci\xF3n en equipo",TEAM_COLLAB_DESC:"Espacios de trabajo compartidos, permisos basados en roles y colaboraci\xF3n en tiempo real en workflows.",API_AUTH_TITLE:"Endpoints API y autenticaci\xF3n",API_AUTH_DESC:"Convierte cualquier workflow en una API en vivo con seguridad. Autenticaci\xF3n, limitaci\xF3n de tasa, whitelisting IP y controles de acceso.",SCHEDULED_TITLE:"Workflows programados",SCHEDULED_DESC:"Ejecuta tareas autom\xE1ticamente seg\xFAn un horario. Triggers tipo cron con soporte de zona horaria.",WEBHOOKS_TITLE:"Triggers de webhook",WEBHOOKS_DESC:"Inicia workflows desde eventos externos. Con\xE9ctate a cualquier app que env\xEDe webhooks, con manejo autom\xE1tico del payload.",ANALYTICS_TITLE:"Anal\xEDticas avanzadas",ANALYTICS_DESC:"M\xE9tricas detalladas de ejecuci\xF3n de workflows, seguimiento de costes e informaci\xF3n sobre rendimiento.",QIRA_TITLE:"Qira \u2013 Constructora IA de Apps",QIRA_DESC:"Asistente IA que construye aplicaciones completas desde la conversaci\xF3n. Describe lo que necesitas y Qira lo crea: frontend, backend, base de datos y despliegue.",HOSTING_TITLE:"Hosting y despliegue de frontend",HOSTING_DESC:"Despliegue con un clic para frontends con dominios personalizados, SSL y hosting Cloud. Construye con Qira o trae el tuyo.",GDPR_SOC2_TITLE:"GDPR y SOC 2 Tipo II",GDPR_SOC2_DESC:"Avanzando hacia la conformidad GDPR y certificaci\xF3n SOC 2 Tipo II. Logs de auditor\xEDa, controles de retenci\xF3n de datos y acceso basado en roles en todos los planes.",EU_AI_ACT_TITLE:"Alineaci\xF3n con gobernanza IA",EU_AI_ACT_DESC:"Registros de auditor\xEDa de ejecuci\xF3n para transparencia IA, nodos condicionales para supervisi\xF3n human-in-the-loop y controles de gobernanza de datos.",EU_DEPLOY_TITLE:"Opciones de despliegue flexible",EU_DEPLOY_DESC:"Cloud, VPC y despliegue on-premise. Ejecuta todo el motor en tu centro de datos. Air-gapped si es necesario.",DOCS_TITLE:"Documentaci\xF3n de la plataforma",DOCS_DESC:"Documentaci\xF3n completa que cubre todos los nodos, opciones de configuraci\xF3n y gu\xEDas paso a paso para construir y desplegar workflows.",MARKETPLACE_TITLE:"Marketplace de workflows certificados",MARKETPLACE_DESC:"Plantillas de workflow auditadas en seguridad, construidas por ingenieros certificados. Cada workflow revisado en seguridad y cumplimiento.",VERSION_CONTROL_TITLE:"Control de versiones",VERSION_CONTROL_DESC:"Versionado tipo Git para workflows con branching, merging y rollback. Esencial para la gobernanza enterprise.",ISO_TITLE:"Certificaci\xF3n ISO 27001",ISO_DESC:"Gesti\xF3n de seguridad de la informaci\xF3n alineada con est\xE1ndares internacionales. Construido sobre las bases de SOC 2.",SEC_COMPLIANCE_TITLE:"Seguridad y cumplimiento",SEC_COMPLIANCE_DESC:"Soporte mTLS para autenticaci\xF3n servicio a servicio. Logs de auditor\xEDa exportables a S3, SIEM y plataformas externas de observabilidad.",AUTO_AUDIT_TITLE:"Capa de cumplimiento auto-auditor\xEDa",AUTO_AUDIT_DESC:"Seguimiento y reportes de cumplimiento automatizados. Genera informes de auditor\xEDa para gobernanza IA, GDPR y SOC 2 con un clic.",MULTI_REGION_TITLE:"Despliegue multi-regi\xF3n",MULTI_REGION_DESC:"Despliega workflows en m\xFAltiples regiones para redundancia y optimizaci\xF3n de latencia. Enrutamiento consciente de jurisdicci\xF3n.",MOBILE_TITLE:"Monitorizaci\xF3n m\xF3vil",MOBILE_DESC:"Monitoriza y dispara workflows desde dispositivos iOS y Android. Alertas de ejecuci\xF3n en tiempo real.",FEEDBACK_TITLE:"\xBFTienes una solicitud de funcionalidad?",FEEDBACK_DESC:"Construimos en p\xFAblico y priorizamos seg\xFAn el feedback de la comunidad. Dinos qu\xE9 te gustar\xEDa ver a continuaci\xF3n.",FEEDBACK_CTA:"Enviar feedback",FEEDBACK_DISCORD:"Unirse a Discord",TAG_CORE:"N\xFAcleo",TAG_EXECUTION:"Ejecuci\xF3n",TAG_LLM:"LLM",TAG_INTEGRATION:"Integraci\xF3n",TAG_RAG:"RAG",TAG_TEMPLATES:"Plantillas",TAG_UX:"UX",TAG_TEAMS:"Equipos",TAG_ENTERPRISE:"Enterprise",TAG_API:"API",TAG_SECURITY:"Seguridad",TAG_AUTOMATION:"Automatizaci\xF3n",TAG_TRIGGERS:"Disparadores",TAG_WEBHOOKS:"Webhooks",TAG_ANALYTICS:"Anal\xEDticas",TAG_MONITORING:"Monitorizaci\xF3n",TAG_AI:"IA",TAG_BACKEND:"Backend",TAG_FRONTEND:"Frontend",TAG_HOSTING:"Hosting",TAG_DEPLOYMENT:"Despliegue",TAG_GDPR:"GDPR",TAG_SOC2:"SOC 2",TAG_COMPLIANCE:"Cumplimiento",TAG_EU_AI_ACT:"Gobernanza IA",TAG_ON_PREMISE:"On-Premise",TAG_VPC:"VPC",TAG_DOCS:"Docs",TAG_PLATFORM:"Plataforma",TAG_MARKETPLACE:"Marketplace",TAG_VERSIONING:"Versionado",TAG_GOVERNANCE:"Gobernanza",TAG_ISO:"ISO 27001",TAG_MTLS:"mTLS",TAG_AUDIT_LOGS:"Logs de auditor\xEDa",TAG_SIEM:"SIEM",TAG_AUTO_AUDIT:"Auto-auditor\xEDa",TAG_INFRASTRUCTURE:"Infraestructura",TAG_EU_DEPLOY:"Despliegue flexible",TAG_MOBILE:"M\xF3vil"},MEET_VIRA:{HERO_LABEL:"CONOCE A VIRA",HERO_TITLE:"Deja de configurar. Empieza a describir.",HERO_SUBTITLE:"Vira es la IA dentro de Ubex que convierte lenguaje natural en workflows y agentes en vivo. T\xFA hablas, ella construye.",DEMO_LABEL:"DEMO EN VIVO",DEMO_TITLE:"Mira a Vira trabajar",DEMO_SUBTITLE:"Una conversaci\xF3n real se convierte en un workflow en vivo \u2013 nodo a nodo.",DEMO_INPUT_PLACEHOLDER:"P\xEDdele a Vira que construya algo...",DEMO_USER1:"Crea un workflow que escuche pagos webhook de Stripe, verifique si el monto supera los 100 \u20AC, env\xEDe una notificaci\xF3n a Slack y lo registre en la base de datos",DEMO_VIRA1:"En ello. Conecto un trigger webhook de Stripe, a\xF1ado un nodo de condici\xF3n para montos superiores a 100 \u20AC, conecto Slack para notificaciones y a\xF1ado una escritura en base de datos para el registro. Construyendo ahora...",DEMO_USER2:"A\xF1ade tambi\xE9n una notificaci\xF3n por email al equipo de finanzas despu\xE9s del mensaje de Slack",DEMO_VIRA2:"A\xF1adir\xE9 un nodo HTTP Request para la API de Gmail justo despu\xE9s de Slack. La misma condici\xF3n aplica \u2013 solo para cargos superiores a 100 \u20AC.",CANVAS_HEADER:"Canvas de Workflow",CANVAS_NODES:"nodos",CANVAS_BRANCHES:"ramas",CAP_LABEL:"CAPACIDADES",CAP_TITLE:"Qu\xE9 puede hacer Vira",CAP_SUBTITLE:"Construye workflows, crea agentes, edita sobre la marcha \u2013 todo por conversaci\xF3n.",CAP_BUILD_TITLE:"Construir workflows",CAP_BUILD_DESC:'Di "conecta Stripe a Slack cuando los pagos superen 100 \u20AC" y Vira ensambla el trigger, la condici\xF3n, la integraci\xF3n y los no
4dos de salida \u2013 desplegado en segundos.',CAP_AGENTS_TITLE:"Crear agentes",CAP_AGENTS_DESC:"Describe un agente de soporte que lea tickets, consulte tu base de conocimiento y redacte respuestas. Vira conecta las herramientas, la memoria y las instrucciones en un agente listo para ejecutar.",CAP_EDIT_TITLE:"Editar workflows en vivo",CAP_EDIT_DESC:'"A\xF1ade un paso de email despu\xE9s de Slack" \u2013 Vira inserta el nodo, reconecta el flujo y mantiene todo funcionando. Sin reconstruir.',CAP_ISSUES_TITLE:"Detectar problemas temprano",CAP_ISSUES_DESC:"Vira se\xF1ala manejadores de errores faltantes, sugiere l\xF3gica de reintento para APIs inestables y advierte cuando una rama de condici\xF3n no tiene fallback \u2013 mientras a\xFAn est\xE1s construyendo.",CAP_PLAIN_TITLE:"Lenguaje simple, l\xF3gica real",CAP_PLAIN_DESC:"Describe flujos como se los explicar\xEDas a un colega. Vira traduce tus palabras a nodos Ubex, condiciones y transformaciones de datos autom\xE1ticamente.",CAP_NODES_TITLE:"Cada nodo Ubex disponible",CAP_NODES_DESC:"Peticiones HTTP, escrituras en base de datos, modelos IA, m\xE1s de 50 integraciones \u2013 Vira tiene acceso a toda la biblioteca de nodos Ubex y elige los correctos para tu caso.",COMP_LABEL:"LA DIFERENCIA",COMP_TITLE:"Construye en minutos, no horas",COMP_WITHOUT:"Sin Vira",COMP_STEP1:"Arrastra y coloca 12 nodos en el canvas",COMP_STEP2:"Configura los ajustes de cada nodo manualmente",COMP_STEP3:"Conecta las conexiones entre cada nodo",COMP_STEP4:"Configura condiciones y l\xF3gica de ramificaci\xF3n",COMP_STEP5:"Depura, prueba, corrige, repite",COMP_STEP6:"Despliega y configura el endpoint",COMP_TIME_WITHOUT:"~30-60 minutos",COMP_WITH:"Con Vira",COMP_WITH_PROMPT:'"Crea un workflow que escuche pagos de Stripe superiores a 100 \u20AC, notifique a Slack, env\xEDe email a finanzas y registre en la base de datos."',COMP_WITH_RESULT:"Workflow construido, conectado y desplegado.",COMP_TIME_WITH:"~30 segundos",EX_LABEL:"EJEMPLOS",EX_TITLE:"Del prompt a producci\xF3n",EX_SUBTITLE:"Peticiones reales y lo que Vira crea a partir de ellas.",EX1_PROMPT:"Construye un agente que monitoree tickets de soporte, clasifique la urgencia con IA y asigne autom\xE1ticamente al equipo correcto en Jira",EX2_PROMPT:"Cuando llegue un nuevo pedido de Shopify, verifica el inventario en nuestra base de datos, y si el stock es bajo env\xEDa una solicitud de reabastecimiento a la API del proveedor",EX3_PROMPT:"Cada viernes a las 17:00, extrae las anal\xEDticas de la semana de Google Sheets, genera un resumen con IA y publ\xEDcalo en nuestro canal de Slack #metrics",EX_WORKFLOW_CREATED:"workflow creado",EX_AUTO_DEPLOYED:"auto-desplegado",CTA_TITLE:"Empieza a construir con Vira",CTA_SUBTITLE:"Describe lo que necesitas. Vira se encarga del resto.",CTA_CROSSLINK_PREFIX:"Vira se encarga del backend.",CTA_CROSSLINK_LINK:"Conoce a Qira para el frontend",CTA_START:"Empezar gratis",CTA_CONTACT:"Contactar",CTA_TRUST:"Sin tarjeta de cr\xE9dito \xB7 Plan gratuito incluido"},MEET_QIRA:{CREDIT_BALANCE:"3,11 $ de cr\xE9dito restante",TOKEN_RATE_LABEL:"Entrada / salida \xB7 por mill\xF3n de tokens",DEMO_NOTE:"Ilustraci\xF3n interactiva del producto. Explora las herramientas y pru\xE9balas en Ubex.",NEXT:"Herramienta siguiente",PREVIOUS:"Herramienta anterior",PATH_PUBLISH:"Publica y evoluciona",PATH_REFINE:"Hazla tuya",PATH_DESCRIBE:"Describe tu idea",HERO_LABEL:"CONOCE A QIRA",HERO_TITLE_1:"Un agente.",HERO_TITLE_ACCENT:"Toda tu app.",HERO_SUBTITLE:"Qira es el builder dentro de Ubex. Describe lo que quieres y ella escribe el frontend, el backend y la base de datos, elige un tema contigo y lo publica en tu dominio. Todo desde un chat.",HERO_CTA:"Empezar a construir",HERO_TOUR:"Recorre el Studio",START_CAPTION:"Esta es la primera pantalla de cada proyecto de Qira. Prueba el interruptor y los temas.",MODELS_LABEL:"MODELOS",MODELS_TITLE:"Elige el cerebro detr\xE1s de Qira.",MODELS_SUB:"Qira no est\xE1 atada a un proveedor. Elige el modelo para cada mensaje entre OpenAI, Anthropic, Google, xAI, Mistral, DeepSeek y m\xE1s, y paga solo los tokens que uses.",MODELS_FACT_COUNT:"modelos para elegir",MODELS_FACT_FROM:"por mill\xF3n de tokens, desde",MODELS_FACT_SWITCH:"clic para cambiar, en mitad de la conversaci\xF3n",MODELS_NOTE:"Los precios se muestran como entrada / salida por mill\xF3n de tokens, tal cual aparecen en el selector del Studio. Los cr\xE9ditos se descuentan sobre la marcha, as\xED que siempre sabes lo que cost\xF3 un build.",TOUR_LABEL:"EL STUDIO",TOUR_TITLE:"Una ventana. Todo lo que necesitas para publicar.",TOUR_SUB:"Elige una herramienta. Previsualiza, ajusta, inspecciona y publica junto a tu conversaci\xF3n con Qira.",TOUR:{PREVIEW_K:"Vista previa",PREVIEW_T:"Tu app, en vivo, mientras Qira la construye.",PREVIEW_D:"La vista previa es la app real en su URL real, no una maqueta. Atr\xE1s, adelante y recargar como en un navegador, y \xE1brela en una ventana nueva cuando quieras verla completa.",CODE_K:"C\xF3digo",CODE_T:"Cada archivo es tuyo para leer y editar.",CODE_D:"Cambia a C\xF3digo y ah\xED est\xE1 el \xE1rbol de archivos del proyecto: componentes, estilos, configuraci\xF3n. Abre cualquier archivo, ed\xEDtalo en el sitio y Qira sigue trabajando con tus cambios.",SELECT_K:"Seleccionar",SELECT_T:"Haz clic en un elemento. Luego decide qu\xE9 hacer con \xE9l.",SELECT_D:"La herramienta Seleccionar captura cualquier elemento de la p\xE1gina. Env\xEDaselo a Qira con tu petici\xF3n, salta directo a \xE9l en el c\xF3digo o ajusta a mano relleno, bordes, espaciado y texto en el panel lateral.",NETWORK_K:"Red",NETWORK_T:"Mira cada petici\xF3n que hace tu app.",NETWORK_D:"La consola de Red lista cada llamada con estado, m\xE9todo, tiempo, payload y respuesta. Cuando algo falla, t\xFA y Qira mir\xE1is la misma evidencia.",DEVICES_K:"Dispositivos",DEVICES_T:"Compru\xE9balo en un iPhone antes que nadie.",DEVICES_D:"Cambia la vista previa a escritorio, iPad, iPhone 17, Galaxy S24 o Xiaomi 14. Cada pantalla que construye Qira es responsive, y aqu\xED lo ves.",SETTINGS_K:"Ajustes",SETTINGS_T:"Tu dominio, tu tema, un bot\xF3n de Deploy.",SETTINGS_D:"Conecta un dominio propio o elige un subdominio, escoge uno de los temas integrados y despliega. Estado, SSL y hosting se gestionan por ti.",VERSIONS_K:"Versiones",VERSIONS_T:"Escribe qu\xE9 cambi\xF3. Vuelve atr\xE1s cuando lo necesites.",VERSIONS_D:"Cada publicaci\xF3n lleva una nota escrita por ti, as\xED el historial se lee como un changelog. Restaura cualquier versi\xF3n anterior con un clic, sin git.",OPEN_K:"Abrir en ventana nueva",SEL_TO_QIRA:"Enviar a Qira",SEL_TO_CODE:"Abrir en el c\xF3digo",DEV_DESKTOP:"Escritorio",DEV_TABLET:"Tablet",DEV_MOBILE:"M\xF3vil",VER_PUBLISHING:"Publicando",VER_NOTE:"A\xF1adidos recordatorios por SMS para reservas y corregida la zona horaria del calendario",VER_CURRENT:"Actual",VER_RESTORE:"Restaurar"},ONE_LABEL:"NO SOLO LA INTERFAZ",ONE_TITLE:"Qira construye todo.",ONE_SUB:"Otros builders se quedan en la pantalla. Qira tambi\xE9n escribe lo que corre detr\xE1s, en la misma conversaci\xF3n.",ONE_FRONTEND_T:"Frontend",ONE_FRONTEND_D:"P\xE1ginas, componentes, formularios, tablas, dashboards. Responsive por defecto, con el tema de tu marca.",ONE_FRONTEND_X:"React, con estilo, responsive",ONE_BACKEND_T:"Backend",ONE_BACKEND_D:"APIs, autenticaci\xF3n, roles, campa\xF1as de email y los flujos detr\xE1s de cada bot\xF3n.",ONE_BACKEND_X:"APIs, auth, flujos",ONE_DATABASE_T:"Base de datos",ONE_DATABASE_D:"Tablas y relaciones dise\xF1adas para tus datos, con lecturas y escrituras conectadas a las p\xE1ginas que las necesitan.",ONE_DATABASE_X:"Esquema, consultas, almacenamiento",ONE_DEPLOY_T:"Dominio y deploy",ONE_DEPLOY_D:"Un subdominio o tu propio dominio, SSL, hosting y versiones. En vivo con un clic, atr\xE1s con otro.",ONE_DEPLOY_X:"Hosting, SSL, versiones",COMP_WITHOUT:"La forma habitual",COMP_STEP1:"Montar un proyecto frontend y un servicio backend",COMP_STEP2:"Instalar dependencias y configurar herramientas",COMP_STEP3:"Dise\xF1ar el esquema de base de datos y escribir la API",COMP_STEP4
4:"Construir cada p\xE1gina y conectarla al backend",COMP_STEP5:"Resolver auth, rutas y estilos responsive",COMP_STEP6:"Configurar hosting, SSL y un dominio",COMP_TIME_WITHOUT:"De d\xEDas a semanas",COMP_WITH:"Con Qira",COMP_WITH_PROMPT:'"Hazme un CRM para mi negocio de coaching con clientes, reservas, pagos y campa\xF1as de email."',COMP_TIME_WITH:"Una conversaci\xF3n",COMP_DONE1:"Frontend, backend y base de datos escritos",COMP_DONE2:"Tema elegido, responsive en cada dispositivo",COMP_DONE3:"Desplegado en tu dominio con SSL",COMP_DONE4:"Con versiones, para volver atr\xE1s cuando quieras",CTA_TITLE:"Empieza a construir con Qira",CTA_SUBTITLE:"Describe lo que necesitas. Qira se encarga del resto: frontend, backend, base de datos y hosting.",CTA_START:"Empezar gratis",CTA_CONTACT:"Cont\xE1ctanos",CTA_TRUST:"Sin tarjeta de cr\xE9dito \xB7 Plan gratuito incluido"},CONTACT:{HERO_LABEL:"CONTACTO",HERO_TITLE:"Hablemos",HERO_SUBTITLE:"Ya seas ingeniero, empresa o simplemente tengas curiosidad, nos encantar\xEDa saber de ti.",INFO_CHAT_TITLE:"Chatea con nosotros",INFO_CHAT_DESC:"Nuestro equipo est\xE1 aqu\xED para ayudarte con cualquier pregunta sobre la plataforma.",INFO_CHAT_DETAIL:"Respuesta en 24 horas",INFO_ENTERPRISE_TITLE:"Enterprise y despliegue",INFO_ENTERPRISE_DESC:"\xBFNecesitas despliegue VPC, on-premise o controles de cumplimiento? Planifiqu\xE9moslo juntos.",INFO_ENTERPRISE_DETAIL:"Hablemos de tus requisitos",INFO_COMMUNITY_TITLE:"Comunidad",INFO_COMMUNITY_DESC:"\xDAnete a nuestra comunidad de Discord para consejos, soporte y solicitudes de funciones.",INFO_COMMUNITY_LINK:"Unirse a Discord \u2192",FORM_TITLE:"Env\xEDanos un mensaje",FORM_NAME_LABEL:"Nombre *",FORM_NAME_PLACEHOLDER:"Tu nombre",FORM_NAME_REQUIRED:"El nombre es obligatorio.",FORM_NAME_PATTERN:"El nombre solo puede contener letras, espacios, guiones y ap\xF3strofos.",FORM_EMAIL_LABEL:"Email *",FORM_EMAIL_PLACEHOLDER:"[email protected]",FORM_EMAIL_REQUIRED:"El email es obligatorio.",FORM_EMAIL_INVALID:"Por favor, introduce una direcci\xF3n de email v\xE1lida.",FORM_COMPANY_LABEL:"Empresa",FORM_COMPANY_PLACEHOLDER:"Tu empresa (opcional)",FORM_SUBJECT_LABEL:"Asunto",FORM_MESSAGE_LABEL:"Mensaje *",FORM_MESSAGE_PLACEHOLDER:"Cu\xE9ntanos sobre tu proyecto o pregunta...",FORM_MESSAGE_HINT_SUFFIX:"car\xE1cter(es) m\xE1s necesario(s)",FORM_MESSAGE_REQUIRED:"El mensaje es obligatorio.",FORM_MESSAGE_MINLENGTH:"El mensaje debe tener al menos 10 caracteres.",FORM_SUBMIT:"Enviar mensaje",FORM_SUBMITTING:"Enviando...",FORM_JOIN_DISCORD:"Unirse a Discord",SUBJECT_GENERAL:"Consulta general",SUBJECT_SALES:"Ventas y precios",SUBJECT_SUPPORT:"Soporte t\xE9cnico",SUBJECT_PARTNERSHIP:"Colaboraci\xF3n",SUBJECT_LABS:"Ubex Labs \u2013 Unirse como ingeniero",SUBJECT_TRAINING:"Formaci\xF3n",SUBJECT_FEEDBACK:"Feedback",PREFILL_ENTERPRISE_INTRO:"Solicitud de plan Enterprise",PREFILL_ENTERPRISE_NEEDS:"Tambi\xE9n necesito",PREFILL_ENTERPRISE_OUTRO:"Por favor, env\xEDanos un presupuesto para esta configuraci\xF3n.",SUCCESS_TITLE:"\xA1Mensaje enviado!",SUCCESS_RESET_COOLDOWN:"Enviar otro mensaje ({{seconds}}s)",SUCCESS_RESET:"Enviar otro mensaje",STATS_RESPONSE:"24h",STATS_RESPONSE_LABEL:"Tiempo de respuesta",STATS_FREE:"Gratis",STATS_FREE_LABEL:"Para empezar",STATS_ONBOARDING:"1:1",STATS_ONBOARDING_LABEL:"Onboarding enterprise",FAQ_LABEL:"PREGUNTAS FRECUENTES",FAQ_TITLE:"Preguntas comunes",FAQ_Q1:"\xBFCu\xE1nto tarda el onboarding enterprise?",FAQ_A1:"La mayor\xEDa de despliegues enterprise est\xE1n planificados y funcionando en 2-4 semanas, dependiendo de tu infraestructura y requisitos de cumplimiento.",FAQ_Q2:"\xBFPod\xE9is ayudar a migrar desde otra plataforma?",FAQ_A2:"S\xED. Trabajamos con equipos para migrar workflows, APIs y pipelines de datos existentes a Ubex. Cont\xE1ctanos para hablar de tu configuraci\xF3n.",FAQ_Q3:"\xBFOfrec\xE9is desarrollo personalizado?",FAQ_A3:"Para clientes enterprise, ofrecemos desarrollo de workflows personalizado y servicios de integraci\xF3n. Hablemos de lo que necesitas.",FAQ_Q4:"\xBFEst\xE1n seguros mis datos?",FAQ_A4:"Todos los datos est\xE1n cifrados en tr\xE1nsito y en reposo. Los planes enterprise incluyen whitelisting de IP, logs de auditor\xEDa y despliegue flexible \u2013 Cloud, VPC u on-premise."},PRICING:{LABEL:"PRECIOS",TITLE:"Precios simples y transparentes",SUBTITLE:"Planes simples que crecen contigo. Elige un tama\xF1o y c\xE1mbialo cuando quieras.",SUBTITLE_DETAIL_1:"Elige un plan para ejecuciones de workflow. Escala de Lite a on-premise.",SUBTITLE_DETAIL_2:"El uso de IA es aparte \u2013 conecta tus propias claves o usa nuestros cr\xE9ditos gestionados.",MONTHLY:"Mensual",ANNUALLY:"Anual",SAVE_BADGE:"Ahorra 17%",PER_MO_ANNUAL:"/mes, facturado anualmente",PER_MO_MONTHLY:"/mes, facturado mensualmente",RUNS_PER_MONTH:"ejecuciones de workflow / mes",UNLIMITED_NODES:"nodos ilimitados por workflow",CLOUD_HOSTED:"Alojado en cloud",CLOUD:"Cloud",OR:"o",SELF_HOSTED:"Self-hosted",ON_PREMISE:"On-premise",INCLUDES:"Incluye:",NO_CREDIT_CARD:"Sin tarjeta de cr\xE9dito",MOST_POPULAR:"M\xE1s popular",FREE_NAME:"Gratis",FREE_DESC:"Empieza y explora la plataforma sin coste.",FREE_PERIOD:"gratis para siempre",FREE_RESETS:"se reinicia mensualmente",FREE_CTA:"Empezar gratis",FREE_F1:"1 proyecto",FREE_F2:"2 ejecuciones paralelas",FREE_F3:"Todos los tipos de nodos",FREE_F4:"Usa tus propias claves API",FREE_F5:"Soporte de comunidad",FREE_AI_NOTE:"No necesitas cr\xE9ditos IA para empezar",LITE_
4NAME:"Lite",LITE_DESC:"Para individuos y proyectos peque\xF1os que empiezan.",LITE_CTA:"Empieza aqu\xED",LITE_HOSTING:"Aloja 1 aplicaci\xF3n",LITE_INCLUDES:"Incluye:",LITE_F1:"1 espacio de trabajo",LITE_F2:"3 proyectos",LITE_F3:"2 ejecuciones paralelas",LITE_F4:"1 GB de almacenamiento",LITE_F5:"Todos los proveedores LLM",LITE_F6:"7 d\xEDas de historial de ejecuci\xF3n",LITE_F7:"Soporte por email",LITE_AI_NOTE:"Cr\xE9ditos IA disponibles como complemento",STARTER_NAME:"Starter",STARTER_DESC:"Para equipos que construyen aplicaciones reales.",STARTER_CTA:"Empezar",STARTER_HOSTING:"Aloja 2 aplicaciones",STARTER_INCLUDES:"Todo en Lite, m\xE1s:",STARTER_F1:"3 espacios de trabajo",STARTER_F2:"10 proyectos",STARTER_F3:"5 ejecuciones paralelas",STARTER_F4:"5 GB de almacenamiento",STARTER_F5:"15 d\xEDas de historial de ejecuci\xF3n",STARTER_F6:"Colaboraci\xF3n en equipo (3 puestos)",STARTER_F7:"Soporte por email prioritario",STARTER_AI_NOTE:"5 \u20AC de cr\xE9ditos IA incluidos mensualmente",PRO_NAME:"Pro",PRO_DESC:"Para equipos en crecimiento que necesitan escala, control y despliegue self-hosted.",PRO_CTA:"Empezar",PRO_HOSTING:"Aloja 3 aplicaciones",PRO_INCLUDES:"Todo en Starter, m\xE1s:",PRO_F1:"Proyectos ilimitados",PRO_F2:"20 ejecuciones paralelas",PRO_F3:"25 GB de almacenamiento",PRO_F4:"30 d\xEDas de historial de ejecuci\xF3n",PRO_F5:"SSO / SAML",PRO_F6:"Entornos de staging",PRO_F7:"Dominios personalizados",PRO_F8:"Puestos de equipo (5 incluidos)",PRO_AI_NOTE:"25 \u20AC de cr\xE9ditos IA incluidos mensualmente",ENTERPRISE_BADGE:"Enterprise",ENTERPRISE_NAME:"Enterprise",ENTERPRISE_DESC:"Cumplimiento, seguridad y control total del despliegue.",ENTERPRISE_PRICE:"Hablemos",ENTERPRISE_VOLUME:"Volumen personalizado",ENTERPRISE_TAILORED:"adaptado a tus necesidades",ENTERPRISE_CTA:"Contactar ventas",ENTERPRISE_HOSTING:"Alojamiento de aplicaciones personalizado",ENTERPRISE_INCLUDES:"Todo en Pro, m\xE1s:",ENTERPRISE_F1:"Ejecuciones paralelas ilimitadas",ENTERPRISE_F2:"365 d\xEDas de retenci\xF3n de datos",ENTERPRISE_F3:"Logs de auditor\xEDa y auto-auditor\xEDa",ENTERPRISE_F4:"Despliegue VPC u on-premise",ENTERPRISE_F5:"Alineaci\xF3n gobernanza IA (en progreso)",ENTERPRISE_F6:"Controles GDPR y SOC 2",ENTERPRISE_F7:"Integraciones personalizadas",ENTERPRISE_F8:"Gestor de cuenta dedicado",ENTERPRISE_F9:"Garant\xEDa SLA",ENTERPRISE_F10:"Facturaci\xF3n",ENTERPRISE_AI_NOTE:"Paquete de cr\xE9ditos IA personalizado",COMPARISON_TITLE:"Despliegue y cumplimiento por plan",TABLE_APP_HOSTING:"Alojamiento de aplicaciones",TABLE_1_APP:"1 app",TABLE_2_APPS:"2 apps",TABLE_3_APPS:"3 apps",TABLE_CUSTOM:"Personalizado",TABLE_DEPLOYMENT:"Despliegue",TABLE_CLOUD_OR_SELF:"Cloud o Self-Hosted",TABLE_CLOUD_VPC_ONPREM:"Cloud, VPC u On-Premise",TABLE_DATA_RETENTION:"Retenci\xF3n de datos",TABLE_7_DAYS:"7 d\xEDas",TABLE_15_DAYS:"15 d\xEDas",TABLE_30_DAYS:"30 d\xEDas",TABLE_365_DAYS:"365 d\xEDas",TABLE_STAGING:"Entornos de staging",TABLE_AUDIT_LOGS:"Logs de auditor\xEDa",TABLE_SOC2_GDPR:"Controles SOC 2 y GDPR",TABLE_EU_AI_ACT:"Alineaci\xF3n gobernanza IA (en progreso)",CREDITS_TITLE:"Cr\xE9ditos IA",CREDITS_DESC:"Los cr\xE9ditos funcionan con todos los proveedores IA \u2013 OpenAI, Anthropic, Google y m\xE1s. O s\xE1ltate los cr\xE9ditos y conecta tus propias claves API.",CREDITS_KEYS_TITLE:"Tus claves:",CREDITS_KEYS_DESC:"Conecta tus propias claves de proveedor y p\xE1gales directamente",CREDITS_OUR_TITLE:"Nuestros cr\xE9ditos:",CREDITS_OUR_DESC:"Usa conexiones gestionadas sin configurar cuentas de proveedor",CREDITS_TRANSPARENT_TITLE:"Transparente:",CREDITS_TRANSPARENT_DESC:"Paga solo por los tokens consumidos, sin recargo",CREDITS_FLEXIBLE_TITLE:"Flexible:",CREDITS_FLEXIBLE_DESC:"Mezcla ambos \u2013 tus claves para algunos modelos, cr\xE9ditos para otros",CREDITS_POPULAR:"Popular",CREDITS_10_DESC:"Suficiente para ~500k tokens (GPT-4o)",CREDITS_25_DESC:"Suficiente para ~1,25M tokens (GPT-4o)",CREDITS_50_DESC:"Suficiente para ~2,5M tokens (GPT-4o)",FAQ_TITLE:"Preguntas frecuentes",FAQ1_Q:"\xBFNecesito saber programar?",FAQ1_A:"No. Qira puede construir por ti desde descripciones en lenguaje natural \u2013 usa cr\xE9ditos IA de tu cuenta. Los desarrolladores tambi\xE9n pueden usar el canvas visual y nodos de c\xF3digo para control total.",FAQ2_Q:"\xBFQu\xE9 puedo construir con Ubex?",FAQ2_A:"Apps, automatizaciones, chatbots IA, pipelines de datos, sistemas de reservas, dashboards, herramientas internas \u2013 cualquier cosa, desde un workflow simple hasta una aplicaci\xF3n full-stack.",FAQ3_Q:'\xBFQu\xE9 cuenta como una "ejecuci\xF3n de workflow"?',FAQ3_A:"Cada vez que un workflow se ejecuta de principio a fin, eso es una ejecuci\xF3n \u2013 sin importar cu\xE1ntos nodos o pasos contenga.",FAQ4_Q:"\xBFC\xF3mo funcionan los cr\xE9ditos IA?",FAQ4_A:"Los cr\xE9ditos se consumen seg\xFAn los tokens procesados. Cada modelo tiene tarifas diferentes. Tambi\xE9n puedes conectar tus propias claves de proveedor \u2013 sin necesidad de cr\xE9ditos.",FAQ5_Q:"\xBFNecesito una tarjeta de cr\xE9dito para empezar?",FAQ
45_A:"No. El plan Gratis es completamente gratuito \u2013 sin tarjeta de cr\xE9dito, sin l\xEDmite de tiempo. Empieza a construir y mejora tu plan cuando est\xE9s listo.",FAQ6_Q:"\xBFPuedo cambiar mi plan despu\xE9s?",FAQ6_A:"En cualquier momento. Mejora, reduce o cancela desde la configuraci\xF3n de tu cuenta. Los cargos prorrateados se aplican autom\xE1ticamente.",FAQ7_Q:"\xBFSe acumulan los cr\xE9ditos no usados?",FAQ7_A:"Los cr\xE9ditos IA comprados nunca expiran. Los cr\xE9ditos mensuales incluidos (Starter/Pro) se reinician cada ciclo de facturaci\xF3n y no se acumulan.",FAQ8_Q:"\xBFPuedo a\xF1adir miembros al equipo?",FAQ8_A:"Starter incluye 3 puestos de equipo, Pro incluye 5 y Enterprise ofrece puestos ilimitados. Todos los planes soportan acceso basado en roles.",FAQ9_Q:"\xBFQu\xE9 opciones de despliegue hay disponibles?",FAQ9_A:"De Gratis a Starter funcionan en Managed Cloud. Pro a\xF1ade despliegue self-hosted. Enterprise a\xF1ade VPC y opciones completas on-premise.",BUILD_RUNS:"Ejecuciones de workflow / mes",BUILD_APPS:"Aplicaciones a alojar",BUILD_SEATS:"Puestos de equipo",BUILD_CREDITS:"Cr\xE9ditos IA / mes",BUILD_RECOMMENDED:"Plan recomendado",BUILD_ESTIMATE:"Total mensual estimado",BUILD_CUSTOM:"Presupuesto a medida",BUILD_PER_MONTH:"al mes",VPC:"VPC",ENT_TITLE:"Configura tu plan Enterprise",ENT_DESC:"Indica los vol\xFAmenes que realmente necesitas y d\xF3nde se ejecuta. Calculamos el acuerdo a partir de eso, no de un nivel fijo.",ENT_DEPLOYMENT:"Despliegue",ENT_NEEDS:"A\xF1ade lo que necesites",ENT_NEED_SLA:"SLA y soporte dedicado",ENT_NEED_AUDIT:"Logs de auditor\xEDa y cumplimiento",ENT_NEED_INTEGRATIONS:"Integraciones a medida",ENT_NEED_TRAINING:"Onboarding y formaci\xF3n",ENT_SUMMARY:"Tu configuraci\xF3n",ENT_TALK_ANYWAY:"Hablar con ventas igualmente",ENT_NOTE:"Respondemos con un presupuesto por escrito en un d\xEDa laborable. No se cobra nada antes de firmar.",ENT_INCLUDED_TITLE:"Todo acuerdo Enterprise incluye"},PRIVACY:{LABEL:"LEGAL",TITLE:"Pol\xEDtica de privacidad",LAST_UPDATED:"\xDAltima actualizaci\xF3n: febrero 2026",TOC_TITLE:"Contenido",TOC_INTRO:"Introducci\xF3n",TOC_COLLECTION:"1. Informaci\xF3n que recopilamos",TOC_USE:"2. C\xF3mo usamos tu informaci\xF3n",TOC_SHARING:"3. Compartici\xF3n de informaci\xF3n",TOC_SECURITY:"4. Seguridad de datos",TOC_RETENTION:"5. Retenci\xF3n de datos",TOC_RIGHTS:"6. Tus derechos",TOC_COOKIES:"7. Cookies",TOC_CHILDREN:"8. Privacidad de menores",TOC_CHANGES:"9. Cambios en la pol\xEDtica",TOC_CONTACT:"10. Cont\xE1ctanos",INTRO_TITLE:"Introducci\xF3n",INTRO_P1:'En Ubex AI ("nosotros" o "nuestro"), estamos comprometidos con la protecci\xF3n de tu privacidad y la seguridad de tu informaci\xF3n personal. Esta Pol\xEDtica de privacidad explica c\xF3mo recopilamos, usamos, divulgamos y protegemos tu informaci\xF3n cuando utilizas nuestra plataforma y servicios.',INTRO_P2:"Al usar nuestros Servicios, aceptas la recopilaci\xF3n y el uso de informaci\xF3n de acuerdo con esta pol\xEDtica. Si no est\xE1s de acuerdo con nuestras pol\xEDticas y pr\xE1cticas, por favor no uses nuestros Servicios.",COLLECTION_TITLE:"1. Informaci\xF3n que recopilamos",COLLECTION_PROVIDED_TITLE:"1.1. Informaci\xF3n que proporcionas",COLLECTION_ACCOUNT:"Informaci\xF3n de cuenta:",COLLECTION_ACCOUNT_DESC:"Nombre, direcci\xF3n de email, contrase\xF1a y detalles de perfil al crear una cuenta.",COLLECTION_PAYMENT:"Informaci\xF3n de pago:",COLLECTION_PAYMENT_DESC:"Direcci\xF3n de facturaci\xF3n y detalles del m\xE9todo de pago para suscripciones de pago.",COLLECTION_COMMS:"Comunicaciones:",COLLECTION_COMMS_DESC:"Informaci\xF3n que proporcionas al contactar con nuestro equipo de soporte.",COLLECTION_CONTENT:"Contenido del usuario:",COLLECTION_CONTENT_DESC:"Prompts, entradas y contenido que creas usando nuestros Servicios.",COLLECTION_AUTO_TITLE:"1.2. Informaci\xF3n recopilada autom\xE1ticamente",COLLECTION_USAGE:"Datos de uso:",COLLECTION_USAGE_DESC:"Informaci\xF3n sobre c\xF3mo interact\xFAas con nuestros Servicios, incluyendo funciones usadas y tiempo empleado.",COLLECTION_DEVICE:"Informaci\xF3n del dispositivo:",COLLECTION_DEVICE_DESC:"Tipo de navegador, sistema operativo, identificadores de dispositivo y direcci\xF3n IP.",COLLECTION_LOG:"Datos de registro:",COLLECTION_LOG_DESC:"Registros del servidor incluyendo tiempos de acceso, p\xE1ginas vistas y URLs de referencia.",USE_TITLE:"2. C\xF3mo usamos tu informaci\xF3n",USE_INTRO:"Usamos la informaci\xF3n que recopilamos para:",USE_1:"Proporcionar, mantener y mejorar nuestros Servicios",USE_2:"Procesar transacciones y enviar informaci\xF3n relacionada",USE_3:"Enviar avisos t\xE9cnicos, actualizaciones y mensajes de soporte",USE_4:"Responder a tus comentarios, preguntas y solicitudes",USE_5:"Monitorizar y analizar tendencias, uso y actividades",USE_6:"Detectar, investigar y prevenir transacciones fraudulentas y abusos",USE_7:"Personalizar y mejorar tu experiencia",USE_8:"Desarrollar nuevos productos, servicios y funciones",SHARING_TITLE:"3. Compartici\xF3n de informaci\xF3n",SHARING_INTRO:"Podemos compartir tu informaci\xF3n en las siguientes circunstancias:",SHARING_PROVIDERS:"Proveedores de servicios:",SHARING_PROVIDERS_DESC:"Con proveedores terceros que realizan servicios en nuestro nombre (procesamiento de pagos, hosting, an\xE1lisis).",SHARING_LEGAL:"Requisitos legales:",SHARING_LEGAL_DESC:"Cuando lo exija la ley o para responder a procesos legales.",SHARING_PROTECTION:"Protecci\xF3n:",SHARING_PROTECTION_DESC:"Para proteger los derechos, la propiedad y la seguridad de Ubex AI, nuestros usuarios u otros.",
4SHARING_TRANSFERS:"Transferencias comerciales:",SHARING_TRANSFERS_DESC:"En relaci\xF3n con una fusi\xF3n, adquisici\xF3n o venta de activos.",SHARING_CONSENT:"Con tu consentimiento:",SHARING_CONSENT_DESC:"Cuando nos hayas dado permiso expl\xEDcito para compartir tu informaci\xF3n.",SHARING_NO_SELL:"No vendemos tu informaci\xF3n personal a terceros.",SECURITY_TITLE:"4. Seguridad de datos",SECURITY_P1:"Implementamos medidas t\xE9cnicas y organizativas apropiadas para proteger tu informaci\xF3n personal contra el acceso no autorizado, la alteraci\xF3n, la divulgaci\xF3n o la destrucci\xF3n.",SECURITY_INTRO:"Estas medidas incluyen:",SECURITY_1:"Cifrado de datos en tr\xE1nsito y en reposo",SECURITY_2:"Evaluaciones de seguridad regulares y pruebas de penetraci\xF3n",SECURITY_3:"Controles de acceso y mecanismos de autenticaci\xF3n",SECURITY_4:"Formaci\xF3n de empleados en protecci\xF3n de datos",SECURITY_5:"Procedimientos de respuesta a incidentes",SECURITY_DISCLAIMER:"Aunque nos esforzamos por proteger tu informaci\xF3n, ning\xFAn m\xE9todo de transmisi\xF3n por Internet es 100% seguro. No podemos garantizar seguridad absoluta.",RETENTION_TITLE:"5. Retenci\xF3n de datos",RETENTION_P1:"Conservamos tu informaci\xF3n personal durante el tiempo necesario para cumplir los fines para los que fue recopilada, incluyendo el cumplimiento de requisitos legales, contables o de informes.",RETENTION_P2:"Cuando elimines tu cuenta, eliminaremos o anonimizaremos tu informaci\xF3n personal en un plazo de 30 d\xEDas, excepto cuando estemos obligados legalmente a conservarla.",RIGHTS_TITLE:"6. Tus derechos",RIGHTS_INTRO:"Dependiendo de tu ubicaci\xF3n, puedes tener los siguientes derechos:",RIGHTS_ACCESS:"Acceso:",RIGHTS_ACCESS_DESC:"Solicitar una copia de la informaci\xF3n personal que tenemos sobre ti.",RIGHTS_CORRECTION:"Correcci\xF3n:",RIGHTS_CORRECTION_DESC:"Solicitar la correcci\xF3n de informaci\xF3n inexacta o incompleta.",RIGHTS_DELETION:"Eliminaci\xF3n:",RIGHTS_DELETION_DESC:"Solicitar la eliminaci\xF3n de tu informaci\xF3n personal.",RIGHTS_PORTABILITY:"Portabilidad:",RIGHTS_PORTABILITY_DESC:"Solicitar una copia de tus datos en un formato portable.",RIGHTS_OBJECTION:"Objeci\xF3n:",RIGHTS_OBJECTION_DESC:"Oponerte al procesamiento de tu informaci\xF3n personal.",RIGHTS_RESTRICTION:"Restricci\xF3n:",RIGHTS_RESTRICTION_DESC:"Solicitar la restricci\xF3n del procesamiento en determinadas circunstancias.",RIGHTS_CONTACT:"Para ejercer estos derechos, cont\xE1ctanos en",COOKIES_TITLE:"7. Cookies y seguimiento",COOKIES_P1:"Usamos cookies y tecnolog\xEDas de seguimiento similares para recopilar y rastrear informaci\xF3n sobre tu actividad en nuestros Servicios.",COOKIES_TYPES_TITLE:"Tipos de cookies que usamos:",COOKIES_ESSENTIAL:"Cookies esenciales:",COOKIES_ESSENTIAL_DESC:"Necesarias para el funcionamiento de nuestros Servicios.",COOKIES_ANALYTICS:"Cookies de an\xE1lisis:",COOKIES_ANALYTICS_DESC:"Nos ayudan a entender c\xF3mo los visitantes interact\xFAan con nuestros Servicios.",COOKIES_PREFERENCE:"Cookies de preferencia:",COOKIES_PREFERENCE_DESC:"Recuerdan tus ajustes y preferencias.",COOKIES_CONTROL:"Puedes controlar las cookies a trav\xE9s de la configuraci\xF3n de tu navegador. Ten en cuenta que desactivar ciertas cookies puede afectar la funcionalidad de nuestros Servicios.",CHILDREN_TITLE:"8. Privacidad de menores",CHILDREN_P1:"Nuestros Servicios no est\xE1n de
4stinados a menores de 18 a\xF1os. No recopilamos conscientemente informaci\xF3n personal de menores de 18 a\xF1os. Si descubrimos que hemos recopilado informaci\xF3n de un menor de 18 a\xF1os, eliminaremos esa informaci\xF3n de inmediato.",CHANGES_TITLE:"9. Cambios en esta pol\xEDtica",CHANGES_P1:'Podemos actualizar esta Pol\xEDtica de privacidad de vez en cuando. Te notificaremos de cualquier cambio publicando la nueva Pol\xEDtica de privacidad en esta p\xE1gina y actualizando la fecha de "\xDAltima actualizaci\xF3n".',CHANGES_P2:"Te animamos a revisar peri\xF3dicamente esta Pol\xEDtica de privacidad para cualquier cambio. Los cambios son efectivos cuando se publican en esta p\xE1gina.",CONTACT_TITLE:"10. Cont\xE1ctanos",CONTACT_P1:"Si tienes alguna pregunta sobre esta Pol\xEDtica de privacidad o nuestras pr\xE1cticas de datos, cont\xE1ctanos:",QUESTIONS:"\xBFPreguntas?",QUESTIONS_DESC:"Si tienes alguna pregunta sobre esta Pol\xEDtica de privacidad, cont\xE1ctanos en"},TERMS:{LABEL:"LEGAL",TITLE:"T\xE9rminos de uso",LAST_UPDATED:"\xDAltima actualizaci\xF3n: febrero 2026",TOC_TITLE:"Contenido",TOC_PREAMBLE:"Pre\xE1mbulo",TOC_DEFINITIONS:"1. Definiciones",TOC_PURPOSE:"2. Prop\xF3sito y alcance",TOC_ACCEPTANCE:"3. Aceptaci\xF3n",TOC_ACCESS:"4. Acceso a los servicios",TOC_SUBSCRIPTION:"5. Suscripci\xF3n",TOC_FEES:"6. Tarifas y pago",TOC_OBLIGATIONS:"7. Tus obligaciones",TOC_IP:"8. Propiedad intelectual",TOC_LIABILITY:"9. Responsabilidad",TOC_TERMINATION:"10. Terminaci\xF3n",PREAMBLE_TITLE:"Pre\xE1mbulo",PREAMBLE_P1:'\xA1Bienvenido a Ubex! Nuestra plataforma proporciona acceso a los modelos de inteligencia artificial de Ubex AI dise\xF1ados para la generaci\xF3n de texto junto con una gama de servicios complementarios (los "Servicios").',PREAMBLE_P2:'Este acuerdo (el "Acuerdo") se celebra entre Ubex AI, una empresa especializada en soluciones de IA ("Ubex AI" o "Nosotros") y cualquier persona que use, acceda o se suscriba a los Servicios ("T\xFA" o el "Cliente").',PREAMBLE_P3:"Estos T\xE9rminos de uso se aplican a cualquier Suscripci\xF3n, uso y/o acceso a los Servicios por tu parte. Al suscribirte, acceder o usar los Servicios, aceptas expresamente cumplir y estar vinculado por este Acuerdo.",DEFINITIONS_TITLE:"1. Definiciones",DEFINITIONS_INTRO:"Las palabras en may\xFAscula en este documento tendr\xE1n el significado establecido a continuaci\xF3n:",DEF_ACCOUNT:'"Cuenta"',DEF_ACCOUNT_DESC:"significa tu cuenta en la Plataforma.",DEF_AGREEMENT:'"Acuerdo"',DEF_AGREEMENT_DESC:"significa el acuerdo celebrado entre Ubex AI y t\xFA, compuesto por estos T\xE9rminos de uso, los T\xE9rminos de servicio aplicables y todos los materiales mencionados aqu\xED.",DEF_PLATFORM:'"Plataforma"',DEF_PLATFORM_DESC:"significa el sitio web y la aplicaci\xF3n de Ubex a trav\xE9s de los cuales se proporcionan los Servicios.",DEF_SERVICES:'"Servicios"',DEF_SERVICES_DESC:"significa todos los productos, caracter\xEDsticas y funcionalidades proporcionados por Ubex AI.",DEF_SUBSCRIPTION:'"Suscripci\xF3n"',DEF_SUBSCRIPTION_DESC:"significa tu registro para acceder y usar los Servicios.",DEF_PLAN:'"Plan de suscripci\xF3n"',DEF_PLAN_DESC:"significa el nivel espec\xEDfico de Servicios al que te has suscrito.",PURPOSE_TITLE:"2. Prop\xF3sito y alcance",PURPOSE_SUBTITLE:"2.1. Prop\xF3sito",PURPOSE_P1:"El prop\xF3sito de este Acuerdo es describir los derechos y responsabilidades de las Partes en relaci\xF3n con tu uso de los Servicios.",SCOPE_SUBTITLE:"2.2. Alcance",SCOPE_P1:"Estos T\xE9rminos de uso se aplican a cualquier Suscripci\xF3n, acceso o uso de los Servicios por tu parte en la Plataforma o a trav\xE9s de un Marketplace.",SCOPE_P2:"Algunos Servicios pueden estar sujetos a t\xE9rminos adicionales espec\xEDficos de ese Servicio seg\xFAn lo establecido en los T\xE9rminos de servicio aplicables. Al acceder o usar un Servicio cubierto por los T\xE9rminos de servicio, tambi\xE9n aceptas dichos T\xE9rminos de servicio.",ACCEPTANCE_TITLE:"3. Aceptaci\xF3n",ACCEPTANCE_P1:"Cualquier acceso o uso de los Servicios por tu parte implica tu acuerdo sin reservas con estos T\xE9rminos de uso. Debes leer estos T\xE9rminos de uso cuidadosamente antes de usar los Servicios.",ACCEPTANCE_P2:'Al hacer clic en "Acepto" (o cualquier bot\xF3n o casilla similar en la Plataforma) al registrarte en un Servicio, aceptas expresamente estar vinculado por este Acuerdo.',ACCEPTANCE_P3:"Si aceptas cualquiera de los t\xE9rminos de este Acuerdo en nombre de tu empleador o una entidad legal, garantizas y declaras que posees la autoridad para actuar y aceptar dichos t\xE9rminos en su nombre.",ACCESS_TITLE:"4. Acceso a nuestros Servicios",ACCESS_REQ_SUBTITLE:"4.1. Requisitos",ACCESS_AGE:"Limitaci\xF3n de edad:",ACCESS_AGE_DESC:"Debes tener al menos dieciocho (18) a\xF1os para usar nuestros Servicios.",ACCESS_TECH:"Requisitos t\xE9cnicos:",ACCESS_TECH_DESC:"Necesitas un ordenador o dispositivo compatible y una conexi\xF3n a internet de alta velocidad para acceder a los Servicios.",ACCESS_COSTS:"Costes:",ACCESS_COSTS_DESC:"Salvo que se indique lo contrario, los costes de los requisitos t\xE9cnicos ser\xE1n asumidos exclusivamente por ti.",ACCESS_ACCOUNT_SUBTITLE:"4.2. Tu cuenta",ACCESS_ACCOUNT_P1:"Debes crear una Cuenta en la Plataforma para usar los Servicios. Debes proporcionar informaci\xF3n completa, correcta y actualizada y actualizarla de inmediato si se producen cambios.",ACCESS_ACCOUNT_P2:"Tu Cuenta est\xE1 destinada solo para tu uso. No debes compartir tu Cuenta con terceros sin el consentimiento previo por escrito de Ubex. Eres el \xFAnico responsable de cualquier acci\xF3n realizada a trav\xE9s de tu Cuenta.",SUBSCRIPTION_TITLE:"5. Suscripci\xF3n a los Servicios",SUBSCRIPTION_FREE_SUBTITLE:"5.1. Servicios gratuitos",SUBSCRIPTION_FREE_P1:"Para acceder a los Servicios gratuitos, debes crear tu Cuenta y aceptar este Acuerdo.",SUBSCRIPTION_PAID_SUBTITLE:"5.2. Servicios de pago",SUBSCRIPTION_PAID_INTRO:"Para suscribirte a los Servicios de pago, debes:",SUBSCRIPTION_PAID_1:"
4Crear tu Cuenta de acuerdo con estos T\xE9rminos",SUBSCRIPTION_PAID_2:"Elegir tu Plan de suscripci\xF3n",SUBSCRIPTION_PAID_3:"Elegir tu m\xE9todo de pago",SUBSCRIPTION_PAID_4:"Proporcionar tu informaci\xF3n de pago y facturaci\xF3n",SUBSCRIPTION_PAID_5:"Aceptar este Acuerdo",SUBSCRIPTION_PAID_6:"Revisar y confirmar tu Suscripci\xF3n",FEES_TITLE:"6. Tarifas y pago",FEES_P1:"Las tarifas de los Servicios de pago son las descritas en la Plataforma. Debes proporcionar informaci\xF3n de pago precisa y mantenerla actualizada.",FEES_P2:"Ubex se reserva el derecho de rechazar tu Suscripci\xF3n en caso de sospecha de fraude o tergiversaci\xF3n. En tales casos, cualquier Tarifa prepagada ser\xE1 reembolsada.",OBLIGATIONS_TITLE:"7. Tus obligaciones",OBLIGATIONS_INTRO:"Aceptas:",OBLIGATIONS_1:"Usar los Servicios en cumplimiento con todas las leyes y regulaciones aplicables",OBLIGATIONS_2:"No usar los Servicios para ning\xFAn prop\xF3sito ilegal o no autorizado",OBLIGATIONS_3:"No intentar obtener acceso no autorizado a ninguna parte de los Servicios",OBLIGATIONS_4:"No interferir con o interrumpir los Servicios o servidores",OBLIGATIONS_5:"No usar los Servicios para generar contenido da\xF1ino, abusivo o ilegal",OBLIGATIONS_6:"Mantener la seguridad de las credenciales de tu Cuenta",IP_TITLE:"8. Propiedad intelectual",IP_P1:"Todos los derechos de propiedad intelectual de los Servicios, incluyendo pero no limitado a software, algoritmos, modelos y documentaci\xF3n, son propiedad de Ubex AI o sus licenciantes.",IP_P2:"Conservas la propiedad de cualquier contenido que crees usando los Servicios, sujeto a los derechos de propiedad intelectual subyace
4ntes de Ubex AI.",LIABILITY_TITLE:"9. Responsabilidad",LIABILITY_P1:'Los Servicios se proporcionan "tal cual" sin garant\xEDas de ning\xFAn tipo. Ubex AI no ser\xE1 responsable de da\xF1os indirectos, incidentales, especiales o consecuentes.',LIABILITY_P2:"La responsabilidad total de Ubex AI no exceder\xE1 las cantidades pagadas por ti por los Servicios durante los doce (12) meses anteriores a la reclamaci\xF3n.",TERMINATION_TITLE:"10. Terminaci\xF3n",TERMINATION_P1:"Puedes desactivar tu Cuenta en cualquier momento contactando a [email protected]. Para los Servicios de pago, la terminaci\xF3n est\xE1 sujeta a los t\xE9rminos de tu Plan de suscripci\xF3n.",TERMINATION_P2:"Ubex se reserva el derecho de suspender o terminar tu Cuenta si violas estos T\xE9rminos de uso o realizas un uso no autorizado de los Servicios.",QUESTIONS:"\xBFPreguntas?",QUESTIONS_DESC:"Si tienes alguna pregunta sobre estos T\xE9rminos, cont\xE1ctanos en"},CONSENT:{TITLE:"Valoramos tu privacidad",DESC:"Usamos cookies para mejorar tu experiencia, analizar el tr\xE1fico y personalizar contenido. Puedes elegir qu\xE9 cookies permitir. Lee nuestra ",PRIVACY_LINK:"Pol\xEDtica de privacidad",ACCEPT:"Aceptar todo",REJECT:"Rechazar todo",CUSTOMIZE:"Personalizar",CUSTOMIZE_TITLE:"Preferencias de cookies",CUSTOMIZE_DESC:"Elige qu\xE9 cookies quieres permitir. Las cookies esenciales siempre est\xE1n activas ya que son necesarias para el funcionamiento del sitio web.",CAT_ESSENTIAL:"Esenciales",CAT_ESSENTIAL_DESC:"Necesarias para el funcionamiento del sitio web. No se pueden desactivar.",ALWAYS_ON:"Siempre activas",CAT_ANALYTICS:"Anal\xEDticas",CAT_ANALYTICS_DESC:"Nos ayudan a entender c\xF3mo los visitantes interact\xFAan con nuestro sitio web recopilando datos de uso an\xF3nimos.",CAT_ADS:"Publicidad",CAT_ADS_DESC:"Se utilizan para mostrar anuncios relevantes y medir la efectividad de las campa\xF1as.",CAT_FUNCTIONAL:"Funcionales",CAT_FUNCTIONAL_DESC:"Permiten funciones mejoradas como preferencias de idioma y contenido personalizado.",REJECT_ALL:"Rechazar todo",SAVE_PREFS:"Guardar preferencias",MANAGE_COOKIES:"Gestionar cookies"},IMPRINT:{LABEL:"LEGAL",TITLE:"Aviso legal",SUBTITLE:"Informaci\xF3n conforme al \xA7 5 TMG",COMPANY_TITLE:"Informaci\xF3n de la empresa",COMPANY_NAME:"TechVision Mallorca SL (operando como Ubex AI)",COMPANY_ADDRESS:`Calle Bartomeu Ferra 16 A 507141 Marratx\xED, Mallorca, Espa\xF1a`,COMPANY_REPRESENTED:"Representado por: Adelina Bolota",CONTACT_TITLE:"Contacto",CONTACT_PAGE_LINK:"Cont\xE1ctenos \u2192",CONTACT_WEBSITE_LABEL:"Sitio web",REGISTRATION_TITLE:"Datos de registro",REGISTRATION_COURT:"TOMO: 3006 \xB7 HOJA: PM-96905",REGISTRATION_NUMBER:"CIF: B72772940",VAT_ID:"NIF/CIF: B72772940",RESPONSIBLE_TITLE:"Responsable del contenido",RESPONSIBLE_DESC:"Responsable del contenido seg\xFAn \xA7 18 Abs. 2 MStV:",RESPONSIBLE_PERSON:"Adelina Bolota",RESPONSIBLE_ADDRESS:"Calle Bartomeu Ferra 16 A, 07141 Marratx\xED, Mallorca, Espa\xF1a",DISPUTE_TITLE:"Resoluci\xF3n de disputas",DISPUTE_NO_OBLIGATION:"No estamos obligados ni dispuestos a participar en procedimientos de resoluci\xF3n de disputas ante una junta de arbitraje de consumidores.",QUESTIONS:"\xBFPreguntas?",QUESTIONS_DESC:"Si tiene alguna pregunta sobre este aviso legal, visite nuestra"},SITEMAP:{LABEL:"MAPA DEL SITIO",TITLE:"Mapa del sitio",SUBTITLE:"Todas las p\xE1ginas de un vistazo",MAIN_PAGES:"P\xE1ginas principales",AI_ASSISTANTS:"Asistentes de IA",RESOURCES:"Recursos",COMPANY:"Empresa",LEGAL:"Legal"},LABS:{LABEL:"Ubex Labs \xB7 Summer Camp 2026",TITLE:"Aprende a construir productos reales con IA.",SUBTITLE:"De la mano del equipo que los crea.",CTA_APPLY:"Solicitar plaza",PROBLEM_HEADLINE:"El mundo dej\xF3 de contratar desarrolladores juniors. Nosotros no.",PROBLEM_TITLE:"El problema",PROBLEM_TEXT:"Las empresas necesitan ingenieros con habilidades en IA. Pero han dejado de contratar juniors. Quieren perfiles con experiencia. Quieren personas que puedan construir desde el primer d\xEDa. \xBFY t\xFA? \xBFD\xF3nde quedas?",SOLUTION_TITLE:"La soluci\xF3n",SOLUTION_TEXT:"Ubex Labs es un programa de mentor\xEDa de 2 meses que cierra esa brecha. 4 semanas de bootcamp intensivo con Vlad, CTO de Ubex AI y arquitecto de softw
5are con m\xE1s de 20 a\xF1os de experiencia. 4 semanas m\xE1s de seguimiento mientras afinas, pulides y presentas tu proyecto. Soporte del equipo 24/7 durante los 2 meses completos. M\xE1s de 38 horas de mentor\xEDa directa.",PROBLEM_CLOSING:"Esto no es teor\xEDa. Esto no es un certificado. Esto eres t\xFA construyendo productos reales con IA dentro de un equipo de ingenier\xEDa real.",BENEFITS_TITLE:"Qu\xE9 recibes",BENEFIT_1_TITLE:"M\xE1s de 38 horas con Vlad",BENEFIT_1_DESC:"Mentor\xEDa directa con un arquitecto de software con m\xE1s de 20 a\xF1os de experiencia. No es una clase magistral. Es orientaci\xF3n personalizada sobre tu c\xF3digo, tu arquitectura y tu crecimiento.",BENEFIT_2_TITLE:"4 semanas de bootcamp intensivo",BENEFIT_2_DESC:"5 d\xEDas por semana. Sesiones de 2 horas. Construyes desde el primer d\xEDa. Agentes de IA, automatizaci\xF3n de flujos, desarrollo de aplicaciones, despliegue en producci\xF3n.",BENEFIT_3_TITLE:"4 semanas de seguimiento",BENEFIT_3_DESC:"10 horas adicionales de mentor\xEDa cuando t\xFA las necesitas. Afinas tu proyecto. Pulides tu portfolio. No desaparecemos al terminar el bootcamp.",BENEFIT_4_TITLE:"Acceso al equipo 24/7",BENEFIT_4_DESC:"Todo el equipo de Ubex AI detr\xE1s de ti. Desarrolladores, ingenieros, personal t\xE9cnico. Canales dedicados. A cualquier hora. Cualquier pregunta. Durante 2 meses.",BENEFIT_5_TITLE:"Proyecto real para tu portfolio",BENEFIT_5_DESC:"No es una copia de un tutorial. Es un producto funcional de IA que construyes y perfeccionas durante 2 meses. El tipo de proyecto que ense\xF1as a los empleadores.",BENEFIT_6_TITLE:"100 \u20AC en cr\xE9ditos de plataforma",BENEFIT_6_DESC:"Construye en Ubex AI durante y despu\xE9s del programa. Son tuyos.",BENEFIT_7_TITLE:"Certificado + referencias",BENEFIT_7_DESC:"Certificado oficial de Ubex AI. Referencias profesionales personalizadas de Vlad.",BENEFIT_8_TITLE:"Oportunidad profesional",BENEFIT_8_DESC:"Los participantes con mejor rendimiento podr\xE1n ser considerados para puestos en Ubex AI.",INVESTMENT_TITLE:"Tu inversi\xF3n",INVESTMENT_INSTALLMENTS:"En dos pagos.",INSTALLMENT_1:"Al ser aceptado",INSTALLMENT_2:"Al finalizar el bootcamp (semana 4)",INCLUDED_TITLE:"Todo incluido:",INCLUDED_1:"M\xE1s de 38 horas de mentor\xEDa con Vlad",INCLUDED_2:"2 meses de soporte del equipo 24/7",INCLUDED_3:"Canales de comunicaci\xF3n dedicados",INCLUDED_4:"100 \u20AC en cr\xE9ditos de plataforma de Ubex AI",INCLUDED_5:"Certificado de finalizaci\xF3n",INCLUDED_6:"Referencias profesionales",INVESTMENT_VALUE:"El valor real de este programa supera los 12.000 \u20AC. Tu inversi\xF3n son 499 \u20AC. Menos de 14 \u20AC la hora de mentor\xEDa con un arquitecto de 20 a\xF1os.",INVESTMENT_CTA_TEXT:"Esto es una inversi\xF3n en tu carrera. En la era de la IA, los desarrolladores que inviertan en s\xED mismos ahora ser\xE1n los que las empresas se peleen por contratar m\xE1s adelante.",AUDIENCE_TITLE:"Buscamos personas que quieran construir.",AUDIENCE_1:"Estudiantes o reci\xE9n graduados que buscan experiencia real",AUDIENCE_2:"Desarrolladores juniors que quieren especializarse en IA",AUDIENCE_3:"Personas que quieren cambiar de carrera hacia tecnolog\xEDa",AUDIENCE_4:"Programadores autodidactas que quieren dar el salto profesional",AUDIENCE_5:"Cualquiera que vea lo que viene con la IA y quiera estar preparado",AUDIENCE_NOTE:"No necesitas t\xEDtulo en inform\xE1tica. No necesitas a\xF1os de experiencia. Necesitas motivaci\xF3n, compromiso y ganas de construir.",FAQ_TITLE:"Preguntas frecuentes",FAQ_1_Q:"\xBFNecesito experiencia previa en IA?",FAQ_1_A:"No. Con tener conocimientos t\xE9cnicos b\xE1sicos es suficiente. Lo que nos importa es tu motivaci\xF3n y tu compromiso.",FAQ_2_Q:"\xBFCu\xE1nto dura el programa?",FAQ_2_A:"2 meses. 4 semanas de bootcamp intensivo + 4 semanas de seguimiento.",FAQ_3_Q:"\xBFCu\xE1nto tiempo debo dedicarle?",FAQ_3_A:"Fase 1: aproximadamente 20-25 horas por semana. Fase 2: aproximadamente 10-15 horas por semana.",FAQ_4_Q:"\xBFEs en remoto o presencial?",FAQ_4_A:"Ambas opciones est\xE1n disponibles. Los detalles se comparten al ser aceptado.",FAQ_5_Q:"\xBFCu\xE1nto cuesta?",FAQ_5_A:"499 \u20AC. Dos pagos de 250 \u20AC. Incluye 100 \u20AC en cr\xE9ditos de plataforma.",FAQ_6_Q:"\xBFQu\xE9 pasa despu\xE9s del programa?",FAQ_6_A:"Te quedas con tu portfolio, tus habilidades, tus cr\xE9ditos y tu red de contactos. Los participantes con mejor rendimiento podr\xE1n ser considerados para puestos en Ubex AI.",FAQ_7_Q:"\xBFQui\xE9n es Vlad?",FAQ_7_A:"CTO de Ubex AI. Arquitecto de softw
5are con m\xE1s de 20 a\xF1os de experiencia. Tu mentor principal.",FAQ_8_Q:"\xBFY si no me aceptan?",FAQ_8_A:"Pasas a la lista de espera con acceso prioritario a futuras ediciones.",FAQ_9_Q:"\xBFQu\xE9 pasa si pierdo una sesi\xF3n?",FAQ_9_A:"Pasa. Las sesiones est\xE1n dise\xF1adas para que perder una no te frene. Eso s\xED, se espera asistencia constante.",FAQ_10_Q:"\xBFRecibir\xE9 un certificado?",FAQ_10_A:"S\xED. Certificado oficial de Ubex AI para todos los participantes que completen el programa.",FINAL_STATS:"30 plazas. Una primera edici\xF3n. 2 meses. M\xE1s de 38 horas con un arquitecto de 20 a\xF1os. Soporte 24/7. 100 \u20AC en cr\xE9ditos de plataforma. 499 \u20AC.",FINAL_QUOTE:"La mayor\xEDa de bootcamps terminan y te desean suerte. Nosotros construimos contigo, y seguimos construyendo contigo.",COPYRIGHT:"Todos los derechos reservados.",WAITLIST_HEADLINE:"La primera edici\xF3n ya est\xE1 completa.",WAITLIST_DESC:"30 participantes han sido seleccionados para la edici\xF3n inaugural de Ubex Labs. Pero los buenos programas merecen crecer.",WAITLIST_CTA_TEXT:"\xDAnete a la lista de espera.",WAITLIST_NAME:"Nombre",WAITLIST_EMAIL:"Email",WAITLIST_BUTTON:"Unirse a la lista de espera",WAITLIST_NOTE:"Si se libera una plaza, ser\xE1s el primero en saberlo. Acceso prioritario a futuras ediciones de Ubex Labs antes de que se abran las solicitudes p\xFAblicas."}};var gs={NAV:{HOME:"Acas\u0103",VIRA_QIRA:"Vira & Qira",PRODUCT:"Produs",FEATURES:"Func\u021Bionalit\u0103\u021Bi",RESOURCES:"Resurse",DOCS:"Documenta\u021Bie",TUTORIALS:"Tutoriale",ROADMAP:"Foaie de parcurs",MEET_VIRA:"Descoper\u0103 Vira",MEET_QIRA:"Descoper\u0103 Qira",CONTACT:"Contact",PRICING:"Pre\u021Buri",START_FREE:"\xCEncepe gratuit",QIRA:"Qira Agent",COMPANY:"Companie",LOGIN:"Autentificare",START_BUILDING:"\xCEncepe s\u0103 construie\u0219ti",FEATURES_DESC:"Tot ce poate face platforma",ROADMAP_DESC:"Ce construim \xEEn continuare",CONTACT_DESC:"Vorbe\u0219te cu noi despre proiectul t\u0103u",LANGUAGE:"Limb\u0103",TOGGLE_THEME:"Comut\u0103 tema deschis\u0103/\xEEnchis\u0103",THEME_LIGHT:"Comut\u0103 la tema deschis\u0103",THEME_DARK:"Comut\u0103 la tema \xEEnchis\u0103",LABS:"Ubex Labs",REGISTER:"\xCEnregistrare"},FOOTER:{TAGLINE:"O singur\u0103 IA. Fiecare strat al aplica\u021Biei tale.",PRODUCT:"Produs",FEATURES:"Func\u021Bionalit\u0103\u021Bi",VIRA_QIRA:"Vira & Qira",PRICING:"Pre\u021Buri",RESOURCES:"Resurse",DOCS:"Documenta\u021Bie",TUTORIALS:"Tutoriale",MEET_VIRA:"Descoper\u0103 Vira",MEET_QIRA:"Descoper\u0103 Qira",ROADMAP:"Foaie de parcurs",COMPANY:"Companie",CONTACT:"Contact",LEGAL:"Legal",PRIVACY:"Confiden\u021Bialitate",TERMS:"Termeni",IMPRINT:"Imprint",SITEMAP:"Hart\u0103 site",COMMUNITY:"Comunitate",ALL_RIGHTS:"Toate drepturile rezervate.",BUILT_WITH:"Construit cu",QIRA:"Qira Agent",STATUS:"Toate sistemele func\u021Bioneaz\u0103",CHANGELOG:"Roadmap",LABS:"Ubex Labs"},CHAT:{WELCOME_GREETING:"Salut \u{1F44B}",WELCOME_TEXT:"Cu ce te putem ajuta ast\u0103zi?",SUGGESTION_WHAT:"Ce este Ubex \u0219i cum func\u021Bioneaz\u0103?",SUGGESTION_PRICING:"Care sunt planurile de pre\u021Buri?",SUGGESTION_DIFF:"Cum difer\u0103 Ubex de Zapier sau Make?",SUGGESTION_VIRA:"Spune-mi despre Vira",SUGGESTION_QIRA:"Spune-mi despre Qira",VIRA_DESC:"Constructor Backend IA",QIRA_DESC:"Constructor Frontend IA",INPUT_PLACEHOLDER:"\xCEntreab\u0103 despre Ubex...",CONTACT_PROMPT:"Vrei s\u0103 la\u0219i un mesaj echipei noastre?",CONTACT_YES:"Da, trimite un mesaj",CONTACT_NO:"Nu, mul\u021Bumesc",FORM_TITLE:"Ia leg\u0103tura",FORM_SUBTITLE:"Echipa noastr\u0103 \xEE\u021Bi va r\u0103spunde \xEEn cur\xE2nd.",CONTACT_TITLE:"Contacteaz\u0103 echipa noastr\u0103",CONTACT_SUBTITLE:"Ne-ar pl\u0103cea s\u0103 auzim de la tine.",FIELD_NAME:"Numele t\u0103u *",FIELD_EMAIL:"Emailul t\u0103u *",FIELD_COMPANY:"Companie (op\u021Bional)",FIELD_MESSAGE:"Spune-ne ce ai nevoie...",FIELD_HOW_HELP:"Cum te putem ajuta?",SUBJECT_GENERAL:"\xCEntrebare general\u0103",SUBJECT_SALES:"V\xE2nz\u0103ri \u0219i pre\u021Buri",SUBJECT_SUPPORT:"Suport tehnic",SUBJECT_PARTNERSHIP:"Parteneriat",SUBJECT_LABS:"Ubex Labs - Al\u0103tur\u0103-te ca inginer",SUBJECT_TRAINING:"Instruire",SUBJECT_FEEDBACK:"Feedback",SENDING:"Se trimite...",SEND:"Trimite mesajul",SUCCESS_TITLE:"Mesaj trimis!",SUCCESS_SUBTITLE:"Echipa noastr\u0103 te va contacta \xEEn cur\xE2nd.",BACK_TO_CHAT:"\xCEnapoi la chat",TAB_CHAT:"Chat",TAB_CONTACT:"Contact",ERROR_MESSAGE:"Scuze, am probleme de conectare acum. Po\u021Bi vizita ubex.ai/contact pentru a contacta echipa direct."},HOME:{PROMPT_PLACEHOLDER:"Cere-i lui Qira s\u0103 construiasc\u0103...",PROMPT_CTA:"Construie\u0219te",EX_1:"Construie\u0219te un dashboard cu statistici, un tabel de membri \u0219i o pagin\u0103 de set\u0103ri",EX_2:"Creeaz\u0103 o aplica\u021Bie de rezerv\u
50103ri cu calendar, pl\u0103\u021Bi \u0219i confirm\u0103ri pe email",EX_3:"F\u0103 un CRM care anun\u021B\u0103 pe Slack c\xE2nd o ofert\u0103 devine C\xE2\u0219tigat\u0103",EX_4:"Construie\u0219te un tool intern de inventar cu scanare de coduri de bare",CHIP_1:"Dashboard cu login",CHIP_2:"Aplica\u021Bie de rezerv\u0103ri",CHIP_3:"CRM cu alerte Slack",CHIP_4:"Tool de inventar",HERO_NOTE:"Gratuit la \xEEnceput \xB7 F\u0103r\u0103 card",HERO_MAP:{HINT_HOVER:"D\u0103 clic pe o categorie ca s\u0103 \xEEi vezi agen\u021Bii",HINT_TAP:"Atinge o categorie ca s\u0103 \xEEi vezi agen\u021Bii",AGENT_HINT_HOVER:"Treci cu mouse-ul peste un agent ca s\u0103 vezi ce face",AGENT_HINT_TAP:"Atinge un agent ca s\u0103 vezi ce face",OPERATIONS:"Opera\u021Biuni",INTELLIGENCE:"Inteligen\u021B\u0103",CUSTOMER:"Clien\u021Bi",BACK_OFFICE:"Back office",SALES:"V\xE2nz\u0103ri",DEALS:"Tranzac\u021Bii",MARKETING:"Marketing",CATEGORIES:{OPERATIONS:"Men\u021Bine proiectele \xEEn mi\u0219care, de la onboarding p\xE2n\u0103 la livrare, acoperind fiecare predare \u0219i termen-limit\u0103.",INTELLIGENCE:"Transform\u0103 semnalele despre companii, oameni \u0219i pia\u021B\u0103 \xEEn contextul de care echipa ta are nevoie pentru decizii mai bune.",CUSTOMER:"Ofer\u0103 fiec\u0103rui client suport la timp, ghidare proactiv\u0103 pentru succes \u0219i o modalitate clar\u0103 de a fi ascultat.",BACK_OFFICE:"Men\u021Bine finan\u021Bele, administra\u021Bia \u0219i opera\u021Biunile de personal corecte, organizate \u0219i \xEEn mi\u0219care.",SALES:"G\u0103se\u0219te prospec\u021Bii potrivi\u021Bi, personalizeaz\u0103 contactarea \u0219i du fiecare conversa\u021Bie spre o \xEEnt\xE2lnire programat\u0103.",DEALS:"Ajut\u0103 reprezentan\u021Bii s\u0103 se preg\u0103teasc\u0103, s\u0103 \xEEn\u021Beleag\u0103 apelurile, s\u0103 elimine riscurile \u0219i s\u0103 transforme oportunit\u0103\u021Bile \xEEn contracte semnate.",MARKETING:"Creeaz\u0103 con\u021Binut aliniat brandului, distribuie-l prin canalele potrivite \u0219i afl\u0103 ce func\u021Bioneaz\u0103."},NODES:{OPS_ONBOARDING:"Onboarding",CLIENT_ONBOARDING:"Agent de onboarding clien\u021Bi",KICKOFF_SCHEDULER:"Planificator de kickoff",ACCESS_PROVISIONER:"Administrator de acces",OPS_BUILDS:"Proiecte",PROJECT_PLANNER:"Planificator de proiecte",BUILD_TRACKER:"Monitor de proiecte",QA_CHECKER:"Verificator QA",RELEASE_COORDINATOR:"Coordonator de lans\u0103ri",OPS_CLIENT_OPS:"Opera\u021Biuni clien\u021Bi",STATUS_REPORTER:"Raportor de status",REQUEST_ROUTER:"Distribuitor de cereri",SLA_MONITOR:"Monitor SLA",INT_COMPANIES:"Companii",COMPANY_RESEARCH:"Cercetare companii",COMPETITOR_TRACKER:"Monitor de competitori",INT_PEOPLE:"Oameni",CONTACT_ENRICHER:"\xCEmbog\u0103\u021Bire contacte",ORG_CHART_MAPPER:"Cartograf de organigrame",INT_MARKETS:"Pie\u021Be",MARKET_SCANNER:"Scanner de pia\u021B\u0103",SIGNAL_SYNTHESIZER:"Sintetizator de semnale",TREND_WATCHER:"Observator de tendin\u021Be",CUS_SUPPORT:"Suport",SUPPORT_RESOLVER:"Rezolvare suport",TICKET_TRIAGE:"Triere tichete",KB_WRITER:"Redactor baz\u0103 de cuno\u0219tin\u021Be",CUS_SUCCESS:"Succesul clien\u021Bilor",HEALTH_MONITOR:"Monitor scor de s\u0103n\u0103tate",RENEWAL_ASSISTANT:"Asistent de re\xEEnnoiri",CHURN_PREDICTOR:"Predictor de abandon",CUS_COMMUNITY:"Comunitate",COMMUNITY_MODERATOR:"Moderator de comunitate",FEEDBACK_COLLECTOR:"Colector de feedback",BO_MONEY:"Bani",INVOICE_RECONCILER:"Reconciliere facturi",EXPENSE_AUDITOR:"Auditor de cheltuieli",CASHFLOW_FORECASTER:"Prognoz\u0103 cash flow",BO_BOOKS:"Contabilitate",BOOKKEEPER:"Agent de contabilitate",TAX_PREP:"Asistent fiscal",BO_OFFICE:"Birou",CONTRACT_FILER:"Arhivar de contracte",VENDOR_MANAGER:"Manager de furnizori",BO_PEOPLE:"Oameni",PAYROLL_CHECKER:"Verificator salarii",LEAVE_TRACKER:"Monitor concedii",HIRING_COORDINATOR:"Coordonator de recrutare",SAL_TARGETING:"Targetare",LEAD_SCORER:"Evaluator de lead-uri",ICP_MATCHER:"Potrivire ICP",LIST_BUILDER:"Constructor de liste",INTENT_WATCHER:"Detector de inten\u021Bie",SAL_OUTREACH:"Prospectare",EMAIL_WRITER:"Redactor de emailuri",LINKEDIN_PROSPECTOR:"Prospector LinkedIn",PERSONALIZER:"Agent de personalizare",CALL_PREP:"Preg\u0103tire apeluri reci",SAL_SE
5QUENCING:"Secven\u021Be",OUTREACH_SEQUENCER:"Secven\u021Biator de prospectare",FOLLOWUP_SCHEDULER:"Planificator de follow-up",REPLY_CLASSIFIER:"Clasificator de r\u0103spunsuri",MEETING_BOOKER:"Programator de \xEEnt\xE2lniri",CRM_UPDATER:"Actualizare CRM",DEA_REPS:"Agen\u021Bi de v\xE2nz\u0103ri",REP_COACH:"Coach de v\xE2nz\u0103ri",DEA_CALLS:"Apeluri",CALL_ANALYST:"Analist de apeluri",MEETING_SUMMARIZER:"Rezumator de \xEEnt\xE2lniri",OBJECTION_TRACKER:"Monitor de obiec\u021Bii",DEA_CLOSING:"\xCEnchidere",PROPOSAL_GENERATOR:"Generator de oferte",QUOTE_BUILDER:"Constructor de cota\u021Bii",CONTRACT_DRAFTER:"Redactor de contracte",DEA_PIPELINE:"Pipeline",PIPELINE_FORECASTER:"Prognoz\u0103 pipeline",DEAL_RISK_MONITOR:"Monitor de risc",MKT_CONTENT:"Con\u021Binut",CONTENT_COMPOSER:"Compozitor de con\u021Binut",BLOG_WRITER:"Redactor de blog",VIDEO_SCRIPT_WRITER:"Scenarist video",CASE_STUDY_WRITER:"Redactor de studii de caz",MKT_BRAND:"Brand",BRAND_GUARDIAN:"Gardian al vocii brandului",DESIGN_BRIEF_WRITER:"Redactor de brief-uri",MKT_DISTRIBUTION:"Distribu\u021Bie",SOCIAL_SCHEDULER:"Planificator social media",SEO_OPTIMIZER:"Optimizator SEO",NEWSLETTER_BUILDER:"Constructor de newslettere",AD_CAMPAIGN_MANAGER:"Manager de campanii",ANALYTICS_REPORTER:"Raportor de analiz\u0103"},PANEL:{CATEGORY:"Prezentare categorie",ACTIVITY:"Rul\u0103ri, ultimele 14 zile",EXAMPLE:"Valori exemplu",HANDLES:"Ce face",WORKS_WITH:"Lucreaz\u0103 cu",APPROVAL_AUTO:"Ruleaz\u0103 autonom",APPROVAL_OPTIONAL:"Revizuire uman\u0103 op\u021Bional\u0103",APPROVAL_REQUIRED:"Necesit\u0103 aprobare uman\u0103",CTA:"Construie\u0219te acest agent",CLOSE:"\xCEnchide",STAT_AGENTS:"Agen\u021Bi",STAT_TEAMS:"Echipe",STAT_TOOLS:"Unelte conectate",STAT_APPROVAL:"Cu aprobare",AGENTS_IN:"Agen\u021Bi inclu\u0219i",TEAMS_IN:"Echipe incluse",PICK_AGENT:"Vezi detaliile agentului",ACTIVITY_BRANCH:"Rul\u0103ri ale acestor agen\u021Bi, ultimele 14 zile",BRANCH_ALL_AUTO:"To\u021Bi agen\u021Bii ruleaz\u0103 autonom",BRANCH_SOME_REQUIRED:"{{count}} din {{total}}
5 agen\u021Bi necesit\u0103 aprobare uman\u0103",CTA_BRANCH:"\xCEncepe s\u0103 construie\u0219ti"},METRICS:{CLIENTS_ONBOARDED:"Clien\u021Bi integra\u021Bi",DAYS_SAVED:"Zile economisite",ON_TIME:"La timp",MEETINGS_MONTH:"\xCEnt\xE2lniri / lun\u0103",TIME_SAVED:"Economisit / s\u0103pt.",REQUESTS_ROUTED:"Cereri gestionate",ACCURACY:"Acurate\u021Be",PLANS_MONTH:"Planuri / lun\u0103",RUNS_DAY:"Rul\u0103ri / zi",ISSUES_CAUGHT:"Probleme detectate",RELEASES_MONTH:"Lans\u0103ri / lun\u0103",REPORTS_WEEK:"Rapoarte / s\u0103pt.",RESPONSE_TIME:"R\u0103spuns mediu",BRIEFINGS_DAY:"Rapoarte / zi",SOURCES:"Surse",COMPANIES_TRACKED:"Companii urm\u0103rite",SIGNALS_DAY:"Semnale / zi",CONTACTS_ENRICHED:"Contacte \xEEmbog\u0103\u021Bite",MATCH_RATE:"Rat\u0103 de potrivire",TICKETS_RESOLVED:"Tichete rezolvate",CSAT:"CSAT",ARTICLES:"Articole",DEFLECTION:"Tichete evitate",ACCOUNTS_WATCHED:"Conturi urm\u0103rite",RENEWALS:"Re\xEEnnoiri / trim.",RESPONSES:"R\u0103spunsuri",INVOICES_MONTH:"Facturi / lun\u0103",EXPENSES_MONTH:"Cheltuieli / lun\u0103",FORECAST_ACCURACY:"Acurate\u021Be prognoz\u0103",HORIZON:"S\u0103pt\u0103m\xE2ni \xEEnainte",TRANSACTIONS_MONTH:"Tranzac\u021Bii / lun\u0103",DOCS_FILED:"Documente / lun\u0103",VENDORS:"Furnizori gestiona\u021Bi",SAVINGS:"Costuri economisite",PAYSLIPS:"Flutura\u0219i verifica\u021Bi",CANDIDATES:"Candida\u021Bi / lun\u0103",LEADS_SCORED:"Lead-uri evaluate / lun\u0103",CONVERSION:"Cre\u0219tere conversie",EMAILS_WEEK:"Emailuri / s\u0103pt.",REPLY_RATE:"Rat\u0103 de r\u0103spuns",CALLS_ANALYZED:"Apeluri / lun\u0103",PROPOSALS_WEEK:"Oferte / s\u0103pt.",POSTS_WEEK:"Post\u0103ri / s\u0103pt.",CHANNELS:"Canale",TRAFFIC_LIFT:"Cre\u0219tere trafic",REVIEWED:"Materiale verificate",OPEN_RATE:"Rat\u0103 de deschidere"},AGENTS:{CLIENT_ONBOARDING:{DESC:"\xCEnt\xE2mpin\u0103 clien\u021Bii noi, adun\u0103 ce e nevoie \u0219i configureaz\u0103 totul.",T1:"Trimite pachetul de bun venit",T2:"Colecteaz\u0103 documente",T3:"Creeaz\u0103 spa\u021Biul de lucru"},KICKOFF_SCHEDULER:{DESC:"G\u0103se\u0219te un interval potrivit pentru to\u021Bi \u0219i preg\u0103te\u0219te agenda de kickoff.",T1:"Potrive\u0219te calendarele",T2:"Redacteaz\u0103 agenda",T3:"Trimite invita\u021Bii"},ACCESS_PROVISIONER:{DESC:"Acord\u0103 \u0219i retrage accesul la unelte c\xE2nd oamenii intr\u0103 sau ies dintr-un proiect.",T1:"Creeaz\u0103 conturi",T2:"Atribuie roluri",T3:"Revoc\u0103 accesul"},PROJECT_PLANNER:{DESC:"Transform\u0103 un brief \xEEn etape, sarcini \u0219i un calendar realist.",T1:"\xCEmparte scopul",T2:"Estimeaz\u0103 efortul",T3:"Aloc\u0103 responsabili"},BUILD_TRACKER:{DESC:"Urm\u0103re\u0219te fiecare proiect \u0219i semnaleaz\u0103 \xEEnt\xE2rzierile \xEEnainte s\u0103 fie prea t\xE2rziu.",T1:"Urm\u0103re\u0219te progresul",T2:"Semnaleaz\u0103 blocaje",T3:"Actualizeaz\u0103 statusul"},QA_CHECKER:{DESC:"Testeaz\u0103 fiecare versiune dup\u0103 checklist \u0219i raporteaz\u0103 ce nu merge.",T1:"Ruleaz\u0103 teste",T2:"\xCEnregistreaz\u0103 bug-uri",T3:"Verific\u0103 remedierile"},RELEASE_COORDINATOR:{DESC:"Planific\u0103 lans\u0103rile, scrie notele \u0219i anun\u021B\u0103 pe toat\u0103 lumea ce s-a lansat.",T1:"Programeaz\u0103 lansarea",T2:"Scrie notele de lansare",T3:"Anun\u021B\u0103 clien\u021Bii"},STATUS_REPORTER:{DESC:"Scrie raportul s\u0103pt\u0103m\xE2nal pentru client din ce s-a \xEEnt\xE2mplat de fapt.",T1:"Adun\u0103 nout\u0103\u021Bile",T2:"Rezum\u0103 progresul",T3:"Trimite raportul"},REQUEST_ROUTER:{DESC:"Cite\u0219te cererile primite \u0219i trimite fiecare cerere persoanei potrivite.",T1:"Clasific\u0103 cererea",T2:"Alege responsabilul",T3:"Seteaz\u0103 prioritatea"},SLA_MONITOR:{DESC:"Urm\u0103re\u0219te fiecare angajament \u0219i avertizeaz\u0103 \xEEnainte s\u0103 fie ratat un termen.",T1:"Urm\u0103re\u0219te termenele",T2:"Avertizeaz\u0103 responsabilii",T3:"Escaladeaz\u0103 \xEEnc\u0103lc\u0103rile"},COMPANY_RESEARCH:{DESC:"Construie\u0219te \xEEn c\xE2teva minute profilul complet al oric\u0103rei companii din surse publice.",T1:"Extrage date despre companie",T2:"Cite\u0219te rapoartele",T3:"Rezum\u0103 \u0219tirile"},COMPETITOR_TRACKER:{DESC:"Urm\u0103re\u0219te lans\u0103rile, pre\u021Burile \u0219i angaj\u0103rile competitorilor \u0219i \xEE\u021Bi spune ce s-a schimbat.",T1:"Monitorizeaz\u0103 site-uri",T2:"Urm\u0103re\u0219te pre\u021Burile",T3:"Observ\u0103 angaj\u0103rile noi"},CONTACT_ENRICHER:{DESC:"Completeaz\u0103 emailurile, rolurile \u0219i telefoanele lips\u0103 ale contactelor tale.",T1:"G\u0103se\u0219te emailuri",T2:"Verific\u0103 rolurile",T3:"Actualizeaz\u0103 CRM-ul"},ORG_CHART_MAPPER:{DESC:"Arat\u0103 cine decide, cine influen\u02
51Beaz\u0103 \u0219i cine cui raporteaz\u0103.",T1:"Mapeaz\u0103 ierarhia",T2:"G\u0103se\u0219te deciden\u021Bii",T3:"Semnaleaz\u0103 schimb\u0103rile"},MARKET_SCANNER:{DESC:"Scaneaz\u0103 \u0219tiri, rapoarte \u0219i forumuri dup\u0103 mi\u0219c\u0103ri din pia\u021Ba ta.",T1:"Scaneaz\u0103 surse",T2:"Grupeaz\u0103 subiecte",T3:"Ordoneaz\u0103 dup\u0103 relevan\u021B\u0103"},SIGNAL_SYNTHESIZER:{DESC:"Transform\u0103 sute de semnale \xEEntr-un raport scurt, u\u0219or de folosit.",T1:"Combin\u0103 semnalele",T2:"Elimin\u0103 zgomotul",T3:"Scrie raportul"},TREND_WATCHER:{DESC:"Observ\u0103 subiectele care c\xE2\u0219tig\u0103 teren \xEEnainte s\u0103 devin\u0103 evidente.",T1:"Urm\u0103re\u0219te men\u021Biunile",T2:"M\u0103soar\u0103 av\xE2ntul",T3:"Alerteaz\u0103 din timp"},SUPPORT_RESOLVER:{DESC:"R\u0103spunde clien\u021Bilor folosind documenta\u021Bia \u0219i tichetele anterioare.",T1:"Redacteaz\u0103 r\u0103spunsuri",T2:"Rezolv\u0103 tichete",T3:"Pred\u0103 cazurile speciale"},TICKET_TRIAGE:{DESC:"Eticheteaz\u0103, prioritizeaz\u0103 \u0219i distribuie fiecare tichet nou imediat ce sose\u0219te.",T1:"Detecteaz\u0103 inten\u021Bia",T2:"Seteaz\u0103 prioritatea",T3:"Trimite la echip\u0103"},KB_WRITER:{DESC:"Transform\u0103 tichetele rezolvate \xEEn articole de ajutor, ca clien\u021Bii s\u0103 g\u0103seasc\u0103 singuri r\u0103spunsuri.",T1:"G\u0103se\u0219te \xEEntreb\u0103ri repetate",T2:"Redacteaz\u0103 articole",T3:"\u021Aine documenta\u021Bia la zi"},HEALTH_MONITOR:{DESC:"Evalueaz\u0103 s\u0103n\u0103tatea fiec\u0103rui cont \u0219i te avertizeaz\u0103 despre cele care se r\u0103cesc.",T1:"Urm\u0103re\u0219te utilizarea",T2:"Evalueaz\u0103 s\u0103n\u0103tatea",T3:"Semnaleaz\u0103 riscurile"},RENEWAL_ASSISTANT:{DESC:"Preg\u0103te\u0219te din timp fiecare re\xEEnnoire, cu utilizare, valoare livrat\u0103 \u0219i o ofert\u0103.",T1:"Preg\u0103te\u0219te re\xEEnnoirea",T2:"Redacteaz\u0103 oferta",T3:"Programeaz\u0103 apelul"},CHURN_PREDICTOR:{DESC:"Prezice ce clien\u021Bi ar putea pleca \u0219i sugereaz\u0103 cum s\u0103-i p\u0103strezi.",T1:"Modeleaz\u0103 riscul",T2:"Explic\u0103 motivele",T3:"Sugereaz\u0103 ac\u021Biuni"},COMMUNITY_MODERATOR:{DESC:"P\u0103streaz\u0103 comunitatea prietenoas\u0103, r\u0103spunde la \xEEntreb\u0103ri frecvente \u0219i elimin\u0103 spamul.",T1:"Elimin\u0103 spamul",T2:"R\u0103spunde la \xEEntreb\u0103ri",T3:"\xCEnt\xE2mpin\u0103 membrii"},FEEDBACK_COLLECTOR:{DESC:"Adun\u0103 feedback din toate canalele \u0219i \xEEl grupeaz\u0103 pe teme clare.",T1:"Colecteaz\u0103 feedback",T2:"Grupeaz\u0103 pe teme",T3:"Raporteaz\u0103 tendin\u021Be"},INVOICE_RECONCILER:{DESC:"Potrive\u0219te facturile cu pl\u0103\u021Bile \u0219i semnaleaz\u0103 tot ce nu se leag\u0103.",T1:"Potrive\u0219te pl\u0103\u021Bile",T2:"Semnaleaz\u0103 diferen\u021Bele",T3:"Urm\u0103re\u0219te restan\u021Bele"},EXPENSE_AUDITOR:{DESC:"Verific\u0103 fiecare cheltuial\u0103 dup\u0103 politic\u0103 \xEEnainte s\u0103 fie aprobat\u0103.",T1:"Cite\u0219te bonurile",T2:"Verific\u0103 politica",T3:"Semnaleaz\u0103 excep\u021Biile"},CASHFLOW_FORECASTER:{DESC:"Prognozeaz\u0103 lichidit\u0103\u021Bile pe urm\u0103toarele 13 s\u0103pt\u0103m\xE2ni \u0219i le actualizeaz\u0103 zilnic.",T1:"Proiecteaz\u0103 \xEEncas\u0103rile",T2:"Modeleaz\u0103 scenarii",T3:"Avertizeaz\u0103 despre goluri"},BOOKKEEPER:{DESC:"Categorise\u0219te tranzac\u021Biile \u0219i \u021Bine contabilitatea preg\u0103tit\u0103 pentru \xEEnchiderea lunii.",T1:"Categorise\u0219te tranzac\u021Bii",T2:"Reconciliaz\u0103 conturi",T3:"\xCEnchide luna"},TAX_PREP:{DESC:"Adun\u0103 cifrele \u0219i documentele de care contabilul are nevoie pentru taxe.",T1:"Adun\u0103 documente",T2:"Preg\u0103te\u0219te situa\u021Bii",T3:"Urm\u0103re\u0219te termenele"},CONTRACT_FILER:{DESC:"Arhiveaz\u0103 fiecare contract semnat \u0219i \xEE\u021Bi aminte\u0219te de termenele de re\xEEnnoire \u0219i preaviz.",T1:"Extrage clauzele cheie",T2:"Arhiveaz\u0103 contracte",T3:"Aminte\u0219te termenele"},VENDOR_MANAGER:{DESC:"\u021Aine eviden\u021Ba furnizorilor, contractelor \u0219i cheltuielilor \xEEntr-un singur loc.",T1:"Urm\u0103re\u0219te cheltuielile",T2:"Compar\u0103 oferte",T3:"Re\xEEnnoie\u0219te contracte"},PAYROLL_CHECKER:{DESC:"Verific\u0103 salariile \xEEnainte de plat\u0103, ca nimeni s\u0103 nu primeasc\u0103 o sum\u
50103 gre\u0219it\u0103.",T1:"Compar\u0103 pontajele",T2:"Verific\u0103 deducerile",T3:"Semnaleaz\u0103 erorile"},LEAVE_TRACKER:{DESC:"Urm\u0103re\u0219te concediile \u0219i zilele medicale \u0219i sincronizeaz\u0103 calendarele echipei.",T1:"\xCEnregistreaz\u0103 cererile",T2:"Actualizeaz\u0103 calendarele",T3:"Avertizeaz\u0103 la suprapuneri"},HIRING_COORDINATOR:{DESC:"Triaz\u0103 aplica\u021Biile, programeaz\u0103 interviuri \u0219i \u021Bine candida\u021Bii la curent.",T1:"Triaz\u0103 CV-uri",T2:"Programeaz\u0103 interviuri",T3:"Informeaz\u0103 candida\u021Bii"},LEAD_SCORER:{DESC:"Evalueaz\u0103 fiecare lead nou dup\u0103 potrivire \u0219i inten\u021Bie, ca agen\u021Bii s\u0103 \xEEnceap\u0103 cu cei mai buni.",T1:"Evalueaz\u0103 potrivirea",T2:"Evalueaz\u0103 inten\u021Bia",T3:"Distribuie lead-urile calde"},ICP_MATCHER:{DESC:"Compar\u0103 conturile cu profilul clientului ideal \u0219i explic\u0103 potrivirea.",T1:"Compar\u0103 datele",T2:"Evalueaz\u0103 potrivirea",T3:"Explic\u0103 de ce"},LIST_BUILDER:{DESC:"Construie\u0219te \xEEn c\xE2teva minute liste de prospec\u021Bi pe baza filtrelor tale.",T1:"Aplic\u0103 filtre",T2:"G\u0103se\u0219te contacte",T3:"Elimin\u0103 duplicatele"},INTENT_WATCHER:{DESC:"Observ\u0103 c\xE2nd conturile \u021Bint\u0103 \xEEncep s\u0103 caute ce vinzi.",T1:"Urm\u0103re\u0219te vizitele",T2:"Cite\u0219te datele de inten\u021Bie",T3:"Alerteaz\u0103 agen\u021Bii"},EMAIL_WRITER:{DESC:"Scrie emailuri de prim contact care sun\u0103 ca cel mai bun agent al t\u0103u.",T1:"Documenteaz\u0103 prospectul",T2:"Redacteaz\u0103 emailul",T3:"Sugereaz\u0103 subiecte"},LINKEDIN_PROSPECTOR:{DESC:"G\u0103se\u0219te oamenii potrivi\u021Bi pe LinkedIn \u0219i redacteaz\u0103 un mesaj personal.",T1:"G\u0103se\u0219te prospec\u021Bi",T2:"Redacteaz\u0103 mesajul",T3:"\xCEnregistreaz\u0103 activitatea"},PERSONALIZER:{DESC:"Adaug\u0103 fiec\u0103rui mesaj un r\xE2nd relevant \u0219i concret, din cercetare proasp\u0103t\u0103.",T1:"G\u0103se\u0219te c\xE2rlige",T2:"Adapteaz\u0103 deschiderile",T3:"Verific\u0103 tonul"},CALL_PREP:{DESC:"Ofer\u0103 agen\u021Bilor un brief de o pagin\u0103 \xEEnaintea fiec\u0103rui apel la rece.",T1:"Rezum\u0103 contul",T2:"Listeaz\u0103 punctele cheie",T3:"Anticipeaz\u0103 obiec\u021Biile"},OUTREACH_SEQUENCER:{DESC:"Ruleaz\u0103 secven\u021Be de email \u0219i LinkedIn \xEEn mai mul\u021Bi pa\u0219i \u0219i se opre\u0219te la primul r\u0103spuns.",T1:"Construie\u0219te secven\u021Ba",T2:"Trimite pa\u0219ii",T3:"Opre\u0219te la r\u0103spuns"},FOLLOWUP_SCHEDULER:{DESC:"Se asigur\u0103 c\u0103 nicio conversa\u021Bie nu se stinge, program\xE2nd fiecare follow-up.",T1:"Programeaz\u0103 follow-up-uri",T2:"Redacteaz\u0103 mementouri",T3:"Aminte\u0219te agen\u021Bilor"},REPLY_CLASSIFIER:{DESC:"Cite\u0219te fiecare r\u0103spuns \u0219i \xEEl sorteaz\u0103: interesat, nu acum sau dezabonare.",T1:"Clasific\u0103 r\u0103spunsurile",T2:"Actualizeaz\u0103 statusul",T3:"Alerteaz\u0103 la r\u0103spunsuri calde"},MEETING_BOOKER:{DESC:"Transform\u0103 r\u0103spunsurile interesate \xEEn \xEEnt\xE2lniri programate, f\u0103r\u0103 du-te-vino.",T1:"Ofer\u0103 intervale",T2:"Confirm\u0103 ora",T3:"Trimite invita\u021Bia"},CRM_UPDATER:{DESC:"\xCEnregistreaz\u0103 apelurile, emailurile \u0219i pa\u0219ii urm\u0103tori \xEEn CRM, ca agen\u02
51Bii s\u0103 nu mai fac\u0103 asta.",T1:"\xCEnregistreaz\u0103 activitatea",T2:"Actualizeaz\u0103 c\xE2mpurile",T3:"Creeaz\u0103 sarcini"},REP_COACH:{DESC:"Analizeaz\u0103 apelurile fiec\u0103rui agent \u0219i ofer\u0103 s\u0103pt\u0103m\xE2nal sfaturi concrete.",T1:"Analizeaz\u0103 apeluri",T2:"Identific\u0103 tipare",T3:"Propune exerci\u021Bii"},CALL_ANALYST:{DESC:"Ascult\u0103 apelurile de v\xE2nz\u0103ri \u0219i extrage nevoi, riscuri \u0219i pa\u0219i urm\u0103tori.",T1:"Transcrie apelurile",T2:"Extrage concluzii",T3:"Evalueaz\u0103 apelul"},MEETING_SUMMARIZER:{DESC:"Trimite un rezumat clar \u0219i sarcinile la c\xE2teva minute dup\u0103 fiecare \xEEnt\xE2lnire.",T1:"Rezum\u0103 \xEEnt\xE2lnirea",T2:"Listeaz\u0103 ac\u021Biunile",T3:"Distribuie noti\u021Bele"},OBJECTION_TRACKER:{DESC:"Urm\u0103re\u0219te obiec\u021Biile cump\u0103r\u0103torilor \u0219i ce r\u0103spunsuri c\xE2\u0219tig\u0103 tranzac\u021Bii.",T1:"Detecteaz\u0103 obiec\u021Biile",T2:"Leag\u0103 de rezultate",T3:"Actualizeaz\u0103 playbook-ul"},PROPOSAL_GENERATOR:{DESC:"Redacteaz\u0103 oferte personalizate din noti\u021Bele apelului \u0219i \u0219abloanele tale.",T1:"Extrage cerin\u021Bele",T2:"Redacteaz\u0103 oferta",T3:"Stabile\u0219te op\u021Biunile de pre\u021B"},QUOTE_BUILDER:{DESC:"Construie\u0219te cota\u021Bii corecte, cu reducerile \u0219i aprob\u0103rile potrivite.",T1:"Configureaz\u0103 produsele",T2:"Aplic\u0103 reducerile",T3:"Trimite spre aprobare"},CONTRACT_DRAFTER:{DESC:"Preg\u0103te\u0219te contracte din condi\u021Biile aprobate \u0219i eviden\u021Biaz\u0103 orice e neobi\u0219nuit.",T1:"Completeaz\u0103 \u0219ablonul",T2:"Verific\u0103 clauzele",T3:"Trimite la semnare"},PIPELINE_FORECASTER:{DESC:"Prognozeaz\u0103 trimestrul din activitatea real\u0103 a tranzac\u021Biilor, nu din instinct.",T1:"Evalueaz\u0103 tranzac\u021Biile",T2:"Prognozeaz\u0103 veniturile",T3:"Explic\u0103 schimb\u0103rile"},DEAL_RISK_MONITOR:{DESC:"Te avertizeaz\u0103 c\xE2nd o tranzac\u021Bie tace, \xEE\u0219i pierde sus\u021Bin\u0103torul sau \xEEncepe s\u0103 alunece.",T1:"Urm\u0103re\u0219te implicarea",T2:"Detecteaz\u0103 riscul",T3:"Sugereaz\u0103 pasul urm\u0103tor"},CONTENT_COMPOSER:{DESC:"Planific\u0103 \u0219i redacteaz\u0103 con\u021Binut pe vocea brandului t\u0103u, dintr-un singur brief.",T1:"Planific\u0103 calendarul",T2:"Redacteaz\u0103 materiale",T3:"Refolose\u0219te con\u021Binutul"},BLOG_WRITER:{DESC:"Documenteaz\u0103 \u0219i scrie articole de blog optimizate SEO, pe care echipa doar le \u0219lefuie\u0219te.",T1:"Documenteaz\u0103 subiectul",T2:"Structureaz\u0103 articolul",T3:"Scrie ciorna"},VIDEO_SCRIPT_WRITER:{DESC:"Scrie c\xE2rlige \u0219i scenarii pentru clipuri scurte \u0219i webinarii.",T1:"Scrie c\xE2rlige",T2:"Scrie scenele",T3:"Adaug\u0103 subtitr\u0103ri"},CASE_STUDY_WRITER:{DESC:"Intervieveaz\u0103 clien\u021Bi mul\u021Bumi\u021Bi \u0219i transform\u0103 povestea lor \xEEntr-un studiu de caz.",T1:"Preg\u0103te\u0219te \xEEntreb\u0103rile",T2:"Transcrie interviul",T3:"Scrie povestea"},BRAND_GUARDIAN:{DESC:"Verific\u0103 fiecare material dup\u0103 vocea \u0219i ghidul de stil al brandului.",T1:"Verific\u0103 tonul",T2:"Corecteaz\u0103 termenii",T3:"Semnaleaz\u0103 ce nu se potrive\u0219te"},DESIGN_BRIEF_WRITER:{DESC:"Transform\u0103 obiectivele campaniei \xEEn brief-uri clare cu care designerii pot \xEEncepe.",T1:"Define\u0219te obiectivele",T2:"Listeaz\u0103 materialele",T3:"Stabile\u0219te specifica\u021Biile"},SOCIAL_SCHEDULER:{DESC:"Programeaz\u0103 post\u0103rile la cele mai bune ore pe fiecare re\u021Bea social\u0103.",T1:"Alege cele mai bune ore",T2:"Pune post\u0103rile \xEEn coad\u0103",T3:"R\u0103spunde la comentarii"},SEO_OPTIMIZER:{DESC:"G\u0103se\u0219te cuvinte cheie ratate \u0219i optimizeaz\u0103 paginile ca s\u0103 se claseze mai sus.",T1:"G\u0103se\u0219te cuvinte cheie",T2:"Optimizeaz\u0103 paginile",T3:"Urm\u0103re\u0219te pozi\u021Biile"},NEWSLETTER_BUILDER:{DESC:"Construie\u0219te un newsletter din cel mai nou con\u021Binut \u0219i \xEEl trimite la timp.",T1:"Alege subiectele",T2:"Scrie introducerea",T3:"Programeaz\u0103 trimiterea"},AD_CAMPAIGN_MANAGER:{DESC:"Lanseaz\u0103 \u0219i ajusteaz\u0103 campanii de reclame, mut\xE2nd bugetul spre ce func\u021Bioneaz\u0103.",T1:"Lanseaz\u0103 reclame",T2:"Testeaz\u0103 variante",T3:"Mut\u0103 bugetul"},ANALYTICS_REPORTER:{DESC:"Adun\u0103 rezultatele din toate canalele \xEEntr-un raport s\u0103pt\u0103m\xE2nal de marketing.",T1:"Colecteaz\u0103 metrici",T2:"Explic\u0103 schimb\u0103rile",T3:"Trimite raportul"}},BRANCHES:{OPS_ONBOARDING:"Tot ce duce un client nou de la semn\u0103tur\u0103 p\xE2n\u0103 la pornire.",OPS_BUILDS:"Planificarea, urm\u0103rirea \u0219i livrarea proiectelor tale.",OPS_CLIENT_OPS:"\u021Aine sub control cererile, nout\u0103\u021Bile \u0219i angajamentele fa\u021B\u0103 de clien\u021Bi.",INT_COMPANIES:"Cunoa\u0219te orice companie \xEEn detaliu \xEEnainte s\u0103 vorbe\u0219ti cu ea.",INT_PEOPLE:"G\u0103se\u0219te oamenii potrivi\u021Bi \u0219i \xEEn\u021Belege cine decide.",INT_MARKETS:"Fii cu un pas \xEEnaintea mi\u0219c\u0103rilor din pia\u02
51Ba ta.",CUS_SUPPORT:"R\u0103spunsuri rapide \u0219i corecte la fiecare \xEEntrebare a clien\u021Bilor.",CUS_SUCCESS:"Clien\u021Bi mul\u021Bumi\u021Bi, care re\xEEnnoiesc \u0219i cresc.",CUS_COMMUNITY:"O comunitate prietenoas\u0103 \u0219i o imagine clar\u0103 a ce spun clien\u021Bii.",BO_MONEY:"Facturi, cheltuieli \u0219i lichidit\u0103\u021Bi, reconciliate \u0219i prognozate.",BO_BOOKS:"Contabilitate curat\u0103 \xEEn fiecare lun\u0103 \u0219i f\u0103r\u0103 surprize la taxe.",BO_OFFICE:"Contracte \u0219i furnizori, arhiva\u021Bi \u0219i gestiona\u021Bi \xEEntr-un singur loc.",BO_PEOPLE:"Salarii, concedii \u0219i recrutare, f\u0103r\u0103 birocra\u021Bie.",SAL_TARGETING:"Decide pe cine s\u0103 abordezi \u0219i c\xE2nd.",SAL_OUTREACH:"Primele mesaje personale, la o scar\u0103 pe care nicio echip\u0103 n-ar scrie-o de m\xE2n\u0103.",SAL_SEQUENCING:"Follow-up-uri, r\u0103spunsuri \u0219i \xEEnt\xE2lniri care merg singure.",DEA_REPS:"Ajut\u0103 fiecare agent s\u0103 v\xE2nd\u0103 ca cel mai bun.",DEA_CALLS:"Transform\u0103 fiecare discu\u021Bie de v\xE2nz\u0103ri \xEEn noti\u021Be, concluzii \u0219i pa\u0219i urm\u0103tori.",DEA_CLOSING:"Oferte, cota\u021Bii \u0219i contracte gata \xEEn ore, nu \xEEn zile.",DEA_PIPELINE:"O prognoz\u0103 de \xEEncredere \u0219i avertiz\u0103ri din timp pentru fiecare tranzac\u021Bie.",MKT_CONTENT:"Un flux constant de con\u021Binut, pe vocea ta.",MKT_BRAND:"Fiecare material fidel brandului, fiecare brief clar.",MKT_DISTRIBUTION:"Du con\u021Binutul \xEEn fa\u021Ba oamenilor potrivi\u021Bi \u0219i m\u0103soar\u0103 rezultatele."}},CTA_START_FREE:"\xCEncepe s\u0103 construie\u0219ti",CTA_SEE_HOW:"Vezi cum func\u021Bioneaz\u0103",FINAL_CTA:{EYEBROW:"\xCEncepe acum",TITLE:"\xCEncepe s\u0103 construie\u0219ti azi",SUBTITLE:"Descrie-\u021Bi ideea. Qira o duce de la prompt la produc\u021Bie.",CTA_START:"\xCEncepe gratuit",CTA_DEMO:"Vorbe\u0219te cu noi",TRUST:"Managed Cloud \xB7 GDPR \xB7 VPC sau on-premise"},HERO_EYEBROW:"Ea este Qira. O singur\u0103 IA care construie\u0219te tot.",HERO_TITLE_1:"Construie\u0219te creierul",HERO_TITLE_ACCENT:"\xEEntregii tale companii",HERO_SUBTITLE:"Qira scrie frontend-ul, backend-ul \u0219i baza de date \u0219i o public\u0103 pe domeniul t\u0103u.",STORY:{DESCRIBE:"Descrie",REFINE:"Ajusteaz\u0103",PUBLISH:"Public\u0103",DESCRIBE_T:"O idee devine o aplica\u021Bie func\u021Bional\u0103.",DESCRIBE_D:"Descrie paginile \u0219i func\u021Biile dorite. Qira construie\u0219te o aplica\u021Bie pe care o po\u021Bi previzualiza \u0219i explora.",REFINE_T:"Personalizeaz\u0103 fiecare detaliu.",REFINE_D:"Selecteaz\u0103 un element, cere o modificare \u0219i continu\u0103 s\u0103 \xEEmbun\u0103t\u0103\u021Be\u0219ti aplica\u021Bia \xEEn aceea\u0219i conversa\u021Bie.",PUBLISH_T:"Preg\u0103tit\u0103 pentru domeniul t\u0103u.",PUBLISH_D:"Conecteaz\u0103 domeniul \u0219i public\u0103. Dezvolt\u0103 aplica\u021Bia pe m\u0103sur\u0103 ce nevoile tale evolueaz\u0103.",EXPLORE:"Exploreaz\u0103 Qira Studio",LABEL:"Qira \xB7 Constructor de frontend",TITLE:"Prive\u0219te cum prinde form\u0103 aplica\u021Bia ta",S1_T:"Spune ce vrei",S1_D:"Scrie ca un mesaj c\u0103tre un coleg. Qira planific\u0103 paginile, datele \u0219i navigarea \xEEnainte s\u0103 scrie o linie.",S2_T:"Se construie\u0219te \xEEn fa\u021Ba ta",S2_D:"Componentele, paginile \u0219i rutele sunt scrise \xEEn timp real. Vezi fiecare fi\u0219ier imediat ce apare.",S3_T:"Previzualizeaz\u0103 instant",S3_D:"Aplica\u021Bia ruleaz\u0103 \xEEn momentul \xEEn care e generat\u0103. D\u0103 click, e real\u0103.",S4_T:"Schimb\u0103 orice prin chat",S4_D:"Selecteaz\u0103 un element \u0219i spune ce ar trebui s\u0103 fie diferit. Qira editeaz\u0103 codul, nu o schi\u021B\u0103.",S5_T:"Restilizeaz\u0103 cu un click",S5_D:"Dark, light, forest sau brandul t\u0103u. Fiecare component\u0103 se adapteaz\u0103.",S6_T:"Public\u0103 pe domeniul t\u0103u",S6_D:"Alege un subdomeniu sau conecteaz\u0103-l pe al t\u0103u. SSL, g\u0103zduire \u0219i actualiz\u0103ri sunt rezolvate."},FLOW:{EXAMPLE_NOTE:"Flux \u0219i durate ilustrative, nu un test de performan\u021B\u0103.",LABEL:"Qira \xB7 Backend",TITLE:"De la rezervare la date salvate.",SUB:"Valideaz\u0103 rezervarea, aplic\u0103 regulile afacerii \u0219i salveaz\u0103 datele. Qira conecteaz\u0103 pa\u02
519ii \xEEntr-un flux pe care \xEEl po\u021Bi inspecta.",P1_T:"Paralel implicit",P1_D:"Pa\u0219ii independen\u021Bi ruleaz\u0103 \xEEn acela\u0219i timp. 84 ms \xEEn loc de 108.",P2_T:"Logic\u0103 pe care o vezi",P2_D:"Validare, condi\u021Bii, apeluri IA, scrieri \xEEn baza de date \u0219i integr\u0103ri. Fiecare este un nod pe care \xEEl po\u021Bi deschide.",P3_T:"F\u0103r\u0103 servere, f\u0103r\u0103 YAML",P3_D:"Qira conecteaz\u0103 fluxul, Ubex \xEEl g\u0103zduie\u0219te. Tu descrii doar comportamentul.",REPLAY:"Reia cererea"},ONE:{LABEL:"Totul \xEEntr-un singur loc",TITLE:"Un singur spa\u021Biu de lucru \xEEn loc de \u0219apte abonamente",SUB:"Frontend, backend, baz\u0103 de date, autentificare, automatiz\u0103ri, domeniu \u0219i IA. Construite \xEEmpreun\u0103, rul\xE2nd \xEEmpreun\u0103.",USUAL:"Modul obi\u0219nuit",USUAL_SUB:"7 instrumente \xB7 7 conturi \xB7 cod de leg\u0103tur\u0103 \xEEntre ele",UBEX:"Cu Ubex",UBEX_SUB:"1 proiect \xB7 1 cont \xB7 nimic de lipit",T1:"G\u0103zduire frontend",T2:"Backend \u0219i API-uri",T3:"Baz\u0103 de date",T4:"Autentificare \u0219i utilizatori",T5:"Automatiz\u0103ri",T6:"Domeniu \u0219i SSL",T7:"Modele IA",TAB_NONTECH:"Nu sunt tehnic",TAB_DEV:"Sunt developer",TAB_BIZ:"Conduc o afacere",NONTECH_H:"Nu p\u0103r\u0103se\u0219ti niciodat\u0103 chatul.",NONTECH_1:"F\u0103r\u0103 configur\u0103ri, f\u0103r\u0103 conturi de hosting, f\u0103r\u0103 instrumente care nu comunic\u0103 \xEEntre ele.",NONTECH_2:"Spune ce ai nevoie \xEEn limbaj natural. Qira construie\u0219te \u0219i g\u0103zduie\u0219te.",NONTECH_3:"R\u0103zg\xE2nde\u0219te-te oric\xE2nd. Cere, \u0219i aplica\u021Bia se actualizeaz\u0103.",DEV_H:"Control total c\xE2nd \xEEl vrei.",DEV_1:"Editeaz\u0103 codul generat sau deschide fluxul vizual \u0219i conecteaz\u0103 logica manual.",DEV_2:"Adu propriul PostgreSQL, MySQL, MongoDB sau cheile tale de IA. Sau folose\u0219te-le pe ale noastre.",DEV_3:"Public\u0103 \xEEn Managed Cloud, pe serverele tale sau on-premise. Acela\u0219i proiect, un click.",BIZ_H:"O factur\u0103, un responsabil, un singur loc de verificat.",BIZ_1:"Frontend, backend, baz\u0103 de date \u0219i domeniu \xEEntr-un singur proiect. Nimic de lipit, nimic de pierdut.",BIZ_2:"Tu alegi unde stau datele tale. Fluxuri verificate din punct de vedere al securit\u0103\u021Bii \u0219i jurnale de audit.",BIZ_3:"\xCEncepe gratuit \u0219i treci la planuri de echip\u0103 c\xE2nd aplica\u021Bia cre\u0219te."},TESTIMONIALS:{LABEL:"De la cei care construiesc",TITLE:"Ce au construit, \xEEn cuvintele lor",MORE:"Cite\u0219te mai mult",LESS:"Arat\u0103 mai pu\u021Bin",PIXL_NAME:"PIXL VISN",PIXL_ROLE:"Academie de arte media \xB7 K\xF6ln, Germania",PIXL_QUOTE:"Aveam nevoie de o aplica\u021Bie complet\u0103 pentru academia noastr\u0103 - prezen\u021B\u0103, sesiuni, gestiunea studen\u021Bilor, autentificare, importuri Excel. Cu Ubex, totul a fost construit pe o singur\u0103 platform\u0103. Nimic extern. Doar Ubex.",MRW_NAME:"Mallorca Restaurant Week",MRW_ROLE:"Eveniment culinar anual \xB7 Mallorca, Spania",MRW_QUOTE:"Ubex a avut un rol esen\u021Bial \xEEn succesul Mallorca Restaurant Week. \xCEnscrierea unui num\u0103r mare de restaurante \xEEntr-un timp record, p\u0103str\xE2nd totul structurat \u0219i clar, a transformat un proces complex \xEEntr-unul fluid.",TASK_NAME:"Echipa Ubex",TASK_ROLE:"Construit de echip\u0103, pentru echip\u0103",TASK_QUOTE:"Ne-am construit \xEEntregul task manager pe Ubex - 10 fluxuri de lucru, peste 10 tabele, autentificare JWT, joburi programate, toat\u0103 aplica\u021Bia. Nimic extern. \xCEl folosim \xEEn fiecare zi.",VLF_NAME:"VON LILIENFELD",VLF_ROLE:"E-commerce \xB7 Umbrele \u0219i accesorii premium",VLF_QUOTE:"E prima dat\u0103 c\xE2nd plec\u0103m \xEEn vacan\u021B\u0103 f\u0103r\u0103 nimeni la birou sau la depozit. Fluxurile de lucru au func\u021Bionat impecabil \u0219i ne-au \u021Binut v\xE2nz\u0103rile active \xEEn magazin \u0219i pe Otto.",R1_NAME:"Marc Ostrowski",R1_ROLE:"Fondator solo \xB7 unealt\u0103 SaaS de analiz\u0103",R1_QUOTE:"Nu sunt developer de backend, dar Qira mi-a construit schema bazei de date, fluxul de autentificare \u0219i API-ul \xEEntr-o singur\u0103 dup\u0103-amiaz\u0103. Am lansat MVP-ul \xEEnainte s\u0103-mi termin cafeaua.",R2_NAME:"Sana Iqbal",R2_ROLE:"Dezvoltator principal \xB7 agen\u02
51Bie digital\u0103",R2_QUOTE:"Acum prezent\u0103m site-uri pentru clien\u021Bi \xEEn jum\u0103tate din timp. Qira construie\u0219te frontend-ul \u0219i backend-ul \xEEmpreun\u0103, a\u0219a c\u0103 un sprint de dou\u0103 s\u0103pt\u0103m\xE2ni a devenit unul de dou\u0103 zile - iar clien\u021Bii tot primesc un cod pe care \xEEl putem preda.",R3_NAME:"Elena Radu",R3_ROLE:"Proprietar\u0103 \xB7 studio boutique de fitness",R3_QUOTE:"Am descris ce \xEEmi doream \xEEn cuvinte simple \u0219i am v\u0103zut sistemul de rezerv\u0103ri prinz\xE2nd contur. F\u0103r\u0103 developer, f\u0103r\u0103 agen\u021Bie, f\u0103r\u0103 a\u0219teptare. L-am lansat singur\u0103 chiar \xEEn aceea\u0219i zi.",R4_NAME:"Devon Marsh",R4_ROLE:"CTO \xB7 startup la \xEEnceput de drum",R4_QUOTE:"Folosim Ubex pentru tot ce nu \u021Bine de produsul nostru principal - unelte interne, panouri de administrare, integr\u0103ri. Asta las\u0103 echipei timp de inginerie exact acolo unde conteaz\u0103.",R5_NAME:"Priya Nair",R5_ROLE:"Coordonator de program \xB7 ONG comunitar",R5_QUOTE:"Nu aveam buget pentru developeri. Qira ne-a construit sistemul de \xEEnscriere a voluntarilor, baza de date din spatele lui \u0219i un panou pentru coordonatorii no\u0219tri - totul live \xEEntr-o s\u0103pt\u0103m\xE2n\u0103.",R6_NAME:"Tom\xE1s Herrera",R6_ROLE:"Manager de opera\u021Biuni \xB7 retailer online",R6_QUOTE:"Urm\u0103rirea comenzilor, sincronizarea cu furnizorii, notific\u0103rile c\u0103tre clien\u021Bi - totul ruleaz\u0103 pe fluxuri pe care mi le-am configurat singur prin Qira. Am renun\u021Bat s\u0103 mai a\u0219tept timp de developer pentru fiecare schimbare mic\u0103."},BUILD:{LABEL:"Cum func\u021Bioneaz\u0103 Ubex",TITLE:"Un singur agent construie\u0219te tot",SUB:"Interfa\u021Ba pe care o v\u0103d utilizatorii \u0219i logica din spate, \xEEn acela\u0219i loc.",TAB_FRONTEND:"Frontend",TAB_BACKEND:"Backend"}},INTERFACE:{HERO_LABEL:"UBEX INTERFACE",HERO_TITLE:"Construie\u0219te aplica\u021Bii full-stack cu Qira. Alege modelul t\u0103u. Livreaz\u0103 \xEEn minute.",HERO_SUBTITLE:"Qira este constructorul t\u0103u IA din Ubex Interface. Alege orice LLM \u2013 de la Claude la GPT la Gemini \u2013 \u0219i construie\u0219te aplica\u021Bii complete frontend + backend prin conversa\u021Bie. \xCEncarc\u0103 design-uri, schimb\u0103 modelele pe parcurs \u0219i lanseaz\u0103 instant.",HERO_STAT_MODELS:"Multi-LLM",HERO_STAT_MODELS_LBL:"Alege modelul t\u0103u",HERO_STAT_FULLSTACK:"Full-Stack",HERO_STAT_FULLSTACK_LBL:"Frontend + Backend + BD",HERO_STAT_DEPLOY:"1-clic",HERO_STAT_DEPLOY_LBL:"Public\u0103 \u0219i lanseaz\u0103",HERO_STAT_LIVE:"Visual Design",HERO_STAT_LIVE_LBL:"Selecteaz\u0103 \u0219i editeaz\u0103 live",CTA_START_FREE:"\xCEncepe gratuit",CTA_BOOK_DEMO:"Rezerv\u0103 un demo",MODELS_LABEL:"SELEC\u021AIE MODEL",MODELS_TITLE:"Alege creierul din spatele construc\u021Biei tale.",MODELS_SUBTITLE:"Qira func\u021Bioneaz\u0103 cu LLM-ul pe care \xEEl alegi. Comut\u0103 \xEEntre modele oric\xE2nd \u2013 folose\u0219te un model puternic pentru layout-uri complexe, unul mai u\u0219or pentru edit\u0103ri rapide. Tu controlezi costul \u0219i capacitatea.",MODELS_ANTHROPIC:"Anthropic",MODELS_OPENAI:"OpenAI",MODELS_GOOGLE:"Google",MODELS_OPUS:"Claude Opus 4.6",MODELS_SONNET:"Claude Sonnet",MODELS_HAIKU:"Claude Haiku",MODELS_GPT4:"GPT-4o",MODELS_GPT4_MINI:"GPT-4o Mini",MODELS_GEMINI_PRO:"Gemini Pro",MODELS_GEMINI_FLASH:"Gemini Flash",MODELS_SWITCH_TITLE:"Schimb\u0103 modelele din mers",MODELS_SWITCH_DESC:"Nu trebuie s\u0103 r\u0103m\xE2i cu un singur model pentru \xEEntregul proiect. \xCEncepe cu un model puternic pentru arhitectur\u0103 complex\u0103, comut\u0103 la unul mai u\u0219or pentru ajust\u0103ri simple. Ubex \xEE\u021Bi ofer\u0103 aceast\u0103 alegere \u2013 optimizeaz\u0103 pentru calitate sau cost la fiecare pas.",FULLSTACK_LABEL:"CREARE FULL-STACK",FULLSTACK_TITLE:"Qira construie\u0219te frontend-ul. Vira se ocup\u0103 de backend. Automat.",FULLSTACK_SUBTITLE:"Odat\u0103 ce proiectul t\u0103u este selectat, Qira o apeleaz\u0103 pe Vira \xEEn timp real pentru a crea backend-ul. \xCEmpreun\u0103 construiesc totul \u2013 pagini frontend, API-uri backend \u0219i tabele de baze de date. O aplica\u021Bie complet\u0103, dintr-o singur\u0103 conversa\u021Bie.",FULLSTACK_F1_TITLE:"Generare frontend",FULLSTACK_F1_DESC:"Pagini, componente, formulare, dashboard-uri, fluxuri de autentificare \u2013 Qira genereaz\u0103 interfa\u021Ba complet\u0103 din descrierea ta.",FULLSTACK_F2_TITLE:"Creare automat\u0103 a backend-ului",FULLSTACK_F2_DESC:"Qira o apeleaz\u0103 pe Vira \xEEn timp real pentru a crea REST API-uri, fluxuri de autentificare \u0219i logic\u0103 de business \u2013 f\u0103r\u0103 configurare manual\u0103.",FULLSTACK_F3_TITLE:"Tabele de baze de date",FULLSTACK_F3_DESC:"Vira creeaz\u0103 \u0219i configureaz\u0103 toate tabelele de baze de date de care are nevoie aplica\u021Bia ta. Utilizatori, sesiuni, con\u021Binut \u2013 totul structurat \u0219i preg\u0103tit.",FULLSTACK_F4_TITLE:"Totul conectat",FULLSTACK_F4_DESC:"Frontend-ul comunic\u0103 nativ cu backend-ul. F\u0103r\u0103 b\u0103t\u0103i de cap cu CORS, f\u0103r\u0103 cablare API. Pur \u0219i simplu func\u021Bioneaz\u0103 pentru c\u0103 totul e construit pe aceea\u0219i platform\u0103.",CONTROL_LABEL:"CONTROL TOTAL",CONTROL_TITLE:"Proiectul t\u0103u, regulile tale.",CONTROL_SUBTITLE:"Opre\u0219te modelul oric\xE2nd. \xCEncarc\u0103 imagini de referin\u021B\u0103. Schimb\u0103 LLM-urile \xEEn mijlocul conversa\u021Biei. Ubex \xEE\u021Bi ofer\u0103 control complet asupra modului \xEEn care se construie\u0219te aplica\u021Bia ta.",CONTROL_STOP_TITLE:"Opre\u0219te oric\xE2nd",CONTROL_STOP_DESC:"Nu merge \xEEn direc\u021Bia bun\u0103? Opre\u0219te modelul instant \u0219i redirec\u021Bioneaz\u0103. Ai mereu controlul asupra procesului de generare.",CONTROL_UPLOAD_TITLE:"\xCEncarc\u0103 imagini \u0219i exemple",CONTROL_UPLOAD_DESC:"Adaug\u0103 capturi de ecran, mockup-uri sau exemple de pe alte site-uri. Qira le folose\u0219te ca referin\u021B\u0103 pentru a se potr
5ivi cu design-ul pe care \xEEl ai \xEEn minte.",CONTROL_SWITCH_TITLE:"Schimb\u0103 modelele pe parcursul proiectului",CONTROL_SWITCH_DESC:"\xCEncepe cu Claude Opus pentru arhitectur\u0103 complex\u0103, comut\u0103 la Haiku pentru modific\u0103ri rapide de text. Nu trebuie s\u0103 folose\u0219ti acela\u0219i model p\xE2n\u0103 la final.",PREVIEW_LABEL:"PREVIZUALIZARE \u0218I COD",PREVIEW_TITLE:"Vezi live. Editeaz\u0103 codul. Ambele simultan.",PREVIEW_SUBTITLE:"Interfa\u021Ba \xEE\u021Bi ofer\u0103 dou\u0103 vizualiz\u0103ri una l\xE2ng\u0103 alta \u2013 o previzualizare live a ceea ce a creat Qira \u0219i o vizualizare de cod unde po\u021Bi ajusta manual orice. Vezi structura complet\u0103 a proiectului, editeaz\u0103 fi\u0219ierele direct \u0219i urm\u0103re\u0219te cum modific\u0103rile se reflect\u0103 instant.",PREVIEW_LIVE_TITLE:"Previzualizare live",PREVIEW_LIVE_DESC:"Vezi exact ce construie\u0219te Qira \xEEn timp real. Fiecare component\u0103, fiecare pagin\u0103, fiecare interac\u021Biune \u2013 randate live pe m\u0103sur\u0103 ce sunt generate.",PREVIEW_CODE_TITLE:"Vizualizare cod",PREVIEW_CODE_DESC:"Acces complet la codul surs\u0103. Navigheaz\u0103 structura proiectului, deschide orice fi\u0219ier \u0219i f\u0103 ajust\u0103ri manuale. Codul t\u0103u, cum vrei tu.",SELECT_LABEL:"INSTRUMENT SELECT \u0218I DESIGN",SELECT_TITLE:"Click pe orice element. Stilizeaz\u0103-l vizual. Economise\u0219te la costuri IA.",SELECT_SUBTITLE:"Instrumentul de selec\u021Bie \xEE\u021Bi permite s\u0103 dai click pe orice element din previzualizarea live \u0219i s\u0103-l modifici instant. Apare un panou complet de design cu toate op\u021Biunile de care ai nevoie. \xCEn loc s\u0103 consumi tokeni cer\xE2nd IA-ului s\u0103 schimbe o dimensiune de font sau o culoare, f\u0103-o singur cu un click. Instrumentul de design \xEE\u021Bi economise\u0219te bani reali.",SELECT_SAVE_TITLE:"Economise\u0219te bani cu editarea vizual\u0103",SELECT_SAVE_DESC:"De fiecare dat\u0103 c\xE2nd ceri IA-ului s\u0103 ajusteze o culoare, s\u0103 modifice spa\u021Bierea sau s\u0103 schimbe un font \u2013 asta cost\u0103 tokeni. Cu instrumentul de design, faci acele modific\u0103ri singur \xEEn c\xE2teva secunde, vizual. Rezerv\u0103 IA-ul pentru ce conteaz\u0103: construirea de func\u021Bionalit\u0103\u021Bi noi, logic\u0103 complex\u0103 \u0219i pagini \xEEntregi. Ajust\u0103rile simple de design nu ar trebui s\u0103 te coste niciodat\u0103 un prompt.",SELECT_CLASSES_TITLE:"Clase",SELECT_CLASSES_DESC:"Adaug\u0103 sau elimin\u0103 clase CSS instant. Vezi toate clasele aplicate ca etichete, elimin\u0103 cu un click sau adaug\u0103 altele noi din c\xE2mpul de introducere.",SELECT_LAYOUT_TITLE:"Layout",SELECT_LAYOUT_DESC:"Controleaz\u0103 modul de afi\u0219are, tipul de pozi\u021Bionare \u0219i comportamentul overflow. Comut\u0103 \xEEntre block, flex, grid, inline \u2013 totul cu butoane vizuale.",SELECT_SIZE_TITLE:"Dimensiune",SELECT_SIZE_DESC:"Seteaz\u0103 l\u0103\u021Bimea, \xEEn\u0103l\u021Bimea, dimensiunile min/max cu valori precise \xEEn pixeli. Control total asupra spa\u021Biului pe care \xEEl ocup\u0103 elementul t\u0103u.",SELECT_SPACING_TITLE:"Spa\u021Biere",SELECT_SPACING_DESC:"Ajusteaz\u0103 padding-ul \u0219i marginea cu valori legate sau individuale. Regleaz\u0103 fin spa\u021Biul din jurul fiec\u0103rui element.",SELECT_FILL_TITLE:"Umplere \u0219i Borduri",SELECT_FILL_DESC:"Culori de fundal, gradien\u021Bi, opacitate, cursor, stiluri de bordur\u0103 \u0219i raz\u0103 de bordur\u0103. Include op\u021Biuni de gradien\u021Bi preseta\u021Bi pentru stilizare rapid\u0103.",SELECT_EFFECTS_TITLE:"Efecte",SELECT_EFFECTS_DESC:"Adaug\u0103 umbre de la subtile la dramatice \u2013 Niciuna, SM, MD, LG, XL sau Interioar\u0103. Plus valori personalizate de umbr\u0103 pentru control precis.",SELECT_TYPO_TITLE:"Tipografie",SELECT_TYPO_DESC:"Familie de font, dimensiune, grosime, \xEEn\u0103l\u021Bime linie, spa\u021Biere litere, culoare, aliniere \u0219i decorare. Stilizare complet\u0103 a textului \xEEntr-un singur panou.",SELECT_RESPONSIVE_TITLE:"Puncte de \xEEntrerupere responsive",SELECT_RESPONSIVE_DESC:"Stilizeaz\u0103 per punct de \xEEntrerupere \u2013 Toate, \u2265640, \u2265768, \u22651024, \u22651280. Fiecare element poate avea stiluri diferite la dimensiuni diferite de ecran.",RESPONSIVE_
5LABEL:"PREVIZUALIZARE RESPONSIV\u0102",RESPONSIVE_TITLE:"Desktop. Tablet\u0103. Mobil. Vezi totul.",RESPONSIVE_SUBTITLE:"Trei moduri de previzualizare live \xEE\u021Bi permit s\u0103 vezi exact cum arat\u0103 aplica\u021Bia ta pe fiecare dispozitiv. Comut\u0103 \xEEntre vizualiz\u0103rile Desktop, Tablet\u0103 \u0219i Mobil instant \u2013 f\u0103r\u0103 ghiceli, f\u0103r\u0103 surprize la lansare.",RESPONSIVE_DESKTOP:"Desktop",RESPONSIVE_TABLET:"Tablet\u0103",RESPONSIVE_MOBILE:"Mobil",SETTINGS_LABEL:"SET\u0102RI \u0218I VERSIONARE",SETTINGS_TITLE:"Subdomenii, teme \u0219i control al versiunilor. Integrate.",SETTINGS_SUBTITLE:"Configureaz\u0103 lansarea, schimb\u0103 temele instant \u0219i gestioneaz\u0103 versiunile aplica\u021Biei \u2013 totul din set\u0103rile Interfe\u021Bei.",SETTINGS_SUBDOMAIN_TITLE:"Subdomeniu personalizat",SETTINGS_SUBDOMAIN_DESC:"Nu vrei s\u0103 folose\u0219ti domeniul principal? Configureaz\u0103 un subdomeniu pentru publicare. Aplica\u021Bia ta devine live la aplicatia-ta.ubex.ai sau orice domeniu personalizat pe care \xEEl conectezi.",SETTINGS_THEME_TITLE:"Schimbare tem\u0103 cu un click",SETTINGS_THEME_DESC:"Ai folosit o tem\u0103 Ubex implicit\u0103? Schimb-o cu un click. Toate culorile se actualizeaz\u0103 automat pe fiecare element din pagina ta \u2013 butoane, text, fundaluri, totul.",SETTINGS_VERSION_TITLE:"Versionare aplica\u021Bie",SETTINGS_VERSION_DESC:"Fiecare publicare creeaz\u0103 o versiune. Adaug\u0103 descrieri pentru a urm\u0103ri ce s-a schimbat. Revino la orice versiune anterioar\u0103 \u0219i pune-o live \xEEn c\xE2teva secunde \u2013 selecteaz-o din bara de sus.",DEMO_LABEL:"VEZI \xCEN AC\u021AIUNE",DEMO_TITLE:"Prive\u0219te cum Qira \u0219i Vira construiesc o aplica\u021Bie complet\u0103 \xEEmpreun\u0103.",DEMO_SUBTITLE:"De la conversa\u021Bie la aplica\u021Bie lansat\u0103 \u2013 \xEEnregistrare, login, dashboard, membri, set\u0103ri \u0219i lansare. Totul \xEEntr-un singur flux.",DEMO_CHAT_INPUT:"Spune-i Qirei ce s\u0103 construiasc\u0103...",DEMO_WAITING:"Se a\u0219teapt\u0103 Qira...",DEMO_VIRA_JOINED:"Vira s-a al\u0103turat conversa\u021Biei",DEMO_P1_USER:"Construie\u0219te-mi o aplica\u021Bie SaaS cu login prin email, verificare OTP, un dashboard cu statistici, o pagin\u0103 de membri \u0219i set\u0103ri.",DEMO_P1_QIRA:"M\u0103 ocup. Creez frontend-ul complet \u2013 \xEEnregistrare, login bazat pe email, verificare OTP, dashboard cu bar\u0103 lateral\u0103, tabel membri \u0219i pagin\u0103 de set\u0103ri.",DEMO_P2_USER:"Acum conecteaz\u0103 totul la un backend real \u2013 auth, baz\u0103 de date, endpoint-uri API.",DEMO_P2_QIRA:"Asta necesit\u0103 lucru de backend. O chem pe Vira.",DEMO_P2_VIRA1:"Salut! M\u0103 ocup de backend. Creez workflow-uri de auth, tabele de baz\u0103 de date pentru utilizatori \u0219i membri, \u0219i endpoint-uri REST pentru tot.",DEMO_P2_VIRA2:"Gata. Workflow-urile de \xEEnregistrare \u0219i login OTP sunt live. API-ul de membri cu paginare e gata. Endpoint-ul de statistici dashboard conectat. Totul securizat cu JWT.",COMPARE_LABEL:"DE CE UBEX",COMPARE_TITLE:"Totul \xEEntr-un singur loc. Nu \xEEn cinci.",COMPARE_SUBTITLE:"Alte platforme te oblig\u0103 s\u0103 lipe\u0219ti hosting frontend, servicii backend, baze de date, furnizori de auth \u0219i pipeline-uri de lansare. Ubex e o singur\u0103 platform\u0103.",COMPARE_FRONTEND:"Frontend",COMPARE_BACKEND:"Backend",COMPARE_DATABASE:"Baz\u0103 de date",COMPARE_AUTH:"Autentificare",COMPARE_HOSTING:"Hosting",COMPARE_SSL:"SSL",COMPARE_SERVICES:"Servicii de gestionat",COMPARE_UBEX_FRONTEND:"Qira genereaz\u0103 din chat",COMPARE_UBEX_BACKEND:"Workflow-uri vizuale Vira",COMPARE_UBEX_DB:"G\u0103zduit pe Ubex, zero configurare",COMPARE_UBEX_AUTH:"JWT/OTP inclus",COMPARE_UBEX_HOSTING:"Lansare cu un clic",COMPARE_UBEX_SSL:"Automat",COMPARE_UBEX_SERVICES:"1 platform\u0103",COMPARE_ALT_FRONTEND:"React/Vue + cod manual",COMPARE_ALT_BACKEND:"Express/Django + configurare server",COMPARE_ALT_DB:"Serviciu BD separat",COMPARE_ALT_AUTH:"Auth0 / Firebase Auth",COMPARE_ALT_HOSTING:"Hosting separat frontend + API",COMPARE_ALT_SSL:"Manual sau Let's Encrypt",COMPARE_ALT_SERVICES:"4-6
5servicii",CTA_TITLE:"Nu mai lipi. \xCEncepe s\u0103 livrezi.",CTA_SUBTITLE:"Descrie aplica\u021Bia ta, prime\u0219ti un full stack, lanseaz\u0103 cu un clic. Plan gratuit inclus \u2013 f\u0103r\u0103 card de credit.",CTA_TALK:"Vorbe\u0219te cu noi",CTA_TRUST:"Plan gratuit \xB7 Managed Cloud \xB7 SSL inclus \xB7 Domenii personalizate"},FEATURES:{HERO_LABEL:"FUNC\u021AIONALIT\u0102\u021AI",HERO_TITLE:"Tot ce ai nevoie pentru a crea aplica\u021Bii, automatiza munca \u0219i lansa cu \xEEncredere",HERO_SUBTITLE:"IA, integr\u0103ri, date, securitate - totul \xEEntr-o singur\u0103 platform\u0103. 3 ani de inginerie. Un motor puternic.",HERO_CTA_START:"\xCEncepe gratuit",HERO_CTA_INTERFACE:"Vezi interfa\u021Ba",DIFF_PARALLEL_TITLE:"Execu\u021Bie paralel\u0103",DIFF_PARALLEL_DESC:"Ruleaz\u0103 de 3x-10x mai rapid dec\xE2t uneltele secven\u021Biale. Workflow-urile tale execut\u0103 sarcini independente simultan.",DIFF_DB_TITLE:"Suport multi-baze de date",DIFF_DB_DESC:"MySQL, PostgreSQL, MongoDB. Conexiuni securizate integrate. Datele tale r\u0103m\xE2n protejate.",DIFF_EU_TITLE:"Lansare flexibil\u0103",DIFF_EU_DESC:"Cloud, VPC sau on-premise. Datele tale, regulile tale. Alege unde tr\u0103iesc.",DIFF_COMPLIANCE_TITLE:"Conformitate integrat\u0103",DIFF_COMPLIANCE_DESC:"Auto-audit, loguri de execu\u021Bie, reten\u021Bie date. Pe drumul spre alinierea cu GDPR, SOC 2 \u0219i ISO 27001.",SOLVES_LABEL:"CE REZOLV\u0102 UBEX",SOLVES_TITLE:"Nu mai lipi unelte. \xCEncepe s\u0103 livrezi produse.",SOLVES_SUBTITLE:"Ubex \xEEnlocuie\u0219te stiva dispersat\u0103 de servicii, scripturi \u0219i unelte pe care o men\u021Bii azi - cu o singur\u0103 platform\u0103.",BENTO_POPULAR:"Cel mai popular",BENTO_AGENT_TITLE:"Creeaz\u0103-\u021Bi propriul agent IA",BENTO_AGENT_DESC:"Construie\u0219te asisten\u021Bi personali pentru sarcini zilnice - triaj email, c\u0103ut\u0103ri de date, rapoarte programate, alerte Slack. Lanseaz\u0103 ca interfa\u021B\u0103 de chat, endpoint API sau job programat.",BENTO_AGENT_T1:"Rezumate zilnice",BENTO_AGENT_T2:"Asistent email",BENTO_AGENT_T3:"Monitor date",BENTO_AGENT_T4:"Suport chat",BENTO_AGENT_T5:"Rapoarte programate",BENTO_BACKEND_TITLE:"Construie\u0219te un backend complet",BENTO_BACKEND_DESC:"Tot ce are nevoie aplica\u021Bia ta - conturi utilizatori, stocare date, emailuri, fi\u0219iere. Lanseaz\u0103 endpoint-uri de produc\u021Bie dintr-un canvas vizual.",BENTO_ENDPOINTS_DEPLOYED:"endpoint-uri lansate",BENTO_AUTOMATE_TITLE:"Automatizeaz\u0103 orice",BENTO_AUTOMATE_DESC:"Conecteaz\u0103 baze de date, API-uri \u0219i servicii \xEEn pipeline-uri programate sau bazate pe evenimente. Proceseaz\u0103 facturi, sincronizeaz\u0103 cataloage, declan\u0219eaz\u0103 alerte.",BENTO_AI_TITLE:"Lanseaz\u0103 aplica\u021Bii cu IA",BENTO_AI_DESC:"Aplica\u021Bii care g\xE2ndesc. Chatbo\u021Bi care \xEE\u021Bi cunosc afacerea. Documente care se proceseaz\u0103 singure. Conecteaz\u0103 modele IA la datele tale \u0219i lanseaz\u0103.",NODES_TITLE:"Toate tipurile de noduri",FILTER_ALL:"Toate",FILTER_AI:"IA & ML",FILTER_INTEGRATION:"Integr\u0103ri",FILTER_LOGIC:"Logic\u0103 & Cod",FILTER_OUTPUT:"Ie\u0219ire",READ_DOCS:"Cite\u0219te docs \u2192",MORE_NODES_TITLE:"Mai multe noduri disponibile",MORE_NODES_DESC:"Platforma include tipuri de noduri suplimentare fa\u021B\u0103 de cele listate aici. Noduri noi sunt ad\u0103ugate regulat pe baza feedback-ului utilizatorilor.",VIEW_ROADMAP:"Vezi foaia de parcurs \u2192",TRIGGERS_LABEL:"DECLAN\u0218ATOARE",TRIGGERS_TITLE:"Porne\u0219te workflow-uri cum vrei tu",TRIGGERS_SUBTITLE:"Fiecare workflow \xEEncepe cu un declan\u0219ator. Alege-l pe cel care se potrive\u0219te cazului t\u0103u de utilizare.",TRIGGER_DOCS_BTN:"Cite\u0219te documenta\u021Bia \u2192",SECURITY_LABEL:"SECURITATE \u0218I INFRASTRUCTUR\u0102",SECURITY_TITLE:"Securitate de nivel produc\u021Bie. Nu ca g\xE2nd ulterior.",SECURITY_SUBTITLE:"Fiecare endpoint vine cu controalele pe care le-ai a\u0219tepta de la infrastructur\u0103 scris\u0103 manual - configurate vizual.",SEC_API_AUTH_TITLE:"Autentificare API",SEC_API_AUTH_DESC:"Toggle auth obligatoriu pe fiecare endpoint. Gestionare chei API cu validare header x-api-key.",SEC_IP_TITLE:"Whitelisting IP",SEC_IP_DESC:"Restric\u021Bioneaz\u0103 accesul la endpoint la IP-uri specifice sau intervale CIDR. Controleaz\u0103 exact cine poate ajunge la workflow-urile tale.",SEC_CORS_TITLE:"Controale
5CORS",SEC_CORS_DESC:"Configureaz\u0103 ce origini pot apela endpoint-urile tale. Partajare resurse cross-origin granular\u0103 per workflow.",SEC_RATE_TITLE:"Limitare rat\u0103",SEC_RATE_DESC:"Cereri-pe-minut configurabile pe fiecare endpoint API. Previne abuzul \u0219i controleaz\u0103 traficul.",SEC_SSL_TITLE:"SSL/TLS \u0219i tuneluri SSH",SEC_SSL_DESC:"Toate conexiunile la baze de date criptate. Ruteaz\u0103 prin tuneluri SSH pentru acces securizat la baze de date private.",SEC_LOGS_TITLE:"Loguri execu\u021Bie \u0219i audit",SEC_LOGS_DESC:"Depanare pas cu pas. Reten\u021Bie 7 p\xE2n\u0103 la 365 zile. Jurnal de audit complet al fiec\u0103rei rul\u0103ri de workflow.",INTEGRATIONS_LABEL:"INTEGR\u0102RI",INTEGRATIONS_TITLE:"Conecteaz\u0103-te la uneltele pe care le folose\u0219ti deja",INTEGRATIONS_SUBTITLE:"Conectori predefiniti \u0219i \xEEn cre\u0219tere. Plus nodul HTTP Request pentru orice API.",INTEGRATIONS_NOTE:"Nu g\u0103se\u0219ti unealta ta? Folose\u0219te nodul HTTP Request pentru a te conecta la orice REST API.",AI_LABEL:"AI BUILDER",AI_TITLE:"Construit prin descriere",AI_DESC1:"F\u0103r\u0103 configurare manual\u0103. Spune-i lui Qira ce trebuie s\u0103 fac\u0103 aplica\u021Bia ta \u0219i ea o construie\u0219te - trigger-e, condi\u021Bii, integr\u0103ri, baz\u0103 de date, frontend - totul cablat \u0219i gata de lansat.",AI_DESC2:"Poate \u0219i edita lucr\u0103ri existente, ad\u0103uga func\u021Bionalit\u0103\u021Bi, schimba integr\u0103ri sau restructura logica - totul prin conversa\u021Bie.",AI_CTA:"Descoper\u0103 Qira",AI_DEMO_USER:"Monitorizeaz\u0103 un site pentru sc\u0103deri de pre\u021B \u0219i anun\u021B\u0103-m\u0103 pe Telegram",AI_DEMO_BOT:"Gata. Trigger programat \u2192 Web scraper \u2192 Condi\u021Bie (verificare pre\u021B) \u2192 Alert\u0103 Telegram. Ruleaz\u0103 la fiecare 30 de minute.",CTA_TITLE:"Gata s\u0103 construie\u0219ti?",CTA_SUBTITLE:"\xCEncepe s\u0103 construie\u0219ti aplica\u021Bii \u0219i automatiz\u0103ri \xEEn minute. F\u0103r\u0103 card de credit.",CTA_START:"\xCEncepe gratuit",CTA_TUTORIALS:"Exploreaz\u0103 tutorialele",MODAL_LOADING:"Se \xEEncarc\u0103 documenta\u021Bia...",MODAL_TOC_TITLE:"Pe aceast\u0103 pagin\u0103",CHAT_USER1:"Rezum\u0103 datele de v\xE2nz\u0103ri de azi",CHAT_BOT1:"Venituri azi: 12.450 \u20AC din 34 comenzi. Produs top: Plan Pro (18 v\xE2nz\u0103ri). +12% venituri fa\u021B\u0103 de ieri.",CHAT_USER2:"Trimite asta pe canalul #sales din Slack",CHAT_BOT2:"Gata. Rezumatul a fost postat pe #sales cu graficul zilnic ata\u0219at.",TRIGGER_CHAT_NAME:"Chat",TRIGGER_CHAT_HEADLINE:"Construie\u0219te IA conversa\u021Bional\u0103",TRIGGER_CHAT_DESC:"Transform\u0103 orice workflow \xEEntr-un chatbot. Memorie de sesiune, r\u0103spunsuri \xEEn streaming \u0219i UI de chat integrat. Conecteaz\u0103 GPT-4, Claude, Gemini - sau pe to\u021Bi.",TRIGGER_CHAT_F1:"Memorie de sesiune",TRIGGER_CHAT_F2:"R\u0103spunsuri \xEEn streaming",TRIGGER_CHAT_F3:"UI de chat integrat",TRIGGER_CHAT_F4:"Suport multi-LLM",TRIGGER_MANUAL_NAME:"Manual",TRIGGER_MANUAL_HEADLINE:"Ruleaz\u0103 la cerere",TRIGGER_MANUAL_DESC:"Execut\u0103 workflow-uri din dashboard cu un clic. Transmite parametri de intrare, vezi execu\u021Bia pas cu pas, depaneaz\u0103 \xEEn timp real.",TRIGGER_MANUAL_F1:"Execu\u021Bie cu un clic",TRIGGER_MANUAL_F2:"Parametri de intrare",TRIGGER_MANUAL_F3:"Depanare pas cu pas",TRIGGER_MANUAL_F4:"Loguri de execu\u021Bie",TRIGGER_SCHEDULE_NAME:"Programat",TRIGGER_SCHEDULE_HEADLINE:"Automatizeaz\u0103 dup\u0103 un program",TRIGGER_SCHEDULE_DESC:"Programare bazat\u0103 pe cron cu flexibilitate total\u0103. Ruleaz\u0103 \xEEn fiecare minut, orar, zilnic, s\u0103pt\u0103m\xE2nal sau define\u0219te expresii cron personalizate.",TRIGGER_SCHEDULE_F1:"Expresii cron",TRIGGER_SCHEDULE_F2:"Suport fus orar",TRIGGER_SCHEDULE_F3:"Intervale personalizate",TRIGGER_SCHEDULE_F4:"Re\xEEncercare la e\u0219ec",TRIGGER_API_NAME:"API",TRIGGER_API_HEADLINE:"Expune ca endpoint REST",TRIGGER_API_DESC:"Fiecare workflow prime\u0219te un URL unic. Adaug\u0103 autentificare prin cheie API, whitelisting IP, limitare rat\u0103 \u0219i controale
5CORS.",TRIGGER_API_F1:"URL endpoint unic",TRIGGER_API_F2:"Auth cheie API",TRIGGER_API_F3:"Limitare rat\u0103",TRIGGER_API_F4:"Controale CORS",NODE_FLOW_START_TITLE:"Pornire flux",NODE_FLOW_START_DESC:"Punct de intrare pentru fluxuri Workflow \u0219i Agent. Suport\u0103 declan\u0219atoare Chat, Manual, Programat \u0219i API.",NODE_FLOW_START_H1:"Declan\u0219atoare multiple",NODE_FLOW_START_H2:"Interfa\u021B\u0103 chat",NODE_FLOW_START_H3:"Programat & API",NODE_FLOW_START_H4:"Capacit\u0103\u021Bi agent",NODE_CONDITIONS_TITLE:"Condi\u021Bii",NODE_CONDITIONS_DESC:"Ramific\u0103 workflow-ul pe baza datelor. Suport pentru condi\u021Bii complexe cu logic\u0103 AND/OR.",NODE_CONDITIONS_H1:"Ramuri if/else",NODE_CONDITIONS_H2:"Condi\u021Bii multiple",NODE_CONDITIONS_H3:"Comparare date",NODE_CONDITIONS_H4:"Potrivire regex",NODE_DELAY_TITLE:"\xCEnt\xE2rziere",NODE_DELAY_DESC:"Pauze execu\u021Bia workflow-ului pentru o durat\u0103 specificat\u0103. Util pentru limitare rat\u0103 sau a\u0219teptarea proceselor externe.",NODE_DELAY_H1:"Durat\u0103 configurabil\u0103",NODE_DELAY_H2:"Unit\u0103\u021Bi de timp multiple",NODE_DELAY_H3:"Limitare rat\u0103",NODE_DELAY_H4:"Anulabil",NODE_MCP_TITLE:"Server MCP",NODE_MCP_DESC:"Conecteaz\u0103-te la un server MCP extern \u0219i invoc\u0103 o unealt\u0103. Suport\u0103 transporturi SSE \u0219i HTTP cu autentificare API Key sau Bearer Token.",NODE_MCP_H1:"Transport SSE & HTTP",NODE_MCP_H2:"Auto-descoperire unelte",NODE_MCP_H3:"Auth API Key & Bearer",NODE_MCP_H4:"Argumente dinamice",NODE_VALIDATOR_TITLE:"Validator date",NODE_VALIDATOR_DESC:"Valideaz\u0103 \u0219i structureaz\u0103 date folosind JSON Schema. Asigur\u0103 c\u0103 datele respect\u0103 tipuri, formate \u0219i constr\xE2ngeri a\u0219teptate.",NODE_VALIDATOR_H1:"Validare schem\u0103",NODE_VALIDATOR_H2:"Verificare tipuri",NODE_VALIDATOR_H3:"Constr\xE2ngeri format",NODE_VALIDATOR_H4:"C\xE2mpuri obligatorii",NODE_FORLOOP_TITLE:"Bucle For",NODE_FORLOOP_DESC:"Itereaz\u0103 peste array-uri \u0219i colec\u021Bii. Proceseaz\u0103 elemente \xEEn paralel sau secven\u021Bial. Agregeaz\u0103 rezultatele automat.",NODE_FORLOOP_H1:"Iterare array",NODE_FORLOOP_H2:"Procesare paralel\u0103",NODE_FORLOOP_H3:"Agregare rezultate",NODE_FORLOOP_H4:"Condi\u021Bii de oprire",NODE_SUBWORKFLOW_TITLE:"Sub-workflow",NODE_SUBWORKFLOW_DESC:"Organizeaz\u0103 logica complex\u0103 \xEEn sub-workflow-uri reutilizabile. Apeleaz\u0103 workflow-uri din alte workflow-uri.",NODE_SUBWORKFLOW_H1:"Logic\u0103 reutilizabil\u0103",NODE_SUBWORKFLOW_H2:"Execu\u021Bie imbricat\u0103",NODE_SUBWORKFLOW_H3:"Transmitere parametri",NODE_SUBWORKFLOW_H4:"Izolare erori",NODE_TRYCATCH_TITLE:"Try / Catch",NODE_TRYCATCH_DESC:"Gestionare erori \u0219i logic\u0103 de re\xEEncercare pentru workflow-urile tale. Prinde erori, configureaz\u0103 re\xEEncerc\u0103ri cu backoff fix sau exponen\u021Bial.",NODE_TRYCATCH_H1:"Re\xEEncerc\u0103ri configurabile",NODE_TRYCATCH_H2:"Backoff exponen\u021Bial",NODE_TRYCATCH_H3:"Rutare erori",NODE_TRYCATCH_H4:"Control \xEEnt\xE2rziere",NODE_THROWERROR_TITLE:"Arunc\u0103 eroare",NODE_THROWERROR_DESC:"Opre\u0219te imediat workflow-ul \u0219i ridic\u0103 o eroare. Folose\u0219te \xEEn Try/Catch sau singur pentru a opri execu\u021Bia.",NODE_THROWERROR_H1:"Mesaj eroare personalizat",NODE_THROWERROR_H2:"Cod eroare op\u021Bional",NODE_THROWERROR_H3:"Integrare Try/Catch",NODE_THROWERROR_H4:"Verificare precondi\u021Bie",NODE_HUMANLOOP_TITLE:"Om \xEEn bucl\u0103",NODE_HUMANLOOP_DESC:"Pauze workflow-urile pentru revizuire uman\u0103. Aprob\u0103 sau respinge \xEEnainte de a continua. Timeout configurabil cu fallback auto-aprobare/respingere.",NODE_HUMANLOOP_H1:"Por\u021Bi de aprobare",NODE_HUMANLOOP_H2:"Timeout configurabil",NODE_HUMANLOOP_H3:"Auto-aprobare/respingere",NODE_HUMANLOOP_H4:"Afi\u0219are context",NODE_MODEL_TITLE:"Model",NODE_MODEL_DESC:"Conecteaz\u0103-te la orice furnizor LLM major cu o interfa\u021B\u0103 unificat\u0103. Comut\u0103 \xEEntre GPT-4, Claude, Gemini, Llama \u0219i Mistral f\u0103r\u0103 a modifica workflow-ul.",NODE_MODEL_H1:"Suport multi-furnizor",NODE_MODEL_H2:"Memorie sesiune",NODE_MODEL_H3:"Control temperatur\u0103",NODE_MODEL_H4:"Urm\u0103rire tokeni",NODE_AGENT_TITLE:"Agent",NODE_AGENT_DESC:"Agent IA autonom care stivuie\u0219te noduri ca unelte. Selecteaz\u0103 un model \u0219i acceseaz\u0103 automat toate datele nodurilor interne.",NODE_AGENT_H1:"Nod container",NODE_AGENT_H2:"Acces auto unelte",NODE_AGENT_H3:"Ra\u021Bionament multi-pas",NODE_AGENT_H4:"Stivuie\u0219te orice nod",NODE_IMAGEGEN_TITLE:"Generare imagini",NODE_IMAGEGEN_DESC:"Genereaz\u0103 imagini folosind DALL-E, Stable Diffusion \u0219i alte modele IA. Creeaz\u0103 vizuale direct \xEEn workflow-ul t\u0103u.",NODE_IMAGEGEN_H1:"DALL-E 3",NODE_IMAGEGEN_H2:"Stable Diffusion",NODE_IMAGEGEN_H3:"Editare imagini",NODE_IMAGEGEN_H4:"Control stil",NODE_QUERYDATA_TITLE:"Interogare date",NODE_QUERYDATA_DESC:"Caut\u0103 \xEEntr-o surs\u0103 de date folosind c\u0103utare semantic\u0103, prin cuvinte cheie sau hibrid\u0103. Controleaz\u0103 num\u0103rul de rezultate \u0219i filtrarea relevan\u021Bei.",NODE_QUERYDATA_H1:"C\u0103utare semantic\u0103",NODE_QUERYDATA_H2:"Recuperare hibrid\u0103",NODE_QUERYDATA_H3:"Prag relevan\u021B\u0103",NODE_QUERYDATA_H4:"Diversitate MMR",NODE_WRITEDATA_TITLE:"Scriere date",NODE_WRITEDATA_DESC:"Efectueaz\u0103 opera\u021Bii de scriere \xEEn baza de date - inserare, actualizare, upsert sau \u0219tergere - \xEEmpotriva unei surse de date selectate.",NODE_WRITEDATA_H1:"Inserare & actualizare",NODE_WRITEDATA_H2:"Suport upsert",NODE_WRITEDATA_H3:"Condi\u021Bii where",NODE_WRITEDATA_H4:"Mapare coloane",NODE_EXTRACTFILE_TITLE:"Extrage din fi\u0219ier",NODE_EXTRACTFILE_DESC:"Extrage text \u0219i date structurate din fi\u0219iere \xEEnc\u0103rcate. Suport pentru PDF-uri, documente, foi de calcul \u0219i altele.",NODE_EXTRACTFILE_H1:"Parsare PDF",NODE_EXTRACTFILE_H2:"Extragere text",NODE_EXTRACTFILE_H3:"Detectare tabele",NODE_EXTRACTFILE_H4:"Multi-format",NODE_DATABASE_TITLE:"Baz\u0103 de date",NODE_DATABASE_DESC:"Execut\u0103 interog\u0103ri SQL pe baze de date conectate. Cite\u0219te, scrie \u0219i gestioneaz\u0103 date direct din workflow-urile tale.",NODE_DATABASE_H1:"Interog\u0103ri SQL",NODE_DATABASE_H2:"Baze de date multiple",NODE_DATABASE_H3:"Interog\u0103ri parametrizate",NODE_DATABASE_H4:"Mapare rezultate",NODE_SETVARS_TITLE:"Setare variabile",NODE_SETVARS_DESC:"Define\u0219te variabile cu nume disponibile tuturor nodurilor ulterioare. Ini\u021Bializeaz\u0103 valori, stocheaz\u0103 constante sau preg\u0103te\u0219te date.",NODE_SETVARS_H1:"Creare variabile",NODE_SETVARS_H2:"Valori dinamice",NODE_SETVARS_H3:"Sintax\u0103 template",NODE_SETVARS_H4:"Date reutilizabile",NODE_DATAMAPP
5ER_TITLE:"Mapper date",NODE_DATAMAPPER_DESC:"Transform\u0103 \u0219i remodeleaza date definind un template de ie\u0219ire JSON. Folose\u0219te interpolarea variabilelor pentru a injecta valori dinamice.",NODE_DATAMAPPER_H1:"Template-uri JSON",NODE_DATAMAPPER_H2:"Remodelare date",NODE_DATAMAPPER_H3:"Injec\u021Bie variabile",NODE_DATAMAPPER_H4:"Mapare structur\u0103",NODE_FILE_TITLE:"Fi\u0219ier",NODE_FILE_DESC:"Efectueaz\u0103 opera\u021Bii de sistem de fi\u0219iere \xEEn workflow-urile tale. Creeaz\u0103, cite\u0219te, scrie, redenume\u0219te \u0219i \u0219terge fi\u0219iere.",NODE_FILE_H1:"Creare & citire",NODE_FILE_H2:"Scriere & redenumire",NODE_FILE_H3:"\u0218tergere fi\u0219iere",NODE_FILE_H4:"C\u0103i dinamice",NODE_CODE_TITLE:"Execu\u021Bie cod",NODE_CODE_DESC:"Scrie cod JavaScript personalizat c\xE2nd ai nevoie de control total. Acceseaz\u0103 datele workflow-ului \u0219i returneaz\u0103 rezultate transformate.",NODE_CODE_H1:"JavaScript",NODE_CODE_H2:"Acces complet date",NODE_CODE_H3:"Logic\u0103 personalizat\u0103",NODE_CODE_H4:"Suport async",NODE_HTTP_TITLE:"Cerere HTTP",NODE_HTTP_DESC:"Apeleaz\u0103 orice REST API cu control total asupra header-elor, autentific\u0103rii \u0219i corpului cererii. Suport pentru toate metodele HTTP.",NODE_HTTP_H1:"Toate metodele HTTP",NODE_HTTP_H2:"Header-e personalizate",NODE_HTTP_H3:"Suport auth",NODE_HTTP_H4:"Parsare r\u0103spuns",NODE_SCRAPER_TITLE:"Web Scraper",NODE_SCRAPER_DESC:"Extrage con\u021Binut din orice pagin\u0103 web. Folose\u0219te selectori CSS sau las\u0103 IA s\u0103 identifice datele de care ai nevoie.",NODE_SCRAPER_H1:"Selectori CSS",NODE_SCRAPER_H2:"Extragere IA",NODE_SCRAPER_H3:"Paginare",NODE_SCRAPER_H4:"Randare JavaScript",NODE_INTEGRATIONS_TITLE:"Integr\u0103ri",NODE_INTEGRATIONS_DESC:"Conectori predefiniti pentru servicii populare. Slack, Discord, email, baze de date \u0219i altele. F\u0103r\u0103 cuno\u0219tin\u021Be API necesare.",NODE_INTEGRATIONS_H1:"Slack & Discord",NODE_INTEGRATIONS_H2:"Email (SMTP)",NODE_INTEGRATIONS_H3:"Baze de date",NODE_INTEGRATIONS_H4:"Stocare cloud",NODE_OUTPUT_TITLE:"Ie\u0219ire simpl\u0103",NODE_OUTPUT_DESC:"Returneaz\u0103 date din workflow-ul t\u0103u ca r\u0103spuns API. Formateaz\u0103 ca JSON, text sau HTML. Perfect pentru microservicii IA.",NODE_OUTPUT_H1:"R\u0103spunsuri JSON",NODE_OUTPUT_H2:"Formatare personalizat\u0103",NODE_OUTPUT_H3:"Coduri de stare",NODE_OUTPUT_H4:"Control header-e",CAT_AI:"IA & ML",CAT_INTEGRATION:"Integrare",CAT_LOGIC:"Logic\u0103 & Cod",CAT_OUTPUT:"Ie\u0219ire"},TUTORIALS:{HERO_LABEL:"\xCENVA\u021A\u0102",HERO_TITLE:"Tutoriale",HERO_SUBTITLE:"Ghiduri pas cu pas pentru construirea func\u021Bionalit\u0103\u021Bilor reale cu workflow-uri Ubex.",DISCLAIMER:"Aceste tutoriale sunt \xEEmbun\u0103t\u0103\u021Bite \u0219i actualizate continuu. Dac\u0103 le folose\u0219ti \xEEn produc\u021Bie, o faci pe propria r\u0103spundere. Revizuie\u0219te \u0219i testeaz\u0103 \xEEntotdeauna workflow-urile \xEEnainte de lansare.",FILTER_ALL:"Toate",FILTER_AVAILABLE:"Disponibile",FILTER_IN_PROGRESS:"\xCEn lucru",DIFF_BEGINNER:"\xCEncep\u0103tor",DIFF_INTERMEDIATE:"Intermediar",DIFF_ADVANCED:"Avansat",DIFF_EXPERT:"Expert",EMPTY_TITLE:"Niciun tutorial g\u0103sit",EMPTY_DESC:'Nu exist\u0103 tutoriale care s\u0103 corespund\u0103 filtrului "{{filter}}". \xCEncearc\u0103 un alt filtru sau revino cur\xE2nd.',EMPTY_RESET:"Arat\u0103 toate tutorialele",STATUS_IN_PROGRESS:"\xCEn lucru",CAT_AUTH:"Autentificare",CAT_AUTH_DESC:"Construie\u0219te fluxuri de login securizate, \xEEnregistrare, verificare email \u0219i autentificare multi-factor.",AUTH_PREREQ_TITLE:"Cerin\u021Be preliminare autentificare",AUTH_PREREQ_DESC:"Configurare baz\u0103 de date, configurare secrete \u0219i lista de verificare securitate pentru \xEEntregul sistem de auth.",AUTH_REGISTER_TITLE:"\xCEnregistrare utilizator",AUTH_REGISTER_DESC:"Validare schem\u0103, hashing parol\u0103, detectare duplicate, tokeni hasha\u021Bi \u0219i verificare email.",AUTH_EMAIL_TITLE:"Verificare email",AUTH_EMAIL_DESC:"Verificare securizat\u0103 bazat\u0103 pe token cu limitare rat\u0103, tokeni hasha\u021Bi, expirare \u0219i logare audit.",AUTH_LOGIN_TITLE:"Login utilizator",AUTH_LOGIN_DESC:"Autentific\u0103 utilizatorii, verific\u0103 starea contului \u0219i emite tokeni JWT.",AUTH_FORGOT_TITLE:"Parol\u0103 uitat\u0103",AUTH_FORGOT_DESC:"Resetare securizat\u0103 a parolei cu limitare rat\u0103, tokeni hasha\u021Bi, expirare \u0219i logare audit.",AUTH_CHANGE_TITLE:"Schimbare parol\u0103",AUTH_CHANGE_DESC:"Schimbare parol\u0103 autentificat\u0103 JWT cu verificarea parolei curente \u0219i aplicarea cerin\u021Belor de complexitate.",AUTH_OTP_TITLE:"Autentificare OTP",AUTH_OTP_DESC:"Autentificare cu parol\u0103 unic\u0103 pentru securitate sporit\u0103 prin email.",AUTH_TOTP_TITLE:"Google Authenticator (TOTP)",AUTH_TOTP_DESC:"Parole unice bazate pe timp cu Google Authenticator sau Authy.",CAT_PAYMENTS:"Pl\u0103\u021Bi",CAT_PAYMENTS_DESC:"Integreaz\u0103 furnizori de pl\u0103\u021Bi precum Stripe pentru checkout-uri, abonamente \u0219i webhooks.",PAY_STRIPE_TITLE:"Sesiune Stripe Checkout",PAY_STRIPE_DESC:"Creeaz\u0103 o sesiune Stripe Checkout \u0219i returneaz\u0103 URL-ul de plat\u0103 c\u0103tre frontend.",CAT_CONTACT:"Contact",CAT_CONTACT_DESC:"Construie\u0219te formulare de contact cu validare, stocare \u0219i emailuri automate de confirmare.",CONTACT_FORM_TITLE:"Formular de contact website",CONTACT_FORM_DESC:"Valideaz\u0103 trimiterile, stocheaz\u0103 \xEEntr-un tabel \u0219i trimite emailuri de confirmare prin Resend.",CAT_TELEGRAM:"Telegram",CAT_TELEGRAM_DESC:"Construie\u0219te bo\u021Bi Telegram cu IA cu c\u0103utare \xEEn baza de cuno\u0219tin\u021Be, r\u0103spunsuri LLM \u0219i integrare webhook.",TELEGRAM_BOT_TITLE:"Bot IA Telegram",TELEGRAM_BOT_DESC:"Conecteaz\u0103 un bot Telegram la un asistent cu IA cu RAG \u0219i r\u0103spunsuri LLM.",CAT_WHATSAPP:"WhatsApp",CAT_WHATSAPP_DESC:"Construie\u0219te bo\u021Bi WhatsApp cu IA cu integrare Twilio, validare semn\u0103tur\u0103 webhook \u0219i mesagerie securizat\u0103.",WHATSAPP_BOT_TITLE:"Bot IA WhatsApp",WHATSAPP_BOT_DESC:"Conecteaz\u0103 WhatsApp la un asistent IA cu verificare webhook Twilio \u0219i validare semn\u0103tur\u0103 HMAC-SHA1.",CAT_DISCORD:"Discord",CAT_DISCORD_DESC:"Conecteaz\u0103 bo\u021Bi Discord la workflow-urile tale pentru tichete, notific\u0103ri \u0219i automatizare.",DISCORD_TICKETS_TITLE:"Tichete suport Discord",DISCORD_TICKETS_DESC:"Permite utilizatorilor s\u0103 trimit\u0103 tichete de suport prin comenzi slash Discord, verificate \u0219i stocate automat.",DISCORD_STATS_TITLE:"Statistici server Discord",DISCORD_STATS_DESC:"Ob\u021Bine num\u0103rul de membri live \u0219i prezen\u021Ba online de pe serverul t\u0103u Discord.",CTA_TITLE:"Nu g\u0103se\u0219ti ce cau\u021Bi?",CTA_SUBTITLE:"Consult\u0103 documenta\u021Bia noastr\u0103 sau contacteaz\u0103 comunitatea pe Discord.",CTA_DOCS:"Documenta\u021Bie",CTA_DISCORD:"Intr\u0103 pe Discord"},ROADMAP:{HERO_LABEL:"FOAIA DE PARCURS",HERO_TITLE:"Ce construim",HERO_SUBTITLE:"Am livrat motorul. Acum construim ecosistemul \xEEn
5jurul lui. Iat\u0103 ce e gata, ce e \xEEn lucru \u0219i ce urmeaz\u0103.",LEGEND_COMPLETED:"FINALIZAT",LEGEND_IN_PROGRESS:"\xCEN LUCRU",LEGEND_PLANNED:"PLANIFICAT",LEGEND_EXPLORING:"\xCEN EXPLORARE",STATUS_COMPLETED:"Finalizat",STATUS_IN_PROGRESS:"\xCEn lucru",STATUS_PLANNED:"Planificat",STATUS_EXPLORING:"\xCEn explorare",Q4_2024:"T4 2024",Q1_2025:"T1 2025",Q2_2025:"T2 2025",Q3_Q4_2025:"T3\u2013T4 2025",Q1_2026:"T1 2026",Q2_2026:"T2 2026",FUTURE:"Viitor",DATE_DEC_2024:"Dec 2024",DATE_NOV_2024:"Nov 2024",DATE_OCT_2024:"Oct 2024",DATE_JAN_2025:"Ian 2025",DATE_FEB_2025:"Feb 2025",DATE_MAR_2025:"Mar 2025",DATE_APR_2025:"Apr 2025",DATE_MAY_2025:"Mai 2025",DATE_JUN_2025:"Iun 2025",DATE_Q3_2025:"T3 2025",DATE_Q4_2025:"T4 2025",DATE_Q1_2026:"T1 2026",DATE_Q2_2026:"T2 2026",VISUAL_ENGINE_TITLE:"Motor de execu\u021Bie vizual",VISUAL_ENGINE_DESC:"Creeaz\u0103 aplica\u021Bii vizual f\u0103r\u0103 cod. Interfa\u021B\u0103 drag-and-drop cu peste 21 de blocuri \u0219i execu\u021Bie paralel\u0103.",MULTI_LLM_TITLE:"Suport multi-LLM",MULTI_LLM_DESC:"Conecteaz\u0103-te la ChatGPT, Claude, Gemini \u0219i altele dintr-o singur\u0103 interfa\u021B\u0103. Schimb\u0103 furnizorul oric\xE2nd.",RAG_TITLE:"RAG \u0219i surse de date",RAG_DESC:"IA care caut\u0103 \xEEn documentele tale. Stocare vectorial\u0103 integrat\u0103 \u0219i procesare documente pentru baze de cuno\u0219tin\u021Be.",TEMPLATES_TITLE:"\u0218abloane de workflow",TEMPLATES_DESC:"\u0218abloane predefinite pentru cazuri comune: generare con\u021Binut, extrac\u021Bie date, suport clien\u021Bi.",TEAM_COLLAB_TITLE:"Colaborare \xEEn echip\u0103",TEAM_COLLAB_DESC:"Spa\u021Bii de lucru partajate, permisiuni bazate pe roluri \u0219i colaborare \xEEn timp real pe workflow-uri.",API_AUTH_TITLE:"Endpoint-uri API \u0219i autentificare",API_AUTH_DESC:"Transform\u0103 orice workflow \xEEntr-un API live cu securitate. Autentificare, limitare rat\u0103, whitelisting IP \u0219i controale de acces.",SCHEDULED_TITLE:"Workflow-uri programate",SCHEDULED_DESC:"Ruleaz\u0103 sarcini automat dup\u0103 un program. Trigger-e de tip cron cu suport pentru fus orar.",WEBHOOKS_TITLE:"Trigger-e webhook",WEBHOOKS_DESC:"Porne\u0219te workflow-uri din evenimente externe. Conecteaz\u0103-te la orice aplica\u021Bie care trimite webhooks, cu gestionare automat\u0103 a payload-ului.",ANALYTICS_TITLE:"Analize avansate",ANALYTICS_DESC:"Metrici detaliate de execu\u021Bie a workflow-urilor, urm\u0103rire costuri \u0219i informa\u021Bii despre performan\u021B\u0103.",QIRA_TITLE:"Qira \u2013 Constructor IA de aplica\u021Bii",QIRA_DESC:"Asistent IA care construie\u0219te aplica\u021Bii complete din conversa\u021Bie. Descrie ce ai nevoie, iar Qira o creeaz\u0103 \u2013 frontend, backend, baz\u0103 de date \u0219i lansare.",HOSTING_TITLE:"Hosting \u0219i lansare frontend",HOSTING_DESC:"Lansare cu un clic pentru frontend-uri cu domenii personalizate, SSL \u0219i hosting Cloud. Construie\u0219te cu Qira sau adu-l pe al t\u0103u.",GDPR_SOC2_TITLE:"GDPR \u0219i SOC 2 Tip II",GDPR_SOC2_DESC:"Pe drumul spre conformitate GDPR \u0219i certificare SOC 2 Tip II. Loguri de audit, controale de reten\u021Bie date \u0219i acces bazat pe roluri \xEEn toate planurile.",EU_AI_ACT_TITLE:"Aliniere guvernan\u021B\u0103 IA",EU_AI_ACT_DESC:"Jurnale de audit pentru transparen\u021Ba IA, noduri condi\u021Bionale pentru supraveghere human-in-the-loop \u0219i controale de guvernan\u021B\u0103 a datelor.",EU_DEPLOY_TITLE:"Op\u021Biuni de lansare flexibile",EU_DEPLOY_DESC:"Cloud, VPC \u0219i lansare on-premise. Ruleaz\u0103 \xEEntregul motor \xEEn centrul t\u0103u de date. Air-gapped dac\u0103 e nevoie.",DOCS_TITLE:"Documenta\u021Bie platform\u0103",DOCS_DESC:"Documenta\u021Bie complet\u0103 care acoper\u0103 toate nodurile, op\u021Biunile de configurare \u0219i ghiduri pas cu pas pentru construirea \u0219i lansarea workflow-urilor.",MARKETPLACE_TITLE:"Marketplace de workflow-uri certificate",MARKETPLACE_DESC:"\u0218abloane de workflow auditate pentru securitate, construite de ingineri certifica\u021Bi. Fiecare workflow revizuit pentru securitate \u0219i conformitate.",VERSION_CONTROL_TITLE:"Control versiuni",VERSION_CONTROL_DESC:"Versionare de tip Git pe
5ntru workflow-uri cu branching, merging \u0219i rollback. Esen\u021Bial pentru guvernan\u021Ba enterprise.",ISO_TITLE:"Certificare ISO 27001",ISO_DESC:"Management al securit\u0103\u021Bii informa\u021Biilor aliniat cu standardele interna\u021Bionale. Construit pe funda\u021Biile SOC 2.",SEC_COMPLIANCE_TITLE:"Securitate \u0219i conformitate",SEC_COMPLIANCE_DESC:"Suport mTLS pentru autentificare serviciu-la-serviciu. Loguri de audit exportabile c\u0103tre S3, SIEM \u0219i platforme externe de observabilitate.",AUTO_AUDIT_TITLE:"Strat de conformitate auto-audit",AUTO_AUDIT_DESC:"Urm\u0103rire \u0219i raportare automat\u0103 a conformit\u0103\u021Bii. Genereaz\u0103 rapoarte de audit pentru guvernan\u021B\u0103 IA, GDPR \u0219i SOC 2 cu un clic.",MULTI_REGION_TITLE:"Lansare multi-regiune",MULTI_REGION_DESC:"Lanseaz\u0103 workflow-uri \xEEn mai multe regiuni pentru redundan\u021B\u0103 \u0219i optimizarea laten\u021Bei. Rutare con\u0219tient\u0103 de jurisdic\u021Bie.",MOBILE_TITLE:"Monitorizare mobil\u0103",MOBILE_DESC:"Monitorizeaz\u0103 \u0219i declan\u0219eaz\u0103 workflow-uri de pe dispozitive iOS \u0219i Android. Alerte de execu\u021Bie \xEEn timp real.",FEEDBACK_TITLE:"Ai o solicitare de func\u021Bionalitate?",FEEDBACK_DESC:"Construim public \u0219i prioritiz\u0103m pe baza feedback-ului comunit\u0103\u021Bii. Spune-ne ce ai vrea s\u0103 vezi \xEEn continuare.",FEEDBACK_CTA:"Trimite feedback",FEEDBACK_DISCORD:"Intr\u0103 pe Discord",TAG_CORE:"Nucleu",TAG_EXECUTION:"Execu\u021Bie",TAG_LLM:"LLM",TAG_INTEGRATION:"Integrare",TAG_RAG:"RAG",TAG_TEMPLATES:"\u0218abloane",TAG_UX:"UX",TAG_TEAMS:"Echipe",TAG_ENTERPRISE:"Enterprise",TAG_API:"API",TAG_SECURITY:"Securitate",TAG_AUTOMATION:"Automatizare",TAG_TRIGGERS:"Declan\u0219atoare",TAG_WEBHOOKS:"Webhooks",TAG_ANALYTICS:"Analize",TAG_MONITORING:"Monitorizare",TAG_AI:"IA",TAG_BACKEND:"Backend",TAG_FRONTEND:"Frontend",TAG_HOSTING:"Hosting",TAG_DEPLOYMENT:"Lansare",TAG_GDPR:"GDPR",TAG_SOC2:"SOC 2",TAG_COMPLIANCE:"Conformitate",TAG_EU_AI_ACT:"Guvernan\u021B\u0103 IA",TAG_ON_PREMISE:"On-Premise",TAG_VPC:"VPC",TAG_DOCS:"Documenta\u021Bie",TAG_PLATFORM:"Platform\u0103",TAG_MARKETPLACE:"Marketplace",TAG_VERSIONING:"Versionare",TAG_GOVERNANCE:"Guvernan\u021B\u0103",TAG_ISO:"ISO 27001",TAG_MTLS:"mTLS",TAG_AUDIT_LOGS:"Loguri audit",TAG_SIEM:"SIEM",TAG_AUTO_AUDIT:"Auto-audit",TAG_INFRASTRUCTURE:"Infrastructur\u0103",TAG_EU_DEPLOY:"Lansare flexibil\u0103",TAG_MOBILE:"Mobil"},MEET_VIRA:{HERO_LABEL:"DESCOPER\u0102 VIRA",HERO_TITLE:"Nu mai configura. \xCEncepe s\u0103 descrii.",HERO_SUBTITLE:"Vira este IA din Ubex care transform\u0103 limbajul natural \xEEn workflow-uri \u0219i agen\u02
51Bi live. Tu vorbe\u0219ti, ea construie\u0219te.",DEMO_LABEL:"DEMO LIVE",DEMO_TITLE:"Prive\u0219te Vira la lucru",DEMO_SUBTITLE:"O conversa\u021Bie real\u0103 devine un workflow live \u2013 nod cu nod.",DEMO_INPUT_PLACEHOLDER:"Cere-i Virei s\u0103 construiasc\u0103 ceva...",DEMO_USER1:"Creeaz\u0103 un workflow care ascult\u0103 pl\u0103\u021Bile webhook Stripe, verific\u0103 dac\u0103 suma dep\u0103\u0219e\u0219te 100 \u20AC, trimite o notificare Slack \u0219i o \xEEnregistreaz\u0103 \xEEn baza de date",DEMO_VIRA1:"M\u0103 ocup. Conectez un trigger webhook Stripe, adaug un nod de condi\u021Bie pentru sume peste 100 \u20AC, conectez Slack pentru notific\u0103ri \u0219i adaug o scriere \xEEn baza de date pentru logare. Construiesc acum...",DEMO_USER2:"Adaug\u0103 \u0219i o notificare email c\u0103tre echipa financiar\u0103 dup\u0103 mesajul Slack",DEMO_VIRA2:"Voi ad\u0103uga un nod HTTP Request pentru API-ul Gmail imediat dup\u0103 Slack. Aceea\u0219i condi\u021Bie se aplic\u0103 \u2013 doar pentru pl\u0103\u021Bi peste 100 \u20AC.",CANVAS_HEADER:"Canvas Workflow",CANVAS_NODES:"noduri",CANVAS_BRANCHES:"ramuri",CAP_LABEL:"CAPABILIT\u0102\u021AI",CAP_TITLE:"Ce poate face Vira",CAP_SUBTITLE:"Construie\u0219te workflow-uri, creeaz\u0103 agen\u021Bi, editeaz\u0103 din mers \u2013 totul prin conversa\u021Bie.",CAP_BUILD_TITLE:"Construie\u0219te workflow-uri",CAP_BUILD_DESC:"Spune 'conecteaz\u0103 Stripe la Slack c\xE2nd pl\u0103\u021Bile dep\u0103\u0219esc 100 \u20AC' \u0219i Vira asambleaz\u0103 trigger-ul, condi\u021Bia, integrarea \u0219i nodurile de ie\u0219ire \u2013 deployed \xEEn secunde.",CAP_AGENTS_TITLE:"Creeaz\u0103 agen\u021Bi",CAP_AGENTS_DESC:"Descrie un agent de suport care cite\u0219te tichete, interogheaz\u0103 baza ta de cuno\u0219tin\u021Be \u0219i redacteaz\u0103 r\u0103spunsuri. Vira conecteaz\u0103 uneltele, memoria \u0219i instruc\u021Biunile \xEEntr-un agent gata de rulare.",CAP_EDIT_TITLE:"Editeaz\u0103 workflow-uri live",CAP_EDIT_DESC:"'Adaug\u0103 un pas de email dup\u0103 Slack' \u2013 Vira insereaz\u0103 nodul, reconecteaz\u0103 fluxul \u0219i men\u021Bine totul func\u021Bional. F\u0103r\u0103 reconstruire.",CAP_ISSUES_TITLE:"Detecteaz\u0103 probleme devreme",CAP_ISSUES_DESC:"Vira semnaleaz\u0103 handlere de erori lips\u0103, sugereaz\u0103 logic\u0103 de re\xEEncercare pentru API-uri instabile \u0219i avertizeaz\u0103 c\xE2nd o ramur\u0103 de condi\u021Bie nu are fallback \u2013 \xEEn timp ce \xEEnc\u0103 construie\u0219ti.",CAP_PLAIN_TITLE:"Limbaj simplu, logic\u0103 real\u0103",CAP_PLAIN_DESC:"Descrie fluxurile a\u0219a cum le-ai explica unui coleg. Vira traduce cuvintele tale \xEEn noduri Ubex, condi\u021Bii \u0219i transform\u0103ri de date automat.",CAP_NODES_TITLE:"Fiecare nod Ubex disponibil",CAP_NODES_DESC:"Cereri HTTP, scrieri \xEEn baze de date, modele IA, peste 50 de integr\u0103ri \u2013 Vira are acces la \xEEntreaga bibliotec\u0103 de noduri Ubex \u0219i le alege pe cele potrivite pentru cazul t\u0103u.",COMP_LABEL:"DIFEREN\u021AA",COMP_TITLE:"Construie\u0219te \xEEn minute, nu ore",COMP_WITHOUT:"F\u0103r\u0103 Vira",COMP_STEP1:"Trage \u0219i plaseaz\u0103 12 noduri pe canvas",COMP_STEP2:"Configureaz\u0103 set\u0103rile fiec\u0103rui nod manual",COMP_STEP3:"Conecteaz\u0103 leg\u0103turile \xEEntre fiecare nod",COMP_STEP4:"Configureaz\u0103 condi\u021Bii \u0219i logica de ramificare",COMP_STEP5:"Depaneaz\u0103, testeaz\u0103, repar\u0103, repet\u0103",COMP_STEP6:"Lanseaz\u0103 \u0219i configureaz\u0103 endpoint-ul",COMP_TIME_WITHOUT:"~30-60 minute",COMP_WITH:"Cu Vira",COMP_WITH_PROMPT:"'Creeaz\u0103 un workflow care ascult\u0103 pl\u0103\u021Bile Stripe peste 100 \u20AC, notific\u0103 Slack, trimite email la financiar \u0219i \xEEnregistreaz\u0103 \xEEn baza de date.'",COMP_WITH_RESULT:"Workflow construit, conectat \u0219i lansat.",COMP_TIME_WITH:"~30 secunde",EX_LABEL:"EXEMPLE",EX_TITLE:"De la prompt la produc\u021Bie",EX_SUBTITLE:"Cereri reale \u0219i ce creeaz\u0103 Vira din ele.",EX1_PROMPT:"Construie\u0219te un agent care monitorizeaz\u0103 tichete de suport, clasific\u0103 urgen\u021Ba cu IA \u0219i atribuie automat echipei potrivite \xEEn Jira",EX2_PROMPT:"C\xE2nd vine o comand\u0103 nou\u0103 de la Shopify, verific\u0103 inventarul \xEEn baza noastr\u0103 de date, \u0219i dac\u0103 stocul e sc\u0103zut trimite o cerere de reaprovizionare la API-ul furnizorului",EX3_PROMPT:"\xCEn fiecare vineri la 17:00, extrage analizele s\u0103pt\u0103m\xE2nii din Google Sheets, genereaz\u0103 un rezumat IA \u0219i posteaz\u0103-l pe canalul Slack #metrics",EX_WORKFLOW_CREATED:"workflow creat",EX_AUTO_DEPLOYED:"auto-lansat",CTA_TITLE:"\xCEncepe s\u0103 construie\u0219ti cu Vira",CTA_SUBTITLE:"Descrie ce ai nevoie. Vira preia de acolo.",CTA_CROSSLINK_PREFIX:"Vira se ocup\u0103 de backend.",CTA_CROSSLINK_LINK:"Descoper\u0103 Qira pentru frontend",CTA_START:"\xCEncepe gratuit",CTA_CONTACT:"Contacteaz\u0103-ne",CTA_TRUST:"F\u0103r\u0103 card de credit \xB7 Plan gratuit inclus"},MEET_QIRA:{CREDIT_BALANCE:"Credit r\u0103mas: 3,11 $",TOKEN_RATE_LABEL:"Intrare / ie\u0219ire \xB7 per milion de tokenuri",DEMO_NOTE:"Ilustra\u021Bie interactiv\u0103 a produsului. Exploreaz\u0103 instrumentele, apoi \xEEncearc\u0103-le \xEEn Ubex.",NEXT:"Instrumentul urm\u0103tor",PREVIOUS:"Instrumentul anterior",PATH_PUBLISH:"Public\u0103 \u0219i dezvolt\u0103",PATH_REFINE:"Personalizeaz\u0103 aplica\u021Bia",PATH_DESCRIBE:"Descrie ideea",HERO_LABEL:"CUNOA\u0218TE-O PE QIRA",HERO_TITLE_1:"Un singur agent.",HERO_TITLE_ACCENT:"Toat\u0103 aplica\u021Bia ta.",HERO_SUBTITLE:"Qira este builderul din Ubex. Descrie ce vrei \u0219i ea scrie frontendul, backendul \u0219i baza de date, alege o tem\u0103 \xEEmpreun\u0103 cu tine \u0219i public\u0103 totul pe domeniul t\u0103u. Totul dintr-un singur chat.",HERO_CTA:"\xCEncepe s\u0103 construie\u0219ti",HERO_TOUR:"F\u0103 turul Studio-ului",START_CAPTION:"Acesta este primul ecran al oric\u0103rui proiect Qira. \xCEncearc\u0103 butonul Light/Dark \u0219i temele.",MODELS_LABEL:"MODELE",MODELS_TITLE:"Alege creierul din spatele Qirei.",MODELS_SUB:"Qira nu este legat\u0103 de un singur furnizor. Alege modelul pentru fiecare mesaj dintre OpenAI, Anthropic, Google, xAI, Mistral, DeepSeek \u0219i altele \u0219i pl\u0103te\u0219te doar tokenii pe care \xEEi folose\u0219ti.",MODELS_FACT_COUNT:"modele din care alegi",MODELS_FACT_FROM:"pe milion de tokeni, de la",MODELS_FACT_SWITCH:"click ca s\u0103 schimbi, \xEEn mijlocul conversa\u021Biei",MODELS_NOTE:"Pre\u021Burile sunt afi\u02
519ate ca intrare / ie\u0219ire pe milion de tokeni, exact ca \xEEn selectorul din Studio. Creditele se scad pe m\u0103sur\u0103 ce lucrezi, a\u0219a c\u0103 \u0219tii mereu c\xE2t a costat un build.",TOUR_LABEL:"STUDIO-UL",TOUR_TITLE:"O singur\u0103 fereastr\u0103. Tot ce-\u021Bi trebuie ca s\u0103 publici.",TOUR_SUB:"Alege un instrument. Previzualizeaz\u0103, ajusteaz\u0103, inspecteaz\u0103 \u0219i public\u0103, al\u0103turi de conversa\u021Bia cu Qira.",TOUR:{PREVIEW_K:"Previzualizare",PREVIEW_T:"Aplica\u021Bia ta, live, \xEEn timp ce Qira o construie\u0219te.",PREVIEW_D:"Previzualizarea este aplica\u021Bia real\u0103 pe URL-ul ei real, nu o machet\u0103. \xCEnapoi, \xEEnainte \u0219i re\xEEncarc\u0103 exact ca \xEEntr-un browser \u0219i deschide-o \xEEntr-o fereastr\u0103 nou\u0103 c\xE2nd vrei vederea complet\u0103.",CODE_K:"Cod",CODE_T:"Fiecare fi\u0219ier e al t\u0103u, de citit \u0219i de editat.",CODE_D:"Treci pe Cod \u0219i arborele de fi\u0219iere al proiectului e chiar acolo: componente, stiluri, configurare. Deschide orice fi\u0219ier, editeaz\u0103-l pe loc, iar Qira continu\u0103 s\u0103 lucreze cu modific\u0103rile tale.",SELECT_K:"Selectare",SELECT_T:"D\u0103 click pe un element. Apoi decide ce faci cu el.",SELECT_D:"Unealta de selectare prinde orice element din pagin\u0103. Trimite-l Qirei \xEEmpreun\u0103 cu cererea ta, sari direct la el \xEEn cod sau ajusteaz\u0103 manual fundalul, bordurile, spa\u021Bierea \u0219i textul din panoul lateral.",NETWORK_K:"Re\u021Bea",NETWORK_T:"Vezi fiecare cerere pe care o face aplica\u021Bia.",NETWORK_D:"Consola de re\u021Bea listeaz\u0103 fiecare apel cu status, metod\u0103, durat\u0103, payload \u0219i r\u0103spuns. C\xE2nd ceva nu merge, tu \u0219i Qira v\u0103 uita\u021Bi la acelea\u0219i dovezi.",DEVICES_K:"Dispozitive",DEVICES_T:"Verific\u0103 pe un iPhone \xEEnainte s-o fac\u0103 altcineva.",DEVICES_D:"Comut\u0103 previzualizarea pe desktop, iPad, iPhone 17, Galaxy S24 sau Xiaomi 14. Fiecare ecran construit de Qira este responsive, iar aici po\u021Bi vedea asta.",SETTINGS_K:"Set\u0103ri",SETTINGS_T:"Domeniul t\u0103u, tema ta, un singur buton de Deploy.",SETTINGS_D:"Conecteaz\u0103 un domeniu propriu sau alege un subdomeniu, alege una dintre temele integrate \u0219i public\u0103. Statusul, SSL-ul \u0219i hostingul sunt gestionate pentru tine.",VERSIONS_K:"Versiuni",VERSIONS_T:"Scrie ce s-a schimbat. Revino c\xE2nd ai nevoie.",VERSIONS_D:"Fiecare publicare prime\u0219te o not\u0103 scris\u0103 de tine, a\u0219a c\u0103 istoricul se cite\u0219te ca un changelog. Restaureaz\u0103 orice versiune anterioar\u0103 cu un click, f\u0103r\u0103 git.",OPEN_K:"Deschide \xEEn fereastr\u0103 nou\u0103",SEL_TO_QIRA:"Trimite la Qira",SEL_TO_CODE:"Deschide \xEEn cod",DEV_DESKTOP:"Desktop",DEV_TABLET:"Tablet\u0103",DEV_MOBILE:"Mobil",VER_PUBLISHING:"Se public\u0103",VER_NOTE:"Am ad\u0103ugat remindere SMS pentru program\u0103ri \u0219i am corectat fusul orar din calendar",VER_CURRENT:"Curent\u0103",VER_RESTORE:"Restaureaz\u0103"},ONE_LABEL:"NU DOAR INTERFA\u021AA",ONE_TITLE:"Qira construie\u0219te totul.",ONE_SUB:"Alte buildere se opresc la ecran. Qira scrie \u0219i ce ruleaz\u0103 \xEEn spate, \xEEn aceea\u0219i conversa\u021Bie.",ONE_FRONTEND_T:"Frontend",ONE_FRONTEND_D:"Pagini, componente, formulare, tabele, dashboard-uri. Responsive implicit, cu tema brandului t\u0103u.",ONE_FRONTEND_X:"React, stilizat, responsive",ONE_BACKEND_T:"Backend",ONE_BACKEND_D:"API-uri, autentificare, roluri, campanii de email \u0219i fluxurile din spatele fiec\u0103rui buton.",ONE_BACKEND_X:"API-uri, auth, fluxuri",ONE_DATABASE_T:"Baz\u0103 de date",ONE_DATABASE_D:"Tabele \u0219i rela\u021Bii g\xE2ndite pentru datele tale, cu citiri \u0219i scrieri conectate la paginile care au nevoie de ele.",ONE_DATABASE_X:"Schem\u0103, interog\u0103ri, stocare",ONE_DEPLOY_T:"Domeniu \u0219i deploy",ONE_DEPLOY_D:"Un subdomeniu sau domeniul t\u0103u, SSL, hosting \u0219i versiuni. Live cu un click, \xEEnapoi cu \xEEnc\u0103 unul.",ONE_DEPLOY_X:"Hosting, SSL, versiuni",COMP_WITHOUT:"Modul obi\u0219nuit",COMP_STEP1:"Configurezi un proiect frontend \u0219i un serviciu backend",COMP_STEP2:"Instalezi depen
5den\u021Be \u0219i configurezi uneltele",COMP_STEP3:"Proiectezi schema bazei de date \u0219i scrii API-ul",COMP_STEP4:"Construie\u0219ti fiecare pagin\u0103 \u0219i o legi de backend",COMP_STEP5:"Rezolvi auth, rutarea \u0219i stilurile responsive",COMP_STEP6:"Configurezi hosting, SSL \u0219i un domeniu",COMP_TIME_WITHOUT:"Zile p\xE2n\u0103 la s\u0103pt\u0103m\xE2ni",COMP_WITH:"Cu Qira",COMP_WITH_PROMPT:"\u201EF\u0103-mi un CRM pentru afacerea mea de coaching cu clien\u021Bi, program\u0103ri, pl\u0103\u021Bi \u0219i campanii de email.\u201D",COMP_TIME_WITH:"O conversa\u021Bie",COMP_DONE1:"Frontend, backend \u0219i baz\u0103 de date scrise",COMP_DONE2:"Tem\u0103 aleas\u0103, responsive pe orice dispozitiv",COMP_DONE3:"Publicat pe domeniul t\u0103u cu SSL",COMP_DONE4:"Cu versiuni, ca s\u0103 po\u021Bi reveni oric\xE2nd",CTA_TITLE:"\xCEncepe s\u0103 construie\u0219ti cu Qira",CTA_SUBTITLE:"Descrie ce ai nevoie. Qira preia de acolo: frontend, backend, baz\u0103 de date \u0219i hosting.",CTA_START:"\xCEncepe gratuit",CTA_CONTACT:"Contacteaz\u0103-ne",CTA_TRUST:"F\u0103r\u0103 card de credit \xB7 Plan gratuit inclus"},CONTACT:{HERO_LABEL:"CONTACTEAZ\u0102-NE",HERO_TITLE:"Hai s\u0103 discut\u0103m",HERO_SUBTITLE:"Fie c\u0103 e\u0219ti inginer, companie sau pur \u0219i simplu curios \u2013 ne-ar pl\u0103cea s\u0103 auzim de la tine.",INFO_CHAT_TITLE:"Discut\u0103 cu noi",INFO_CHAT_DESC:"Echipa noastr\u0103 este aici s\u0103 te ajute cu orice \xEEntrebare despre platform\u0103.",INFO_CHAT_DETAIL:"R\u0103spuns \xEEn 24 de ore",INFO_ENTERPRISE_TITLE:"Enterprise \u0219i deployment",INFO_ENTERPRISE_DESC:"Ai nevoie de deployment VPC, on-premise sau controale de conformitate? Hai s\u0103 planific\u0103m \xEEmpreun\u0103.",INFO_ENTERPRISE_DETAIL:"Hai s\u0103 discut\u0103m cerin\u021Bele tale",INFO_COMMUNITY_TITLE:"Comunitate",INFO_COMMUNITY_DESC:"Al\u0103tur\u0103-te comunit\u0103\u021Bii noastre Discord pentru sfaturi, suport \u0219i cereri de func\u021Bionalit\u0103\u021Bi.",INFO_COMMUNITY_LINK:"Intr\u0103 pe Discord \u2192",FORM_TITLE:"Trimite-ne un mesaj",FORM_NAME_LABEL:"Nume *",FORM_NAME_PLACEHOLDER:"Numele t\u0103u",FORM_NAME_REQUIRED:"Numele este obligatoriu.",FORM_NAME_PATTERN:"Numele poate con\u021Bine doar litere, spa\u021Bii, cratime \u0219i apostrofuri.",FORM_EMAIL_LABEL:"Email *",FORM_EMAIL_PLACEHOLDER:"[email protected]",FORM_EMAIL_REQUIRED:"Email-ul este obligatoriu.",FORM_EMAIL_INVALID:"Te rug\u0103m s\u0103 introduci o adres\u0103 de email valid\u0103.",FORM_COMPANY_LABEL:"Companie",FORM_COMPANY_PLACEHOLDER:"Compania ta (op\u021Bional)",FORM_SUBJECT_LABEL:"Subiect",FORM_MESSAGE_LABEL:"Mesaj *",FORM_MESSAGE_PLACEHOLDER:"Spune-ne despre proiectul sau \xEEntrebarea ta...",FORM_MESSAGE_HINT_SUFFIX:"caracter(e) \xEEn plus necesare",FORM_MESSAGE_REQUIRED:"Mesajul este obligatoriu.",FORM_MESSAGE_MINLENGTH:"Mesajul trebuie s\u0103 aib\u0103 cel pu\u021Bin 10 caractere.",FORM_SUBMIT:"Trimite mesajul",FORM_SUBMITTING:"Se trimite...",FORM_JOIN_DISCORD:"Intr\u0103 pe Discord",SUBJECT_GENERAL:"\xCEntrebare general\u0103",SUBJECT_SALES:"V\xE2nz\u0103ri \u0219i pre\u021Buri",SUBJECT_SUPPORT:"Suport tehnic",SUBJECT_PARTNERSHIP:"Parteneriat",SUBJECT_LABS:"Ubex Labs \u2013 Al\u0103tur\u0103-te ca inginer",SUBJECT_TRAINING:"Training",SUBJECT_FEEDBACK:"Feedback",PREFILL_ENTERPRISE_INTRO:"Cerere pentru un plan Enterprise",PREFILL_ENTERPRISE_NEEDS:"Mai am nevoie de",PREFILL_ENTERPRISE_OUTRO:"V\u0103 rug\u0103m s\u0103 trimite\u021Bi o ofert\u0103 pentru aceast\u0103 configura\u021Bie.",SUCCESS_TITLE:"Mesaj trimis!",SUCCESS_RESET_COOLDOWN:"Trimite alt mesaj ({{seconds}}s)",SUCCESS_RESET:"Trimite alt mesaj",STATS_RESPONSE:"24h",STATS_RESPONSE_LABEL:"Timp de r\u0103spuns",STATS_FREE:"Gratuit",STATS_FREE_LABEL:"Pentru a \xEEncepe",STATS_ONBOARDING:"1:1",STATS_ONBOARDING_LABEL:"Onboarding enterprise",FAQ_LABEL:"\xCENTREB\u0102RI FRECVENTE",FAQ_TITLE:"\xCEntreb\u0103ri comune",FAQ_Q1:"C\xE2t dureaz\u0103 onboarding-ul enterprise?",FAQ_A1:"Majoritatea deployment-urilor enterprise sunt planificate \u0219i func\u021Bionale \xEEn 2-4 s\u0103pt\u0103m\xE2ni, \xEEn func\u021Bie de infrastru
5ctura \u0219i cerin\u021Bele de conformitate.",FAQ_Q2:"Pute\u021Bi ajuta la migrarea de pe alt\u0103 platform\u0103?",FAQ_A2:"Da. Lucr\u0103m cu echipe pentru a migra workflow-uri, API-uri \u0219i pipeline-uri de date existente la Ubex. Contacteaz\u0103-ne pentru a discuta configura\u021Bia ta.",FAQ_Q3:"Oferi\u021Bi dezvoltare personalizat\u0103?",FAQ_A3:"Pentru clien\u021Bii enterprise, oferim dezvoltare de workflow-uri personalizate \u0219i servicii de integrare. Hai s\u0103 discut\u0103m ce ai nevoie.",FAQ_Q4:"Sunt datele mele \xEEn siguran\u021B\u0103?",FAQ_A4:"Toate datele sunt criptate \xEEn tranzit \u0219i \xEEn repaus. Planurile enterprise includ whitelisting IP, loguri de audit \u0219i deployment flexibil \u2013 Cloud, VPC sau on-premise."},PRICING:{LABEL:"PRE\u021AURI",TITLE:"Pre\u021Buri simple \u0219i transparente",SUBTITLE:"Planuri simple care cresc cu tine. Alege o dimensiune \u0219i schimb-o oric\xE2nd.",SUBTITLE_DETAIL_1:"Alege un plan pentru execu\u021Bii de workflow. Scaleaz\u0103 de la Lite la on-premise.",SUBTITLE_DETAIL_2:"Utilizarea IA este separat\u0103 \u2013 conecteaz\u0103-\u021Bi propriile chei sau folose\u0219te creditele noastre gestionate.",MONTHLY:"Lunar",ANNUALLY:"Anual",SAVE_BADGE:"Economise\u0219ti 17%",PER_MO_ANNUAL:"/lun\u0103, facturat anual",PER_MO_MONTHLY:"/lun\u0103, facturat lunar",RUNS_PER_MONTH:"execu\u021Bii workflow / lun\u0103",UNLIMITED_NODES:"noduri nelimitate per workflow",CLOUD_HOSTED:"G\u0103zduit \xEEn cloud",CLOUD:"Cloud",OR:"sau",SELF_HOSTED:"Self-hosted",ON_PREMISE:"On-premise",INCLUDES:"Include:",NO_CREDIT_CARD:"F\u0103r\u0103 card de credit",MOST_POPULAR:"Cel mai popular",FREE_NAME:"Gratuit",FREE_DESC:"\xCEncepe \u0219i exploreaz\u0103 platforma f\u0103r\u0103 costuri.",FREE_PERIOD:"gratuit pentru totdeauna",FREE_RESETS:"se reseteaz\u0103 lunar",FREE_CTA:"\xCEncepe gratuit",FREE_F1:"1 proiect",FREE_F2:"2 execu\u021Bii paralele",FREE_F3:"Toate tipurile de noduri",FREE_F4:"Folose\u0219te-\u021Bi propriile chei API",FREE_F5:"Suport comunitate",FREE_AI_NOTE:"F\u0103r\u0103 credite IA necesare",LITE_NAME:"Lite",LITE_DESC:"Pentru persoane fizice \u0219i proiecte mici la \xEEnceput.",LITE_CTA:"\xCEncepe aici",LITE_HOSTING:"G\u0103zduie\u0219te 1 aplica\u021Bie",LITE_INCLUDES:"Include:",LITE_F1:"1 workspace",LITE_F2:"3 proiecte",LITE_F3:"2 execu\u021Bii paralele",LITE_F4:"1 GB spa\u021Biu de stocare",LITE_F5:"To\u021Bi furnizorii LLM",LITE_F6:"7 zile istoric execu\u021Bii",LITE_F7:"Suport prin email",LITE_AI_NOTE:"Credite IA disponibile ca add-on",STARTER_NAME:"Starter",STARTER_DESC:"Pentru echipe care construiesc aplica\u021Bii reale.",STARTER_CTA:"\xCEncepe acum",STARTER_HOSTING:"G\u0103zduie\u0219te 2 aplica\u021Bii",STARTER_INCLUDES:"Tot din Lite, plus:",STARTER_F1:"3 workspace-uri",STARTER_F2:"10 proiecte",STARTER_F3:"5 execu\u021Bii paralele",STARTER_F4:"5 GB spa\u021Biu de stocare",STARTER_F5:"15 zile istoric execu\u021Bii",STARTER_F6:"Colaborare \xEEn echip\u0103 (3 locuri)",STARTER_F7:"Suport email prioritar",STARTER_AI_NOTE:"5 \u20AC credite IA incluse lunar",PRO_NAME:"Pro",PRO_DESC:"Pentru echipe \xEEn cre\u0219tere care au nevoie de scalare, control \u0219i deployment self-hosted.",PRO_CTA:"\xCEncepe acum",PRO_HOSTING:"G\u0103zduie\u0219te 3 aplica\u021Bii",PRO_INCLUDES:"Tot din Starter, plus:",PRO_F1:"Proiecte nelimitate",PRO_F2:"20 execu\u021Bii paralele",PRO_F3:"25 GB spa\u021Biu de stocare",PRO_F4:"30 zile istoric execu\u021Bii",PRO_F5:"SSO / SAML",PRO_F6:"Medii de staging",PRO_F7:"Domenii personalizate",PRO_F8:"Locuri echip\u0103 (5 incluse)",PRO_AI_NOTE:"25 \u20AC credite IA incluse lunar",ENTERPRISE_BADGE:"Enterprise",ENTERPRISE_NAME:"Enterprise",ENTERPRISE_DESC:"Conformitate, securitate \u0219i control total al deployment-ului.",ENTERPRISE_PRICE:"Hai s\u0103 discut\u0103m",ENTERPRISE_VOLUME:"Volum personalizat",ENTERPRISE_TAILORED:"adaptat nevoilor tale",ENTERPRISE_CTA:"Contacteaz\u0103 v\xE2nz\u0103rile",ENTERPRISE_HOSTING:"G\u0103zduire aplica\u021Bii personalizat\u0103",ENTERPRISE_INCLUDES:"Tot din Pro, plus:",ENTERPRISE_F1:"Execu\u021Bii paralele nelimitate",ENTERPRISE_F2:"365 zile reten\u021Bie date",ENTERPRISE_F3:"Loguri de audit \u0219i auto-audit",ENTERPRISE_F4:"Deployment VPC sau on-premise",ENTERPRISE_F5:"Aliniere guvernan\u021B\u0103 IA (\xEEn progres)",ENTERPRISE_F6:"Controale GDPR \u0219i SOC 2",ENTERPRISE_F7:"Integr\u0103ri personalizate",ENTERPRISE_F8:"Manager de cont dedicat",ENTERPRISE_F9:"Garan\u021Bie SLA",ENTERPRISE_F10:"Facturare",ENTERPRISE_AI_NOTE:"Pachet credite IA personalizat",COMPARISON_TITLE:"Deployment \u0219i conformitate per plan",TABLE_APP_HOSTING:"G\u0103zduire aplica\u021Bii",TABLE_1_APP:"1 aplica\u021Bie",TABLE_2_APPS:"2 aplica\u021Bii",TABLE_3_APPS:"3 aplica\u021Bii",TABLE_CUSTOM:"Personalizat",TABLE_DEPLOYMENT:"Deployment",TABLE_CLOUD_OR_SELF:"Cloud sau Self
5-Hosted",TABLE_CLOUD_VPC_ONPREM:"Cloud, VPC sau On-Premise",TABLE_DATA_RETENTION:"Reten\u021Bie date",TABLE_7_DAYS:"7 zile",TABLE_15_DAYS:"15 zile",TABLE_30_DAYS:"30 zile",TABLE_365_DAYS:"365 zile",TABLE_STAGING:"Medii de staging",TABLE_AUDIT_LOGS:"Loguri de audit",TABLE_SOC2_GDPR:"Controale SOC 2 \u0219i GDPR",TABLE_EU_AI_ACT:"Aliniere guvernan\u021B\u0103 IA (\xEEn progres)",CREDITS_TITLE:"Credite IA",CREDITS_DESC:"Creditele func\u021Bioneaz\u0103 cu to\u021Bi furnizorii IA \u2013 OpenAI, Anthropic, Google \u0219i al\u021Bii. Sau sari peste credite \u0219i conecteaz\u0103-\u021Bi propriile chei API.",CREDITS_KEYS_TITLE:"Cheile tale:",CREDITS_KEYS_DESC:"Conecteaz\u0103-\u021Bi propriile chei de furnizor \u0219i pl\u0103te\u0219te-i direct",CREDITS_OUR_TITLE:"Creditele noastre:",CREDITS_OUR_DESC:"Folose\u0219te conexiuni gestionate f\u0103r\u0103 a configura conturi de furnizor",CREDITS_TRANSPARENT_TITLE:"Transparent:",CREDITS_TRANSPARENT_DESC:"Pl\u0103te\u0219ti doar pentru tokenii consuma\u021Bi, f\u0103r\u0103 adaos",CREDITS_FLEXIBLE_TITLE:"Flexibil:",CREDITS_FLEXIBLE_DESC:"Combin\u0103 ambele \u2013 cheile tale pentru unele modele, credite pentru altele",CREDITS_POPULAR:"Popular",CREDITS_10_DESC:"Suficient pentru ~500k tokeni (GPT-4o)",CREDITS_25_DESC:"Suficient pentru ~1,25M tokeni (GPT-4o)",CREDITS_50_DESC:"Suficient pentru ~2,5M tokeni (GPT-4o)",FAQ_TITLE:"\xCEntreb\u0103ri frecvente",FAQ1_Q:"Trebuie s\u0103 \u0219tiu s\u0103 programez?",FAQ1_A:"Nu. Qira poate construi pentru tine din descrieri \xEEn limbaj natural \u2013 folose\u0219te credite IA din contul t\u0103u. Dezvoltatorii pot folosi \u0219i canvas-ul vizual \u0219i nodurile de cod pentru control total.",FAQ2_Q:"Ce pot construi cu Ubex?",FAQ2_A:"Aplica\u021Bii, automatiz\u0103ri, chatbo\u021Bi IA, pipeline-uri de date, sisteme de rezerv\u0103ri, dashboard-uri, unelte interne \u2013 orice, de la un workflow simplu la o aplica\u021Bie full-stack.",FAQ3_Q:'Ce se consider\u0103 o "execu\u021Bie de workflow"?',FAQ3_A:"De fiecare dat\u0103 c\xE2nd un workflow se execut\u0103 de la \xEEnceput p\xE2n\u0103 la sf\xE2r\u0219it, aceasta este o execu\u021Bie \u2013 indiferent de c\xE2te noduri sau pa\u0219i con\u021Bine.",FAQ4_Q:"Cum func\u021Bioneaz\u0103 creditele IA?",FAQ4_A:"Creditele sunt consumate pe baza tokenilor procesa\u021Bi. Fiecare model are rate diferite. Po\u021Bi conecta \u0219i propriile chei de furnizor \u2013 f\u0103r\u0103 credite necesare.",FAQ5_Q:"Am nevoie de un card de credit pentru a \xEEncepe?",FAQ5_A:"Nu. Planul Gratuit este complet gratuit \u2013 f\u0103r\u0103 card de credit, f\u0103r\u0103 limit\u0103 de timp. \xCEncepe s\u0103 construie\u0219ti \u0219i f\u0103 upgrade c\xE2nd e\u0219ti preg\u0103tit.",FAQ6_Q:"Pot schimba planul mai t\xE2rziu?",FAQ6_A:"Oric\xE2nd. Upgrade, downgrade sau anulare din set\u0103rile contului. Taxele propor\u021Bionale se aplic\u0103 automat.",FAQ7_Q:"Se reporteaz\u0103 creditele neutilizate?",FAQ7_A:"Creditele IA cump\u0103rate nu expir\u0103 niciodat\u0103. Creditele lunare incluse (Starter/Pro) se reseteaz\u0103 la fiecare ciclu de facturare \u0219i nu se reporteaz\u0103.",FAQ8_Q:"Pot ad\u0103uga membri \xEEn echip\u0103?",FAQ8_A:"Starter include 3 locuri de echip\u0103, Pro include 5, iar Enterprise ofer\u0103 locuri nelimitate. Toate planurile suport\u0103 acces bazat pe roluri.",FAQ9_Q:"Ce op\u021Biuni de deployment sunt disponibile?",FAQ9_A:"De la Gratuit p\xE2n\u0103 la Starter ruleaz\u0103 pe Managed Cloud. Pro adaug\u0103 deployment self-hosted. Enterprise adaug\u0103 VPC \u0219i op\u021Biuni complete on-premise.",BUILD_RUNS:"Execu\u021Bii workflow / lun\u0103",BUILD_APPS:"Aplica\u021Bii de g\u0103zduit",BUILD_SEATS:"Locuri \xEEn echip\u0103",BUILD_CREDITS:"Credite IA / lun\u0103",BUILD_RECOMMENDED:"Plan recomandat",BUILD_ESTIMATE:"Total lunar estimat",BUILD_CUSTOM:"Ofert\u0103 personalizat\u0103",BUILD_PER_MONTH:"pe lun\u0103",VPC:"VPC",ENT_TITLE:"Configureaz\u0103-\u021Bi planul Enterprise",ENT_DESC:"Seteaz\u0103 volumele de care ai nevoie efectiv \u0219i unde ruleaz\u0103 totul. Construim oferta pe baza lor, nu pe un nivel fix.",ENT_DEPLOYMENT:"Deployment",ENT_NEEDS:"Adaug\u0103 ce ai nevoie",ENT_NEED_SLA:"SLA \u0219i suport dedicat",ENT_NEED_AUDIT:"Loguri de audit \u0219i conformitate",ENT_NEED_INTEGRATIONS:"Integr\u0103ri personalizate",ENT_NEED_TRAINING:"Onboarding \u0219i instruire",ENT_SUMMARY:"Configura\u021Bia ta",ENT_TALK_ANYWAY:"Vorbe\u0219te oricum cu v\xE2nz\u0103rile",ENT_NOTE:"R\u0103spundem cu o ofert\u0103 scris\u0103 \xEEntr-o zi lucr\u0103toare. Nu se percepe nimic \xEEnainte s\u0103 semnezi.",ENT_INCLUDED_TITLE:"Fiecare acord Enterprise include"}
5,PRIVACY:{LABEL:"LEGAL",TITLE:"Politica de confiden\u021Bialitate",LAST_UPDATED:"Ultima actualizare: februarie 2026",TOC_TITLE:"Cuprins",TOC_INTRO:"Introducere",TOC_COLLECTION:"1. Informa\u021Biile pe care le colect\u0103m",TOC_USE:"2. Cum folosim informa\u021Biile tale",TOC_SHARING:"3. Partajarea informa\u021Biilor",TOC_SECURITY:"4. Securitatea datelor",TOC_RETENTION:"5. P\u0103strarea datelor",TOC_RIGHTS:"6. Drepturile tale",TOC_COOKIES:"7. Cookie-uri",TOC_CHILDREN:"8. Confiden\u021Bialitatea copiilor",TOC_CHANGES:"9. Modific\u0103ri ale politicii",TOC_CONTACT:"10. Contacteaz\u0103-ne",INTRO_TITLE:"Introducere",INTRO_P1:'La Ubex AI ("noi" sau "al nostru"), ne angaj\u0103m s\u0103 protej\u0103m confiden\u021Bialitatea ta \u0219i s\u0103 asigur\u0103m securitatea informa\u021Biilor tale personale. Aceast\u0103 Politic\u0103 de confiden\u021Bialitate explic\u0103 modul \xEEn care colect\u0103m, folosim, divulg\u0103m \u0219i protej\u0103m informa\u021Biile tale c\xE2nd folose\u0219ti platforma \u0219i serviciile noastre.',INTRO_P2:"Prin utilizarea Serviciilor noastre, e\u0219ti de acord cu colectarea \u0219i utilizarea informa\u021Biilor \xEEn conformitate cu aceast\u0103 politic\u0103. Dac\u0103 nu e\u0219ti de acord cu politicile \u0219i practicile noastre, te rug\u0103m s\u0103 nu folose\u0219ti Serviciile noastre.",COLLECTION_TITLE:"1. Informa\u021Biile pe care le colect\u0103m",COLLECTION_PROVIDED_TITLE:"1.1. Informa\u021Bii pe care le furnizezi",COLLECTION_ACCOUNT:"Informa\u021Bii despre cont:",COLLECTION_ACCOUNT_DESC:"Nume, adres\u0103 de email, parol\u0103 \u0219i detalii de profil la crearea contului.",COLLECTION_PAYMENT:"Informa\u021Bii de plat\u0103:",COLLECTION_PAYMENT_DESC:"Adresa de facturare \u0219i detaliile metodei de plat\u0103 pentru abonamentele pl\u0103tite.",COLLECTION_COMMS:"Comunic\u0103ri:",COLLECTION_COMMS_DESC:"Informa\u021Bii pe care le furnizezi c\xE2nd contactezi echipa noastr\u0103 de suport.",COLLECTION_CONTENT:"Con\u021Binut utilizator:",COLLECTION_CONTENT_DESC:"Prompturi, intr\u0103ri \u0219i con\u021Binut pe care \xEEl creezi folosind Serviciile noastre.",COLLECTION_AUTO_TITLE:"1.2. Informa\u021Bii colectate automat",COLLECTION_USAGE:"Date de utilizare:",COLLECTION_USAGE_DESC:"Informa\u021Bii despre modul \xEEn care interac\u021Bionezi cu Serviciile noastre, inclusiv func\u021Bionalit\u0103\u021Bile folosite \u0219i timpul petrecut.",COLLECTION_DEVICE:"Informa\u021Bii despre dispozitiv:",COLLECTION_DEVICE_DESC:"Tipul browserului, sistemul de operare, identificatorii dispozitivului \u0219i adresa IP.",COLLECTION_LOG:"Date de jurnal:",COLLECTION_LOG_DESC:"Jurnale de server incluz\xE2nd timpii de acces, paginile vizualizate \u0219i URL-urile de referin\u021B\u0103.",USE_TITLE:"2. Cum folosim informa\u021Biile tale",USE_INTRO:"Folosim informa\u021Biile colectate pentru a:",USE_1:"Furniza, men\u021Bine \u0219i \xEEmbun\u0103t\u0103\u021Bi Serviciile noastre",USE_2:"Procesa tranzac\u021Bii \u0219i trimite informa\u021Bii conexe",USE_3:"Trimite notific\u0103ri tehnice, actualiz\u0103ri \u0219i mesaje de suport",USE_4:"R\u0103spunde la comentariile, \xEEntreb\u0103rile \u0219i solicit\u0103rile tale",USE_5:"Monitoriza \u0219i analiza tendin\u021Be, utilizare \u0219i activit\u0103\u021Bi",USE_6:"Detecta, investiga \u0219i preveni tranzac\u021Bii frauduloase \u0219i abuzuri",USE_7:"Personaliza \u0219i \xEEmbun\u0103t\u0103\u021Bi experien\u021Ba ta",USE_8:"Dezvolta produse, servicii \u0219i func\u021Bionalit\u0103\u021Bi noi",SHARING_TITLE:"3. Partajarea informa\u021Biilor",SHARING_INTRO:"Putem partaja informa\u021Biile tale \xEEn urm\u0103toarele circumstan\u021Be:",SHARING_PROVIDERS:"Furnizori de servicii:",SHARING_PROVIDERS_DESC:"Cu furnizori ter\u021Bi care presteaz\u0103 servicii \xEEn numele nostru (procesare pl\u0103\u021Bi, hosting, analiz\u0103).",SHARING_LEGAL:"Cerin\u021Be legale:",SHARING_LEGAL_DESC:"C\xE2nd este cerut de lege sau pentru a r\u0103spunde unui proces legal.",SHARING_PROTECTION:"Protec\u021Bie:",SHARING_PROTECTION_DESC:"Pentru a proteja drepturile, proprietatea \u0219i siguran\u021Ba Ubex AI, a utilizatorilor no\u0219tri sau a altora.",SHARING_TRANSFERS:"Transferuri de afaceri:",SHARING_TRANSFERS_DESC:"\xCEn leg\u0103tur\u0103 cu o fuziune, achizi\u02
51Bie sau v\xE2nzare de active.",SHARING_CONSENT:"Cu consim\u021B\u0103m\xE2ntul t\u0103u:",SHARING_CONSENT_DESC:"C\xE2nd ne-ai dat permisiunea explicit\u0103 de a partaja informa\u021Biile tale.",SHARING_NO_SELL:"Nu vindem informa\u021Biile tale personale c\u0103tre ter\u021Bi.",SECURITY_TITLE:"4. Securitatea datelor",SECURITY_P1:"Implement\u0103m m\u0103suri tehnice \u0219i organizatorice adecvate pentru a proteja informa\u021Biile tale personale \xEEmpotriva accesului neautorizat, modific\u0103rii, divulg\u0103rii sau distrugerii.",SECURITY_INTRO:"Aceste m\u0103suri includ:",SECURITY_1:"Criptarea datelor \xEEn tranzit \u0219i \xEEn repaus",SECURITY_2:"Evalu\u0103ri regulate de securitate \u0219i teste de penetrare",SECURITY_3:"Controale de acces \u0219i mecanisme de autentificare",SECURITY_4:"Instruirea angaja\u021Bilor privind protec\u021Bia datelor",SECURITY_5:"Proceduri de r\u0103spuns la incidente",SECURITY_DISCLAIMER:"De\u0219i ne str\u0103duim s\u0103 protej\u0103m informa\u021Biile tale, nicio metod\u0103 de transmisie prin Internet nu este 100% sigur\u0103. Nu putem garanta securitate absolut\u0103.",RETENTION_TITLE:"5. P\u0103strarea datelor",RETENTION_P1:"P\u0103str\u0103m informa\u021Biile tale personale at\xE2t timp c\xE2t este necesar pentru a \xEEndeplini scopurile pentru care au fost colectate, inclusiv pentru a satisface cerin\u021Be legale, contabile sau de raportare.",RETENTION_P2:"C\xE2nd \xEE\u021Bi \u0219tergi contul, vom \u0219terge sau anonimiza informa\u021Biile tale personale \xEEn termen de 30 de zile, cu excep\u021Bia cazului \xEEn care suntem obliga\u021Bi legal s\u0103 le p\u0103str\u0103m.",RIGHTS_TITLE:"6. Drepturile tale",RIGHTS_INTRO:"\xCEn func\u021Bie de loca\u021Bia ta, po\u021Bi avea urm\u0103toarele drepturi:",RIGHTS_ACCESS:"Acces:",RIGHTS_ACCESS_DESC:"Solicit\u0103 o copie a informa\u021Biilor personale pe care le de\u021Binem despre tine.",RIGHTS_CORRECTION:"Corectare:",RIGHTS_CORRECTION_DESC:"Solicit\u0103 corectarea informa\u021Biilor inexacte sau incomplete.",RIGHTS_DELETION:"\u0218tergere:",RIGHTS_DELETION_DESC:"Solicit\u0103 \u0219tergerea informa\u021Biilor tale personale.",RIGHTS_PORTABILITY:"Portabilitate:",RIGHTS_PORTABILITY_DESC:"Solicit\u0103 o copie a datelor tale \xEEntr-un format portabil.",RIGHTS_OBJECTION:"Obiec\u021Bie:",RIGHTS_OBJECTION_DESC:"Obiecteaz\u0103 la prelucrarea informa\u021Biilor tale personale.",RIGHTS_RESTRICTION:"Restric\u021Bie:",RIGHTS_RESTRICTION_DESC:"Solicit\u0103 restric\u021Bionarea prelucr\u0103rii \xEEn anumite circumstan\u021Be.",RIGHTS_CONTACT:"Pentru a exercita aceste drepturi, te rug\u0103m s\u0103 ne contactezi la",COOKIES_TITLE:"7. Cookie-uri \u0219i urm\u0103rire",COOKIES_P1:"Folosim cookie-uri \u0219i tehnologii similare de urm\u0103rire pentru a colecta \u0219i urm\u0103ri informa\u021Bii despre activitatea ta pe Serviciile noastre.",COOKIES_TYPES_TITLE:"Tipuri de cookie-uri pe care le folosim:",COOKIES_ESSENTIAL:"Cookie-uri esen\u021Biale:",COOKIES_ESSENTIAL_DESC:"Necesare pentru func\u021Bionarea Serviciilor noastre.",COOKIES_ANALYTICS:"Cookie-uri de analiz\u0103:",COOKIES_ANALYTICS_DESC:"Ne ajut\u0103 s\u0103 \xEEn\u021Belegem cum interac\u021Bioneaz\u0103 vizitatorii cu Serviciile noastre.",COOKIES_PREFERENCE:"Cookie-uri de preferin\u021B\u0103:",COOKIES_PREFERENCE_DESC:"Re\u021Bin set\u0103rile \u0219i preferin\u021Bele tale.",COOKIES_CONTROL:"Po\u021Bi controla cookie-urile prin set\u0103rile browserului t\u0103u. Re\u021Bine c\u0103 dezactivarea anumitor cookie-uri poate afecta func\u021Bionalitatea Serviciilor noastre.",CHILDREN_TITLE:"8. Confiden\u021Bialitatea copiilor",CHILDREN_P1:"Serviciile noastre nu sunt destinate copiilor sub 18 ani. Nu colect\u0103m cu bun\u0103 \u0219tiin\u021B\u0103 informa\u021Bii personale de la copii sub 18 ani. Dac\u0103 afl\u0103m c\u0103 am colectat informa\u021Bii de la un copil sub 18 ani, vom \u0219terge prompt acele informa\u021Bii.",CHANGES_TITLE:"9. Modific\u0103ri ale acestei politici",CHANGES_P1:'Putem actualiza aceast\u0103 Politic\u0103 de confiden\u021Bialitate din c\xE2nd \xEEn c\xE2nd. Te vom notifica despre orice modific\u0103ri prin publicarea noii Politici de confiden\u021Bialitate pe aceast\u0103 pagin\u0103 \u0219i actualizarea datei "Ultima actualizare".',CHANGES_P2:"Te \xEEncuraj\u0103m s\u0103 revizuie\u0219ti periodic aceast\u0103 Politic\u0103 de confiden\u021Bialitate pentru orice modific\u0103ri. Modific\u0103rile devin efective c\xE2nd sunt publicate pe aceast\u0103 pagin\u0103.",CONTACT_TITLE:"10. Contacteaz\u0103-ne",CONTACT_P1:"Dac\u0103 ai \xEEntreb\u0103ri despre aceast\u0103 Politic\u0103 de confiden\u021Bialitate sau practicile noastre privind datele, te rug\u0103m s\u0103 ne contactezi:",QUESTIONS:"\xCEntreb\u0103ri?",QUESTIONS_DESC:"Dac\u0103 ai \xEEntreb\u0103ri despre aceast\u0103 Politic\u0103 de confiden\u021Bialitate, te rug\u0103m s\u0103 ne contactezi la"},TERMS:{LABEL:"LEGAL",TITLE:"Termeni de utilizare",LAST_UPDATED:"Ultima actualizare: februarie 2026",TOC_TITLE:"Cuprins",TOC_PREAMBLE:"Preambul",TOC_DEFINITIONS:"1. Defini\u021Bii",TOC_PURPOSE:"2. Scop \u0219i domeniu de aplicare",TOC_ACCEPTANCE:"3. Acceptare",TOC_ACCESS:"4. Acces la servicii",TOC_SUBSCRIPTION:"5. Abonament",TOC_FEES:"6. Taxe \u0219i plat\u0103",TOC_OBLIGATIONS:"7. Obliga\u021Biile tale",TOC_IP:"8. Proprietate intelectual\u0103",TOC_LIABILITY:"9. R\u0103spundere",TOC_TERMINATION:"10. Reziliere",PREAMBLE_TITLE:"Preambul",PREAMBLE_P1:'Bine ai venit la Ubex! Platforma noastr\u0103 ofer\u0103 acces la modelele de inteligen\u021B\u0103 artificial\u0103 ale Ubex AI adaptate pentru generarea de text, al\u0103turi de o gam\u0103 de servicii complementare ("Serviciile").',PREAMBLE_P2:'Acest acord ("Acordul") este \xEEncheiat \xEEntre Ubex AI, o companie specializat\u0103 \xEEn solu\u
5021Bii IA ("Ubex AI" sau "Noi") \u0219i orice persoan\u0103 care utilizeaz\u0103, acceseaz\u0103 sau se aboneaz\u0103 la Servicii ("Tu" sau "Clientul").',PREAMBLE_P3:"Ace\u0219ti Termeni de utilizare se aplic\u0103 oric\u0103rui Abonament, utilizare \u0219i/sau acces la Servicii de c\u0103tre tine. Prin abonare, accesare sau utilizarea Serviciilor, e\u0219ti de acord \xEEn mod expres s\u0103 respec\u021Bi \u0219i s\u0103 fii obligat de acest Acord.",DEFINITIONS_TITLE:"1. Defini\u021Bii",DEFINITIONS_INTRO:"Cuvintele cu majuscul\u0103 din acest document au semnifica\u021Bia stabilit\u0103 mai jos:",DEF_ACCOUNT:'"Cont"',DEF_ACCOUNT_DESC:"\xEEnseamn\u0103 contul t\u0103u pe Platform\u0103.",DEF_AGREEMENT:'"Acord"',DEF_AGREEMENT_DESC:"\xEEnseamn\u0103 acordul \xEEncheiat \xEEntre Ubex AI \u0219i tine, compus din ace\u0219ti Termeni de utilizare, Termenii de serviciu aplicabili \u0219i toate materialele men\u021Bionate aici.",DEF_PLATFORM:'"Platform\u0103"',DEF_PLATFORM_DESC:"\xEEnseamn\u0103 site-ul web \u0219i aplica\u021Bia Ubex prin care sunt furnizate Serviciile.",DEF_SERVICES:'"Servicii"',DEF_SERVICES_DESC:"\xEEnseamn\u0103 toate produsele, func\u021Bionalit\u0103\u021Bile \u0219i func\u021Biile furnizate de Ubex AI.",DEF_SUBSCRIPTION:'"Abonament"',DEF_SUBSCRIPTION_DESC:"\xEEnseamn\u0103 \xEEnregistrarea ta pentru accesul \u0219i utilizarea Serviciilor.",DEF_PLAN:'"Plan de abonament"',DEF_PLAN_DESC:"\xEEnseamn\u0103 nivelul specific de Servicii la care te-ai abonat.",PURPOSE_TITLE:"2. Scop \u0219i domeniu de aplicare",PURPOSE_SUBTITLE:"2.1. Scop",PURPOSE_P1:"Scopul acestui Acord este de a descrie drepturile \u0219i responsabilit\u0103\u021Bile P\u0103r\u021Bilor \xEEn leg\u0103tur\u0103 cu utilizarea Serviciilor de c\u0103tre tine.",SCOPE_SUBTITLE:"2.2. Domeniu de aplicare",SCOPE_P1:"Ace\u0219ti Termeni de utilizare se aplic\u0103 oric\u0103rui Abonament, acces la sau utilizare a Serviciilor de c\u0103tre tine pe Platform\u0103 sau printr-un Marketplace.",SCOPE_P2:"Unele Servicii pot fi supuse unor termeni suplimentari specifici acelui Serviciu, conform Termenilor de serviciu aplicabili. Prin accesarea sau utilizarea unui Serviciu acoperit de Termenii de serviciu, e\u0219ti de acord \u0219i cu acei Termeni de serviciu.",ACCEPTANCE_TITLE:"3. Acceptare",ACCEPTANCE_P1:"Orice acces sau utilizare a Serviciilor de c\u0103tre tine implic\u0103 acordul t\u0103u necondi\u021Bionat cu ace\u0219ti Termeni de utilizare. Trebuie s\u0103 cite\u0219ti cu aten\u021Bie ace\u0219ti Termeni de utilizare \xEEnainte de a folosi Serviciile.",ACCEPTANCE_P2:'Prin clic pe "Sunt de acord" (sau orice buton sau caset\u0103 similar\u0103 de pe Platform\u0103) la momentul \xEEnregistr\u0103rii pentru un Serviciu, e\u0219ti de acord \xEEn mod expres s\u0103 fii obligat de acest Acord.',ACCEPTANCE_P3:"Dac\u0103 e\u0219ti de acord cu oricare dintre termenii acestui Acord \xEEn numele angajatorului t\u0103u sau al unei entit\u0103\u021Bi juridice, garantezi \u0219i declari c\u0103 de\u021Bii autoritatea de a ac\u021Biona \u0219i accepta ace\u0219ti termeni \xEEn numele lor.",ACCESS_TITLE:"4. Accesul la Serviciile noastre",ACCESS_REQ_SUBTITLE:"4.1. Cerin\u021Be",ACCESS_AGE:"Limit\u0103 de v\xE2rst\u0103:",ACCESS_AGE_DESC:"Trebuie s\u0103 ai cel pu\u021Bin optsprezece (18) ani pentru a utiliza Serviciile noastre.",ACCESS_TECH:"Cerin\u021Be tehnice:",ACCESS_TECH_DESC:"Ai nevoie de un computer sau dispozitiv compatibil \u0219i o conexiune la internet de mare vitez\u0103 pentru a accesa Serviciile.",ACCESS_COSTS:"Costuri:",ACCESS_COSTS_DESC:"Cu excep\u021Bia cazului \xEEn care se specific\u0103 altfel, costurile cerin\u021Belor tehnice sunt suportate exclusiv de tine.",ACCESS_ACCOUNT_SUBTITLE:"4.2. Contul t\u0103u",ACCESS_ACCOUNT_P1:"Trebuie s\u0103 creezi un Cont pe Platform\u0103 pentru a utiliza Serviciile. Trebuie s\u0103 furnizezi informa\u021Bii complete, corecte \u0219i actualizate \u0219i s\u0103 le actualizezi prompt dac\u0103 apar modific\u0103ri.",ACCESS_ACCOUNT_P2:"Contul t\u0103u este destinat exclusiv utiliz\u0103rii tale. Nu trebuie s\u0103 partajezi Contul cu ter\u021Bi f\u0103r\u0103 consim\u021B\u0103m\xE2ntul scris prealabil al Ubex. E\u02
519ti singurul responsabil pentru orice ac\u021Biune efectuat\u0103 prin Contul t\u0103u.",SUBSCRIPTION_TITLE:"5. Abonamentul la Servicii",SUBSCRIPTION_FREE_SUBTITLE:"5.1. Servicii gratuite",SUBSCRIPTION_FREE_P1:"Pentru a accesa Serviciile gratuite, trebuie s\u0103 \xEE\u021Bi creezi Contul \u0219i s\u0103 accep\u021Bi acest Acord.",SUBSCRIPTION_PAID_SUBTITLE:"5.2. Servicii pl\u0103tite",SUBSCRIPTION_PAID_INTRO:"Pentru a te abona la Serviciile pl\u0103tite, trebuie s\u0103:",SUBSCRIPTION_PAID_1:"\xCE\u021Bi creezi Contul \xEEn conformitate cu ace\u0219ti Termeni",SUBSCRIPTION_PAID_2:"Alegi Planul de abonament",SUBSCRIPTION_PAID_3:"Alegi metoda de plat\u0103",SUBSCRIPTION_PAID_4:"Furnizezi informa\u021Biile de plat\u0103 \u0219i facturare",SUBSCRIPTION_PAID_5:"Accep\u021Bi acest Acord",SUBSCRIPTION_PAID_6:"Revizuie\u0219ti \u0219i confirmi Abonamentul",FEES_TITLE:"6. Taxe \u0219i plat\u0103",FEES_P1:"Taxele pentru Serviciile pl\u0103tite sunt conform descrierii de pe Platform\u0103. Trebuie s\u0103 furnizezi informa\u021Bii de plat\u0103 exacte \u0219i s\u0103 le men\u021Bii actualizate.",FEES_P2:"Ubex \xEE\u0219i rezerv\u0103 dreptul de a refuza Abonamentul t\u0103u \xEEn caz de suspiciune de fraud\u0103 sau declara\u021Bii false. \xCEn astfel de cazuri, orice Taxe pl\u0103tite \xEEn avans vor fi rambursate.",OBLIGATIONS_TITLE:"7. Obliga\u021Biile tale",OBLIGATIONS_INTRO:"E\u0219ti de acord s\u0103:",OBLIGATIONS_1:"Utilizezi Serviciile \xEEn conformitate cu toate legile \u0219i reglement\u0103rile aplicabile",OBLIGATIONS_2:"Nu utilizezi Serviciile \xEEn scopuri ilegale sau neautorizate",OBLIGATIONS_3:"Nu \xEEncerci s\u0103 ob\u021Bii acces neautorizat la orice parte a Serviciilor",OBLIGATIONS_4:"Nu interferezi cu sau perturbezi Serviciile sau serverele",OBLIGATIONS_5:"Nu utilizezi Serviciile pentru a genera con\u021Binut d\u0103un\u0103tor, abuziv sau ilegal",OBLIGATIONS_6:"Men\u021Bii securitatea creden\u021Bialelor Contului t\u0103u",IP_TITLE:"8. Proprietate intelectual\u0103",IP_P1:"Toate drepturile de proprietate intelectual\u0103 asupra Serviciilor, inclusiv, dar f\u0103r\u0103 a se limita la software, algoritmi, modele \u0219i documenta\u021Bie, apar\u021Bin Ubex AI sau licen\u021Biatorilor s\u0103i.",IP_P2:"P\u0103strezi proprietatea asupra oric\u0103rui con\u021Binut pe care \xEEl creezi folosind Serviciile, sub rezerva drepturilor de proprietate intelectual\u0103 subiacente ale Ubex AI.",LIABILITY_TITLE:"9. R\u0103spundere",LIABILITY_P1:'Serviciile sunt furnizate "ca atare" f\u0103r\u0103 garan\u021Bii de niciun fel. Ubex AI nu va fi r\u0103spunz\u0103tor pentru daune indirecte, incidentale, speciale sau consecvente.',LIABILITY_P2:"R\u0103spunderea total\u0103 a Ubex AI nu va dep\u0103\u0219i sumele pl\u0103tite de tine pentru Servicii \xEEn cele dou\u0103sprezece (12) luni anterioare reclama\u021Biei.",TERMINATION_TITLE:"10. Reziliere",TERMINATION_P1:"Po\u021Bi dezactiva Contul t\u0103u oric\xE2nd contact\xE2nd [email protected]. Pentru Serviciile pl\u0103tite, rezilierea este supus\u0103 termenilor Planului t\u0103u de abonament.",TERMINATION_P2:"Ubex \xEE\u0219i rezerv\u0103 dreptul de a suspenda sau rezilia Contul t\u0103u dac\u0103 \xEEncalci ace\u0219ti Termeni de utilizare sau te angajezi \xEEn utilizarea neautorizat\u0103 a Serviciilor.",QUESTIONS:"\xCEntreb\u0103ri?",QUESTIONS_DESC:"Dac\u0103 ai \xEEntreb\u0103ri despre ace\u0219ti Termeni, te rug\u0103m s\u0103 ne contactezi la"},CONSENT:{TITLE:"Respect\u0103m confiden\u021Bialitatea ta",DESC:"Folosim cookie-uri pentru a \xEEmbun\u0103t\u0103\u021Bi experien\u021Ba ta, a analiza traficul \u0219i a personaliza con\u021Binutul. Po\u021Bi alege ce cookie-uri permi\u021Bi. Cite\u0219te ",PRIVACY_LINK:"Politica de confiden\u021Bialitate",ACCEPT:"Accept\u0103 tot",REJECT:"Respinge tot",CUSTOMIZE:"Personalizeaz\u0103",CUSTOMIZE_TITLE:"Preferin\u021Be cookie-uri",CUSTOMIZE_DESC:"Alege ce cookie-uri vrei s\u0103 permi\u021Bi. Cookie-urile esen\u021Biale sunt mereu active deoarece sunt necesare pentru func\u021Bionarea site-ului.",CAT_ESSENTIAL:"Esen\u021Biale",CAT_ESSENTIAL_DESC:"Necesare pentru func\u021Bionarea site-ului. Nu pot fi dezactivate.",ALWAYS_ON:"Mereu active",CAT_ANALYTICS:"Analiz\u0103",CAT_ANALYTICS_DESC:"Ne ajut\u0103 s\u0103 \xEEn\u021Belegem cum interac\u021Bioneaz\u0103 vizitatorii cu site-ul nostru prin colectarea datelor anonime de utilizare.",CAT_ADS:"Publicitate",CAT_ADS_DESC:"Folosite pentru a livra reclame relevante \u0219i a m\u0103sura eficien\u021B
5a campaniilor.",CAT_FUNCTIONAL:"Func\u021Bionale",CAT_FUNCTIONAL_DESC:"Permit func\u021Bii \xEEmbun\u0103t\u0103\u021Bite precum preferin\u021Bele de limb\u0103 \u0219i con\u021Binutul personalizat.",REJECT_ALL:"Respinge tot",SAVE_PREFS:"Salveaz\u0103 preferin\u021Bele",MANAGE_COOKIES:"Gestioneaz\u0103 cookie-uri"},IMPRINT:{LABEL:"LEGAL",TITLE:"Imprint",SUBTITLE:"Informa\u021Bii conform \xA7 5 TMG",COMPANY_TITLE:"Informa\u021Bii despre companie",COMPANY_NAME:"TechVision Mallorca SL (oper\xE2nd ca Ubex AI)",COMPANY_ADDRESS:`Calle Bartomeu Ferra 16 A 607141 Marratx\xED, Mallorca, Spania`,COMPANY_REPRESENTED:"Reprezentat de: Adelina Bolota",CONTACT_TITLE:"Contact",CONTACT_PAGE_LINK:"Contacteaz\u0103-ne \u2192",CONTACT_WEBSITE_LABEL:"Website",REGISTRATION_TITLE:"Detalii de \xEEnregistrare",REGISTRATION_COURT:"TOMO: 3006 \xB7 HOJA: PM-96905",REGISTRATION_NUMBER:"CIF: B72772940",VAT_ID:"NIF/CIF: B72772940",RESPONSIBLE_TITLE:"Responsabil pentru con\u021Binut",RESPONSIBLE_DESC:"Responsabil pentru con\u021Binut conform \xA7 18 Abs. 2 MStV:",RESPONSIBLE_PERSON:"Adelina Bolota",RESPONSIBLE_ADDRESS:"Calle Bartomeu Ferra 16 A, 07141 Marratx\xED, Mallorca, Spania",DISPUTE_TITLE:"Solu\u021Bionarea disputelor",DISPUTE_NO_OBLIGATION:"Nu suntem obliga\u021Bi \u0219i nici dispu\u0219i s\u0103 particip\u0103m la proceduri de solu\u021Bionare a disputelor \xEEn fa\u021Ba unui organism de arbitraj pentru consumatori.",QUESTIONS:"\xCEntreb\u0103ri?",QUESTIONS_DESC:"Dac\u0103 ave\u021Bi \xEEntreb\u0103ri despre acest imprint, vizita\u021Bi pagina noastr\u0103 de"},SITEMAP:{LABEL:"HART\u0102 SITE",TITLE:"Hart\u0103 site",SUBTITLE:"Toate paginile dintr-o privire",MAIN_PAGES:"Pagini principale",AI_ASSISTANTS:"Asisten\u021Bi AI",RESOURCES:"Resurse",COMPANY:"Companie",LEGAL:"Legal"},LABS:{LABEL:"Ubex Labs \xB7 Summer Camp 2026",TITLE:"\xCEnva\u021B\u0103 s\u0103 construie\u0219ti produse reale cu AI.",SUBTITLE:"Predat de echipa care le creeaz\u0103.",CTA_APPLY:"Aplic\u0103 acum",PROBLEM_HEADLINE:"Lumea a \xEEncetat s\u0103 angajeze dezvoltatori juniori. Noi nu.",PROBLEM_TITLE:"Problema",PROBLEM_TEXT:"Companiile au nevoie de ingineri cu competen\u021Be \xEEn AI. Dar au \xEEncetat s\u0103 angajeze juniori. Vor talente cu experien\u021B\u0103. Vor oameni care pot construi din prima zi. Atunci unde te las\u0103 asta pe tine?",SOLUTION_TITLE:"Solu\u021Bia",SOLUTION_TEXT:"Ubex Labs este un program de mentorat de 2 luni care \xEEnchide acest decalaj. 4 s\u0103pt\u0103m\xE2ni de bootcamp intensiv cu Vlad, CTO al Ubex AI \u0219i arhitect software cu peste 20 de ani de experien\u021B\u0103. \xCEnc\u0103 4 s\u0103pt\u0103m\xE2ni de suport, \xEEn care r\u0103m\xE2nem al\u0103turi de tine \xEEn timp ce \xEE\u021Bi rafinezi, \u0219lefuie\u0219ti \u0219i lansezi proiectul de portofoliu. Suport de la echip\u0103 24/7 pe toat\u0103 durata celor 2 luni. Peste 38 de ore de mentorat direct.",PROBLEM_CLOSING:"Asta nu e teorie. Nu e un certificat. E\u0219ti tu construind produse AI reale \xEEn interiorul unei echipe de inginerie reale.",BENEFITS_TITLE:"Ce prime\u0219ti",BENEFIT_1_TITLE:"Peste 38 de ore cu Vlad",BENEFIT_1_DESC:"Mentorat direct de la un arhitect software cu peste 20 de ani de experien\u021B\u0103. Nu e o prelegere. E \xEEndrumare personalizat\u0103 pentru codul, arhitectura \u0219i evolu\u021Bia ta.",BENEFIT_2_TITLE:"4 s\u0103pt\u0103m\xE2ni de bootcamp intensiv",BENEFIT_2_DESC:"5 zile pe s\u0103pt\u0103m\xE2n\u0103. Sesiuni de 2 ore. Construie\u0219ti din prima zi. Agen\u021Bi AI, automatizare de fluxuri de lucru, dezvoltare de aplica\u021Bii, implementare \xEEn produc\u021Bie.",BENEFIT_3_TITLE:"4 s\u0103pt\u0103m\xE2ni de suport ulterior",BENEFIT_3_DESC:"10 ore suplimentare de mentorat, atunci c\xE2nd TU ai nevoie de ele. \xCE\u021Bi rafinezi proiectul. \xCE\u021Bi \u0219lefuie\u0219ti portofoliul. Nu disp\u0103rem dup\u0103 bootcamp.",BENEFIT_4_TITLE:"Acces la echip\u0103 24/7",BENEFIT_4_DESC:"\xCEntreaga echip\u0103 Ubex AI e al\u0103turi de tine. Dezvoltatori, ingineri, personal tehnic. Canale dedicate. Oric\xE2nd. Orice \xEEntrebare. Timp de 2 luni.",BENEFIT_5_TITLE:"Proiect real de portofoliu",BENEFIT_5_DESC:"Nu e o copie de tutorial. E un produs AI func\u021Bional, \u0219lefuit, pe care \xEEl construie\u0219ti \u0219i \xEEl perfec\u021Bionezi timp de 2 luni. Genul de proiect pe care \xEEl ar\u0103\u021Bi angajatorilor.",BENEFIT_6_TITLE:"100 \u20AC credite de platform\u0103",BENEFIT_6_DESC:"Construie\u0219te pe Ubex AI \xEEn timpul \u0219i dup\u0103 program. R\u0103m\xE2n ale tale.",BENEFIT_7_TITLE:"Certificat + recomand\u0103ri",BENEFIT_7_DESC:"Certificat oficial Ubex AI. Recomand\u0103ri profesionale personalizate din partea lui Vlad.",BENEFIT_8_TITLE:"Oportunitate de carier\u0103",BENEFIT_8_DESC:"Cei mai buni participan\u021Bi pot fi lua\u021Bi \xEEn considerare pentru pozi\u021Bii la Ubex AI.",INVESTMENT_TITLE:"Investi\u021Bia ta",INVESTMENT_INSTALLMENTS:"Pl\u0103t
6it\u0103 \xEEn dou\u0103 tran\u0219e.",INSTALLMENT_1:"La acceptare",INSTALLMENT_2:"La finalul bootcamp-ului (s\u0103pt\u0103m\xE2na 4)",INCLUDED_TITLE:"Totul inclus:",INCLUDED_1:"Peste 38 de ore de mentorat cu Vlad",INCLUDED_2:"2 luni de suport din partea echipei, 24/7",INCLUDED_3:"Canale de comunicare dedicate",INCLUDED_4:"100 \u20AC \xEEn credite de platform\u0103 Ubex AI",INCLUDED_5:"Certificat de absolvire",INCLUDED_6:"Recomand\u0103ri profesionale",INVESTMENT_VALUE:"Valoarea real\u0103 a acestui program dep\u0103\u0219e\u0219te 12.000 \u20AC. Investi\u021Bia ta este de 499 \u20AC. Adic\u0103 mai pu\u021Bin de 14 \u20AC pe or\u0103 de mentorat cu un arhitect cu 20 de ani de experien\u021B\u0103.",INVESTMENT_CTA_TEXT:"Aceasta este o investi\u021Bie \xEEn cariera ta. \xCEn era AI, dezvoltatorii care investesc \xEEn ei \xEEn\u0219i\u0219i acum vor fi cei pe care companiile se vor lupta s\u0103 \xEEi angajeze mai t\xE2rziu.",AUDIENCE_TITLE:"C\u0103ut\u0103m oameni care vor s\u0103 construiasc\u0103.",AUDIENCE_1:"Studen\u021Bi sau absolven\u021Bi recen\u021Bi care caut\u0103 experien\u021B\u0103 real\u0103",AUDIENCE_2:"Dezvoltatori juniori care vor s\u0103 se specializeze \xEEn AI",AUDIENCE_3:"Persoane care \xEE\u0219i schimb\u0103 cariera spre tehnologie",AUDIENCE_4:"Programatori autodidac\u021Bi gata s\u0103 fac\u0103 saltul profesional",AUDIENCE_5:"Oricine vede venind era AI \u0219i vrea s\u0103 fie preg\u0103tit",AUDIENCE_NOTE:"Nu ai nevoie de o diplom\u0103 \xEEn informatic\u0103. Nu ai nevoie de ani de experien\u021B\u0103. Ai nevoie de motiva\u021Bie, implicare \u0219i dorin\u021Ba de a construi.",FAQ_TITLE:"\xCEntreb\u0103ri frecvente",FAQ_1_Q:"Am nevoie de experien\u021B\u0103 anterioar\u0103 \xEEn AI?",FAQ_1_A:"Nu. E suficient\u0103 o baz\u0103 tehnic\u0103 minim\u0103. Ne intereseaz\u0103 motiva\u021Bia \u0219i implicarea ta.",FAQ_2_Q:"C\xE2t dureaz\u0103 programul?",FAQ_2_A:"2 luni. 4 s\u0103pt\u0103m\xE2ni de bootcamp intensiv + 4 s\u0103pt\u0103m\xE2ni de suport ulterior.",FAQ_3_Q:"C\xE2t timp trebuie s\u0103 aloc?",FAQ_3_A:"Faza 1: aproximativ 20-25 de ore pe s\u0103pt\u0103m\xE2n\u0103. Faza 2: aproximativ 10-15 ore pe s\u0103pt\u0103m\xE2n\u0103.",FAQ_4_Q:"Este remote sau fa\u021B\u0103 \xEEn fa\u021B\u0103?",FAQ_4_A:"Ambele op\u021Biuni sunt disponibile. Detaliile sunt comunicate dup\u0103 acceptare.",FAQ_5_Q:"C\xE2t cost\u0103?",FAQ_5_A:"499 \u20AC. Dou\u0103 tran\u0219e de 250 \u20AC. Include 100 \u20AC \xEEn credite de platform\u0103.",FAQ_6_Q:"Ce se \xEEnt\xE2mpl\u0103 dup\u0103 program?",FAQ_6_A:"R\u0103m\xE2i cu portofoliul, competen\u021Bele, creditele \u0219i re\u021Beaua ta de contacte. Cei mai buni participan\u021Bi pot fi lua\u021Bi \xEEn considerare pentru pozi\u021Bii la Ubex AI.",FAQ_7_Q:"Cine este Vlad?",FAQ_7_A:"CTO al Ubex AI. Arhitect software cu peste 20 de ani de experien\u021B\u0103. Mentorul t\u0103u principal.",FAQ_8_Q:"Ce se \xEEnt\xE2mpl\u0103 dac\u0103 nu sunt acceptat?",FAQ_8_A:"E\u0219ti trecut pe lista de a\u0219teptare, cu acces prioritar la viitoarele cohorte.",FAQ_9_Q:"Ce se \xEEnt\xE2mpl\u0103 dac\u0103 pierd o sesiune?",FAQ_9_A:"Se poate \xEEnt\xE2mpla. Sesiunile sunt structurate astfel \xEEnc\xE2t una ratat\u0103 s\u0103 nu te dea peste cap. Se a\u0219teapt\u0103 \xEEns\u0103 participare constant\u0103.",FAQ_10_Q:"Voi primi un certificat?",FAQ_10_A:"Da. Certificat oficial Ubex AI de absolvire pentru to\u021Bi participan\u021Bii care finalizeaz\u0103 programul.",FINAL_STATS:"30 de locuri. O prim\u0103 cohort\u0103. 2 luni. Peste 38 de ore cu un arhitect cu 20 de ani de experien\u021B\u0103. Suport 24/7. 100 \u20AC credite de platform\u0103. 499 \u20AC.",FINAL_QUOTE:"Majoritatea bootcamp-urilor se termin\u0103 \u0219i \xEE\u021Bi ureaz\u0103 succes. Noi construim al\u0103turi de tine, apoi continu\u0103m s\u0103 construim al\u0103turi de tine.",COPYRIGHT:"Toate drepturile rezervate.",WAITLIST_HEADLINE:"Prima cohort\u0103 este acum complet\u0103.",WAITLIST_DESC:"30 de participan\u021Bi au fost selecta\u021Bi pentru programul inaugural Ubex Labs. Dar programele bune merit\u0103 s\u0103 creasc\u0103.",WAITLIST_CTA_TEXT:"Al\u0103tur\u0103-te listei de a\u0219teptare.",WAITLIST_NAME:"Nume",WAITLIST_EMAIL:"Email",WAITLIST_BUTTON:"Al\u0103tur\u0103-te listei de a\u0219teptare",WAITLIST_NOTE:"Dac\u0103 se elibereaz\u0103 un loc, vei fi primul care afl\u0103. Membrii listei de a\u0219teptare primesc acces prioritar la viitoarele cohorte Ubex Labs, \xEEnainte ca \xEEnscrierile publice s\u0103 se deschid\u0103."}};var Nl={en:Ss,de:As,es:fs,ro:gs},Ti=class t{translate=l(un);router=l($);doc=l(N);isBrowser=va(l(it));languages=[{code:"en",label:"English",flag:"\u{1F1EC}\u{1F1E7}"},{code:"de",label:"Deutsch",flag:"\u{1F1E9}\u{1F1EA}"},{code:"es",label:"Espa\xF1ol",flag:"\u{1F1EA}\u{1F1F8}"},{code:"ro",label:"Rom\xE2n\u0103",flag:"\u{1F1F7}\u{1F1F4}"}];get currentLang(){return this.translate.getCurrentLang()||this.translate.getFallbackLang()||"en"}get currentOption(){return this.languages.find(i=>i.code===this.currentLang)||this.languages[0]}init(){for(let e of this.languages)this.translate.setTranslation(e.code,Nl[e.code]);this.translate.addLangs(this.languages.map(e=>e.code)),this.translate.setFallbackLang("en"),this.router.events.pipe(Q(e=>e instanceof k)).subscribe(e=>{let n=this.extractLangFromUrl(e.urlAfterRedirects);n!==this.currentLang&&(this.translate.use(n),this.persistLang(n)),this.updateHtmlLang()});let i=this.extractLangFromUrl(this.router.url);this.translate.use(i),this.persistLang(i),this.updateHtmlLang()}setLanguage(i){if(!Ei.includes(i))return;let e=this.router.url,n=this.extractLangFromUrl(e),r=this.stripLangFromUrl(e),a;i==="en"?a=r||"/":a=`/${i}${r==="/"?"":r}`,this.translate.use(i),this.persistLang(i,!0),this.updateHtmlLang(),this.router.navigateByUrl(a,{replaceUrl:!0})}extractLangFromUrl(i){let n=i.split("?")[0].split("#")[0].split("/").filter(
6Boolean);return n.length>0&&Ei.includes(n[0])?n[0]:"en"}stripLangFromUrl(i){let[e,n]=i.split("?"),r=e.split("/").filter(Boolean),a;return r.length>0&&Ei.includes(r[0])?a="/"+r.slice(1).join("/"):a=e,a===""&&(a="/"),n?`${a}?${n}`:a}persistLang(i,e=!1){this.isBrowser&&(localStorage.setItem("ubex-lang",i),e&&localStorage.setItem("ubex-lang-explicit","1"))}updateHtmlLang(){this.doc.documentElement.lang=this.currentLang}static \u0275fac=function(e){return new(e||t)};static \u0275prov=_({token:t,factory:t.\u0275fac,providedIn:"root"})};var ms=class t{translationService=l(Ti);transform(i){let e=this.translationService.currentLang,n=!i||i==="/"?"/":i.startsWith("/")?i:`/${i}`;return e==="en"?n:n==="/"?`/${e}`:`/${e}${n}`}static \u0275fac=function(e){return new(e||t)};static \u0275pipe=st({name:"langLink",type:t,pure:!1})};export{ue as a,Pa as b,Ds as c,Os as d,Ns as e,ba as f,va as g,Qs as h,$a as i,fu as j,gu as k,ZT as l,to as m,Uu as n,JT as o,e_ as p,k as q,Ee as r,Sr as s,$ as t,ui as u,dl as v,Tl as w,_l as x,pl as y,un as z,sp as A,up as B,cp as C,Ei as D,Ti as E,ms as F};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.