1import{$ as e,A as t,H as n,I as r,M as i,N as a,P as o,Q as s,R as c,S as l,_ as u,b as d,d as f,et as p,gt as m,k as h,lt as g,mt as _,pt as v,q as y,tt as b,ut as x,x as S,y as C}from"../chunks/BeoJQrmF.js";import"../chunks/xihTtKlq.js";import"../chunks/Bp3sphyZ.js";import{t as w}from"../chunks/DNW99tyL.js";import{t as ee}from"../chunks/xV7iEfMQ.js";import{l as te}from"../chunks/CGXvZftX.js";import{t as ne}from"../chunks/CCr5FYVJ.js";import{t as T}from"../chunks/CRrDS89J.js";import{t as re}from"../chunks/BxDLb9kQ.js";import{n as E,t as D}from"../chunks/CqokuxJA.js";import{i as ie,n as ae,o as O,t as oe}from"../chunks/BWYVyDZS.js";import{a as k,i as se,n as ce,r as le,t as ue}from"../chunks/-6U8yTEd.js";var A=m({prerender:()=>!0}),j=r(`<span class="soon svelte-3y9hw5">SOON</span>`),M=r(`<li class="svelte-3y9hw5"><span class="tick svelte-3y9hw5"><!></span> <span class="text svelte-3y9hw5"> </span> <!></li>`),N=r(`<div class="screen svelte-3y9hw5"><div class="head svelte-3y9hw5"><span class="close svelte-3y9hw5"><!></span> <span class="spacer svelte-3y9hw5"></span> <span class="restore svelte-3y9hw5">Restore purchases</span></div> <div class="body svelte-3y9hw5"><h2 class="title svelte-3y9hw5">Go further</h2> <p class="lede svelte-3y9hw5">Corrections and replies stay unlimited on every plan. Paying removes the other limits.</p> <!> <ul class="features svelte-3y9hw5" role="list"></ul> <p class="fine svelte-3y9hw5">One week free, then billed monthly or yearly; yearly is 3 months free. Prices are set per 2 region and shown in the app. Cancel any time in your store account. Tokens never unlock a 3 plan.</p></div> <div class="foot svelte-3y9hw5"><span class="cta svelte-3y9hw5">Start your free week</span></div></div>`);function de(e){let r=[{text:`Unlimited new conversations`,soon:!1},{text:`1000 translations a day`,soon:!1}
3,{text:`Who viewed you, incognito, Nearby`,soon:!1},{text:`Gender and city filters`,soon:!1},{text:`Boosted profile`,soon:!1},{text:`5 languages you are learning, 5 you speak natively`,soon:!1},{text:`Everything in Free`,soon:!1},{text:`LangX Copilot in the correction sheet`,soon:!0}];var c=N(),l=s(c),u=s(l),d=s(u);T(d,{name:`close`,size:22}),_(u),v(4),_(l);var f=b(l,2),m=b(s(f),4);D(m,{options:[`Yearly`,`Monthly`],active:0});var g=b(m,2);h(g,5,()=>r,t,(e,t)=>{var r=M(),c=s(r),l=s(c);T(l,{name:`check`,size:18,strokeWidth:3}),_(c);var u=b(c,2),d=p(u,!0),f=b(u,2),m=e=>{var t=j();o(e,t)};i(f,e=>{n(t).soon&&e(m)}),_(r),y(()=>a(d,n(t).text)),o(e,r)}),_(g),v(2),_(f),v(2),_(c),o(e,c)}var fe=r(`<div class="svelte-17guzaz"><span class="fig-icon svelte-17guzaz" aria-hidden="true"><!></span> <dt class="tabular svelte-17guzaz"> </dt> <dd class="svelte-17guzaz"> </dd></div>`),pe=r(` <span class="soon svelte-17guzaz">Coming soon</span>`,1),me=r(`<li class="svelte-17guzaz"><span class="tick svelte-17guzaz" aria-hidden="true"><!></span> <span> <!></span></li>`),he=r(`<article><span class="plan-icon svelte-17guzaz" aria-hidden="true"><!></span> <h3 class="svelte-17guzaz"> </h3> <p class="tagline svelte-17guzaz"> </p> <ul role="list" class="svelte-17guzaz"></ul></article>`),ge=r(`<li><span class="swatch svelte-17guzaz" aria-hidden="true"></span> </li>`),_e=r(`<span><span class="track svelte-17guzaz"><span class="bar svelte-17guzaz"></span></span> <span class="val tabular svelte-17guzaz"> </span></span>
3`),ve=r(`<li class="lrow svelte-17guzaz"><span class="what svelte-17guzaz"> </span> <div class="lanes svelte-17guzaz" role="img"></div></li>`),P=r(`<li class="svelte-17guzaz"><span class="way-icon svelte-17guzaz" aria-hidden="true"><!></span> <h3 class="svelte-17guzaz"> </h3> <p class="svelte-17guzaz"> </p></li>`),ye=r(`<!> <div class="container"><section class="hero svelte-17guzaz"><div class="copy svelte-17guzaz" data-reveal-children=""><span class="eyebrow">Plans</span> <h1 class="svelte-17guzaz">Free is a real plan. Paying lifts the limits.</h1> <p class="lede svelte-17guzaz">Replying and correcting are unlimited on every plan. Pro lifts the other 4 limits â prices are set per region and shown in the app.</p> <div class="buttons svelte-17guzaz"><!> <!></div> <p class="fine svelte-17guzaz">Monthly or yearly, with a one-week free trial, bought inside the app. Yearly is 3 months free.</p></div> <div class="device svelte-17guzaz" data-reveal=""><!></div></section> <dl class="always svelte-17guzaz"></dl> <section class="plans svelte-17guzaz" aria-labelledby="plans-title"><header class="head svelte-17guzaz"><span class="eyebrow">Two plans</span> <h2 id="plans-title" class="svelte-17guzaz">Each one lists only what is new</h2> <p class="svelte-17guzaz">Pro has everything in Free, without the limits.</p></header> <div class="cards svelte-17guzaz" data-reveal-children=""></div></section> <section class="limits svelte-17guzaz" aria-labelledby="limits-title"><header class="head svelte-17guzaz"><span class="eyebrow">The numbers</span> <h2 id="limits-title" class="svelte-17guzaz">The limits, side by side</h2> <p class="svelte-17guzaz">A rolling 24 hours, not a calendar day. Only translation has a real per-request cost.</p></header> <ul class="legend svelte-17guzaz" role="list"></ul> <ul class="rows svelte-17guzaz" role="list"></ul> <p class="notes svelte-17guzaz"> </p></section> <section class="free-pro svelte-17guzaz" aria-labelledby="free-pro-title"><header class="head svelte-17guzaz"><span class="eyebrow">Or don't pay</span> <h2 id="free-pro-title" class="svelte-17guzaz">Ways to get Pro free</h2> <p class="svelte-17guzaz">Help LangX grow, or just keep showing up.</p></header> <ul class="ways svelte-17guzaz" role="list" data-reveal-children=""></ul> <p class="notes svelte-17guzaz"> </p></section> <!> <!></div>`,1);function F(r,m){x(m,!1);let D={Free:`chat`,Pro:`zap`},A=[`free`,`pro`],j=[{icon:`check`,value:`Unlimited`,label:`replies and corrections`},{icon:`feed`,value:`Free`,label:`Echo packs, in ${ie.languages.length} languages`},{icon:`globe`,value:`182`,label:`languages in the app`},{icon:`close`,value:`0`,label:`ads, on any plan`}],M=new Intl.NumberFormat(`en-US`),N=(e,t)=>e===null?100:Math.max(e/t*100,5),F=(e,t)=>e.shown?e.shown[t]:e.values[t]===null?`Unlimited`:M.format(e.values[t]??0),be=e=>Math.max(...e.values.map(e=>e===null?0:e)),I=[{id:201,title:`Do I have to pay to learn on LangX?`,content:`No. Replying to anyone and correcting anyone are unlimited on the free plan, and Echo's packs are free too. What the free plan caps is how many conversations you can open a day (5) and how many translations you use (20), never how much you talk.`},{id:202,title:`What does Pro add?`,content:`Everything in Free without the limits: unlimited new conversations, 1,000 translations a day, five languages you are learning and five you speak, gender and city filters, Nearby, a boosted profile above the Discover list, see who viewed your profile, browse incognito, write in your language and send in theirs, and export your saved phrases. LangX Copilot, private AI feedback, is coming later.`},{id:203,title:`What stays the same on both plans?`,content:`Replies and corrections are unlimited, Echo's packs are free, there are no ads, and everyone gets the same fair-use ceiling of 500 photo, video and voice messages a day and 10 photos on their profile.`},{id:204,title:`How much do the plans cost?`,content:`Prices are set per region and shown in the app. Pro is monthly or yearly, both with a one-week free trial, and yearly works out to 3 months free. This site does not print prices because they differ from country to country.`},{id:205,title:`Can tokens buy a plan?`,content:`No, and they never will. <a href="/tokens">LangX Token</a> is an in-app point you earn by chatting and correcting; it buys frames, titles and sticker packs, not subscriptions.`},{id:206,title:`Can I cancel?`,content:`Yes, any time, from the store account you bought it with. Corrections and replies stay unlimited whether you pay or not.`},{id:207,title:`Can I get Pro by inviting friends?`,content:`Yes. Share your invite link from the app. Every 3 friends who join with it and send their first message or correction give you 1 month of Pro, up to 3 months in a calendar year. Each invite also earns you <a href="/tokens">tokens</a>.`},{id:208,title:`Do I get anything for a long streak?`,content:`Yes. A 100-day streak gives you 1 month of Pro, and a 365-day streak gives you 3 months. Each happens once, so a year-long streak adds up to 4 months. If your streak
4is already past 100 or 365 days, you get it the next time you practise.`},{id:209,title:`How do I use a gift code?`,content:`Open the plans screen in the app and tap "Have a gift code?" under the button. Type the code â capitals don't matter â and Pro starts right away, for as many months as the code gives. Each code works once per person, and a code can run out or expire.`},{id:210,title:`Will free Pro charge me when it ends?`,content:`No. Pro from an invite, a streak, a gift code or a gift from us never renews and never charges you. The app tells you a week before it ends, and again the day before. If you want to keep Pro after that, you can subscribe from the plans screen.`}],xe=e=>e.replace(/<[^>]+>/g,``),Se={"@context":`https://schema.org`,"@graph":[{"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:`${te}/`},{"@type":`ListItem`,position:2,name:`Plans`}]},{"@type":`FAQPage`,mainEntity:I.map(e=>({"@type":`Question`,name:e.title,acceptedAnswer:{"@type":`Answer`,text:xe(e.content)}}))}]};f();var L=ye(),R=e(L);ne(R,{get data(){return Se}});var z=b(R,2),B=s(z),V=s(B),H=b(s(V),6),U=s(H);w(U,{href:`https://get.langx.io`,variant:`primary`,size:`lg`,block:!0,children:(e,t)=>{v();var n=c(`Start for free`);o(e,n)},$$slots:{default:!0}});var Ce=b(U,2);w(Ce,{href:`https://get.langx.io`,variant:`secondary`,size:`lg`,block:!0,children:(e,t)=>{v();var n=c(`I already have an account`);o(e,n)},$$slots:{default:!0}}),_(H),l(H,e=>ee?.(e)),v(2),_(V),l(V,(e,t)=>O?.(e,t),()=>({children:!0,onLoad:!0,stagger:.1,y:16}));var W=b(V,2),we=s(W);re(we,{label:`The plans screen in the app: Pro's benefits, yearly or monthly`,height:`auto`,children:(e,t)=>{de(e,{})},$$slots:{default:!0}}),_(W),l(W,(e,t)=>O?.(e,t),()=>({onLoad:!0,x:40,y:0,delay:.35})),_(B);var G=b(B,2);h(G,5,()=>j,t,(e,t)=>{var r=fe(),i=s(r),c=s(i);T(c,{get name(){return n(t).icon},size:20}),_(i);var l=b(i,2),u=p(l,!0),d=b(l,2),f=p(d,!0);_(r),y(()=>{a(u,n(t).value),a(f,n(t).label)}),o(e,r)}),_(G);var K=b(G,2),q=b(s(K),2);h(q,5,()=>k,t,(r,c,l)=>{var u=he(),f=s(u),m=s(f);T(m,{get name(){return D[n(c).name]},size:24}),_(f);var g=b(f,2),x=p(g,!0),S=b(g,2),C=p(S,!0),w=b(S,2);h(w,5,()=>n(c).highlights,t,(t,r)=>{var c=me(),l=s(c),u=s(l);T(u,{name:`check`,size:16,strokeWidth:3}),_(l);var d=b(l,2),f=s(d,!0),p=b(f),m=t=>{var n=pe(),r=e(n,!0);r.nodeValue=` `,v(),o(t,n)};i(p,e=>{n(r).pending&&e(m)}),_(d),_(c),y(()=>a(f,n(r).label)),o(t,c)}),_(w),_(u),y(()=>{d(u,1,`card ${A[l]??``}`,`svelte-17guzaz`),a(x,n(c).name),a(C,n(c).tagline)}),o(r,u)}),_(q),l(q,(e,t)=>O?.(e,t),()=>({children:!0,stagger:.1})),_(K);var J=b(K,2),Y=b(s(J),2);h(Y,5,()=>k,t,(e,t,r)=>{var i=ge(),c=b(s(i),1,!0);_(i),y(()=>{d(i,1,S(A[r]),`svelte-17guzaz`),a(c,n(t).name)}),o(e,i)}),_(Y);var X=b(Y,2);h(X,5,()=>le,t,(e,r,i)=>{var c=ve(),l=s(c),f=p(l,!0),m=b(l,2);h(m,5,()=>n(r).values,t,(e,t,c)=>{var l=_e(),u=s(l),f=p(u),m=b(u,2),h=p(m,!0);_(l),y((e,t)=>{d(l,1,`lane ${A[c]??``}`,`svelte-17guzaz`),C(f,`width:${e??``}%;--d:${i*90+c*60}ms`),a(h,t)},[()=>N(n(t),be(n(r))),()=>F(n(r),c)]),o(e,l)}),_(m),_(c),y(e=>{a(f,n(r).label),u(m,`aria-label`,`${n(r).label??``}: ${e??``}`)},[()=>k.map((e,t)=>`${e.name} ${F(n(r),t)}`).join(`, `)]),o(e,c)}),_(X);var Te=b(X,2),Ee=p(Te,!0);_(J),l(J,(e,t)=>E?.(e,t),()=>({threshold:.25}));var Z=b(J,2),Q=b(s(Z),2);h(Q,5,()=>ce,t,(e,t)=>{var r=P(),i=s(r),c=s(i);T(c,{get name(){return n(t).icon},size:22}),_(i);var l=b(i,2),u=p(l,!0),d=b(l,2),f=p(d,!0);_(r),y(()=>{a(u,n(t).title),a(f,n(t).body)}),o(e,r)}),_(Q),l(Q,(e,t)=>O?.(e,t),()=>({children:!0,stagger:.1}));var De=b(Q,2),Oe=p(De,!0);_(Z);var $=b(Z,2);ae($,{get items(){return I},eyebrow:`Questions`,title:`Before you pay`});var ke=b($,2);oe(ke,{title:`Start free. Go further when you want to.`}),_(z),y(e=>{a(Ee,e),a(Oe,ue)},[()=>se.join(` `)]),o(r,L),g()}export{F as component,A as universal};
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.