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.5.3"><!-- Canonical URL --><link rel="canonical" href="https://crowdin.com/blog"><!-- 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"><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"><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_.DM3tmW9r.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 btn 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 btn 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> </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/2025/04/04/internationalization-software-and-conquering-i18n" 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"> Codemod, Internationalization Software, and Conquering i18n with Alex Bit &amp; Mo Mohebifar </span> <div class="order-1 text-sm flex items-center gap-x-2 text-gray-400 mb-3"> <time class datetime="2025-04-04T10:00:00.000Z"> Apr 4, 2025 </time> <span>•</span> <span>5 min read</span> </div> <p class="order-3 mt-1 line-clamp-3 text-gray-700 dark:text-gray-300"> When startups dream of global expansion, they often envision the exciting possibilities of new markets and revenue streams. What they don&#39;t see is the complex web of technical challenges lurking beneath the surface of internationalization. In a recent episode of The Agile Localization Podcast, host Stefan Huyghe sat down with Alex Bit and Mo Mohebifar, Co-founders of Codemod, to break down the challenges of i18n, the role of AI, and how automation can turn a daunting process into a manageable one. This isn&#39;t your typical high-level, buzzword-filled conversation. Alex and Mo are engineers at heart, deeply technical, battle-tested, and obsessed with building practical tools that solve real developer pain. They come armed with years of experience at companies like Meta, Brex, and Shopify, and they&#39;ve built Codemod from the ground up to make large-scale code migrations faster, smarter, and less soul-crushing. </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/codemode-cover.CGnKrSv7_Z1Tgi2q.webp" alt="Crowdin Agile Localization podcast with Codemod - Alex Bit &#38; Mo Mohebifar" loading="eager" width="1280" height="720" 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/2025/03/31/whats-new-at-crowdin-march-2025" 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/march-2025.C6TGnVKs_Z10lrTS.webp" alt="ai localization and crowdin localization software updates march 2025" loading="lazy" width="1200" height="664" 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&#39;s New at Crowdin: March 2025 </span> <div class="text-sm flex items-center gap-x-2 text-gray-400 order-2 mb-0"> <time class datetime="2025-03-31T10:00:00.000Z"> Mar 31, 2025 </time> <span>•</span> <span>7 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’ve successfully closed 283 tasks and deployed 375 updates. In this article, we’ll walk you through the latest features and enhancements, including the new AI-powered Context Evaluation Report, improved user management with group filters, and exciting updates to pre-translation and reporting. We’ve also added several new integrations, including ABBYY Vantage OCR, Prismic, Synthesia, Braze Campaigns &amp; Canvas Translation, and updates to Webflow, Intercom, Slack, and Jira. </p> </a> </div> <div class="group h-full lg:col-span-1"> <a href="/blog/2025/03/19/how-wordcrafts-is-revolutionizing-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/wordcrafts-and-stefan-cover.DFqRa4Wh_W0NAQ.webp" alt="Crowdin Agile Localization podcast with Wordcrafts - Felix Bartz &#38; Olli Gurtschmann" loading="lazy" width="1280" height="720" 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 Wordcrafts Is Revolutionizing Localization with Felix Bartz &amp; Olli Gurtschmann </span> <div class="text-sm flex items-center gap-x-2 text-gray-400 order-2 mb-0"> <time class datetime="2025-03-19T00:00:00.000Z"> Mar 19, 2025 </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"> Localization is an ever-evolving field, and staying ahead requires innovation, adaptability, and an acute understanding of both technology and linguistics. In a recent episode of The Agile Localization Podcast, host Stefan Huyghe sat down with Felix Bartz and Olli Gurtschmann, Co-founders of Wordcrafts, to discuss how their company is redefining localization, particularly for the Apple ecosystem. </p> </a> </div> <div class="group h-full lg:col-span-1 md:order-3"> <a href="/blog/2025/03/07/ux-writing-and-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/WILLIAN-and-STEPAN-cover.C8avytIz_Z235Kmz.webp" alt="Integrating Localization Early in the Product Design Process" loading="lazy" width="1280" height="720" 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 UX Writers Can Make Localization Seamless with Willian Magalhães </span> <div class="text-sm flex items-center gap-x-2 text-gray-400 order-2 mb-0"> <time class datetime="2025-03-07T00:00:00.000Z"> Mar 7, 2025 </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"> Localization is often an afterthought in product design, but it shouldn&#39;t be. When done right, it can transform a product from a simple translation of words to a fully immersive and culturally relevant experience for users across the globe. In a relevant episode of The Agile Localization Podcast, host Stefan Huyghe sat down with Willian Magalhães, a Senior Content Designer and UX Writer, to dive into the intersection of UX writing and localization. Willian reveals the biggest challenges in designing multilingual experiences, how localization impacts user engagement, retention, and business growth, and why breaking down silos between teams is crucial. </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 btn"> <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/2025/02/28/whats-new-at-crowdin-february-2025" 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/image-february-2025.DXmuIxCD_1MPpY6.webp" alt="ai localization and crowdin localization software updates february 2025" loading="lazy" width="1200" height="664" 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&#39;s New at Crowdin: February 2025 </span> <div class="text-sm flex items-center gap-x-2 text-gray-400 order-2 mb-0"> <time class datetime="2025-02-28T10:00:00.000Z"> Feb 28, 2025 </time> <span>•</span> <span>7 min read</span> </div> </div> <p class="order-3 mt-1 line-clamp-3 text-gray-700 dark:text-gray-300 px-8"> In February, we closed 238 tasks and completed 446 deployments and introduced AI-powered QA checks, added new AI provider integrations, and improved project management tools. Now, you can automate translation quality checks, use Grok, DeepSeek, and WatsonX as AI providers, and work with more flexible import/export options. We also released updates for integrations like Zendesk, Webflow, and Storyblok, along with improvements to project duplication and branch merging. Here’s a breakdown of everything new. </p> </a> </div> <div class="group h-full lg:order-4 md:order-3"> <a href="/blog/2025/02/06/localization-at-scale-with-pipedrive-and-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/David-podcast-episode-cover.DSji190__2swB2A.webp" alt="localization at scale with Pipedrive and Crowdin" loading="lazy" width="1280" height="720" 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"> 24 Languages, 2.7 Million Words - Inside Pipedrive&#39;s Localization Machine with David Edwards </span> <div class="text-sm flex items-center gap-x-2 text-gray-400 order-2 mb-0"> <time class datetime="2025-02-06T00:00:00.000Z"> Feb 6, 2025 </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"> Localization has never been more essential or complex than it is today. Businesses aiming for global reach rely on seamless translations, localized interfaces, and culturally appropriate content to connect with diverse markets. However, despite all the advancements in localization tools, a critical gap remains: they often fail to meet the needs of buyers. Localization at scale isn&#39;t for the faint of heart. With 24 languages, 2.7 million words annually, and over 400 developers producing content daily, Pipedrive has mastered the art of agile localization. At the helm of this monumental task is David Edwards, Group Design Manager of Internationalisation. In a recent episode of The Agile Localization Podcast, David shared insights into how Pipedrive manages its vast and complex localization operations. From the importance of automation to working seamlessly with developers, here&#39;s a behind-the-scenes look at Pipedrive&#39;s localization machine. Listen to the new episode on: - Apple Podcasts - Spotify - YouTube </p> </a> </div> <div class="group h-full lg:order-4"> <a href="/blog/2025/02/04/whats-new-at-crowdin-january-2025" 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/january-2025-cover.72-ptQ5__cCPho.webp" alt="ai translation and crowdin localization software updates january 2025" loading="lazy" width="1200" height="664" 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&#39;s New at Crowdin: January 2025 </span> <div class="text-sm flex items-center gap-x-2 text-gray-400 order-2 mb-0"> <time class datetime="2025-02-04T10:00:00.000Z"> Feb 4, 2025 </time> <span>•</span> <span>10 min read</span> </div> </div> <p class="order-3 mt-1 line-clamp-3 text-gray-700 dark:text-gray-300 px-8"> In January 2025, we closed 262 tasks and completed 462 deployments. Among the key updates, we introduced Crowdin.ai in beta, offering AI-powered localization aimed at indie developers, focusing on faster turnarounds. Additionally, the new Vector Memory App helps improve translation accuracy by using non-bilingual, relevant, translated files as reference. We also enhanced our Translation Costs and Cost Estimate reports by adding weighted word counts and more. </p> </a> </div> <div class="group h-full lg:order-6"> <a href="/blog/2025/01/24/manage-multilingual-content-across-ten-languages" 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/podcast-s1-e2-cover.DDMiMc81_G5mfp.webp" alt="Lessons for localization teams. Podcast from Crowdin" loading="lazy" width="1280" height="720" 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"> 10 Languages, Zero Stress: Inside Edwin Trebels&#39; Localization Workflow </span> <div class="text-sm flex items-center gap-x-2 text-gray-400 order-2 mb-0"> <time class datetime="2025-01-24T11:00:00.000Z"> Jan 24, 2025 </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"> How do you manage multilingual content across ten languages, process over 6 million words annually, and still keep stress levels low? That&#39;s a question Edwin Trebels of the Philadelphia Church of God seems to have mastered. In a recent episode of The Agile Localization Podcast, Edwin joined host Stefan Huyghe to share how his team leverages automation, collaboration, and cutting-edge tools like knowledge graphs to streamline workflows and maintain a culture of transparency. Listen to this episode of The Agile Localization Podcast on: - Apple Podcasts - Spotify - YouTube </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 btn 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="btn no-underline 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="btn no-underline 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="btn no-underline 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/2025/01/08/why-localization-tools-are-failing-buyers-and-how-to-fix-it-crowdin-podcast-with-boryana-nenova" 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/podcast-s1-ep1.HcmQWxak_Z1QRfu4.webp" alt="localization tools from translator-centric to buyer-centric" loading="lazy" width="1280" height="720" 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"> Why Localization Tools Are Failing Buyers and How to Fix It with Boryana Nenova </span> <div class="text-sm flex items-center gap-x-2 text-gray-400 order-2 mb-0"> <time class datetime="2025-01-08T00:00:00.000Z"> Jan 8, 2025 </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"> Localization has never been more essential or complex than it is today. Businesses aiming for global reach rely on seamless translations, localized interfaces, and culturally appropriate content to connect with diverse markets. However, despite all the advancements in localization tools, a critical gap remains: they often fail to meet the needs of buyers. In this episode of The Agile Localization Podcast, host Stefan Huyghe is joined by Localization Consultant Boryana Nenova. They discuss the importance of shifting localization tools from translator-centric to buyer-centric, or at the very least, to be appropriate for both. Boryana dives into top features buyers demand in localization tools, why developers and linguists are clashing over localization tools, AI’s localization impact, and what localization tools are missing. Listen to this episode of The Agile Localization Podcast on: - Apple Podcasts - Spotify - YouTube </p> </a> </div> <div class="group h-full lg:order-6"> <a href="/blog/2024/12/27/year-in-review-2024" 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/2024-cover.DblDDwqn_anVNU.webp" alt="2024 Year in Recap: Crowdin's Highlights. New Features to Improve Your Localization Process" loading="lazy" width="2400" height="1328" 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"> Year in Review: Crowdin 2024 </span> <div class="text-sm flex items-center gap-x-2 text-gray-400 order-2 mb-0"> <time class datetime="2024-12-27T12:00:00.000Z"> Dec 27, 2024 </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"> As we wrap up this year, we&#39;d like to take a moment -- between New Year&#39;s celebrations and family gatherings -- to look back at the progress we&#39;ve made in 2024. From brand-new AI features to welcoming world-class clients, it&#39;s been a year of breakthroughs at Crowdin. We closed 3174 tasks from our task manager, so we have a lot to cover. Ready for a quick tour? Let&#39;s dive into the highlights that shaped 2024! </p> </a> </div> <div class="group h-full lg:order-6"> <a href="/blog/2024/12/27/what-is-new-at-crowdin-december-2024" 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/december-2024-cover.BrbY67H4_Kha3b.webp" alt="What’s New at Crowdin Localization Software: December 2024 Roundup" loading="lazy" width="1200" height="664" 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: December 2024 </span> <div class="text-sm flex items-center gap-x-2 text-gray-400 order-2 mb-0"> <time class datetime="2024-12-27T00:00:00.000Z"> Dec 27, 2024 </time> <span>•</span> <span>7 min read</span> </div> </div> <p class="order-3 mt-1 line-clamp-3 text-gray-700 dark:text-gray-300 px-8"> In the last release notes of the year, we&#39;re going to share exciting updates we did this month. In December 2024, our team closed 214 tasks from the task manager and completed 383 deployments. It includes the ability to add AI proofreading as a workflow step in Crowdin Enterprise, reusable custom properties fields for AI prompts, and the ability to share limited access to integrations with ZenMode. We’ve also enhanced screenshot auto-tagging, brought pre-translation progress tracking on the project page, and introduced a free course to help linguists get started with Crowdin. Dive in to explore all the updates. </p> </a> </div> <div class="group h-full lg:order-6"> <a href="/blog/2024/12/06/ai-translation-polhus-using-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/polhus-cover.Sq8ueOba_ZYnvcG.webp" alt="AI Translation: No Quality Loss. Polhus Content Localization" loading="lazy" width="1200" height="664" 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"> Achieving Up to 75% of Translations Ready for Publication with AI – Polhus Localization with Crowdin </span> <div class="text-sm flex items-center gap-x-2 text-gray-400 order-2 mb-0"> <time class datetime="2024-12-06T00:00:00.000Z"> Dec 6, 2024 </time> <span>•</span> <span>3 min read</span> </div> </div> <p class="order-3 mt-1 line-clamp-3 text-gray-700 dark:text-gray-300 px-8"> Polhus, used Crowdin’s AI and DatoCMS integration to localize their website. 75% of translations were AI-generated and ready for publication, saving $80,000 and hours of work. With AI and human review, they achieved high-quality translations for 1.6 million words in 7 languages. Curious about how they did it? Read the full story in the post. </p> </a> </div> <div class="group h-full lg:order-6"> <a href="/blog/2024/11/29/what-is-new-at-crowdin-november-2024" 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_update_november_2024.xGdLKEIv_1eC40d.webp" alt="What's New at Crowdin Localization Software: November 2024 Roundup" loading="lazy" width="1200" height="664" 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&#39;s New at Crowdin: November 2024 </span> <div class="text-sm flex items-center gap-x-2 text-gray-400 order-2 mb-0"> <time class datetime="2024-11-29T00:00:00.000Z"> Nov 29, 2024 </time> <span>•</span> <span>7 min read</span> </div> </div> <p class="order-3 mt-1 line-clamp-3 text-gray-700 dark:text-gray-300 px-8"> In November 2024 our team closed 246 tasks from the task manager and completed 398 deployments. This month, we’ve rolled out several new features and improvements aimed at making your work at Crowdin better. You can now tag and manage strings meta information directly from the Screenshots tab, get AI-suggested metadata in the Simple Term Extractor app, and use Backtranslation app to check translation accuracy even when you don&#39;t speak the target language. We’ve also introduced an automated screenshot capturing for Web and Mobile, better AI proofreading, enhanced LQA annotations in the LQA app, and more. Let’s explore these updates in detail. </p> </a> </div> </div> </div> </section> <nav class="mb-4 flex justify-center space-x-2 text-center" aria-label="Pagination"><span 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" aria-hidden="true"><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></span><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">1</span><a href="/blog/page/2" 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 2">2</a><a href="/blog/page/3" 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 3">3</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"> &#8230; </span><a href="/blog/page/19" 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 19">19</a><a href="/blog/page/2" 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 btn 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 btn 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">&copy; 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 &amp; 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>

Pages: 1 2 3 4 5 6 7 8 9 10