1!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f3581697-3ecd-41a4-ae2a-0802ac1f2d0e",e._sentryDebugIdIdentifier="sentry-dbid-f3581697-3ecd-41a4-ae2a-0802ac1f2d0e")}catch(e){}}(),(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[18868],{51369:function(e,t,s){(window.__NEXT_P=window.__NEXT_P||[]).push(["/ai-translations",function(){return s(5538)}])},38708:function(e,t,s){"use strict";s.d(t,{U:function(){return n}});var a=s(85893);s(67294);var n=e=>{var{priority:t}=e;return t?(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("span",{"data-sm-priority":t})}):null}},43837:function(e,t,s){"use strict";s.d(t,{I:function(){return o}});var a=s(85893);s(67294);var n=s(92307),r=s.n(n),i=s(5017),o=()=>{var e=(0,i.wW)();return(0,a.jsx)("div",{className:"d-flex justify-content-center","data-sentry-component":"VSCodeBadge","data-sentry-source-file":"VSCodeBadge.tsx",children:(0,a.jsxs)("div",{className:"bg-body-tertiary text-body rounded-3 border mb-2 text-center py-2 d-flex justify-content-between align-items-center px-3",children:[(0,a.jsx)("img",{src:"/assets/icons/vscode.svg",alt:"Visual Studio Code",width:20,height:20,className:"me-2"}),(0,a.jsxs)("span",{className:"font-size-14 fw-600",children:["VS Code Extension available! ",(0,a.jsx)("a",{onClick:()=>{e("install-vscode-extension",{props:{type:"click"}})},href:"/integrations/vscode-extension/",title:"Learn more about VS Code Extension","aria-label":"Learn more about VS Code Extension",className:r().vscLearnMoreLink,children:"Install now"})]})]})})}},73553:function(e,t,s){"use strict";s.d(t,{w:function(){return n}});var a=s(85893);s(67294);var n=e=>{var{heading:t,description:s,buttonText:n,buttonLink:r}=e;return(0,a.jsx)("div",{className:"bg-gray","data-sentry-component":"InlineCTA","data-sentry-source-file":"InlineCTA.tsx",children:(0,a.jsxs)("div",{className:"container text-center py-5",children:[(0,a.jsx)("h3",{className:"font-size-24 fw-600 mb-2",children:t}),(0,a.jsx)("p",{className:"text-muted text-balance font-size-16 mb-4",children:s}),(0,a.jsx)("a",{href:r,className:"btn btn-theme-dark rounded-pill fw-600 font-size-16 py-2 px-4",children:n})]})})}},46966:function(e,t,s){"use strict";s.d(t,{v:function(){return i}});var a=s(85893),n=s(69617),r=s.n(n);s(67294);var i=e=>{var{items:t,duration:s=60,overlap:n=64}=e;return(0,a.jsxs)("div",{style:{marginTop:-n,overflow:"hidden"},"data-sentry-component":"MarqueeStrip","data-sentry-source-file":"MarqueeStrip.tsx",className:"jsx-c54c728535a82d20",children:[(0,a.jsx)("div",{className:"jsx-c54c728535a82d20 marquee-strip",children:(0,a.jsx)("div",{style:{animationDuration:"".concat(s,"s")},className:"jsx-c54c728535a82d20 marquee-strip-track",children:[void 0,void 0].flatMap((e,s)=>t.map(e=>(0,a.jsx)("span",{className:"jsx-c54c728535a82d20 marquee-strip-item",children:e},"".concat(s,"-").concat(e))))})}),(0,a.jsx)(r(),{id:"c54c728535a82d20",children:".marquee-strip.jsx-c54c728535a82d20{width:100%;mask-image:-webkit-linear-gradient(left,transparent,black 10%,black 90%,transparent);mask-image:-moz-linear-gradient(left,transparent,black 10%,black 90%,transparent);mask-image:-o-linear-gradient(left,transparent,black 10%,black 90%,transparent);mask-image:linear-gradient(to right,transparent,black 10%,black 90%,transparent);-webkit-mask-image:-webkit-linear-gradient(left,transparent,black 10%,black 90%,transparent);-webkit-mask-image:-moz-linear-gradient(left,transparent,black 10%,black 90%,transparent);-webkit-mask-image:-o-linear-gradient(left,transparent,black 10%,black 90%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,black 10%,black 90%,transparent)}.marquee-strip-track.jsx-c54c728535a82d20{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;gap:2.5rem;white-space:nowrap;-webkit-animation:marqueeStrip linear infinite;-moz-animation:marqueeStrip linear infinite;-o-animation:marqueeStrip linear infinite;animation:marqueeStrip linear infinite;width:-webkit-max-content;width:-moz-max-content;width:max-content}.marquee-strip-item.jsx-c54c728535a82d20{font-size:13px;text-transform:uppercase;font-weight:600;letter-spacing:.08em;opacity:.4;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}@-webkit-keyframes marqueeStrip{0%{-webkit-transform:translatex(0);transform:translatex(0)}100%{-webkit-transform:translatex(-50%);transform:translatex(-50%)}}@-moz-keyframes marqueeStrip{0%{-moz-transform:translatex(0);transform:translatex(0)}100%{-moz-transform:translatex(-50%);transform:translatex(-50%)}}@-o-keyframes marqueeStrip{0%{-o-transform:translatex(0);transform:translatex(0)}100%{-o-transform:translatex(-50%);transform:translatex(-50%)}}@keyframes marqueeStrip{0%{-webkit-transform:translatex(0);-moz-transform:translatex(0);-o-transform:translatex(0);transform:translatex(0)}100%{-webkit-transform:translatex(-50%);-moz-transform:translatex(-50%);-o-transform:translatex(-50%);transform:translatex(-50%)}}"})]})}},69240:function(e,t,s){"use strict";s.d(t,{u:function(){return i}});var a=s(85893),n=s(69617),r=s.n(n);s(67294);var i=e=>{var{icon:t,title:s,description:n,href:i}=e,o=(0,a.jsxs)("div",{className:"jsx-d81bd19f4b472be p-4 h-100 border rounded-3 position-relative bg-body content-card",children:[i&&(0,a.jsx)("div",{className:"jsx-d81bd19f4b472be position-absolute top-0 end-0 p-3 content-card-link-icon",children:(0,a.jsx)("i",{className:"jsx-d81bd19f4b472be fal fa-link text-primary"})}),(0,a.jsx)("div",{className:"jsx-d81bd19f4b472be mb-3",children:(0,a.jsx)("span",{className:"jsx-d81bd19f4b472be "+"".concat(t," text-color-400 fw-300 font-size-28")})}),(0,a.jsx)("h3",{className:"jsx-d81bd19f4b472be fw-600 font-size-20 mb-2",children:s}),(0,a.jsx)("p",{className:"jsx-d81bd19f4b472be text-muted mb-0",children:n}),(0,a.jsx)(r(),{id:"d81bd19f4b472be",children:".content-card-link-icon.jsx-d81bd19f4b472be{opacity:0;-webkit-transition:opacity.2s ease;-moz-transition:opacity.2s ease;-o-transition:opacity.2s ease;transition:opacity.2s ease}.content-card.jsx-d81bd19f4b472be:hover .content-card-link-icon.jsx-d81bd19f4b472be{opacity:1}"})]});return i?(0,a.jsx)("a",{href:i,className:"text-decoration-none text-body d-block h-100",children:o}):o}},94259:function(e,t,s){"use strict";s.d(t,{F:function(){return i}});var a=s(85893);s(67294);var n=[{icon:"far fa-mobile-android",title:"Mobile App Localization",href:"/app-localization/",description:(0,a.jsxs)(a.Fragment,{children:["Automate ",(0,a.jsx)("strong",{children:"iOS, Android, and Flutter"})," localization. Manage ARB, Strings, and XML files with ease via CLI or GitHub App."]})},{icon:"far fa-browser",title:"Website Localization",href:"/website-localization/",description:(0,a.jsxs)(a.Fragment,{children:["Translate your website with ",(0,a.jsx)("strong",{children:"full international SEO support"}),". Works with Next.js, Gatsby, Nuxt, Shopify, Webflow, and any headless CMS."]})},{icon:"far fa-code",title:"Software & Web Frameworks",href:"/software-localization/",description:(0,a.jsxs)(a.Fragment,{children:["Easy integration with ",(0,a.jsx)("strong",{children:"React, Next.js, Vue, and Angular"}),". Sync your translation files directly via CLI or GitHub Actions."]})},{icon:"far fa-sparkles",title:"AI-Powered Automation",href:"/ai-translations/",description:(0,a.jsxs)(a.Fragment,{children:["Scale faster with ",(0,a.jsx)("strong",{children:"DeepL, OpenAI and local LLM"})," integrations. Auto-translate new keys instantly and keep your product multi-lingual on auto
1pilot."]})}],r=e=>{var{title:t,subtitle:s}=e;return(0,a.jsxs)("h2",{className:"font-size-32 fw-600 text-muted mb-3","data-sentry-component":"StyledHeading","data-sentry-source-file":"LocalizationSolutions.tsx",children:[(0,a.jsx)("span",{className:"text-body",children:t})," ",(0,a.jsx)("br",{}),(0,a.jsx)("span",{className:"text-muted fw-500",children:s})]})},i=e=>{var{className:t="",label:s,title:i="Localization solutions",subtitle:o="for modern dev teams",heading:l,description:c="From startup MVPs to enterprise ecosystems, SimpleLocalize provides the infrastructure to manage, translate, and deliver your content at scale.",items:d=n,children:m,imageSrc:p="/landing/visuals/[email protected]",imageAlt:f="SimpleLocalize connects your code to professional translations",imageClassName:h="img-fluid",rightContent:u}=e;return(0,a.jsx)("div",{className:t,"data-sentry-component":"FeatureShowcase","data-sentry-source-file":"LocalizationSolutions.tsx",children:(0,a.jsx)("div",{className:"container py-10",children:(0,a.jsxs)("div",{className:"row align-items-center",children:[(0,a.jsxs)("div",{className:"col-lg-6",children:[s&&(0,a.jsx)("p",{className:"text-uppercase fw-600 text-muted font-size-13 mb-2",children:s}),l||(0,a.jsx)(r,{title:i,subtitle:o}),(0,a.jsx)("p",{className:"text-muted font-size-16 mb-4",children:c}),(0,a.jsx)("div",{className:"d-flex flex-column gap-4".concat(m?" mb-4":""),children:d.map(e=>(0,a.jsxs)("div",{className:"d-flex align-items-start gap-3",children:[(0,a.jsx)("div",{className:"bg-white rounded-circle d-flex align-items-center justify-content-center flex-shrink-0 border",style:{width:36,height:36},children:(0,a.jsx)("i",{className:"".concat(e.icon," font-size-16 text-dark")})}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"font-size-16 fw-600 mb-1",children:e.href?(0,a.jsx)("a",{href:e.href,className:"fw-700 text-body text-decoration-none",children:e.title}):(0,a.jsx)("span",{className:"fw-700",children:e.title})}),(0,a.jsx)("p",{className:"text-muted font-size-15 mb-0",children:e.description})]})]},e.title))}),m]}),(0,a.jsx)("div",{className:"col-lg-6 text-center mt-lg-0 mt-5",children:u||(0,a.jsx)("img",{src:p,alt:f,className:h,style:{maxWidth:"65%"}})})]})})})}},97739:function(e,t,s){"use strict";s.d(t,{z:function(){return l}});var a=s(85893);s(67294);var n=s(23908),r=s(88669),i=s.n(r),o=s(5017),l=e=>{var{buttonText:t="Start now for free",buttonLink:s=n.mm,onClick:r,showArrow:l=!0,iconPosition:c="right",icon:d="fas fa-arrow-right",customIcon:m=null}=e,p=(0,o.wW)();return(0,a.jsx)("a",{href:s,onClick:()=>{r?r():p("signup",{props:{message:t}})},className:"btn btn-primary ".concat(i().cta," py-3 px-2 mt-2"),"data-sentry-component":"CallToActionButton","data-sentry-source-file":"CallToActionButton.tsx",children:(0,a.jsxs)("div",{className:"d-flex align-items-".concat(m?"center":"baseline"," justify-content-center"),children:[l&&"left"===c&&(0,a.jsx)("i",{className:"me-2 ".concat(d)}),m&&"left"===c&&m,(0,a.jsx)("span",{className:"fw-700",children:t}),l&&"right"===c&&(0,a.jsx)("i",{className:"ms-2 ".concat(d)}),m&&"right"===c&&m]})})}},43758:function(e,t,s){"use strict";s.d(t,{o:function(){return c}});var a=s(85893);s(67294);var n=s(88669),r=s.n(n),i=s(73197),o=s(43837),l=s(97739),c=e=>{var{disableGlobalHead:t=!1,title:s,description:n,buttonText:c="Start for free",buttonLink:d,children:m=null}=e;return(0,a.jsx)("header",{className:"".concat(r().headerWide),"data-sentry-component":"HeadingWide","data-sentry-source-file":"HeadingWide.tsx",children:(0,a.jsx)("div",{className:"container",children:(0,a.jsxs)("div",{className:"row g-0",children:[(0,a.jsxs)("div",{className:"col-lg-5 col-12 mb-4 d-flex flex-column justify-content-between ".concat(r().headerWideContainer),children:[!t&&(0,a.jsx)("div",{className:"d-flex justify-content-center justify-content-lg-start",children:(0,a.jsx)(o.I,{})}),(0,a.jsx)("h1",{className:"mt-3 text-start font-size-36 font-size-lg-56 letter-spacing-2 text-gradient",children:s}),(0,a.jsx)("p",{className:"text-muted",children:n}),(0,a.jsxs)("div",{className:"mt-3",children:[(0,a.jsx)("div",{className:" d-flex flex-column justufy-content-center justify-content-lg-start alitems-center align-items-lg-start",children:(0,a.jsx)(l.z,{buttonText:c,buttonLink:d,showArrow:!0,"data-sentry-element":"CallToActionButton","data-sentry-source-file":"HeadingWide.tsx"})}),(0,a.jsx)(i.a,{"data-sentry-element":"ServiceFeatures","data-sentry-source-file":"HeadingWide.tsx"})]})]}),(0,a.jsx)("div",{className:"col-lg-6 col-12 offset-lg-1 offset-0",children:m})]})})})}},12520:function(e,t,s){"use strict";s.d(t,{Q:function(){return i}});var a=s(85893),n=s(69617),r=s.n(n);s(67294);var i=e=>
1{var{eyebrow:t="How it works",title:s,description:n,steps:i}=e,o=3===i.length?"col-md-4":4===i.length?"col-md-6 col-lg-3":"col-md-4";return(0,a.jsxs)("section",{"data-sentry-component":"HowItWorksSteps","data-sentry-source-file":"HowItWorksSteps.tsx",className:"jsx-5c38f48313d04e58 container page-section",children:[(0,a.jsx)("h2",{className:"jsx-5c38f48313d04e58 font-size-18 fw-600 text-muted text-center mb-1",children:t}),(0,a.jsx)("h3",{className:"jsx-5c38f48313d04e58 font-size-42 fw-700 text-center lh-base text-balance",children:s}),n&&(0,a.jsx)("div",{className:"jsx-5c38f48313d04e58 d-flex justify-content-center mb-5 text-balance",children:(0,a.jsx)("p",{className:"jsx-5c38f48313d04e58 text-muted text-center how-it-works-description",children:n})}),(0,a.jsxs)("div",{className:"jsx-5c38f48313d04e58 row position-relative z-1",children:[i.map((e,t)=>(0,a.jsx)("div",{className:"jsx-5c38f48313d04e58 "+(o||""),children:(0,a.jsxs)("div",{className:"jsx-5c38f48313d04e58 text-center",children:[(0,a.jsx)("div",{className:"jsx-5c38f48313d04e58 mb-3",children:(0,a.jsx)("span",{className:"jsx-5c38f48313d04e58 "+"fw-700 d-inline-block display-3 gradient-text-".concat(t+1),children:t+1})}),(0,a.jsx)("h4",{className:"jsx-5c38f48313d04e58 fw-600 font-size-18 mb-2",children:e.title}),(0,a.jsx)("p",{className:"jsx-5c38f48313d04e58 text-muted text-balance",children:e.description})]})},t)),(0,a.jsxs)("p",{className:"jsx-5c38f48313d04e58 text-muted font-size-14 mb-0 mt-4 text-center text-balance",children:["For a step-by-step walkthrough, see the"," ",(0,a.jsx)("a",{href:"/docs/general/get-started/",className:"jsx-5c38f48313d04e58",children:"getting started guide"}),"."]})]}),(0,a.jsx)(r(),{id:"5c38f48313d04e58",children:".how-it-works-description.jsx-5c38f48313d04e58{max-width:760px}.gradient-text-1.jsx-5c38f48313d04e58{background:-webkit-linear-gradient(315deg,#7fb3ff 0%,#006cf8 100%);background:-moz-linear-gradient(315deg,#7fb3ff 0%,#006cf8 100%);background:-o-linear-gradient(315deg,#7fb3ff 0%,#006cf8 100%);background:linear-gradient(135deg,#7fb3ff 0%,#006cf8 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.gradient-text-2.jsx-5c38f48313d04e58{background:-webkit-linear-gradient(315deg,#a69ff8 0%,#6b6fd6 100%);background:-moz-linear-gradient(315deg,#a69ff8 0%,#6b6fd6 100%);background:-o-linear-gradient(315deg,#a69ff8 0%,#6b6fd6 100%);background:linear-gradient(135deg,#a69ff8 0%,#6b6fd6 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.gradient-text-3.jsx-5c38f48313d04e58{background:-webkit-linear-gradient(315deg,#c5aaff 0%,#8b73e6 100%);background:-moz-linear-gradient(315deg,#c5aaff 0%,#8b73e6 100%);background:-o-linear-gradient(315deg,#c5aaff 0%,#8b73e6 100%);background:linear-gradient(135deg,#c5aaff 0%,#8b73e6 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.gradient-text-4.jsx-5c38f48313d04e58{background:-webkit-linear-gradient(315deg,#d4b3ff 0%,#9f7aea 100%);background:-moz-linear-gradient(315deg,#d4b3ff 0%,#9f7aea 100%);background:-o-linear-gradient(315deg,#d4b3ff 0%,#9f7aea 100%);background:linear-gradient(135deg,#d4b3ff 0%,#9f7aea 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}"})]})}},8687:function(e,t,s){"use strict";s.d(t,{c:function(){return c}});var a=s(85893);s(67294);var n=s(9278),r=s(49429),i=s(64046),o=s(38708),l=s(65136),c=e=>{var{children:t,seoTitle:s,seoDescription:c,lastMod:d,priority:m,socialTitle:p,socialDescription:f,socialImage:h}=e;return(0,a.jsxs)("div",{"data-sentry-component":"CommonPage","data-sentry-source-file":"CommonPage.tsx",children:[d&&(0,a.jsx)(i.p,{date:d}),(0,a.jsx)(o.U,{priority:m||.9,"data-sentry-element":"Priority","data-sentry-source-file":"CommonPage.tsx"}),(0,a.jsx)(l.Z,{title:s,description:c,socialTitle:p,socialDescription:f,socialImage:h,"data-sentry-element":"Seo","data-sentry-source-file":"CommonPage.tsx"}),(0,a.jsx)(n.Z,{"data-sentry-element":"NavigationMain","data-sentry-source-file":"CommonPage.tsx"}),t,(0,a.jsx)(r.Z,{"data-sentry-element":"Footer","data-sentry-source-file":"CommonPage.tsx"})]})}},2959:function(e,t,s){"use strict";s.d(t,{t:function(){return d}});var a=s(85893);s(67294);var n=s(92995),r=s.n(n),i=s(99560),o=s.n(i),l=s(20920),c=[{name:"Intersport",filename:"intersport.svg"},{name:"IKEA",filename:"ikea.svg"},{name:"Invisalign",filename:"invisalign.svg"},{name:"Amdocs",filename:"am-docs.svg"},{name:"OSRAM",filename:"osram.svg"},{name:"project44",filename:"project44.svg"},{name:"ngl",filename:"ngl.svg"},{name:"IQAir",filename:"iqair.svg"},{name:"walcu",filename:"walcu.png"},{name:"UNICEF",filename:"unicef.svg"},{name:"AstraZeneca",filename:"astrazeneca.svg"},{name:"naboo",filename:"naboo.svg"},{name:"Sagemath",filename:"sagemath.svg"},{name:"Brite",filename:"brite.svg"}],d=()=>(0,a.jsx)("div",{className:"bg-black py-7","data-sentry-component":"SocialProof","data-sentry-source-file":"SocialProof.tsx",children:(0,a.jsxs)("div",{className:"container",children:[(0,a.jsxs)("h2",{className:"font-size-42 fw-600 text-center text-white pb-5",children:["We power your product localization",(0,a.jsx)(l.B,{"data-sentry-element":"Breakline","data-sentry-source-file":"SocialProof.tsx"}),(0,a.jsx)("span",{className:"text-white opacity-50 fw-500",children:"From first commit to global launch"})]}),(0,a.jsx)("div",{className:r().grid,children:c.map(e=>(0,a.jsx)("img",{loading:"lazy",className:r().imageOnDark,alt:"Used at ".concat(e.name),src:"/used-by/".concat(e.filename)},"trusted_".concat(o()(e.name))))})]})});t.Z=d},6395:function(e,t,s){"use strict";s.d(t,{v:function(){return n}});var a=s(85893);s(67294);var n=e=>{var{entries:t=[],titleClassName:s="fw-600 text-body font-size-14",descriptionClassName:n="font-size-13 text-muted"}=e;return(0,a.jsx)("div",{"data-sentry-component":"SeoContent","data-sentry-source-file":"SeoContent.tsx",children:t.map((e,t)=>(0,a.jsxs)("div",{children:[(0,a.jsx)("h2",{className:s,children:e.title}),e.paragraph&&(0,a.jsx)("p",{className:"".concat(n," mb-0 pb-3"),children:e.paragraph}),(0,a.jsx)("div",{className:n,children:e.content})]},"text-entry-".concat(t)))})}},8347:function(e,t,s){"use strict";s.d(t,{D:function(){return l}});var a=s(85893),n=s(67294),r=s(9008),i=s.n(r),o=e=>{if("string"==typeof e)return e;if(n.isValidElement(e)){if("string"==typeof e.props.children)return e.props.children;if(Array.isArray(e.props.children))return e.props.children.map(e=>o(e)).join(" ");if(e.props.children)return o(e.props.children)}return""},l=e=>{var{entries:t=[],titleClassName:s="fw-600 text-body font-size-14",descriptionClassName:n="font-size-13 text-muted",useFAQSchema:r=!0}=e,l=r?{"@context":"https://schema.org","@type":"FAQPage",mainEntity:t.map(e=>
1({"@type":"Question",name:o(e.title),acceptedAnswer:{"@type":"Answer",text:o(e.paragraph||e.content||"")}}))}:null;return(0,a.jsxs)(a.Fragment,{children:[l&&(0,a.jsx)(i(),{children:(0,a.jsx)("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(l)}})}),(0,a.jsx)("div",{children:t.map((e,t)=>(0,a.jsxs)("div",{children:[(0,a.jsx)("h2",{className:s,children:e.title}),e.paragraph&&(0,a.jsx)("p",{className:"".concat(n," mb-0 pb-3"),children:e.paragraph}),(0,a.jsx)("div",{className:n,children:e.content})]},"text-entry-".concat(t)))})]})}},73197:function(e,t,s){"use strict";s.d(t,{a:function(){return i}});var a=s(85893);s(67294);var n=s(5017),r=s(14841),i=()=>{var e=(0,n.wW)();return(0,a.jsx)("div",{className:"mt-3","data-sentry-component":"ServiceFeatures","data-sentry-source-file":"ServiceFeatures.tsx",children:(0,a.jsxs)("small",{className:"text-muted fw-500",children:[(0,a.jsx)("span",{className:"text-nowrap d-none d-sm-inline",children:"No credit card required"}),(0,a.jsx)(r.Z,{className:"d-none d-sm-inline",distance:2,"data-sentry-element":"Separator","data-sentry-source-file":"ServiceFeatures.tsx"}),(0,a.jsx)("span",{className:"text-nowrap",children:"14-day free trial"}),(0,a.jsx)(r.Z,{distance:2,"data-sentry-element":"Separator","data-sentry-source-file":"ServiceFeatures.tsx"}),(0,a.jsx)("a",{href:"/privacy-policy/",className:"text-nowrap text-muted text-link--on-hover",onClick:()=>{e("tracking-free-info",{props:{message:"Tracking-free service"}})},children:"Tracking-free\xa0service"})]})})}},61550:function(e,t,s){"use strict";s.d(t,{j:function(){return o}});var a=s(85893),n=s(30120);s(67294);var r=s(88059),i=s.n(r),o=e=>{var{src:t,alt:s,title:r,description:o,style:l,uploadDate:c,figureClassName:d="",className:m,autoPlay:p=!1,loop:f=!1,controls:h=!0,hideCaption:u=!1}=e,x=c?n.ou.fromISO(c):null;return!(s.trim()||"").endsWith(")")&&x&&(s="".concat(s," (").concat(x.toFormat("LLLL yyyy"),")")),(0,a.jsxs)("figure",{className:d,"data-sentry-component":"VideoComponent","data-sentry-source-file":"VideoComponent.tsx",children:[(0,a.jsx)("video",{muted:!0,playsInline:!0,preload:"none",controls:h,autoPlay:p,poster:t.replace(".mp4",".jpg"),width:"100%",style:l,loop:f,className:"".concat(i().video," ").concat(m),height:"auto",children:(0,a.jsx)("source",{src:t,type:"video/mp4"})}),s&&!u&&(0,a.jsx)("figcaption",{className:i().p,children:s}),(0,a.jsx)("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify({"@context":"https://schema.org","@type":"VideoObject",name:r||s,description:o||s,thumbnailUrl:t.replace(".mp4",".jpg"),uploadDate:x?x.toISO():"2024-10-31T12:51:54Z",contentUrl:t,embedUrl:t})}})]})}},5538:function(e,t,s){"use strict";s.r(t),s.d(t,{__N_SSG:function(){return N}});var a=s(85893);s(67294);var n=s(9008),r=s.n(n),i=s(3653),o=s(73553),l=s(20920),c=s(61550),d=s(8687),m=s(31764),p=s(6395),f=s(8347),h=s(2959),u=s(12520),x=s(69240),g=s(43758),y=s(46966),j=s(3723),v=s(88669),b=s.n(v),w=s(254),k=s(94259),N=!0;t.default=e=>{var{articles:t}=e;return(0,a.jsxs)(d.c,{seoTitle:"AI-Powered Localization with Human-Level Context",seoDescription:"Connect Gemini, Claude, OpenAI, or any model via OpenRouter to your localization workflow. SimpleLocalize feeds AI your project context, caches translations, and only re-translates what changed.",lastMod:"2026-03-19","data-sentry-element":"CommonPage","data-sentry-component":"AITranslationsPage","data-sentry-source-file":"ai-translations.tsx",children:[(0,a.jsx)(r(),{"data-sentry-element":"Head","data-sentry-source-file":"ai-translations.tsx",children:(0,a.jsx)("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify({"@context":"https://schema.org","@type":"SoftwareApplication",name:"SimpleLocalize",applicationCategory:"DeveloperApplication",operatingSystem:"Web",url:"https://simplelocalize.io",description:"AI-powered localization platform. Connect Gemini, Claude, OpenAI, or any model via OpenRouter. Context-aware translations with smart caching and MCP support for AI agents.",offers:{"@type":"Offer",price:"0",priceCurrency:"USD"},featureList:["AI translations via OpenRouter (Gemini, Claude, OpenAI)","Project-level and key-level translation context","Smart caching â only re-translate changed keys","Character limit and tag constraint awareness","MCP server for AI agent integration","Local AI support via Ollama","DeepL and Google Translate fallback","Batch and single-key AI translation","Custom prompts and tone instructions"]})}})}),(0,a.jsx)(g.o,{title:(0,a.jsxs)(a.Fragment,{children:["The control center ",(0,a.jsx)(l.B,{})," for AI localization"]}),description:(0,a.jsx)(a.Fragment,{children:"Stop wasting tokens and losing context. Connect your preferred models: Gemini, Claude, OpenAI, or any model via OpenRouter to your codebase and let SimpleLocalize feed the AI everything it needs to translate accurately."}),buttonText:"Start for free",disableGlobalHead:!0,"data-sentry-element":"HeadingWide","data-sentry-source-file":"ai-translations.tsx",children:(0,a.jsx)("div",{className:b().screenshotContainer,style:{border:"14px solid #25292D",borderRadius:36},children:(0,a.jsx)(c.j,{src:"/video/ai-translations.mp4",title:"AI-powered localization with context",description:"AI translations powered by Gemini, Claude, OpenAI via OpenRouter with full project context, smart caching, and MCP support.",uploadDate:"2024-0
17-24",hideCaption:!0,figureClassName:"mb-0",style:{marginBottom:-10},alt:"AI-powered localization in SimpleLocalize with context-aware translations","data-sentry-element":"VideoComponent","data-sentry-source-file":"ai-translations.tsx"})})}),(0,a.jsx)("div",{className:"d-lg-none",children:(0,a.jsx)(m.L,{size:6,"data-sentry-element":"Spacer","data-sentry-source-file":"ai-translations.tsx"})}),(0,a.jsx)(y.v,{items:["Google Gemini","Anthropic Claude","OpenAI","OpenRouter integration","DeepL & Google Translate","Context-aware AI","Smart caching","MCP server","Local AI via Ollama","Custom prompts","Batch translation","Delta-only updates"],"data-sentry-element":"MarqueeStrip","data-sentry-source-file":"ai-translations.tsx"}),(0,a.jsx)(m.L,{size:6,"data-sentry-element":"Spacer","data-sentry-source-file":"ai-translations.tsx"}),(0,a.jsx)(h.t,{"data-sentry-element":"SocialProof","data-sentry-source-file":"ai-translations.tsx"}),(0,a.jsx)(m.L,{size:6,"data-sentry-element":"Spacer","data-sentry-source-file":"ai-translations.tsx"}),(0,a.jsx)("section",{className:"container",children:(0,a.jsxs)("div",{className:"row align-items-center gx-lg-5 gy-5 gx-3",children:[(0,a.jsxs)("div",{className:"col-lg-6",children:[(0,a.jsx)("p",{className:"text-uppercase fw-600 text-muted font-size-13 mb-2",children:"Quality Control"}),(0,a.jsx)("h2",{className:"font-size-42 fw-700 mb-3",children:"The context engine"}),(0,a.jsxs)("p",{className:"text-muted font-size-16",children:["Raw AI often fails because it doesn't know if âHomeâ is a house or a navigation button. SimpleLocalize solves this by feeding every translation request rich metadata that ",(0,a.jsx)("strong",{children:"eliminates ambiguity before the model even starts"}),"."]}),(0,a.jsxs)("p",{className:"text-muted font-size-16 mb-0",children:["The result: translations that are accurate on the first pass, fewer review cycles, and"," ",(0,a.jsx)("a",{href:"/blog/posts/chatgpt-deepl-context/",children:"context that actually works"}),", not copy-pasted instructions you have to rewrite every time."]})]}),(0,a.jsx)("div",{className:"col-lg-6",children:(0,a.jsxs)("div",{className:"rounded-4 overflow-hidden",style:{background:"#1e1e2e",boxShadow:"0 8px 32px rgba(0,0,0,0.18)"},children:[(0,a.jsxs)("div",{className:"d-flex align-items-center gap-2 px-4 py-2",style:{background:"#181825"},children:[(0,a.jsx)("span",{style:{width:12,height:12,borderRadius:"50%",background:"#f38ba8"}}),(0,a.jsx)("span",{style:{width:12,height:12,borderRadius:"50%",background:"#f9e2af"}}),(0,a.jsx)("span",{style:{width:12,height:12,borderRadius:"50%",background:"#a6e3a1"}}),(0,a.jsx)("span",{className:"ms-2 font-size-12",style:{color:"#6c7086"},children:"Context sent to AI model"})]}),(0,a.jsxs)("div",{className:"p-4",style:{fontFamily:"monospace",whiteSpace:"pre-wrap",color:"#cdd6f4",lineHeight:1.7,fontSize:13},children:[(0,a.jsx)("span",{style:{color:"#6c7086"},children:"// Project context"}),"\n",(0,a.jsx)("span",{style:{color:"#f9e2af"},children:"project"}),": ",(0,a.jsx)("span",{style:{color:"#a6e3a1"},children:'"A fintech app for Gen Z users"'}),"\n",(0,a.jsx)("span",{style:{color:"#f9e2af"},children:"tone"}),": ",(0,a.jsx)("span",{style:{color:"#a6e3a1"},children:'"Informal, friendly, concise"'}),"\n\n",(0,a.jsx)("span",{style:{color:"#6c7086"},children:"// Key-level context"}),"\n",(0,a.jsx)("span",{style:{color:"#f9e2af"},children:"key"}),": ",(0,a.jsx)("span",{style:{color:"#89b4fa"},children:'"HOME_NAV_BUTTON"'}),"\n",(0,a.jsx)("span",{style:{color:"#f9e2af"},children:"desc"}),": ",(0,a.jsx)("span",{style:{color:"#a6e3a1"},children:'"Navigation button, not a building"'}),"\n",(0,a.jsx)("span",{style:{color:"#f9e2af"},children:"limit"}),": ",(0,a.jsx)("span",{style:{color:"#fab387"},children:"12"}),(0,a.jsx)("span",{style:{color:"#6c7086"},children:" // characters max"}),"\n",(0,a.jsx)("span",{style:{color:"#f9e2af"},children:"tags"}),": ",(0,a.jsx)("span",{style:{color:"#a6e3a1"},children:'["ui", "navigation"]'}),"\n\n",(0,a.jsx)("span",{style:{color:"#6c7086"},children:"// Result"}),"\n",(0,a.jsx)("span",{style:{color:"#f9e2af"},children:"en"}),": ",(0,a.jsx)("span",{style:{color:"#a6e3a1"},children:'"Home"'})," â ",(0,a.jsx)("span",{style:{color:"#f9e2af"},children:"de"}),": ",(0,a.jsx)("span",{style:{color:"#a6e3a1"},children:'"Start"'}),"\n",(0,a.jsx)("span",{style:{color:"#6c7086"},children:'// Not "Zuhause" (house), context prevents this'})]})]})})]})}),(0,a.jsx)(m.L,{size:6,"data-sentry-element":"Spacer","data-sentry-source-file":"ai-translations.tsx"}),(0,a.jsx)("div",{className:"bg-gray",children:(0,a.jsxs)("div",{className:"container py-10",children:[(0,a.jsx)("h2",{className:"font-size-42 fw-700 text-center mb-2",children:"What SimpleLocalize sends to the AI"}),(0,a.jsx)("p",{className:"text-muted text-center text-balance col-lg-8 mx-auto mb-5",children:"Every translation request is enriched with structured metadata. No manual prompt engineering required."}),(0,a.jsx)("div",{className:"row g-4",children:[{icon:"far fa-bullseye",title:"Project context",description:"Define what your product is, who it's for, and how it should sound. Set it once at the project level and every AI request inherits it automatically."},{icon:"far fa-tag",title:"Key-level descriptions",description:"Add descriptions to individual keys so the AI knows exactly what each string means. No more ambiguous translations or misunderstandings."},{icon:"far fa-ruler-horizontal",title:"Constraint awareness",description:"Hard character limits, placeholder preservation, and HTML tag rules are enforced automatically. No more layout-breaking translations."},{icon:"far fa-language",title:"Tone & formality instructions",description:"Specify formal vs. informal tone, regional preferences, or industry-specific jargon per language or project. The AI adapts its output accordingly."}].map(e=>(0,a.jsx)("div",{className:"col-md-6",children:(0,a.jsx)(x.u,{icon:e.icon,title:e.title,de
1scription:e.description})},e.title))})]})}),(0,a.jsx)(m.L,{size:6,"data-sentry-element":"Spacer","data-sentry-source-file":"ai-translations.tsx"}),(0,a.jsx)("section",{className:"container",children:(0,a.jsxs)("div",{className:"row align-items-center gx-lg-5 gy-5 gx-3",children:[(0,a.jsxs)("div",{className:"col-lg-6 order-lg-2",children:[(0,a.jsx)("p",{className:"text-uppercase fw-600 text-muted font-size-13 mb-2",children:"Cost Efficiency"}),(0,a.jsxs)("h2",{className:"font-size-42 fw-700 mb-3",children:["Smart caching: ",(0,a.jsx)(l.B,{"data-sentry-element":"Breakline","data-sentry-source-file":"ai-translations.tsx"})," only translate what changed"]}),(0,a.jsx)("p",{className:"text-muted font-size-16",children:'Dumping your entire JSON file into ChatGPT and re-translating everything is expensive and risky. Previously correct translations can "drift" between runs, introducing subtle inconsistencies that are hard to catch.'}),(0,a.jsxs)("p",{className:"text-muted font-size-16 mb-0",children:["SimpleLocalize acts as a ",(0,a.jsx)("strong",{children:"translation memory and AI cache"}),". When you update your keys, the system identifies the delta, only the new or changed strings, and sends just those to the AI. Everything else stays locked and consistent, you ",(0,a.jsx)("strong",{children:"save money on tokens"})," and prevent hallucination drift in previously approved translations."]})]}),(0,a.jsx)("div",{className:"col-lg-6 order-lg-1",children:(0,a.jsxs)("div",{className:"rounded-4 overflow-hidden",style:{background:"#1e1e2e",boxShadow:"0 8px 32px rgba(0,0,0,0.18)"},children:[(0,a.jsxs)("div",{className:"d-flex align-items-center gap-2 px-4 py-2",style:{background:"#181825"},children:[(0,a.jsx)("span",{style:{width:12,height:12,borderRadius:"50%",background:"#f38ba8"}}),(0,a.jsx)("span",{style:{width:12,height:12,borderRadius:"50%",background:"#f9e2af"}}),(0,a.jsx)("span",{style:{width:12,height:12,borderRadius:"50%",background:"#a6e3a1"}}),(0,a.jsx)("span",{className:"ms-2 font-size-12",style:{color:"#6c7086"},children:"Delta translation: only send changes"})]}),(0,a.jsxs)("div",{className:"p-4",style:{fontFamily:"monospace",whiteSpace:"pre-wrap",color:"#cdd6f4",lineHeight:1.7,fontSize:13},children:[(0,a.jsx)("span",{style:{color:"#6c7086"},children:"// Your project: 2,400 keys"}),"\n",(0,a.jsx)("span",{style:{color:"#6c7086"},children:"// Last sync: 2,380 keys translated"}),"\n\n",(0,a.jsx)("span",{style:{color:"#a6e3a1"},children:"+ NEW_FEATURE_TITLE"})," ",(0,a.jsx)("span",{style:{color:"#6c7086"},children:"// added"}),"\n",(0,a.jsx)("span",{style:{color:"#a6e3a1"},children:"+ NEW_FEATURE_DESC"})," ",(0,a.jsx)("span",{style:{color:"#6c7086"},children:"// added"}),"\n",(0,a.jsx)("span",{style:{color:"#f9e2af"},children:"~ PRICING_CTA"})," ",(0,a.jsx)("span",{style:{color:"#6c7086"},children:"// changed"}),"\n\n",(0,a.jsx)("span",{style:{color:"#6c7086"},children:"// AI translates 3 keys, not 2,400"}),"\n",(0,a.jsx)("span",{style:{color:"#f9e2af"},children:"Tokens used"}),": ",(0,a.jsx)("span",{style:{color:"#a6e3a1"},children:"~340"})," ",(0,a.jsx)("span",{style:{color:"#6c7086"},children:"(vs ~48,000 for full rescan)"}),"\n",(0,a.jsx)("span",{style:{color:"#f9e2af"},children:"Cost saved"}),": ",(0,a.jsx)("span",{style:{color:"#a6e3a1"},children:"~99%"})]})]})})]})}),(0,a.jsx)(m.L,{size:6,"data-sentry-element":"Spacer","data-sentry-source-file":"ai-translations.tsx"}),(0,a.jsx)("div",{className:"bg-gray",children:(0,a.jsxs)("div",{className:"container py-10",children:[(0,a.jsxs)("div",{className:"text-center mb-5",children:[(0,a.jsx)("p",{className:"text-uppercase fw-600 text-muted font-size-13 mb-2",children:"Model Agnostic"}),(0,a.jsx)("h2",{className:"font-size-42 fw-700 mb-3",children:"Your workflow, your model"}),(0,a.jsx)("p",{className:"text-muted font-size-16 col-lg-8 mx-auto text-balance",children:"Whether it's the speed of Gemini, the reasoning of Claude, or the ubiquity of OpenAI, swap models without changing your workflow. Use custom prompts and provider-specific settings too."})]}),(0,a.jsx)("div",{className:"row g-4",children:[{logo:w.P.googleGemini,title:"Google Gemini",description:"Optimized for speed and cost. Ideal for bulk-translating large batches of UI strings where throughput matters more than nuance."},{logo:w.P.claude,title:"Anthropic Claude",description:"Excels at creative and nuanced copy. Use it for marketing pages, onboarding flows, and content where tone and cultural fit are critical."},{logo:w.P.openAi,title:"OpenAI",description:"The general-purpose workhorse. Strong across languages with broad coverage and reliable output for everyday localization tasks."},{logo:w.P.openRouter,title:"OpenRouter",description:"Swap models per task or per project via OpenRouter. Use fast models for bulk jobs and premium models for high-stakes copy, no lock-in."}].map(e=>(0,a.jsx)("div",{className:"col-md-6 col-lg-3",children:(0,a.jsxs)("div",{className:"p-4 h-100 border rounded-3 bg-body",children:[(0,a.jsx)("div",{className:"mb-3",children:(0,a.jsx)("img",{src:e.logo,alt:e.title,width:28,height:28})}),(0,a.jsx)("h3",{className:"fw-600 font-size-20 mb-2",children:e.title}),(0,a.jsx)("p",{className:"text-muted mb-0",children:e.description})]})}
1,e.title))}),(0,a.jsx)("div",{className:"text-center mt-5",children:(0,a.jsxs)("p",{className:"text-muted font-size-15 mb-0",children:["Plus ",(0,a.jsx)("strong",{children:"DeepL"})," and ",(0,a.jsx)("strong",{children:"Google Translate"})," for traditional machine translation. Use them as a cost-effective baseline, then refine with AI where context matters."]})})]})}),(0,a.jsx)(m.L,{size:4,"data-sentry-element":"Spacer","data-sentry-source-file":"ai-translations.tsx"}),(0,a.jsx)(k.F,{label:"Enterprise Privacy",heading:(0,a.jsxs)("h2",{className:"font-size-32 fw-600 text-muted mb-3",children:[(0,a.jsx)("span",{className:"text-body",children:"Local AI for teams that"})," ",(0,a.jsx)("br",{}),(0,a.jsx)("span",{className:"text-muted fw-500",children:"can't use the cloud"})]}),description:(0,a.jsxs)(a.Fragment,{children:["Some teams can't send translation data to external APIs due to regulatory requirements, NDA-protected content, or internal policy. SimpleLocalize supports ",(0,a.jsx)("strong",{children:"local LLMs via Ollama or any OpenAI-compatible endpoint"}),", so your data never leaves your infrastructure."]}),items:[{icon:"far fa-shield-check",title:"Air-gapped translation",description:"Run models like Llama, Mistral, or Gemma locally. Translations are generated on your own hardware with zero external network calls."},{icon:"far fa-key",title:"Bring your own API key",description:"Connect your own OpenAI, OpenRouter, or custom endpoint. You control your own usage, billing, and rate limits directly with the provider."},{icon:"far fa-building",title:"Enterprise-ready",description:"SOC 2 readiness, SSO, and role-based access. AI localization without compromising your security posture."}],rightContent:(0,a.jsxs)("div",{className:"rounded-4 overflow-hidden",style:{background:"#1e1e2e",boxShadow:"0 8px 32px rgba(0,0,0,0.18)"},children:[(0,a.jsxs)("div",{className:"d-flex align-items-center gap-2 px-4 py-2",style:{background:"#181825"},children:[(0,a.jsx)("span",{style:{width:12,height:12,borderRadius:"50%",background:"#f38ba8"}}),(0,a.jsx)("span",{style:{width:12,height:12,borderRadius:"50%",background:"#f9e2af"}}),(0,a.jsx)("span",{style:{width:12,height:12,borderRadius:"50%",background:"#a6e3a1"}}),(0,a.jsx)("span",{className:"ms-2 font-size-12",style:{color:"#6c7086"},children:"Local AI via Ollama"})]}),(0,a.jsxs)("div",{className:"p-4",style:{fontFamily:"monospace",whiteSpace:"pre-wrap",color:"#cdd6f4",lineHeight:1.7,fontSize:13},children:[(0,a.jsx)("span",{style:{color:"#6c7086"},children:"# Run a local model with Ollama"}),"\n",(0,a.jsx)("span",{style:{color:"#89b4fa"},children:"$"})," ollama run llama3.1\n\n",(0,a.jsx)("span",{style:{color:"#6c7086"},children:"# Point SimpleLocalize to your local endpoint"}),"\n",(0,a.jsx)("span",{style:{color:"#f9e2af"},children:"Provider"}),": ",(0,a.jsx)("span",{style:{color:"#a6e3a1"},children:"Custom OpenAI-compatible"}),"\n",(0,a.jsx)("span",{style:{color:"#f9e2af"},children:"Endpoint"}),": ",(0,a.jsx)("span",{style:{color:"#a6e3a1"},children:"https://my-local-machine.ngrok.io"}),"\n",(0,a.jsx)("span",{style:{color:"#f9e2af"},children:"Model"}),": ",(0,a.jsx)("span",{style:{color:"#a6e3a1"},children:"llama3.1"}),"\n\n",(0,a.jsx)("span",{style:{color:"#6c7086"},children:"// No need to use external AI provider"})]})]}),"data-sentry-element":"FeatureShowcase","data-sentry-source-file":"ai-translations.tsx"}),(0,a.jsx)(m.L,{size:2,"data-sentry-element":"Spacer","data-sentry-source-file":"ai-translations.tsx"}),(0,a.jsx)("div",{className:"",children:(0,a.jsxs)("div",{className:"container py-10",children:[(0,a.jsxs)("div",{className:"text-center mb-5",children:[(0,a.jsx)("p",{className:"text-uppercase fw-600 text-muted font-size-13 mb-2",children:"Side by side"}),(0,a.jsxs)("h2",{className:"font-size-42 fw-700 mb-3",children:["Manual AI copy-paste vs.",(0,a.jsx)("br",{className:"d-none d-md-block"})," SimpleLocalize AI"]}),(0,a.jsx)("p",{className:"text-muted font-size-16 col-lg-8 mx-auto text-balance",children:"Pasting strings into ChatGPT works for a demo. It doesn't work for a product with 50 languages and thousands of keys."})]}),(0,a.jsxs)("div",{className:"col-lg-10 mx-auto border border-dark rounded-4 overflow-hidden",children:[(0,a.jsxs)("div",{className:"d-none d-md-flex bg-dark text-white px-4 px-md-5 py-3",children:[(0,a.jsx)("div",{className:"col-md-2 fw-600 font-size-14",children:"Feature"}),(0,a.jsx)("div",{className:"col-md-5 fw-600 font-size-14",children:"Manual AI (Copy-Paste)"}),(0,a.jsx)("div",{className:"col-md-5 fw-600 font-size-14",children:"SimpleLocalize AI"})]}),(0,a.jsx)("div",{className:"px-4 px-md-5",children:[{label:"Context",manual:"None (unless manually typed every time)",
1sl:"Automatic: tags, keys, project intent"},{label:"Consistency",manual:"High risk of style drift between runs",sl:"Caching & translation memory"},{label:"Cost",manual:"High: paying for full file re-scans",sl:"Low: only changed keys are sent to AI"},{label:"Speed",manual:"Slow manual copy-paste workflow",sl:"Automated via CLI, API, and editor"},{label:"Privacy",manual:"Public cloud only",sl:"Local AI & enterprise options available"}].map((e,t,s)=>(0,a.jsxs)("div",{className:"row align-items-md-center py-4".concat(t<s.length-1?" border-bottom":""),children:[(0,a.jsx)("div",{className:"col-12 col-md-2 fw-700 font-size-15 mb-2 mb-md-0",children:e.label}),(0,a.jsxs)("div",{className:"col-12 col-md-5 font-size-15 text-muted mb-1 mb-md-0",children:[(0,a.jsx)("i",{className:"far fa-xmark me-2 opacity-50 font-size-13"}),(0,a.jsx)("span",{className:"d-md-none fw-500",children:"Manual: "}),e.manual]}),(0,a.jsxs)("div",{className:"col-12 col-md-5 font-size-15 fw-600",children:[(0,a.jsx)("i",{className:"far fa-check text-success me-2"}),(0,a.jsx)("span",{className:"d-md-none fw-500",children:"SimpleLocalize: "}),e.sl]})]},e.label))})]})]})}),(0,a.jsx)(m.L,{size:4,"data-sentry-element":"Spacer","data-sentry-source-file":"ai-translations.tsx"}),(0,a.jsx)("div",{className:"bg-gray",children:(0,a.jsx)("div",{className:"container py-10",children:(0,a.jsxs)("div",{className:"row align-items-center gx-lg-5 gy-5 gx-3",children:[(0,a.jsxs)("div",{className:"col-lg-6",children:[(0,a.jsx)("p",{className:"text-uppercase fw-600 text-muted font-size-13 mb-2",children:"The Technical Edge"}),(0,a.jsxs)("h2",{className:"font-size-42 fw-700 mb-3",children:["MCP: Let AI agents",(0,a.jsx)(l.B,{"data-sentry-element":"Breakline","data-sentry-source-file":"ai-translations.tsx"})," translate your app"]}),(0,a.jsxs)("p",{className:"text-muted font-size-16",children:["SimpleLocalize ships an official ",(0,a.jsx)("a",{href:"/docs/integrations/model-context-protocol/",children:"MCP (Model Context Protocol) server"})," that lets AI agents, in Cursor, Windsurf, Claude Desktop, or any MCP-compatible client, interact directly with your localization data."]}),(0,a.jsxs)("p",{className:"text-muted font-size-16",children:["Your AI coding assistant can query missing translations, update keys, and trigger auto-translation without you ever leaving the IDE. This is the bridge between ",(0,a.jsx)("strong",{children:"AI-driven dev cycles and production-ready localization"}),"."]}),(0,a.jsxs)("div",{className:"d-flex flex-column gap-3",children:[(0,a.jsxs)("div",{className:"d-flex align-items-start gap-3",children:[(0,a.jsx)("i",{className:"far fa-magnifying-glass font-size-16 mt-1 text-primary"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"fw-600 font-size-15",children:"Find missing translations"}),(0,a.jsx)("p",{className:"text-muted font-size-14 mb-0",children:"Agent queries the MCP server for untranslated keys in a given language."})]})]}),(0,a.jsxs)("div",{className:"d-flex align-items-start gap-3",children:[(0,a.jsx)("i",{className:"far fa-pen font-size-16 mt-1 text-primary"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"fw-600 font-size-15",children:"Update keys from the IDE"}),(0,a.jsx)("p",{className:"text-muted font-size-14 mb-0",children:"Push new or changed translation keys directly from your code editor via the agent."})]})]}),(0,a.jsxs)("div",{className:"d-flex align-items-start gap-3",children:[(0,a.jsx)("i",{className:"far fa-sparkles font-size-16 mt-1 text-primary"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"fw-600 font-size-15",children:"Auto-translate in context"}),(0,a.jsx)("p",{className:"text-muted font-size-14 mb-0",children:"The agent triggers AI translation with full project context, right from your workflow."})]})]}),(0,a.jsx)("div",{className:"pt-2",children:(0,a.jsx)("a",{href:"/ai-translation-mcp/",className:"btn btn-primary btn-better",children:"Learn more about MCP"})})]})]}),(0,a.jsx)("div",{className:"col-lg-6",children:(0,a.jsx)(c.j,{autoPlay:!0,loop:!0,controls:!1,hideCaption:!0,title:"SimpleLocalize MCP Server for Cursor AI",description:"Localizing a React component with Cursor AI and SimpleLocalize MCP Server Extension",src:"/video/cursor-ai/working-cursor-ai.mp4",alt:"Localizing a React component with Cursor AI and SimpleLocalize MCP Server Extension","data-sentry-element":"VideoComponent","data-sentry-source-file":"ai-translations.tsx"})})]})})}),(0,a.jsx)(m.L,{size:6,"data-sentry-element":"Spacer","data-sentry-source-file":"ai-translations.tsx"}),(0,a.jsxs)("section",{className:"container",children:[(0,a.jsxs)("div",{className:"text-center mb-5",children:[(0,a.jsx)("p",{className:"text-uppercase fw-600 text-muted font-size-13 mb-2",children:"Built-in Editor"}),(0,a.jsx)("h2",{className:"font-size-42 fw-700 mb-3",children:"AI as your copilot, not a black box"}),(0,a.jsx)("p",{className:"text-muted font-size-16 col-lg-8 mx-auto text-balance",children:"The SimpleLocalize editor puts AI translation controls right where you work: batch-translate missing keys, review suggestions side-by-side, or fix individual strings with one click."})]}),(0,a.jsxs)("div",{className:"row g-4",children:[(0,a.jsx)("div",{className:"col-md-6 col-lg-4",children:(0,a.jsx)(x.u,{icon:"far fa-language",title:"Batch AI translation",description:"Select a language and translate all missing keys in one click. Choose your model, set the context, and let the AI handle the rest.",href:"/auto-translation/","data-sentry-element":"ContentCard","data-sentry-source-file":"ai-translations.tsx"})}),(0,a.jsx)("div",{className:"col-md-6 col-lg-4",children:(0,a.jsx)(x.u,{icon:"far fa-browser",title:"AI-assisted editor",description:"Translators work in a full-featured editor with quick AI translate, improve, and adjust actions built in. AI assists the workflow, not replaces it.",href:"/i18n-editor-online/","data-sentry-element":"ContentCard","data-sentry-source-file":"ai-translations.tsx"})}),(0,a.jsx)("div",{className:"col-md-6 col-lg-4",children:(0,a.jsx)(x.u,{icon:"far fa-sparkles",title:"Single-key AI actions",description:"Right-click any key to AI-translate, improve, shorten, or adjust tone. Context menu actions powered by your connected model.",href:"/docs/translation-editor/ai-actions/","data-sentry-element":"ContentCard","data-sentry-source-file":"ai-translations.tsx"})}),(0,a.jsx)("div",{className:"col-md-6 col-lg-4",children:(0,a.jsx)(x.u,{icon:"far fa-robot",title:"Automations",description:"Set up rules to auto-translate new keys on import, run QA checks, or auto-publish approved translations, zero manual steps.",href:"/translation-automations/","data-sentry-element":"ContentCard","data-sentry-source-file":"ai-translations.tsx"})}),(0,a.jsx)("div",{className:"col-md-6 col-lg-4",children:(0,a.jsx)(x.u,{icon:"far fa-clock-rotate-left",title:"Translation history",description:"Every AI-generated and human edit is tracked with full change history. Review who changed what, when, and roll back if needed.",href:"/i18n-editor-online/","data-sentry-element":"ContentCard","data-sentry-source-file":"ai-translations.tsx"})}),(0,a.jsx)("div",{className:"col-md-6 col-lg-4",children:(0,a.jsx)(x.u,{icon:"far fa-code-branch",t
1itle:"CLI & CI/CD integration",description:"Push keys and pull translations via the SimpleLocalize CLI. Plug AI translation into your pipeline with GitHub Actions or any CI runner.",href:"/docs/integrations/github-app/","data-sentry-element":"ContentCard","data-sentry-source-file":"ai-translations.tsx"})})]})]}),(0,a.jsx)(m.L,{size:6,"data-sentry-element":"Spacer","data-sentry-source-file":"ai-translations.tsx"}),(0,a.jsx)(u.Q,{eyebrow:"How it works",title:(0,a.jsx)(a.Fragment,{children:"From source code to AI-translated app"}),description:"A proven workflow to get your project translated with AI in minutes, not days.",steps:[{title:"Connect your codebase",description:"Push translation keys from your repo using the CLI or CI/CD. SimpleLocalize auto-detects your file format and organizes keys by namespace."},{title:"Set project context",description:"Describe your product, target audience, and tone. Add key-level descriptions and character limits where needed. This metadata feeds every AI request."},{title:"Choose your AI model",description:"Pick OpenAI, Claude, Gemini, or any other model. Use DeepL or Google Translate as a fast baseline. Mix and match per language or task."},{title:"Translate & review",description:"Run batch AI translation for missing keys. Review in the editor, approve or refine, then publish via CDN or export to your repo."}],"data-sentry-element":"HowItWorksSteps","data-sentry-source-file":"ai-translations.tsx"}),(0,a.jsx)(o.w,{heading:"Ready to stop copy-pasting into ChatGPT?",description:"Start a free project and AI-translate your first keys in minutes.",buttonText:"Start for free",buttonLink:"/register/","data-sentry-element":"InlineCTA","data-sentry-source-file":"ai-translations.tsx"}),(0,a.jsx)(m.L,{size:4,"data-sentry-element":"Spacer","data-sentry-source-file":"ai-translations.tsx"}),(0,a.jsx)("div",{className:"",children:(0,a.jsxs)("div",{className:"container py-10",children:[(0,a.jsxs)("div",{className:"text-center mb-5",children:[(0,a.jsx)("p",{className:"text-uppercase fw-600 text-muted font-size-13 mb-2",children:"Why SimpleLocalize"}),(0,a.jsxs)("h2",{className:"font-size-42 fw-700 mb-3",children:["Built for the way",(0,a.jsx)(l.B,{"data-sentry-element":"Breakline","data-sentry-source-file":"ai-translations.tsx"})," AI localization actually works"]}),(0,a.jsx)("p",{className:"text-muted font-size-16 col-lg-6 mx-auto text-balance",children:'Not just another "AI translate" button. A full pipeline from context to cache to delivery.'})]}),(0,a.jsx)("div",{className:"col-lg-9 mx-auto",children:[{icon:"far fa-brain",label:"Context engine",detail:"Project-level and key-level context, tone instructions, and constraint rules, all sent automatically to AI."},{icon:"far fa-database",label:"Smart caching",detail:"Translation memory meets AI. Only changed keys are re-translated. Approved strings stay locked."},{icon:"far fa-shuffle",label:"Model agnostic",detail:"OpenAI, Claude, Gemini, DeepL, Google Translate, or your own model. Switch anytime via OpenRouter."},{icon:"far fa-shield-check",label:"Privacy first",detail:"Local AI via Ollama, BYOK, and enterprise security. Your translations, your infrastructure."},{icon:"far fa-terminal",label:"MCP & CLI",detail:"AI agents translate from your IDE via MCP. CI/CD pipelines sync keys on every commit."},{icon:"far fa-dollar-sign",label:"Fair pricing",detail:"Use your own API keys for no fees for AI. Pay only for what you translate using built-in tools."}].map((e,t,s)=>(0,a.jsxs)("div",{className:"d-flex align-items-baseline gap-4 py-4".concat(t<s.length-1?" border-bottom":""),children:[(0,a.jsx)("i",{className:"".concat(e.icon," font-size-16 text-primary text-center flex-shrink-0"),style:{width:20}}),(0,a.jsx)("span",{className:"fw-600 font-size-16 flex-shrink-0",style:{width:180},children:e.label}),(0,a.jsx)("span",{className:"text-muted font-size-15",children:e.detail})]},e.label))})]})}),(0,a.jsx)(m.L,{size:4,"data-sentry-element":"Spacer","data-sentry-source-file":"ai-translations.tsx"}),(0,a.jsx)(i.Z,{heading:"Start AI-powered localization today",listItems:["Gemini, Claude, OpenAI via OpenRouter","Context-aware AI translations","Smart caching â only translate changes","MCP server for AI agent workflows","Local AI & enterprise privacy options"],primaryButtonText:"Open the Editor","data-sentry-element":"CallToAction","data-sentry-source-file":"ai-translations.tsx"}),(0,a.jsx)(m.L,{size:6,"data-sentry-element":"Spacer","data-sentry-source-file":"ai-translations.tsx"}),(0,a.jsx)(j.Z,{title:"Learn more about AI localization",description:"Guides, tutorials, and best practices for AI-powered translation workflows.",articles:t,vertical:!0,"data-sentry-element":"ArticlesList","data-sentry-source-file":"ai-translations.tsx"}),(0,a.jsx)(m.L,{size:6,"data-sentry-element":"Spacer","data-sentry-source-file":"ai-translations.tsx"}),(0,a.jsx)("section",{className:"container",children:(0,a.jsx)(p.v,{entr
1ies:[{title:"What is AI-powered localization?",content:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("p",{children:[(0,a.jsx)("strong",{children:"AI-powered localization"})," uses large language models (LLMs) from OpenAI, Anthropic, Google, and others to translate software strings with contextual awareness. Unlike traditional machine translation (MT) that operates on isolated sentences, AI models can process metadata â project descriptions, key-level context, tone instructions, and character constraints â to produce translations that fit your product naturally."]}),(0,a.jsxs)("p",{children:["SimpleLocalize bridges the gap between raw AI capability and production-ready localization by acting as a ",(0,a.jsx)("strong",{children:"context layer and caching system"})," between your codebase and the AI model. You define the context once, and every translation request inherits it automatically. Combined with smart caching that only re-translates changed keys, AI localization becomes both"," ",(0,a.jsx)("a",{href:"/blog/posts/deepl-google-translate-openai-comparison/",children:"cost-effective and consistent"}),"."]})]})},{title:"How does the Context Engine improve AI translation quality?",content:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("p",{children:"The Context Engine sends structured metadata alongside every translation request. This includes the project description (e.g., âa fintech app for Gen Zâ), key-level descriptions and screenshots, character limits, placeholder rules, and tone instructions (formal vs. informal)."}),(0,a.jsxs)("p",{children:["This context prevents common AI translation errors â like translating âHomeâ as a building instead of a navigation button â without requiring you to write custom prompts for every string. Read more about how"," ",(0,a.jsx)("a",{href:"/blog/posts/chatgpt-deepl-context/",children:"context improves AI translations"}),"."]})]})},{title:"What is OpenRouter and how does it work with SimpleLocalize?",content:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("p",{children:[(0,a.jsx)("a",{href:"/blog/posts/introducing-openrouter/",children:"OpenRouter"})," is a unified API gateway that gives you access to dozens of AI models â Gemini, Claude, OpenAI, Llama, Mistral, and more â through a single endpoint. SimpleLocalize integrates with OpenRouter so you can switch between models without changing your workflow."]}),(0,a.jsx)("p",{children:"This means you can use fast, cheap models from Google for bulk translation of UI strings, and switch to Claude for nuanced marketing copy â all within the same project. You can also connect local models via Ollama for air-gapped, privacy-first translation workflows."})]})},{title:"AI translations vs. machine translations (DeepL, Google Translate)",content:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("p",{children:[(0,a.jsx)("strong",{children:"Machine translation (MT)"})," services like DeepL and Google Translate use specialized neural networks trained specifically for translation. They are fast, predictable, and cost-effective for straightforward content. ",(0,a.jsx)("strong",{children:"AI translations"})," using LLMs offer deeper contextual understanding â they can follow tone instructions, respect character limits, and adapt to project-specific terminology."]}),(0,a.jsxs)("p",{children:["In practice, the best approach is often hybrid: use MT as a fast baseline, then apply AI where context matters. SimpleLocalize supports both workflows â"," ",(0,a.jsx)("a",{href:"/blog/posts/deepl-google-translate-openai-comparison/",children:"compare DeepL, Google Translate, and OpenAI"})," to decide what fits your project."]})]})},{title:"What is MCP (Model Context Protocol) and how does it help with localization?",content:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("p",{children:[(0,a.jsx)("strong",{children:"MCP (Model Context Protocol)"})," is an open standard that allows AI agents to interact with external tools and data sources. SimpleLocalize provides an"," ",(0,a.jsx)("a",{href:"/docs/integrations/model-context-protocol/",children:"official MCP server"})," that AI coding assistants â in Cursor, Windsurf, Claude Desktop, or any MCP-compatible client â can use to query, update, and translate localization data directly from the IDE."]}),(0,a.jsx)("p",{children:"This enables workflows where an AI agent can find missing translations, add new keys, and trigger context-aware AI translation without the developer switching tools. It's the bridge between AI-driven development and production-ready localization."})]})}],"data-sentry-element":"SeoContent","data-sentry-source-file":"ai-translations.tsx"})}),(0,a.jsx)(m.L,{size:6,"data-sentry-element":"Spacer","data-sentry-source-file":"ai-translations.tsx"}),(0,a.jsxs)("section",{className:"container",children:[(0,a.jsx)("h2",{className:"font-size-42 fw-700 text-center mb-5",children:"Frequently asked questions"}),(0,a.jsx)(f.D,{entries:[{title:"Do I need a subscription to use AI translations?",content:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"No. AI translations are available to all users regardless of plan. You can provide your own OpenAI or OpenRouter API key and pay only for the tokens you consume. SimpleLocalize does not charge additional fees on top of the provider's pricing. For DeepL and Google Translate, a monthly character allowance is included in paid plans with unused characters rolling over."})})},{title:"Which AI models does SimpleLocalize support?",content:(0,a.jsx)(a.Fragment,{children:(0,a.jsxs)("p",{children:["SimpleLocalize supports OpenAI models, and any model available through"," ",(0,a.jsx)("a",{href:"/blog/posts/introducing-openrouter/",children:"OpenRouter"})," â including Gemini, Claude, Llama, Mistral, and dozens more. You can also connect local models via Ollama or any OpenAI-compatible endpoint. Additionally, DeepL and Google Translate are available as machine translation providers."]})})},{title:"How does smart caching save money on AI translations?",content:(0,a.jsx)(a.Fragment,{children:(0,a.jsxs)("p",{children:["SimpleLocalize tracks which keys have been translated and which have changed since the last run. When you trigger AI translation, only new or modified keys are sent to the model â the rest are served from the translation memory cache. For a project with 2,000 keys where only 10 changed, you pay for 10 translations instead of 2,000. Use our"," ",(0,a.jsx)("a",{href:"/tools/auto-translation-cost-estimation-calculator/",children:"auto-translation cost calculator"})," ","to estimate savings."]})})},{title:"Can I use AI translations with local or private models?",content:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Yes. SimpleLocalize supports any OpenAI-compatible API endpoint. You can run models locally using Ollama (e.g., Llama, Mistral, Gemma) and point SimpleLocalize to your local endpoint. Your translation data never leaves your infrastru
1cture â ideal for teams with strict data-privacy or regulatory requirements."})})},{title:"What is the MCP server and how do I use it?",content:(0,a.jsx)(a.Fragment,{children:(0,a.jsxs)("p",{children:["The SimpleLocalize ",(0,a.jsx)("a",{href:"/docs/integrations/model-context-protocol/",children:"MCP server"})," allows AI coding assistants (Cursor, Windsurf, Claude Desktop) to interact with your localization data directly from the IDE. Install the MCP extension, connect it to your SimpleLocalize project, and your AI agent can query missing translations, push new keys, and trigger auto-translation without switching tools."]})})}],"data-sentry-element":"SeoContentFAQ","data-sentry-source-file":"ai-translations.tsx"})]}),(0,a.jsx)(m.L,{size:6,"data-sentry-element":"Spacer","data-sentry-source-file":"ai-translations.tsx"})]})}},254:function(e,t,s){"use strict";s.d(t,{P:function(){return a},e:function(){return n}});var a={mistral:"/assets/frameworks/mistral/m-orange.svg",mistralWhite:"/assets/frameworks/mistral/m-white.svg",mistralBlack:"/assets/frameworks/mistral/m-black.svg",claude:"/assets/frameworks/claude/claude.svg",nextjs:"/assets/frameworks/nextjs.svg",react:"/assets/frameworks/react.svg",vue:"/assets/frameworks/vue.svg",angular:"/assets/frameworks/angular.svg",astro:"/assets/frameworks/astro.svg",astroDark:"/assets/frameworks/astro--dark.svg",nuxtjs:"/assets/frameworks/nuxtjs.svg",remix:"/assets/frameworks/remix.svg",flutter:"/assets/frameworks/flutter.svg",unity:"/assets/frameworks/unity.svg",django:"/assets/frameworks/django.svg",googleTranslate:"/assets/icons/google-translate.svg",postman:"/assets/icons/postman.svg",googleGemini:"/assets/icons/google-gemini.svg",gemini:"/assets/icons/gemini.svg",anthropic:"/assets/icons/anthropic.svg",deepl:"/assets/icons/deepl.svg",openRouter:"/assets/icons/open-router.svg",customAi:"/assets/icons/custom-ai.svg",pseudoLocalization:"/assets/icons/pseudo-localization.svg",openAi:"/assets/icons/openai.svg",openAiWhite:"/assets/icons/openaiWhite.svg",swagger:"/assets/icons/swagger.svg",laravel:"/assets/frameworks/laravel.svg",rubyOnRails:"/assets/frameworks/ruby-on-rails.svg",springBoot:"/assets/frameworks/spring-boot.png",android:"/assets/frameworks/android.svg",i
1os:"/assets/frameworks/ios.svg",macos:"/assets/frameworks/macos.svg",i18next:"/assets/frameworks/i18next.png",formatJs:"/assets/frameworks/format-js.svg",javascript:"/assets/frameworks/javascrtipt.svg",figma:"/assets/frameworks/figma.svg",framer:"/assets/frameworks/framer.svg",github:"/assets/frameworks/github.svg",githubWhite:"/assets/frameworks/github-white.svg",shopify:"/assets/frameworks/shopify.svg",shopifyWhite:"/assets/frameworks/shopify-white.svg",shopifyBlack:"/assets/frameworks/shopify-black.svg",gitlab:"/assets/frameworks/gitlab.svg",bitbucket:"/assets/frameworks/bitbucket.svg",gatsby:"/assets/frameworks/gatsby.svg",expo:"/assets/frameworks/expo.svg",ionic:"/assets/frameworks/ionic.svg",cordova:"/assets/frameworks/cordova.svg",nodejs:"/assets/frameworks/nodejs.svg",swift:"/assets/frameworks/swift.svg",java:"/assets/frameworks/java.svg",kotlin:"/assets/frameworks/kotlin.svg",jekyll:"/assets/frameworks/jekyll.svg",typescript:"/assets/frameworks/typescript.svg",nextIntl:"/assets/frameworks/next-intl.svg",typeSafeI18n:"/assets/frameworks/typesafe-i18n.svg",xcode26:"/assets/frameworks/xcode_26.png",qtLinguist:"/assets/frameworks/qt-linguist.svg",resx:"/assets/frameworks/resx.svg",aws:"/assets/icons/aws.svg",azure:"/assets/icons/azure.svg",webflow:"/assets/icons/webflow.svg",webflowBlack:"/assets/icons/webflow_black.svg",webflowWhite:"/assets/icons/webflow_white.svg",googleCloud:"/assets/icons/google-cloud.svg",intellijIdea:"/assets/icons/jetbrains/IntelliJ_IDEA_icon.svg",vscode:"/assets/icons/vscode.svg",vscodeAlt:"/assets/icons/vscode-alt.svg",mcp:"/assets/icons/mcp.svg",mcpWhite:"/assets/icons/mcpWhite.svg",json:"/file-icons/json.svg",simplelocalizeJson:"/file-icons/simplelocalize-json.svg",projectJson:"/file-icons/project-json.svg",browserExtensionJson:"/file-icons/browser-extension-json.svg",excel:"/file-icons/excel.svg",csv:"/file-icons/csv.svg",tsv:"/file-icons/tsv.svg",xliff:"/file-icons/xliff.svg",xliff2:"/file-icons/xliff2.svg",taf:"/file-icons/taf.svg",markdown:"/file-icons/markdown.svg",yaml:"/file-icons/yaml.svg",javaProperties:"/file-icons/java-properties.svg",appleXc:"/file-icons/apple-xc.svg",appleXcloc:"/file-icons/apple-xcloc.svg",appleStrings:"/file-icons/apple-strings.svg",formatJsSimple:"/file-icons/format-js.svg",appleDict:"/file-icons/apple-dict.svg",androidStrings:"/file-icons/android-strings.svg",js:"/file-icons/javascript.svg",php:"/file-icons/php.svg",poPot:"/file-icons/po-pot.svg",arb:"/file-icons/arb.svg",moduleExports:"/file-icons/module-exports.svg",slack:"/assets/slack.svg",discord:"/assets/discord-mark-blue.svg",microsoftTeams:"/assets/microsoft-teams-dark.svg",cloudflareWorkers:"/assets/cloudflare-workers-logo.svg",zeroIntl:"/assets/frameworks/zero-intl.svg",translationMemory:"/assets/icons/translation-memory.svg",demoFile:"/assets/custom/demo-file.svg"},n={simplelocalize:"/brand/icon.svg",simplelocalizeLight:"/brand/icon.svg",simpleolocalizeDark:"/brand/icon_dark.svg"}},88669:function(e){e.exports={header:"Heading_header__mNAta",screenshotContainer:"Heading_screenshotContainer__u8D_R",screenshot:"Heading_screenshot__D19VJ",headerContainer:"Heading_headerContainer__rLl2P",cta:"Heading_cta__RAtTL",headerWide:"Heading_headerWide__28Gfy",headerWideContainer:"Heading_headerWideContainer__CZVMh"}},92995:function(e){e.exports={image:"TrustedByDevelopers_image__aozNe",imageOnDark:"TrustedByDevelopers_imageOnDark__AyIxE",grid:"TrustedByDevelopers_grid__XEx0R"}},88059:function(e){e.exports={video:"VideoComponent_video__5zOY9",p:"VideoComponent_p__mE_az","video-container":"
1VideoComponent_video-container__eQ05P"}}},function(e){e.O(0,[51678,10618,75734,92888,49774,40179],function(){return e(e.s=51369)}),_N_E=e.O()}]);
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.