CINXE.COM
Azure Repos Integration | Enterprise Docs
<!DOCTYPE html><html lang="en" dir="ltr" data-has-toc data-has-sidebar data-theme="dark" class="astro-bguv2lll"> <head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title>Azure Repos Integration | Enterprise Docs</title><link rel="canonical" href="https://support.crowdin.com/enterprise/azure-repos-integration/"/><link rel="sitemap" href="/sitemap-index.xml"/><script>window.dataLayer = window.dataLayer || []; function gtag() { window.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); </script><script>!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.async=!0,p.src=s.api_host.replace('.i.posthog.com','-assets.i.posthog.com')+'/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 setPersonProperties'.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( 'phc_14SWLen9KrmOgEyG0IBxnHJjggvNt9tQCFO1W2Vzpyx', { api_host: 'https://hog.crowdin.com', } ) </script><script src="https://gtm-sst.crowdin.com/gtm.js?id=GTM-MW5LV72" defer></script><script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var 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','GTM-MW5LV72'); </script><script id="cookieyes" src="https://cdn-cookieyes.com/client_data/2dabfbbec8b71e267115f6a5/script.js" defer></script><link rel="icon" href="/favicon.ico" sizes="32x32"/><link rel="shortcut icon" href="/favicon.svg" type="image/svg+xml"/><meta name="generator" content="Astro v4.16.18"/><meta name="generator" content="Starlight v0.28.6"/><meta property="og:title" content="Azure Repos Integration"/><meta property="og:type" content="article"/><meta property="og:url" content="https://support.crowdin.com/enterprise/azure-repos-integration/"/><meta property="og:locale" content="en"/><meta property="og:description" content="Synchronize files between your Azure Repos repository and Crowdin"/><meta property="og:site_name" content="Enterprise Docs"/><meta name="twitter:card" content="summary_large_image"/><meta name="description" content="Synchronize files between your Azure Repos repository and Crowdin"/> <meta property="og:image" content="https://support.crowdin.com/og/enterprise/integrations/azure-repos.png"> <meta name="twitter:image" content="https://support.crowdin.com/og/enterprise/integrations/azure-repos.png"> <script src="/src/scripts/helpscout.js" defer></script> <style> #enterprise-nav-button { font-weight: 600; color: var(--sl-color-black); background-color: var(--sl-color-white); } </style> <script> window.StarlightThemeProvider = (() => { const storedTheme = typeof localStorage !== 'undefined' && localStorage.getItem('starlight-theme'); const theme = storedTheme || (window.matchMedia('(prefers-color-scheme: light)').matches ? 'light' : 'dark'); document.documentElement.dataset.theme = theme === 'light' ? 'light' : 'dark'; return { updatePickers(theme = storedTheme || 'auto') { document.querySelectorAll('starlight-theme-select').forEach((picker) => { const select = picker.querySelector('select'); if (select) select.value = theme; /** @type {HTMLTemplateElement | null} */ const tmpl = document.querySelector(`#theme-icons`); const newIcon = tmpl && tmpl.content.querySelector('.' + theme); if (newIcon) { const oldIcon = picker.querySelector('svg.label-icon'); if (oldIcon) { oldIcon.replaceChildren(...newIcon.cloneNode(true).childNodes); } } }); }, }; })(); </script><template id="theme-icons"><svg aria-hidden="true" class="light astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M5 12a1 1 0 0 0-1-1H3a1 1 0 0 0 0 2h1a1 1 0 0 0 1-1Zm.64 5-.71.71a1 1 0 0 0 0 1.41 1 1 0 0 0 1.41 0l.71-.71A1 1 0 0 0 5.64 17ZM12 5a1 1 0 0 0 1-1V3a1 1 0 0 0-2 0v1a1 1 0 0 0 1 1Zm5.66 2.34a1 1 0 0 0 .7-.29l.71-.71a1 1 0 1 0-1.41-1.41l-.66.71a1 1 0 0 0 0 1.41 1 1 0 0 0 .66.29Zm-12-.29a1 1 0 0 0 1.41 0 1 1 0 0 0 0-1.41l-.71-.71a1.004 1.004 0 1 0-1.43 1.41l.73.71ZM21 11h-1a1 1 0 0 0 0 2h1a1 1 0 0 0 0-2Zm-2.64 6A1 1 0 0 0 17 18.36l.71.71a1 1 0 0 0 1.41 0 1 1 0 0 0 0-1.41l-.76-.66ZM12 6.5a5.5 5.5 0 1 0 5.5 5.5A5.51 5.51 0 0 0 12 6.5Zm0 9a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7Zm0 3.5a1 1 0 0 0-1 1v1a1 1 0 0 0 2 0v-1a1 1 0 0 0-1-1Z"/></svg> <svg aria-hidden="true" class="dark astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.64 13a1 1 0 0 0-1.05-.14 8.049 8.049 0 0 1-3.37.73 8.15 8.15 0 0 1-8.14-8.1 8.59 8.59 0 0 1 .25-2A1 1 0 0 0 8 2.36a10.14 10.14 0 1 0 14 11.69 1 1 0 0 0-.36-1.05Zm-9.5 6.69A8.14 8.14 0 0 1 7.08 5.22v.27a10.15 10.15 0 0 0 10.14 10.14 9.784 9.784 0 0 0 2.1-.22 8.11 8.11 0 0 1-7.18 4.32v-.04Z"/></svg> <svg aria-hidden="true" class="auto astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg> </template><link rel="stylesheet" href="/_astro/privacy-policy.DfxALsHi.css"> <style>:root{--sl-badge-default-border: var(--sl-color-accent);--sl-badge-default-bg: var(--sl-color-accent-low);--sl-badge-default-text: #fff;--sl-badge-note-border: var(--sl-color-blue);--sl-badge-note-bg: var(--sl-color-blue-low);--sl-badge-note-text: #fff;--sl-badge-danger-border: var(--sl-color-red);--sl-badge-danger-bg: var(--sl-color-red-low);--sl-badge-danger-text: #fff;--sl-badge-success-border: var(--sl-color-green);--sl-badge-success-bg: var(--sl-color-green-low);--sl-badge-success-text: #fff;--sl-badge-caution-border: var(--sl-color-orange);--sl-badge-caution-bg: var(--sl-color-orange-low);--sl-badge-caution-text: #fff;--sl-badge-tip-border: var(--sl-color-purple);--sl-badge-tip-bg: var(--sl-color-purple-low);--sl-badge-tip-text: #fff}[data-theme=light]:root{--sl-badge-default-bg: var(--sl-color-accent-high);--sl-badge-note-bg: var(--sl-color-blue-high);--sl-badge-danger-bg: var(--sl-color-red-high);--sl-badge-success-bg: var(--sl-color-green-high);--sl-badge-caution-bg: var(--sl-color-orange-high);--sl-badge-tip-bg: var(--sl-color-purple-high)}.sl-badge:where(.astro-avdet4wd){display:inline-block;border:1px solid var(--sl-color-border-badge);border-radius:.25rem;font-family:var(--sl-font-system-mono);line-height:normal;color:var(--sl-color-text-badge);background-color:var(--sl-color-bg-badge);overflow-wrap:anywhere}.sidebar-content .sl-badge:where(.astro-avdet4wd){line-height:1;font-size:var(--sl-text-xs);padding:.125rem .375rem}.sidebar-content a[aria-current=page]>.sl-badge:where(.astro-avdet4wd){--sl-color-bg-badge: transparent;--sl-color-border-badge: currentColor;color:inherit}.default:where(.astro-avdet4wd){--sl-color-bg-badge: var(--sl-badge-default-bg);--sl-color-border-badge: var(--sl-badge-default-border);--sl-color-text-badge: var(--sl-badge-default-text)}.note:where(.astro-avdet4wd){--sl-color-bg-badge: var(--sl-badge-note-bg);--sl-color-border-badge: var(--sl-badge-note-border);--sl-color-text-badge: var(--sl-badge-note-text)}.danger:where(.astro-avdet4wd){--sl-color-bg-badge: var(--sl-badge-danger-bg);--sl-color-border-badge: var(--sl-badge-danger-border);--sl-color-text-badge: var(--sl-badge-danger-text)}.success:where(.astro-avdet4wd){--sl-color-bg-badge: var(--sl-badge-success-bg);--sl-color-border-badge: var(--sl-badge-success-border);--sl-color-text-badge: var(--sl-badge-success-text)}.tip:where(.astro-avdet4wd){--sl-color-bg-badge: var(--sl-badge-tip-bg);--sl-color-border-badge: var(--sl-badge-tip-border);--sl-color-text-badge: var(--sl-badge-tip-text)}.caution:where(.astro-avdet4wd){--sl-color-bg-badge: var(--sl-badge-caution-bg);--sl-color-border-badge: var(--sl-badge-caution-border);--sl-color-text-badge: var(--sl-badge-caution-text)}.small:where(.astro-avdet4wd){font-size:var(--sl-text-xs);padding:.125rem .25rem}.medium:where(.astro-avdet4wd){font-size:var(--sl-text-sm);padding:.175rem .35rem}.large:where(.astro-avdet4wd){font-size:var(--sl-text-base);padding:.225rem .45rem}.sl-markdown-content :is(h1,h2,h3,h4,h5,h6) .sl-badge:where(.astro-avdet4wd){vertical-align:middle} .card-grid:where(.astro-zntqmydn){display:grid;gap:1rem}.card-grid:where(.astro-zntqmydn)>*{margin-top:0!important}@media (min-width: 50rem){.card-grid:where(.astro-zntqmydn){grid-template-columns:1fr 1fr;gap:1.5rem}.stagger:where(.astro-zntqmydn){--stagger-height: 5rem;padding-bottom:var(--stagger-height)}.stagger:where(.astro-zntqmydn)>*:nth-child(2n){transform:translateY(var(--stagger-height))}} .card:where(.astro-v5tidmuc){--sl-card-border: var(--sl-color-purple);--sl-card-bg: var(--sl-color-purple-low);border:1px solid var(--sl-color-gray-5);background-color:var(--sl-color-black);padding:clamp(1rem,calc(.125rem + 3vw),2.5rem);flex-direction:column;gap:clamp(.5rem,calc(.125rem + 1vw),1rem)}.card:where(.astro-v5tidmuc):nth-child(4n+1){--sl-card-border: var(--sl-color-orange);--sl-card-bg: var(--sl-color-orange-low)}.card:where(.astro-v5tidmuc):nth-child(4n+3){--sl-card-border: var(--sl-color-green);--sl-card-bg: var(--sl-color-green-low)}.card:where(.astro-v5tidmuc):nth-child(4n+4){--sl-card-border: var(--sl-color-red);--sl-card-bg: var(--sl-color-red-low)}.card:where(.astro-v5tidmuc):nth-child(4n+5){--sl-card-border: var(--sl-color-blue);--sl-card-bg: var(--sl-color-blue-low)}.title:where(.astro-v5tidmuc){font-weight:600;font-size:var(--sl-text-h4);color:var(--sl-color-white);line-height:var(--sl-line-height-headings);gap:1rem;align-items:center}.card:where(.astro-v5tidmuc) .icon:where(.astro-v5tidmuc){border:1px solid var(--sl-card-border);background-color:var(--sl-card-bg);padding:.2em;border-radius:.25rem}.card:where(.astro-v5tidmuc) .body:where(.astro-v5tidmuc){margin:0;font-size:clamp(var(--sl-text-sm),calc(.5rem + 1vw),var(--sl-text-body))} svg:where(.astro-c6vsoqas){color:var(--sl-icon-color);font-size:var(--sl-icon-size, 1em);width:1em;height:1em} starlight-tabs:where(.astro-esqgolmp){display:block}.tablist-wrapper:where(.astro-esqgolmp){overflow-x:auto}:where(.astro-esqgolmp)[role=tablist]{display:flex;list-style:none;border-bottom:2px solid var(--sl-color-gray-5);padding:0}.tab:where(.astro-esqgolmp){margin-bottom:-2px}.tab:where(.astro-esqgolmp)>:where(.astro-esqgolmp)[role=tab]{display:flex;align-items:center;gap:.5rem;padding:0 1.25rem;text-decoration:none;border-bottom:2px solid var(--sl-color-gray-5);color:var(--sl-color-gray-3);outline-offset:var(--sl-outline-offset-inside);overflow-wrap:initial}.tab:where(.astro-esqgolmp) :where(.astro-esqgolmp)[role=tab][aria-selected=true]{color:var(--sl-color-white);border-color:var(--sl-color-text-accent);font-weight:600}.tablist-wrapper:where(.astro-esqgolmp)~[role=tabpanel]{margin-top:1rem} .sl-link-card:where(.astro-mf7fz2mj){display:grid;grid-template-columns:1fr auto;gap:.5rem;border:1px solid var(--sl-color-gray-5);border-radius:.5rem;padding:1rem;box-shadow:var(--sl-shadow-sm);position:relative}a:where(.astro-mf7fz2mj){text-decoration:none;line-height:var(--sl-line-height-headings)}a:where(.astro-mf7fz2mj):before{content:"";position:absolute;inset:0}.stack:where(.astro-mf7fz2mj){flex-direction:column;gap:.5rem}.title:where(.astro-mf7fz2mj){color:var(--sl-color-white);font-weight:600;font-size:var(--sl-text-lg)}.description:where(.astro-mf7fz2mj){color:var(--sl-color-gray-3);line-height:1.5}.icon:where(.astro-mf7fz2mj){color:var(--sl-color-gray-3)}.sl-link-card:where(.astro-mf7fz2mj):hover{background:var(--sl-color-gray-7, var(--sl-color-gray-6));border-color:var(--sl-color-gray-2)}.sl-link-card:where(.astro-mf7fz2mj):hover .icon:where(.astro-mf7fz2mj){color:var(--sl-color-white)} .sl-steps{--bullet-size: calc(var(--sl-line-height) * 1rem);--bullet-margin: .375rem;list-style:none;counter-reset:steps-counter var(--sl-steps-start, 0);padding-inline-start:0}.sl-steps>li{counter-increment:steps-counter;position:relative;padding-inline-start:calc(var(--bullet-size) + 1rem);padding-bottom:1px;min-height:calc(var(--bullet-size) + var(--bullet-margin))}.sl-steps>li+li{margin-top:0}.sl-steps>li:before{content:counter(steps-counter);position:absolute;top:0;inset-inline-start:0;width:var(--bullet-size);height:var(--bullet-size);line-height:var(--bullet-size);font-size:var(--sl-text-xs);font-weight:600;text-align:center;color:var(--sl-color-white);background-color:var(--sl-color-gray-6);border-radius:99rem;box-shadow:inset 0 0 0 1px var(--sl-color-gray-5)}.sl-steps>li:after{--guide-width: 1px;content:"";position:absolute;top:calc(var(--bullet-size) + var(--bullet-margin));bottom:var(--bullet-margin);inset-inline-start:calc((var(--bullet-size) - var(--guide-width)) / 2);width:var(--guide-width);background-color:var(--sl-color-hairline-light)}.sl-steps>li>:first-child{--lh: calc(1em * var(--sl-line-height));--shift-y: calc(.5 * (var(--bullet-size) - var(--lh)));transform:translateY(var(--shift-y));margin-bottom:var(--shift-y)}.sl-steps>li>:first-child:where(h1,h2,h3,h4,h5,h6){--lh: calc(1em * var(--sl-line-height-headings))}@supports (--prop: 1lh){.sl-steps>li>:first-child{--lh: 1lh}} starlight-file-tree:where(.astro-p67cqifm){--x-space: 1.5rem;--y-space: .125rem;--y-pad: 0;display:block;border:1px solid var(--sl-color-gray-5);padding:1rem;background-color:var(--sl-color-gray-6);font-size:var(--sl-text-xs);font-family:var(--__sl-font-mono);overflow-x:auto}starlight-file-tree:where(.astro-p67cqifm) .directory>details{border:0;padding:0;padding-inline-start:var(--x-space);background:transparent}starlight-file-tree:where(.astro-p67cqifm) .directory>details>summary{margin-inline-start:calc(-1 * var(--x-space));border:0;padding:var(--y-pad) .625rem;font-weight:400;color:var(--sl-color-white);max-width:100%}starlight-file-tree:where(.astro-p67cqifm) .directory>details>summary::marker,starlight-file-tree:where(.astro-p67cqifm) .directory>details>summary::-webkit-details-marker{color:var(--sl-color-gray-3)}starlight-file-tree:where(.astro-p67cqifm) .directory>details>summary:hover,starlight-file-tree:where(.astro-p67cqifm) .directory>details>summary:hover .tree-icon{cursor:pointer;color:var(--sl-color-text-accent);fill:var(--sl-color-text-accent)}starlight-file-tree:where(.astro-p67cqifm) .directory>details>summary:hover~ul{border-color:var(--sl-color-gray-4)}starlight-file-tree:where(.astro-p67cqifm) .directory>details>summary:hover .highlight .tree-icon{fill:var(--sl-color-text-invert)}starlight-file-tree:where(.astro-p67cqifm) ul{margin-inline-start:.5rem;border-inline-start:1px solid var(--sl-color-gray-5);padding:0;padding-inline-start:.125rem;list-style:none}starlight-file-tree:where(.astro-p67cqifm)>ul{margin:0;border:0;padding:0}starlight-file-tree:where(.astro-p67cqifm) li{margin:var(--y-space) 0;padding:var(--y-pad) 0}starlight-file-tree:where(.astro-p67cqifm) .file{margin-inline-start:calc(var(--x-space) - .125rem);color:var(--sl-color-white)}starlight-file-tree:where(.astro-p67cqifm) .tree-entry{display:inline-flex;align-items:flex-start;flex-wrap:wrap;max-width:calc(100% - 1rem)}@media (min-width: 30em){starlight-file-tree:where(.astro-p67cqifm) .tree-entry{flex-wrap:nowrap}}starlight-file-tree:where(.astro-p67cqifm) .tree-entry>:first-child{flex-shrink:0}starlight-file-tree:where(.astro-p67cqifm) .empty{color:var(--sl-color-gray-3);padding-inline-start:.375rem}starlight-file-tree:where(.astro-p67cqifm) .comment{color:var(--sl-color-gray-3);padding-inline-start:1.625rem;max-width:24rem;min-width:12rem}starlight-file-tree:where(.astro-p67cqifm) .highlight{display:inline-block;border-radius:.25rem;padding-inline-end:.5rem;color:var(--sl-color-text-invert);background-color:var(--sl-color-text-accent)}starlight-file-tree:where(.astro-p67cqifm) svg{display:inline;fill:var(--sl-color-gray-3);vertical-align:middle;margin-inline:.25rem .375rem;width:.875rem;height:.875rem}starlight-file-tree:where(.astro-p67cqifm) .highlight svg.tree-icon{fill:var(--sl-color-text-invert)} .sl-link-button:where(.astro-xwgiixxa){align-items:center;border:1px solid transparent;border-radius:999rem;display:inline-flex;font-size:var(--sl-text-sm);gap:.5em;line-height:1.1875;outline-offset:.25rem;padding:.4375rem 1.125rem;text-decoration:none}.sl-link-button:where(.astro-xwgiixxa).primary{background:var(--sl-color-text-accent);border-color:var(--sl-color-text-accent);color:var(--sl-color-black)}.sl-link-button:where(.astro-xwgiixxa).primary:hover{color:var(--sl-color-black)}.sl-link-button:where(.astro-xwgiixxa).secondary{border-color:inherit;color:var(--sl-color-white)}.sl-link-button:where(.astro-xwgiixxa).minimal{color:var(--sl-color-white);padding-inline:0}.sl-link-button:where(.astro-xwgiixxa) svg{flex-shrink:0}@media (min-width: 50rem){.sl-link-button:where(.astro-xwgiixxa){font-size:var(--sl-text-base);padding:.9375rem 1.25rem}}.sl-markdown-content .sl-link-button:where(.astro-xwgiixxa){margin-inline-end:1rem}.sl-markdown-content .sl-link-button:where(.astro-xwgiixxa):not(:where(p *)){margin-block:1rem} </style><script type="module" src="/_astro/hoisted.Bf5-m7II.js"></script> <script type="module" src="/_astro/page.7qqag-5g.js"></script><style>.read-more:where(.astro-szj46hnz){display:flex;gap:.5rem;align-items:flex-start}.icon:where(.astro-szj46hnz){--icon-size: 1.5rem;font-size:var(--icon-size);flex-shrink:0;margin-block:calc((var(--sl-line-height) * 1rem - var(--icon-size)) / 2);color:var(--sl-color-text-accent)} </style><script src="/_astro/Tabs.astro_astro_type_script_index_0_lang.3nBd5krW.js" type="module"></script></head> <body class="astro-bguv2lll"> <a href="#_top" class="astro-7q3lir66">Skip to content</a> <div class="page sl-flex astro-vrdttmbt"> <header class="header astro-vrdttmbt"><div class="header sl-flex astro-kmkmnagf"> <div class="title-wrapper sl-flex astro-kmkmnagf"> <div class="astro-dcan6uai"> <a href="/" class="site-title sl-flex astro-m46x6ez3"> <img class="light:sl-hidden astro-m46x6ez3" alt="" src="/_astro/light.CAHvKVIz.svg" width="235" height="39"> <img class="dark:sl-hidden astro-m46x6ez3" alt="" src="/_astro/dark.CcUzcp8d.svg" width="235" height="39"> <span class="sr-only astro-m46x6ez3"> Crowdin Docs </span> </a> <ul class="astro-vtgkq7vy"> <li class="astro-vtgkq7vy"> <a href="/introduction/" id="crowdin-nav-button" class="nav-link astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy"> Crowdin Help </a> </li><li class="astro-vtgkq7vy"> <a href="/enterprise/introduction/" id="enterprise-nav-button" class="nav-link astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy"> Enterprise Help </a> </li><li class="astro-vtgkq7vy"> <a href="/developer/crowdin-apps-about/" id="developer-nav-button" class="nav-link astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy"> Developer Portal </a> </li><li class="astro-vtgkq7vy"> <a href="https://store.crowdin.com" target="_blank" class="nav-link astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy"> Store </a> </li><li class="astro-vtgkq7vy"> <a href="https://crowdin.com/blog" target="_blank" class="nav-link astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy"> Blog </a> </li><li class="astro-vtgkq7vy"> <a href="https://community.crowdin.com/" target="_blank" class="nav-link astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy astro-vtgkq7vy"> Community </a> </li> </ul> </div> </div> <div class="sl-flex astro-kmkmnagf"> <site-search data-translations="{"placeholder":"Search"}" class="astro-v37mnknz"> <button data-open-modal disabled aria-label="Search" aria-keyshortcuts="Control+K" class="astro-v37mnknz"> <svg aria-hidden="true" class="astro-v37mnknz astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.71 20.29 18 16.61A9 9 0 1 0 16.61 18l3.68 3.68a.999.999 0 0 0 1.42 0 1 1 0 0 0 0-1.39ZM11 18a7 7 0 1 1 0-14 7 7 0 0 1 0 14Z"/></svg> <span class="sl-hidden md:sl-block astro-v37mnknz" aria-hidden="true">Search</span> <kbd class="sl-hidden md:sl-flex astro-v37mnknz" style="display: none;"> <kbd class="astro-v37mnknz">Ctrl</kbd><kbd class="astro-v37mnknz">K</kbd> </kbd> </button> <dialog style="padding:0" aria-label="Search" class="astro-v37mnknz"> <div class="dialog-frame sl-flex astro-v37mnknz"> <button data-close-modal class="sl-flex md:sl-hidden astro-v37mnknz"> Cancel </button> <div class="search-container astro-v37mnknz"> <div id="starlight__search" class="astro-v37mnknz"></div> </div> </div> </dialog> </site-search> <script> (() => { const openBtn = document.querySelector('button[data-open-modal]'); const shortcut = openBtn?.querySelector('kbd'); if (!openBtn || !(shortcut instanceof HTMLElement)) return; const platformKey = shortcut.querySelector('kbd'); if (platformKey && /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)) { platformKey.textContent = '⌘'; openBtn.setAttribute('aria-keyshortcuts', 'Meta+K'); } shortcut.style.display = ''; })(); </script> </div> <div class="sl-hidden md:sl-flex right-group astro-kmkmnagf"> <div class="sl-flex social-icons astro-kmkmnagf"> <a href="https://x.com/crowdin" rel="me" class="sl-flex astro-wy4te6ga"><span class="sr-only astro-wy4te6ga">X</span><svg aria-hidden="true" class="astro-wy4te6ga astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M 18.242188 2.25 L 21.554688 2.25 L 14.324219 10.507812 L 22.828125 21.75 L 16.171875 21.75 L 10.953125 14.933594 L 4.992188 21.75 L 1.679688 21.75 L 9.40625 12.914062 L 1.257812 2.25 L 8.082031 2.25 L 12.792969 8.480469 Z M 17.082031 19.773438 L 18.914062 19.773438 L 7.082031 4.125 L 5.113281 4.125 Z M 17.082031 19.773438 "/></svg> </a><a href="https://www.linkedin.com/company/crowdin" rel="me" class="sl-flex astro-wy4te6ga"><span class="sr-only astro-wy4te6ga">LinkedIn</span><svg aria-hidden="true" class="astro-wy4te6ga astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M20.47 2H3.53a1.45 1.45 0 0 0-1.47 1.43v17.14A1.45 1.45 0 0 0 3.53 22h16.94a1.45 1.45 0 0 0 1.47-1.43V3.43A1.45 1.45 0 0 0 20.47 2ZM8.09 18.74h-3v-9h3v9ZM6.59 8.48a1.56 1.56 0 0 1 0-3.12 1.57 1.57 0 1 1 0 3.12Zm12.32 10.26h-3v-4.83c0-1.21-.43-2-1.52-2A1.65 1.65 0 0 0 12.85 13a2 2 0 0 0-.1.73v5h-3v-9h3V11a3 3 0 0 1 2.71-1.5c2 0 3.45 1.29 3.45 4.06v5.18Z"/></svg> </a><a href="https://youtube.com/@crowdin-localization" rel="me" class="sl-flex astro-wy4te6ga"><span class="sr-only astro-wy4te6ga">YouTube</span><svg aria-hidden="true" class="astro-wy4te6ga astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M23.5 6.2A3 3 0 0 0 21.4 4c-1.9-.5-9.4-.5-9.4-.5s-7.5 0-9.4.5A3 3 0 0 0 .5 6.3C0 8 0 12 0 12s0 4 .5 5.8A3 3 0 0 0 2.6 20c1.9.6 9.4.6 9.4.6s7.5 0 9.4-.6a3 3 0 0 0 2.1-2c.5-2 .5-5.9.5-5.9s0-4-.5-5.8zm-14 9.4V8.4l6.3 3.6-6.3 3.6z"/></svg> </a><a href="https://github.com/crowdin" rel="me" class="sl-flex astro-wy4te6ga"><span class="sr-only astro-wy4te6ga">GitHub</span><svg aria-hidden="true" class="astro-wy4te6ga astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 .3a12 12 0 0 0-3.8 23.38c.6.12.83-.26.83-.57L9 21.07c-3.34.72-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.08-.74.09-.73.09-.73 1.2.09 1.83 1.24 1.83 1.24 1.08 1.83 2.81 1.3 3.5 1 .1-.78.42-1.31.76-1.61-2.67-.3-5.47-1.33-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.14-.3-.54-1.52.1-3.18 0 0 1-.32 3.3 1.23a11.5 11.5 0 0 1 6 0c2.28-1.55 3.29-1.23 3.29-1.23.64 1.66.24 2.88.12 3.18a4.65 4.65 0 0 1 1.23 3.22c0 4.61-2.8 5.63-5.48 5.92.42.36.81 1.1.81 2.22l-.01 3.29c0 .31.2.69.82.57A12 12 0 0 0 12 .3Z"/></svg> </a> <a href="https://podcasts.apple.com/us/podcast/agile-localization/id1785636416" rel="me" class="sl-flex astro-dv46nlzh"> <span class="sr-only astro-dv46nlzh">Apple Podcast</span> <svg width="1em" height="1em" viewBox="0 0 20 20" class="astro-dv46nlzh" data-icon="apple-podcast"> <use href="#ai:local:apple-podcast"></use> </svg> </a> <a href="https://open.spotify.com/show/2Vv42MtK93aLTzvEd77Om5" rel="me" class="sl-flex astro-dv46nlzh"> <span class="sr-only astro-dv46nlzh">Spotify Podcast</span> <svg width="1em" height="1em" viewBox="0 0 20 20" class="astro-dv46nlzh" data-icon="spotify-podcast"> <use href="#ai:local:spotify-podcast"></use> </svg> </a> </div> <starlight-theme-select> <label style="--sl-select-width: 6.25em" class="astro-4yphtoen"> <span class="sr-only astro-4yphtoen">Select theme</span> <svg aria-hidden="true" class="icon label-icon astro-4yphtoen astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg> <select value="auto" class="astro-4yphtoen"> <option value="dark" class="astro-4yphtoen">Dark</option><option value="light" class="astro-4yphtoen">Light</option><option value="auto" selected class="astro-4yphtoen">Auto</option> </select> <svg aria-hidden="true" class="icon caret astro-4yphtoen astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71 8.46 9.17a1 1 0 1 0-1.41 1.42l4.24 4.24a1.002 1.002 0 0 0 1.42 0L17 10.59a1.002 1.002 0 0 0 0-1.42Z"/></svg> </label> </starlight-theme-select> <script> StarlightThemeProvider.updatePickers(); </script> </div> </div> </header> <nav class="sidebar astro-vrdttmbt" aria-label="Main"> <starlight-menu-button class="astro-jif73yzw"> <button aria-expanded="false" aria-label="Menu" aria-controls="starlight__sidebar" class="sl-flex md:sl-hidden astro-jif73yzw"> <svg aria-hidden="true" class="astro-jif73yzw astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M3 8h18a1 1 0 1 0 0-2H3a1 1 0 0 0 0 2Zm18 8H3a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2Zm0-5H3a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2Z"/></svg> </button> </starlight-menu-button> <div id="starlight__sidebar" class="sidebar-pane astro-vrdttmbt"> <div class="sidebar-content sl-flex astro-vrdttmbt"> <div hidden data-starlight-multi-sidebar-label="Crowdin Help"><sl-sidebar-state-persist data-hash="0hq8s55" class="astro-kku4brbg"> <script> (() => { try { if (!matchMedia('(min-width: 50em)').matches) return; /** @type {HTMLElement | null} */ const target = document.querySelector('sl-sidebar-state-persist'); const state = JSON.parse(sessionStorage.getItem('sl-sidebar-state') || '0'); if (!target || !state || target.dataset.hash !== state.hash) return; window._starlightScrollRestore = state.scroll; customElements.define( 'sl-sidebar-restore', class SidebarRestore extends HTMLElement { connectedCallback() { try { const idx = parseInt(this.dataset.index || ''); const details = this.closest('details'); if (details && typeof state.open[idx] === 'boolean') details.open = state.open[idx]; } catch {} } } ); } catch {} })(); </script> <ul class="top-level astro-3ii7xxms"> <li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="0"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Getting Started</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/introduction/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Introduction</span> </a> </li><li class="astro-3ii7xxms"> <a href="/for-managers/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">For Managers</span> </a> </li><li class="astro-3ii7xxms"> <a href="/for-translators/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">For Translators</span> </a> </li><li class="astro-3ii7xxms"> <a href="/supported-formats/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Supported Formats</span> </a> </li><li class="astro-3ii7xxms"> <a href="/migrating-to-crowdin/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Migrating to Crowdin</span> </a> </li><li class="astro-3ii7xxms"> <a href="/additional-support-services/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Additional Support Services</span> </a> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="28"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Account</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/account-notifications/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Notifications</span> </a> </li><li class="astro-3ii7xxms"> <a href="/messages/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Messages</span> </a> </li><li class="astro-3ii7xxms"> <a href="/account-settings/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Settings</span> </a> </li> </ul> </details> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="1"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Translation Process</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/translation-strategies/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Translation Strategies</span> </a> </li><li class="astro-3ii7xxms"> <a href="/crowdin-ai/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Crowdin AI</span> </a> </li><li class="astro-3ii7xxms"> <a href="/ai-setup-wizard/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">AI Setup Wizard</span> </a> </li><li class="astro-3ii7xxms"> <a href="/ai-fine-tuning/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">AI Fine-tuning</span> </a> </li><li class="astro-3ii7xxms"> <a href="/pre-translation/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Pre-Translation</span> </a> </li><li class="astro-3ii7xxms"> <a href="/ordering-professional-translations/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Ordering Professional Translations</span> </a> </li><li class="astro-3ii7xxms"> <a href="/offline-translation/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Offline Translation</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="2"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Project Management</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/creating-project/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Creating a Project</span> </a> </li><li class="astro-3ii7xxms"> <a href="/screenshots/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Screenshots</span> </a> </li><li class="astro-3ii7xxms"> <a href="/project-activity/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Project Activity</span> </a> </li><li class="astro-3ii7xxms"> <a href="/discussions/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Discussions</span> </a> </li><li class="astro-3ii7xxms"> <a href="/webhooks/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Webhooks</span> </a> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="29"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Sources</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/uploading-files/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Uploading Source Files</span> </a> </li><li class="astro-3ii7xxms"> <a href="/file-management/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">File Management</span> </a> </li><li class="astro-3ii7xxms"> <a href="/string-management/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">String Management</span> </a> </li><li class="astro-3ii7xxms"> <a href="/version-management/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Version Management</span> </a> </li><li class="astro-3ii7xxms"> <a href="/custom-segmentation/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Custom Segmentation</span> </a> </li><li class="astro-3ii7xxms"> <a href="/asset-localization/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Asset Localization</span> </a> </li><li class="astro-3ii7xxms"> <a href="/csv-xlsx-configuration/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">CSV / XLSX File Configuration</span> </a> </li><li class="astro-3ii7xxms"> <a href="/xml-configuration/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">XML File Configuration</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="30"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Translations</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/downloading-translations/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Downloading Translations</span> </a> </li><li class="astro-3ii7xxms"> <a href="/uploading-translations/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Uploading Existing Translations</span> </a> </li><li class="astro-3ii7xxms"> <a href="/bundles/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Target Files Bundles</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="31"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Project Settings</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/project-settings/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">General</span> </a> </li><li class="astro-3ii7xxms"> <a href="/project-settings/privacy-collaboration/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Privacy & Collaboration</span> </a> </li><li class="astro-3ii7xxms"> <a href="/project-settings/languages/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Languages</span> </a> </li><li class="astro-3ii7xxms"> <a href="/project-settings/qa-checks/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">QA Checks</span> </a> </li><li class="astro-3ii7xxms"> <a href="/project-settings/translation-memories/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Translation Memories</span> </a> </li><li class="astro-3ii7xxms"> <a href="/project-settings/glossaries/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Glossaries</span> </a> </li><li class="astro-3ii7xxms"> <a href="/project-settings/machine-translation/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Machine Translation</span> </a> </li><li class="astro-3ii7xxms"> <a href="/project-settings/ai/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">AI</span> </a> </li><li class="astro-3ii7xxms"> <a href="/project-settings/pre-translate/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Pre-Translate</span> </a> </li><li class="astro-3ii7xxms"> <a href="/project-settings/import/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Import</span> </a> </li><li class="astro-3ii7xxms"> <a href="/project-settings/export/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Export</span> </a> </li><li class="astro-3ii7xxms"> <a href="/project-settings/labels/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Labels</span> </a> </li><li class="astro-3ii7xxms"> <a href="/project-settings/parser-configuration/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Parser Configuration</span> </a> </li><li class="astro-3ii7xxms"> <a href="/project-settings/file-processors/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">File Processors</span> </a> </li> </ul> </details> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="3"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Team Management</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/roles/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Roles</span> </a> </li><li class="astro-3ii7xxms"> <a href="/inviting-people/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Inviting People</span> </a> </li><li class="astro-3ii7xxms"> <a href="/project-members/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Project Members</span> </a> </li><li class="astro-3ii7xxms"> <a href="/manager-permissions/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Manager Permissions</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="4"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Integrations</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/integrations/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Overview</span> </a> </li><li class="astro-3ii7xxms"> <a href="/github-integration/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">GitHub Integration</span> </a> </li><li class="astro-3ii7xxms"> <a href="/gitlab-integration/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">GitLab Integration</span> </a> </li><li class="astro-3ii7xxms"> <a href="/bitbucket-integration/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Bitbucket Integration</span> </a> </li><li class="astro-3ii7xxms"> <a href="/azure-repos-integration/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Azure Repos Integration</span> </a> </li><li class="astro-3ii7xxms"> <a href="/configuring-vcs-integrations-online/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Configuring VCS Integrations Online</span> </a> </li><li class="astro-3ii7xxms"> <a href="/content-delivery/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Content Delivery</span> </a> </li><li class="astro-3ii7xxms"> <a href="/jira-integration/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Jira Integration</span> </a> </li><li class="astro-3ii7xxms"> <a href="/figma-plugin/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Figma Plugin</span> </a> </li><li class="astro-3ii7xxms"> <a href="/sketch-plugin/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Sketch Plugin</span> </a> </li><li class="astro-3ii7xxms"> <a href="/adobe-xd-plugin/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Adobe XD Plugin</span> </a> </li><li class="astro-3ii7xxms"> <a href="/google-play-integration/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Google Play Integration</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="5"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Localization Resources</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/glossary/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Glossary</span> </a> </li><li class="astro-3ii7xxms"> <a href="/machine-translation/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Machine Translation</span> </a> </li><li class="astro-3ii7xxms"> <a href="/translation-memory/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Translation Memory</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="6"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Online Editor</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/online-editor/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Editor Overview</span> </a> </li><li class="astro-3ii7xxms"> <a href="/expression-syntax-elements/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Expression Syntax Elements</span> </a> </li><li class="astro-3ii7xxms"> <a href="/icu-message-syntax/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">ICU Message Syntax</span> </a> </li><li class="astro-3ii7xxms"> <a href="/translation-consistency/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Translation Consistency</span> </a> </li><li class="astro-3ii7xxms"> <a href="/word-counter/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Word Counter</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="7"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Tasks</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/tasks/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Project Tasks</span> </a> </li><li class="astro-3ii7xxms"> <a href="/user-tasks/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">User Tasks</span> </a> </li><li class="astro-3ii7xxms"> <a href="/crowdin-language-services/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Crowdin Language Services</span> </a> </li><li class="astro-3ii7xxms"> <a href="/blend-integration/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">BLEND Integration</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="8"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Reports</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/project-reports/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Project Reports</span> </a> </li><li class="astro-3ii7xxms"> <a href="/contributor-reports/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Contributor Reports</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="9"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Billing and Payments</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/payments-invoices/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Payments and Invoices</span> </a> </li><li class="astro-3ii7xxms"> <a href="/changing-subscription-plan/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Changing Subscription Plan</span> </a> </li><li class="astro-3ii7xxms"> <a href="/crowdin-managed-services/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Crowdin Managed Services</span> </a> </li><li class="astro-3ii7xxms"> <a href="/app-subscriptions/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">App Subscriptions</span> </a> </li><li class="astro-3ii7xxms"> <a href="/billing-settings/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Billing Settings</span> </a> </li> </ul> </details> </li> </ul> <script> (() => { const scroller = document.getElementById('starlight__sidebar'); if (!window._starlightScrollRestore || !scroller) return; scroller.scrollTop = window._starlightScrollRestore; delete window._starlightScrollRestore; })(); </script> </sl-sidebar-state-persist> <div class="md:sl-hidden"> <div class="mobile-preferences sl-flex astro-wu23bvmt"> <div class="sl-flex social-icons astro-wu23bvmt"> <a href="https://x.com/crowdin" rel="me" class="sl-flex astro-wy4te6ga"><span class="sr-only astro-wy4te6ga">X</span><svg aria-hidden="true" class="astro-wy4te6ga astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M 18.242188 2.25 L 21.554688 2.25 L 14.324219 10.507812 L 22.828125 21.75 L 16.171875 21.75 L 10.953125 14.933594 L 4.992188 21.75 L 1.679688 21.75 L 9.40625 12.914062 L 1.257812 2.25 L 8.082031 2.25 L 12.792969 8.480469 Z M 17.082031 19.773438 L 18.914062 19.773438 L 7.082031 4.125 L 5.113281 4.125 Z M 17.082031 19.773438 "/></svg> </a><a href="https://www.linkedin.com/company/crowdin" rel="me" class="sl-flex astro-wy4te6ga"><span class="sr-only astro-wy4te6ga">LinkedIn</span><svg aria-hidden="true" class="astro-wy4te6ga astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M20.47 2H3.53a1.45 1.45 0 0 0-1.47 1.43v17.14A1.45 1.45 0 0 0 3.53 22h16.94a1.45 1.45 0 0 0 1.47-1.43V3.43A1.45 1.45 0 0 0 20.47 2ZM8.09 18.74h-3v-9h3v9ZM6.59 8.48a1.56 1.56 0 0 1 0-3.12 1.57 1.57 0 1 1 0 3.12Zm12.32 10.26h-3v-4.83c0-1.21-.43-2-1.52-2A1.65 1.65 0 0 0 12.85 13a2 2 0 0 0-.1.73v5h-3v-9h3V11a3 3 0 0 1 2.71-1.5c2 0 3.45 1.29 3.45 4.06v5.18Z"/></svg> </a><a href="https://youtube.com/@crowdin-localization" rel="me" class="sl-flex astro-wy4te6ga"><span class="sr-only astro-wy4te6ga">YouTube</span><svg aria-hidden="true" class="astro-wy4te6ga astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M23.5 6.2A3 3 0 0 0 21.4 4c-1.9-.5-9.4-.5-9.4-.5s-7.5 0-9.4.5A3 3 0 0 0 .5 6.3C0 8 0 12 0 12s0 4 .5 5.8A3 3 0 0 0 2.6 20c1.9.6 9.4.6 9.4.6s7.5 0 9.4-.6a3 3 0 0 0 2.1-2c.5-2 .5-5.9.5-5.9s0-4-.5-5.8zm-14 9.4V8.4l6.3 3.6-6.3 3.6z"/></svg> </a><a href="https://github.com/crowdin" rel="me" class="sl-flex astro-wy4te6ga"><span class="sr-only astro-wy4te6ga">GitHub</span><svg aria-hidden="true" class="astro-wy4te6ga astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 .3a12 12 0 0 0-3.8 23.38c.6.12.83-.26.83-.57L9 21.07c-3.34.72-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.08-.74.09-.73.09-.73 1.2.09 1.83 1.24 1.83 1.24 1.08 1.83 2.81 1.3 3.5 1 .1-.78.42-1.31.76-1.61-2.67-.3-5.47-1.33-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.14-.3-.54-1.52.1-3.18 0 0 1-.32 3.3 1.23a11.5 11.5 0 0 1 6 0c2.28-1.55 3.29-1.23 3.29-1.23.64 1.66.24 2.88.12 3.18a4.65 4.65 0 0 1 1.23 3.22c0 4.61-2.8 5.63-5.48 5.92.42.36.81 1.1.81 2.22l-.01 3.29c0 .31.2.69.82.57A12 12 0 0 0 12 .3Z"/></svg> </a> <a href="https://podcasts.apple.com/us/podcast/agile-localization/id1785636416" rel="me" class="sl-flex astro-dv46nlzh"> <span class="sr-only astro-dv46nlzh">Apple Podcast</span> <svg width="1em" height="1em" class="astro-dv46nlzh" 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> </a> <a href="https://open.spotify.com/show/2Vv42MtK93aLTzvEd77Om5" rel="me" class="sl-flex astro-dv46nlzh"> <span class="sr-only astro-dv46nlzh">Spotify Podcast</span> <svg width="1em" height="1em" class="astro-dv46nlzh" 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> </a> </div> <starlight-theme-select> <label style="--sl-select-width: 6.25em" class="astro-4yphtoen"> <span class="sr-only astro-4yphtoen">Select theme</span> <svg aria-hidden="true" class="icon label-icon astro-4yphtoen astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg> <select value="auto" class="astro-4yphtoen"> <option value="dark" class="astro-4yphtoen">Dark</option><option value="light" class="astro-4yphtoen">Light</option><option value="auto" selected class="astro-4yphtoen">Auto</option> </select> <svg aria-hidden="true" class="icon caret astro-4yphtoen astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71 8.46 9.17a1 1 0 1 0-1.41 1.42l4.24 4.24a1.002 1.002 0 0 0 1.42 0L17 10.59a1.002 1.002 0 0 0 0-1.42Z"/></svg> </label> </starlight-theme-select> <script> StarlightThemeProvider.updatePickers(); </script> </div> </div></div><div data-starlight-multi-sidebar-label="Enterprise Help"><sl-sidebar-state-persist data-hash="0hcns7r" class="astro-kku4brbg"> <script> (() => { try { if (!matchMedia('(min-width: 50em)').matches) return; /** @type {HTMLElement | null} */ const target = document.querySelector('sl-sidebar-state-persist'); const state = JSON.parse(sessionStorage.getItem('sl-sidebar-state') || '0'); if (!target || !state || target.dataset.hash !== state.hash) return; window._starlightScrollRestore = state.scroll; customElements.define( 'sl-sidebar-restore', class SidebarRestore extends HTMLElement { connectedCallback() { try { const idx = parseInt(this.dataset.index || ''); const details = this.closest('details'); if (details && typeof state.open[idx] === 'boolean') details.open = state.open[idx]; } catch {} } } ); } catch {} })(); </script> <ul class="top-level astro-3ii7xxms"> <li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="10"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Getting Started</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/enterprise/introduction/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Enterprise Introduction</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/for-managers/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">For Managers</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/for-translators/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">For Translators</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/for-vendors/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">For Vendors</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/supported-formats/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Supported Formats</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/migrating-to-crowdin-enterprise/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Migrating to Crowdin Enterprise</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/additional-support-services/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Additional Support Services</span> </a> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="32"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Account</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/enterprise/account-notifications/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Notifications</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/messages/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Messages</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/account-settings/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Settings</span> </a> </li> </ul> </details> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="11"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Translation Process</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/enterprise/translation-strategies/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Translation Strategies</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/crowdin-ai/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Crowdin AI</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/ai-setup-wizard/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">AI Setup Wizard</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/ai-fine-tuning/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">AI Fine-tuning</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/pre-translation/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Pre-Translation</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/offline-translation/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Offline Translation</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="12"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Organization Management</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/enterprise/organization/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Start with an Organization</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/groups/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Groups</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/vendors/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Vendors</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/clients/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Clients</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/crowdsourcing/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Crowdsourcing</span> </a> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="33"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Workflows</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/enterprise/workflows/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Workflow Overview</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/translation-proofreading-by-vendor/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Translation and Proofreading by Vendor</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/source-text-review/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Source Text Review</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/custom-code/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Custom Code</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/translation-by-api-vendor/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Translation by API Vendor</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/app-based-workflow-step/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">App-based Workflow Step</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="34"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Organization Settings</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/enterprise/organization-settings/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Overview</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/authentication/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Authentication</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/saml/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">SAML single sign-on</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/oidc/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">OpenID Connect</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/fields/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Fields</span> <span class="sl-badge default small astro-3ii7xxms astro-avdet4wd">New</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/custom-placeholders/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Custom Placeholders</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/custom-qa-checks/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Custom QA Checks</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/permissions-granularity-mode/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Permission Granularity Mode</span> </a> </li> </ul> </details> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="13"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Project Management</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/enterprise/creating-project/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Creating a Project</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/screenshots/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Screenshots</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/project-activity/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Project Activity</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/webhooks/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Webhooks</span> </a> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="35"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Sources</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/enterprise/uploading-files/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Uploading Source Files</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/file-management/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">File Management</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/string-management/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">String Management</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/version-management/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Version Management</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/custom-segmentation/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Custom Segmentation</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/asset-localization/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Asset Localization</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/csv-xlsx-configuration/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">CSV / XLSX File Configuration</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/xml-configuration/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">XML File Configuration</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="36"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Translations</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/enterprise/downloading-translations/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Downloading Translations</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/uploading-translations/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Uploading Existing Translations</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/bundles/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Target Files Bundles</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="37"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Project Settings</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/enterprise/project-settings/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">General</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/project-settings/privacy/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Privacy</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/project-settings/languages/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Languages</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/project-settings/qa-checks/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Quality Assurance</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/project-settings/translation-memories/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Translation Memories</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/project-settings/glossaries/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Glossaries</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/project-settings/machine-translation/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Machine Translation</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/project-settings/ai/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">AI</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/project-settings/import/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Import</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/project-settings/export/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Export</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/project-settings/labels/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Labels</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/project-settings/parser-configuration/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Parser Configuration</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/project-settings/file-processors/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">File Processors</span> </a> </li> </ul> </details> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="14"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Team Management</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/enterprise/roles/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Roles</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/inviting-people/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Inviting People</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/project-members/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Project Members</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/organization-members/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Organization Members</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/teams/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Teams</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details open class="astro-3ii7xxms"> <sl-sidebar-restore data-index="15"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Integrations</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/enterprise/integrations/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Overview</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/github-integration/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">GitHub Integration</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/gitlab-integration/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">GitLab Integration</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/bitbucket-integration/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Bitbucket Integration</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/azure-repos-integration/" aria-current="page" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Azure Repos Integration</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/configuring-vcs-integrations-online/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Configuring VCS Integrations Online</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/content-delivery/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Content Delivery</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/jira-integration/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Jira Integration</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/figma-plugin/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Figma Plugin</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/sketch-plugin/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Sketch Plugin</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/adobe-xd-plugin/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Adobe XD Plugin</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/google-play-integration/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Google Play Integration</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="16"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Localization Resources</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/enterprise/glossary/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Glossary</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/machine-translation/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Machine Translation</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/translation-memory/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Translation Memory</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="17"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Online Editor</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/enterprise/online-editor/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Overview</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/expression-syntax-elements/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Expression Syntax Elements</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/icu-message-syntax/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">ICU Message Syntax</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/translation-consistency/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Translation Consistency</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/word-counter/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Word Counter</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="18"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Tasks</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/enterprise/tasks/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Project Tasks</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/user-tasks/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">User Tasks</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="19"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Reports</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/enterprise/organization-reports/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Organization Reports</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/project-reports/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Project Reports</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/contributor-reports/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Contributor Reports</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="20"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Billing and Payments</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/enterprise/payments-invoices/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Payments and Invoices</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/changing-subscription-plan/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Changing Subscription Plan</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/crowdin-managed-services/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Crowdin Managed Services</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/app-subscriptions/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">App Subscriptions</span> </a> </li><li class="astro-3ii7xxms"> <a href="/enterprise/billing-settings/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Billing Settings</span> </a> </li> </ul> </details> </li> </ul> <script> (() => { const scroller = document.getElementById('starlight__sidebar'); if (!window._starlightScrollRestore || !scroller) return; scroller.scrollTop = window._starlightScrollRestore; delete window._starlightScrollRestore; })(); </script> </sl-sidebar-state-persist> <div class="md:sl-hidden"> <div class="mobile-preferences sl-flex astro-wu23bvmt"> <div class="sl-flex social-icons astro-wu23bvmt"> <a href="https://x.com/crowdin" rel="me" class="sl-flex astro-wy4te6ga"><span class="sr-only astro-wy4te6ga">X</span><svg aria-hidden="true" class="astro-wy4te6ga astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M 18.242188 2.25 L 21.554688 2.25 L 14.324219 10.507812 L 22.828125 21.75 L 16.171875 21.75 L 10.953125 14.933594 L 4.992188 21.75 L 1.679688 21.75 L 9.40625 12.914062 L 1.257812 2.25 L 8.082031 2.25 L 12.792969 8.480469 Z M 17.082031 19.773438 L 18.914062 19.773438 L 7.082031 4.125 L 5.113281 4.125 Z M 17.082031 19.773438 "/></svg> </a><a href="https://www.linkedin.com/company/crowdin" rel="me" class="sl-flex astro-wy4te6ga"><span class="sr-only astro-wy4te6ga">LinkedIn</span><svg aria-hidden="true" class="astro-wy4te6ga astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M20.47 2H3.53a1.45 1.45 0 0 0-1.47 1.43v17.14A1.45 1.45 0 0 0 3.53 22h16.94a1.45 1.45 0 0 0 1.47-1.43V3.43A1.45 1.45 0 0 0 20.47 2ZM8.09 18.74h-3v-9h3v9ZM6.59 8.48a1.56 1.56 0 0 1 0-3.12 1.57 1.57 0 1 1 0 3.12Zm12.32 10.26h-3v-4.83c0-1.21-.43-2-1.52-2A1.65 1.65 0 0 0 12.85 13a2 2 0 0 0-.1.73v5h-3v-9h3V11a3 3 0 0 1 2.71-1.5c2 0 3.45 1.29 3.45 4.06v5.18Z"/></svg> </a><a href="https://youtube.com/@crowdin-localization" rel="me" class="sl-flex astro-wy4te6ga"><span class="sr-only astro-wy4te6ga">YouTube</span><svg aria-hidden="true" class="astro-wy4te6ga astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M23.5 6.2A3 3 0 0 0 21.4 4c-1.9-.5-9.4-.5-9.4-.5s-7.5 0-9.4.5A3 3 0 0 0 .5 6.3C0 8 0 12 0 12s0 4 .5 5.8A3 3 0 0 0 2.6 20c1.9.6 9.4.6 9.4.6s7.5 0 9.4-.6a3 3 0 0 0 2.1-2c.5-2 .5-5.9.5-5.9s0-4-.5-5.8zm-14 9.4V8.4l6.3 3.6-6.3 3.6z"/></svg> </a><a href="https://github.com/crowdin" rel="me" class="sl-flex astro-wy4te6ga"><span class="sr-only astro-wy4te6ga">GitHub</span><svg aria-hidden="true" class="astro-wy4te6ga astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 .3a12 12 0 0 0-3.8 23.38c.6.12.83-.26.83-.57L9 21.07c-3.34.72-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.08-.74.09-.73.09-.73 1.2.09 1.83 1.24 1.83 1.24 1.08 1.83 2.81 1.3 3.5 1 .1-.78.42-1.31.76-1.61-2.67-.3-5.47-1.33-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.14-.3-.54-1.52.1-3.18 0 0 1-.32 3.3 1.23a11.5 11.5 0 0 1 6 0c2.28-1.55 3.29-1.23 3.29-1.23.64 1.66.24 2.88.12 3.18a4.65 4.65 0 0 1 1.23 3.22c0 4.61-2.8 5.63-5.48 5.92.42.36.81 1.1.81 2.22l-.01 3.29c0 .31.2.69.82.57A12 12 0 0 0 12 .3Z"/></svg> </a> <a href="https://podcasts.apple.com/us/podcast/agile-localization/id1785636416" rel="me" class="sl-flex astro-dv46nlzh"> <span class="sr-only astro-dv46nlzh">Apple Podcast</span> <svg width="1em" height="1em" viewBox="0 0 20 20" class="astro-dv46nlzh" data-icon="apple-podcast"> <use href="#ai:local:apple-podcast"></use> </svg> </a> <a href="https://open.spotify.com/show/2Vv42MtK93aLTzvEd77Om5" rel="me" class="sl-flex astro-dv46nlzh"> <span class="sr-only astro-dv46nlzh">Spotify Podcast</span> <svg width="1em" height="1em" viewBox="0 0 20 20" class="astro-dv46nlzh" data-icon="spotify-podcast"> <use href="#ai:local:spotify-podcast"></use> </svg> </a> </div> <starlight-theme-select> <label style="--sl-select-width: 6.25em" class="astro-4yphtoen"> <span class="sr-only astro-4yphtoen">Select theme</span> <svg aria-hidden="true" class="icon label-icon astro-4yphtoen astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg> <select value="auto" class="astro-4yphtoen"> <option value="dark" class="astro-4yphtoen">Dark</option><option value="light" class="astro-4yphtoen">Light</option><option value="auto" selected class="astro-4yphtoen">Auto</option> </select> <svg aria-hidden="true" class="icon caret astro-4yphtoen astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71 8.46 9.17a1 1 0 1 0-1.41 1.42l4.24 4.24a1.002 1.002 0 0 0 1.42 0L17 10.59a1.002 1.002 0 0 0 0-1.42Z"/></svg> </label> </starlight-theme-select> <script> StarlightThemeProvider.updatePickers(); </script> </div> </div></div><div hidden data-starlight-multi-sidebar-label="Developer Portal"><sl-sidebar-state-persist data-hash="0oocp5j" class="astro-kku4brbg"> <script> (() => { try { if (!matchMedia('(min-width: 50em)').matches) return; /** @type {HTMLElement | null} */ const target = document.querySelector('sl-sidebar-state-persist'); const state = JSON.parse(sessionStorage.getItem('sl-sidebar-state') || '0'); if (!target || !state || target.dataset.hash !== state.hash) return; window._starlightScrollRestore = state.scroll; customElements.define( 'sl-sidebar-restore', class SidebarRestore extends HTMLElement { connectedCallback() { try { const idx = parseInt(this.dataset.index || ''); const details = this.closest('details'); if (details && typeof state.open[idx] === 'boolean') details.open = state.open[idx]; } catch {} } } ); } catch {} })(); </script> <ul class="top-level astro-3ii7xxms"> <li class="astro-3ii7xxms"> <details open class="astro-3ii7xxms"> <sl-sidebar-restore data-index="21"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Crowdin Apps</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-about/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">About Crowdin Apps</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-quick-start/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Quick Start</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-app-descriptor/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">App Descriptor</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-js/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Crowdin Apps JS</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-installation/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">App Installation</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-security/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Security for Crowdin Apps</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-user-interface/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">User Interface</span> </a> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="38"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Publishing</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-monetization/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Crowdin Apps Monetization</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-publishing/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Publishing Your App</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-releasing/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Releasing Crowdin Apps</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-promoting/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Crowdin Apps Promoting</span> </a> </li> </ul> </details> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="22"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Modules</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="39"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">UI Modules</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-modules-ui/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Overview</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-module-project-integrations/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Integrations</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-module-project-tools/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Tools</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-module-project-reports/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Reports</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-module-project-menu/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Project Menu</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-module-project-menu-crowdsource/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Project Menu (Crowdsource View)</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-module-editor-right-panel/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Editor Right Panel</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-module-editor-translations-panel/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Editor Translations Panel</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-module-organization-menu/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Organization Menu</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-module-organization-menu-crowdsource/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Organization Menu (Crowdsource View)</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-module-organization-settings-menu/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Organization Settings Menu</span> <span class="sl-badge default small astro-3ii7xxms astro-avdet4wd">New</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-module-profile-settings-menu/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Profile Settings Menu</span> <span class="sl-badge default small astro-3ii7xxms astro-avdet4wd">New</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-module-profile-resources-menu/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Resources</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-module-custom-mt/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Custom MT</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-module-custom-ai/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Custom AI</span> <span class="sl-badge default small astro-3ii7xxms astro-avdet4wd">New</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-module-ai-prompt-provider/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">AI Prompt Provider</span> <span class="sl-badge default small astro-3ii7xxms astro-avdet4wd">New</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-module-context-menu/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Context Menu</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-module-modal/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Modal</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="40"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">File Processing Modules</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-modules-file-processing/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Overview</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-module-custom-file-format/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Custom File Format</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-module-file-pre-import-processing/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">File Pre-Import Processing</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-module-file-post-import-processing/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">File Post-Import Processing</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-module-file-pre-export-processing/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">File Pre-Export Processing</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-module-file-post-export-processing/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">File Post-Export Processing</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="41"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Other</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-module-api/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">API</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-module-custom-spellchecker/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Custom Spellchecker</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-module-external-qa-check/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">External QA Check</span> <span class="sl-badge default small astro-3ii7xxms astro-avdet4wd">New</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-module-webhook/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Webhook</span> <span class="sl-badge default small astro-3ii7xxms astro-avdet4wd">New</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/crowdin-apps-module-workflow-step-type/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Workflow Step Type</span> <span class="sl-badge default small astro-3ii7xxms astro-avdet4wd">New</span> </a> </li> </ul> </details> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="23"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Capabilities</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/developer/in-context-localization/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">In-Context</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/webhooks/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Webhook Events</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/pseudolocalization/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Pseudolocalization</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/editor-themes/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Editor Themes</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="24"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">API</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/developer/api/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Overview</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/api/v2/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Crowdin API (File-based)</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/api/v2/string-based/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Crowdin API (String-based)</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/enterprise/api/v2/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Enterprise API (File-based)</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/enterprise/api/v2/string-based/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Enterprise API (String-based)</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/graphql-api/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">GraphQL API</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/croql/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Crowdin Query Language (CroQL)</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/language-codes/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Language Codes</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="25"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Dev Tools</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/developer/dev-tools/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Overview</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/configuration-file/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Configuration File</span> </a> </li><li class="astro-3ii7xxms"> <a href="https://crowdin.github.io/crowdin-cli/" class="astro-3ii7xxms" target="_blank"> <span class="astro-3ii7xxms">Console Client (CLI)</span> </a> </li><li class="astro-3ii7xxms"> <a href="https://github.com/marketplace/actions/crowdin-action" class="astro-3ii7xxms" target="_blank"> <span class="astro-3ii7xxms">GitHub Action</span> </a> </li><li class="astro-3ii7xxms"> <a href="https://marketplace.visualstudio.com/items?itemName=Crowdin.vscode-crowdin" class="astro-3ii7xxms" target="_blank"> <span class="astro-3ii7xxms">Visual Studio Code Plugin</span> </a> </li><li class="astro-3ii7xxms"> <a href="https://github.com/crowdin/android-studio-plugin#readme" class="astro-3ii7xxms" target="_blank"> <span class="astro-3ii7xxms">Android Studio Plugin</span> </a> </li><li class="astro-3ii7xxms"> <a href="https://crowdin.github.io/mobile-sdk-android/" class="astro-3ii7xxms" target="_blank"> <span class="astro-3ii7xxms">Android SDK</span> </a> </li><li class="astro-3ii7xxms"> <a href="https://crowdin.github.io/mobile-sdk-ios/" class="astro-3ii7xxms" target="_blank"> <span class="astro-3ii7xxms">iOS SDK</span> </a> </li><li class="astro-3ii7xxms"> <a href="https://crowdin.github.io/ota-client-js/" class="astro-3ii7xxms" target="_blank"> <span class="astro-3ii7xxms">Website JS SDK</span> </a> </li><li class="astro-3ii7xxms"> <a href="https://github.com/crowdin/flutter-sdk#readme" class="astro-3ii7xxms" target="_blank"> <span class="astro-3ii7xxms">Flutter SDK</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="26"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Security</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/developer/ip-addresses/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">IP Addresses and Domains</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/understanding-scopes/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Understanding Scopes</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/authorizing-oauth-apps/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Authorizing OAuth Apps</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="27"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Guides</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/developer/apps-localization/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Mobile Apps Localization</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/automating-screenshot-management/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Automating Screenshot Management</span> </a> </li><li class="astro-3ii7xxms"> <a href="/developer/shopify-apps-localization/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Shopify Apps Localization</span> </a> </li> </ul> </details> </li> </ul> <script> (() => { const scroller = document.getElementById('starlight__sidebar'); if (!window._starlightScrollRestore || !scroller) return; scroller.scrollTop = window._starlightScrollRestore; delete window._starlightScrollRestore; })(); </script> </sl-sidebar-state-persist> <div class="md:sl-hidden"> <div class="mobile-preferences sl-flex astro-wu23bvmt"> <div class="sl-flex social-icons astro-wu23bvmt"> <a href="https://x.com/crowdin" rel="me" class="sl-flex astro-wy4te6ga"><span class="sr-only astro-wy4te6ga">X</span><svg aria-hidden="true" class="astro-wy4te6ga astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M 18.242188 2.25 L 21.554688 2.25 L 14.324219 10.507812 L 22.828125 21.75 L 16.171875 21.75 L 10.953125 14.933594 L 4.992188 21.75 L 1.679688 21.75 L 9.40625 12.914062 L 1.257812 2.25 L 8.082031 2.25 L 12.792969 8.480469 Z M 17.082031 19.773438 L 18.914062 19.773438 L 7.082031 4.125 L 5.113281 4.125 Z M 17.082031 19.773438 "/></svg> </a><a href="https://www.linkedin.com/company/crowdin" rel="me" class="sl-flex astro-wy4te6ga"><span class="sr-only astro-wy4te6ga">LinkedIn</span><svg aria-hidden="true" class="astro-wy4te6ga astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M20.47 2H3.53a1.45 1.45 0 0 0-1.47 1.43v17.14A1.45 1.45 0 0 0 3.53 22h16.94a1.45 1.45 0 0 0 1.47-1.43V3.43A1.45 1.45 0 0 0 20.47 2ZM8.09 18.74h-3v-9h3v9ZM6.59 8.48a1.56 1.56 0 0 1 0-3.12 1.57 1.57 0 1 1 0 3.12Zm12.32 10.26h-3v-4.83c0-1.21-.43-2-1.52-2A1.65 1.65 0 0 0 12.85 13a2 2 0 0 0-.1.73v5h-3v-9h3V11a3 3 0 0 1 2.71-1.5c2 0 3.45 1.29 3.45 4.06v5.18Z"/></svg> </a><a href="https://youtube.com/@crowdin-localization" rel="me" class="sl-flex astro-wy4te6ga"><span class="sr-only astro-wy4te6ga">YouTube</span><svg aria-hidden="true" class="astro-wy4te6ga astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M23.5 6.2A3 3 0 0 0 21.4 4c-1.9-.5-9.4-.5-9.4-.5s-7.5 0-9.4.5A3 3 0 0 0 .5 6.3C0 8 0 12 0 12s0 4 .5 5.8A3 3 0 0 0 2.6 20c1.9.6 9.4.6 9.4.6s7.5 0 9.4-.6a3 3 0 0 0 2.1-2c.5-2 .5-5.9.5-5.9s0-4-.5-5.8zm-14 9.4V8.4l6.3 3.6-6.3 3.6z"/></svg> </a><a href="https://github.com/crowdin" rel="me" class="sl-flex astro-wy4te6ga"><span class="sr-only astro-wy4te6ga">GitHub</span><svg aria-hidden="true" class="astro-wy4te6ga astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 .3a12 12 0 0 0-3.8 23.38c.6.12.83-.26.83-.57L9 21.07c-3.34.72-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.08-.74.09-.73.09-.73 1.2.09 1.83 1.24 1.83 1.24 1.08 1.83 2.81 1.3 3.5 1 .1-.78.42-1.31.76-1.61-2.67-.3-5.47-1.33-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.14-.3-.54-1.52.1-3.18 0 0 1-.32 3.3 1.23a11.5 11.5 0 0 1 6 0c2.28-1.55 3.29-1.23 3.29-1.23.64 1.66.24 2.88.12 3.18a4.65 4.65 0 0 1 1.23 3.22c0 4.61-2.8 5.63-5.48 5.92.42.36.81 1.1.81 2.22l-.01 3.29c0 .31.2.69.82.57A12 12 0 0 0 12 .3Z"/></svg> </a> <a href="https://podcasts.apple.com/us/podcast/agile-localization/id1785636416" rel="me" class="sl-flex astro-dv46nlzh"> <span class="sr-only astro-dv46nlzh">Apple Podcast</span> <svg width="1em" height="1em" viewBox="0 0 20 20" class="astro-dv46nlzh" data-icon="apple-podcast"> <use href="#ai:local:apple-podcast"></use> </svg> </a> <a href="https://open.spotify.com/show/2Vv42MtK93aLTzvEd77Om5" rel="me" class="sl-flex astro-dv46nlzh"> <span class="sr-only astro-dv46nlzh">Spotify Podcast</span> <svg width="1em" height="1em" viewBox="0 0 20 20" class="astro-dv46nlzh" data-icon="spotify-podcast"> <use href="#ai:local:spotify-podcast"></use> </svg> </a> </div> <starlight-theme-select> <label style="--sl-select-width: 6.25em" class="astro-4yphtoen"> <span class="sr-only astro-4yphtoen">Select theme</span> <svg aria-hidden="true" class="icon label-icon astro-4yphtoen astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg> <select value="auto" class="astro-4yphtoen"> <option value="dark" class="astro-4yphtoen">Dark</option><option value="light" class="astro-4yphtoen">Light</option><option value="auto" selected class="astro-4yphtoen">Auto</option> </select> <svg aria-hidden="true" class="icon caret astro-4yphtoen astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71 8.46 9.17a1 1 0 1 0-1.41 1.42l4.24 4.24a1.002 1.002 0 0 0 1.42 0L17 10.59a1.002 1.002 0 0 0 0-1.42Z"/></svg> </label> </starlight-theme-select> <script> StarlightThemeProvider.updatePickers(); </script> </div> </div></div> </div> </div> </nav> <div class="main-frame astro-vrdttmbt"> <div class="lg:sl-flex astro-67yu43on"> <aside class="right-sidebar-container astro-67yu43on"> <div class="right-sidebar astro-67yu43on"> <div class="lg:sl-hidden astro-pb3aqygn"><mobile-starlight-toc data-min-h="2" data-max-h="4" class="astro-bboabfps"><nav aria-labelledby="starlight__on-this-page--mobile" class="astro-bboabfps"><details id="starlight__mobile-toc" class="astro-bboabfps"><summary id="starlight__on-this-page--mobile" class="sl-flex astro-bboabfps"><div class="toggle sl-flex astro-bboabfps">On this page<svg aria-hidden="true" class="caret astro-bboabfps astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </div><span class="display-current astro-bboabfps"></span></summary><div class="dropdown astro-bboabfps"><ul class="isMobile astro-4elwmllm" style="--depth: 0;"> <li class="astro-4elwmllm" style="--depth: 0;"> <a href="#_top" data-shb-heading="Overview" class="astro-4elwmllm" style="--depth: 0;"> <span class="astro-7vjlygkt">Overview</span> </a> </li><li class="astro-4elwmllm" style="--depth: 0;"> <a href="#connecting-azure-repos-account" data-shb-heading="Connecting Azure Repos Account" class="astro-4elwmllm" style="--depth: 0;"> <span class="astro-7vjlygkt">Connecting Azure Repos Account</span> </a> <ul class="isMobile astro-4elwmllm" style="--depth: 1;"> <li class="astro-4elwmllm" style="--depth: 1;"> <a href="#selecting-repository" data-shb-heading="Selecting Repository" class="astro-4elwmllm" style="--depth: 1;"> <span class="astro-7vjlygkt">Selecting Repository</span> </a> </li><li class="astro-4elwmllm" style="--depth: 1;"> <a href="#service-branches" data-shb-heading="Service Branches" class="astro-4elwmllm" style="--depth: 1;"> <span class="astro-7vjlygkt">Service Branches</span> </a> </li><li class="astro-4elwmllm" style="--depth: 1;"> <a href="#synchronization-settings" data-shb-heading="Synchronization Settings" class="astro-4elwmllm" style="--depth: 1;"> <span class="astro-7vjlygkt">Synchronization Settings</span> </a> <ul class="isMobile astro-4elwmllm" style="--depth: 2;"> <li class="astro-4elwmllm" style="--depth: 2;"> <a href="#import-existing-translations" data-shb-heading="Import Existing Translations" class="astro-4elwmllm" style="--depth: 2;"> <span class="astro-7vjlygkt">Import Existing Translations</span> </a> </li><li class="astro-4elwmllm" style="--depth: 2;"> <a href="#push-sources" data-shb-heading="Push Sources" class="astro-4elwmllm" style="--depth: 2;"> <span class="astro-7vjlygkt">Push Sources</span> </a> </li><li class="astro-4elwmllm" style="--depth: 2;"> <a href="#sync-schedule" data-shb-heading="Sync Schedule" class="astro-4elwmllm" style="--depth: 2;"> <span class="astro-7vjlygkt">Sync Schedule</span> </a> </li> </ul> </li><li class="astro-4elwmllm" style="--depth: 1;"> <a href="#branches-to-sync-automatically" data-shb-heading="Branches to Sync Automatically" class="astro-4elwmllm" style="--depth: 1;"> <span class="astro-7vjlygkt">Branches to Sync Automatically</span> </a> </li><li class="astro-4elwmllm" style="--depth: 1;"> <a href="#default-configuration-file-name" data-shb-heading="Default Configuration File Name" class="astro-4elwmllm" style="--depth: 1;"> <span class="astro-7vjlygkt">Default Configuration File Name</span> </a> </li> </ul> </li><li class="astro-4elwmllm" style="--depth: 0;"> <a href="#selecting-content-for-synchronization" data-shb-heading="Selecting Content for Synchronization" class="astro-4elwmllm" style="--depth: 0;"> <span class="astro-7vjlygkt">Selecting Content for Synchronization</span> </a> <ul class="isMobile astro-4elwmllm" style="--depth: 1;"> <li class="astro-4elwmllm" style="--depth: 1;"> <a href="#configuring-online" data-shb-heading="Configuring Online" class="astro-4elwmllm" style="--depth: 1;"> <span class="astro-7vjlygkt">Configuring Online</span> </a> </li><li class="astro-4elwmllm" style="--depth: 1;"> <a href="#creating-configuration-file" data-shb-heading="Creating Configuration File" class="astro-4elwmllm" style="--depth: 1;"> <span class="astro-7vjlygkt">Creating Configuration File</span> </a> </li> </ul> </li><li class="astro-4elwmllm" style="--depth: 0;"> <a href="#working-with-multiple-repositories-within-one-project" data-shb-heading="Working with Multiple Repositories within One Project" class="astro-4elwmllm" style="--depth: 0;"> <span class="astro-7vjlygkt">Working with Multiple Repositories within One Project</span> </a> </li><li class="astro-4elwmllm" style="--depth: 0;"> <a href="#checking-the-status-of-synchronization" data-shb-heading="Checking the Status of Synchronization" class="astro-4elwmllm" style="--depth: 0;"> <span class="astro-7vjlygkt">Checking the Status of Synchronization</span> </a> </li><li class="astro-4elwmllm" style="--depth: 0;"> <a href="#uploading-translations-from-repo" data-shb-heading="Uploading Translations from Repo" class="astro-4elwmllm" style="--depth: 0;"> <span class="astro-7vjlygkt">Uploading Translations from Repo</span> </a> </li><li class="astro-4elwmllm" style="--depth: 0;"> <a href="#qa" data-shb-heading="Q&A" class="astro-4elwmllm" style="--depth: 0;"> <span class="astro-7vjlygkt">Q&A</span> </a> </li> </ul> </div></details></nav></mobile-starlight-toc></div><div class="right-sidebar-panel sl-hidden lg:sl-block astro-pb3aqygn"><div class="sl-container astro-pb3aqygn"><starlight-toc data-min-h="2" data-max-h="4"><nav aria-labelledby="starlight__on-this-page"><h2 id="starlight__on-this-page">On this page</h2><ul class="astro-4elwmllm" style="--depth: 0;"> <li class="astro-4elwmllm" style="--depth: 0;"> <a href="#_top" data-shb-heading="Overview" class="astro-4elwmllm" style="--depth: 0;"> <span class="astro-7vjlygkt">Overview</span> </a> </li><li class="astro-4elwmllm" style="--depth: 0;"> <a href="#connecting-azure-repos-account" data-shb-heading="Connecting Azure Repos Account" class="astro-4elwmllm" style="--depth: 0;"> <span class="astro-7vjlygkt">Connecting Azure Repos Account</span> </a> <ul class="astro-4elwmllm" style="--depth: 1;"> <li class="astro-4elwmllm" style="--depth: 1;"> <a href="#selecting-repository" data-shb-heading="Selecting Repository" class="astro-4elwmllm" style="--depth: 1;"> <span class="astro-7vjlygkt">Selecting Repository</span> </a> </li><li class="astro-4elwmllm" style="--depth: 1;"> <a href="#service-branches" data-shb-heading="Service Branches" class="astro-4elwmllm" style="--depth: 1;"> <span class="astro-7vjlygkt">Service Branches</span> </a> </li><li class="astro-4elwmllm" style="--depth: 1;"> <a href="#synchronization-settings" data-shb-heading="Synchronization Settings" class="astro-4elwmllm" style="--depth: 1;"> <span class="astro-7vjlygkt">Synchronization Settings</span> </a> <ul class="astro-4elwmllm" style="--depth: 2;"> <li class="astro-4elwmllm" style="--depth: 2;"> <a href="#import-existing-translations" data-shb-heading="Import Existing Translations" class="astro-4elwmllm" style="--depth: 2;"> <span class="astro-7vjlygkt">Import Existing Translations</span> </a> </li><li class="astro-4elwmllm" style="--depth: 2;"> <a href="#push-sources" data-shb-heading="Push Sources" class="astro-4elwmllm" style="--depth: 2;"> <span class="astro-7vjlygkt">Push Sources</span> </a> </li><li class="astro-4elwmllm" style="--depth: 2;"> <a href="#sync-schedule" data-shb-heading="Sync Schedule" class="astro-4elwmllm" style="--depth: 2;"> <span class="astro-7vjlygkt">Sync Schedule</span> </a> </li> </ul> </li><li class="astro-4elwmllm" style="--depth: 1;"> <a href="#branches-to-sync-automatically" data-shb-heading="Branches to Sync Automatically" class="astro-4elwmllm" style="--depth: 1;"> <span class="astro-7vjlygkt">Branches to Sync Automatically</span> </a> </li><li class="astro-4elwmllm" style="--depth: 1;"> <a href="#default-configuration-file-name" data-shb-heading="Default Configuration File Name" class="astro-4elwmllm" style="--depth: 1;"> <span class="astro-7vjlygkt">Default Configuration File Name</span> </a> </li> </ul> </li><li class="astro-4elwmllm" style="--depth: 0;"> <a href="#selecting-content-for-synchronization" data-shb-heading="Selecting Content for Synchronization" class="astro-4elwmllm" style="--depth: 0;"> <span class="astro-7vjlygkt">Selecting Content for Synchronization</span> </a> <ul class="astro-4elwmllm" style="--depth: 1;"> <li class="astro-4elwmllm" style="--depth: 1;"> <a href="#configuring-online" data-shb-heading="Configuring Online" class="astro-4elwmllm" style="--depth: 1;"> <span class="astro-7vjlygkt">Configuring Online</span> </a> </li><li class="astro-4elwmllm" style="--depth: 1;"> <a href="#creating-configuration-file" data-shb-heading="Creating Configuration File" class="astro-4elwmllm" style="--depth: 1;"> <span class="astro-7vjlygkt">Creating Configuration File</span> </a> </li> </ul> </li><li class="astro-4elwmllm" style="--depth: 0;"> <a href="#working-with-multiple-repositories-within-one-project" data-shb-heading="Working with Multiple Repositories within One Project" class="astro-4elwmllm" style="--depth: 0;"> <span class="astro-7vjlygkt">Working with Multiple Repositories within One Project</span> </a> </li><li class="astro-4elwmllm" style="--depth: 0;"> <a href="#checking-the-status-of-synchronization" data-shb-heading="Checking the Status of Synchronization" class="astro-4elwmllm" style="--depth: 0;"> <span class="astro-7vjlygkt">Checking the Status of Synchronization</span> </a> </li><li class="astro-4elwmllm" style="--depth: 0;"> <a href="#uploading-translations-from-repo" data-shb-heading="Uploading Translations from Repo" class="astro-4elwmllm" style="--depth: 0;"> <span class="astro-7vjlygkt">Uploading Translations from Repo</span> </a> </li><li class="astro-4elwmllm" style="--depth: 0;"> <a href="#qa" data-shb-heading="Q&A" class="astro-4elwmllm" style="--depth: 0;"> <span class="astro-7vjlygkt">Q&A</span> </a> </li> </ul> </nav></starlight-toc></div></div> </div> </aside> <div class="main-pane astro-67yu43on"> <main data-pagefind-body lang="en" dir="ltr" class="astro-bguv2lll"> <div class="content-panel astro-7nkwcw3z"> <div class="sl-container astro-7nkwcw3z"> <h1 id="_top" class="astro-j6tvhyss">Azure Repos Integration</h1> </div> </div> <div class="content-panel astro-7nkwcw3z"> <div class="sl-container astro-7nkwcw3z"> <div class="sl-markdown-content"> <p>The Azure Repos integration allows you to synchronize files between your Azure Repos repository and Crowdin Enterprise project.</p> <aside aria-label="Note" class="starlight-aside starlight-aside--note"> <p class="starlight-aside__title" aria-hidden="true"> <svg aria-hidden="true" class="starlight-aside__icon astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 11a1 1 0 0 0-1 1v4a1 1 0 0 0 2 0v-4a1 1 0 0 0-1-1Zm.38-3.92a1 1 0 0 0-.76 0 1 1 0 0 0-.33.21 1.15 1.15 0 0 0-.21.33 1 1 0 0 0 .21 1.09c.097.088.209.16.33.21A1 1 0 0 0 13 8a1.05 1.05 0 0 0-.29-.71 1 1 0 0 0-.33-.21ZM12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm0 18a8 8 0 1 1 0-16.001A8 8 0 0 1 12 20Z"/></svg> Note </p> <section class="starlight-aside__content"> <p>You will need to <a href="https://store.crowdin.com/azure-repos" rel="nofollow" target="_blank">install the Azure Repos integration</a> in your Crowdin Enterprise organization before you can set it up and use it.</p> </section> </aside> <p>In file-based projects, there are two possible Azure Repos integration modes you can choose from:</p> <ul> <li><strong>Source and translation files mode</strong> – synchronize source and translation files between your Azure Repos repository and Crowdin Enterprise project.</li> <li><strong>Target file bundles mode</strong> – generate and push translation files to your Azure Repos repository from the Crowdin Enterprise project in the selected format. In this mode, integration pushes translation files and doesn’t sync sources from your repo. In cases when you perform a source text review in your Crowdin Enterprise project and want to get updated source texts to your repo, you can add a source language as a target language, which will be pushed to your repo along with translations.</li> </ul> <p>In string-based projects, Azure Repos integration exclusively operates in the <strong>Target file bundles mode</strong>.</p> <div class="read-more astro-szj46hnz"> <svg aria-hidden="true" class="icon astro-szj46hnz astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.17 2.06A13.1 13.1 0 0 0 19 1.87a12.94 12.94 0 0 0-7 2.05 12.94 12.94 0 0 0-7-2 13.1 13.1 0 0 0-2.17.19 1 1 0 0 0-.83 1v12a1 1 0 0 0 1.17 1 10.9 10.9 0 0 1 8.25 1.91l.12.07h.11a.91.91 0 0 0 .7 0h.11l.12-.07A10.899 10.899 0 0 1 20.83 16 1 1 0 0 0 22 15V3a1 1 0 0 0-.83-.94ZM11 15.35a12.87 12.87 0 0 0-6-1.48H4v-10c.333-.02.667-.02 1 0a10.86 10.86 0 0 1 6 1.8v9.68Zm9-1.44h-1a12.87 12.87 0 0 0-6 1.48V5.67a10.86 10.86 0 0 1 6-1.8c.333-.02.667-.02 1 0v10.04Zm1.17 4.15a13.098 13.098 0 0 0-2.17-.19 12.94 12.94 0 0 0-7 2.05 12.94 12.94 0 0 0-7-2.05c-.727.003-1.453.066-2.17.19A1 1 0 0 0 2 19.21a1 1 0 0 0 1.17.79 10.9 10.9 0 0 1 8.25 1.91 1 1 0 0 0 1.16 0A10.9 10.9 0 0 1 20.83 20a1 1 0 0 0 1.17-.79 1 1 0 0 0-.83-1.15Z"/></svg> <span class="astro-szj46hnz"><p>Read more about <a href="/enterprise/creating-project/#project-types">project types</a>.</p></span> </div> <p>All translated and approved files (or target file bundles) are automatically merged into the <code dir="auto">l10n</code> branch of the Azure Repos repository.</p> <h2 id="connecting-azure-repos-account"><a href="#connecting-azure-repos-account">Connecting Azure Repos Account</a></h2> <ol role="list" class="sl-steps"> <li>Open your project and select <strong>Integrations</strong> on the left sidebar.</li> <li>Click on <strong>Azure Repos</strong> in the Integrations list.</li> <li>Click <strong>Set Up Integration</strong> and select <strong>Source and translation files mode</strong> or <strong>Target file bundles mode</strong> from the drop-down list to integrate via your Azure Repos account. <img src="/_astro/set_up_integration_dropdown.C6cJ8ZAZ_Z1ErUDM.webp" alt="Connecting Azure Repos" class="width-sm" width="680" height="308" loading="lazy" decoding="async"> <aside aria-label="Note" class="starlight-aside starlight-aside--note"> <p class="starlight-aside__title" aria-hidden="true"> <svg aria-hidden="true" class="starlight-aside__icon astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 11a1 1 0 0 0-1 1v4a1 1 0 0 0 2 0v-4a1 1 0 0 0-1-1Zm.38-3.92a1 1 0 0 0-.76 0 1 1 0 0 0-.33.21 1.15 1.15 0 0 0-.21.33 1 1 0 0 0 .21 1.09c.097.088.209.16.33.21A1 1 0 0 0 13 8a1.05 1.05 0 0 0-.29-.71 1 1 0 0 0-.33-.21ZM12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm0 18a8 8 0 1 1 0-16.001A8 8 0 0 1 12 20Z"></path></svg> Note </p> <section class="starlight-aside__content"> In string-based projects, Azure Repos integration exclusively operates in the <strong>Target file bundles mode</strong>. </section> </aside></li> <li>Then authorize the connection with Crowdin on the Azure Repos side: <img src="/_astro/azure_repos_integration_authorization.DQVlo_ZC_Z1FMzDr.webp" alt="Azure Repos Integration Authorization" width="2198" height="1318" loading="lazy" decoding="async"></li> </ol> <p>In case the repository you need is private, and you have limited or no access to it, please ask the repository owner to provide you with an access token. Afterward, click <strong>Use personal access token</strong> and insert the token into the <em>Token</em> field and click <strong>Set Up Integration</strong>.</p> <aside aria-label="Permissions" class="starlight-aside starlight-aside--note"> <p class="starlight-aside__title" aria-hidden="true"> <svg aria-hidden="true" class="starlight-aside__icon astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 11a1 1 0 0 0-1 1v4a1 1 0 0 0 2 0v-4a1 1 0 0 0-1-1Zm.38-3.92a1 1 0 0 0-.76 0 1 1 0 0 0-.33.21 1.15 1.15 0 0 0-.21.33 1 1 0 0 0 .21 1.09c.097.088.209.16.33.21A1 1 0 0 0 13 8a1.05 1.05 0 0 0-.29-.71 1 1 0 0 0-.33-.21ZM12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm0 18a8 8 0 1 1 0-16.001A8 8 0 0 1 12 20Z"/></svg> Permissions </p> <section class="starlight-aside__content"> <p>When setting up an integration with an access token, ensure that you have the Project Administrator level permission to the necessary repo.</p> </section> </aside> <h3 id="selecting-repository"><a href="#selecting-repository">Selecting Repository</a></h3> <p>In the appeared dialog, select your repository and branches that should be translated.</p> <script> (() => { class StarlightTabsRestore extends HTMLElement { connectedCallback() { const starlightTabs = this.closest('starlight-tabs'); if (!(starlightTabs instanceof HTMLElement) || typeof localStorage === 'undefined') return; const syncKey = starlightTabs.dataset.syncKey; if (!syncKey) return; const label = localStorage.getItem(`starlight-synced-tabs__${syncKey}`); if (!label) return; const tabs = [...starlightTabs?.querySelectorAll('[role="tab"]')]; const tabIndexToRestore = tabs.findIndex( (tab) => tab instanceof HTMLAnchorElement && tab.textContent?.trim() === label ); const panels = starlightTabs?.querySelectorAll(':scope > [role="tabpanel"]'); const newTab = tabs[tabIndexToRestore]; const newPanel = panels[tabIndexToRestore]; if (tabIndexToRestore < 1 || !newTab || !newPanel) return; tabs[0]?.setAttribute('aria-selected', 'false'); tabs[0]?.setAttribute('tabindex', '-1'); panels?.[0]?.setAttribute('hidden', 'true'); newTab.removeAttribute('tabindex'); newTab.setAttribute('aria-selected', 'true'); newPanel.removeAttribute('hidden'); } } customElements.define('starlight-tabs-restore', StarlightTabsRestore); })() </script><starlight-tabs data-sync-key="projectType" class="astro-esqgolmp"> <div class="tablist-wrapper not-content astro-esqgolmp"> <ul role="tablist" class="astro-esqgolmp"> <li role="presentation" class="tab astro-esqgolmp"> <a role="tab" href="#tab-panel-81" id="tab-81" aria-selected="true" tabindex="0" class="astro-esqgolmp"> File-based project </a> </li><li role="presentation" class="tab astro-esqgolmp"> <a role="tab" href="#tab-panel-82" id="tab-82" aria-selected="false" tabindex="-1" class="astro-esqgolmp"> String-based project </a> </li> </ul> </div> <section id="tab-panel-81" aria-labelledby="tab-81" role="tabpanel" tabindex="0"> <img src="/_astro/integration_unconfigured.C5Ris9FM_11EkDj.webp" alt="Azure Repos Integration Unconfigured" width="1762" height="1388" loading="lazy" decoding="async"><p>It’s recommended to switch Duplicate Strings to <strong>Show within a version branch</strong>, so identical strings will be hidden between branches. If your source files contain strings with apparent identifiers (keys), it’s better to use a <em>strict</em> version of this option. In other cases, feel free to use a <em>regular</em> one.</p> </section><section id="tab-panel-82" aria-labelledby="tab-82" role="tabpanel" tabindex="0" hidden> <img src="/_astro/integration_unconfigured_sb.C0-Hv86l_SnBrq.webp" alt="Azure Repos Integration Unconfigured" width="1748" height="1381" loading="lazy" decoding="async"> </section> <starlight-tabs-restore class="astro-esqgolmp"></starlight-tabs-restore> </starlight-tabs> <div class="card-grid astro-zntqmydn"><div class="sl-link-card astro-mf7fz2mj"> <span class="sl-flex stack astro-mf7fz2mj"> <a href="/enterprise/project-settings/import/#duplicate-strings" class="astro-mf7fz2mj"> <span class="title astro-mf7fz2mj">Duplicate Strings</span> </a> </span> <svg aria-hidden="true" class="icon rtl:flip astro-mf7fz2mj astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.333em;"><path d="M17.92 11.62a1.001 1.001 0 0 0-.21-.33l-5-5a1.003 1.003 0 1 0-1.42 1.42l3.3 3.29H7a1 1 0 0 0 0 2h7.59l-3.3 3.29a1.002 1.002 0 0 0 .325 1.639 1 1 0 0 0 1.095-.219l5-5a1 1 0 0 0 .21-.33 1 1 0 0 0 0-.76Z"/></svg> </div> <div class="sl-link-card astro-mf7fz2mj"> <span class="sl-flex stack astro-mf7fz2mj"> <a href="/enterprise/version-management/" class="astro-mf7fz2mj"> <span class="title astro-mf7fz2mj">Version Management</span> </a> </span> <svg aria-hidden="true" class="icon rtl:flip astro-mf7fz2mj astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.333em;"><path d="M17.92 11.62a1.001 1.001 0 0 0-.21-.33l-5-5a1.003 1.003 0 1 0-1.42 1.42l3.3 3.29H7a1 1 0 0 0 0 2h7.59l-3.3 3.29a1.002 1.002 0 0 0 .325 1.639 1 1 0 0 0 1.095-.219l5-5a1 1 0 0 0 .21-.33 1 1 0 0 0 0-.76Z"/></svg> </div> </div> <p>When working with Azure Repos integration in the <strong>Target File Bundles Mode</strong>, the integration will send the completed translations from your Crowdin Enterprise project without pulling sources from your repo. So when selecting a repository and branches that should be translated, you specify where the integration should put the generated bundles with translations.</p> <div class="read-more astro-szj46hnz"> <svg aria-hidden="true" class="icon astro-szj46hnz astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.17 2.06A13.1 13.1 0 0 0 19 1.87a12.94 12.94 0 0 0-7 2.05 12.94 12.94 0 0 0-7-2 13.1 13.1 0 0 0-2.17.19 1 1 0 0 0-.83 1v12a1 1 0 0 0 1.17 1 10.9 10.9 0 0 1 8.25 1.91l.12.07h.11a.91.91 0 0 0 .7 0h.11l.12-.07A10.899 10.899 0 0 1 20.83 16 1 1 0 0 0 22 15V3a1 1 0 0 0-.83-.94ZM11 15.35a12.87 12.87 0 0 0-6-1.48H4v-10c.333-.02.667-.02 1 0a10.86 10.86 0 0 1 6 1.8v9.68Zm9-1.44h-1a12.87 12.87 0 0 0-6 1.48V5.67a10.86 10.86 0 0 1 6-1.8c.333-.02.667-.02 1 0v10.04Zm1.17 4.15a13.098 13.098 0 0 0-2.17-.19 12.94 12.94 0 0 0-7 2.05 12.94 12.94 0 0 0-7-2.05c-.727.003-1.453.066-2.17.19A1 1 0 0 0 2 19.21a1 1 0 0 0 1.17.79 10.9 10.9 0 0 1 8.25 1.91 1 1 0 0 0 1.16 0A10.9 10.9 0 0 1 20.83 20a1 1 0 0 0 1.17-.79 1 1 0 0 0-.83-1.15Z"/></svg> <span class="astro-szj46hnz"><p>Read more about <a href="/enterprise/bundles/#bundles-in-vcs-integrations">configuring target file bundles for VCS integration</a>.</p></span> </div> <p>When you work with private integrations (e.g., integrations with self-hosted VCS), you need to add dedicated Crowdin IP addresses to the allowlist to ensure that it operates properly while staying secure.</p> <div class="read-more astro-szj46hnz"> <svg aria-hidden="true" class="icon astro-szj46hnz astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.17 2.06A13.1 13.1 0 0 0 19 1.87a12.94 12.94 0 0 0-7 2.05 12.94 12.94 0 0 0-7-2 13.1 13.1 0 0 0-2.17.19 1 1 0 0 0-.83 1v12a1 1 0 0 0 1.17 1 10.9 10.9 0 0 1 8.25 1.91l.12.07h.11a.91.91 0 0 0 .7 0h.11l.12-.07A10.899 10.899 0 0 1 20.83 16 1 1 0 0 0 22 15V3a1 1 0 0 0-.83-.94ZM11 15.35a12.87 12.87 0 0 0-6-1.48H4v-10c.333-.02.667-.02 1 0a10.86 10.86 0 0 1 6 1.8v9.68Zm9-1.44h-1a12.87 12.87 0 0 0-6 1.48V5.67a10.86 10.86 0 0 1 6-1.8c.333-.02.667-.02 1 0v10.04Zm1.17 4.15a13.098 13.098 0 0 0-2.17-.19 12.94 12.94 0 0 0-7 2.05 12.94 12.94 0 0 0-7-2.05c-.727.003-1.453.066-2.17.19A1 1 0 0 0 2 19.21a1 1 0 0 0 1.17.79 10.9 10.9 0 0 1 8.25 1.91 1 1 0 0 0 1.16 0A10.9 10.9 0 0 1 20.83 20a1 1 0 0 0 1.17-.79 1 1 0 0 0-.83-1.15Z"/></svg> <span class="astro-szj46hnz"><p>Read more about <a href="/developer/ip-addresses/#integrations">IP Addresses</a>.</p></span> </div> <h3 id="service-branches"><a href="#service-branches">Service Branches</a></h3> <p>When translations are finished and your languages are ready to go live, Crowdin Enterprise sends the pull request with translations to your version control system. For every branch that is under localization, Crowdin Enterprise creates an additional service branch with translations. We don’t commit directly to the master branch so that you can verify translations first.</p> <p>By default, <code dir="auto">l10n_</code> is added to the created service branch name. If necessary, you can easily change it.</p> <h3 id="synchronization-settings"><a href="#synchronization-settings">Synchronization Settings</a></h3> <p>Configure the synchronization settings according to your needs and preferences.</p> <aside aria-label="Limitations" class="starlight-aside starlight-aside--caution"> <p class="starlight-aside__title" aria-hidden="true"> <svg aria-hidden="true" class="starlight-aside__icon astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 16a1 1 0 1 0 0 2 1 1 0 0 0 0-2Zm10.67 1.47-8.05-14a3 3 0 0 0-5.24 0l-8 14A3 3 0 0 0 3.94 22h16.12a3 3 0 0 0 2.61-4.53Zm-1.73 2a1 1 0 0 1-.88.51H3.94a1 1 0 0 1-.88-.51 1 1 0 0 1 0-1l8-14a1 1 0 0 1 1.78 0l8.05 14a1 1 0 0 1 .05 1.02v-.02ZM12 8a1 1 0 0 0-1 1v4a1 1 0 0 0 2 0V9a1 1 0 0 0-1-1Z"/></svg> Limitations </p> <section class="starlight-aside__content"> <p>The <em>Import existing translations</em> and <em>Push Sources</em> options are only available for file-based projects.</p> </section> </aside> <h4 id="import-existing-translations"><a href="#import-existing-translations">Import Existing Translations</a></h4> <p>To import existing translations from your repo, select one of the following options:</p> <ul> <li><strong>One-time translation import after the branch is connected</strong></li> <li><strong>Always import new translations from the repository</strong></li> </ul> <p>By default, the first option is selected to import translations only once. Alternatively, you can clear both options if you don’t want to import translations from your repo.</p> <h4 id="push-sources"><a href="#push-sources">Push Sources</a></h4> <p>By default, sources are not pushed to the repo with translations. Although, if you perform a source text review in your Crowdin Enterprise project and would like to push the changes made to your source files on Crowdin Enterprise back to your repo, click <strong>Edit</strong>, select <em>Push Sources</em> in the integration settings, and click <strong>Save</strong>.</p> <h4 id="sync-schedule"><a href="#sync-schedule">Sync Schedule</a></h4> <p>The synchronization is processed every hour automatically. If necessary, you can change the update interval in the integration settings. To configure the synchronization schedule – click <strong>Edit</strong>, scroll down to the <em>Sync Schedule</em>, set the preferred interval, and click <strong>Save</strong>.</p> <p>There are cases when it’s necessary to disable translations from being pushed to the repo temporarily. In this situation, click <strong>Edit</strong>, clear <em>Sync Schedule</em> in the integration settings, and click <strong>Save</strong>. When ready to sync translations with the repo, select the <em>Sync Schedule</em>, and click <strong>Save</strong>.</p> <p>Not depending on the synchronization settings, the source files’ changes on the repo will still be synced with Crowdin Enterprise continuously.</p> <h3 id="branches-to-sync-automatically"><a href="#branches-to-sync-automatically">Branches to Sync Automatically</a></h3> <p>When you set up the integration, you select existing repository branches to be added to the Crowdin Enterprise project. To add future branches from Azure Repos to Crowdin Enterprise automatically, create a pattern for the branch names in the integration settings.</p> <p>For example, you add a pattern *<em>feature</em> in the Azure Repos integration settings. In this case, the future branches that contain this word at the end of the title will be added to the project.</p> <p>To add a pattern for branch names, follow these steps:</p> <ol role="list" class="sl-steps"> <li>Click <strong>Edit</strong> in the Azure Repos integration section.</li> <li>In the appeared dialog, scroll down to the <em>Branches to Sync Automatically</em>.</li> <li>In the <em>Branches to Sync Automatically</em> field, use wildcard selectors such as <code dir="auto">*</code>, <code dir="auto">?</code>, <code dir="auto">[set]</code>, <code dir="auto">\</code> and others to identify the necessary branches.</li> <li>Click <strong>Save</strong>.</li> </ol> <h3 id="default-configuration-file-name"><a href="#default-configuration-file-name">Default Configuration File Name</a></h3> <p><code dir="auto">crowdin.yml</code> is the default file name that is used for automatically synchronized branches. To change the default settings, click <strong>Edit</strong>, specify the preferred name in the <em>Default configuration file name</em> field in the integration settings, and click <strong>Save</strong>.</p> <p>If you don’t specify your custom configuration file name for automatically synchronized branches, and the integration doesn’t find a configuration file with the default name <code dir="auto">crowdin.yml</code> in the root of the branch, these branches will be marked in the integration settings with a red icon with an exclamation mark saying “Not Ready. Check the configuration”.</p> <h2 id="selecting-content-for-synchronization"><a href="#selecting-content-for-synchronization">Selecting Content for Synchronization</a></h2> <p>To make integration work, you need to specify which source files should be translated and how Crowdin Enterprise should structure translated files in your repository.</p> <aside aria-label="Tip" class="starlight-aside starlight-aside--tip"> <p class="starlight-aside__title" aria-hidden="true"> <svg aria-hidden="true" class="starlight-aside__icon astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path fill-rule="evenodd" d="M1.44 8.855v-.001l3.527-3.516c.34-.344.802-.541 1.285-.548h6.649l.947-.947c3.07-3.07 6.207-3.072 7.62-2.868a1.821 1.821 0 0 1 1.557 1.557c.204 1.413.203 4.55-2.868 7.62l-.946.946v6.649a1.845 1.845 0 0 1-.549 1.286l-3.516 3.528a1.844 1.844 0 0 1-3.11-.944l-.858-4.275-4.52-4.52-2.31-.463-1.964-.394A1.847 1.847 0 0 1 .98 10.693a1.843 1.843 0 0 1 .46-1.838Zm5.379 2.017-3.873-.776L6.32 6.733h4.638l-4.14 4.14Zm8.403-5.655c2.459-2.46 4.856-2.463 5.89-2.33.134 1.035.13 3.432-2.329 5.891l-6.71 6.71-3.561-3.56 6.71-6.711Zm-1.318 15.837-.776-3.873 4.14-4.14v4.639l-3.364 3.374Z" clip-rule="evenodd"/><path d="M9.318 18.345a.972.972 0 0 0-1.86-.561c-.482 1.435-1.687 2.204-2.934 2.619a8.22 8.22 0 0 1-1.23.302c.062-.365.157-.79.303-1.229.415-1.247 1.184-2.452 2.62-2.935a.971.971 0 1 0-.62-1.842c-.12.04-.236.084-.35.13-2.02.828-3.012 2.588-3.493 4.033a10.383 10.383 0 0 0-.51 2.845l-.001.016v.063c0 .536.434.972.97.972H2.24a7.21 7.21 0 0 0 .878-.065c.527-.063 1.248-.19 2.02-.447 1.445-.48 3.205-1.472 4.033-3.494a5.828 5.828 0 0 0 .147-.407Z"/></svg> Tip </p> <section class="starlight-aside__content"> <p>If you see a red icon with an exclamation mark next to the service branch name, it means that you haven’t selected any content for synchronization.</p> </section> </aside> <p>There are two ways you can specify content for synchronization:</p> <ul> <li>Configuring online</li> <li>Configuring manually by creating a configuration file</li> </ul> <h3 id="configuring-online"><a href="#configuring-online">Configuring Online</a></h3> <p>This procedure is the same for all integrations with version control systems (VCS).</p> <div class="read-more astro-szj46hnz"> <svg aria-hidden="true" class="icon astro-szj46hnz astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.17 2.06A13.1 13.1 0 0 0 19 1.87a12.94 12.94 0 0 0-7 2.05 12.94 12.94 0 0 0-7-2 13.1 13.1 0 0 0-2.17.19 1 1 0 0 0-.83 1v12a1 1 0 0 0 1.17 1 10.9 10.9 0 0 1 8.25 1.91l.12.07h.11a.91.91 0 0 0 .7 0h.11l.12-.07A10.899 10.899 0 0 1 20.83 16 1 1 0 0 0 22 15V3a1 1 0 0 0-.83-.94ZM11 15.35a12.87 12.87 0 0 0-6-1.48H4v-10c.333-.02.667-.02 1 0a10.86 10.86 0 0 1 6 1.8v9.68Zm9-1.44h-1a12.87 12.87 0 0 0-6 1.48V5.67a10.86 10.86 0 0 1 6-1.8c.333-.02.667-.02 1 0v10.04Zm1.17 4.15a13.098 13.098 0 0 0-2.17-.19 12.94 12.94 0 0 0-7 2.05 12.94 12.94 0 0 0-7-2.05c-.727.003-1.453.066-2.17.19A1 1 0 0 0 2 19.21a1 1 0 0 0 1.17.79 10.9 10.9 0 0 1 8.25 1.91 1 1 0 0 0 1.16 0A10.9 10.9 0 0 1 20.83 20a1 1 0 0 0 1.17-.79 1 1 0 0 0-.83-1.15Z"/></svg> <span class="astro-szj46hnz"><p>Check <a href="/enterprise/configuring-vcs-integrations-online/">Configuring VCS Integrations Online</a> to get to know how to select content for synchronization online.</p></span> </div> <h3 id="creating-configuration-file"><a href="#creating-configuration-file">Creating Configuration File</a></h3> <p>The configuration file <code dir="auto">crowdin.yml</code> should be stored in the Azure Repos repository along with each separate branch that you want to translate, so Crowdin Enterprise knows what files exactly should be sent for translations.</p> <p>It should have the same structure as required for CLI, but your project’s credentials should not be stored in the file’s header for security reasons.</p> <div class="read-more astro-szj46hnz"> <svg aria-hidden="true" class="icon astro-szj46hnz astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.17 2.06A13.1 13.1 0 0 0 19 1.87a12.94 12.94 0 0 0-7 2.05 12.94 12.94 0 0 0-7-2 13.1 13.1 0 0 0-2.17.19 1 1 0 0 0-.83 1v12a1 1 0 0 0 1.17 1 10.9 10.9 0 0 1 8.25 1.91l.12.07h.11a.91.91 0 0 0 .7 0h.11l.12-.07A10.899 10.899 0 0 1 20.83 16 1 1 0 0 0 22 15V3a1 1 0 0 0-.83-.94ZM11 15.35a12.87 12.87 0 0 0-6-1.48H4v-10c.333-.02.667-.02 1 0a10.86 10.86 0 0 1 6 1.8v9.68Zm9-1.44h-1a12.87 12.87 0 0 0-6 1.48V5.67a10.86 10.86 0 0 1 6-1.8c.333-.02.667-.02 1 0v10.04Zm1.17 4.15a13.098 13.098 0 0 0-2.17-.19 12.94 12.94 0 0 0-7 2.05 12.94 12.94 0 0 0-7-2.05c-.727.003-1.453.066-2.17.19A1 1 0 0 0 2 19.21a1 1 0 0 0 1.17.79 10.9 10.9 0 0 1 8.25 1.91 1 1 0 0 0 1.16 0A10.9 10.9 0 0 1 20.83 20a1 1 0 0 0 1.17-.79 1 1 0 0 0-.83-1.15Z"/></svg> <span class="astro-szj46hnz"><p>Read more about <a href="/developer/configuration-file/">creating a configuration file</a>.</p></span> </div> <h2 id="working-with-multiple-repositories-within-one-project"><a href="#working-with-multiple-repositories-within-one-project">Working with Multiple Repositories within One Project</a></h2> <p>If you’re working with a multi-platform product that has versions for different operating systems, you may want to connect multiple repositories that contain source files for each operating system. In this case, localization resources (e.g., TMs, Glossaries) and translations could be used more efficiently, reducing the time needed for project localization.</p> <p>To add another repository, follow these steps:</p> <ol role="list" class="sl-steps"> <li>Open your project and select <strong>Integrations</strong> on the left sidebar.</li> <li>Click on <strong>Azure Repos</strong> in the Integrations list.</li> <li>Click <strong>Add Repository</strong>.</li> <li>Configure the integration with the new repository according to your needs and preferences.</li> </ol> <h2 id="checking-the-status-of-synchronization"><a href="#checking-the-status-of-synchronization">Checking the Status of Synchronization</a></h2> <p>Once the integration is set up, all related information is stored in <strong>Integrations > Azure Repos</strong>.</p> <p>After the integration is connected, the settings can be updated only by the project member who configured it. All project managers except the person who configured the integration will see the <strong>Edit</strong> button disabled with the following message when hovering over it: <code dir="auto">Integration was configured by {Full Name} ({username})</code>.</p> <p>By default, synchronization is processed every hour automatically. If you need to launch the synchronization immediately – click <strong>Sync Now</strong>.</p> <img src="/_astro/integration_sync_now.Cv5CQDFU_Z1srwbY.webp" alt="Integration Sync Now" width="2328" height="547" loading="lazy" decoding="async"> <p>Alternatively, if you need to sync only one branch separately, click <svg width="1em" height="1em" class="inline-icon" data-icon="mdi:dots-vertical"> <symbol id="ai:mdi:dots-vertical" viewBox="0 0 24 24"><path fill="currentColor" d="M12 16a2 2 0 0 1 2 2a2 2 0 0 1-2 2a2 2 0 0 1-2-2a2 2 0 0 1 2-2m0-6a2 2 0 0 1 2 2a2 2 0 0 1-2 2a2 2 0 0 1-2-2a2 2 0 0 1 2-2m0-6a2 2 0 0 1 2 2a2 2 0 0 1-2 2a2 2 0 0 1-2-2a2 2 0 0 1 2-2"/></symbol><use href="#ai:mdi:dots-vertical"></use> </svg> on the needed branch and select <strong>Sync branch</strong>.</p> <h2 id="uploading-translations-from-repo"><a href="#uploading-translations-from-repo">Uploading Translations from Repo</a></h2> <p>By default, the translations stored on the repo are uploaded to Crowdin Enterprise during the first synchronization only. To upload translations to Crowdin Enterprise manually, click <svg width="1em" height="1em" viewBox="0 0 24 24" class="inline-icon" data-icon="mdi:dots-vertical"> <use href="#ai:mdi:dots-vertical"></use> </svg> icon next to the <strong>Sync Now</strong> button, and click <strong>Sync Translations to Crowdin Enterprise</strong>. The integration will upload existing translations to your Crowdin Enterprise project.</p> <aside aria-label="Limitations" class="starlight-aside starlight-aside--caution"> <p class="starlight-aside__title" aria-hidden="true"> <svg aria-hidden="true" class="starlight-aside__icon astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 16a1 1 0 1 0 0 2 1 1 0 0 0 0-2Zm10.67 1.47-8.05-14a3 3 0 0 0-5.24 0l-8 14A3 3 0 0 0 3.94 22h16.12a3 3 0 0 0 2.61-4.53Zm-1.73 2a1 1 0 0 1-.88.51H3.94a1 1 0 0 1-.88-.51 1 1 0 0 1 0-1l8-14a1 1 0 0 1 1.78 0l8.05 14a1 1 0 0 1 .05 1.02v-.02ZM12 8a1 1 0 0 0-1 1v4a1 1 0 0 0 2 0V9a1 1 0 0 0-1-1Z"/></svg> Limitations </p> <section class="starlight-aside__content"> <p>The <em>Sync Translations to Crowdin Enterprise</em> option is available for file-based projects only.</p> </section> </aside> <h2 id="qa"><a href="#qa">Q&A</a></h2> <details class="bg-gray-200 dark:bg-gray-700 p-4 mt-4"> <summary> <strong class="text-base font-semibold">How can I avoid unnecessary application builds triggered by commits from Crowdin Enterprise?</strong> </summary> <div class="px-2"> <p>Since VCS integrations in Crowdin Enterprise use API to commit files but not Git, each file is committed separately.</p><p>Here are a few recommendations that might help solve similar situations:</p><ul> <li>Use the <code dir="auto">export_languages</code> option to skip commits from languages you’re not interested in yet. Read more about the <a href="/developer/configuration-file/#export-languages">Export languages parameter</a>.</li> <li>Use the <code dir="auto">[ci skip]</code> tag in the commit messages to skip unnecessary builds. Read more about the <a href="/developer/configuration-file/#commit-message">Commit Message parameter</a>.</li> <li>Configure the preferred sync interval using <a href="#synchronization-settings">Sync Schedule</a> (e.g., set the sync once in 24 hours).</li> <li>Squash commits when merging a localization branch to keep the master branch history clean and uncluttered.</li> </ul> </div> </details> </div> <footer class="sl-flex astro-3yyafb3n"> <div class="meta sl-flex astro-3yyafb3n"> <a href="https://github.com/crowdin/docs/edit/main/src/content/docs/enterprise/integrations/azure-repos.mdx" class="sl-flex astro-eez2twj6"><svg aria-hidden="true" class="astro-eez2twj6 astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.2em;"><path d="M22 7.24a1 1 0 0 0-.29-.71l-4.24-4.24a1 1 0 0 0-1.1-.22 1 1 0 0 0-.32.22l-2.83 2.83L2.29 16.05a1 1 0 0 0-.29.71V21a1 1 0 0 0 1 1h4.24a1 1 0 0 0 .76-.29l10.87-10.93L21.71 8c.1-.1.17-.2.22-.33a1 1 0 0 0 0-.24v-.14l.07-.05ZM6.83 20H4v-2.83l9.93-9.93 2.83 2.83L6.83 20ZM18.17 8.66l-2.83-2.83 1.42-1.41 2.82 2.82-1.41 1.42Z"/></svg> Edit page</a> </div> <div class="pagination-links astro-u2l5gyhi" dir="ltr"> </div> </footer> <div class="w-full flex astro-sz7xmlte"><div class="mx-auto astro-sz7xmlte"><div class="flex flex-col border p-3 rounded-xl w-72"> <div id="vote-buttons" class="flex gap-4 mx-auto"> <span>Was this page helpful?</span> <div class="flex gap-3"> <svg width="20" height="20" id="like" class="!mt-1 cursor-pointer hover:text-accent-700" data-icon="mdi:thumb-up"> <symbol id="ai:mdi:thumb-up" viewBox="0 0 24 24"><path fill="currentColor" d="M23 10a2 2 0 0 0-2-2h-6.32l.96-4.57c.02-.1.03-.21.03-.32c0-.41-.17-.79-.44-1.06L14.17 1L7.59 7.58C7.22 7.95 7 8.45 7 9v10a2 2 0 0 0 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73zM1 21h4V9H1z"/></symbol><use href="#ai:mdi:thumb-up"></use> </svg> <svg width="20" height="20" id="dislike" class="!mt-1 cursor-pointer hover:text-accent-700" data-icon="mdi:thumb-down"> <symbol id="ai:mdi:thumb-down" viewBox="0 0 24 24"><path fill="currentColor" d="M19 15h4V3h-4m-4 0H6c-.83 0-1.54.5-1.84 1.22l-3.02 7.05c-.09.23-.14.47-.14.73v2a2 2 0 0 0 2 2h6.31l-.95 4.57c-.02.1-.03.2-.03.31c0 .42.17.79.44 1.06L9.83 23l6.58-6.59c.37-.36.59-.86.59-1.41V5a2 2 0 0 0-2-2"/></symbol><use href="#ai:mdi:thumb-down"></use> </svg> </div> </div> <div id="feedback-form" class="mt-2 hidden"> <div> <textarea id="feedback-comment" class="w-full p-2 border border-gray-300 rounded-md resize-none text-base" rows="3" maxlength="250" placeholder="Tell us more..."></textarea> </div> <button id="submit-button" class="bg-accent-600 hover:bg-accent-700 text-white py-1 px-4 !mt-1 rounded-md cursor-pointer transition"> Submit </button> </div> <span id="feedback-success" class="hidden text-accent-800 mx-auto">Thank you for your feedback!</span> </div> </div></div> </div> </div> </main> </div> </div> </div> </div> </body></html>