CINXE.COM
Home | Crowdin Blog
<!DOCTYPE html><html lang="en"> <head><!-- Global Metadata --><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" type="image/svg+xml" href="/blog/favicon.ico"><link rel="apple-touch-icon" sizes="180x180" href="/blog/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/blog/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/blog/favicon-16x16.png"><link rel="manifest" href="/blog/site.webmanifest"><link rel="mask-icon" href="/blog/safari-pinned-tab.svg" color="#263238"><meta name="msapplication-TileColor" content="#263238"><meta name="generator" content="Astro v5.1.8"><!-- Canonical URL --><link rel="canonical" href="https://crowdin.com/blog/page/6"><!-- Primary Meta Tags --><title>Home | Crowdin Blog</title><!-- SEO --><meta name="title" content="Home | Crowdin Blog"><meta name="description" content="Localization Tips and Product Updates"><!-- Open Graph / Facebook --><meta property="og:type" content="website"><meta property="og:url" content="https://crowdin.com/blog/page/6"><meta property="og:title" content="Home"><meta property="og:description" content="Localization Tips and Product Updates"><meta property="og:image" content="https://crowdin.com/blog/og/og-default.png"><meta property="og:site_name" content="Crowdin"><!-- Twitter --><meta property="twitter:card" content="summary_large_image"><meta property="twitter:url" content="https://crowdin.com/blog/page/6"><meta property="twitter:title" content="Home"><meta property="twitter:description" content="Localization Tips and Product Updates"><meta property="twitter:image" content="https://crowdin.com/blog/og/og-default.png"><meta property="twitter:site" content="@crowdin"><link rel="alternate" type="application/rss+xml" title="Crowdin Blog" href="/blog/feed.xml"><link rel="sitemap" href="/blog/sitemap.xml"><script>(function(){const GTM_ID = "GTM-W87XVT8"; const CUSTOM_GTM_ID = "GTM-MW5LV72"; window.dataLayer = window.dataLayer || []; function gtag() { // eslint-disable-next-line prefer-rest-params dataLayer.push(arguments); } gtag("consent", "default", { ad_storage: "denied", ad_user_data: "denied", ad_personalization: "denied", analytics_storage: "denied", functionality_storage: "denied", personalization_storage: "denied", security_storage: "granted", wait_for_update: 2000 }); gtag("set", "ads_data_redaction", true); gtag("set", "url_passthrough", true); // prettier-ignore (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});const f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer',GTM_ID); // prettier-ignore (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});const f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://gtm-sst.crowdin.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer',CUSTOM_GTM_ID); })();</script> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W87XVT8" height="0" width="0" title="Google Tag Manager" style="display:none;visibility:hidden"></iframe></noscript><noscript><iframe src="https://gtm-sst.crowdin.com/ns.html?id=GTM-MW5LV72" height="0" width="0" title="Custom Google Tag Manager" style="display:none;visibility:hidden"></iframe></noscript><script id="cookieyes" type="text/javascript" src="https://cdn-cookieyes.com/client_data/2dabfbbec8b71e267115f6a5/script.js"></script><script> function getTheme() { const storedTheme = typeof localStorage !== "undefined" && localStorage.getItem("theme"); return ( storedTheme || (window.matchMedia("(prefers-color-scheme: light)").matches ? "light" : "dark") ); } function setTheme(newTheme) { const html = document.documentElement; const isDark = newTheme === "dark"; html.classList.toggle("dark", isDark); html.classList.toggle("light", !isDark); localStorage.setItem("theme", newTheme); } // set initial theme setTheme(getTheme()); document.addEventListener("astro:after-swap", () => setTheme(getTheme())); document.addEventListener("theme-change", (e) => { setTheme(e.detail.theme); }); </script><script>(function(){const POSTHOG_PROJECT_API_KEY = "phc_14SWLen9KrmOgEyG0IBxnHJjggvNt9tQCFO1W2Vzpyx"; const POSTHOG_CLIENT_API_HOST = "https://hog.crowdin.com"; /* eslint-disable */ /* prettier-ignore */ !function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.crossOrigin="anonymous",p.async=!0,p.src=s.api_host+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="capture identify alias people.set people.set_once set_config register register_once unregister opt_out_capturing has_opted_out_capturing opt_in_capturing reset isFeatureEnabled onFeatureFlags getFeatureFlag getFeatureFlagPayload reloadFeatureFlags group updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures getActiveMatchingSurveys getSurveys getNextSurveyStep onSessionId".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]); posthog.init(POSTHOG_PROJECT_API_KEY, { api_host: POSTHOG_CLIENT_API_HOST, person_profiles: "identified_only" }); /* eslint-enable */ })();</script><link rel="stylesheet" href="/blog/_astro/_slug_.C7jpDCdA.css"> <link rel="stylesheet" href="/blog/_astro/_slug_.D0mbpwps.css"> <style>.is-invalid[data-astro-cid-bfbmamsi]{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.is-invalid[data-astro-cid-bfbmamsi]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity, 1)) }.is-invalid[data-astro-cid-bfbmamsi]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(248 113 113 / var(--tw-border-opacity, 1))}.is-invalid[data-astro-cid-bfbmamsi]~.invalid-feedback[data-astro-cid-bfbmamsi]{display:block} </style></head> <body class="bg-white dark:bg-[#0a0910] text-stone-950 dark:text-white"> <header class="sticky top-0 z-50 border-b border-neutral-200 bg-white p-4 dark:border-neutral-800 dark:bg-gray-900"> <div class="flex w-full items-center justify-between gap-4"> <!-- Logo --> <a class="flex items-center" href="/blog"> <img src="/blog/_astro/logo-dark.r1f6OU5K_Zd5xPk.svg" loading="eager" alt="Crowdin Logo - Dark" width="180" height="37" decoding="async" class="visible h-8 shrink-0 select-none dark:hidden max-w-[120px] xl:max-w-[140px]"> <img src="/blog/_astro/logo-light.BcCwQE_h_16Q9iL.svg" loading="eager" alt="Crowdin Logo - Light" width="180" height="37" decoding="async" class="hidden h-8 shrink-0 select-none dark:inline max-w-[120px] xl:max-w-[140px]"> <span class="select-none text-neutral-500 dark:text-neutral-400 text-md xl:text-xl pl-2"> Blog </span> </a> <!-- Desktop Navigation Menu --> <div class="hidden lg:flex mr-auto"> <nav class="text-neutral-600 dark:text-neutral-400 flex items-center gap-5"> <a href="/blog/category/customer-stories" class="text-opacity-70 text-sm hover:text-neutral-900 dark:hover:text-neutral-200 whitespace-nowrap" rel="noopener noreferrer"> Customer Stories </a><a href="/blog/category/product-updates" class="text-opacity-70 text-sm hover:text-neutral-900 dark:hover:text-neutral-200 whitespace-nowrap" rel="noopener noreferrer"> Product Updates </a><a href="/blog/category/ai" class="text-opacity-70 text-sm hover:text-neutral-900 dark:hover:text-neutral-200 whitespace-nowrap" rel="noopener noreferrer"> AI in Localization </a><menu class="astronav-dropdown group" aria-expanded="false"> <button class="flex items-center gap-1 text-sm hover:text-neutral-900 dark:hover:text-neutral-200"> <span class="whitespace-nowrap">Resources for Teams</span> <svg width="1em" height="1em" class="h-4 w-4 transition-transform group-open:rotate-180" data-icon="mdi:chevron-down"> <symbol id="ai:mdi:chevron-down" viewBox="0 0 24 24"><path fill="currentColor" d="M7.41 8.58L12 13.17l4.59-4.59L18 10l-6 6l-6-6z"/></symbol><use href="#ai:mdi:chevron-down"></use> </svg> </button> <div class="astronav-dropdown dropdown-toggle hidden relative" aria-expanded="false"> <div class="lg:absolute lg:top-2 w-full lg:w-48 rounded-lg bg-gray-100 p-3 shadow-lg dark:bg-gray-800"> <ul class="space-y-1 text-neutral-600 dark:text-neutral-400"> <li> <a href="/blog/category/engineering-teams" class="text-opacity-70 block w-full text-sm rounded-md px-2 py-1 hover:bg-gray-200 hover:text-neutral-900 dark:hover:bg-gray-700 dark:hover:text-neutral-200 whitespace-nowrap" rel="noopener noreferrer"> Engineering </a> </li><li> <a href="/blog/category/design-teams" class="text-opacity-70 block w-full text-sm rounded-md px-2 py-1 hover:bg-gray-200 hover:text-neutral-900 dark:hover:bg-gray-700 dark:hover:text-neutral-200 whitespace-nowrap" rel="noopener noreferrer"> Design </a> </li><li> <a href="/blog/category/marketing-teams" class="text-opacity-70 block w-full text-sm rounded-md px-2 py-1 hover:bg-gray-200 hover:text-neutral-900 dark:hover:bg-gray-700 dark:hover:text-neutral-200 whitespace-nowrap" rel="noopener noreferrer"> Marketing </a> </li><li> <a href="/blog/category/support-teams" class="text-opacity-70 block w-full text-sm rounded-md px-2 py-1 hover:bg-gray-200 hover:text-neutral-900 dark:hover:bg-gray-700 dark:hover:text-neutral-200 whitespace-nowrap" rel="noopener noreferrer"> Support </a> </li> </ul> </div> </div> </menu> </nav> </div> <!-- Search, Theme Toggle, Social Links, Sign Up --> <div class="flex items-center gap-4 border-neutral-200 pl-5 dark:border-neutral-800"> <site-search id="search" class="ms-auto"> <button data-open-modal disabled aria-label="Search" aria-keyshortcuts="Control+K" class="flex items-center justify-center"> <svg width="22" height="22" class="opacity-70 hover:opacity-100 transition-opacity" data-icon="mdi:magnify"> <symbol id="ai:mdi:magnify" viewBox="0 0 24 24"><path fill="currentColor" d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5l-1.5 1.5l-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16A6.5 6.5 0 0 1 3 9.5A6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14S14 12 14 9.5S12 5 9.5 5"/></symbol><use href="#ai:mdi:magnify"></use> </svg> </button> <dialog aria-label="search" class="h-full max-h-full w-full max-w-full sm:rounded-md border border-neutral-400 dark:border-neutral-600 dark:bg-gray-800 shadow backdrop:backdrop-blur sm:mx-auto sm:mb-auto sm:mt-16 sm:h-max sm:max-h-[calc(100%-8rem)] sm:min-h-[15rem] sm:w-5/6 sm:max-w-[48rem]"> <div class="dialog-frame flex flex-col gap-4 p-6"> <button data-close-modal class="ms-auto cursor-pointer dark:text-gray-300"> <svg width="24" height="24" data-icon="mdi:close"> <symbol id="ai:mdi:close" viewBox="0 0 24 24"><path fill="currentColor" d="M19 6.41L17.59 5L12 10.59L6.41 5L5 6.41L10.59 12L5 17.59L6.41 19L12 13.41L17.59 19L19 17.59L13.41 12z"/></symbol><use href="#ai:mdi:close"></use> </svg> </button> <div class="search-container dark:text-white"> <div id="pagefind__search"></div> </div> </div> </dialog> </site-search> <script type="module" src="/blog/_astro/Search.astro_astro_type_script_index_0_lang.CGNx-k0p.js"></script> <div class="order-1 inline-flex"> <button id="astronav-menu" aria-label="Toggle Menu"> <svg fill="currentColor" class="lg:hidden h-6 w-6 text-gray-400 dark:text-gray-300" width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> <title>Toggle Menu</title> <path class="astronav-close-icon astronav-toggle hidden" fill-rule="evenodd" clip-rule="evenodd" d="M18.278 16.864a1 1 0 01-1.414 1.414l-4.829-4.828-4.828 4.828a1 1 0 01-1.414-1.414l4.828-4.829-4.828-4.828a1 1 0 011.414-1.414l4.829 4.828 4.828-4.828a1 1 0 111.414 1.414l-4.828 4.829 4.828 4.828z"></path> <path class="astronav-open-icon astronav-toggle" fill-rule="evenodd" d="M4 5h16a1 1 0 010 2H4a1 1 0 110-2zm0 6h16a1 1 0 010 2H4a1 1 0 010-2zm0 6h16a1 1 0 010 2H4a1 1 0 010-2z"></path> </svg> </button> </div> <!-- Social Links (Desktop) --> <div class="hidden lg:flex gap-3 order-1"> <a href="https://x.com/crowdin" class="text-opacity-70 whitespace-nowrap" rel="noopener noreferrer" target="_blank" aria-label="X"> <svg width="20" height="20" class="opacity-70 transition-opacity hover:opacity-100" data-icon="prime:twitter"> <symbol id="ai:prime:twitter" viewBox="0 0 14 14"><g fill="none"><g clip-path="url(#primeTwitter0)"><path fill="currentColor" d="M11.025.656h2.147L8.482 6.03L14 13.344H9.68L6.294 8.909l-3.87 4.435H.275l5.016-5.75L0 .657h4.43L7.486 4.71zm-.755 11.4h1.19L3.78 1.877H2.504z"/></g><defs><clipPath id="primeTwitter0"><path fill="#fff" d="M0 0h14v14H0z"/></clipPath></defs></g></symbol><use href="#ai:prime:twitter"></use> </svg> </a><a href="https://www.linkedin.com/company/crowdin" class="text-opacity-70 whitespace-nowrap" rel="noopener noreferrer" target="_blank" aria-label="Linkedin"> <svg width="20" height="20" class="opacity-70 transition-opacity hover:opacity-100" data-icon="mdi:linkedin"> <symbol id="ai:mdi:linkedin" viewBox="0 0 24 24"><path fill="currentColor" d="M19 3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm-.5 15.5v-5.3a3.26 3.26 0 0 0-3.26-3.26c-.85 0-1.84.52-2.32 1.3v-1.11h-2.79v8.37h2.79v-4.93c0-.77.62-1.4 1.39-1.4a1.4 1.4 0 0 1 1.4 1.4v4.93zM6.88 8.56a1.68 1.68 0 0 0 1.68-1.68c0-.93-.75-1.69-1.68-1.69a1.69 1.69 0 0 0-1.69 1.69c0 .93.76 1.68 1.69 1.68m1.39 9.94v-8.37H5.5v8.37z"/></symbol><use href="#ai:mdi:linkedin"></use> </svg> </a><a href="https://www.youtube.com/@crowdin-localization" class="text-opacity-70 whitespace-nowrap" rel="noopener noreferrer" target="_blank" aria-label="Youtube"> <svg width="20" height="20" viewBox="0 0 24 24" class="opacity-70 transition-opacity hover:opacity-100" data-icon="mdi:youtube"> <use href="#ai:mdi:youtube"></use> </svg> </a><a href="https://github.com/crowdin" class="text-opacity-70 whitespace-nowrap" rel="noopener noreferrer" target="_blank" aria-label="Github"> <svg width="20" height="20" class="opacity-70 transition-opacity hover:opacity-100" data-icon="mdi:github"> <symbol id="ai:mdi:github" viewBox="0 0 24 24"><path fill="currentColor" d="M12 2A10 10 0 0 0 2 12c0 4.42 2.87 8.17 6.84 9.5c.5.08.66-.23.66-.5v-1.69c-2.77.6-3.36-1.34-3.36-1.34c-.46-1.16-1.11-1.47-1.11-1.47c-.91-.62.07-.6.07-.6c1 .07 1.53 1.03 1.53 1.03c.87 1.52 2.34 1.07 2.91.83c.09-.65.35-1.09.63-1.34c-2.22-.25-4.55-1.11-4.55-4.92c0-1.11.38-2 1.03-2.71c-.1-.25-.45-1.29.1-2.64c0 0 .84-.27 2.75 1.02c.79-.22 1.65-.33 2.5-.33s1.71.11 2.5.33c1.91-1.29 2.75-1.02 2.75-1.02c.55 1.35.2 2.39.1 2.64c.65.71 1.03 1.6 1.03 2.71c0 3.82-2.34 4.66-4.57 4.91c.36.31.69.92.69 1.85V21c0 .27.16.59.67.5C19.14 20.16 22 16.42 22 12A10 10 0 0 0 12 2"/></symbol><use href="#ai:mdi:github"></use> </svg> </a><a href="https://podcasts.apple.com/us/podcast/agile-localization/id1785636416" class="text-opacity-70 whitespace-nowrap" rel="noopener noreferrer" target="_blank" aria-label="Apple Podcasts"> <svg width="20" height="20" viewBox="0 0 20 20" class="opacity-70 transition-opacity hover:opacity-100" data-icon="apple-podcast"> <use href="#ai:local:apple-podcast"></use> </svg> </a><a href="https://open.spotify.com/show/2Vv42MtK93aLTzvEd77Om5" class="text-opacity-70 whitespace-nowrap" rel="noopener noreferrer" target="_blank" aria-label="Spotify"> <svg width="20" height="20" viewBox="0 0 20 20" class="opacity-70 transition-opacity hover:opacity-100" data-icon="spotify-podcast"> <use href="#ai:local:spotify-podcast"></use> </svg> </a> </div> <div class="hidden lg:flex ml-2 order-1"> <a href="https://accounts.crowdin.com/register" target="_blank" id class="items-center justify-center font-body rounded-md transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 dark:focus:ring-offset-gray-900 bg-accent-600 text-white hover:bg-accent-700 focus:ring-accent-500 dark:bg-accent-500 dark:hover:bg-accent-400 font-semibold h-8 px-3 text-sm inline-flex whitespace-nowrap no-underline">Sign Up</a> </div> <script type="module">const o=()=>typeof localStorage<"u"&&localStorage.getItem("theme")||(window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark");class c extends HTMLElement{constructor(){super();const e=this.querySelector("button");e&&(e.setAttribute("aria-pressed",String(o()==="dark")),e.addEventListener("click",t=>{if(t.currentTarget instanceof HTMLButtonElement){const r=t.currentTarget.getAttribute("aria-pressed")==="true";document.dispatchEvent(new CustomEvent("theme-change",{detail:{theme:r?"light":"dark"}})),document.querySelectorAll("theme-toggle button").forEach(s=>{s.setAttribute("aria-pressed",String(!r))})}}))}}customElements.define("theme-toggle",c);</script> <theme-toggle class="relative h-6 w-6 sm:block order-0 md:order-1"> <button type="button" class="w-full h-full group opacity-70 transition-opacity hover:opacity-100 dark:text-gray-100" aria-label="Toggle theme"> <span class="absolute inset-0 transition-opacity duration-300 [&>*]:hidden group-aria-pressed:[&>*]:block"> <svg width="22" height="22" data-icon="mdi:weather-sunny"> <symbol id="ai:mdi:weather-sunny" viewBox="0 0 24 24"><path fill="currentColor" d="M12 7a5 5 0 0 1 5 5a5 5 0 0 1-5 5a5 5 0 0 1-5-5a5 5 0 0 1 5-5m0 2a3 3 0 0 0-3 3a3 3 0 0 0 3 3a3 3 0 0 0 3-3a3 3 0 0 0-3-3m0-7l2.39 3.42C13.65 5.15 12.84 5 12 5s-1.65.15-2.39.42zM3.34 7l4.16-.35A7.2 7.2 0 0 0 5.94 8.5c-.44.74-.69 1.5-.83 2.29zm.02 10l1.76-3.77a7.13 7.13 0 0 0 2.38 4.14zM20.65 7l-1.77 3.79a7.02 7.02 0 0 0-2.38-4.15zm-.01 10l-4.14.36c.59-.51 1.12-1.14 1.54-1.86c.42-.73.69-1.5.83-2.29zM12 22l-2.41-3.44c.74.27 1.55.44 2.41.44c.82 0 1.63-.17 2.37-.44z"/></symbol><use href="#ai:mdi:weather-sunny"></use> </svg> </span> <span class="absolute inset-0 transition-opacity duration-300 [&>*]:block group-aria-pressed:[&>*]:hidden"> <svg width="22" height="22" data-icon="mdi:weather-night"> <symbol id="ai:mdi:weather-night" viewBox="0 0 24 24"><path fill="currentColor" d="m17.75 4.09l-2.53 1.94l.91 3.06l-2.63-1.81l-2.63 1.81l.91-3.06l-2.53-1.94L12.44 4l1.06-3l1.06 3zm3.5 6.91l-1.64 1.25l.59 1.98l-1.7-1.17l-1.7 1.17l.59-1.98L15.75 11l2.06-.05L18.5 9l.69 1.95zm-2.28 4.95c.83-.08 1.72 1.1 1.19 1.85c-.32.45-.66.87-1.08 1.27C15.17 23 8.84 23 4.94 19.07c-3.91-3.9-3.91-10.24 0-14.14c.4-.4.82-.76 1.27-1.08c.75-.53 1.93.36 1.85 1.19c-.27 2.86.69 5.83 2.89 8.02a9.96 9.96 0 0 0 8.02 2.89m-1.64 2.02a12.08 12.08 0 0 1-7.8-3.47c-2.17-2.19-3.33-5-3.49-7.82c-2.81 3.14-2.7 7.96.31 10.98c3.02 3.01 7.84 3.12 10.98.31"/></symbol><use href="#ai:mdi:weather-night"></use> </svg> </span> </button> </theme-toggle> </div> </div> <nav class="astronav-items astronav-toggle pl-2 hidden lg:hidden"> <div class="mt-4 flex flex-col gap-4"> <nav class="text-neutral-600 dark:text-neutral-400 flex flex-col gap-4"> <a href="/blog/category/customer-stories" class="text-opacity-70 text-sm hover:text-neutral-900 dark:hover:text-neutral-200 whitespace-nowrap" rel="noopener noreferrer"> Customer Stories </a><a href="/blog/category/product-updates" class="text-opacity-70 text-sm hover:text-neutral-900 dark:hover:text-neutral-200 whitespace-nowrap" rel="noopener noreferrer"> Product Updates </a><a href="/blog/category/ai" class="text-opacity-70 text-sm hover:text-neutral-900 dark:hover:text-neutral-200 whitespace-nowrap" rel="noopener noreferrer"> AI in Localization </a><menu class="astronav-dropdown group" aria-expanded="false"> <button class="flex items-center gap-1 text-sm hover:text-neutral-900 dark:hover:text-neutral-200"> <span class="whitespace-nowrap">Resources for Teams</span> <svg width="1em" height="1em" viewBox="0 0 24 24" class="h-4 w-4 transition-transform group-open:rotate-180" data-icon="mdi:chevron-down"> <use href="#ai:mdi:chevron-down"></use> </svg> </button> <div class="astronav-dropdown dropdown-toggle hidden relative" aria-expanded="false"> <div class="lg:absolute lg:top-2 w-full lg:w-48 rounded-lg bg-gray-100 p-3 shadow-lg dark:bg-gray-800"> <ul class="space-y-1 text-neutral-600 dark:text-neutral-400"> <li> <a href="/blog/category/engineering-teams" class="text-opacity-70 block w-full text-sm rounded-md px-2 py-1 hover:bg-gray-200 hover:text-neutral-900 dark:hover:bg-gray-700 dark:hover:text-neutral-200 whitespace-nowrap" rel="noopener noreferrer"> Engineering </a> </li><li> <a href="/blog/category/design-teams" class="text-opacity-70 block w-full text-sm rounded-md px-2 py-1 hover:bg-gray-200 hover:text-neutral-900 dark:hover:bg-gray-700 dark:hover:text-neutral-200 whitespace-nowrap" rel="noopener noreferrer"> Design </a> </li><li> <a href="/blog/category/marketing-teams" class="text-opacity-70 block w-full text-sm rounded-md px-2 py-1 hover:bg-gray-200 hover:text-neutral-900 dark:hover:bg-gray-700 dark:hover:text-neutral-200 whitespace-nowrap" rel="noopener noreferrer"> Marketing </a> </li><li> <a href="/blog/category/support-teams" class="text-opacity-70 block w-full text-sm rounded-md px-2 py-1 hover:bg-gray-200 hover:text-neutral-900 dark:hover:bg-gray-700 dark:hover:text-neutral-200 whitespace-nowrap" rel="noopener noreferrer"> Support </a> </li> </ul> </div> </div> </menu> </nav> <div class="flex flex-row items-center justify-between border-t border-neutral-200 pt-4 dark:border-neutral-800"> <div class="flex items-center gap-3"> <a href="https://x.com/crowdin" class="text-opacity-70 whitespace-nowrap" rel="noopener noreferrer" target="_blank" aria-label="X"> <svg width="20" height="20" viewBox="0 0 14 14" class="opacity-70 transition-opacity hover:opacity-100" data-icon="prime:twitter"> <use href="#ai:prime:twitter"></use> </svg> </a><a href="https://www.linkedin.com/company/crowdin" class="text-opacity-70 whitespace-nowrap" rel="noopener noreferrer" target="_blank" aria-label="Linkedin"> <svg width="20" height="20" viewBox="0 0 24 24" class="opacity-70 transition-opacity hover:opacity-100" data-icon="mdi:linkedin"> <use href="#ai:mdi:linkedin"></use> </svg> </a><a href="https://www.youtube.com/@crowdin-localization" class="text-opacity-70 whitespace-nowrap" rel="noopener noreferrer" target="_blank" aria-label="Youtube"> <svg width="20" height="20" viewBox="0 0 24 24" class="opacity-70 transition-opacity hover:opacity-100" data-icon="mdi:youtube"> <use href="#ai:mdi:youtube"></use> </svg> </a><a href="https://github.com/crowdin" class="text-opacity-70 whitespace-nowrap" rel="noopener noreferrer" target="_blank" aria-label="Github"> <svg width="20" height="20" viewBox="0 0 24 24" class="opacity-70 transition-opacity hover:opacity-100" data-icon="mdi:github"> <use href="#ai:mdi:github"></use> </svg> </a><a href="https://podcasts.apple.com/us/podcast/agile-localization/id1785636416" class="text-opacity-70 whitespace-nowrap" rel="noopener noreferrer" target="_blank" aria-label="Apple Podcasts"> <svg width="20" height="20" viewBox="0 0 20 20" class="opacity-70 transition-opacity hover:opacity-100" data-icon="apple-podcast"> <use href="#ai:local:apple-podcast"></use> </svg> </a><a href="https://open.spotify.com/show/2Vv42MtK93aLTzvEd77Om5" class="text-opacity-70 whitespace-nowrap" rel="noopener noreferrer" target="_blank" aria-label="Spotify"> <svg width="20" height="20" viewBox="0 0 20 20" class="opacity-70 transition-opacity hover:opacity-100" data-icon="spotify-podcast"> <use href="#ai:local:spotify-podcast"></use> </svg> </a> </div> <a href="https://accounts.crowdin.com/register" target="_blank" id class="items-center justify-center font-body rounded-md transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 dark:focus:ring-offset-gray-900 bg-accent-600 text-white hover:bg-accent-700 focus:ring-accent-500 dark:bg-accent-500 dark:hover:bg-accent-400 font-semibold h-8 px-3 text-sm inline-flex whitespace-nowrap no-underline">Sign Up</a> </div> </div> </nav> <script>(function(){const closeOnClick = true; ["DOMContentLoaded", "astro:after-swap"].forEach((event) => { document.addEventListener(event, addListeners); }); // Function to clone and replace elements function cloneAndReplace(element) { const clone = element.cloneNode(true); element.parentNode.replaceChild(clone, element); } function addListeners() { // Clean up existing listeners const oldMenuButton = document.getElementById("astronav-menu"); if (oldMenuButton) { cloneAndReplace(oldMenuButton); } const oldDropdownMenus = document.querySelectorAll(".astronav-dropdown"); oldDropdownMenus.forEach((menu) => { cloneAndReplace(menu); }); // Mobile nav toggle const menuButton = document.getElementById("astronav-menu"); menuButton && menuButton.addEventListener("click", toggleMobileNav); // Dropdown menus const dropdownMenus = document.querySelectorAll(".astronav-dropdown"); dropdownMenus.forEach((menu) => { const button = menu.querySelector("button"); button && button.addEventListener("click", (event) => toggleDropdownMenu(event, menu, dropdownMenus) ); // Handle Submenu Dropdowns const dropDownSubmenus = menu.querySelectorAll( ".astronav-dropdown-submenu" ); dropDownSubmenus.forEach((submenu) => { const submenuButton = submenu.querySelector("button"); submenuButton && submenuButton.addEventListener("click", (event) => { event.stopImmediatePropagation(); toggleSubmenuDropdown(event, submenu); }); }); }); // Clicking away from dropdown will remove the dropdown class document.addEventListener("click", closeAllDropdowns); if (closeOnClick) { handleCloseOnClick(); } } function toggleMobileNav() { [...document.querySelectorAll(".astronav-toggle")].forEach((el) => { el.classList.toggle("hidden"); }); } function toggleDropdownMenu(event, menu, dropdownMenus) { toggleMenu(menu); // Close one dropdown when selecting another Array.from(dropdownMenus) .filter((el) => el !== menu && !menu.contains(el)) .forEach(closeMenu); event.stopPropagation(); } function toggleSubmenuDropdown(event, submenu) { event.stopPropagation(); toggleMenu(submenu); // Close sibling submenus at the same nesting level const siblingSubmenus = submenu .closest(".astronav-dropdown") .querySelectorAll(".astronav-dropdown-submenu"); Array.from(siblingSubmenus) .filter((el) => el !== submenu && !submenu.contains(el)) .forEach(closeMenu); } function closeAllDropdowns(event) { const dropdownMenus = document.querySelectorAll(".dropdown-toggle"); const dropdownParent = document.querySelectorAll( ".astronav-dropdown, .astronav-dropdown-submenu" ); const isButtonInsideDropdown = [ ...document.querySelectorAll( `.astronav-dropdown button, .astronav-dropdown label, .astronav-dropdown input, .astronav-dropdown-submenu button, .astronav-dropdown-submenu label, .astronav-dropdown-submenu input, #astronav-menu` ), ].some((button) => button.contains(event.target)); if (!isButtonInsideDropdown) { dropdownMenus.forEach((d) => { // console.log("I ran", d); // if (!d.contains(event.target)) { d.classList.remove("open"); d.removeAttribute("open"); d.classList.add("hidden"); // } }); dropdownParent.forEach((d) => { d.classList.remove("open"); d.removeAttribute("open"); d.setAttribute("aria-expanded", "false"); }); } } function toggleMenu(menu) { menu.classList.toggle("open"); const expanded = menu.getAttribute("aria-expanded") === "true"; menu.setAttribute("aria-expanded", expanded ? "false" : "true"); menu.hasAttribute("open") ? menu.removeAttribute("open") : menu.setAttribute("open", ""); const dropdownToggle = menu.querySelector(".dropdown-toggle"); const dropdownExpanded = dropdownToggle.getAttribute("aria-expanded"); dropdownToggle.classList.toggle("hidden"); dropdownToggle.setAttribute( "aria-expanded", dropdownExpanded === "true" ? "false" : "true" ); } function closeMenu(menu) { // console.log("closing", menu); menu.classList.remove("open"); menu.removeAttribute("open"); menu.setAttribute("aria-expanded", "false"); const dropdownToggles = menu.querySelectorAll(".dropdown-toggle"); dropdownToggles.forEach((toggle) => { toggle.classList.add("hidden"); toggle.setAttribute("aria-expanded", "false"); }); } function handleCloseOnClick() { const navMenuItems = document.querySelector(".astronav-items"); const navToggle = document.getElementById("astronav-menu"); const navLink = navMenuItems && navMenuItems.querySelectorAll("a"); const MenuIcons = navToggle.querySelectorAll(".astronav-toggle"); navLink && navLink.forEach((item) => { item.addEventListener("click", () => { navMenuItems?.classList.add("hidden"); MenuIcons.forEach((el) => { el.classList.toggle("hidden"); }); }); }); } })();</script> </header> <div class="relative w-full min-h-96 bg-gradient-to-b from-white to-gray-100 dark:from-gray-900 dark:to-gray-950"> <div class="absolute inset-0 pointer-events-none"> <img src="/blog/_astro/1920-min.CDtd3_gN_Z1VQrO5.webp" srcset="/blog/_astro/1920-min.CDtd3_gN_1RVgzl.webp 480w, /blog/_astro/1920-min.CDtd3_gN_Z1VQrO5.webp 3840w" loading="eager" alt="Background of the banner at the top of the page" sizes="(max-width: 768px) 480px, 3840px" width="3840" height="1520" decoding="async" class="h-full w-full object-cover object-top max-w-[1920px] mx-auto visible dark:hidden"> <img src="/blog/_astro/1920-min-dark.BzVnrUnQ_Z16q2VB.webp" srcset="/blog/_astro/1920-min-dark.BzVnrUnQ_1hG9rE.webp 480w, /blog/_astro/1920-min-dark.BzVnrUnQ_Z16q2VB.webp 3840w" loading="eager" alt="Background of the banner at the top of the page" sizes="(max-width: 768px) 480px, 3840px" width="3840" height="1520" decoding="async" class="h-full w-full object-cover object-top max-w-[1920px] mx-auto hidden dark:block"> </div> <div class="relative h-96 px-4 flex items-center z-10"> <div class="mx-auto text-center p-8 rounded-3xl bg-white/70 dark:bg-gray-800/70 shadow-lg backdrop-blur-md"> <h1 class="inline-block text-3xl lg:text-5xl font-semibold text-gray-700 dark:text-gray-100 lg:tracking-tight lg:leading-tight"> Localization Tips and Product Updates </h1> <p class="text-lg text-gray-700 dark:text-gray-200">Page 6</p> </div> </div> </div> <main class="container md:max-w-6xl mx-auto px-4 py-4 antialiased md:overflow-visible relative z-10"> <section class="w-full mb-16"> <div class="grid gap-6"> <div class="col-span-full mb-4 -mt-12"> <div class="mb-8 group border border-gray-100 dark:border-gray-800 rounded-2xl bg-white dark:bg-gray-900 from-gray-100 dark:bg-gradient-to-br dark:from-gray-600 to-transparent hover:border-gray-200 hover:dark:border-gray-600 transition duration-150 ease-out hover:ease-in scale-[1] hover:scale-[1.01]"> <a href="/blog/2022/12/20/saas-localization" class="flex flex-col blog-post-card rounded-xl overflow-hidden"> <!-- Cover image --> <div class="flex flex-col lg:flex-row"> <!-- Content container --> <div class="p-8 flex flex-col gap-1 order-2 lg:order-1"> <span class="order-1 font-heading font-semibold text-2xl text-gray-600 dark:text-gray-100 transition-colors duration-200 group-hover:text-accent-600 dark:group-hover:text-accent-400"> How to Localize your SaaS Application: Best Practices </span> <div class="order-1 text-sm flex items-center gap-x-2 text-gray-400 mb-3"> <time class datetime="2022-12-20T00:00:00.000Z"> Dec 20, 2022 </time> <span>•</span> <span>13 min read</span> </div> <p class="order-3 mt-1 line-clamp-3 text-gray-700 dark:text-gray-300"> As a SaaS business grows, it becomes more important for you to make your product available to users all over the world. As more and more customers from different locales come in, you might start to wonder how to tackle SaaS localization and translation without creating extra work or complicating the processes that already work. No matter how much content you have and how many people are creating and editing it, with the proper infrastructure and tools, it is possible to create a multilingual product that will help you win customers speaking different languages and grow your business. Translation and localization can be automated, so there’s no copy-pasting for you. </p> </div> <div class="overflow-hidden order-1 basis-[63%] shrink-0 grow-0 border-b border-gray-100 dark:border-gray-800 lg:border-b-0"> <img src="/blog/_astro/SaaS-localization-practices.TYv0rXqX_2mgx0b.webp" alt="Key steps for SaaS localization" loading="eager" width="1600" height="900" decoding="async" class="w-full h-full object-cover"> </div> </div> </a> </div> </div> <div class="grid gap-6 grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 [&>*]:h-full"> <div class="group h-full lg:col-span-1"> <a href="/blog/2022/12/13/lingui-i18n" class="flex flex-col blog-post-card rounded-xl overflow-hidden h-full pb-8 bg-gradient-to-br from-gray-100 to-transparent dark:from-gray-600 border border-gray-100 dark:border-gray-800 hover:border-gray-200 hover:dark:border-gray-600 transition duration-150 ease-out hover:ease-in scale-[1] hover:scale-[1.01]"> <!-- Cover image --> <div class="overflow-hidden mb-4 order-2"> <img src="/blog/_astro/lingui-i18n-cover.C8DUheLx_Z1Nui1y.webp" alt="How to Localize JavaScript and React Apps with Lingui" loading="lazy" width="1200" height="663" decoding="async" class="w-full rounded-xl object-cover"> </div> <!-- Content container --> <div class="flex flex-col gap-1 order-2 px-8 py-4"> <span class="order-1 font-heading font-semibold text-gray-600 dark:text-gray-100 transition-colors duration-200 group-hover:text-accent-600 dark:group-hover:text-accent-400 text-lg leading-normal"> How to Localize JavaScript and React Apps with Lingui </span> <div class="text-sm flex items-center gap-x-2 text-gray-400 order-2 mb-0"> <time class datetime="2022-12-13T00:00:00.000Z"> Dec 13, 2022 </time> <span>•</span> <span>13 min read</span> </div> </div> <p class="order-3 mt-1 line-clamp-3 text-gray-700 dark:text-gray-300 px-8"> Internationalization (i18n) prepares your apps for a global audience in today's interconnected world. If you're a JavaScript or React developer looking for a lightweight, powerful i18n tool, you might like Lingui. </p> </a> </div> <div class="group h-full lg:col-span-1"> <a href="/blog/2022/12/06/how-crowdin-app-by-intento-increased-mt-engines-list-to-40" class="flex flex-col blog-post-card rounded-xl overflow-hidden h-full pb-8 bg-gradient-to-br from-gray-100 to-transparent dark:from-gray-600 border border-gray-100 dark:border-gray-800 hover:border-gray-200 hover:dark:border-gray-600 transition duration-150 ease-out hover:ease-in scale-[1] hover:scale-[1.01]"> <!-- Cover image --> <div class="overflow-hidden mb-4 order-2"> <img src="/blog/_astro/intento-cover.BUSVeXcE_zrAzO.webp" alt="Crowdin app by Intento increases MT engines list to 40+" loading="lazy" width="1200" height="630" decoding="async" class="w-full rounded-xl object-cover"> </div> <!-- Content container --> <div class="flex flex-col gap-1 order-2 px-8 py-4"> <span class="order-1 font-heading font-semibold text-gray-600 dark:text-gray-100 transition-colors duration-200 group-hover:text-accent-600 dark:group-hover:text-accent-400 text-lg leading-normal"> How Intento Built a Crowdin app in Two Days: 40+ MT Engines Available in Crowdin </span> <div class="text-sm flex items-center gap-x-2 text-gray-400 order-2 mb-0"> <time class datetime="2022-12-06T00:00:00.000Z"> Dec 6, 2022 </time> <span>•</span> <span>5 min read</span> </div> </div> <p class="order-3 mt-1 line-clamp-3 text-gray-700 dark:text-gray-300 px-8"> In simple words, Intento provides tools to help companies evaluate, customize, and connect best-fit MT to existing software. With Intento, companies can also monitor translation performance to continuously improve their entire machine translation program. Read on to find out how Intento was one of the first companies to make a Crowdin App and how it increased the list of machine translation engines to make it easier for customers to translate content. </p> </a> </div> <div class="group h-full lg:col-span-1 md:order-3"> <a href="/blog/2022/12/01/what-is-new-at-crowdin-november-2022" class="flex flex-col blog-post-card rounded-xl overflow-hidden h-full pb-8 bg-gradient-to-br from-gray-100 to-transparent dark:from-gray-600 border border-gray-100 dark:border-gray-800 hover:border-gray-200 hover:dark:border-gray-600 transition duration-150 ease-out hover:ease-in scale-[1] hover:scale-[1.01]"> <!-- Cover image --> <div class="overflow-hidden mb-4 order-2"> <img src="/blog/_astro/product-updates-november-22.DwXT2byq_Z29e8Vo.webp" alt="What's New at Crowdin Localization Software: November 2022 Roundup" loading="lazy" width="4803" height="2703" decoding="async" class="w-full rounded-xl object-cover"> </div> <!-- Content container --> <div class="flex flex-col gap-1 order-2 px-8 py-4"> <span class="order-1 font-heading font-semibold text-gray-600 dark:text-gray-100 transition-colors duration-200 group-hover:text-accent-600 dark:group-hover:text-accent-400 text-lg leading-normal"> What's New at Crowdin: November 2022 </span> <div class="text-sm flex items-center gap-x-2 text-gray-400 order-2 mb-0"> <time class datetime="2022-12-01T00:00:00.000Z"> Dec 1, 2022 </time> <span>•</span> <span>6 min read</span> </div> </div> <p class="order-3 mt-1 line-clamp-3 text-gray-700 dark:text-gray-300 px-8"> This month, we’re delivering new apps (Dyspatch, Mailjet, Beamer, Google Shared Drives, Braille Translator) and features to make your localization process easier, including real-time spell check available on multilingual view and more granular permissions for API tokens. We’ve also introduced new notifications about updated source strings and new bundle functionality for DVCS integrations (which allows you to synchronize ready files in the file format you need to your repo). </p> </a> </div> <div class="col-span-full sm:col-span-2 lg:col-span-3 lg:order-3 my-12 relative"> <div class="absolute z-10 -left-24 lg:-left-32 bottom:0 -lg:bottom-32 block md:hidden lg:block"> <img src="/blog/_astro/subscribe-bg-left.Dh0S8quM_Z1l4lUw.svg" alt="Subcribe form background" width="218" height="394" loading="lazy" decoding="async" class="h-auto w-3/4 opacity-90 dark:hidden"> <img src="/blog/_astro/subscribe-bg-left-dark.e_ogM3-P_62xiw.svg" alt="Subcribe form background" width="218" height="394" loading="lazy" decoding="async" class="h-auto w-3/4 opacity-90 hidden dark:block"> </div> <form id="newsletter-form" class="rounded-xl border border-neutral-300 dark:border-neutral-700 text-center border-none" novalidate data-astro-cid-bfbmamsi> <div class="mx-auto flex flex-col md:flex-row text-left gap-8 p-8" data-astro-cid-bfbmamsi> <span class="font-heading font-semibold text-gray-900 dark:text-gray-100 text-center md:text-left basis-1/2 text-2xl mb-3 md:mb-0" data-astro-cid-bfbmamsi> Stay updated with Crowdin by signing up for our newsletter </span> <div class="flex gap-3 flex-col md:flex-row justify-center md:mt-3 grow" data-astro-cid-bfbmamsi> <div class="relative w-full max-w-none md:max-w-sm" data-astro-cid-bfbmamsi> <input type="email" id="email" name="email" placeholder="Your work email" required class="w-full p-2 pr-10 border rounded-md focus:outline-none focus:ring-2 focus:ring-accent-500 border-gray-300 dark:border-gray-500 bg-white dark:bg-gray-900 text-gray-900 dark:text-white placeholder:text-gray-500 dark:placeholder:text-gray-400" data-astro-cid-bfbmamsi> <div class="invalid-feedback hidden text-red-500 dark:text-red-400 text-sm mt-1" data-astro-cid-bfbmamsi> Please provide a valid email address. </div> <div class="flex mt-2" data-astro-cid-bfbmamsi> <input type="checkbox" id="policy" name="policy" required class="w-4 h-4 mt-1 border rounded-md focus:ring-2 focus:ring-accent-500 text-accent-500 dark:text-accent-400" data-astro-cid-bfbmamsi> <label for="policy" class="ml-2 text-sm text-gray-700 dark:text-gray-300" data-astro-cid-bfbmamsi> I consent to the processing of my personal data in accordance with the <a href="https://support.crowdin.com/privacy-policy/" class="text-accent-500 dark:text-accent-400" data-astro-cid-bfbmamsi>Privacy Policy</a>. </label> </div> </div> <button type="submit" id class="inline-flex items-center justify-center font-body rounded-md transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 dark:focus:ring-offset-gray-900 bg-accent-600 text-white hover:bg-accent-700 focus:ring-accent-500 dark:bg-accent-500 dark:hover:bg-accent-400 font-semibold h-10 text-base px-8 whitespace-nowrap"> <span class="flex items-center justify-center gap-2" data-astro-cid-bfbmamsi>Subscribe</span> </button> </div> </div> <div id="form-result" class="mt-3 text-sm text-center" data-astro-cid-bfbmamsi></div> </form> <script type="module">const s=document.getElementById("newsletter-form"),t=document.getElementById("email"),i=document.getElementById("form-result");function n(r,e=!1){i.textContent=r,i.className=`mt-3 text-sm text-center ${e?"text-red-500 dark:text-red-400":"text-accent-600 dark:text-accent-400"}`}s.addEventListener("submit",async r=>{if(r.preventDefault(),t.classList.remove("is-invalid"),!t.value||!t.checkValidity()){t.classList.add("is-invalid"),t.focus();return}if(!s.policy.checked){n("Please accept the Privacy Policy.",!0);return}let e=new Date().getTimezoneOffset();e=e===0?0:-e;const o=new URLSearchParams;o.append("email",t.value),o.append("timezone",e.toString());try{const a=await fetch("https://api.crowdin.com/blog-api/subscribe",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:o.toString()});if(a.status===409){n("You have already subscribed.");return}if(!a.ok)throw new Error("Subscription failed.");n("Thank you for subscribing!"),s.reset(),window.dataLayer&&window.dataLayer.push({event:"BlogSubscribe","blog-action":"subscribe-to-blog"})}catch(a){n("Something went wrong. Please try again later.",!0),console.error(a)}});</script> </div> <div class="group h-full lg:order-4 md:order-3"> <a href="/blog/2022/11/29/ecommerce-localization" class="flex flex-col blog-post-card rounded-xl overflow-hidden h-full pb-8 bg-gradient-to-br from-gray-100 to-transparent dark:from-gray-600 border border-gray-100 dark:border-gray-800 hover:border-gray-200 hover:dark:border-gray-600 transition duration-150 ease-out hover:ease-in scale-[1] hover:scale-[1.01]"> <!-- Cover image --> <div class="overflow-hidden mb-4 order-2"> <img src="/blog/_astro/ecommerce-localization.C0TTFOdR_Z1FzOX9.webp" alt="Ecommerce localization with Crowdin" loading="lazy" width="1600" height="900" decoding="async" class="w-full rounded-xl object-cover"> </div> <!-- Content container --> <div class="flex flex-col gap-1 order-2 px-8 py-4"> <span class="order-1 font-heading font-semibold text-gray-600 dark:text-gray-100 transition-colors duration-200 group-hover:text-accent-600 dark:group-hover:text-accent-400 text-lg leading-normal"> How to Master E-Commerce Localization: Bring Your Store to New Markets </span> <div class="text-sm flex items-center gap-x-2 text-gray-400 order-2 mb-0"> <time class datetime="2022-11-29T00:00:00.000Z"> Nov 29, 2022 </time> <span>•</span> <span>11 min read</span> </div> </div> <p class="order-3 mt-1 line-clamp-3 text-gray-700 dark:text-gray-300 px-8"> If you already make a lot of sales in your domestic market, you might think that hiring a translation agency is all you need to grow in the global market. In reality, e-commerce localization includes the SEO aspects of your store, local currency, payment methods, imagery, and other things that should accompany the content translation. Let's talk about why e-commerce localization is important, how to do it with the help of localization platform, Crowdin, and what to consider before you localize your content. </p> </a> </div> <div class="group h-full lg:order-4 md:order-3"> <a href="/blog/2022/11/22/multilingual-cms" class="flex flex-col blog-post-card rounded-xl overflow-hidden h-full pb-8 bg-gradient-to-br from-gray-100 to-transparent dark:from-gray-600 border border-gray-100 dark:border-gray-800 hover:border-gray-200 hover:dark:border-gray-600 transition duration-150 ease-out hover:ease-in scale-[1] hover:scale-[1.01]"> <!-- Cover image --> <div class="overflow-hidden mb-4 order-2"> <img src="/blog/_astro/multilingual-cms.rDodX8VT_1Yngcz.webp" alt="Content management system translation with Crowdin" loading="lazy" width="1600" height="900" decoding="async" class="w-full rounded-xl object-cover"> </div> <!-- Content container --> <div class="flex flex-col gap-1 order-2 px-8 py-4"> <span class="order-1 font-heading font-semibold text-gray-600 dark:text-gray-100 transition-colors duration-200 group-hover:text-accent-600 dark:group-hover:text-accent-400 text-lg leading-normal"> Multilingual CMS: How to Choose the Best Content Management System </span> <div class="text-sm flex items-center gap-x-2 text-gray-400 order-2 mb-0"> <time class datetime="2022-11-22T00:00:00.000Z"> Nov 22, 2022 </time> <span>•</span> <span>9 min read</span> </div> </div> <p class="order-3 mt-1 line-clamp-3 text-gray-700 dark:text-gray-300 px-8"> Expand your business into new countries by localizing your website and product content into several languages. Make sure to optimize localized content for search engines in your target locales. This move toward multilingual content also opens up new opportunities and strengthens relationships between businesses and customers. As the web development industry has moved toward supporting more languages, content management systems (CMS) should be ready to handle localization. In this article, we'll look at choosing the best CMS and localization apps for CMS that have features for translating content and publishing pages into more than one language. But before we get there, let's discuss multilingual content management and why you need a CMS. </p> </a> </div> <div class="group h-full lg:order-4"> <a href="/blog/2022/11/16/translate-magento-store" class="flex flex-col blog-post-card rounded-xl overflow-hidden h-full pb-8 bg-gradient-to-br from-gray-100 to-transparent dark:from-gray-600 border border-gray-100 dark:border-gray-800 hover:border-gray-200 hover:dark:border-gray-600 transition duration-150 ease-out hover:ease-in scale-[1] hover:scale-[1.01]"> <!-- Cover image --> <div class="overflow-hidden mb-4 order-2"> <img src="/blog/_astro/magento-store-localization.SJ4vIvJy_Z1Sief5.webp" alt="How to create Multilingual store in Magento 2" loading="lazy" width="1600" height="900" decoding="async" class="w-full rounded-xl object-cover"> </div> <!-- Content container --> <div class="flex flex-col gap-1 order-2 px-8 py-4"> <span class="order-1 font-heading font-semibold text-gray-600 dark:text-gray-100 transition-colors duration-200 group-hover:text-accent-600 dark:group-hover:text-accent-400 text-lg leading-normal"> Create a Multi-Language Store in Magento 2 </span> <div class="text-sm flex items-center gap-x-2 text-gray-400 order-2 mb-0"> <time class datetime="2022-11-16T00:00:00.000Z"> Nov 16, 2022 </time> <span>•</span> <span>5 min read</span> </div> </div> <p class="order-3 mt-1 line-clamp-3 text-gray-700 dark:text-gray-300 px-8"> The increasing number of eCommerce stores encourages merchants to scale up their businesses to outrun the competition and stay on the market. Magento localization requires you to go through a lot of steps, among which translation stands out the most. It is a time-consuming and daunting task. But Magento translation pays off in the long run if you use the right tools to optimize the process. </p> </a> </div> <div class="group h-full lg:order-6"> <a href="/blog/2022/11/01/what-is-new-at-crowdin-october-2022" class="flex flex-col blog-post-card rounded-xl overflow-hidden h-full pb-8 bg-gradient-to-br from-gray-100 to-transparent dark:from-gray-600 border border-gray-100 dark:border-gray-800 hover:border-gray-200 hover:dark:border-gray-600 transition duration-150 ease-out hover:ease-in scale-[1] hover:scale-[1.01]"> <!-- Cover image --> <div class="overflow-hidden mb-4 order-2"> <img src="/blog/_astro/product-updates-october-22.WVx8In5Y_Z19vbvW.webp" alt="What's New at Crowdin Localization Software: October 2022 Roundup" loading="lazy" width="2402" height="1352" decoding="async" class="w-full rounded-xl object-cover"> </div> <!-- Content container --> <div class="flex flex-col gap-1 order-2 px-8 py-4"> <span class="order-1 font-heading font-semibold text-gray-600 dark:text-gray-100 transition-colors duration-200 group-hover:text-accent-600 dark:group-hover:text-accent-400 text-lg leading-normal"> What's New at Crowdin: October 2022 </span> <div class="text-sm flex items-center gap-x-2 text-gray-400 order-2 mb-0"> <time class datetime="2022-11-01T00:00:00.000Z"> Nov 1, 2022 </time> <span>•</span> <span>5 min read</span> </div> </div> <p class="order-3 mt-1 line-clamp-3 text-gray-700 dark:text-gray-300 px-8"> Salesforce Marketing Cloud app, Contentstack connector, ICU Message Format Helper app, and the ability to change the default translation memory (TM) and glossary are just a little part of what happened at Crowdin in October. Here’s our monthly recap. </p> </a> </div> <div class="col-span-full sm:col-span-2 lg:col-span-3 lg:order-5 my-12"> <div class="relative overflow-hidden rounded-2xl bg-gradient-to-br from-gray-800 to-gray-900 dark:from-green-900 dark:to-slate-900"> <div class="relative z-10 flex flex-col-reverse gap-4 px-8 py-6 lg:flex-row lg:items-center lg:justify-between lg:gap-8"> <div class="w-full text-center lg:text-left"> <h3 class="mb-2 mt-2 font-heading text-2xl font-medium tracking-tight text-white">Explore Localization Resources</h3> <p class="mb-4 text-gray-200">Get industry insights and practical tips. We prepared webinars, e-books, free courses, podcast episodes, and other content for you.</p> <a href="https://crowdin.com/localization-best-practices" target="_blank" id="crowdin-resources-cta" class="items-center justify-center font-body rounded-md transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 dark:focus:ring-offset-gray-900 bg-accent-600 text-white hover:bg-accent-700 focus:ring-accent-500 dark:bg-accent-500 dark:hover:bg-accent-400 font-semibold h-10 px-4 text-base inline-flex whitespace-nowrap no-underline">Check it Out</a> <div class="flex flex-wrap gap-4 mt-3"> <a href="https://podcasts.apple.com/us/podcast/agile-localization/id1785636416" target="_blank" class="inline-flex flex-nowrap rounded border border-gray-500 hover:border-gray-400 text-gray-200 text-xs px-3 py-2 gap-2 items-center"> <svg width="20" height="20" data-icon="apple-podcast"> <symbol id="ai:local:apple-podcast" viewBox="0 0 20 20"><path fill="currentColor" fill-rule="evenodd" d="M18.646 16.6a3.8 3.8 0 0 1-1.152 1.512c-.33.252-.726.498-1.266.66-.576.174-1.29.228-2.178.228h-8.1c-.888 0-1.596-.06-2.178-.228a3.7 3.7 0 0 1-1.266-.66A3.8 3.8 0 0 1 1.354 16.6C1.006 15.706 1 14.692 1 14.05v-8.1c0-.642.006-1.656.354-2.55a3.8 3.8 0 0 1 1.152-1.512c.33-.252.726-.498 1.266-.66C4.354 1.06 5.062 1 5.95 1h8.1c.888 0 1.596.06 2.178.228.54.162.936.402 1.266.66.57.438.978 1.068 1.152 1.512C19 4.294 19 5.314 19 5.95v8.1c0 .642-.006 1.656-.354 2.55M9.982 2.992C6.538 3.004 3.718 5.8 3.67 9.244c-.036 2.79 1.746 5.178 4.236 6.054.06.024.12-.03.114-.09l-.031-.216a12 12 0 0 1-.059-.432.24.24 0 0 0-.126-.174 5.52 5.52 0 0 1-3.318-5.118c.03-3 2.478-5.442 5.472-5.466a5.527 5.527 0 0 1 5.568 5.52 5.54 5.54 0 0 1-3.318 5.064.2.2 0 0 0-.126.174l-.09.648c-.012.066.054.114.114.09a6.34 6.34 0 0 0 4.236-5.976c-.012-3.492-2.862-6.336-6.36-6.33m.018 7.29a1.475 1.475 0 1 0 0-2.952 1.475 1.475 0 1 0 0 2.952m1.302 1.068c.144.144.216.3.24.516.048.42.024.78-.03 1.362a34 34 0 0 1-.252 2.034c-.084.534-.15.822-.21 1.026-.096.33-.468.624-1.05.624s-.948-.288-1.05-.624a8 8 0 0 1-.21-1.026 33 33 0 0 1-.252-2.034v-.006c-.048-.579-.078-.938-.03-1.356a.85.85 0 0 1 .24-.516c.27-.288.744-.468 1.302-.468s1.032.186 1.302.468M5.764 9.274c.03-2.244 1.83-4.098 4.074-4.182 2.412-.096 4.41 1.842 4.404 4.23a4.25 4.25 0 0 1-1.854 3.504c-.06.042-.138-.006-.132-.072.012-.258.018-.486.006-.72 0-.078.03-.15.084-.204a3.44 3.44 0 0 0 1.086-2.502 3.43 3.43 0 0 0-3.564-3.426 3.44 3.44 0 0 0-3.294 3.336A3.43 3.43 0 0 0 7.66 11.83c.06.054.09.126.084.204a6 6 0 0 0 .006.726c0 .066-.078.108-.132.072a4.24 4.24 0 0 1-1.854-3.558" clip-rule="evenodd"/></symbol><use href="#ai:local:apple-podcast"></use> </svg> Apple Podcasts </a><a href="https://open.spotify.com/show/2Vv42MtK93aLTzvEd77Om5?si=71da25e7a14143cd" target="_blank" class="inline-flex flex-nowrap rounded border border-gray-500 hover:border-gray-400 text-gray-200 text-xs px-3 py-2 gap-2 items-center"> <svg width="20" height="20" data-icon="spotify-podcast"> <symbol id="ai:local:spotify-podcast" viewBox="0 0 20 20"><path fill="currentColor" d="M15.324 8.979C12.423 7.256 7.637 7.097 4.868 7.938a.841.841 0 1 1-.489-1.611c3.18-.965 8.464-.779 11.804 1.204a.842.842 0 0 1-.86 1.448m-.094 2.551a.7.7 0 0 1-.965.232c-2.419-1.487-6.107-1.918-8.969-1.05a.703.703 0 0 1-.822-1.001.7.7 0 0 1 .415-.34c3.268-.993 7.332-.512 10.11 1.195a.7.7 0 0 1 .23.964m-1.101 2.451a.56.56 0 0 1-.772.187c-2.113-1.292-4.773-1.584-7.906-.868a.561.561 0 1 1-.25-1.094c3.428-.783 6.37-.446 8.741 1.004a.56.56 0 0 1 .186.771M10 1a9 9 0 1 0 0 18 9 9 0 0 0 0-18"/></symbol><use href="#ai:local:spotify-podcast"></use> </svg> Spotify </a><a href="https://www.youtube.com/playlist?list=PLKBl57e11Ny6Sb4EZeafShgqzWOSDExFA" target="_blank" class="inline-flex flex-nowrap rounded border border-gray-500 hover:border-gray-400 text-gray-200 text-xs px-3 py-2 gap-2 items-center"> <svg width="20" height="20" data-icon="mdi:youtube"> <symbol id="ai:mdi:youtube" viewBox="0 0 24 24"><path fill="currentColor" d="m10 15l5.19-3L10 9zm11.56-7.83c.13.47.22 1.1.28 1.9c.07.8.1 1.49.1 2.09L22 12c0 2.19-.16 3.8-.44 4.83c-.25.9-.83 1.48-1.73 1.73c-.47.13-1.33.22-2.65.28c-1.3.07-2.49.1-3.59.1L12 19c-4.19 0-6.8-.16-7.83-.44c-.9-.25-1.48-.83-1.73-1.73c-.13-.47-.22-1.1-.28-1.9c-.07-.8-.1-1.49-.1-2.09L2 12c0-2.19.16-3.8.44-4.83c.25-.9.83-1.48 1.73-1.73c.47-.13 1.33-.22 2.65-.28c1.3-.07 2.49-.1 3.59-.1L12 5c4.19 0 6.8.16 7.83.44c.9.25 1.48.83 1.73 1.73"/></symbol><use href="#ai:mdi:youtube"></use> </svg> YouTube </a> </div> </div> <div class="mx-auto lg:mr-0"> <img src="/blog/_astro/books-resources.CZO5SteY_1fv9vm.webp" alt="Books and resources illustration" loading="lazy" width="512" height="427" decoding="async" class="h-[180px] w-56 object-contain lg:h-[220px] lg:w-72 mt-0 mb-0"> </div> </div> <div class="absolute inset-0 z-0"> <img src="/blog/_astro/resources-cta-bg.uD9KbYZm_1VTy9s.webp" alt="Background of the CTA" loading="lazy" width="512" height="426" decoding="async" class="h-full w-full object-cover opacity-10"> </div> </div> </div> <div class="group h-full lg:order-6"> <a href="/blog/2022/10/31/survey-translation" class="flex flex-col blog-post-card rounded-xl overflow-hidden h-full pb-8 bg-gradient-to-br from-gray-100 to-transparent dark:from-gray-600 border border-gray-100 dark:border-gray-800 hover:border-gray-200 hover:dark:border-gray-600 transition duration-150 ease-out hover:ease-in scale-[1] hover:scale-[1.01]"> <!-- Cover image --> <div class="overflow-hidden mb-4 order-2"> <img src="/blog/_astro/create-multilingual-surveys.QSa43iFa_Z1q2Har.webp" alt="Multilingual surveys with the help of Crowdin" loading="lazy" width="3200" height="1800" decoding="async" class="w-full rounded-xl object-cover"> </div> <!-- Content container --> <div class="flex flex-col gap-1 order-2 px-8 py-4"> <span class="order-1 font-heading font-semibold text-gray-600 dark:text-gray-100 transition-colors duration-200 group-hover:text-accent-600 dark:group-hover:text-accent-400 text-lg leading-normal"> How to Create Multilingual Surveys: Translate Typeform Content </span> <div class="text-sm flex items-center gap-x-2 text-gray-400 order-2 mb-0"> <time class datetime="2022-10-31T00:00:00.000Z"> Oct 31, 2022 </time> <span>•</span> <span>8 min read</span> </div> </div> <p class="order-3 mt-1 line-clamp-3 text-gray-700 dark:text-gray-300 px-8"> The main aim of multilingual surveys is to reach more people for more feedback and information. To run a multilingual survey, you'll first need to create a base survey in one language. Then, you can translate your survey using Crowdin + Typeform integration. Once your survey, form, or quizz is translated, you'll have a separate one in each language, so you can reach people all over the world. We'll discuss why and how to create multilingual surveys in this article. </p> </a> </div> <div class="group h-full lg:order-6"> <a href="/blog/2022/10/12/translate-marketo-content-faster-with-crowdin" class="flex flex-col blog-post-card rounded-xl overflow-hidden h-full pb-8 bg-gradient-to-br from-gray-100 to-transparent dark:from-gray-600 border border-gray-100 dark:border-gray-800 hover:border-gray-200 hover:dark:border-gray-600 transition duration-150 ease-out hover:ease-in scale-[1] hover:scale-[1.01]"> <!-- Cover image --> <div class="overflow-hidden mb-4 order-2"> <img src="/blog/_astro/marketo-cover.luylGK4P_Z1aLYiM.webp" alt="Marketo Localization with Crowdin" loading="lazy" width="2098" height="1098" decoding="async" class="w-full rounded-xl object-cover"> </div> <!-- Content container --> <div class="flex flex-col gap-1 order-2 px-8 py-4"> <span class="order-1 font-heading font-semibold text-gray-600 dark:text-gray-100 transition-colors duration-200 group-hover:text-accent-600 dark:group-hover:text-accent-400 text-lg leading-normal"> Translate Marketo Content Faster with Crowdin </span> <div class="text-sm flex items-center gap-x-2 text-gray-400 order-2 mb-0"> <time class datetime="2022-10-12T00:00:00.000Z"> Oct 12, 2022 </time> <span>•</span> <span>4 min read</span> </div> </div> <p class="order-3 mt-1 line-clamp-3 text-gray-700 dark:text-gray-300 px-8"> When you’re planning to launch global digital marketing campaigns with Adobe Marketo Engage, you need your content toengage with the local audiences. But this process can be a rocky road when building your Marketo localization process from scratch on your own. With a Crowdin app for Marketo localization (Adobe Marketo Engage), you’ll be able to translate your emails, landing pages, forms, and more to launch multilingual marketing campaigns in new regions. In this article, you’ll learn how to send content from your Marketo account to Crowdin in a few clicks, manage translations, and instantly sync completed translations back to Marketo. </p> </a> </div> <div class="group h-full lg:order-6"> <a href="/blog/2022/10/05/systemair-localization-case-study" class="flex flex-col blog-post-card rounded-xl overflow-hidden h-full pb-8 bg-gradient-to-br from-gray-100 to-transparent dark:from-gray-600 border border-gray-100 dark:border-gray-800 hover:border-gray-200 hover:dark:border-gray-600 transition duration-150 ease-out hover:ease-in scale-[1] hover:scale-[1.01]"> <!-- Cover image --> <div class="overflow-hidden mb-4 order-2"> <img src="/blog/_astro/systemair-case-study.BWKWcYK4_Z2uuBMS.webp" alt="Why Systemair chooses Crowdin for localization" loading="lazy" width="2400" height="1260" decoding="async" class="w-full rounded-xl object-cover"> </div> <!-- Content container --> <div class="flex flex-col gap-1 order-2 px-8 py-4"> <span class="order-1 font-heading font-semibold text-gray-600 dark:text-gray-100 transition-colors duration-200 group-hover:text-accent-600 dark:group-hover:text-accent-400 text-lg leading-normal"> How Systemair Migrated from Spreadsheets to Crowdin </span> <div class="text-sm flex items-center gap-x-2 text-gray-400 order-2 mb-0"> <time class datetime="2022-10-05T00:00:00.000Z"> Oct 5, 2022 </time> <span>•</span> <span>5 min read</span> </div> </div> <p class="order-3 mt-1 line-clamp-3 text-gray-700 dark:text-gray-300 px-8"> Systemair is a global company actively operating in 52 countries around the world. They manufacture ventilation, heating, and cooling products for almost 50 years. The company first started localization in spreadsheets, a common approach at the time. Soon, handling over 40 target languages started to take too much time. That’s why they decided to migrate everything to Crowdin. Right now, they describe their localization process as “We upload our files, and then it just works.” </p> </a> </div> <div class="group h-full lg:order-6"> <a href="/blog/2022/10/03/-what-is-new-at-crowdin-september-2022" class="flex flex-col blog-post-card rounded-xl overflow-hidden h-full pb-8 bg-gradient-to-br from-gray-100 to-transparent dark:from-gray-600 border border-gray-100 dark:border-gray-800 hover:border-gray-200 hover:dark:border-gray-600 transition duration-150 ease-out hover:ease-in scale-[1] hover:scale-[1.01]"> <!-- Cover image --> <div class="overflow-hidden mb-4 order-2"> <img src="/blog/_astro/september-updates-22.C2SXExI4_Zq4gw8.webp" alt="What's New at Crowdin Localization Software: September 2022 Roundup" loading="lazy" width="2403" height="1353" decoding="async" class="w-full rounded-xl object-cover"> </div> <!-- Content container --> <div class="flex flex-col gap-1 order-2 px-8 py-4"> <span class="order-1 font-heading font-semibold text-gray-600 dark:text-gray-100 transition-colors duration-200 group-hover:text-accent-600 dark:group-hover:text-accent-400 text-lg leading-normal"> What's New at Crowdin: September 2022 </span> <div class="text-sm flex items-center gap-x-2 text-gray-400 order-2 mb-0"> <time class datetime="2022-10-03T00:00:00.000Z"> Oct 3, 2022 </time> <span>•</span> <span>5 min read</span> </div> </div> <p class="order-3 mt-1 line-clamp-3 text-gray-700 dark:text-gray-300 px-8"> It has been an exciting month for Crowdin. We finally released the dark theme for our users, and are happy to see everyone's reaction on social media. In addition to the new dark theme, we have had a number of product updates, including a major upgrade to the glossaries and adding even more customization to our translation cost and cost estimation reports, that now support templates. We have also updated Crowdin apps for Shopify, Notion, and Drupal to make your localization experience smoother. </p> </a> </div> <div class="group h-full lg:order-6"> <a href="/blog/2022/09/28/python-app-translation-tutorial" class="flex flex-col blog-post-card rounded-xl overflow-hidden h-full pb-8 bg-gradient-to-br from-gray-100 to-transparent dark:from-gray-600 border border-gray-100 dark:border-gray-800 hover:border-gray-200 hover:dark:border-gray-600 transition duration-150 ease-out hover:ease-in scale-[1] hover:scale-[1.01]"> <!-- Cover image --> <div class="overflow-hidden mb-4 order-2"> <img src="/blog/_astro/Python-app-translation.B0gbnMbX_X7xyc.webp" alt="Tutorial on Python apps translation" loading="lazy" width="1600" height="900" decoding="async" class="w-full rounded-xl object-cover"> </div> <!-- Content container --> <div class="flex flex-col gap-1 order-2 px-8 py-4"> <span class="order-1 font-heading font-semibold text-gray-600 dark:text-gray-100 transition-colors duration-200 group-hover:text-accent-600 dark:group-hover:text-accent-400 text-lg leading-normal"> Tutorial on Python i18n: How to Use Gettext Python Module </span> <div class="text-sm flex items-center gap-x-2 text-gray-400 order-2 mb-0"> <time class datetime="2022-09-28T00:00:00.000Z"> Sep 28, 2022 </time> <span>•</span> <span>8 min read</span> </div> </div> <p class="order-3 mt-1 line-clamp-3 text-gray-700 dark:text-gray-300 px-8"> The primary purpose of Python app localization is to provide content in different languages and in user-friendly formats. Depending on the settings and locale of the user, they’ll see different languages visiting the same application. To translate Python apps you need to consider both internationalization and localization. These terms are often misused, therefore, let's immediately agree that internationalization (i18n) will refer to the process of preparing programs for translation carried out by developers. Whereas, localization (l10n) is performed mainly by localization managers and translation teams, and is the process of translating and creating content for local audiences. In this article, we’ll focus mainly on python i18n. </p> </a> </div> </div> </div> </section> <nav class="mb-4 flex justify-center space-x-2 text-center" aria-label="Pagination"><a href="/blog/page/5" class="rounded-md h-10 w-10 font-semibold flex items-center justify-center transition duration-200 text-gray-400 hover:text-gray-600 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-600" aria-label="Previous page"><svg width="24" height="24" data-icon="mdi:chevron-left"> <symbol id="ai:mdi:chevron-left" viewBox="0 0 24 24"><path fill="currentColor" d="M15.41 16.58L10.83 12l4.58-4.59L14 6l-6 6l6 6z"/></symbol><use href="#ai:mdi:chevron-left"></use> </svg></a><a href="/blog" class="rounded-md h-10 w-10 font-semibold flex items-center justify-center transition duration-200 text-gray-400 hover:text-gray-600 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-600" aria-label="Go to page 1">1</a><span class="rounded-md h-10 font-semibold flex items-center justify-center w-8 text-gray-400 dark:text-gray-500" aria-hidden="true"> … </span><a href="/blog/page/4" class="rounded-md h-10 w-10 font-semibold flex items-center justify-center transition duration-200 text-gray-400 hover:text-gray-600 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-600" aria-label="Go to page 4">4</a><a href="/blog/page/5" class="rounded-md h-10 w-10 font-semibold flex items-center justify-center transition duration-200 text-gray-400 hover:text-gray-600 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-600" aria-label="Go to page 5">5</a><span aria-current="page" class="rounded-md h-10 w-10 font-semibold flex items-center justify-center text-gray-500 dark:text-white border-gray-200 dark:border-gray-500 pointer-events-none bg-gray-100 dark:bg-gray-600">6</span><a href="/blog/page/7" class="rounded-md h-10 w-10 font-semibold flex items-center justify-center transition duration-200 text-gray-400 hover:text-gray-600 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-600" aria-label="Go to page 7">7</a><a href="/blog/page/8" class="rounded-md h-10 w-10 font-semibold flex items-center justify-center transition duration-200 text-gray-400 hover:text-gray-600 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-600" aria-label="Go to page 8">8</a><span class="rounded-md h-10 font-semibold flex items-center justify-center w-8 text-gray-400 dark:text-gray-500" aria-hidden="true"> … </span><a href="/blog/page/18" class="rounded-md h-10 w-10 font-semibold flex items-center justify-center transition duration-200 text-gray-400 hover:text-gray-600 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-600" aria-label="Go to page 18">18</a><a href="/blog/page/7" class="rounded-md h-10 w-10 font-semibold flex items-center justify-center transition duration-200 text-gray-400 hover:text-gray-600 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-600" aria-label="Next page"><svg width="24" height="24" data-icon="mdi:chevron-right"> <symbol id="ai:mdi:chevron-right" viewBox="0 0 24 24"><path fill="currentColor" d="M8.59 16.58L13.17 12L8.59 7.41L10 6l6 6l-6 6z"/></symbol><use href="#ai:mdi:chevron-right"></use> </svg></a></nav> </main> <div> <section class="text-center overflow-hidden py-10"> <div class="container mx-auto md:max-w-6xl px-4"> <div class="bg-gray-600 dark:bg-gray-800 relative z-10 rounded-3xl px-4 sm:px-8 overflow-hidden py-36"> <div class="absolute pointer-events-none left-0 right-0 top-0 bottom-0 -z-10"> <div class="absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 w-[1300px] h-auto"> <img src="/blog/_astro/cta-bg.CuypdGTq_ZEiDUd.webp" alt="Background of the CTA component" width="1300" height="731" loading="lazy" decoding="async" class="w-full h-auto"> </div> </div> <h2 class="text-3xl sm:text-5xl text-white font-normal mb-8"> Localize your content with Crowdin </h2> <p class="text-white/60 text-xl mb-8 max-w-2xl mx-auto"> Want to grow your business faster? Make your content multilingual to reach a wider audience. </p> <div class="flex flex-col sm:flex-row justify-center gap-4"> <a href="https://accounts.crowdin.com/register" target="_blank" id class="items-center justify-center font-body rounded-md transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 dark:focus:ring-offset-gray-900 bg-accent-600 text-white hover:bg-accent-700 focus:ring-accent-500 dark:bg-accent-500 dark:hover:bg-accent-400 font-semibold h-12 px-6 text-lg inline-flex whitespace-nowrap no-underline"> Start for free </a> <a href="https://crowdin.com/contacts#sales" target="_blank" id class="items-center justify-center font-body rounded-md transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 dark:focus:ring-offset-gray-900 border-2 border-accent-600 text-accent-600 hover:bg-accent-600 hover:text-white focus:ring-accent-500 dark:border-accent-500 dark:text-accent-400 dark:hover:text-white font-semibold h-12 px-6 text-lg inline-flex whitespace-nowrap no-underline"> Contact sales </a> </div> </div> </div> </section> <footer class="bg-gray-600 dark:bg-gray-900 text-white text-opacity-75"> <div class="container mx-auto md:max-w-6xl"> <div class="flex flex-row flex-wrap md:flex-nowrap py-20 px-4"> <div class="shrink-0 min-w-60 mb-10"> <img src="/blog/_astro/logo-light.BcCwQE_h_Z2rmHvX.svg" alt="Crowdin" width="116" height="24" loading="lazy" decoding="async" class="mb-5"> <div class="flex mb-2 gap-x-2"> <img src="/blog/_astro/iso.F71qUy-t_Z18MqWH.svg" alt="ISO/IEC 27001 certified" width="48" height="48" loading="lazy" decoding="async" class="opacity-55"> <img src="/blog/_astro/gdpr.pz_MM2S7_Z2m3wMy.svg" alt="EU General Data Protection Regulation (GDPR) compliance" width="41" height="60" loading="lazy" decoding="async" class="opacity-55"> <div class="relative flex flex-col"> <img src="/blog/_astro/hipaa.5Wl6Ccwc_Z2lTxx6.svg" alt="HIPAA Compliant: Customers that are subject to HIPAA and want to utilize Crowdin in connection with Protected Health Information (PHI) must sign Crowdin's Business Associate Agreement" width="40" height="50" loading="lazy" decoding="async" class="opacity-55 mt-auto mb-1.5"> <div class="absolute -top-3 -right-5 group"> <svg width="18" height="18" class="opacity-70 hover:opacity-100 transition-opacity" data-icon="mdi:information-outline"> <symbol id="ai:mdi:information-outline" viewBox="0 0 24 24"><path fill="currentColor" d="M11 9h2V7h-2m1 13c-4.41 0-8-3.59-8-8s3.59-8 8-8s8 3.59 8 8s-3.59 8-8 8m0-18A10 10 0 0 0 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10A10 10 0 0 0 12 2m-1 15h2v-6h-2z"/></symbol><use href="#ai:mdi:information-outline"></use> </svg> <div class="absolute top-1/2 left-full w-60 transform -translate-y-1/2 ml-2 hidden group-hover:block bg-gray-900 text-white text-sm rounded py-2 px-3 shadow-lg max-w-xs"> Customers that are subject to HIPAA and want to utilize Crowdin in connection with Protected Health Information (PHI) must sign Crowdin's Business Associate Agreement. </div> </div> </div> </div> <span class="text-xs">© 2025 Crowdin</span> </div> <div class="grow grid grid-cols-2 md:grid-cols-4 gap-8 font-heading"> <div class="flex flex-col mb-4 mb-lg-0"> <span class="text-white uppercase text-sm font-semibold tracking-wide mb-2">Crowdin</span> <a class="text-base mb-2 hover:underline" href="https://crowdin.com/features" target="_blank"> Why Crowdin? </a> <a class="text-base mb-2 hover:underline" href="https://support.crowdin.com/introduction/" target="_blank"> Crowdin Features </a> <a class="text-base mb-2 hover:underline" href="https://crowdin.com/demo-request" target="_blank"> Request Demo </a> <a class="text-base mb-2 hover:underline" href="https://store.crowdin.com" target="_blank"> Apps & Integrations </a> <a class="text-base mb-2 hover:underline" href="https://crowdin.com/projects" target="_blank"> Explore public projects </a> <a class="text-base mb-2 hover:underline" href="https://crowdin.com/pricing" target="_blank">Pricing</a> <a class="text-base mb-2 hover:underline" href="https://crowdin.com/enterprise" target="_blank"> Enterprise </a> </div> <div class="flex flex-col"> <span class="text-white uppercase text-sm font-semibold tracking-wide mb-2">Support</span> <a class="text-base mb-2 hover:underline" href="https://crowdin.com/contacts" target="_blank"> Contact us </a> <a class="text-base mb-2 hover:underline" href="https://support.crowdin.com" target="_blank"> Help center </a> <a class="text-base mb-2 hover:underline" href="https://support.crowdin.com/developer/crowdin-apps-about/" target="_blank"> Developer Portal </a> <a class="text-base mb-2 hover:underline" href="https://crowdin.com/blog/tag/monthly-updates" target="_blank"> Changelog </a> <a class="text-base mb-2 hover:underline" href="https://community.crowdin.com/" target="_blank"> Community </a> <a class="text-base mb-2 hover:underline" href="https://status.crowdin.com/" target="_blank"> Status </a> </div> <div class="flex flex-col"> <span class="text-white uppercase text-sm font-semibold tracking-wide mb-2">Company</span> <a class="text-base mb-2 hover:underline" href="https://crowdin.com/" target="_blank"> Crowdin.com </a> <a class="text-base mb-2 hover:underline" href="https://crowdin.com/page/about-crowdin" target="_blank"> About us </a> <a class="text-base mb-2 hover:underline" href="https://crowdin.com/page/customer-testimonials" target="_blank"> Customers </a> <a class="text-base mb-2 hover:underline" href="https://crowdin.com/page/security" target="_blank"> Security </a> </div> <div class="flex flex-col"> <span class="text-white uppercase text-sm font-semibold tracking-wide mb-2">Legal</span> <a class="text-base mb-2 hover:underline" href="https://support.crowdin.com/terms/" target="_blank" title="Terms of Service"> Terms and Conditions </a> <a class="text-base mb-2 hover:underline" href="https://support.crowdin.com/cookies/" target="_blank" title="Cookies Statement"> Cookies Statement </a> <a class="text-base mb-2 hover:underline" href="https://support.crowdin.com/privacy-policy/" target="_blank" title="Your privacy matters"> Privacy Policy </a> </div> </div> </div> </div> </footer> </div> <!-- Development Mode --> </body></html>