PageSourceSearch

https://agents.neona.ai/assets/analytics-B6QZxVUa.js

js neona.ai collected 2026-10-05 14:11:04 UTC 137,262 bytes, 2 lines download raw bytes

vendor: 4,697 bytes, line 1
1function ke(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var R={exports:{}},s={};var ee;function Se(){if(ee)return s;ee=1;var t=Symbol.for("react.transitional.element"),a=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),c=Symbol.for("react.strict_mode"),h=Symbol.for("react.profiler"),f=Symbol.for("react.consumer"),ue=Symbol.for("react.context"),de=Symbol.for("react.forward_ref"),ge=Symbol.for("react.suspense"),pe=Symbol.for("react.memo"),K=Symbol.for("react.lazy"),he=Symbol.for("react.activity"),W=Symbol.iterator;function me(e){return e===null||typeof e!="object"?null:(e=W&&e[W]||e["@@iterator"],typeof e=="function"?e:null)}var j={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Y=Object.assign,Q={};function v(e,n,r){this.props=e,this.context=n,this.refs=Q,this.updater=r||j}v.prototype.isReactComponent={},v.prototype.setState=function(e,n){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,n,"setState")},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function $(){}$.prototype=v.prototype;function D(e,n,r){this.props=e,this.context=n,this.refs=Q,this.updater=r||j}var I=D.prototype=new $;I.constructor=D,Y(I,v.prototype),I.isPureReactComponent=!0;var z=Array.isArray;function G(){}var d={H:null,A:null,T:null,S:null},J=Object.prototype.hasOwnProperty;function N(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i!==void 0?i:null,props:r}}function ye(e,n){return N(e.type,n,e.props)}function L(e){return typeof e=="object"&&e!==null&&e.$$typeof===t}function fe(e){var n={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(r){return n[r]})}var Z=/\/+/g;function H(e,n){return typeof e=="object"&&e!==null&&e.key!=null?fe(""+e.key):n.toString(36)}function we(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(G,G):(e.status="pending",e.then(function(n){e.status==="pending"&&(e.status="fulfilled",e.value=n)},function(n){e.status==="pending"&&(e.status="rejected",e.reason=n)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}function b(e,n,r,i,l){var u=typeof e;(u==="undefined"||u==="boolean")&&(e=null);var g=!1;if(e===null)g=!0;else switch(u){case"bigint":case"string":case"number":g=!0;break;case"object":switch(e.$$typeof){case t:case a:g=!0;break;case K:return g=e._init,b(g(e._payload),n,r,i,l)}}if(g)return l=l(e),g=i===""?"."+H(e,0):i,z(l)?(r="",g!=null&&(r=g.replace(Z,"$&/")+"/"),b(l,n,r,"",function(Ae){return Ae})):l!=null&&(L(l)&&(l=ye(l,r+(l.key==null||e&&e.key===l.key?"":(""+l.key).replace(Z,"$&/")+"/")+g)),n.push(l)),1;g=0;var m=i===""?".":i+":";if(z(e))for(var p=0;p<e.length;p++)i=e[p],u=m+H(i,p),g+=b(i,n,r,u,l);else if(p=me(e),typeof p=="function")for(e=p.call(e),p=0;!(i=e.next()).done;)i=i.value,u=m+H(i,p++),g+=b(i,n,r,u,l);else if(u==="object"){if(typeof e.then=="function")return b(we(e),n,r,i,l);throw n=String(e),Error("Objects are not valid as a React child (found: "+(n==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":n)+"). If you meant to render a collection of children, use an array instead.")}return g}function S(e,n,r){if(e==null)return e;var i=[],l=0;return b(e,i,"","",function(u){return n.call(r,u,l++)}),i}function ve(e){if(e._status===-1){var n=e._result;n=n(),n.then(function(r){(e._status===0||e._status===-1)&&(e._status=1,e._result=r)},function(r){(e._status===0||e._status===-1)&&(e._status=2,e._result=r)}),e._status===-1&&(e._status=0,e._result=n)}if(e._status===1)return e._result.default;throw e._result}var X=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var n=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(n))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)},be={map:S,forEach:function(e,n,r){S(e,function(){n.apply(this,arguments)},r)},count:function(e){var n=0;return S(e,function(){n++}),n},toArray:function(e){return S(e,function(n){return n})||[]},only:function(e){if(!L(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};return s.Activity=he,s.Children=be,s.Component=v,s.Fragment=o,s.Profiler=h,s.PureC
1omponent=D,s.StrictMode=c,s.Suspense=ge,s.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=d,s.__COMPILER_RUNTIME={__proto__:null,c:function(e){return d.H.useMemoCache(e)}},s.cache=function(e){return function(){return e.apply(null,arguments)}},s.cacheSignal=function(){return null},s.cloneElement=function(e,n,r){if(e==null)throw Error("The argument must be a React element, but you passed "+e+".");var i=Y({},e.props),l=e.key;if(n!=null)for(u in n.key!==void 0&&(l=""+n.key),n)!J.call(n,u)||u==="key"||u==="__self"||u==="__source"||u==="ref"&&n.ref===void 0||(i[u]=n[u]);var u=arguments.length-2;if(u===1)i.children=r;else if(1<u){for(var g=Array(u),m=0;m<u;m++)g[m]=arguments[m+2];i.children=g}return N(e.type,l,i)},s.createContext=function(e){return e={$$typeof:ue,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:f,_context:e},e},s.createElement=function(e,n,r){var i,l={},u=null;if(n!=null)for(i in n.key!==void 0&&(u=""+n.key),n)J.call(n,i)&&i!=="key"&&i!=="__self"&&i!=="__source"&&(l[i]=n[i]);var g=arguments.length-2;if(g===1)l.children=r;else if(1<g){for(var m=Array(g),p=0;p<g;p++)m[p]=arguments[p+2];l.children=m}if(e&&e.defaultProps)for(i in g=e.defaultProps,g)l[i]===void 0&&(l[i]=g[i]);return N(e,u,l)},s.createRef=function(){return{current:null}},s.forwardRef=function(e){return{$$typeof:de,render:e}},s.isValidElement=L,s.lazy=function(e){return{$$typeof:K,_payload:{_status:-1,_result:e},_init:ve}},s.memo=function(e,n){return{$$typeof:pe,type:e,compare:n===void 0?null:n}},s.startTransition=function(e){var n=d.T,r={};d.T=r;try{var i=e(),l=d.S;l!==null&&l(r,i),typeof i=="object"&&i!==null&&typeof i.then=="function"&&i.then(G,X)}catch(u){X(u)}finally{n!==null&&r.types!==null&&(n.types=r.types),d.T=n}},s.unstable_useCacheRefresh=function(){return d.H.useCacheRefresh()},s.use=function(e){return d.H.use(e)},s.useActionState=function(e,n,r){return d.H.useActionState(e,n,r)},s.useCallback=function(e,n){return d.H.useCallback(e,n)},s.useContext=function(e){return d.H.useContext(e)},s.useDebugValue=function(){},s.useDeferredValue=function(e,n){return d.H.useDeferredValue(e,n)},s.useEffect=function(e,n){return d.H.useEffect(e,n)},s.useEffectEvent=function(e){return d.H.useEffectEvent(e)},s.useId=function(){return d.H.useId()},s.useImperativeHandle=function(e,n,r){return d.H.useImperativeHandle(e,n,r)},s.useInsertionEffect=function(e,n){return d.H.useInsertionEffect(e,n)},s.useLayoutEffect=function(e,n){return d.H.useLayoutEffect(e,n)},s.useMemo=function(e,n){return d.H.useMemo(e,n)},s.useOptimistic=function(e,n){return d.H.useOptimistic(e,n)},s.useReducer=function(e,n,r){return d.H.useReducer(e,n,r)},s.useRef=function(e){return d.H.useRef(e)},s.useState=function(e){return d.H.useState(e)},s.useSyncExternalStore=function(e,n,r){return d.H.useSyncExternalStore(e,n,r)},s.useTransition=function(){return d.H.useTransition()},s.version="19.2.4",s}var te;function Te(){return te||(te=1,R.exports=Se()),R.exports}var O=Te();const Ke=ke(O);function Pe(){try{return localStorage.getItem("neona-locale")||null}catch{return null}}let A=Pe()||"ko";const _=new Set;function Ce(){_.forEach(t=>t())}function We(t,a=!0){if(A=t,a)try{localStorage.setItem("neona-locale",t)}catch{}Ce()}function Ee(){return A}function je(){return O.useSyncExternalStore(t=>(_.add(t),()=>_.delete(t)),()=>A,()=>A)}const De={"footer.ucEducation":"English Education","footer.ucCustomerSupport":"AI Voice Support","footer.ucSalesOutbound":"AI Outbound Sales","footer.ucAppointment":"AI Appointment Booking","footer.ucHealthcare":"AI Clinic Desk","footer.ucFinance":"AI Finance Support","footer.ucFood":"AI Storefront Phone","footer.ucRealestate":"AI Real Estate","footer.ucWellness":"AI Wellness Coaching","footer.ucGaming":"AI Game NPC","footer.ucAll":"All use cases →","uc.edu.docTitle":"AI English Conversation Tutor — add a voice AI agent to your learning service","uc.edu.navHome":"Home","uc.edu.navUseCases":"Use Cases","uc.edu.eyebrow":"USE CASE · English Education","uc.edu.h1":"Add an AI English conversation tutor to your learning service","uc.edu.lead":"With Neona, add a real-time voice English tutor to your academy, edtech, or app. Learners practice speaking 24/7 without limits and get instant correction and phrasing suggestions on every utterance. Connect your textbook or curriculum, configure the persona with no code, and embed via API or widget.","uc.edu.heroCta":"Hear a tutor demo","uc.edu.trust":"Voice AI by Neosapience, makers of Typecast · 3M+ users · 225 countries","uc.edu.scenEyebrow":"Practice","uc.edu.scenTitle":"Practice these situations in English","uc.edu.scenList":"Ordering at a cafe,Job interview,Immigration check,Business meeting,Travel conversation,Phone calls,Presentations,Daily small talk","uc.edu.whyHeadline":"No speaking practice means stalled outcomes and retention","uc.edu.whySub":"Human tutors are expensive and hard to scale. An AI voice tutor gives learners unlimited speaking practice 24/7, lifting outcomes and retention — without the operational load.","uc.edu.featEyebrow":"Why it works","uc.edu.featTitle":"English that grows as you speak","uc.edu.feat1Title":"Speaking-first","uc.edu.feat1Desc":"You learn by speaking out loud, not just listening — the speaking-first method that gets you talking.","uc.edu.feat2Title":"Instant correction","uc.edu.feat2Desc":"Every utterance gets real-time correction of pronunciation, grammar, and phrasing, with more natural alternatives.","uc.edu.feat3Title":"24/7, unlimited","u
1c.edu.feat3Desc":"Practice anytime, as much as you want, with zero pressure and no limits.","uc.edu.tryEyebrow":"Try it","uc.edu.tryTitle":"Start an English conversation right now","uc.edu.tryBody":"Press the button below to start a real call with the AI English tutor. No sign-up required.","uc.edu.tryCta":"Start a test call →","uc.edu.usesEyebrow":"Use cases","uc.edu.usesTitle":"Ready for these learning scenarios","uc.edu.case1Num":"01 · English conversation","uc.edu.case1Title":"A conversation tutor for real-world speaking","uc.edu.case1Desc":"Practice speaking with situational role-play. Get instant correction and phrasing suggestions on every utterance, with unlimited repetition.","uc.edu.case1Tags":"Role-play,Pronunciation & phrasing,Level adaptive","uc.edu.case2Num":"02 · Test prep","uc.edu.case2Title":"A prep coach that pinpoints weak spots","uc.edu.case2Desc":"Work through past questions by voice, explain mistakes, and drill similar question types.","uc.edu.case2Tags":"Past questions,Mistake review,Type drills","uc.edu.case3Num":"03 · Preview & review","uc.edu.case3Title":"A study companion before and after class","uc.edu.case3Desc":"Reads the textbook to preview key points before class and runs 1:1 sessions to check understanding afterward.","uc.edu.case3Tags":"Key summary,Comprehension check,Tailored feedback","u
1c.edu.howEyebrow":"How it works","uc.edu.howTitle":"Start in 3 steps","uc.edu.codeTitle":"Embed in one line on web or app","uc.edu.howBody":"1) Connect your textbook, script, or curriculum. 2) Set the persona (tone, role, difficulty). 3) Embed into your LMS, website, or app via API or web widget. STT, LLM, and TTS run as one pipeline for natural turn-taking and barge-in.","uc.edu.step1Title":"Connect material","uc.edu.step1Desc":"Upload and connect your textbook, lesson script, or curriculum.","uc.edu.step2Title":"Set the persona","uc.edu.step2Desc":"Choose tone, role, and difficulty to shape the tutor's character — no code required.","uc.edu.step3Title":"Embed","uc.edu.step3Desc":"Add it to your LMS, website, or app via API or web widget. STT, LLM, and TTS run as one pipeline for natural turn-taking and barge-in.","uc.edu.faqEyebrow":"FAQ","uc.edu.faqTitle":"Frequently asked questions","uc.edu.faq1Q":"What is an AI voice education agent?","uc.edu.faq1A":"An AI tutor that reads your textbook or lesson script and talks with learners by voice in real time. Instead of replaying content one-way, it runs preview, review, and 1:1 practice tailored to each learner's level and questions.","uc.edu.faq2Q":"Which languages are supported?","uc.edu.faq2A":"It supports multilingual voice conversation including Korean and English, plus Japanese, French, Spanish, and Chinese. You can build an English conversation tutor or a Korean instructor on the same platform.","uc.edu.faq3Q":"Can I use my own textbook or curriculum?","uc.edu.faq3A":"Yes. Connect your textbook, lesson script, or curriculum and the agent explains, answers questions, and runs practice based on it — with no coding.","uc.edu.faq4Q":"Does it scale to many students at once?","uc.edu.faq4A":"It can run many real-time voice sessions concurrently, giving every learner unlimited repeated practice and individual feedback.","uc.edu.faq5Q":"How do I add it to my website or app?","uc.edu.faq5A":"Add a voice tutor to your existing LMS, website, or app via API or a web widget embed — the widget can be added with a single snippet.","uc.edu.relatedTitle":"Explore other use cases","uc.edu.ctaTitle":"Add a voice AI tutor to your learning service","uc.edu.contactBtn":"Talk to sales","uc.edu.ctaNote":"Try instantly — no sign-up, no credit card","nav.dashboard":"Dashboard","nav.agents":"Agents","nav.sessions":"Sessions","nav.apiKeys":"API keys","nav.docs":"Docs","nav.contact":"Contact","nav.pricing":"Pricing","nav.team":"Team","nav.logOut":"Log out","dashboard.title":"Overview","dashboard.desc":"Usage, sessions, and system health across all your voice agents.","dashboard.dateRange":"Date range","dashboard.last7d":"7 days","dashboard.last30d":"30 days","dashboard.last90d":"90 days","dashboard.custom":"Custom","dashboard.perAgent":"Per-agent usage","dashboard.agent":"Agent","dashboard.avgDuration":"Avg duration","dashboard.noUsageData":"No usage data for this period.","dashboard.anomalyAlert":"session(s) this month have approximated or estimated durations — review before settlement.","agents.title":"Agents","agents.desc":"Create, configure, and manage your voice agents.","agents.edit":"Edit","agents.delete":"Delete","agents.confirmDelete":"Delete this agent?","agents.deactivate":"Deactivate","agent.activateAgent":"Activate agent","agent.deleteForever":"Delete permanently","agents.activate":"Activate","agents.confirmDeactivate":"Deactivate this agent? It stays in the list and can be re-activated.","agents.confirmHardDelete":"Permanently delete? It disappears from every list and cannot be undone.","sessions.title":"Sessions","sessions.desc":"View and monitor voice sessions across all your agents.","sessions.anomalyFilter":"Filtered to billing anomalies","apiKeys.title":"API keys","apiKeys.desc":"Issue keys for server-side calls or browser widgets. Keys are shown once on creation.","account.title":"Account","account.desc":"Manage your profile, password, and account settings.","pricing.title":"Pricing & usage","pricing.desc":"Monitor your usage and manage your plan.","pricing.currentPlan":"Current plan","pricing.sessionsUsed":"Sessions used","pricing.minutesUsed":"Minutes used","pricing.unlimited":"Unlimited","pricing.perMonth":"/month","pricing.upgrade":"Upgrade","pricing.talkToSales":"Talk to sales","pricing.usageWarning":"You have used {pct}% of your monthly session quota.","pricing.usageLimitReached":"Monthly session limit reached. Upgrade your plan to continue.","pricing.maxAgents":"Max agents","pricing.maxConcurrent":"Max concurrent sessions","pricing.maxSessions":"Max sessions/month","pricing.maxApiKeys":"Max API keys","pricing.free":"Free","pricing.thisMonth":"This month","stat.minutesThisMonth":"Minutes this month","stat.sessions":"Sessions","stat.sessionsThisMonth":"Sessions this month","stat.activeAgents":"Active agents","stat.activeNow":"Active now","
1stat.totalAgents":"Total agents","stat.totalKeys":"Total keys","stat.apiSecrets":"API secrets","stat.widgetKeys":"Widget keys","stat.lastUsed":"Last used","action.newAgent":"+ New agent","action.manageAgents":"Manage agents","action.issueKey":"Issue key","action.authGuide":"Auth guide","action.startCall":"Start call","action.startChat":"Start chat","newAgent.chatAgent":"Chat Agent (text only)","agents.chatBadge":"Chat","chat.test.eyebrow":"Chat test","chat.test.desc":"Text rehearsal with this agent. Conversations here never reach the consultation inbox.","chat.test.aiBadge":"AI","chat.test.aiBadgeHint":"Responses are generated by AI","chat.test.introBody":"Chat with this agent exactly as a visitor would in the widget — same prompt, same model. Start whenever you are ready.","chat.test.start":"Start chat test","chat.test.placeholder":"Type a message…","chat.test.send":"Send","chat.test.end":"End test","chat.test.ended":"Test ended.","chat.test.back":"Back to agent","chat.test.turnLimit":"This session reached its turn limit. End the test and start a new one.","chat.test.typing":"Agent is typing","chat.test.restart":"Restart test","chat.test.widgetNote":"This is the exact widget visitors see — same bubbles, streaming, and typing indicator. Each run starts a fresh session.","chat.test.error.start":"Could not start the chat test. Please try again.","chat.test.error.send":"Could not get a reply. Your message was kept — try again.","chat.test.error.agent":"Could not load this agent.","chat.test.code.session_ended":"This session has ended.","chat.test.code.turn_limit_reached":"This session reached its turn limit.","chat.test.code.llm_failed":"The model failed to reply. Please try again.","chat.test.code.llm_not_configured":"Chat LLM is not configured for this environment.","chat.test.code.rate_limit_exceeded":"Too many requests — please wait a moment.","chat.test.code.message_invalid":"This message cannot be sent (empty or too long).","action.startOutbound":"Outbound call","action.startOutboundCall":"Place call","action.save":"Save changes","action.cancel":"Cancel","action.close":"Close","action.back":"Back","action.next":"Next","action.create":"Create","action.delete":"Delete","action.restore":"Restore","action.deactivate":"Deactivate","action.retry":"Retry","action.talkToUs":"Talk to us","action.talkToSales":"Talk to sales","cookie.message":"Neona uses cookies to analyze site usage, measure ad performance, and show personalized ads. If you accept, cookie identifiers, visit and usage records, and the email address or phone number you enter on the site (in hashed form) are transferred to and processed by Google LLC (United States). You can use the site without accepting. See our Privacy Policy for details.","cookie.privacy":"Privacy Policy","cookie.accept":"Accept","cookie.decline":"Decline","cookie.settingsLabel":"Cookie consent","cookie.settingsDesc":"Allow analytics and advertising cookies","quick.createAgent":"Create an agent","quick.createAgentDesc":"Start from a template or from scratch.","quick.browseApi":"Browse the API","quick.browseApiDesc":"REST, WebRTC, webhooks.","quick.issueKey":"Issue an API key","quick.issueKeyDesc":"Server or widget tokens.","quick.talkToUs":"Talk to us","quick.talkToUsDesc":"Questions, feedback, or enterprise inquiries.","auth.welcomeBack":"Welcome back","auth.signIn":"Sign in to your Neona account.","auth.createAccount":"Create your account","auth.createAccountDesc":"A workspace and a starter agent will be set up for you.","auth.noAccount":"No account?","auth.createOne":"Talk to sales","auth.noAccountSuffix":" and we will open one for you.","auth.alreadyHave":"Already have an account?","auth.logIn":"Log in","auth.email":"Email","auth.password":"Password","auth.fullName":"Full name","auth.workEmail":"Work email","auth.rememberMe":"Remember me","auth.forgotPassword":"Forgot password?","auth.signUpGoogle":"Sign up with Google","auth.signInGoogle":"Sign in with Google","auth.googleSigningIn":"Signing you in…","auth.googleSignInFailed":"Google sign-in didn't complete","auth.accountNotFound":"No Neona Agents account is linked to this email. **Talk to sales** below and we will open one for you.","auth.invalidCredentials":"Invalid email or password. If you do not have an account yet, **talk to sales** below and we will open one for you.","auth.loginFailed":"We couldn't sign you in. Check your connection and try again.","auth.inviteRequiredNotice":"Sign-up needs an invite link. Contact us and we will send you one.","auth.redirectingToContact":"Taking you to the contact form…","auth.googlePopupBlocked":"Your browser blocked the sign-in window. Allow pop-ups for this site and try again.","auth.googleTermsNotice":"By continuing with Google you agree to our","auth.or":"or","auth.agreeTerms":"I agree to the","auth.termsOfService":"Terms of Service","auth.and":"and","auth.privacyPolicy":"Privacy Policy","contact.title":"Talk to sales","contact.eyebrow":"Contact","contact.name":"Name","contact.email":"Email","contact.company":"Company","contact.phone":"Phone","contact.message":"Message","contact.privacyAgree":"I agree to the collection and use of personal information.","contact.submit":"Submit inquiry","contact.success":"Thank y
1ou!","contact.successDesc":"Your inquiry has been received. We will contact you soon.","contact.close":"Close","contact.required":"(required)","contact.namePlaceholder":"John Doe","contact.companyPlaceholder":"Company","contact.phonePlaceholder":"+1-000-000-0000","contact.inquiryType":"What do you need?","contact.inquiryTypePlaceholder":"Select one (optional)","contact.messagePlaceholder":"Tell us about your questions or inquiry.","contact.errorPrivacy":"Please agree to the privacy policy.","contact.errorRequired":"Name, email, company and phone are required.","contact.errorEmail":"Please enter a valid email address.","contact.errorGeneric":"Failed to submit. Please try again later.","auth.editorialQuote":`"What customers remember isn't the response speed — it's the feeling that their words truly reached someone."`,"misc.loading":"Loading…","misc.noData":"No data yet","misc.vsLast":"vs last","misc.published":"published","misc.live":"live","misc.activeCalls":"active calls","misc.region":"region · ap-northeast-2 · seoul","misc.recentSessions":"Recent sessions","misc.viewAll":"View all →","misc.viewSessions":"View sessions","misc.minutesLast30":"Minutes · last 30 days","misc.minutes":"minutes","misc.noSessions":"No sessions yet","misc.noAgents":"No agents yet","misc.createFirst":"Create your first voice agent to get started.","keys.issueNew":"Issue new key","keys.keyCreated":"Key created — copy it now","keys.copyKey":"Copy key","keys.expiresLabel":"Expires","keys.shownOnce":"This is the only time the full key is shown.","keys.active":"active","keys.serverSide":"server-side","keys.browserDomainBound":"browser, domain-bound","keys.mostRecentActivity":"most recent activity","keys.noActivityYet":"no activity yet","keys.searchKeys":"Search keys…","keys.loadingKeys":"Loading…","keys.loadError":"Failed to load API keys. Please try again.","keys.noKeysYet":"No keys yet. Issue your first key above.","keys.noKeysMatch":"No keys match your filter.","keys.keyName":"Key name","keys.keyNamePlaceholder":"e.g. Production server","keys.keyType":"Key type","keys.apiSecret":"API secret","keys.widgetKey":"Widget key","keys.apiSecretDesc":"Server-side, keep private","keys.widgetKeyDesc":"Browser, domain-restricted","keys.allowedDomains":"Allowed domains","keys.domainsHint":"Comma-separated. Supports wildcards like *.example.com.","keys.domainsPlaceholder":"*.example.com, app.example.com","keys.expiration":"Expiration","keys.never":"Never","keys.30days":"30 days","keys.90days":"90 days","keys.1year":"1 year","keys.creating":"Creating…","keys.createKey":"Create key","keys.deactivating":"Deactivating…","keys.confirmDeactivateDesc":"This action is permanent. Type the key name to confirm.","keys.rename":"Rename","keys.saving":"Saving…","keys.domains":"Domains","keys.created":"Created","keys.inactive":"inactive","newAgent.breadcrumb":"Agents → New agent","newAgent.title":"Create an agent","newAgent.desc":"Set up a new voice AI agent. You can adjust all settings after creation.","newAgent.stepBasics":"Basics",Flow:"Flow",Save:"Save","Saving...":"Saving...","Save failed":"Save failed",Clear:"Clear","agent.voiceAgentFromFlow":"Voice Agent (built as a flow)","flow.retiredEyebrow":"Single prompt","flow.retiredTitle":"This agent now answers from a single prompt","flow.retiredBody":"The engine no longer runs saved flows — every call is handled by one prompt. Set what this agent should say in the Conversation tab.","flow.retiredEyebrowUrgent":"Setup needed","flow.retiredTitleUrgent":"This agent has no instructions yet","flow.retiredBodyUrgent":"Its instructions used to live inside the flow, and the engine no longer reads flows — so this agent is answering calls with nothing to go on. Write its instructions in the Conversation tab.","flow.retiredPrevious":"The flow had {count} steps:","flow.retiredCta":"Go to Conversation","newAgent.stepConversation":"Prompt","newAgent.stepVoice":"Voice","newAgent.stepReview":"Review","newAgent.identity":"Identity","newAgent.identityDesc":"How your agent shows up in the dashboard.","newAgent.name":"Name","newAgent.agentType":"Agent type","newAgent.voiceAgent":"Single Agent","newAgent.description":"Description","newAgent.primaryLang":"Primary language","newAgent.templateDesc":"Start from a blueprint or from scratch.","newAgent.blankDesc":"Start from scratch.","newAgent.supportDesc":"Handle refund, delivery, account questions.","newAgent.outboundDesc":"Renewal reminders and surveys.","newAgent.conversation":"Conversation","newAgent.conversationDesc":"Shape how the agent thinks and opens the call.","newAgent.systemPrompt":"System prompt","newAgent.systemPromptHint":"Defines the agent's personality and behavior. Use {{variable}} for runtime substitution.","newAgent.greeting":"Greeting","newAgent.greetingHint":"First line spoken when a session starts.","newAgent.voice":"Voice","newAgent.voiceDesc":"The character your agent speaks with.","newAgent.selectVoice":"Click to select a voice","newAgent.selectBaramCharacter":"Select an avatar character","newAgent.change":"Change","newAgent.models":"Models","newAgent.modelsDesc":"The stack behind the conversation.","newAgent.sttProvider":"STT provider","newAgent.llmProvider":"LLM provider","newAgent.llmModel":"LLM model","newAgent.reviewTitle":"Review","newAgent.reviewDesc":"Last look before we provision it.","newAgent.nameRequired":"Agent name is required","newAgent.systemPromptRequired":"System prompt is required","newAgent.continue":"Continue →","newAgent.createAgent":"Create agent →","newAgent.livePreview":"Live preview","newAgent.previewNote":"This is a static preview of how your agent will appear. No live session is created.","account.profile":"Profile","account.profileDesc":"Your display name shown in the app.","account.name":"Name","account.profileImage":"Profile image URL","account.saved":"Saved.","account.preferences":"Preferences","account.preferencesDesc":"Customize your experience.","account.language":"Language","account.changePassword":"Change password","account.changePasswordDesc":"All existing sessions will be signed out after a successful change.","account.currentPassword":"Current password","account.newPassword":"New password","account.newPasswordHint":"At least 8 characters.","account.confirmPassword":"Confirm new password","account.passwordChanged":"Password changed.","account.passwordsNoMatch":"New passwords do not match.","account.passwordTooShort":"New password must be at least 8 characters.","account.deleteAccount":"Delete account","account.deleteDesc":"Permanently delete your account. Your personal information will be removed, but some records (such as past invoices) are retained as required by law. This action cannot be undone.","account.deleteConfirmDesc":"This cannot be undone. To confirm, type your email and enter your current password.","account.typeEmail":"Type your email to confirm","account.deleteButton":"Delete my account","account.deletePermanent":"Permanently delete account","account.emailNoMatch":"Email does not match.","account.passwordRequired":"Password required.","apiDoc.logIn":"Log in","apiDoc.getStarted":"Get started","apiDoc.apiRef":"API Reference","apiDoc.heroTitle":"Build voice AI agents with Neona.","apiDoc.heroSub":"REST endpoints for creating agents, browsing voices, and starting live voice sessions.","apiDoc.questions":"Questions?","apiDoc.contactUs":"Contact us →","auth.continueGoogle":"Continue with Google","auth.remember30":"Remember me for 30 days","auth.logInButton":"Log in","auth.createAccountButton":"Create account","auth.agreeTermsError":"Please agree to the Terms of Service and Privacy Policy.","auth.passwordMin8":"Password must be at least 8 characters.","auth.passwordHint":"At least 8 characters.","auth.birthdate":"Date of birth","auth.birthdateHint":"You must be at least 14 to sign up.","auth.birthdateRequired":"Please enter your date of birth.","auth.underageError":"You must be at least 14 years old to sign up.","landing.hero":"Voice infrastru
1cture for the","landing.heroAccent":"modern internet","landing.heroSub":"Ship production-grade voice AI agents with a single API. No transcription pipeline, no TTS stack, no infrastructure to manage — just an agent that speaks, listens, and gets things done.","landing.startBuilding":"Start building — free","landing.documentation":"Documentation","landing.signIn":"Sign in","landing.pricing":"Pricing","landing.pricingTitle":"Beta","landing.pricingDesc":"Neona is currently in beta. All features are available for free during the beta period. For enterprise inquiries or custom plans, reach out to our team.","landing.howItWorks":"How it works","landing.threeSteps":"Three steps to go live","landing.threeStepsDesc":"Create an agent, generate a widget, and deploy to your site. That's it.","landing.useCases":"Use cases","landing.useCasesTitle":"Built for every voice touchpoint","landing.voices":"Voices","landing.voicesTitle":"Natural voices in 500+ styles","landing.voicesDesc":"Choose from a library of expressive, low-latency voices across 28 languages — or bring your own with voice cloning.","landing.readyToShip":"Ready to ship your first voice agent?","landing.noCardRequired":"Sign up in seconds. No credit card required.","landing.talkToSales":"Talk to sales","landing.privacy":"Privacy","landing.terms":"Terms","shareLinks.title":"Share links","shareLinks.desc":"Generate a link to let anyone test this agent — no login required.","shareLinks.create":"Create link","shareLinks.namePlaceholder":"Link name (e.g. Demo for client A)","shareLinks.copyLink":"Copy link","shareLinks.deactivate":"Deactivate","shareLinks.deactivateConfirm":"Deactivate this share link?","shareLinks.noLinks":"No share links yet.","shareLinks.untitled":"Untitled link","try.unavailable":"This link is no longer available.","try.unavailableDesc":"The share link has been deactivated or does not exist.","try.backHome":"Back to home","try.startCall":"Start call","try.startChat":"Start chat","try.endCall":"End call","try.connecting":"Connecting…","try.connected":"Connected","try.speaking":"Agent speaking","try.listening":"Listening…","try.ended":"Call ended","try.tryAgain":"Try again","try.poweredBy":"Powered by Neona","team.title":"Team","team.desc":"Manage team members and roles.","team.invite":"Invite member","team.inviteDesc":"Add a team member by email.","team.email":"Email address","team.role":"Role","team.owner":"Owner","team.admin":"Admin","team.member":"Member","team.remove":"Remove","team.removeConfirm":"Remove this member from the team?","team.memberCount":"{count} / {max} members","team.pending":"Pending","team.active":"Active","team.noMembers":"No team members yet.","team.inviteSent":"Invitation sent.","team.memberAdded":"Member added.","tab.overview":"General","tab.flow":"Flow","tab.conversation":"Prompt","tab.voice":"Voice","tab.settings":"Settings","tab.evaluation":"Evaluation","tab.deploy":"Deploy","tab.history":"History","deploy.channelWidget":"Website widget","deploy.badgeOneLine":"One script tag","deploy.badgeDev":"For developers","deploy.intro":"Ways to put this agent in front of users — share a link (no code), embed the widget (one script tag), or integrate via the REST API.","agent.totalSessions":"Total sessions","agent.allTime":"All time","agent.avgDuration":"Avg duration","agent.perSession":"Per session","agent.dropRate":"Drop rate","agent.last30d":"Last 30 days","agent.totalMinutes":"Total minutes","agent.notFound":"Agent not found.","agent.loadError":"Unable to load agent — please try again.","agent.updateFailed":"Update failed","agent.actionFailed":"Couldn't complete that — try again","agent.settings":"Settings","agent.openSettings":"Open settings tab","agent.integration":"Integration","agent.integrationDesc":"Start a session from your server with a single API call.","agent.viewApiDocs":"View API docs","agent.manageApiKeys":"Manage API keys","agent.conversationConfig":"Conversation config","agent.systemPrompt":"System prompt","agent.systemPromptHint":"Defines the agent's personality and behavior. Use {{variable}} for runtime substitution.","agent.silenceNudge":"Speak first when the caller goes quiet","agent.silenceNudgeHint":"The agent re-opens the conversation after a stretch of silence instead of waiting indefinitely. Useful for tutoring and guided flows; leave it off for agents that hand off to a human, since it also speaks while the caller waits on hold.","agent.silenceNudgeDelay":"Silence before each nudge (sec)","agent.silenceNudgeDelayHint":'Comma-separated, one entry per attempt — "3, 5, 7" nudges after 3s, then 5s, then 7s, then stays quiet (or hangs up if auto hang-up is on). Up to 5 entries, each 1–60s, measured from the end of the last speech (agent or caller). Leave empty to follow the platform default.',"agent.silenceNudgeDelayPlaceholder":"Platform default (e.g. 3, 5, 7)","agent.silenceAutoEnd":"Hang up when the caller never answers","agent.silenceAutoEndHint":"After the last nudge goes unanswered, the agent says a closing line and ends the call. Keep it off for agents that hand off to a human.","agent.silenceAutoEndDelay":"Silence after the last nudge before hanging up (sec)","agent.silenceAutoEndDelayHint":"1–120 seconds, measured from the end of the last nudge. Leave empty to follow the platform default (10s).","agent.silenceAutoEndDelayPlaceholder":"Platform default (10)","agent.silenceAutoEndMessage":"Closing line","agent.silenceAutoEndMessageHint":"Spoken right before the call ends. Leave empty to use the platform default for the agent language.","agent.retentionTitle":"Call records","agent.retentionHint":"What this agent keeps after a call ends. All on by default. Turn audio and traces off for public demo agents to match the privacy policy; the transcript alone still powers the demo report.","agent.retentionAudio":"Record call audio","agent.retentionAudioHint":"Saves caller, agent, human-operator (when handed off) and stereo WAV files to storage at the end of the call.","agent.retentionTranscript":"Keep the transcript","agent.retentionTranscriptHint":"Stores the conversation text on the session. Off also removes the transcript view, on-demand evaluation and the demo report. Keep it on for agents that hand off to a human — the contact-center case is built from this transcript.","agent.retentionTrace":"Export LLM traces","agent.retentionTraceHint":"Sends per-turn LLM, STT and TTS traces (with full text) to the observability tool for latency and quality debugging.","agent.silenceAutoEndMessagePlaceholder":"e.g. I haven't heard back, so I'll end the call now.","agent.voiceTts":"Voice / TTS","agent.noVoice":"No voice selected","agent.changeVoice":"Change voice","agent.voiceSpeed":"Speaking speed","agent.voiceSpeedHint":"Overall playback speed of the agent voice. 0.5–2.0, default 1.0.","agent.voiceLoudness":"Output loudness","agent.voiceLoudnessHint":"Target loudness in LUFS (−70 to 0). Higher is louder. Off means no normalization — the voice plays at its original level.","agent.backgroundAudio":"Backgroun
1d ambience","agent.backgroundAudioOff":"Off","agent.backgroundAudioLoading":"Loading clips…","agent.backgroundAudioInactive":"inactive","agent.backgroundAudioPreview":"Preview background ambience","agent.backgroundAudioVolume":"Background ambience volume","agent.backgroundAudioHint":"Plays a soft ambient track under the call (e.g. office chatter) so silence doesn't feel like a dropped line. Over 100% amplifies the clip (useful on narrowband phone calls); very high values may distort.","agent.backgroundAudioDucking":"Soften while the agent speaks (ducking)","agent.backgroundAudioDuckingHint":"Ducking gently lowers the ambience under the agent's voice and restores it between turns.","agent.chooseVoice":"Choose voice","agent.general":"General","agent.name":"Name","agent.description":"Description","agent.descPlaceholder":"What does this agent do?","agent.language":"Language","agent.phoneNumber":"Inbound phone number","agent.phoneNumberNone":"Not connected","agent.phoneNumberInUse":"in use by {name}","agent.phoneNumberEmpty":"No numbers allocated to your organization — contact us to request one.","agent.phoneNumberDetached":"no longer allocated to your organization","agent.agentType":"Agent type","agent.maxSessionDuration":"Max session duration (min)","agent.maxSessionDurationHint":"Hard cap per session. Cron force-ends sessions exceeding this. 1–1440 (24h). Default 5.","agent.sessionExpiry":"Session expiry (min)","agent.sessionExpiryHint":"How long a created-but-unconnected session and its join token stay valid before expiring. 1–30 min. Default 5.","agent.agentId":"Agent ID","agent.agentIdHint":"Use this identifier in API calls to reference this agent.","agent.dangerZone":"Danger zone","agent.dangerDesc":"Permanently deactivate this agent. Active sessions will be terminated.","agent.deactivateAgent":"Deactivate agent","agent.areYouSure":"Are you sure?","agent.confirmDeactivate":"Confirm deactivate","version.justNow":"just now","version.minutesAgo":"{n}m ago","version.hoursAgo":"{n}h ago","version.daysAgo":"{n}d ago","version.history":"Version history","version.count":"versions","version.loading":"Loading versions…","version.empty":"No version history yet. Versions are created automatically when you save changes.","version.label":"Version","version.current":"current","version.deleteConfirm":"Delete this version?","ui.copy":"Copy","ui.copied":"Copied!","cmd.goTo":"Go to","cmd.create":"Create","cmd.searchPlaceholder":"Type a command or search…","cmd.noResults":"No results","lang.koKR":"Korean (ko-KR)","lang.enUS":"English (en-US)","lang.enGB":"English (en-GB)","lang.jaJP":"Japanese (ja-JP)","newAgent.createFailed":"Create failed","newAgent.namePlaceholder":"e.g. English Tutor","newAgent.reviewName":"Name","newAgent.reviewType":"Type","newAgent.reviewLang":"Language","newAgent.reviewVoice":"Voice","newAgent.untitled":"Untitled agent","newAgent.ready":"ready","newAgent.previewAgent":"Agent","newAgent.previewCaller":"Caller","newAgent.previewGreeting":"Hi! How can I help you today?","agents.sort":"Sort","agents.sortUpdated":"Last updated","agents.sortName":"A–Z","agents.loadError":"Failed to load agents. Please try again.","agents.createNew":"Create manually","agents.autoGenerate":"AI auto-generate (Beta)","agents.createAnother":"Create another agent","agents.filterAll":"All","agents.filterPublished":"Published","agents.filterDraft":"Draft","agents.publishedLive":"{n} live","agents.colAgent":"Agent","agents.colId":"ID","agents.colLanguage":"Language","agents.colCreated":"Created","sessions.colAgent":"Agent","sessions.colParticipant":"Participant","sessions.colStatus":"Status","sessions.colDuration":"Duration","sessions.colTime":"Time","sessions.qualityScore":"Quality score","sessions.loadMore":"Load more","sessions.channelVoice":"Voice","sessions.filterAll":"All","sessions.statusCreated":"Created","sessions.statusConnected":"Connected","sessions.statusActive":"Active","sessions.statusEnded":"Ended","sessions.statusExpired":"Expired","sessions.statusFailed":"Failed","sessions.channelChat":"Chat","sessions.colSource":"Source","sessions.colTurns":"Turns","sessions.chatSourceWidget":"Widget","sessions.chatSourceShare":"Share link","sessions.chatSourceConsole":"Test","sessions.chatHandoff":"Operator joined","sessions.chatHandoffRequested":"Operator requested","sessions.chatCallback":"Callback requested","sessions.noChatSessions":"No chat sessions yet.","sessions.chatLoadFailed":"Failed to load chat sessions.","chatDetail.eyebrow":"Chat session","chatDetail.back":"Back to sessions","chatDetail.loadFailed":"Failed to load this chat session.","chatDetail.empty":"No messages in this session.","chatDetail.turns":"turns","chatDetail.statusActive":"Active","chatDetail.statusEnded":"Ended","chatDetail.contact":"Contact","chatDetail.roleCustomer":"Visitor","chatDetail.roleAgent":"Agent","chatDetail.roleOperator":"Operator","chatDetail.endUserRequest":"Ended by visitor","chatDetail.endIdle":"Ended by inactivity","chatDetail.endTurnLimit":"Turn limit reached","chatDetail.endOperator":"Ended by operator","chatDetail.endUnknown":"Ended","sessions.callType":"Call topic (from the call record)","sessions.loadError":"Failed to load sessions.","sessionSummary.status":"Status","sessionSummary.duration":"Duration","sessionSummary.started":"Started","sessionSummary.ended":"Ended","sessionSummary.participant":"Participant","sessionSummary.sessionId":"Session ID","sessionSummary.transcript":"Transcript","sessionSummary.updating":"(updating…)","sessionSummary.noTranscript":"No transcript available.","sessionSummary.startAgain":"Start again","sessionSummary.loading":"Loading…","sessionSummary.loadError":"Failed to load session.","agent.saved":"Saved ✓","agent.evalCriteria":"Evaluation criteria","agent.evalTabDesc":"Settings for the post-call quality evaluation. These do not affect the live conversation.","agent.evalDefaultTitle":"Default rubric (used when criteria is empty)","agent.evalDefault1":"Goal achievement (0-100): did the call achieve the goals the system prompt defines — judged by outcome, not effort. Unresolved/frustrated endings score low even if every rule was followed.","agent.evalDefault2":"Accuracy & policy (0-100): was the guidance factually correct and on-policy versus the system prompt.","agent.evalDefault3":"Strengths and guidance issues with quotes and severity (low/medium/high), plus a goal-gap flag (prompt coverage vs agent execution).","agent.evalDefault4":"Overall (0-100): reflects both axes and is capped at 60 when the goal went unmet.","agent.evalCriteriaPlaceholder":"e.g. The goal of this agent is completing a reservation. Score goal achievement below 50 when no reservation was made. Rate pricing misinformation as high severity.","agent.evalCriteriaHint":"Agent-specific criteria for the post-call quality evaluation. Leave empty to use the platform default rubric.","sessionSummary.info":"Session info","sessionSummary.extraction":"Call record","sessionSummary.extracting":"Creating call record… this appears shortly after the call ends.","sessionSummary.noExtraction":"No call record for this session — it was not created or did not complete.","sessionSummary.keyPoints":"Key points","sessionSummary.extractedBy":"Extracted by","sessionSummary.res.resolved":"Resolved","sessionSummary.res.unresolved":"Unresolved","sessionSummary.res.escalated":"Escalated","sessionSummary.res.abandoned":"Abandoned","sessionSummary.sent.positive":"Positive","sessionSummary.sent.neutral":"Neutral","sessionSummary.sent.negative":"Negative","sessionSummary.evaluation":"Quality evaluation","sessionSummary.noEvaluation":"No quality evaluation for this session — it was not run or did not complete.","sessionSummary.evaluating":"Evaluating… this appears shortly after the call ends.","sessionSummary.evaluatingNow":"Running evaluation… this can take up to a minute.","sessionSummary.runEvaluation":"Run evaluation","sessionSummary.reEvaluate":"Re-evaluate","sessionSummary.evaluateFailed":"Evaluation failed — you can try again.","sessionSummary.overallScore":"Overall","sessionSummary.goalAchievement":"Goal achievement","sessionSummary.gap.prompt_coverage":"Gap: prompt coverage","sessionSummary.gap.agent_execution":"Gap: agent execution","
1sessionSummary.accuracy":"Accuracy & policy","sessionSummary.strengths":"Strengths","sessionSummary.good":"Good","sessionSummary.guidanceIssues":"Guidance issues","sessionSummary.evaluatedBy":"Evaluated by","sessionSummary.sev.high":"High","sessionSummary.sev.medium":"Medium","sessionSummary.sev.low":"Low","earlyAccess.revoking":"Revoking your invite…","earlyAccess.revoked":"Your invite has been revoked.","earlyAccess.revokeError":"Something went wrong. The link may have expired.","session.liveConversation":"Live conversation","session.startError":"Failed to start session. Try again.","session.agentSpeaking":"Agent speaking","session.listening":"Listening…","session.connecting":"Connecting…","session.avatarConnecting":"Connecting avatar…","session.mute":"Mute","session.unmute":"Unmute","session.endCall":"End call","session.backToAgent":"← Back to agent","session.setupTitle":"Before you start","session.outboundSetupTitle":"Place an outbound call","session.destinationLabel":"Destination number","session.destinationHint":"E.164 format, e.g. +821012345678","session.trunkLabel":"SIP trunk ID","session.trunkHint":"The outbound trunk you were provisioned","session.callerIdLabel":"Caller ID (optional)","session.callerIdHint":"Number shown to the callee; leave blank to use the trunk default","session.invalidPhone":"Enter a valid E.164 number, e.g. +821012345678","session.dynamicVarsLabel":"Dynamic variables","session.dynamicVarsHint":"Values that replace {{key}} placeholders in this agent’s system prompt for this call only.","session.dynamicVarsDetected":"Pre-filled from {{…}} placeholders found in the prompt.","session.noDynamicVars":"This agent’s prompt has no {{placeholders}}. Add a key below to send a custom value, or just start the call.","session.varKeyPlaceholder":"key (e.g. user_name)","session.varValuePlaceholder":"value (e.g. Alice)","session.addVar":"+ Add variable","session.removeVar":"Remove variable","session.invalidVarKey":"Letters, numbers, and underscores only.","session.duplicateVarKey":"Duplicate key — the last value will be used.","session.loadingAgent":"Loading agent…","autoGen.breadcrumb":"AI auto-generate","autoGen.title":"Auto-generate agent","autoGen.desc":"Describe in one paragraph and AI will create a voice agent for you.","autoGen.createManually":"Create manually","autoGen.inputLabel":"What kind of conversation should this agent handle?","autoGen.inputPlaceholder":"e.g. A scenario where learners practice English for an airport immigration check. The agent acts as an immigration officer asking questions, and gives feedback on the learner's responses.","autoGen.inputHint":"Describe the scenario — who calls, why, and what the agent should do.","autoGen.submit":"Generate agent","autoGen.examples":"Example templates","autoGen.generating":"Creating your agent…","autoGen.generatingHint":"AI is generating the persona, voice, and system prompt. This takes about 10–20 seconds.","autoGen.result":"Generation result","autoGen.fieldName":"Name","autoGen.fieldRole":"Role","autoGen.fieldGreeting":"Greeting","autoGen.fieldTone":"Tone","autoGen.fieldUseCase":"Use case","autoGen.fieldSampleQueries":"Sample queries","autoGen.recommendedVoice":"Recommended voice","autoGen.noVoiceMatch":"No matching voice found. You can select one manually on the agent detail page.","autoGen.voiceUpdating":"Updating voice…","autoGen.stop":"Stop","autoGen.publish":"View agent","autoGen.reset":"Start over","autoGen.generateError":"Generation failed. Please try again.","autoGen.agentLanguage":"Agent language","autoGen.agentLanguageHint":"Choose the language your agent will speak.","autoGen.exEnglish":"English learning","autoGen.exEnglishText":'A scenario for practicing English at an airport immigration checkpoint. The agent plays an immigration officer asking questions like "What is the purpose of your visit?" and "How long will you stay?" The learner answers in English and receives feedback — encouraging even when mistakes are made, and correcting toward natural expressions.',"autoGen.exFaq":"FAQ support","autoGen.exFaqText":"A scenario where a customer calls an online store asking about delivery status, refunds, or exchanges. The agent verifies the order number and provides guidance. Delivery takes 2–3 days, refunds within 7 days, exch
1anges are free.","autoGen.exIntro":"Self intro","autoGen.exIntroText":"A scenario where the agent introduces a vocal coach on their behalf. When callers ask about lessons, pricing, or how to book, the agent answers. Specializes in vocal projection and mix voice technique, regular lessons at $60/session, first consultation free.","autoGen.female":"Female","autoGen.male":"Male","autoGen.youngAdult":"20s–30s","autoGen.middleAge":"30s–40s","autoGen.senior":"50s+","autoGen.remaining":"remaining","autoGen.quotaExhausted":"Auto-generation limit reached. Contact your administrator.","autoGen.preview":"Preview","autoGen.pickOtherVoice":"Choose a different voice","autoGen.voiceChangeAnytime":"You can change the voice anytime in agent settings.","autoGen.fieldSystemPrompt":"System Prompt","autoGen.chars":"chars","autoGen.publishError":"Failed to activate agent. Please try again.","autoGen.urlLabel":"Reference URL (optional)","autoGen.urlHint":"Enter a homepage or FAQ page URL to use its content as reference.","autoGen.edit":"Edit","autoGen.save":"Save","autoGen.cancel":"Cancel","autoGen.pickTemplate":"What kind of agent would you like to create?","autoGen.tplFaq":"FAQ / Support","autoGen.tplAppointment":"Appointment","autoGen.tplIntro":"Self introduction","autoGen.tplEducation":"Learning coach","autoGen.tplCustom":"Custom","autoGen.qIndustry":"What industry?","autoGen.qIndustryOpts":"IT / SaaS,Shopping mall,Cafe / Restaurant,Real estate,Education,Beauty / Salon","autoGen.qTopics":"What topics will it answer?","autoGen.qTopicsOpts":"Shipping / Returns,Price / Payment,Hours / Location,Service info,Account / Membership,Reservation / Cancellation","autoGen.qTone":"What tone should it use?","autoGen.qToneOpts":"Warm and friendly,Professional and trustworthy,Bright and energetic,Calm and polite","autoGen.qBusinessType":"What type of business?","autoGen.qBusinessTypeOpts":"Hair / Nail salon,Hospital / Dental,Restaurant,Hotel / Pension,Studio / Photography,Academy / PT","autoGen.qInfo":"What info should it provide?","autoGen.qInfoOpts":"Hours / Holidays,Menu / Services,Pricing,Location / Parking,Staff selection,Precautions","autoGen.qWho":"Who are you introducing?","autoGen.qWhoOpts":"Freelancer / Creator,Coach / Instructor,Artist / Musician,Entrepreneur,Expert / Consultant","autoGen.qHighlight":"What should it highlight?","autoGen.qHighlightOpts":"Bio / Career,Expertise,Portfolio / Works,Pricing / Booking,Contact / SNS","autoGen.qIntroTone":"What tone for the introduction?","autoGen.qIntroToneOpts":"Professional and composed,Warm and friendly,Confident and energetic,Humorous","autoGen.qSubject":"What subject or topic?","autoGen.qSubjectOpts":"English conversation,Korean,Japanese,Math,Coding,Business skills","autoGen.qAudience":"Who is the learner?","autoGen.qAudienceOpts":"Elementary school,Middle / High school,College student,Working professional,Senior,Foreigner","autoGen.qStyle":"Teaching style?","autoGen.qStyleOpts":"Conversation practice (roleplay),Quiz / Problem solving,Lecture-style explanation,Encouragement-focused","autoGen.confirmTitle":"Review & create","autoGen.confirmLang":"Language","autoGen.confirmComment":"How should the agent respond?","autoGen.confirmCommentPh":"e.g. Always answer in 2 sentences or less, speak casually, mention our free trial","autoGen.confirmCommentHint":"The more specific you are, the better the agent performs.","autoGen.confirmUrlLabel":"Add your website for a smarter agent","autoGen.confirmUrlHint":"The agent will learn your business info, hours, pricing, and FAQ from the page.","autoGen.confirmCreate":"Create agent","autoGen.confirmBack":"← Back","autoGen.templateBack":"← Choose template","autoGen.prevStep":"← Previous","autoGen.next":"Next","autoGen.selected":"Selected","autoGen.customInput":"Type your own","autoGen.customConfirm":"OK","autoGen.addUrl":"+ Add URL","autoGen.answerRequired":"Please select at least one option.","widget.title":"Widget embed","widget.desc":"Add a single script tag to your website to show a floating button. Click it to start a call with this agent.","widget.themeColor":"Theme color","widget.colorHint":"Use a hex color like #FE7E43.","widget.position":"Position","widget.posBottomRight":"Bottom right","widget.posBottomLeft":"Bottom left","widget.posCenter":"Bottom center","widget.cornerRadius":"Corner radius","widget.radiu
1sSharp":"Sharp","widget.radiusSoft":"Soft","widget.radiusRound":"Round","widget.radiusPill":"Pill","widget.showAgentName":"Show agent name","widget.muteButton":"Mute button","widget.liveTranscript":"Live transcript","widget.postCallRating":"Post-call rating","widget.whitelabel":"Whitelabel","widget.brandName":"Brand name","widget.brandNamePlaceholder":"Custom brand name (empty = agent name)","widget.logoUrl":"Logo URL","widget.logoUrlPlaceholder":"https://... (empty = default icon)","widget.hidePoweredBy":"Hide 'Powered by Neona' attribution","widget.saveSettings":"Save widget settings","widget.embedCode":"Embed code","widget.widgetKey":"Widget key","widget.noWidgetKey":"Issue a Widget key on the {link} page first (register your site domain as an allowed domain).","widget.apiKeysLink":"API Keys","widget.allowedDomains":"Allowed domains for this key: {domains}","widget.noDomains":"(none)","widget.copyCode":"Copy code","widget.replaceKeyHint":"Replace nsk_wgt_YOUR_KEY_HERE with the actual key you were given. Keys are shown only once at creation.","widget.preview":"Preview","widget.readyToTalk":"Ready to talk.","inspector.start":"Start","inspector.routerModel":"Router Model","inspector.routerModelHint":"LLM that decides which agent handles each turn","inspector.defaultVoice":"Default Voice","inspector.defaultVoiceHint":"All agents inherit this voice unless overridden individually","inspector.routingRules":"Routing Rules","inspector.addRule":"+ Add rule","inspector.rulePlaceholder":"When user asks for...","inspector.outputMode":"Output Mode","inspector.fullHistory":"Full History","inspector.lastMessage":"Last Message","inspector.fullHistoryHint":"Agents receive all conversation messages","inspector.lastMessageHint":"Agents receive only the last message","inspector.agent":"Agent","inspector.name":"Name","inspector.nameHint":"Lowercase, alphanumeric, underscores. Must start with a letter.","inspector.namePlaceholder":"lowercase_name","inspector.model":"Model","inspector.systemPrompt":"System Prompt","inspector.promptPlaceholder":"Describe this agent's role and behavior...","inspector.tools":"Tools","inspector.toolsHint":"Let this agent call tools during the conversation. Requires the matching deployment key to be set.","tools.webSearch.desc":"Web search (Brave/Tavily)","tools.readOnly":"read-only","tools.requiresKey":"Requires deployment key","tools.whenToUsePlaceholder":`When should this agent use it? e.g. "Search for prices, weather, news — don't say you don't know."`,"inspector.voice":"Voice","inspector.voiceHint":"Override the default voice for this agent (leave empty to inherit)","inspector.voiceInherit":"Default (inherit)","inspector.selectVoice":"Select voice...","inspector.confirm":"Confirm","inspector.removeAgent":"Remove Agent","inspector.handler":"Handler","inspector.selectHandler":"Select handler...","inspector.maxAttempts":"Max Attempts","inspector.vocabItems":"Vocabulary Items","inspector.wordPlaceholder":"Word (EN)","inspector.meaningPlaceholder":"Meaning (KO)","inspector.exprItems":"Expression Items","inspector.exprEnPlaceholder":"English","inspector.exprKoPlaceholder":"Korean","inspector.configJson":"Config (JSON)","inspector.invalidJson":"Invalid JSON","lp.nav.manifesto":"Manifesto","lp.nav.useCases":"Use Cases","lp.nav.how":"How it works","lp.nav.voices":"Voices","lp.nav.signin":"Sign in","lp.nav.early":"Early Access","lp.nav.switchTo":"Switch to Korean","lp.hero.eyebrow":"<b>EARLY ACCESS</b> · NOW OPEN · 2026","lp.hero.title":'Content that<br /><span class="coral">talks back.</span><span class="cursor"></span>',"lp.hero.lead":"The era of one-way content is over. Build <b>voice agents</b> that talk with your learners, engage your audience, and counsel your customers — agents that <b>tell stories</b>, not just play them.","lp.hero.emailPlaceholder":"[email protected]","lp.hero.meta1":"STT · LLM · TTS in one pipeline","lp.hero.meta2":"700+ character voices","lp.hero.meta3":"No-code","lp.hero.cardTag":"LIVE · Neona Agent","lp.hero.cardName":"Mia","lp.hero.cardRole":"English Tutor","lp.hero.cardPersona":"Persona · Friendly, Encouraging","lp.hero.cardTranscript":"Hey! Let's go over what we'll learn today. Ready to try ordering a coffee in English?","lp.cta.request":"Request Early Access","lp.trust.label":"Powered by <b>Neosapience</b>'s voice AI — also the makers of <b>Typecast</b>","lp.trust.stat1":"Active users","lp.trust.stat2":"Countries","lp.trust.stat3":"Character voices","lp.trust.stat4":"Pre-IPO funding","lp.manifesto.eyebrow":"The Shift","lp.manifesto.title":'From content that broadcasts,<br />to content that <span class="coral">converses</span>.',"lp.manifesto.blurb":"Video, audio, text — playing back the same way, every time — is no longer enough. Neona turns content into a <b>Storyteller</b> that builds the story together with the user.","lp.manifesto.before":"Before","lp.manifesto.beforeH":"The old content","lp.manifesto.beforeP":"Made once by the creator, delivered the same way to everyone. Viewer reactions, questions, and skill levels never reach the content. Engagement stops at likes and comments.","lp.manifesto.after":"With Neona","lp.manifesto.afterH":'Content that <span class="coral">converses</span>',"lp.manifesto.afterP":"A conversation that builds the story, delivers information, teaches, and counsels — together. Emotion-expressive voice creates immersive, two-way experiences.","lp.cases.eyebrow":"Use Cases","lp.cases.title":'Built for content makers,<br />operators, and <span class="coral">PMs</span>.',"lp.cases.blurb":"Teams in <b>education, marketing, media, and entertainment</b> design, deploy, and iterate without writing code.","lp.cases.eduNum":"01 · Education","lp.cases.eduH":'AI tutors that <span class="coral">talk with</span> every learner',"lp.cases.eduDesc":"Drop in a textbook or lesson script. The AI tutor reads the material and runs preview, review, and 1-on-1 sessions with each student. Unlimited practice, adaptive feedback at every level.","lp.cases.eduTags":"Language,Test prep,Preview & review,1:1 tutoring","lp.cases.mktNum":"02 · Marketing","lp.cases.mktH":'Marketing that <span class="coral">explains</span> your product',"lp.cases.mktDesc":"Voice agents that talk with prospects, qualify their needs, and walk them through your product in context. Static landing pages become living brand experiences.","lp.cases.mktTags":"Product demo,Lead qualifying,Onboarding,FAQ","lp.cases.medNum":"03 · Media","lp.
1cases.medH":'From listening to news, to <span class="coral">talking</span> with it',"lp.cases.medDesc":"Audio that converses with the listener. Ask follow-ups, dig deeper into context, and turn passive consumption into active inquiry.","lp.cases.medTags":"News & podcasts,Audiobooks,Documentary,Journalism","lp.cases.entNum":"04 · Entertainment","lp.cases.entH":'Characters that <span class="coral">live</span> inside the story',"lp.cases.entDesc":"Game NPCs, interactive fiction, character chatbots — design living characters with 700+ voices and a persona builder, then let fans talk with them directly.","lp.cases.entTags":"Game NPC,Character IP,Interactive fiction,Virtual companion","lp.cases.exploreAll":"Explore all 10 use cases","lp.how.eyebrow":"How it works","lp.how.title":'Write a persona, drop in your content, <span class="coral">deploy</span>.',"lp.how.blurb":"No development required. STT, LLM, TTS — every voice technology you need, in <b>one pipeline</b> built end-to-end by Neosapience.","lp.how.step1Num":"Step 01","lp.how.step1H":"Write the persona","lp.how.step1P":"Define voice, tone, and personality with a prompt. Choose from 700+ character voices or clone your brand's own voice.","lp.how.step2Num":"Step 02","lp.how.step2H":"Connect your content","lp.how.step2P":"Upload existing textbooks, manuals, scripts, FAQs. The agent understands the material and leads the conversation on its own.","lp.how.step3Num":"Step 03","lp.how.step3H":"Deploy & operate","lp.how.step3P":"Embed on web, app, or as a widget. Track conversation logs, drop-off points, and satisfaction in your dashboard. Update personas in real time.","lp.voices.eyebrow":"Voice Library","lp.voices.title":'<span class="coral">700+</span> character voices,<br />ready for any story.',"lp.voices.desc":"Pick a voice that fits the story you're telling — narrators, tutors, hosts, NPCs. Or clone one of your own in minutes.","lp.role.tutor":"Tutor","lp.role.storyteller":"Storyteller","lp.role.coach":"Coach","lp.role.narrator":"Narrator","lp.role.anchor":"Anchor","lp.role.instructor":"Instructor","lp.role.companion":"Companion","lp.role.gameNpc":"Game NPC","lp.role.counselor":"Counselor","lp.role.host":"Host","lp.role.mentor":"Mentor","lp.role.news":"News","lp.role.wellness":"Wellness","lp.role.trainer":"Trainer","lp.why.eyebrow":"Why Neona","lp.why.title":'Immersion lives in the <span class="coral">details</span>.',"lp.why.blurb":"Our years of work on <b>emotion-expressive voice</b> are what make conversation feel real. This isn't a stack of third-party APIs glued together.","lp.why.d1H":"Smart Emotion","lp.why.d1P":"Praise, encouragement, surprise, focus — emotion shifts in real time as the conversation unfolds, the way a real person speaks.","lp.why.d1S":"Voice with feeling","lp.why.d2H":"Streaming response","lp.why.d2P":"Zero-latency two-way conversation. Pacing that feels like talking with a person, not an interface.","lp.why.d2S":"No more waiting","lp.why.d3H":"Multilingual & code-switching","lp.why.d3P":"Switches between languages mid-sentence the way a real bilingual speaker would. Korean-English transitions stay seamless.","lp.why.d3S":"12+ languages","lp.why.d4H":"No-code operation","lp.why.d4P":"Content teams build, deploy, and iterate without developers. Personas, scripts, and voices update live.","lp.why.d4S":"Built by content teams","lp.why.d5H":"Document-aware RAG","lp.why.d5P":"Use your existing textbooks, manuals, and scripts as-is. The agent understands them and runs the session autonomously.","lp.why.d5S":"Your content, as-is","lp.why.d6H":"Full-stack, in-house","lp.why.d6P":"STT, LLM, TTS — all built by us, served as a single pipeline. No third-party API dependencies, predictable quality and cost.","lp.why.d6S":"End-to-end voice AI","lp.study.eyebrow":"Case Study","lp.study.title":'Already <span class="coral">live</span><br />in real classrooms.',"lp.study.partner":"Yoon Sunsaeng × Neosapience · Tuit launch July 2026","lp.study.quote":`For <span class="coral">5–10 minutes</span> before each English class, students chat with an AI tutor built on Neona to preview the lesson. Just like a human teacher leading a session from the textbook, the AI tutor <span class="coral">follows the day's lesson document</span> to guide preview with each student.`,"lp.study.source":`<b>Yoon Sunsaeng</b> integrates Neona into 'Tuit', its native-speaker video English service<span class="news-tag">The Electronic Times · 2026.05.19</span>`,"lp.study.f1H":"Smart Emotion","lp.study.f1D":"Praise and encouragement reflected in voice in real time","lp.study.f2H":"Streaming voice","lp.study.f2D":"Zero-latency, natural two-way conversation","lp.study.f3H":"Kid-friendly personas","lp.study.f3D":"Voice design tuned for student engagement","lp.study.f4H":"Autonomous sessions","lp.study.f4D":"Reflects Yoon Sunsaeng's teaching method","lp.final.eyebrow":"Early Access","lp.final.title":'Make your content<br /><span class="coral">
1converse</span>.',"lp.final.lead":"We're recruiting content teams from education, marketing, media, and entertainment. Early access cohorts get 1:1 onboarding and full integration support.","lp.final.fine":"<b>Limited cohort</b> · Domain-prioritized selection · Free 4-week PoC","lp.foot.blurb":"Interactive Storytelling Voice Agent — a product of Neosapience, the team behind Typecast.","lp.foot.product":"Product","lp.foot.why":"Why Neona","lp.foot.company":"Company","lp.foot.contact":"Contact","lp.foot.sales":"Talk to sales","lp.foot.copyright":"© {year} <b>Neosapience, Inc.</b> All rights reserved."},Ie={"footer.ucEducation":"영어교육","footer.ucCustomerSupport":"AI 음성 상담원","footer.ucSalesOutbound":"AI 아웃바운드 영업","footer.ucAppointment":"AI 예약·접수","footer.ucHealthcare":"AI 병원 안내","footer.ucFinance":"AI 금융 상담","footer.ucFood":"AI 매장 전화 응대","footer.ucRealestate":"AI 부동산 상담","footer.ucWellness":"AI 웰니스 코칭","footer.ucGaming":"AI 게임 NPC","footer.ucAll":"전체 use-case →","uc.edu.docTitle":"AI 영어회화 튜터 — 학습 서비스에 더하는 음성 AI 에이전트","uc.edu.navHome":"홈","uc.edu.navUseCases":"활용 사례","uc.edu.eyebrow":"USE CASE · 영어교육","uc.edu.h1":"AI 영어회화 튜터를 당신의 학습 서비스에 더하세요","uc.edu.lead":"Neona로 영어 학원·edtech·앱에 실시간 음성 영어 튜터를 더하세요. 학습자는 24시간 무제한으로 말하기를 연습하고, 발화마다 즉시 교정과 표현 제안을 받습니다. 교재·커리큘럼을 연결하고 코딩 없이 페르소나를 설정해 API·위젯으로 임베드하세요.","uc.edu.heroCta":"튜터 데모 들어보기","uc.edu.trust":"Typecast를 만든 Neosapience의 음성 AI · 누적 사용자 3M+ · 225개국","uc.edu.scenEyebrow":"대화 연습","uc.edu.scenTitle":"이런 상황을 영어로 연습하세요","uc.edu.scenList":"카페에서 주문하기,영어 면접,출입국 심사,비즈니스 미팅,여행 회화,전화 통화,발표·프레젠테이션,일상 스몰토크","uc.edu.whyHeadline":"말하기 연습을 못 주면, 학습 성과도 리텐션도 정체됩니다","uc.edu.whySub":"사람 튜터는 비싸고 확장이 어렵습니다. AI 음성 튜터는 학습자에게 무제한 말하기 연습을 24시간 제공해 학습 성과와 리텐션을 끌어올립니다 — 운영 부담 없이.","uc.edu.featEyebrow":"핵심","uc.edu.featTitle":"말하면서 느는 영어","uc.edu.feat1Title":"말하기 우선","uc.edu.feat1Desc":"듣기만 하지 않고 직접 소리 내어 말하며 배웁니다. 입이 트이는 speaking-first 방식.","uc.edu.feat2Title":"즉시 교정","uc.edu.feat2Desc":"발화마다 발음·문법·표현을 실시간으로 바로잡고 더 자연스러운 표현을 제안합니다.","uc.edu.feat3Title":"24/7 무제한","uc.edu.feat3Desc":"눈치 ë³¼ 필요 없이 언제든, 원하는 만큼 무제한으로 반복 연습합니다.","uc.edu.tryEyebrow":"직접 체험","uc.edu.tryTitle":"지금 바로 영어로 대화해보세요","uc.edu.tryBody":"아래 버튼을 누르면 AI 영어 튜터와 실제로 통화가 시작됩니다. 회원가입 없이 바로 체험하세요.","uc.edu.tryCta":"통화 테스트 시작 →","uc.edu.usesEyebrow":"활용","uc.edu.usesTitle":"이런 교육에 바로 투입됩니다","uc.edu.case1Num":"01 · 영어회화","uc.edu.case1Title":"실전 대화로 익히는 회화 튜터","uc.edu.case1Desc":"상황별 롤플레이로 말하기를 연습합니다. 발화마다 즉시 교정과 표현 제안을 받아 무제한으로 반복할 수 있습니다.","uc.edu.case1Tags":"롤플레이,발음·표현 교정,레벨 적응","uc.edu.case2Num":"02 · 시험 대비","uc.edu.case2Title":"약점을 짚어주는 대비 코치","uc.edu.case2Desc":"기출·문제 풀이를 음성으로 진행하고, 틀린 부분을 설명하며 비슷한 유형을 추가로 연습시킵니다.","uc.edu.case2Tags":"기출 풀이,오답 해설,유형 연습","uc.edu.case3Num":"03 · 예습·복습","uc.edu.case3Title":"수업 전후를 채우는 학습 도우미","uc.edu.case3Desc":"교재를 읽어들여 수업 전 핵심을 미리 짚고, 수업 후 이해도를 점검하는 1:1 세션을 운영합니다.","uc.edu.case3Tags":"핵심 요약,이해도 점검,맞춤 피드백","uc.edu.howEyebrow":"동작 방식","uc.edu.howTitle":"3단계로 시작합니다","uc.edu.codeTitle":"웹·앱엔 한 줄로 임베드","uc.edu.howBody":"1) 교재·스크립트·커리큘럼을 연결합니다. 2) 페르소나(말투·역할·난이도)를 설정합니다. 3) API 또는 웹 위젯으로 LMS·웹사이트·앱에 임베드합니다. STT·LLM·TTS가 하나의 파이프라인으로 동작해 자연스러운 turn-takingê³¼ 끼ì
1–´ë“¤ê¸°(barge-in)를 지원합니다.","uc.edu.step1Title":"교재 연결","uc.edu.step1Desc":"사용 중인 교재·강의 스크립트·커리큘럼을 업로드해 연결합니다.","uc.edu.step2Title":"페르소나 설정","uc.edu.step2Desc":"말투·역할·난이도를 정해 튜터의 성격을 만듭니다. 코딩은 필요 없습니다.","uc.edu.step3Title":"임베드","uc.edu.step3Desc":"API 또는 웹 위젯으로 LMS·웹사이트·앱에 붙입니다. STT·LLM·TTS가 한 파이프라인으로 자연스러운 turn-taking·barge-in을 지원합니다.","uc.edu.faqEyebrow":"FAQ","uc.edu.faqTitle":"자주 묻는 질문","uc.edu.faq1Q":"AI 음성 교육 에이전트란 무엇인가요?","uc.edu.faq1A":"교재나 강의 스크립트를 읽어들여 학습자와 실시간 음성으로 대화하는 AI 튜터입니다. 일방적으로 내용을 재생하는 대신, 학습자의 수준과 질문에 맞춰 예습·복습·1:1 연습을 함께 진행합니다.","uc.edu.faq2Q":"어떤 언어를 지원하나요?","uc.edu.faq2A":"한국어·영어를 비롯해 일본어·프랑스어·스페인어·중국어 등 다국어 음성 대화를 지원합니다. 영어회화 튜터부터 한국어 강사까지 같은 플랫폼에서 만들 수 있습니다.","uc.edu.faq3Q":"교재나 커리큘럼을 그대로 쓸 수 있나요?","uc.edu.faq3A":"네. 사용 중인 교재·레슨 스크립트·커리큘럼을 에이전트에 연결하면, 해당 내용을 기반으로 설명하고 질문에 답하며 연습 문제를 진행합니다. 별도 코딩 없이 설정합니다.","uc.edu.faq4Q":"학생 수가 많아도 동시에 쓸 수 있나요?","uc.edu.faq4A":"실시간 음성 세션을 다수 동시에 운영할 수 있어, 학습자마다 무제한 반복 연습과 개별 피드백을 제공할 수 있습니다.","uc.edu.faq5Q":"웹사이트나 앱에 어떻게 붙이나요?","uc.edu.faq5A":"API 또는 웹 위젯 임베드로 기존 LMS·웹사이트·앱에 음성 튜터를 추가할 수 있습니다. 임베드 스니펫 한 줄로 위젯을 띄울 수 있습니다.","uc.edu.relatedTitle":"다른 use-case도 살펴보세요","uc.edu.ctaTitle":"학습 서비스에 음성 AI 튜터를 더하세요","uc.edu.contactBtn":"도입 문의하기","uc.edu.ctaNote":"회원가입 없이 바로 체험 · 신용카드 불필요","nav.dashboard":"대시보드","nav.agents":"에이전트","nav.sessions":"세션","nav.apiKeys":"API 키","nav.docs":"문서","nav.contact":"문의","nav.pricing":"요금","nav.team":"팀","nav.logOut":"로그아웃","pricing.title":"요금 및 사용량","pricing.desc":"사용량을 모니터링하고 플랜을 관리합니다.","pricing.currentPlan":"현재 플랜","pricing.sessionsUsed":"사용 세션","pricing.minutesUsed":"사용 시간(분)","pricing.unlimited":"무제한","pricing.perMonth":"/월","pricing.upgrade":"업그레이드","pricing.talkToSales":"영업팀 문의","pricing.usageWarning":"월간 세션 할당량의 {pct}%를 사용했습니다.","pricing.usageLimitReached":"월간 세션 한도에 도달했습니다. 플랜을 업그레이드하세요.","pricing.maxAgents":"최대 에이전트","pricing.maxConcurrent":"최대 동시 세션","pricing.maxSessions":"월 최대 세션","pricing.maxApiKeys":"최대 API 키","pricing.free":"무료","pricing.thisMonth":"이번 달","dashboard.title":"개요","dashboard.desc":"모든 음성 에이전트의 사용량, 세션, 시스템 상태를 확인합니다.","dashboard.dateRange":"기간","dashboard.last7d":"7일","dashboard.last30d":"30일","dashboard.last90d":"90일","dashboard.custom":"직접 설정","dashboard.perAgent":"에이전트별 사용량","dashboard.agent":"에이전트","dashboard.avgDuration":"평균 시간","dashboard.noUsageData":"해당 기간에 사용 데이터가 없습니다.","dashboard.anomalyAlert":"건의 이번 달 세션이 추정/근사 측정값입니다 — 정산 전 검토가 필요합니다.","agents.title":"에이전트","agents.desc":"음성 에이전트를 생성, 설정, 관리합니다.","agents.edit":"수정","agents.delete":"삭제","agents.confirmDelete":"이 에이전트를 삭제할까요?","agents.deactivate":"비활성화","agent.activateAgent":"에이전트 활성화","agent.deleteForever":"영구 삭제","agents.activate":"활성화","agents.confirmDeactivate":"비활성화할까요? 목록에 남고 언제든 다시 활성화할 수 있습니다.","agents.confirmHardDelete":"영구 삭제할까요? 모든 목록에서 사라지ê
1³  되돌릴 수 없습니다.","sessions.title":"세션","sessions.desc":"모든 에이전트의 음성 세션을 조회하고 모니터링합니다.","sessions.anomalyFilter":"정산 이상치만 필터링됨","apiKeys.title":"API 키","apiKeys.desc":"서버 호출 또는 브라우저 위젯용 키를 발급합니다. 키는 생성 시 한 번만 표시됩니다.","account.title":"계정","account.desc":"프로필, 비밀번호, 계정 설정을 관리합니다.","stat.minutesThisMonth":"이번 달 사용량(분)","stat.sessions":"세션","stat.sessionsThisMonth":"이번 달 세션","stat.activeAgents":"활성 에이전트","stat.activeNow":"현재 활성","stat.totalAgents":"전체 에이전트","stat.totalKeys":"전체 키","stat.apiSecrets":"API 시크릿","stat.widgetKeys":"위젯 키","stat.lastUsed":"마지막 사용","action.newAgent":"+ 새 에이전트","action.manageAgents":"에이전트 관리","action.issueKey":"키 발급","action.authGuide":"인증 가이드","action.startCall":"통화 시작","action.startChat":"챗 테스트","newAgent.chatAgent":"챗 에이전트 (텍스트 전용)","agents.chatBadge":"채팅","chat.test.eyebrow":"챗 테스트","chat.test.desc":"이 에이전트와의 텍스트 리허설입니다. 여기서 나눈 대화는 상담 인박스로 들어가지 않습니다.","chat.test.aiBadge":"AI","chat.test.aiBadgeHint":"AI가 생성하는 응답입니다","chat.test.introBody":"방문자가 위젯에서 만나는 것과 같은 프롬프트·모델로 대화해 봅니다. 준비되면 시작하세요.","chat.test.start":"챗 테스트 시작","chat.test.placeholder":"메시지를 입력하세요…","chat.test.send":"전송","chat.test.end":"테스트 종료","chat.test.ended":"테스트가 종료됐습니다.","chat.test.back":"에이전트로 돌아가기","chat.test.turnLimit":"이 세션의 턴 상한에 도달했습니다. 테스트를 종료하고 새로 시작하세요.","chat.test.typing":"에이전트가 응답 중","chat.test.restart":"테스트 재시작","chat.test.widgetNote":"방문자가 보는 실제 위젯 화면 그대로입니다 — 말풍선·스트리밍·타이핑 동일. 실행마다 새 세션으로 시작합니다.","chat.test.error.start":"챗 테스트를 시작하지 못했습니다. 다시 시도해 주세요.","chat.test.error.send":"응답을 받지 못했습니다. 입력한 내용은 남아 있으니 다시 시도해 주세요.","chat.test.error.agent":"에이전트 정보를 불러오지 못했습니다.","chat.test.code.session_ended":"세션이 종료됐습니다.","chat.test.code.turn_limit_reached":"이 세션의 턴 상한에 도달했습니다.","chat.test.code.llm_failed":"모델 응답에 실패했습니다. 다시 시도해 주세요.","chat.test.code.llm_not_configured":"이 환경에는 챗 LLM 이 설정돼 있지 않습니다.","chat.test.code.rate_limit_exceeded":"요청이 너무 잦습니다. 잠시 후 다시 시도해 주세요.","chat.test.code.message_invalid":"보낼 수 없는 메시지입니다 (빈 내용 또는 길이 초과).","action.startOutbound":"아웃바운드 통화","action.startOutboundCall":"전화 걸기","action.save":"변경사항 저장","action.cancel":"취소","action.close":"닫기","action.back":"뒤로","action.next":"다음","action.create":"생성","action.delete":"삭제","action.restore":"복원","action.deactivate":"비활성화","action.retry":"다시 시도","action.talkToUs":"문의하기","action.talkToSales":"영업팀 문의","cookie.message":"네오나는 서비스 이용 분석과 광고 성과 측정, 맞춤형 광고 제공을 위해 쿠키를 사용합니다. 동의하시면 쿠키 식별자, 방문·이용 기록, 사이트에 입력하신 이메일·전화번호(해시 처리)가 Google LLC(미국)로 이전되어 처리됩니다. 동의하지 않아도 사이트 이용에는 제한이 없습니다. 자세한 내용은 개인정보 처리방침에서 확인하실 수 있습니다.","cookie.privacy":"개인정보 처리방침","cookie.accept":"동의","cookie.decline":"거부","cookie.settingsLabel":"쿠키 동의","cookie.settingsDesc":"분석 및 광고 쿠키 허용","quick.createAgent":"에이전트 생성","quick.createAgentDesc":"템플릿 또는 처음부터 시작합니다.","quick.browseApi":"API 둘러보기","quick.browseApiDesc":"REST, WebRTC, 웹훅.","quick.issueKey":"API 키 발급","quick.issueKeyDesc":"서버 또는 위젯 토큰.","quick.talkToUs":"문의하기","quick.talkToUsDesc":"질문, 피드백, 엔터프라이즈 문의.","auth.welcomeBack":"돌아오셨군요","auth.signIn":"Neona 계정에 로그인하세요.","auth.createAccount":"계정 만들기","auth.createAccountDesc":"워크스페이스ì
1™€ 기본 에이전트가 자동으로 설정됩니다.","auth.noAccount":"계정이 없으신가요?","auth.createOne":"도입문의","auth.noAccountSuffix":"를 남겨주시면 안내해드려요.","auth.alreadyHave":"이미 계정이 있으신가요?","auth.logIn":"로그인","auth.email":"이메일","auth.password":"비밀번호","auth.fullName":"이름","auth.workEmail":"업무용 이메일","auth.rememberMe":"로그인 유지","auth.forgotPassword":"비밀번호를 잊으셨나요?","auth.signUpGoogle":"Google로 가입","auth.signInGoogle":"Google로 로그인","auth.googleSigningIn":"로그인 중입니다…","auth.googleSignInFailed":"Google 로그인을 완료하지 못했습니다","auth.accountNotFound":"이 이메일로 만들어진 Neona Agents 계정이 없습니다. 하단의 **도입 문의를** 남겨주시면 계정을 열어드립니다.","auth.invalidCredentials":"이메일 또는 비밀번호가 올바르지 않습니다. 계정이 아직 없다면 하단의 **도입 문의를** 남겨주시면 계정을 열어드립니다.","auth.loginFailed":"로그인하지 못했습니다. 연결 상태를 확인한 뒤 다시 시도해 주세요.","auth.inviteRequiredNotice":"가입은 초대 링크로만 가능합니다. 도입 문의를 남겨주시면 링크를 보내드립니다.","auth.redirectingToContact":"도입 문의 화면으로 이동합니다…","auth.googlePopupBlocked":"브라우저가 로그인 창을 차단했습니다. 이 사이트의 팝업을 허용한 뒤 다시 시도해 주세요.","auth.googleTermsNotice":"Google로 계속하면 다음에 동의하는 것으로 봅니다:","auth.or":"또는","auth.agreeTerms":"동의합니다:","auth.termsOfService":"이용약관","auth.and":"및","auth.privacyPolicy":"개인정보 처리방침","contact.title":"영업팀 문의","contact.eyebrow":"문의","contact.name":"이름","contact.email":"이메일","contact.company":"회사명","contact.phone":"전화번호","contact.message":"문의 내용","contact.privacyAgree":"개인정보 수집 및 이용에 동의합니다.","contact.submit":"문의하기","contact.success":"감사합니다!","contact.successDesc":"문의가 접수되었습니다. 빠른 시일 내에 연락드리겠습니다.","contact.close"
1:"닫기","contact.required":"(필수)","contact.namePlaceholder":"홍길동","contact.companyPlaceholder":"회사명","contact.phonePlaceholder":"010-0000-0000","contact.inquiryType":"어떤 것이 필요하신가요?","contact.inquiryTypePlaceholder":"선택해 주세요 (선택)","contact.messagePlaceholder":"궁금하신 점이나 도입 문의 사항을 자유롭게 적어주세요.","contact.errorPrivacy":"개인정보 수집 및 이용에 동의해 주세요.","contact.errorRequired":"이름·이메일·회사명·전화번호는 필수입니다.","contact.errorEmail":"올바른 이메일 주소를 입력해 주세요.","contact.errorGeneric":"문의 접수에 실패했습니다. 잠시 후 다시 시도해 주세요.","auth.editorialQuote":'"고객이 기억하는 ê±´ 응답 속도가 아니라, 자신의 말이 닿았다는 느낌입니다."',"misc.loading":"로딩 중…","misc.noData":"데이터 없음","misc.vsLast":"전월 대비","misc.published":"배포됨","misc.live":"라이브","misc.activeCalls":"활성 통화","misc.region":"리전 · ap-northeast-2 · 서울","misc.recentSessions":"최근 세션","misc.viewAll":"전체 보기 →","misc.viewSessions":"세션 보기","misc.minutesLast30":"사용량 · 최근 30일 (분)","misc.minutes":"분","misc.noSessions":"세션이 없습니다","misc.noAgents":"에이전트가 없습니다","misc.createFirst":"첫 번째 음성 에이전트를 만들어 시작하세요.","keys.issueNew":"새 키 발급","keys.keyCreated":"키가 생성되었습니다 — 지금 복사하세요","keys.copyKey":"키 복사","keys.expiresLabel":"만료","keys.shownOnce":"전체 키는 이때만 표시됩니다.","keys.active":"활성","keys.serverSide":"서버 측","keys.browserDomainBound":"브라우저, 도메인 제한","keys.mostRecentActivity":"가장 최근 활동","keys.noActivityYet":"활동 없음","keys.searchKeys":"키 검색…","keys.loadingKeys":"로딩 중…","keys.loadError":"API 키를 불러오지 못했습니다. 다시 시도해 주세요.","keys.noKeysYet":"키가 없습니다. 위에서 첫 ë²
1ˆì§¸ 키를 발급하세요.","keys.noKeysMatch":"필터에 맞는 키가 없습니다.","keys.keyName":"키 이름","keys.keyNamePlaceholder":"예: 프로덕션 서버","keys.keyType":"키 유형","keys.apiSecret":"API 시크릿","keys.widgetKey":"위젯 키","keys.apiSecretDesc":"서버 측, 비공개 유지","keys.widgetKeyDesc":"브라우저, 도메인 제한","keys.allowedDomains":"허용 도메인","keys.domainsHint":"쉼표로 구분. *.example.com 같은 와일드카드 지원.","keys.domainsPlaceholder":"*.example.com, app.example.com","keys.expiration":"만료 기간","keys.never":"없음","keys.30days":"30일","keys.90days":"90일","keys.1year":"1년","keys.creating":"생성 중…","keys.createKey":"키 생성","keys.deactivating":"비활성화 중…","keys.confirmDeactivateDesc":"이 작업은 되돌릴 수 없습니다. 확인하려면 키 이름을 입력하세요.","keys.rename":"이름 변경","keys.saving":"저장 중…","keys.domains":"도메인","keys.created":"생성일","keys.inactive":"비활성","newAgent.breadcrumb":"에이전트 → 새 에이전트","newAgent.title":"에이전트 생성","newAgent.desc":"새 음성 AI 에이전트를 설정합니다. 생성 후에도 모든 설정을 변경할 수 있습니다.","newAgent.stepBasics":"기본 정보",Flow:"플로우",Save:"저장","Saving...":"저장 중...","Save failed":"저장 실패",Clear:"지우기","agent.voiceAgentFromFlow":"음성 에이전트 (플로우로 생성됨)","flow.retiredEyebrow":"단일 프롬프트","flow.retiredTitle":"이 에이전트는 이제 단일 프롬프트로 응대합니다","flow.retiredBody":"엔진이 저장된 플로우를 더 이상 실행하지 않고, 통화는 프롬프트 하나로 처리합니다. 응대 내용은 ‘대화’ 탭에서 설정해 주세요.","flow.retiredEyebrowUrgent":"설정 필요","flow.retiredTitleUrgent":"이 에이전트에는 아직 응대 지시문이 없습니다","flow.retiredBodyUrgent":"지시문이 플로우 안에 들어 있었는데 엔진이 플로우를 읽지 않게 되면서, 지금은 아무 지시 없이 통화를 받고 있습니다. ‘대화’ 탭에서 지시문을 작성해 주세요.","flow.retiredPrevious":"이전 플로우 구성 {count}단계:","flow.retiredCta":"대화 탭으로 이동","newAgent.stepConversation":"프롬프트","newAgent.stepVoice":"음성","newAgent.stepReview":"검토","newAgent.identity":"기본 정보","newAgent.identityDesc":"대시보드에 표시되는 에이전트 정보입니다.","newAgent.name":"이름","newAgent.agentType":"에이전트 유형","newAgent.voiceAgent":"단일 에이전트","newAgent.description":"설명","newAgent.primaryLang":"기본 언어","newAgent.templateDesc":"청사진으로 시작하거나 처음부터 만듭니다.","newAgent.blankDesc":"처음부터 시작합니다.","newAgent.supportDesc":"환불, 배송, 계정 관련 질문을 처리합니다.","newAgent.outboundDesc":"갱신 알림 및 설문조사.","newAgent.conversation":"대화","newAgent.conversationDesc":"에이전트의 사고 방식과 통화 시작 방법을 설정합니다.","newAgent.systemPrompt":"시스템 프롬프트","newAgent.systemPromptHint":"에이전트의 성격과 행동을 정의합니다. {{variable}}로 런타임 치환이 가능합니다.","newAgent.greeting":"인사말","newAgent.greetingHint":"세션 시작 시 첫 번째로 말하는 문장입니다.","newAgent.voice":"음성","newAgent.voiceDesc":"에이전트가 사용할 캐릭터 음성입니다.","newAgent.selectVoice":"음성을 선택하세요","newAgent.selectBaramCharacter":"아바타 캐릭터를 선택하세요","newAgent.change":"변경","newAgent.models":"모델","newAgent.modelsDesc":"대화를 처리하는 기술 스택입니다.","newAgent.sttProvider":"STT 제공자","newAgent.llmProvider":"LLM 제공자","newAgent.llmModel":"LLM 모델","newAgent.reviewTitle":"검토","newAgent.reviewDesc":"생성 전 마지막 확인입니다.","newAgent.nameRequired":"에이전트 이름은 필수입니다","newAgent.systemPromptRequired":"시스템 프롬프트는 필수입니다","newAgent.continue":"계속 →","newAgent.createAgent":"에이전트 생성 →","newAgent.livePreview":"미리보기","newAgent.previewNote":"에이전트가 어떻게 표시될지 보여주는 미리보기입니다. 실제 세션은 생
1성되지 않습니다.","account.profile":"프로필","account.profileDesc":"앱에 표시되는 이름입니다.","account.name":"이름","account.profileImage":"프로필 이미지 URL","account.saved":"저장됨.","account.preferences":"환경 설정","account.preferencesDesc":"사용 환경을 맞춤 설정합니다.","account.language":"언어","account.changePassword":"비밀번호 변경","account.changePasswordDesc":"변경 후 기존 세션은 모두 로그아웃됩니다.","account.currentPassword":"현재 비밀번호","account.newPassword":"새 비밀번호","account.newPasswordHint":"8자 이상.","account.confirmPassword":"새 비밀번호 확인","account.passwordChanged":"비밀번호가 변경되었습니다.","account.passwordsNoMatch":"새 비밀번호가 일치하지 않습니다.","account.passwordTooShort":"새 비밀번호는 8자 이상이어야 합니다.","account.deleteAccount":"계정 삭제","account.deleteDesc":"계정을 영구적으로 삭제합니다. 개인 정보는 삭제되지만, 일부 기록(청구서 등)은 법적 요구에 따라 보관됩니다. 이 작업은 취소할 수 없습니다.","account.deleteConfirmDesc":"취소할 수 없습니다. 확인을 위해 이메일을 입력하고 현재 비밀번호를 입력하세요.","account.typeEmail":"확인을 위해 이메일을 입력하세요","account.deleteButton":"계정 삭제하기","account.deletePermanent":"영구적으로 계정 삭제","account.emailNoMatch":"이메일이 일치하지 않습니다.","account.passwordRequired":"비밀번호가 필요합니다.","apiDoc.logIn":"로그인","apiDoc.getStarted":"시작하기","apiDoc.apiRef":"API 레퍼런스","apiDoc.heroTitle":"Neona로 음성 AI 에이전트를 구축하세요.","apiDoc.heroSub":"에이전트 생성, 음성 탐색, 라이브 음성 세션을 위한 REST 엔드포인트.","apiDoc.questions":"질문이 있으신가요?","apiDoc.contactUs":"문의하기 →","auth.continueGoogle":"Google로 계속하기","auth.remember30":"30일 동안 로그인 유지","auth.logInButton":"로그인","auth.createAccountButton":"계정 만들기","auth.agreeTermsError":"이용약관 및 개인정보 처리방침에 동의해 주세요.","auth.passwordMin8":"비밀번호는 8자 이상이어야 합니다.","auth.passwordHint":"8자 이상.","auth.birthdate":"생년월일","auth.birthdateHint":"만 14세 이상만 가입할 수 있어요.","auth.birthdateRequired":"생년월일을 입력해 주세요.","auth.underageError":"만 14세 미만은 가입할 수 없습니다.","landing.hero":"현대 인터넷을 위한","landing.heroAccent":"음성 인프라","landing.heroSub":"단 하나의 API로 프로덕션 수준의 음성 AI 에이전트를 출시하세요. 인프라 관리 없이, 듣고 말하고 일을 처리하는 에이전트를 바로 만들 수 있습니다.","landing.startBuilding":"무료로 시작하기","landing.documentation":"문서","landing.signIn":"로그인","landing.pricing":"요금","landing.pricingTitle":"베타","landing.pricingDesc":"Neona는 현재 베타 서비스입니다. 베타 기간 동안 모든 기능을 무료로 사용할 수 있습니다. 엔터프라이즈 문의 또는 커스텀 플랜은 영업팀에 문의해 주세요.","landing.howItWorks":"작동 방식","landing.threeSteps":"세 단계로 시작하기","landing.threeStepsDesc":"에이전트를 만들고, 위젯을 생성하고, 사이트에 배포하세요. 그게 전부입니다.","landing.useCases":"활용 사례","landing.useCasesTitle":"모든 음성 접점을 위한 솔루션","landing.voices":"음성","landing.voicesTitle":"500개 이상의 자연스러운 음성","landing.voicesDesc":"28개 언어의 풍부하고 저지연 음성 라이브러리에서 선택하거나, 음성 복제로 나만의 음성을 사용하세요.","landing.readyToShip":"첫 번째 음성 에이전트를 출시할 준비가 되셨나요?","landing.noCardRequired":"몇 초면 가입 완료. 신용카드 불필요.","landing.talkToSales":"영업팀 문의","landing.privacy":"개인정보처리방침","landing.terms":"이용약관","shareLinks.title":"공유 링크","shareLinks.desc":"누구나 이 에이전트를 테스트할 수 있는 링크를 생성합니다. 로그인이 필요 없습니다.","shareLinks.create":"링크 생성","shareLinks.namePlaceholder":"링크 이름 (예: 고객 A 데모용)","shareLinks.copyLink":"링크 복사","shareLinks.deactivate":"비활성화","shareLinks.deactivateConfirm":"이 공유 링크를 비활성화하시겠습니까?","shareLinks.noLinks":"공유 링크가 없습니다.","shareLinks.untitled":"이름 없는 링크","try.unavailable":"이 링크는 더 이상 사용할 수 없습니다.","try.unavailableDesc":"공유 링크가 비활성화되었거나 존재하지 않습니다.","try.backHome":"홈으로 돌아가기","try.startCall":"통화 시작","try.startChat":"채팅 시작","try.endCall":"통화 종료","try.connecting":"연결 중…","try.connected":"연결됨","try.speaking":"에이전트 말하는 중","try.listening":"듣는 중…","try.ended":"통화 종료됨","try.tryAgain":"다시 통화","try.poweredBy":"Powered by Neona","team.title":"팀","team.desc":"팀 멤버와 역할을 관리합니다.","team.invite":"멤버 초대","team.inviteDesc":"이메일로 팀 멤버를 추가합니다.","team.email":"이메일 주소","team.role":"역할","team.owner":"소유자","team.admin":"관리자","team.member":"멤버","team.remove":"제거","team.removeConfirm":"이 멤버를 팀에서 제거하시겠습니까?","team.memberCount":"{count} / {max} 멤버","team.pending":"대기 중","team.active":"활성","team.noMembers":"팀 멤버가 없습니다.","team.inviteSent":"초대가 전송되었습니다.","team.memberAdded":"멤버가 추가되었습니다.","tab.overview":"일반","tab.flow":"플로우","tab.conversation":"프롬프트","tab.voice":"음성","tab.settings":"설정","tab.evaluation":"평가","tab.deploy":"배포","tab.history":"기록","deploy.channelWidget":"웹사이트 위젯","deploy.badgeOneLine":"스크립트 한 줄","deploy.badgeDev":"개발자용","deploy.intro":"에이전트를 사용자에게 내보내는 방법 — 링크 공유(노코드), 위젯 임베드(스크립트 한 줄), REST API 연동(개발자) 순서로 준비되어 있어요.","agent.totalSessions":"전체 세션","agent.allTime":"전체 기간","agent.avgDuration":"평균 시간","agent.perSession":"세션당","agent.dropRate":"이탈률","agent.last30d":"최근 30일","agent.totalMinutes":"전체 시간(분)","agent.notFound":"에이전트를 찾을 수 없습니다.","agent.loadError":"에이전트를 불러올 수 없습니다. 다시 시도해 주세요.","agent.updateFailed":"업데이트 실패","agent.actionFailed":"처리하지 못했습니다 — 다시 시도해 주세요","agent.settings":"설정","agent.openSettings":"설정 탭 열기","agent.integration":"연동","agent.integrationDesc":"단일 API 호출로 서버에서 세션을 시작합니다.","agent.viewApiDocs":"API 문서 보기","agent.manageApiKeys":"API 키 관리","agent.conversationConfig":"대화 설정","agent.systemPrompt":"시스템 프롬프트","agent.systemPromptHint":"에이전트의 성격과 행동을 정의합니다. {{variable}}로 런타임 치환이 가능합니다.","agent.silenceNudge":"사용자가 말이 없으면 먼저 말 걸기","agent.silenceNudgeHint":"침묵이 이어지면 에이전트가 무한정 기다리지 않고 먼저 대화를 다시 엽니다. 튜터링·단계형 안내에 유용합니다. 상담원 인계가 있는 에이전트는 켜지 마세요 — 상담원을 기다리는 대기 구간에서도 말을 겁니다.","agent.silenceNudgeDelay":"회차별 침묵 시간 (초)","agent.silenceNudgeDelayHint":'쉼표로 구분해 회차마다 적용됩니다 — "3, 5, 7"이면 3초 뒤 1차, 다시 5초 뒤 2차, 다시 7초 뒤 3차 후 조용히 기다립니다(자동 종료를 켜면 그 뒤 끊습니다). 최대 5개, 각 1~60초, 마지막 발화가 끝난 시점부터 잽니다. 비워 두면 플랫폼 기본값.',"agent.silenceNudgeDelayPlaceholder":"플랫폼 기본값 (예: 3, 5, 7)","agent.silenceAutoEnd":"응답이 없으면 통화 자동 종료","agent.silenceAutoEndHint":"마지막 되묻기에도 응답이 없으면 종료 안내를 말하고 통화를 끊습니다. 상담원 인계가 있는 에이전트는 켜지 마세요.","agent.silenceAutoEndDelay":"마지막 되묻기 후 종료까지 (초)","agent.silenceAutoEndDelayHint":"1~120초, 마지막 되묻기 발화가 끝난 시점부터 잽니다. 비워 두면 플랫폼 기본값(10초).","agent.silenceAutoEndDelayPlaceholder":"플랫폼 기본값 (10)","agent.silenceAutoEndMessage":"종료 안내 문구","agent.silenceAutoEndMessageHint":"통화를 끊기 직전에 말합니다. 비워 두면 에이전트 언어의 플랫폼 기본 문구.","agent.retentionTitle":"통화 기록 보관","agent.retentionHint":"통화가 끝난 뒤 이 에이전트가 남기는 것. 기본은 모두 켜짐입니다. 공개 데모 에이전트는 개인정보처리방침에 맞춰 음성·트레이스를 끄세요. 전사본만 있어도 데모 리포트는 만들어집니다.","agent.retentionAudio":"통화 음성 녹음","agent.retentionAudioHint":"통화 종료 시 이용자·에이전트·상담원(인계 시)·스테레오 WAV 를 스토리지에 저장합니다.","agent.retentionTranscript":"대화 전사본 저장","agent.retentionTranscriptHint":"대화 텍스트를 세션에 저장합니다. 끄면 콘솔 대화 기록·수동 평가·데모 리포트도 없어집니다. 상담원 인계가 있는 에이전트는 끄지 마세요 — 상담 케이스가 이 전사로 만들어집니다.","agent.retentionTrace":"LLM 트레이스 전송","agent.retentionTraceHint":"턴별 LLM·STT·TTS 트레이스(텍스트 전문 포함)를 관측 도구로 보냅니다. 지연·품질 디버깅용입니다.","agent.silenceAutoEndMessagePlaceholder":"예: 응답
1이 없어 통화를 종료할게요. 필요하시면 다시 연락해 주세요.","agent.voiceTts":"음성 / TTS","agent.noVoice":"음성이 선택되지 않았습니다","agent.changeVoice":"음성 변경","agent.voiceSpeed":"말하기 속도","agent.voiceSpeedHint":"에이전트 음성의 전체 재생 속도입니다. 0.5~2.0, 기본값 1.0.","agent.voiceLoudness":"출력 음량","agent.voiceLoudnessHint":"목표 라우드니스(LUFS, −70~0). 값이 클수록 크게 들립니다. 끄면 정규화 없이 원본 그대로 나갑니다.","agent.backgroundAudio":"배경 앰비언스","agent.backgroundAudioOff":"사용 안 함","agent.backgroundAudioLoading":"클립 불러오는 중…","agent.backgroundAudioInactive":"비활성","agent.backgroundAudioPreview":"배경 앰비언스 미리듣기","agent.backgroundAudioVolume":"배경 앰비언스 볼륨","agent.backgroundAudioHint":"통화에 은은한 배경음(사무실 소음 등)을 깔아 침묵이 끊긴 전화처럼 느껴지지 않게 합니다. 100%를 넘기면 원본을 증폭합니다(협대역 전화에서 유용). 너무 높이면 소리가 깨질 수 있습니다.","agent.backgroundAudioDucking":"에이전트 발화 중 살짝 줄이기 (덕킹)","agent.backgroundAudioDuckingHint":"덕킹을 켜면 에이전트가 말하는 동안 배경음을 부드럽게 낮추고, 말 사이에는 되돌립니다.","agent.chooseVoice":"음성 선택","agent.general":"일반","agent.name":"이름","agent.description":"설명","agent.descPlaceholder":"이 에이전트는 무엇을 하나요?","agent.language":"언어","agent.phoneNumber":"인입 전화번호","agent.phoneNumberNone":"연결 안 함","agent.phoneNumberInUse":"{name} 사용 중","agent.phoneNumberEmpty":"조직에 할당된 번호가 없습니다 — 번호 연결은 문의로 요청해주세요.","agent.phoneNumberDetached":"조직 할당이 해제된 번호","agent.agentType":"에이전트 유형","agent.maxSessionDuration":"세션 최대 지속 시간 (분)","agent.maxSessionDurationHint":"세션당 강제 종료 기준. cron이 이 값을 넘은 세션을 자동 종료합니다. 1–1440(24시간). 기본값 5.","agent.sessionExpiry":"세션 만료 시간 (분)","agent.sessionExpiryHint":"생성됐지만 아직 연결되지 않은 세션과 입장 토큰이 만료되기까지 유효한 시간입니다. 1–30분. 기본값 5.","agent.agentId":"에이전트 ID","agent.agentIdHint":"API 호출에서 이 에이전트를 참조할 때 사용하는 식별자입니다.","agent.dangerZone":"위험 구역","agent.dangerDesc":"이 에이전트를 영구적으로 비활성화합니다. 활성 세션이 종료됩니다.","agent.deactivateAgent":"에이전트 비활성화","agent.areYouSure":"정말로 진행하시겠습니까?","agent.confirmDeactivate":"비활성화 확인","version.justNow":"방금","version.minutesAgo":"{n}분 전","version.hoursAgo":"{n}시간 전","version.daysAgo":"{n}일 전","version.history":"버전 기록","version.count":"개 버전","version.loading":"버전 로딩 중…","version.empty":"아직 버전 기록이 없습니다. 변경사항을 저장하면 자동으로 버전이 생성됩니다.","version.label":"버전","version.current":"현재","version.deleteConfirm":"이 버전을 삭제하시겠습니까?","ui.copy":"복사","ui.copied":"복사됨!","cmd.goTo":"이동","cmd.create":"생성","cmd.searchPlaceholder":"명령어 입력 또는 검색…","cmd.noResults":"결과 없음","lang.koKR":"한국어 (ko-KR)","lang.enUS":"영어 (en-US)","lang.enGB":"영어 (en-GB)","lang.jaJP":"일본어 (ja-JP)","newAgent.createFailed":"생성 실패","newAgent.namePlaceholder":"예: 영어 튜터","newAgent.reviewName":"이름","newAgent.reviewType":"유형","newAgent.reviewLang":"언어","newAgent.reviewVoice":"음성","newAgent.untitled":"이름 없는 에이전트","newAgent.ready":"준비됨","newAgent.previewAgent":"에이전트","newAgent.previewCaller":"발화자","newAgent.previewGreeting":"안녕하세요! 무엇을 도와드릴까요?","agents.sort":"정렬","agents.sortUpdated":"최근 수정","agents.sort
1Name":"가나다순","agents.loadError":"에이전트를 불러오지 못했습니다. 다시 시도해 주세요.","agents.createNew":"직접 만들기","agents.autoGenerate":"AI 자동 생성 (Beta)","agents.createAnother":"에이전트 추가 생성","agents.filterAll":"전체","agents.filterPublished":"배포됨","agents.filterDraft":"초안","agents.publishedLive":"{n} 라이브","agents.colAgent":"에이전트","agents.colId":"ID","agents.colLanguage":"언어","agents.colCreated":"생성일","sessions.colAgent":"에이전트","sessions.colParticipant":"참가자","sessions.colStatus":"상태","sessions.colDuration":"시간","sessions.colTime":"시각","sessions.qualityScore":"품질 점수","sessions.loadMore":"더 보기","sessions.channelVoice":"음성","sessions.filterAll":"전체","sessions.statusCreated":"생성됨","sessions.statusConnected":"연결됨","sessions.statusActive":"진행 중","sessions.statusEnded":"종료됨","sessions.statusExpired":"만료됨","sessions.statusFailed":"실패","sessions.channelChat":"챗","sessions.colSource":"유입 경로","sessions.colTurns":"턴","sessions.chatSourceWidget":"위젯","sessions.chatSourceShare":"공유 링크","sessions.chatSourceConsole":"테스트","sessions.chatHandoff":"상담원 연결","sessions.chatHandoffRequested":"상담원 연결 요청","sessions.chatCallback":"콜백 요청","sessions.noChatSessions":"아직 챗 세션이 없습니다.","sessions.chatLoadFailed":"챗 세션을 불러오지 못했습니다.","chatDetail.eyebrow":"챗 세션","chatDetail.back":"세션 목록으로","chatDetail.loadFailed":"챗 세션을 불러오지 못했습니다.","chatDetail.empty":"이 세션에는 메시지가 없습니다.","chatDetail.turns":"턴","chatDetail.statusActive":"진행 중","chatDetail.statusEnded":"종료됨","chatDetail.contact":"연락처","chatDetail.roleCustomer":"방문자","chatDetail.roleAgent":"에이전트","chatDetail.roleOperator":"상담원","chatDetail.endUserRequest":"방문자 종료","chatDetail.endIdle":"무응답 종료","chatDetail.endTurnLimit":"턴 상한 도달","chatDetail.endOperator":"상담원 종료","chatDetail.endUnknown":"종료","sessions.callType":"통화 주제 (통화 기록에서)","sessions.loadError":"세션을 불러오지 못했습니다.","sessionSummary.status":"상태","sessionSummary.duration":"시간","sessionSummary.started":"시작","sessionSummary.ended":"종료","sessionSummary.participant":"참가자","sessionSummary.sessionId":"세션 ID","sessionSummary.transcript":"대화 기록","sessionSummary.updating":"(업데이트 중…)","sessionSummary.noTranscript":"대화 기록이 없습니다.","sessionSummary.startAgain":"다시 시작","sessionSummary.loading":"로딩 중…","sessionSummary.loadError":"세션을 불러오지 못했습니다.","agent.saved":"저장되었습니다 ✓","agent.evalCriteria":"평가 기준","agent.evalTabDesc":"통화 후 품질 평가에 대한 설정이에요. 라이브 대화에는 영향을 주지 않아요.","agent.evalDefaultTitle":"기본 평가 기준 (기준을 비워두면 이대로 작동)","agent.evalDefault1":"목적 달성도(0-100): 시스템 프롬프트가 정의한 목적이 결과로 달성됐는지 — 노력·규칙 준수가 아닌 결과 기준. 미해결·불만 종료면 규칙을 다 지켰어도 낮게 평가돼요.","agent.evalDefault2":"정확성·규정 준수(0-100): 안내가 사실에 맞고 시스템 프롬프트의 정책을 지켰는지.","agent.evalDefault3":"잘한 점과 안내 이슈를 인용·심각도(높음/보통/낮음)와 함께 기록하고, 목적 미달성 시 갭 출처(프롬프트 커버리지/에이전트 실행)를 구분해요.","agent.evalDefault4":"종합(0-100): 두 축을 반영하며, 목적이 미달성이면 60을 넘지 않아요.","agent.evalCriteriaPlaceholder":"예: 이 에이전트의 목적은 예약 완료입니다. 예약이 이뤄지지 않으면 목적 달성도를 50 이하로 평가하세요. 요금 오안내는 심각도 높음으로 판정하세요.","agent.evalCriteriaHint":"통화 후 품질 평가에 쓰는 에이전트별 기준입니다. 비워두면 기본 평가 기준만 사용해요.","sessionSummary.info":"세션 정보","sessionSummary.extraction":"통화 기록","sessionSummary.extracting":"통화 기록 생성 중… 통화 종료 후 잠시 뒤에 표시돼요.","sessionSummary.noExtraction":"이 세션에는 통화 기록이 없습니다 — 기록이 생성되지 않았거나 완료되지 못했어요.","sessionSummary.keyPoints":"핵심 내용","sessionSummary.extractedBy":"추출 모델","sessionSummary.res.resolved":"해결됨","sessionSummary.res.unresolved":"미해결","sessionSummary.res.escalated":"상담원 이관","sessionSummary.res.abandoned":"중단","sessionSummary.sent.positive":"긍정","sessionSummary.sent.neutral":"중립","sessionSummary.sent.negative":"부정","sessionSummary.evaluation":"품질 평가","sessionSummary.noEvaluation":"이 세션에는 품질 평가가 없습니다 — 평가가 실행되지 않았거나 완료되지 못했어요.","sessionSummary.evaluating":"평가 생성 중… 통화 종료 후 잠시 뒤에 표시돼요.","sessionSummary.evaluatingNow":"평가 실행 중… 최대 1분 정도 걸릴 수 있어요.","sessionSummary.runEvaluation":"평가 실행","sessionSummary.reEvaluate":"다시 평가","sessionSummary.evaluateFailed":"평가에 실패했어요 — 다시 시도할 수 있어요.","sessionSummary.overallScore":"종합","sessionSummary.goalAchievement":"목적 달성도","sessionSummary.gap.prompt_coverage":"갭: 프롬프트 커버리지","sessionSummary.gap.agent_execution":"갭: 에이전트 실행","sessionSummary.accuracy":"정확성·규정 준수","sessionSummary.strengths":"잘한 점","sessionSummary.good":"잘함","sessionSummary.guidanceIssues":"안내 이슈","sessionSummary.evaluatedBy":"평가 모델","sessionSummary.sev.high":"높음","sessionSummary.sev.medium":"보통","sessionSummary.sev.low":"낮음","earlyAccess.revoking":"초대를 취소하는 중…","earlyAccess.revoked":"초대가 취소되었습니다.","earlyAccess.revokeError":"문제가 발생했습니다. 링크가 만료되었을 수 있습니다.","session.liveConversation":"실시간 대화","session.startError":"세션을 시작하지 못했습니다. 다시 시도해 주세요.","session.agentSpeaking":"에이전트 말하는 중","session.listening":"듣는 중…","session.connecting":"연결 중…","session.avatarConnecting":"아바타 연결 중…","session.mute":"음소거","session.unmute":"음소거 해제","session.endCall":"통화 종료","session.backToAgent":"← 에이전트로 돌아가기","session.setupTitle":"통화 시작 전 설정","session.outboundSetupTitle":"아웃바운드 통화 걸기","session.destinationLabel":"대상 전화번호","session.destinationHint":"E.164 형식, 예: +821012345678","session.trunkLabel":"SIP 트렁크 ID","session.trunkHint":"발급받은 아웃바운드 트렁크","session.callerIdLabel":"발신번호 (선택)","session.callerIdHint":"수신자에게 표시되는 번호. 비워두면 트렁크 기본번호 사용","session.invalidPhone":"올바른 E.164 번호를 입력하세요, 예: +821012345678","session.dynamicVarsLabel":"동적 변수 (Dynamic variables)","session.dynamicVarsHint":"이번 통화에 한해 이 에이전트의 시스템 프롬프트에 있는 {{key}} 자리표시자를 치환할 값입니다.","session.dynamicVarsDetected":"프롬프트에서 발견된 {{…}} 자리표시자로 미리 채웠습니다.","session.noDynamicVars":"이 에이전트의 프롬프트에는 {{자리표시자}}가 없습니다. 아래에 키를 추가해 직접 값을 보내거나, 그대로 통화를 시작하세요.","session.varKeyPlaceholder":"키 (예: user_name)","
1session.varValuePlaceholder":"값 (예: Alice)","session.addVar":"+ 변수 추가","session.removeVar":"변수 삭제","session.invalidVarKey":"영문/숫자/언더스코어만 사용할 수 있습니다.","session.duplicateVarKey":"중복된 키 — 마지막 값이 사용됩니다.","session.loadingAgent":"에이전트 불러오는 중…","autoGen.breadcrumb":"AI 자동 생성","autoGen.title":"에이전트 자동 생성","autoGen.desc":"한 문단으로 설명하면 AI가 음성 에이전트를 만들어드려요.","autoGen.createManually":"직접 만들기","autoGen.inputLabel":"어떤 상황에서 대화하는 에이전트를 만들까요?","autoGen.inputPlaceholder":"예: 해외여행 입국심사 상황에서 쓰는 영어를 연습하는 시나리오. 심사관 역할로 질문하고, 학습자가 답하면 피드백해준다.","autoGen.inputHint":"에이전트가 대화할 시나리오를 알려주세요 — 누가, 왜 전화하고, 에이전트가 무엇을 해야 하는지.","autoGen.submit":"에이전트 생성하기","autoGen.examples":"예시 템플릿","autoGen.generating":"에이전트 만드는 중...","autoGen.generatingHint":"AI가 페르소나, 음성, 시스템 프롬프트를 생성하고 있어요. 10-20초 정도 걸려요.","autoGen.result":"생성 결과","autoGen.fieldName":"이름","autoGen.fieldRole":"역할","autoGen.fieldGreeting":"인사말","autoGen.fieldTone":"톤","autoGen.fieldUseCase":"활용 분야","autoGen.fieldSampleQueries":"예상 질문","autoGen.recommendedVoice":"추천 음성","autoGen.noVoiceMatch":"적합한 보이스를 찾지 못했습니다. 에이전트 상세에서 직접 선택해주세요.","autoGen.voiceUpdating":"음성 변경 중...","autoGen.stop":"중단","autoGen.publish":"에이전트 확인하기","autoGen.reset":"다시 만들기","autoGen.generateError":"생성에 실패했습니다. 다시 시도해주세요.","autoGen.agentLanguage":"에이전트 언어","autoGen.agentLanguageHint":"에이전트가 대화할 언어를 선택하세요.","autoGen.exEnglish":"영어 학습","autoGen.exEnglishText":'해외여행 입국심사 상황에서 쓰는 영어를 학습하는 시나리오. 입국심사관이 "What is the purpose of your visit?", "How long will you stay?" 같은 질문을 하면, 학습자가 영어로 답해보고 피드백을 받는다. 틀려도 격려하면서 자연스러운 표현으로 교정해준다.',"autoGen.exFaq":"FAQ 문의 응대","autoGen.exFaqText":"온라인 쇼핑몰에 고객이 전화해서 배송 상태, 환불, 교환을 물어보는 시나리오. 주문번호를 확인하고 안내해준다. 배송 2-3일, 환불 7일 이내, 교환 무료.","autoGen.exIntro":"셀프 소개","autoGen.exIntroText":"보컬 코치 김아무개를 대신 소개해주는 시나리오. 문의자가 어떤 레슨인지, 가격이 얼마인지, 어떻게 예약하는지 물어보면 답해준다. 발성/믹스보이스 전문, 정규 레슨 회당 8만원, 첫 상담 무료.","autoGen.female":"여성","autoGen.male":"남성","autoGen.youngAdult":"20-30대","autoGen.middleAge":"30-40대","autoGen.senior":"50대+","autoGen.remaining":"회 남음","autoGen.quotaExhausted":"자동생성 한도를 초과했습니다. 관리자에게 문의하세요.","autoGen.preview":"미리듣기","autoGen.pickOtherVoice":"다른 보이스 선택하기","autoGen.voiceChangeAnytime":"보이스는 언제든지 에이전트 설정에서 변경할 수 있어요.","autoGen.urlLabel":"참고 URL (선택)","autoGen.urlHint":"홈페이지, FAQ 페이지 등의 URL을 입력하면 내용을 참고해서 에이전트를 만듭니다.","autoGen.fieldSystemPrompt":"시스템 프롬프트","autoGen.chars":"자","autoGen.publishError":"에이전트 활성화에 실패했습니다. 다시 시도해주세요.","autoGen.edit":"수정","autoGen.save":"저장","autoGen.cancel":"취소","autoGen.pickTemplate":"어떤 에이전트를 만들까요?","autoGen.tplFaq":"FAQ / 고객 문의","autoGen.tplAppointment":"예약 안내","autoGen.tplIntro":"셀프 소개","autoGen.tplEducation":"학습 코치","autoGen.tplCustom"
1:"직접 입력","autoGen.qIndustry":"어떤 업종인가요?","autoGen.qIndustryOpts":"IT/SaaS,쇼핑몰,카페/음식점,부동산,교육/학원,뷰티/미용","autoGen.qTopics":"주로 어떤 질문에 답하나요?","autoGen.qTopicsOpts":"배송/반품/교환,가격/결제,영업시간/위치,서비스 안내,계정/회원,예약/취소","autoGen.qTone":"어떤 느낌으로 답하면 좋을까요?","autoGen.qToneOpts":"친근하고 따뜻하게,전문적이고 신뢰감 있게,밝고 활기차게,차분하고 정중하게","autoGen.qBusinessType":"어떤 곳의 예약인가요?","autoGen.qBusinessTypeOpts":"미용실/네일,병원/치과,음식점,호텔/펜션,스튜디오/촬영,학원/PT","autoGen.qInfo":"안내할 정보를 골라주세요","autoGen.qInfoOpts":"영업시간/휴무일,메뉴/서비스 종류,가격표,위치/주차,담당자/디자이너 지정,주의사항","autoGen.qWho":"누구를 소개하나요?","autoGen.qWhoOpts":"프리랜서/크리에이터,코치/강사,아티스트/뮤지션,사업가/대표,전문가/컨설턴트","autoGen.qHighlight":"어떤 내용을 소개할까요?","autoGen.qHighlightOpts":"약력/경력,전문 분야,포트폴리오/작품,가격/상담 방법,연락처/SNS","autoGen.qIntroTone":"어떤 느낌으로 소개하면 좋을까요?","autoGen.qIntroToneOpts":"담담하고 전문적으로,따뜻하고 친근하게,자신감 있고 활기차게,유머러스하게","autoGen.qSubject":"어떤 과목/주제인가요?","autoGen.qSubjectOpts":"영어 회화,한국어,일본어,수학,코딩,비즈니스 스킬","autoGen.qAudience":"학습자는 누구인가요?","autoGen.qAudienceOpts":"초등학생,중고등학생,대학생,직장인,시니어,외국인","autoGen.qStyle":"교육 스타일을 골라주세요","autoGen.qStyleOpts":"대화형 연습 (롤플레이),퀴즈/문제 풀이,설명 위주 (강의),격려/동기부여 중심","autoGen.confirmTitle":"확인 및 생성","autoGen.confirmLang":"언어","autoGen.confirmComment":"에이전트가 어떻게 답하면 좋을까요?","autoGen.confirmCommentPh":"예: 항상 2문장 이내로, 캐주얼하게, 무료 체험을 꼭 언급해줘","autoGen.confirmCommentHint":"구체적으로 적을수록 더 정확한 에이전트가 만들어져요.","autoGen.confirmUrlLabel":"홈페이지를 넣으면 더 똑똑해져요","autoGen.confirmUrlHint":"영업시간, 가격, FAQ 등을 페이지에서 자동으로 학습합니다.","autoGen.confirmCreate":"에이전트 만들기","autoGen.confirmBack":"← 이전","autoGen.templateBack":"← 템플릿 선택","autoGen.prevStep":"← 이전","autoGen.next":"다음","autoGen.selected":"선택됨","autoGen.customInput":"직접 입력","autoGen.customConfirm":"확인","autoGen.addUrl":"+ URL 추가","autoGen.answerRequired":"최소 1개 항목을 선택해주세요.","widget.title":"위젯 임베드","widget.desc":"고객 웹사이트에 스크립트 한 줄을 추가하면 플로팅 버튼이 나타납니다. 클릭하면 이 에이전트와 통화할 수 있습니다.","widget.themeColor":"테마 색상","widget.colorHint":"#FE7E43 같은 헥스 색상을 사용하세요.","widget.position":"위치","widget.posBottomRight":"오른쪽 하단","widget.posBottomLeft":"왼쪽 하단","widget.posCenter":"중앙 하단","widget.cornerRadius":"모서리 둥글기","widget.radiusSharp":"각진","widget.radiusSoft":"부드러운","widget.radiusRound":"둥근","widget.radiusPill":"알약형","widget.showAgentName":"에이전트 이름 표시","widget.muteButton":"음소거 버튼","widget.liveTranscript":"실시간 자막","widget.postCallRating":"통화 후 평가","widget.whitelabel":"화이트라벨","widget.brandName":"브랜드명","widget.brandNamePlaceholder":"커스텀 브랜드명 (비우면 에이전트 이름 사용)","widget.logoUrl":"로고 URL","widget.logoUrlPlaceholder":"https://... (비우면 기본 아이콘 사용)","widget.hidePoweredBy":"'Powered by Neona' 표시 숨기기","widget.saveSettings":"위젯 설정 저장","widget.embedCode":"임베드 코드","widget.widgetKey":"위젯 키","widget.noWidgetKey":"먼저 {link} 페이지에서 Widget 타입 키를 발급하세요 (고객 사이트 도메인을 허용 도메인에 등록 필요).","widget.apiKeysLink":"API Keys","widget.allowedDomains":"이 키의 허용 도메인: {domains}","widget.noDomains":"(없음)","widget.copyCode":"코드 복사","widget.replaceKeyHint":"nsk_wgt_YOUR_KEY_HERE를 실제 발급받은 키로 교체해 주세요. 키는 발급 시 한 번만 표시됩니다.","widget.preview":"미리보기","widget.readyToTalk":"대화할 준비가 되었습니다.","inspector.start":"시작","inspector.routerModel":"라우터 모델","inspector.routerModelHint":"각 턴을 어떤 에이전트가 처리할지 결정하는 LLM","inspector.defaultVoice":"기본 음성","inspector.defaultVoiceHint":"개별 설정이 없으면 모든 에이전트가 이 음성을 사용합니다","inspector.routingRules":"라우팅 규칙","inspector.addRule":"+ 규칙 추가","
1inspector.rulePlaceholder":"사용자가 요청할 때...","inspector.outputMode":"출력 모드","inspector.fullHistory":"전체 기록","inspector.lastMessage":"마지막 메시지","inspector.fullHistoryHint":"에이전트가 모든 대화 메시지를 수신합니다","inspector.lastMessageHint":"에이전트가 마지막 메시지만 수신합니다","inspector.agent":"에이전트","inspector.name":"이름","inspector.nameHint":"소문자, 영숫자, 밑줄. 문자로 시작해야 합니다.","inspector.namePlaceholder":"lowercase_name","inspector.model":"모델","inspector.systemPrompt":"시스템 프롬프트","inspector.promptPlaceholder":"이 에이전트의 역할과 동작을 설명하세요...","inspector.tools":"툴","inspector.toolsHint":"이 에이전트가 대화 중 툴을 호출할 수 있게 합니다. 해당 배포 키가 설정돼 있어야 실제로 동작합니다.","tools.webSearch.desc":"웹 검색 (Brave/Tavily)","tools.readOnly":"read-only","tools.requiresKey":"배포 키 필요","tools.whenToUsePlaceholder":'이 에이전트가 언제 사용할지 안내 (예: "주가·날씨·뉴스는 반드시 검색하고, 모른다고 답하지 마라")',"inspector.voice":"음성","inspector.voiceHint":"이 에이전트의 음성을 개별 설정합니다 (비우면 기본 음성 사용)","inspector.voiceInherit":"기본 (상속)","inspector.selectVoice":"음성 선택...","inspector.confirm":"확인","inspector.removeAgent":"에이전트 제거","inspector.handler":"핸들러","inspector.selectHandler":"핸들러 선택...","inspector.maxAttempts":"최대 시도 횟수","inspector.vocabItems":"어휘 항목","inspector.wordPlaceholder":"단어 (EN)","inspector.meaningPlaceholder":"의미 (KO)","inspector.exprItems":"표현 항목","inspector.exprEnPlaceholder":"영어","inspector.exprKoPlaceholder":"한국어","inspector.configJson":"설정 (JSON)","inspector.invalidJson":"유효하지 않은 JSON","lp.nav.manifesto":"매니페스토","lp.nav.useCases":"활용 사례","lp.nav.how":"작동 방식","lp.nav.voices":"음성","lp.nav.signin":"로그인","lp.nav.early":"얼리 액세스","lp.nav.switchTo":"Switch to English","lp.hero.eyebrow":"<b>얼리 액세스</b> · 지금 오픈 · 2026","lp.hero.title":'말이 통하는<br /><span class="coral">콘텐츠.</span><span class="cursor"></span>',"lp.hero.lead":"일방향 콘텐츠의 시대는 끝났습니다. 학습자와 대화하고, 시청자를 사로잡고, 고객을 상담하는 <b>음성 에이전트</b>를 만드세요. 단순히 재생되는 것이 아니라 <b>이야기를 들려주는</b> 에이전트입니다.","lp.hero.emailPlaceholder":"[email protected]","lp.hero.meta1":"STT · LLM · TTS를 하나의 파이프라인으로","lp.hero.meta2":"700개 이상의 캐릭터 음성","lp.hero.meta3":"노코드","lp.hero.cardTag":"LIVE · Neona Agent","lp.hero.cardName":"Mia","lp.hero.cardRole":"영어 튜터","lp.hero.cardPersona":"페르소나 · 친근하고 격려하는","lp.hero.cardTranscript":"안녕하세요! 오늘 배울 내용을 같이 살펴볼까요? 영어로 커피 주문하기, 한번 해볼 준비 됐나요?","lp.cta.request":"얼리 액세스 신청","lp.trust.label":"<b>Neosapience</b>의 음성 AI로 구동됩니다 — <b>Typecast</b>
1를 만든 바로 그 팀","lp.trust.stat1":"활성 사용자","lp.trust.stat2":"국가","lp.trust.stat3":"캐릭터 음성","lp.trust.stat4":"Pre-IPO 투자 유치","lp.manifesto.eyebrow":"전환점","lp.manifesto.title":'일방적으로 전달하는 콘텐츠에서,<br />함께 <span class="coral">대화하는</span> 콘텐츠로.',"lp.manifesto.blurb":"매번 똑같이 재생되는 영상, 오디오, 텍스트만으로는 충분하지 않습니다. Neona는 콘텐츠를 사용자와 함께 이야기를 만들어가는 <b>스토리텔러</b>로 바꿉니다.","lp.manifesto.before":"Before","lp.manifesto.beforeH":"기존 콘텐츠","lp.manifesto.beforeP":"제작자가 한 번 만들어 모두에게 똑같이 전달됩니다. 시청자의 반응, 질문, 수준은 콘텐츠에 닿지 못합니다. 참여는 좋아요와 댓글에서 멈춥니다.","lp.manifesto.after":"With Neona","lp.manifesto.afterH":'<span class="coral">대화하는</span> 콘텐츠',"lp.manifesto.afterP":"이야기를 만들고, 정보를 전달하고, 가르치고, 상담하는 대화를 사용자와 함께 나눕니다. 감정을 표현하는 음성이 몰입감 있는 양방향 경험을 만듭니다.","lp.cases.eyebrow":"활용 사례","lp.cases.title":'콘텐츠 제작자, 운영자,<br /><span class="coral">PM</span>을 위해.',"lp.cases.blurb":"<b>교육, 마케팅, 미디어, 엔터테인먼트</b> 팀이 코드 없이 설계하고, 배포하고, 개선합니다.","lp.cases.eduNum":"01 · 교육","lp.cases.eduH":'모든 학습자와 <span class="coral">대화하는</span> AI 튜터',"lp.cases.eduDesc":"교재나 수업 스크립트를 넣기만 하세요. AI 튜터가 자료를 읽고 학생별로 예습·복습·1:1 세션을 진행합니다. 무제한 연습과 수준별 맞춤 피드백을 제공합니다.","lp.cases.eduTags":"어학,시험 대비,예습·복습,1:1 튜터링","lp.cases.mktNum":"02 · 마케팅","lp.cases.mktH":'제품을 <span class="coral">설명하는</span>
1 마케팅',"lp.cases.mktDesc":"잠재 고객과 대화하며 니즈를 파악하고, 맥락에 맞게 제품을 안내하는 음성 에이전트. 정적인 랜딩 페이지가 살아 있는 브랜드 경험이 됩니다.","lp.cases.mktTags":"제품 데모,리드 검증,온보딩,FAQ","lp.cases.medNum":"03 · 미디어","lp.cases.medH":'뉴스를 듣는 것을 넘어 <span class="coral">대화하기</span>',"lp.cases.medDesc":"청취자와 대화하는 오디오. 추가 질문을 던지고, 맥락을 깊이 파고들며, 수동적 소비를 능동적 탐구로 바꿉니다.","lp.cases.medTags":"뉴스·팟캐스트,오디오북,다큐멘터리,저널리즘","lp.cases.entNum":"04 · 엔터테인먼트","lp.cases.entH":'이야기 속에 <span class="coral">살아 있는</span> 캐릭터',"lp.cases.entDesc":"게임 NPC, 인터랙티브 픽션, 캐릭터 챗봇 — 700개 이상의 음성과 페르소나 빌더로 살아 있는 캐릭터를 만들고, 팬들이 직접 대화하게 하세요.","lp.cases.entTags":"게임 NPC,캐릭터 IP,인터랙티브 픽션,가상 컴패니언","lp.cases.exploreAll":"10가지 활용 사례 모두 보기","lp.how.eyebrow":"작동 방식","lp.how.title":'페르소나를 작성하고, 콘텐츠를 넣고, <span class="coral">배포하세요</span>.',"lp.how.blurb":"개발이 필요 없습니다. STT, LLM, TTS — 필요한 모든 음성 기술을 Neosapience가 직접 구축한 <b>하나의 파이프라인</b>으로 제공합니다.","lp.how.step1Num":"Step 01","lp.how.step1H":"페르소나 작성","lp.how.step1P":"프롬프트로 음성, 톤, 성격을 정의하세요. 700개 이상의 캐릭터 음성 중에서 고르거나 브랜드 고유의 음성을 복제할 수 있습니다.","lp.how.step2Num":"Step 02","lp.how.step2H":"콘텐츠 연결","lp.how.step2P":"기존 교재, 매뉴얼, 스크립트, FAQ를 업로드하세요. 에이전트가 자료를 이해하고 스스로 대화를 이끕니다.","lp.how.step3Num":"Step 03","lp.how.step3H":"배포 및 운영","lp.how.step3P":"웹, 앱, 위젯으로 임베드하세요. 대화 로그, 이탈 지점, 만족도를 대시보드에서 추적하고 페르소나를 실시간으로 업데이트합니다.","lp.voices.eyebrow":"음성 라이브러리","lp.voices.title":'<span class="coral">700개 이상</span>의 캐릭터 음성,<br />어떤 이야기든 준비되어 있습니다.',"lp.voices.desc":"들려줄 이야기에 어울리는 음성을 고르세요 — 내레이터, 튜터, 호스트, NPC까지. 또는 몇 분 만에 직접 음성을 복제할 수 있습니다.","lp.role.tutor":"튜터","lp.role.storyteller":"스토리텔러","lp.role.coach":"코치","lp.role.narrator":"내레이터","lp.role.anchor":"앵커","lp.role.instructor":"강사","lp.role.companion":"컴패니언","lp.role.gameNpc":"게임 NPC","lp.role.counselor":"상담사","lp.role.host":"호스트","lp.role.mentor":"멘토","lp.role.news":"뉴스","lp.role.wellness":"웰니스","lp.role.trainer":"트레이너","lp.why.eyebrow":"Why Neona","lp.why.title":'몰입은 <span class="coral">디테일</span>에서 시작됩니다.',"lp.why.blurb":"오랜 시간 다져온 <b>감정 표현 음성</b> 기술이 대화를 진짜처럼 느껴지게 합니다. 서드파티 API를 짜깁기한 것이 아닙니다.","lp.why.d1H":"스마트 이모션","lp.why.d1P":"칭찬, 격려, 놀라움, 집중 — 대화가 전개되는 동안 실제 사람이 말하듯 감정이 실시간으로 변합니다.","lp.why.d1S":"감정이 담긴 음성","lp.why.d2H":"스트리밍 응답","lp.why.d2P":"지연 없는 양방향 대화. 인터페이스가 아니라 사람과 이야기하는 듯한 호흡입니다.","lp.why.d2S":"기다림 없이","lp.why.d3H":"다국어 및 코드 스위칭","lp.why.d3P":"실제 이중언어 화자처럼 문장 중간에도 언어를 전환합니다. 한국어-영어 전환도 자연스럽게 이어집니다.","lp.why.d3S":"12개 이상 언어","lp.why.d4H":"노코드 운영","lp.why.d4P":"콘텐츠 팀이 개발자 없이 직접 만들고, 배포하고, 개선합니다. 페르소나, 스크립트, 음성을 실시간으로 업데이트하세요.","lp.why.d4S":"콘텐츠 팀이 직접","lp.why.d5H":"문서 인식 RAG","lp.why.d5P":"기존 교재, 매뉴얼, 스크립트를 그대로 사용하세요. 에이전트가 이를 이해하고 세션을 자율적으로 진행합니다.","lp.why.d5S":"내 콘텐츠 그대로","lp.why.d6H":"풀스택 자체 개발","lp.why.d6P":"STT, LLM, TTS를 모두 직접 개발해 단일 파이프라인으로 제공합니다. 서드파티 API 의존이 없어 품질과 비용이 예측 가능합니다.","lp.why.d6S":"엔드투엔드 음성 AI","lp.study.eyebrow":"도입 사례","lp.study.title":'이미 실제 교실에서<br /><span class="coral">운영 중</span>입니다.',"lp.study.partner":"윤선생 × Neosapience · Tuit 2026년 7월 출시","lp.study.quote":'영어 수업 전 <span class="coral">5~10분</span> 동안, 학생들은 Neona로 만든 AI 튜터와 대화하며 그날 수업을 예습합니다. 교재로 수업을 이끄는 선생님처럼, AI 튜터가 <span class="coral">그날의 수업 자료를 따라</span> 학생별 예습을 안내합니다.',"lp.study.source":`<b>윤선생</b>이 원어민 화상영어 서비스 'Tuit'에 Neona를 도입했습니다<span class="news-tag">전자신문 · 2026.05.19</span>`,"lp.study.f1H":"스마트 이모션","lp.study.f1D":"칭찬과 격려가 실시간으로 음성에 반영됩니다","lp.study.f2H":"스트리밍 음성","lp.study.f2D":"지연 없는 자연스러운 양방향 대화","lp.study.f3H":"아이 친화적 페르소나","lp.study.f3D":"학생 몰입을 위해 설계된 음성","lp.study.f4H":"자율 세션 진행","lp.study.f4D":"윤선생의 교육 방식을 반영합니다","lp.final.eyebrow":"얼리 액세스","lp.final.title":'당신의 콘텐츠가<br /><span class="coral">대화하게</span> 하세요.',"lp.final.lead":"교육, 마케팅, 미디어, 엔터테인먼트 분야의 콘텐츠 팀을 모집합니다. 얼리 액세스 참여 팀에는 1:1 온보딩과 전체 연동 지원을 제공합니다.","lp.final.fine":"<b>한정 모집</b> · 도메인 우선 선정 · 4주 무료 PoC","lp.foot.blurb":"Interactive Storytelling Voice Agent — Typecast를 만든 Neosapience의 제품입니다.","lp.foot.product":"제품","lp.foot.why":"Why Neona","lp.foot.company":"회사","lp.foot.contact":"문의","lp.foot.sales":"영업팀 문의","lp.foot.copyright":"© {year} <b>Neosapience, Inc.</b> All rights reserved."},ne={en:De,ko:Ie};function Ge(t,a){let c=ne[A][t]??ne.en[t]??t;if(a)for(const[h,f]of Object.entries(a))c=c.replace(`{${h}}`,String(f));return c}function Ye(t,a){const o=Ge(t,a),c=o.split(/\*\*(.+?)\*\*/g);return c.length===1?o:c.map((h,f)=>f%2===1?O.createElement("strong",{key:f},h):h)}const T="neona_cookie_consent",x="neona:cookie-consent";let k=null;function P(t){return t==="accepted"||t==="declined"?t:null}function ie(){if(k!==null)return k;try{return localStorage.getItem(T)}catch{return null}}function C(){return P(ie())}function Qe(t){k=t;
1try{localStorage.setItem(T,t),k=null}catch{try{localStorage.removeItem(T)}catch{}}typeof window<"u"&&window.dispatchEvent(new CustomEvent(x,{detail:t}))}function $e(t){if(typeof window>"u")return()=>{};const a=c=>t("local",P(c.detail)),o=c=>{(c.key===T||c.key===null)&&(k=null,t("storage",c.key===null?null:P(c.newValue)))};return window.addEventListener(x,a),window.addEventListener("storage",o),()=>{window.removeEventListener(x,a),window.removeEventListener("storage",o)}}function ze(){return P(ie())!==null}let w=!1;const M=[];function Je(t){if(w){t();return}M.push(t)}const Ne=!1;function Le(){return window.ENV?.VITE_GA_MEASUREMENT_ID||void 0}function He(){return window.ENV?.VITE_GTM_ID||void 0}function y(t,...a){}function E(){window.dataLayer=window.dataLayer||[],window.gtag=function(){window.dataLayer.push(arguments)}}const Re=["ad_storage","ad_user_data","ad_personalization"];function re(t){return{analytics_storage:t,...Object.fromEntries(Re.map(a=>[a,t]))}}function Ze(){E();const a=C()==="accepted"?"granted":"denied";window.gtag("consent","default",{...re(a),functionality_storage:"granted",security_storage:"granted",wait_for_update:500}),y("consent default",a)}function Xe(t){E();const a=t?"granted":"denied";window.gtag("consent","update",re(a)),y("consent update",a),t&&(qe(),_e())}function qe(){if(w)return;const t=Le();if(!t||C()!=="accepted")return;E();const a=document.createElement("script");a.async=!0,a.src=`https://www.googletagmanager.com/gtag/js?id=${t}`,document.head.appendChild(a),window.gtag("js",new Date),window.gtag("config",t,{send_page_view:!1,debug_mode:Ne}),w=!0,y("initialized",t),ce&&Ve(window.location.pathname,window.location.search||void 0),M.forEach(o=>o()),M.length=0}let ae=!1;function _e(){if(ae)return;const t=He();if(!t||C()!=="accepted")return;E(),window.dataLayer.push({"gtm.start":new Date().getTime(),event:"gtm.js"});const a=document.createElement("script");a.async=!0,a.src=`https://www.googletagmanager.com/gtm.js?id=${t}`,document.head.appendChild(a),ae=!0,y("gtm initialized",t)}function et(t){w&&(window.gtag("set",{user_id:t}),y("set user_id",t))}function tt(){w&&(window.gtag("set",{user_id:null}),y())}function nt(t){w&&(window.gtag("set","user_properties",t),y("set user_properties",t))}const q={"/":"public","/login":"public","/signup":"public","/terms":"public","/privacy":"public","/api-doc":"public","/use-cases":"public","/en":"public","/try":"public","/early-access":"public","/widget":"widget","/dashboard":"app","/agents":"app","/sessions":"app","/keys":"app","/pricing":"app","/account":"app"};function xe(t){if(q[t])return q[t];for(const[a,o]of Object.entries(q))if(t.startsWith(a+"/"))return o;return"other"}function Me(t=window.location.pathname){const a=V(t).replace(/^\//,"").replace(/\.html$/,"").replace(/\/$/,"");if(a===""||a==="index")return"home";if(a==="aicc")return"industry_cx";if(a==="edu")return"industry_edu";if(a==="voices")return"voices";if(a==="contact")return"contact";const o=a.match(/^usecase-(.+)$/);if(o)return`uc_${o[1]}`;const c=a.replace(/^en\//,"").match(/^use-cases\/(.+)$/);return c?`uc_${c[1]}`:a==="usecases"||/^(en\/)?use-cases$/.test(a)?"usecases":a||"other"}function Ue(t){return t==="/en"||t.startsWith("/en/")?"en":Ee()}let ce=!1;function at(){ce=!0}const B=["invite","token","code","rt","key","secret","password","access_token","id_token"];function Oe(t){return typeof t!="string"||!/^https?:\/\//.test(t)&&!t.includes("?")?t:le(t)}function F(t){if(!t)return t;const a={};for(const[o,c]of Object.entries(t))a[o]=B.includes(o)?"[redacted]":Oe(c);return a}const Be=[[/^\/try\/[^/]+/,"/try/:token"],[/^\/(en\/)?early-access\/revoke\/[^/]+/,"/early-access/revoke/:token"]];function V(t){for(const[a,o]of Be)if(a.test(t))return t.replace(a,o);return t}function le(t){try{const a=/^https?:\/\//.test(t),o=new URL(t,a?void 0:"http://scrub.invalid");let c=!1;B.forEach(f=>{o.searchParams.has(f)&&(o.searchParams.delete(f),c=!0)});const h=V(o.pathname);return h!==o.pathname&&(o.pathname=h,c=!0),o.hash&&(o.hash="",c=!0),c?a?o.toString():`${o.pathname}${o.search}`:t}catch{return t}}function Fe(t){if(!t)return;const a=new URLSearchParams(t);return B.forEach(o=>a.delete(o)),a.toString()||void 0}function Ve(t,a){if(!w)return;const o={page:Me(t),locale:Ue(t),page_path:V(t),page_title:document.title,page_location:le(window.location.href),content_group:xe(t)},c=Fe(a);c&&(o.page_referrer_search=c);const h=F(o);window.gtag("event","page_view",h),y("page_view",t,h)}function U(t,a){if(!w)return;const o=F(a);window.gtag("event",t,o),y("event",t,o)}function ot(t,a){try{if(C()!=="accepted")return}catch{return}const o=globalThis.gtag;if(typeof o!="function")return;const c=F(a);o("event",t,c),y("landing event",t,c)}let oe=!1;function st(){oe||(oe=!0,document.addEventListener("click",t=>{const a=t.target.closest("a[href]");if(!a)return;const o=a.href;!o||a.hostname===window.location.hostname||U("outbound_click",{url:o,link_text:(a.textContent||"").trim().slice(0,100)})}))}let se=!1;
1function it(){se||(se=!0,window.addEventListener("error",t=>{U("js_error",{message:t.message,source:t.filename,line:t.lineno,col:t.colno})}),window.addEventListener("unhandledrejection",t=>{U("js_error",{message:String(t.reason),type:"unhandled_promise"})}))}function rt(){return w}export{ot as A,Ke as R,O as a,U as b,$e as c,Qe as d,Xe as e,Ee as f,C as g,ze as h,tt as i,rt as j,et as k,nt as l,Ve as m,at as n,Je as o,Me as p,Ye as q,Te as r,We as s,Ge as t,je as u,st as v,it as w,Ze as x,qe as y,_e as z};
2//# sourceMappingURL=analytics-B6QZxVUa.js.map

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.