PageSourceSearch

https://simplelocalize.io/_next/static/chunks/pages/android-localization-tool-5d0c8b7ffbdbc81d.js

js simplelocalize.io collected 2026-10-03 19:24:41 UTC 41,434 bytes, 1 lines download raw bytes

1!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},a=(new e.Error).stack;a&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[a]="f99bcbe8-4baf-4656-a395-c7d8507a60c5",e._sentryDebugIdIdentifier="sentry-dbid-f99bcbe8-4baf-4656-a395-c7d8507a60c5")}catch(e){}}(),(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[63501],{7202:function(e,a,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/android-localization-tool",function(){return t(56882)}])},38708:function(e,a,t){"use strict";t.d(a,{U:function(){return s}});var n=t(85893);t(67294);var s=e=>{var{priority:a}=e;return a?(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("span",{"data-sm-priority":a})}):null}},43837:function(e,a,t){"use strict";t.d(a,{I:function(){return l}});var n=t(85893);t(67294);var s=t(92307),r=t.n(s),i=t(5017),l=()=>{var e=(0,i.wW)();return(0,n.jsx)("div",{className:"d-flex justify-content-center","data-sentry-component":"VSCodeBadge","data-sentry-source-file":"VSCodeBadge.tsx",children:(0,n.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,n.jsx)("img",{src:"/assets/icons/vscode.svg",alt:"Visual Studio Code",width:20,height:20,className:"me-2"}),(0,n.jsxs)("span",{className:"font-size-14 fw-600",children:["VS Code Extension available! ",(0,n.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,a,t){"use strict";t.d(a,{w:function(){return s}});var n=t(85893);t(67294);var s=e=>{var{heading:a,description:t,buttonText:s,buttonLink:r}=e;return(0,n.jsx)("div",{className:"bg-gray","data-sentry-component":"InlineCTA","data-sentry-source-file":"InlineCTA.tsx",children:(0,n.jsxs)("div",{className:"container text-center py-5",children:[(0,n.jsx)("h3",{className:"font-size-24 fw-600 mb-2",children:a}),(0,n.jsx)("p",{className:"text-muted text-balance font-size-16 mb-4",children:t}),(0,n.jsx)("a",{href:r,className:"btn btn-theme-dark rounded-pill fw-600 font-size-16 py-2 px-4",children:s})]})})}},46966:function(e,a,t){"use strict";t.d(a,{v:function(){return i}});var n=t(85893),s=t(69617),r=t.n(s);t(67294);var i=e=>{var{items:a,duration:t=60,overlap:s=64}=e;return(0,n.jsxs)("div",{style:{marginTop:-s,overflow:"hidden"},"data-sentry-component":"MarqueeStrip","data-sentry-source-file":"MarqueeStrip.tsx",className:"jsx-c54c728535a82d20",children:[(0,n.jsx)("div",{className:"jsx-c54c728535a82d20 marquee-strip",children:(0,n.jsx)("div",{style:{animationDuration:"".concat(t,"s")},className:"jsx-c54c728535a82d20 marquee-strip-track",children:[void 0,void 0].flatMap((e,t)=>a.map(e=>(0,n.jsx)("span",{className:"jsx-c54c728535a82d20 marquee-strip-item",children:e},"".concat(t,"-").concat(e))))})}),(0,n.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,a,t){"use strict";t.d(a,{u:function(){return i}});var n=t(85893),s=t(69617),r=t.n(s);t(67294);var i=e=>{var{icon:a,title:t,description:s,href:i}=e,l=(0,n.jsxs)("div",{className:"jsx-d81bd19f4b472be p-4 h-100 border rounded-3 position-relative bg-body content-card",children:[i&&(0,n.jsx)("div",{className:"jsx-d81bd19f4b472be position-absolute top-0 end-0 p-3 content-card-link-icon",children:(0,n.jsx)("i",{className:"jsx-d81bd19f4b472be fal fa-link text-primary"})}),(0,n.jsx)("div",{className:"jsx-d81bd19f4b472be mb-3",children:(0,n.jsx)("span",{className:"jsx-d81bd19f4b472be "+"".concat(a," text-color-400 fw-300 font-size-28")})}),(0,n.jsx)("h3",{className:"jsx-d81bd19f4b472be fw-600 font-size-20 mb-2",children:t}),(0,n.jsx)("p",{className:"jsx-d81bd19f4b472be text-muted mb-0",children:s}),(0,n.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,n.jsx)("a",{href:i,className:"text-decoration-none text-body d-block h-100",children:l}):l}},94259:function(e,a,t){"use strict";t.d(a,{F:function(){return i}});var n=t(85893);t(67294);var s=[{icon:"far fa-mobile-android",title:"Mobile App Localization",href:"/app-localization/",description:(0,n.jsxs)(n.Fragment,{children:["Automate ",(0,n.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,n.jsxs)(n.Fragment,{children:["Translate your website with ",(0,n.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,n.jsxs)(n.Fragment,{children:["Easy integration with ",(0,n.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,n.jsxs)(n.Fragment,{children:["Scale faster with ",(0,n.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:a,subtitle:t}=e;return(0,n.jsxs)("h2",{className:"font-size-32 fw-600 text-muted mb-3","data-sentry-component":"StyledHeading","data-sentry-source-file":"LocalizationSolutions.tsx",children:[(0,n.jsx)("span",{className:"text-body",children:a})," ",(0,n.jsx)("br",{}),(0,n.jsx)("span",{className:"text-muted fw-500",children:t})]})},i=e=>{var{className:a="",label:t,title:i="Localization solutions",subtitle:l="for modern dev teams",heading:o,description:c="From startup MVPs to enterprise ecosystems, SimpleLocalize provides the infrastructure to manage, translate, and deliver your content at scale.",items:d=s,children:m,imageSrc:f="/landing/visuals/[email protected]",imageAlt:p="SimpleLocalize connects your code to professional translations",imageClassName:x="img-fluid",rightContent:u}=e;return(0,n.jsx)("div",{className:a,"data-sentry-component":"FeatureShowcase","data-sentry-source-file":"LocalizationSolutions.tsx",children:(0,n.jsx)("div",{className:"container py-10",children:(0,n.jsxs)("div",{className:"row align-items-center",children:[(0,n.jsxs)("div",{className:"col-lg-6",children:[t&&(0,n.jsx)("p",{className:"text-uppercase fw-600 text-muted font-size-13 mb-2",children:t}),o||(0,n.jsx)(r,{title:i,subtitle:l}),(0,n.jsx)("p",{className:"text-muted font-size-16 mb-4",children:c}),(0,n.jsx)("div",{className:"d-flex flex-column gap-4".concat(m?" mb-4":""),children:d.map(e=>(0,n.jsxs)("div",{className:"d-flex align-items-start gap-3",children:[(0,n.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,n.jsx)("i",{className:"".concat(e.icon," font-size-16 text-dark")})}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{className:"font-size-16 fw-600 mb-1",children:e.href?(0,n.jsx)("a",{href:e.href,className:"fw-700 text-body text-decoration-none",children:e.title}):(0,n.jsx)("span",{className:"fw-700",children:e.title})}),(0,n.jsx)("p",{className:"text-muted font-size-15 mb-0",children:e.description})]})]},e.title))}),m]}),(0,n.jsx)("div",{className:"col-lg-6 text-center mt-lg-0 mt-5",children:u||(0,n.jsx)("img",{src:f,alt:p,className:x,style:{maxWidth:"65%"}})})]})})})}},97739:function(e,a,t){"use strict";t.d(a,{z:function(){return o}});var n=t(85893);t(67294);var s=t(23908),r=t(88669),i=t.n(r),l=t(5017),o=e=>{var{buttonText:a="Start now for free",buttonLink:t=s.mm,onClick:r,showArrow:o=!0,iconPosition:c="right",icon:d="fas fa-arrow-right",customIcon:m=null}=e,f=(0,l.wW)();return(0,n.jsx)("a",{href:t,onClick:()=>{r?r():f("signup",{props:{message:a}})},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,n.jsxs)("div",{className:"d-flex align-items-".concat(m?"center":"baseline"," justify-content-center"),children:[o&&"left"===c&&(0,n.jsx)("i",{className:"me-2 ".concat(d)}),m&&"left"===c&&m,(0,n.jsx)("span",{className:"fw-700",children:a}),o&&"right"===c&&(0,n.jsx)("i",{className:"ms-2 ".concat(d)}),m&&"right"===c&&m]})})}},43758:function(e,a,t){"use strict";t.d(a,{o:function(){return c}});var n=t(85893);t(67294);var s=t(88669),r=t.n(s),i=t(73197),l=t(43837),o=t(97739),c=e=>{var{disableGlobalHead:a=!1,title:t,description:s,buttonText:c="Start for free",buttonLink:d,children:m=null}=e;return(0,n.jsx)("header",{className:"".concat(r().headerWide),"data-sentry-component":"HeadingWide","data-sentry-source-file":"HeadingWide.tsx",children:(0,n.jsx)("div",{className:"container",children:(0,n.jsxs)("div",{className:"row g-0",children:[(0,n.jsxs)("div",{className:"col-lg-5 col-12 mb-4 d-flex flex-column justify-content-between ".concat(r().headerWideContainer),children:[!a&&(0,n.jsx)("div",{className:"d-flex justify-content-center justify-content-lg-start",children:(0,n.jsx)(l.I,{})}),(0,n.jsx)("h1",{className:"mt-3 text-start font-size-36 font-size-lg-56 letter-spacing-2 text-gradient",children:t}),(0,n.jsx)("p",{className:"text-muted",children:s}),(0,n.jsxs)("div",{className:"mt-3",children:[(0,n.jsx)("div",{className:" d-flex flex-column justufy-content-center justify-content-lg-start alitems-center align-items-lg-start",children:(0,n.jsx)(o.z,{buttonText:c,buttonLink:d,showArrow:!0,"data-sentry-element":"CallToActionButton","data-sentry-source-file":"HeadingWide.tsx"})}),(0,n.jsx)(i.a,{"data-sentry-element":"ServiceFeatures","data-sentry-source-file":"HeadingWide.tsx"})]})]}),(0,n.jsx)("div",{className:"col-lg-6 col-12 offset-lg-1 offset-0",children:m})]})})})}},12520:function(e,a,t){"use strict";t.d(a,{Q:function(){return i}});var n=t(85893),s=t(69617),r=t.n(s);t(67294);var i=e=>{var{eyebrow:a="How it works",title:t,description:s,steps:i}=e,l=3===i.length?"col-md-4":4===i.length?"col-md-6 col-lg-3":"col-md-4";return(0,n.jsxs)("section",{"data-sentry-component":"HowItWorksSteps","data-sentry-source-file":"HowItWorksSteps.tsx",className:"jsx-5c38f48313d04e58 container page-section",children:[(0,n.jsx)("h2",{className:"jsx-5c38f48313d04e58 font-size-18 fw-600 text-muted text-center mb-1",children:a}),(0,n.jsx)("h3",{className:"jsx-5c38f48313d04e58 font-size-42 fw-700 text-center lh-base text-balance",children:t}),s&&(0,n.jsx)("div",{className:"jsx-5c38f48313d04e58 d-flex justify-content-center mb-5 text-balance",children:(0,n.jsx)("p",{className:"jsx-5c38f48313d04e58 text-muted text-center how-it-works-description",children:s})}),(0,n.jsxs)("div",{className:"jsx-5c38f48313d04e58 row position-relative z-1",children:[i.map((e,a)=>(0,n.jsx)("div",{className:"jsx-5c38f48313d04e58 "+(l||""),children:(0,n.jsxs)("div",{className:"jsx-5c38f48313d04e58 text-center",children:[(0,n.jsx)("div",{className:"jsx-5c38f48313d04e58 mb-3",children:(0,n.jsx)("span",{className:"jsx-5c38f48313d04e58 "+"fw-700 d-inline-block display-3 gradient-text-".concat(a+1),children:a+1})}),(0,n.jsx)("h4",{className:"jsx-5c38f48313d04e58 fw-600 font-size-18 mb-2",children:e.title}),(0,n.jsx)("p",{className:"jsx-5c38f48313d04e58 text-muted text-balance",children:e.description})]})},a)),(0,n.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,n.jsx)("a",{href:"/docs/general/get-started/",className:"jsx-5c38f48313d04e58",children:"getting started guide"}),"."]})]}),(0,n.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,a,t){"use strict";t.d(a,{c:function(){return c}});var n=t(85893);t(67294);var s=t(9278),r=t(49429),i=t(64046),l=t(38708),o=t(65136),c=e=>{var{children:a,seoTitle:t,seoDescription:c,lastMod:d,priority:m,socialTitle:f,socialDescription:p,socialImage:x}=e;return(0,n.jsxs)("div",{"data-sentry-component":"CommonPage","data-sentry-source-file":"CommonPage.tsx",children:[d&&(0,n.jsx)(i.p,{date:d}),(0,n.jsx)(l.U,{priority:m||.9,"data-sentry-element":"Priority","data-sentry-source-file":"CommonPage.tsx"}),(0,n.jsx)(o.Z,{title:t,description:c,socialTitle:f,socialDescription:p,socialImage:x,"data-sentry-element":"Seo","data-sentry-source-file":"CommonPage.tsx"}),(0,n.jsx)(s.Z,{"data-sentry-element":"NavigationMain","data-sentry-source-file":"CommonPage.tsx"}),a,(0,n.jsx)(r.Z,{"data-sentry-element":"Footer","data-sentry-source-file":"CommonPage.tsx"})]})}},2959:function(e,a,t){"use strict";t.d(a,{t:function(){return d}});var n=t(85893);t(67294);var s=t(92995),r=t.n(s),i=t(99560),l=t.n(i),o=t(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,n.jsx)("div",{className:"bg-black py-7","data-sentry-component":"SocialProof","data-sentry-source-file":"SocialProof.tsx",children:(0,n.jsxs)("div",{className:"container",children:[(0,n.jsxs)("h2",{className:"font-size-42 fw-600 text-center text-white pb-5",children:["We power your product localization",(0,n.jsx)(o.B,{"data-sentry-element":"Breakline","data-sentry-source-file":"SocialProof.tsx"}),(0,n.jsx)("span",{className:"text-white opacity-50 fw-500",children:"From first commit to global launch"})]}),(0,n.jsx)("div",{className:r().grid,children:c.map(e=>(0,n.jsx)("img",{loading:"lazy",className:r().imageOnDark,alt:"Used at ".concat(e.name),src:"/used-by/".concat(e.filename)},"trusted_".concat(l()(e.name))))})]})});a.Z=d},8347:function(e,a,t){"use strict";t.d(a,{D:function(){return o}});var n=t(85893),s=t(67294),r=t(9008),i=t.n(r),l=e=>{if("string"==typeof e)return e;if(s.isValidElement(e)){if("string"==typeof e.props.children)return e.props.children;if(Array.isArray(e.props.children))return e.props.children.map(e=>l(e)).join(" ");if(e.props.children)return l(e.props.children)}return""},o=e=>{var{entries:a=[],titleClassName:t="fw-600 text-body font-size-14",descriptionClassName:s="font-size-13 text-muted",useFAQSchema:r=!0}=e,o=r?{"@context":"https://schema.org","@type":"FAQPage",mainEntity:a.map(e=>
1({"@type":"Question",name:l(e.title),acceptedAnswer:{"@type":"Answer",text:l(e.paragraph||e.content||"")}}))}:null;return(0,n.jsxs)(n.Fragment,{children:[o&&(0,n.jsx)(i(),{children:(0,n.jsx)("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(o)}})}),(0,n.jsx)("div",{children:a.map((e,a)=>(0,n.jsxs)("div",{children:[(0,n.jsx)("h2",{className:t,children:e.title}),e.paragraph&&(0,n.jsx)("p",{className:"".concat(s," mb-0 pb-3"),children:e.paragraph}),(0,n.jsx)("div",{className:s,children:e.content})]},"text-entry-".concat(a)))})]})}},73197:function(e,a,t){"use strict";t.d(a,{a:function(){return i}});var n=t(85893);t(67294);var s=t(5017),r=t(14841),i=()=>{var e=(0,s.wW)();return(0,n.jsx)("div",{className:"mt-3","data-sentry-component":"ServiceFeatures","data-sentry-source-file":"ServiceFeatures.tsx",children:(0,n.jsxs)("small",{className:"text-muted fw-500",children:[(0,n.jsx)("span",{className:"text-nowrap d-none d-sm-inline",children:"No credit card required"}),(0,n.jsx)(r.Z,{className:"d-none d-sm-inline",distance:2,"data-sentry-element":"Separator","data-sentry-source-file":"ServiceFeatures.tsx"}),(0,n.jsx)("span",{className:"text-nowrap",children:"14-day free trial"}),(0,n.jsx)(r.Z,{distance:2,"data-sentry-element":"Separator","data-sentry-source-file":"ServiceFeatures.tsx"}),(0,n.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"})]})})}},56882:function(e,a,t){"use strict";t.r(a),t.d(a,{__N_SSG:function(){return w}});var n=t(85893);t(67294);var s=t(9008),r=t.n(s),i=t(3653),l=t(73553),o=t(8687),c=t(31764),d=t(8347),m=t(2959),f=t(12520),p=t(69240),x=t(20920),u=t(3723),h=t(43758),g=t(46966),y=t(88669),j=t.n(y),b=t(94259),w=!0;a.default=e=>{var{articles:a}=e;return(0,n.jsxs)(o.c,{lastMod:"2026-05-18",seoTitle:"Android Localization Tool | SimpleLocalize",seoDescription:"Manage Android strings.xml translation files with SimpleLocalize. Upload, auto-translate, and sync XML string resources via CLI. One project for Android, iOS, and Flutter.","data-sentry-element":"CommonPage","data-sentry-component":"AndroidLocalizationToolPage","data-sentry-source-file":"android-localization-tool.tsx",children:[(0,n.jsx)(r(),{"data-sentry-element":"Head","data-sentry-source-file":"android-localization-tool.tsx",children:(0,n.jsx)("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify({"@context":"https://schema.org","@type":"SoftwareApplication",name:"SimpleLocalize",applicationCategory:"DeveloperApplication",applicationSubCategory:"Localization and Internationalization Tool",operatingSystem:"Web",url:"https://simplelocalize.io/android-localization-tool/",description:"Android localization tool for managing strings.xml translation files. Upload, auto-translate, and download XML string resources with CLI and REST API.",offers:{"@type":"Offer",price:"0",priceCurrency:"USD"}})}})}),(0,n.jsx)(h.o,{title:(0,n.jsxs)(n.Fragment,{children:["Android localization",(0,n.jsx)(x.B,{})," for strings.xml files"]}),description:(0,n.jsx)(n.Fragment,{children:"Manage Android XML string resources, auto-translate with AI, and sync with your project via CLI."}),buttonText:"Start for free",disableGlobalHead:!0,"data-sentry-element":"HeadingWide","data-sentry-source-file":"android-localization-tool.tsx",children:(0,n.jsx)("div",{className:j().screenshotContainer,style:{border:"14px solid #22252A",borderRadius:24},children:(0,n.jsx)("img",{src:"/screenshots/editor/simplelocalize.png",alt:"SimpleLocalize - Android strings.xml translation editor",className:j().screenshot})})}),(0,n.jsx)(c.L,{size:5,"data-sentry-element":"Spacer","data-sentry-source-file":"android-localization-tool.tsx"}),(0,n.jsx)(g.v,{items:["Android XML format","strings.xml","plurals & string-array","res/values-{lang}/","Gradle integration","ICU message format","Pluralization","CLI & REST API","DeepL \xb7 Google Translate \xb7 OpenAI","iOS & Flutter in one project","Translation hosting CDN","CI/CD sync"],"data-sentry-element":"MarqueeStrip","data-sentry-source-file":"android-localization-tool.tsx"}),(0,n.jsx)(c.L,{size:6,"data-sentry-element":"Spacer","data-sentry-source-file":"android-localization-tool.tsx"}),(0,n.jsx)(m.t,{"data-sentry-element":"SocialProof","data-sentry-source-file":"android-localization-tool.tsx"}),(0,n.jsx)(c.L,{size:6,"data-sentry-element":"Spacer","data-sentry-source-file":"android-localization-tool.tsx"}),(0,n.jsx)("section",{className:"container",children:(0,n.jsxs)("div",{className:"row align-items-center gx-lg-5 gy-5 gx-3",children:[(0,n.jsxs)("div",{className:"col-lg-6",children:[(0,n.jsxs)("h2",{className:"font-size-42 fw-700 mb-3",children:["Why Android team
1s ",(0,n.jsx)(x.B,{"data-sentry-element":"Breakline","data-sentry-source-file":"android-localization-tool.tsx"})," use SimpleLocalize"]}),(0,n.jsxs)("p",{className:"text-muted font-size-16",children:["Android localization starts simple: a ",(0,n.jsx)("code",{children:"strings.xml"})," in ",(0,n.jsx)("code",{children:"res/values/"}),"and a copy per locale. But as your app grows to 10+ languages, keeping XML files in sync across branches becomes painful. Translators editing XML by hand introduce broken placeholders and merge conflicts."]}),(0,n.jsxs)("p",{className:"text-muted font-size-16 mb-0",children:["SimpleLocalize acts as the ",(0,n.jsx)("strong",{children:"single source of truth"})," for your translations. Upload ",(0,n.jsx)("code",{children:"strings.xml"})," via ",(0,n.jsx)("a",{href:"/docs/cli/get-started/",children:"CLI"}),", translate with AI or your team, and download clean XML files ready for your Android project. No manual XML editing, no merge conflicts."," ",(0,n.jsx)("a",{href:"/blog/posts/android-strings-localization/",children:"Learn how to manage Android string resources effectively."})]})]}),(0,n.jsx)("div",{className:"col-lg-6",children:(0,n.jsx)("div",{className:"rounded-3 d-flex align-items-center justify-content-center",children:(0,n.jsx)("img",{src:"/landing/visuals/how-it-works.svg",alt:"Android localization workflow",className:"img-fluid",style:{maxWidth:"85%"}})})})]})}),(0,n.jsx)(c.L,{size:6,"data-sentry-element":"Spacer","data-sentry-source-file":"android-localization-tool.tsx"}),(0,n.jsx)("div",{className:"bg-gray",children:(0,n.jsxs)("div",{className:"container py-10",children:[(0,n.jsx)("h2",{className:"font-size-42 fw-700 text-center mb-2",children:"Built for the Android localization workflow"}),(0,n.jsxs)("p",{className:"text-muted text-center text-balance col-lg-8 mx-auto mb-5",children:["From ",(0,n.jsx)("code",{children:"strings.xml"})," to production, SimpleLocalize fits into every step of your Android i18n pipeline."]}),(0,n.jsx)("div",{className:"row g-4",children:[{icon:"far fa-file-code",title:"Native Android XML support",description:"Upload and download strings.xml files with full support for <string>, <plurals>, and <string-array> resources. No data loss, no format conversion.",href:"/docs/file-formats/android-strings/"},{icon:"far fa-terminal",title:"CLI pipeline",description:"Use the SimpleLocalize CLI to upload source strings.xml, auto-translate, and pull translated XML files back into your res/values-{lang}/ directories.",href:"/docs/cli/get-started/"},{icon:"far fa-sparkles",title:"AI auto-translation",description:"Translate new keys instantly with DeepL, Google Translate, OpenAI or more AI models. Bring your own API keys for full control over cost and quality.",href:"/ai-translations/"},{icon:"far fa-layer-group",title:"One project, all platforms",description:"Manage Android (XML), iOS (.strings), and Flutter (.arb) translations in a single project. Export each format separately. Perfect for apps with cross-platform components.",href:"/app-localization/"},{icon:"far fa-code-branch",title:"Single source of truth",description:"Stop editing strings.xml by hand across branches. The CLI syncs translations from SimpleLocalize so every branch gets the same, up-to-date XML files.",href:"/continuous-localization/"},{icon:"far fa-shield-check",title:"Placeholder validation",description:"SimpleLocalize validates printf-style placeholders (%s, %d, %1$s) and plural forms across all languages. Catch broken format strings before they reach production.",href:"/qa-checks/"}].map(e=>(0,n.jsx)("div",{className:"col-md-6",children:(0,n.jsx)(p.u,{icon:e.icon,title:e.title,description:e.description,href:e.href})},e.title))})]})}),(0,n.jsx)(c.L,{size:4,"data-sentry-element":"Spacer","data-sentry-source-file":"android-localization-tool.tsx"}),(0,n.jsx)(f.Q,{eyebrow:"How it works",title:(0,n.jsx)(n.Fragment,{children:"From strings.xml to production in 3 steps"}),description:"A CLI-first workflow that keeps your Android translations in sync with every release.",steps:[{title:"Upload source strings.xml",description:"Run simplelocalize upload to push your source res/values/strings.xml file. All <string>, <plurals>, and <string-array> entries are preserved."},{title:"Translate & review",description:"Auto-translate with DeepL or OpenAI, then review in the online editor. Printf placeholders and plural forms are validated automatically."},{title:"Download & integrate",description:"Run simplelocalize download to pull translated XML files into your res/values-{lang}/ directories. Ready for your Gradle build."}],"data-sentry-element":"HowItWorksSteps","data-sentry-source-file":"android-localization-tool.tsx"}),(0,n.jsx)(l.w,{heading:"Ready to simplify Android localization?",description:"Start a free project and upload your first strings.xml file in minutes.",buttonText:"Start for free",buttonLink:"/register/","data-sentry-element":"InlineCTA","data-sentry-source-file":"android-localization-tool.tsx"}),(0,n.jsx)(c.L,{size:6,"data-sentry-element":"Spacer","data-sentry-source-file":"android-localization-tool.tsx"}),(0,n.jsxs)("section",{className:"container",children:[(0,n.jsxs)("div",{className:"text-center mb-5",children:[(0,n.jsx)("p",{className:"text-uppercase fw-600 text-muted font-size-13 mb-2",children:"CLI pipeline"}),(0,n.jsxs)("h2",{className:"font-size-42 fw-700 mb-3",children:["From strings.xml to production",(0,n.jsx)("br",{}),"in two commands"]}),(0,n.jsx)("p",{className:"text-muted font-size-16 col-lg-7 mx-auto text-balance",children:"Upload your source locale, translate in the cloud, and pull back clean XML files ready for your Android project."})]}),(0,n.jsx)("div",{className:"col-lg-9 mx-auto",style:{overflow:"hidden"},children:(0,n.jsxs)("div",{style:{borderRadius:16,overflow:"hidden",border:"1px solid #313244"},children:[(0,n.jsxs)("div",{className:"d-flex align-items-center gap-2 px-4 py-2",style:{background:"#181825"},children:[(0,n.jsx)("span",{style:{width:12,height:12,borderRadius:"50%",background:"#f38ba8"}}),(0,n.jsx)("span",{style:{width:12,height:12,borderRadius:"50%",background:"#f9e2af"}}),(0,n.jsx)("span",{style:{width:12,height:12,borderRadius:"50%",background:"#a6e3a1"}}),(0,n.jsx)("span",{className:"ms-2 font-size-12",style:{color:"#6c7086"},children:"Terminal"})]}),(0,n.jsxs)("div",{className:"p-4",style:{background:"#1e1e2e",fontFamily:"monospace",whiteSpace:"pre-wrap",color:"#cdd6f4",lineHeight:1.8,fontSize:13,overflowX:"auto",wordBreak:"break-word"},children:[(0,n.jsx)("span",{style:{color:"#6c7086"},children:"# Upload source strings.xml file"}),"\n",(0,n.jsx)("span",{style:{color:"#89b4fa"},children:"$"})," simplelocalize upload\n","    ",(0,n.jsx)("span",{style:{color:"#f9e2af"},children:"--uploadFormat"})," ",(0,n.jsx)("span",{style:{color:"#a6e3a1"},children:"android-strings"}),"\n","    ",(0,n.jsx)("span",{style:{color:"#f9e2af"},children:"--uploadLanguageKey"})," ",(0,n.jsx)("span",{style:{color:"#a6e3a1"},children:"en"}),"\n","    ",(0,n.jsx)("span",{style:{color:"#f9e2af"},children:"--uploadPath"})," ",(0,n.jsx)("span",{style:{color:"#a6e3a1"},children:"/values/strings-en.xml"}),"\n\n",(0,n.jsx)("span",{style:{color:"#a6e3a1"},children:"✓ Uploaded 142 keys from strings.xml"}),"\n\n",(0,n.jsx)("span",{style:{color:"#6c7086"},children:"# Auto-translate to all target languages"}),"\n",(0,n.jsx)("span",{style:{color:"#89b4fa"},children:"$"})," simplelocalize auto-translate\n\n",(0,n.jsx)("span",{style:{color:"#a6e3a1"},children:"✓ Translated 142 keys into 10 languages"}),"\n\n",(0,n.jsx)("span",{style:{color:"#6c7086"},children:"# Download translated strings.xml files"}),"\n",(0,n.jsx)("span",{style:{color:"#89b4fa"},children:"$"})," simplelocalize download\n","    ",(0,n.jsx)("span",{style:{color:"#f9e2af"},children:"--downloadFormat"})," ",(0,n.jsx)("span",{style:{color:"#a6e3a1"},children:"android-strings"}),"\n","    ",(0,n.jsx)("span",{style:{color:"#f9e2af"},children:"--downloadPath"})," ",(0,n.jsx)("span",{style:{color:"#a6e3a1"},children:"./values-{lang}/strings.xml"}),"\n\n",(0,n.jsx)("span",{style:{color:"#a6e3a1"},children:"✓ Downloaded 10 strings.xml files"})]})]})}),(0,n.jsx)("div",{className:"text-center mt-3",children:(0,n.jsxs)("p",{className:"text-muted font-size-15 col-lg-7 mx-auto text-balance",children:["Add these commands to your CI/CD pipeline for fully automated localization with every build."," ",(0,n.jsx)("a",{href:"/docs/file-formats/android-strings/",children:"Read the Android strings format documentation"}
1)," or"," ",(0,n.jsx)("a",{href:"/docs/cli/get-started/",children:"get started with the CLI"}),"."]})})]}),(0,n.jsx)(c.L,{size:6,"data-sentry-element":"Spacer","data-sentry-source-file":"android-localization-tool.tsx"}),(0,n.jsx)(b.F,{className:"bg-gray",heading:(0,n.jsxs)("h2",{className:"font-size-32 fw-600 text-muted mb-3",children:[(0,n.jsx)("span",{className:"text-body",children:"One project"})," ",(0,n.jsx)("br",{}),(0,n.jsx)("span",{className:"text-muted fw-500",children:"for Android, iOS, and Flutter"})]}),description:"Building a cross-platform app with native components? Manage all translations in a single SimpleLocalize project and export each platform's format separately.",items:[{icon:"fab fa-android",title:"Android (XML)",href:"/docs/file-formats/android-strings/",description:"Upload and download strings.xml files with full support for plurals and string arrays. Works with standard Android resource directories."},{icon:"fab fa-apple",title:"iOS (Strings)",description:"Export .strings and .stringsdict files for native iOS components. Same keys, same project."},{icon:"far fa-mobile",title:"Flutter (ARB)",href:"/flutter-localization-tool/",description:"Export .arb files for Flutter apps. Works with flutter gen-l10n and the Intl package."}],imageSrc:"/landing/visuals/[email protected]",imageAlt:"One project for Android, iOS, and Flutter","data-sentry-element":"FeatureShowcase","data-sentry-source-file":"android-localization-tool.tsx"}),(0,n.jsx)("div",{className:"bg-gray",children:(0,n.jsxs)("div",{className:"container py-10",children:[(0,n.jsxs)("div",{className:"text-center mb-5",children:[(0,n.jsx)("p",{className:"text-uppercase fw-600 text-muted font-size-13 mb-2",children:"Why SimpleLocalize"}),(0,n.jsx)("h2",{className:"font-size-42 fw-700 mb-3",children:"Built for Android developers"}),(0,n.jsx)("p",{className:"text-muted font-size-16 col-lg-6 mx-auto",children:"Developer-first tooling that fits the Android localization workflow."})]}),(0,n.jsx)("div",{className:"col-lg-9 mx-auto",children:[{icon:"far fa-file-code",label:"Android XML native",detail:"Full strings.xml support including <string>, <plurals>, <string-array>, and translatable=false attributes."},{icon:"far fa-terminal",label:"CLI-first",detail:"Upload and download XML files from the command line. Fits into any Gradle build or CI/CD runner."},{icon:"far fa-layer-group",label:"Multi-platform",detail:"Manage Android, iOS, and Flutter translations in one project. Export each format separately."},{icon:"far fa-sparkles",label:"AI translation",detail:"DeepL, Google Translate, OpenAI and more. One click or fully automated."},{icon:"far fa-shield-check",label:"Validation",detail:"Printf placeholder and plural validation catches errors before they reach production."},{icon:"far fa-dollar-sign",label:"Flat pricing",detail:"Simple, predictable pricing based on translation keys with no hidden fees."}].map((e,a,t)=>(0,n.jsxs)("div",{className:"d-flex flex-column flex-md-row align-items-md-baseline gap-2 gap-md-4 py-4".concat(a<t.length-1?" border-bottom":""),children:[(0,n.jsxs)("div",{className:"d-flex align-items-baseline gap-2 flex-shrink-0",children:[(0,n.jsx)("i",{className:"".concat(e.icon," font-size-16 text-primary text-center flex-shrink-0"),style:{width:20}}),(0,n.jsx)("span",{className:"fw-600 font-size-16",children:e.label})]}),(0,n.jsx)("span",{className:"text-muted font-size-15",children:e.detail})]},e.label))})]})}),(0,n.jsx)(c.L,{size:4,"data-sentry-element":"Spacer","data-sentry-source-file":"android-localization-tool.tsx"}),(0,n.jsx)(i.Z,{heading:"Start localizing your Android app today","data-sentry-element":"CallToAction","data-sentry-source-file":"android-localization-tool.tsx"}),(0,n.jsx)(c.L,{size:6,"data-sentry-element":"Spacer","data-sentry-source-file":"android-localization-tool.tsx"}),(0,n.jsx)(u.Z,{title:"Android localization resources",description:"Guides and tutorials for Android localization with SimpleLocalize.",articles:a,vertical:!0,"data-sentry-element":"ArticlesList","data-sentry-source-file":"android-localization-tool.tsx"}),(0,n.jsx)(c.L,{size:6,"data-sentry-element":"Spacer","data-sentry-source-file":"android-localization-tool.tsx"}),(0,n.jsxs)("section",{className:"container",children:[(0,n.jsx)("h2",{className:"font-size-42 fw-700 text-center mb-5",children:"Frequently asked questions"}),(0,n.jsx)(d.D,{entries:[{title:"How does SimpleLocalize handle strings.xml files?",content:(0,n.jsx)(n.Fragment,{children:(0,n.jsxs)("p",{children:["SimpleLocalize natively supports the ",(0,n.jsx)("a",{href:"/docs/file-formats/android-strings/",children:"Android XML string format"}),". When you upload a ",(0,n.jsx)("code",{children:"strings.xml"})," file, all ",(0,n.jsx)("code",{children:"<string>"}),","," ",(0,n.jsx)("code",{children:"<plurals>"}),", and ",(0,n.jsx)("code",{children:"<string-array>"})," resources are parsed and preserved. When you download, you get clean XML files that drop directly into your",(0,n.jsxs)("code",{children:[" res/values-","{lang}","/"]})," directories. Printf placeholders and plural forms are validated across all languages to catch errors early."]})})},{title:"What does the CLI to strings.xml pipeline look like?",content:(0,n.jsx)(n.Fragment,{children:(0,n.jsxs)("p",{children:["The typical workflow is: run ",(0,n.jsx)("code",{children:"simplelocalize upload"})," to push your source",(0,n.jsx)("code",{children:" res/values/strings.xml"}),", translate in SimpleLocalize (manually or with AI), then run ",(0,n.jsx)("code",{children:"simplelocalize download"})," to pull translated XML files for all locales into",(0,n.jsxs)("code",{children:[" res/values-","{lang}","/strings.xml"]}),". Add these commands to your CI/CD pipeline for fully automated localization with every build."]})})},{title:"Can I manage Android, iOS, and Flutter translations in one project?",content:(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("p",{children:"Yes. SimpleLocalize uses a universal format internally, so one project can hold all your translation keys and export them as Android XML, .strings/.stringsdict (iOS), or .arb (Flutter). This is ideal for teams building cross-platform apps with native components. You translate once and export to every format your app needs."})})},{title:"How does SimpleLocalize keep strings.xml files in sync across branches?",content:(0,n.jsx)(n.Fragment,{children:(0,n.jsxs)("p",{children:["The SimpleLocalize CLI acts as the single source of truth for translations. Instead of editing ",(0,n.jsx)("code",{children:"strings.xml"})," by hand in different branches, every branch pulls the latest translations from SimpleLocalize. This eliminates merge conflicts in XML files and ensures every build uses consistent, up-to-date translations. You can integrate the upload and download commands into ",(0,n.jsx)("a",{href:"/continuous-localization/",children:"CI/CD pipelines"})," so syncing happens automatically."]})})},{title:"Does SimpleLocalize support Android plurals and string arrays?",content:(0,n.jsx)(n.Fragment,{children:(0,n.jsxs)("p",{children:["Yes. SimpleLocalize fully supports ",(0,n.jsx)("code",{children:"<plurals>"})," resources with all Android quantity values (",(0,n.jsx)("code",{children:"zero"}),", ",(0,n.jsx)("code",{children:"one"}),", ",(0,n.jsx)("code",{children:"two"}),","," ",(0,n.jsx)("code",{children:"few"}),", ",(0,n.jsx)("code",{children:"many"}),", ",(0,n.jsx)("code",{children:"other"}),") and"," ",(0,n.jsx)("code",{children:"<string-array>"})," resources. Plural forms are validated per language according to CLDR rules, so missing or incorrect plural cases are caught before they reach production."]})})},{title:"What i18n features does SimpleLocalize support for Android?",content:(0,n.jsx)(n.Fragment,{children:(0,n.jsxs)("p",{children:["SimpleLocalize supports Android XML string resources including printf-style placeholders (",(0,n.jsx)("code",{children:"%s"}),", ",(0,n.jsx)("code",{children:"%d"}),", ",(0,n.jsx)("code",{children:"%1$s"}),"), plurals, and string arrays. Placeholder validation catches mismatched format specifiers across all target languages. You can also use ",(0,n.jsx)("a",{href:"/auto-translation/",children:"auto-translation"})," with DeepL, Google Translate, or OpenAI, set up"," ",(0,n.jsx)("a",{href:"/translation-automations/",children:"no-code automations"}),", and deliver translations via ",(0,n.jsx)("a",{href:"/translation-hosting/",children:"CDN"})," for over-the-air updates. See our"," ",(0,n.jsx)("a",{href:"/for/developers/",children:"developer localization platform"})," page for the full feature set."]})})}],"data-sentry-element":"SeoContentFAQ","data-sentry-source-file":"android-localization-tool.tsx"})]}),(0,n.jsx)(c.L,{size:3,"data-sentry-element":"Spacer","data-sentry-source-file":"android-localization-tool.tsx"})]})}},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"}}},function(e){e.O(0,[51678,10618,75734,92888,49774,40179],function(){return e(e.s=7202)}),_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.