CINXE.COM

In-Context | Developer Portal

<!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>In-Context | Developer Portal</title><link rel="canonical" href="https://support.crowdin.com/developer/in-context-localization/"/><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 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.10"/><meta name="generator" content="Starlight v0.28.6"/><meta property="og:title" content="In-Context"/><meta property="og:type" content="article"/><meta property="og:url" content="https://support.crowdin.com/developer/in-context-localization/"/><meta property="og:locale" content="en"/><meta property="og:description" content="Translate your web application directly in the real-time context"/><meta property="og:site_name" content="Developer Portal"/><meta name="twitter:card" content="summary_large_image"/><meta name="description" content="Translate your web application directly in the real-time context"/> <meta property="og:image" content="https://support.crowdin.com/og/developer/capabilities/in-context.png"> <meta name="twitter:image" content="https://support.crowdin.com/og/developer/capabilities/in-context.png"> <script src="/src/scripts/helpscout.js" defer></script> <style> #developer-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.DIyL8RFU.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.BV5E3Qmv.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"> 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"> 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"> 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"> 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"> 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"> Community </a> </li> </ul> </div> </div> <div class="sl-flex astro-kmkmnagf"> <site-search data-translations="{&#34;placeholder&#34;:&#34;Search&#34;}" 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> </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="170wlro" 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="/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 &amp; 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> </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="Enterprise Help"><sl-sidebar-state-persist data-hash="0mapk94" 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/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> </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 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/" 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> </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="Developer Portal"><sl-sidebar-state-persist data-hash="0981s9n" 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-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> </ul> </details> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details open 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/" aria-current="page" 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> </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="#quick-demo" data-shb-heading="Quick Demo" class="astro-4elwmllm" style="--depth: 0;"> <span class="astro-7vjlygkt">Quick Demo</span> </a> </li><li class="astro-4elwmllm" style="--depth: 0;"> <a href="#integration" data-shb-heading="Integration" class="astro-4elwmllm" style="--depth: 0;"> <span class="astro-7vjlygkt">Integration</span> </a> <ul class="isMobile astro-4elwmllm" style="--depth: 1;"> <li class="astro-4elwmllm" style="--depth: 1;"> <a href="#adding-string-urls-to-context" data-shb-heading="Adding String URLs to Context" class="astro-4elwmllm" style="--depth: 1;"> <span class="astro-7vjlygkt">Adding String URLs to Context</span> </a> </li> </ul> </li><li class="astro-4elwmllm" style="--depth: 0;"> <a href="#optional-parameters" data-shb-heading="Optional Parameters" class="astro-4elwmllm" style="--depth: 0;"> <span class="astro-7vjlygkt">Optional Parameters</span> </a> <ul class="isMobile astro-4elwmllm" style="--depth: 1;"> <li class="astro-4elwmllm" style="--depth: 1;"> <a href="#texts-preloading" data-shb-heading="Texts Preloading" class="astro-4elwmllm" style="--depth: 1;"> <span class="astro-7vjlygkt">Texts Preloading</span> </a> </li><li class="astro-4elwmllm" style="--depth: 1;"> <a href="#translation-button-always-visible" data-shb-heading="Translation Button Always Visible" class="astro-4elwmllm" style="--depth: 1;"> <span class="astro-7vjlygkt">Translation Button Always Visible</span> </a> </li><li class="astro-4elwmllm" style="--depth: 1;"> <a href="#before-commit-callback" data-shb-heading="Before Commit Callback" class="astro-4elwmllm" style="--depth: 1;"> <span class="astro-7vjlygkt">Before Commit Callback</span> </a> </li><li class="astro-4elwmllm" style="--depth: 1;"> <a href="#before-dom-insert-callback" data-shb-heading="Before DOM Insert Callback" class="astro-4elwmllm" style="--depth: 1;"> <span class="astro-7vjlygkt">Before DOM Insert Callback</span> </a> </li><li class="astro-4elwmllm" style="--depth: 1;"> <a href="#close-the-in-context-overlay-callback" data-shb-heading="Close the In-Context Overlay Callback" class="astro-4elwmllm" style="--depth: 1;"> <span class="astro-7vjlygkt">Close the In-Context Overlay Callback</span> </a> </li> </ul> </li><li class="astro-4elwmllm" style="--depth: 0;"> <a href="#adding-screenshots-via-in-context" data-shb-heading="Adding Screenshots via In-Context" class="astro-4elwmllm" style="--depth: 0;"> <span class="astro-7vjlygkt">Adding Screenshots via In-Context</span> </a> </li><li class="astro-4elwmllm" style="--depth: 0;"> <a href="#troubleshooting-and-common-questions" data-shb-heading="Troubleshooting and Common Questions" class="astro-4elwmllm" style="--depth: 0;"> <span class="astro-7vjlygkt">Troubleshooting and Common Questions</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="#quick-demo" data-shb-heading="Quick Demo" class="astro-4elwmllm" style="--depth: 0;"> <span class="astro-7vjlygkt">Quick Demo</span> </a> </li><li class="astro-4elwmllm" style="--depth: 0;"> <a href="#integration" data-shb-heading="Integration" class="astro-4elwmllm" style="--depth: 0;"> <span class="astro-7vjlygkt">Integration</span> </a> <ul class="astro-4elwmllm" style="--depth: 1;"> <li class="astro-4elwmllm" style="--depth: 1;"> <a href="#adding-string-urls-to-context" data-shb-heading="Adding String URLs to Context" class="astro-4elwmllm" style="--depth: 1;"> <span class="astro-7vjlygkt">Adding String URLs to Context</span> </a> </li> </ul> </li><li class="astro-4elwmllm" style="--depth: 0;"> <a href="#optional-parameters" data-shb-heading="Optional Parameters" class="astro-4elwmllm" style="--depth: 0;"> <span class="astro-7vjlygkt">Optional Parameters</span> </a> <ul class="astro-4elwmllm" style="--depth: 1;"> <li class="astro-4elwmllm" style="--depth: 1;"> <a href="#texts-preloading" data-shb-heading="Texts Preloading" class="astro-4elwmllm" style="--depth: 1;"> <span class="astro-7vjlygkt">Texts Preloading</span> </a> </li><li class="astro-4elwmllm" style="--depth: 1;"> <a href="#translation-button-always-visible" data-shb-heading="Translation Button Always Visible" class="astro-4elwmllm" style="--depth: 1;"> <span class="astro-7vjlygkt">Translation Button Always Visible</span> </a> </li><li class="astro-4elwmllm" style="--depth: 1;"> <a href="#before-commit-callback" data-shb-heading="Before Commit Callback" class="astro-4elwmllm" style="--depth: 1;"> <span class="astro-7vjlygkt">Before Commit Callback</span> </a> </li><li class="astro-4elwmllm" style="--depth: 1;"> <a href="#before-dom-insert-callback" data-shb-heading="Before DOM Insert Callback" class="astro-4elwmllm" style="--depth: 1;"> <span class="astro-7vjlygkt">Before DOM Insert Callback</span> </a> </li><li class="astro-4elwmllm" style="--depth: 1;"> <a href="#close-the-in-context-overlay-callback" data-shb-heading="Close the In-Context Overlay Callback" class="astro-4elwmllm" style="--depth: 1;"> <span class="astro-7vjlygkt">Close the In-Context Overlay Callback</span> </a> </li> </ul> </li><li class="astro-4elwmllm" style="--depth: 0;"> <a href="#adding-screenshots-via-in-context" data-shb-heading="Adding Screenshots via In-Context" class="astro-4elwmllm" style="--depth: 0;"> <span class="astro-7vjlygkt">Adding Screenshots via In-Context</span> </a> </li><li class="astro-4elwmllm" style="--depth: 0;"> <a href="#troubleshooting-and-common-questions" data-shb-heading="Troubleshooting and Common Questions" class="astro-4elwmllm" style="--depth: 0;"> <span class="astro-7vjlygkt">Troubleshooting and Common Questions</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">In-Context</h1> </div> </div> <div class="content-panel astro-7nkwcw3z"> <div class="sl-container astro-7nkwcw3z"> <div class="sl-markdown-content"> <p>Crowdin In-Context works with the help of a one-line Javascript snippet and pseudo-language package. It creates a pseudo-language package based on the localization files uploaded to your project, which later will be integrated into your application as an additional localization language.</p> <h2 id="quick-demo"><a href="#quick-demo">Quick Demo</a></h2> <div style="margin-top: 1.5rem; position: relative; width: 100%; height: 0; padding-bottom: 56.25%; box-shadow: 0 5px 20px rgb(0 0 0 / 10%); border-radius: 6px;overflow:hidden;"><iframe style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;" height="100%" width="100%" src="https://www.youtube.com/embed/ktfw7UsW3qw" allow="autoplay; encrypted-media"></iframe></div> <p>In-Context localization is tied up with your Crowdin project, where translatable files are stored. Translations made using In-Context are added to your project in the same way as translations made directly in the Editor.</p> <p>This tool provides a view of your application with editable texts, so the translation process is real-time visible. Even the dynamic part of the application and strings containing placeholders can be translated this way.</p> <div><a class="sl-link-button not-content primary astro-xwgiixxa" href="https://demo.crowdin.com/" target="_blank"> See in Action <svg aria-hidden="true" class="astro-xwgiixxa astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M19.33 10.18a1 1 0 0 1-.77 0 1 1 0 0 1-.62-.93l.01-1.83-8.2 8.2a1 1 0 0 1-1.41-1.42l8.2-8.2H14.7a1 1 0 0 1 0-2h4.25a1 1 0 0 1 1 1v4.25a1 1 0 0 1-.62.93Z"/><path d="M11 4a1 1 0 1 1 0 2H7a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1v-4a1 1 0 1 1 2 0v4a3 3 0 0 1-3 3H7a3 3 0 0 1-3-3V7a3 3 0 0 1 3-3h4Z"/></svg> </a> <a class="sl-link-button not-content secondary astro-xwgiixxa" href="https://crowdin.com/demo-request" target="_blank"> Get Personalized Demo <svg aria-hidden="true" class="astro-xwgiixxa astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><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> </a> </div> <p>Integrated pseudo-language contains special identifiers instead of the original texts. Thus when switching your app to that language, all labels are converted to special identifiers. Javascript searches for those identifiers and replaces them with editable labels. So, the In-context page of your web app will look the same as your application, with the only difference that translatable strings will be editable.</p> <img src="/_astro/in_context_strings.DDMkRL1p_Z74a1l.webp" alt="In-Context View" width="1176" height="1060" loading="lazy" decoding="async"> <p>Translations are made directly in the app, with no need to open the Editor. A simplified version of Crowdin Editor will be displayed, with all the functionality (TM, machine translation, approve/vote option, comments, terms) provided. Thus, it’s easier to make and review translations since translators can preview them in a real context.</p> <h2 id="integration"><a href="#integration">Integration</a></h2> <p>There are two common approaches to integrate Crowdin In-Context with your application:</p> <ul> <li> <p><strong>Staging or translation environment</strong> If you are not planning to invite your end-users to help with translations or not considering using a “translation mode” in your production application, integrating Crowdin In-Context to your staging or dedicated translation app environment would be a good solution.</p> </li> <li> <p><strong>Production environment</strong> Crowdin In-Context doesn’t require any code changes in your application so that you can use it even on production. You decide how to turn it on and which segment of users will use it. The most common use cases are the following:</p> <ul> <li>You can create a mirror website that is a complete copy of your application but under a different URL (for example, instead of <code dir="auto">crowdin.com</code> it can be <code dir="auto">translate.crowdin.com</code>), where translators will make translations as if it was your actual application.</li> <li>You can also add In-context as an additional language. So, when translators open your application, they will choose this additional language from the list, which will open In-context for them.</li> </ul> </li> </ul> <p>Follow the integration setup guide in your Crowdin project to set up In-Context. The guide can be found in your project, under <strong>Tools > In-Context</strong>.</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="product" 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-38" id="tab-38" aria-selected="true" tabindex="0" class="astro-esqgolmp"> Crowdin </a> </li><li role="presentation" class="tab astro-esqgolmp"> <a role="tab" href="#tab-panel-39" id="tab-39" aria-selected="false" tabindex="-1" class="astro-esqgolmp"> Crowdin Enterprise </a> </li> </ul> </div> <section id="tab-panel-38" aria-labelledby="tab-38" role="tabpanel" tabindex="0"> <img src="/_astro/in_context_tab.C4CMkfKL_Z5G2e8.webp" alt="In-Context Tab in Crowdin" width="3024" height="1700" loading="lazy" decoding="async"> </section><section id="tab-panel-39" aria-labelledby="tab-39" role="tabpanel" tabindex="0" hidden> <img src="/_astro/in_context_tab_e.DAM1DckO_2kLmmS.webp" alt="In-Context Tab in Enterprise" width="2550" height="1784" loading="lazy" decoding="async"> </section> <starlight-tabs-restore class="astro-esqgolmp"></starlight-tabs-restore> </starlight-tabs> <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>If you use CSP, ensure to add the following rules to the policy: for loading the In-Context resource files, for CORS requests to <code>&#x3C;organization_domain>.crowdin.com</code>.</p> </section> </aside> <p>After the integration is successfully set up and you have refreshed your application, you should see the invitation dialog and Crowdin login box.</p> <img src="/_astro/in_context_login.D_4Hzopc_1o4Meq.webp" alt="Login Window" width="1494" height="816" loading="lazy" decoding="async"> <h3 id="adding-string-urls-to-context"><a href="#adding-string-urls-to-context">Adding String URLs to Context</a></h3> <p>When integrating In-Context for your website, you can add an optional script that can collect and add URLs to the <a href="/online-editor/#requesting-context">context section</a> of each string used on the website.</p> <p>As a result, translators can click the URL for a particular string and be redirected to the website page where this string is used and get additional context for accurate translation.</p> <p>To add string URLs to context, follow these steps:</p> <ol role="list" class="sl-steps"> <li>Copy the following JavaScript snippet and paste it right after the primary In-Context JavaScript snippet (which could be found in your Crowdin project’s <strong>Tools</strong> tab) at the <code dir="auto">head</code> section on every page with localizable text. <div class="expressive-code"><link rel="stylesheet" href="/_astro/ec.1su9a.css"><script type="module" src="/_astro/ec.8zarh.js"></script><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="html"><code><div class="ec-line"><div class="code"><span style="--1:#8D46B4"><span style="--0:#7FDBCA">&#x3C;</span><span style="--0:#CAECE6">script</span><span style="--0:#7FDBCA"> </span></span><span style="--0:#C5E478;--1:#3C63B3">type</span><span style="--0:#7FDBCA;--1:#8D46B4">=</span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#9B504E">text/javascript</span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#7FDBCA;--1:#8D46B4">></span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#C792EA;--1:#8D46B4">var </span><span style="--0:#D7DBE0;--1:#403F53">_jipt</span><span style="--0:#C792EA;--1:#8D46B4"> =</span><span style="--0:#D6DEEB;--1:#403F53"> [];</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#7FDBCA;--1:#097174">_jipt</span><span style="--0:#C792EA;--1:#8D46B4">.</span><span style="--0:#82AAFF;--1:#3C63B3">push</span><span style="--0:#D6DEEB;--1:#403F53">([</span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#ECC48D;--1:#9B504E">project</span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#D6DEEB;--1:#403F53">, </span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#ECC48D;--1:#9B504E">your_project_identifier</span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#D6DEEB;--1:#403F53">]);</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#7FDBCA;--1:#097174">_jipt</span><span style="--0:#C792EA;--1:#8D46B4">.</span><span style="--0:#82AAFF;--1:#3C63B3">push</span><span style="--0:#D6DEEB;--1:#403F53">([</span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#ECC48D;--1:#9B504E">preload_texts</span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#D6DEEB;--1:#403F53">, </span><span style="--0:#FF5874;--1:#A54A4A">false</span><span style="--0:#D6DEEB;--1:#403F53">]);</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#7FDBCA;--1:#097174">_jipt</span><span style="--0:#C792EA;--1:#8D46B4">.</span><span style="--0:#82AAFF;--1:#3C63B3">push</span><span style="--0:#D6DEEB;--1:#403F53">([</span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#ECC48D;--1:#9B504E">edit_strings_context</span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#D6DEEB;--1:#403F53">, </span><span style="--0:#C792EA;--1:#8D46B4">function</span><span style="--0:#D9F5DD;--1:#111111">(</span><span style="--0:#D7DBE0;--1:#403F53">context</span><span style="--0:#D9F5DD;--1:#111111">)</span><span style="--0:#D6DEEB;--1:#403F53"> {</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#C792EA;--1:#8D46B4">var </span><span style="--0:#D7DBE0;--1:#403F53">separator</span><span style="--0:#C792EA;--1:#8D46B4"> = </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#F78C6C;--1:#AA0982">\n</span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#D6DEEB;--1:#403F53">;</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#C792EA;--1:#8D46B4">var </span><span style="--0:#D7DBE0;--1:#403F53">lineStart</span><span style="--0:#C792EA;--1:#8D46B4"> = </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#9B504E">* </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#D6DEEB;--1:#403F53">;</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#C792EA;--1:#8D46B4">var </span><span style="--0:#D7DBE0;--1:#403F53">contextParts</span><span style="--0:#C792EA;--1:#8D46B4"> = </span><span style="--0:#7FDBCA;--1:#097174">context</span><span style="--0:#C792EA;--1:#8D46B4">.</span><span style="--0:#82AAFF;--1:#3C63B3">split</span><span style="--1:#403F53"><span style="--0:#D6DEEB">(</span><span style="--0:#D7DBE0">separator</span><span style="--0:#D6DEEB">);</span></span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#C792EA;--1:#8D46B4">var </span><span style="--0:#D7DBE0;--1:#403F53">linkCount</span><span style="--0:#C792EA;--1:#8D46B4"> = </span><span style="--0:#F78C6C;--1:#AA0982">0</span><span style="--0:#D6DEEB;--1:#403F53">;</span></div></div><div class="ec-line"><div class="code"> </div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#C792EA;--1:#8D46B4">for</span><span style="--0:#D6DEEB;--1:#403F53">(</span><span style="--0:#C792EA;--1:#8D46B4">var </span><span style="--0:#D7DBE0;--1:#403F53">i</span><span style="--0:#C792EA;--1:#8D46B4"> </span><span style="--0:#7FDBCA;--1:#097174">in</span><span style="--1:#403F53"><span style="--0:#D6DEEB"> </span><span style="--0:#D7DBE0">contextParts</span><span style="--0:#D6DEEB">) {</span></span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#C792EA;--1:#8D46B4">var </span><span style="--0:#D7DBE0;--1:#403F53">line</span><span style="--0:#C792EA;--1:#8D46B4"> = </span><span style="--1:#403F53"><span style="--0:#D7DBE0">contextParts</span><span style="--0:#D6DEEB">[</span><span style="--0:#D7DBE0">i</span><span style="--0:#D6DEEB">];</span></span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#C792EA;--1:#8D46B4">if</span><span style="--1:#403F53"><span style="--0:#D6DEEB">(</span><span style="--0:#D7DBE0">lineStart</span><span style="--0:#D6DEEB"> </span></span><span style="--0:#C792EA;--1:#8D46B4">+</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#7FDBCA;--1:#097174">window</span><span style="--0:#C792EA;--1:#8D46B4">.</span><span style="--0:#FAF39F;--1:#111111">location</span><span style="--0:#C792EA;--1:#8D46B4">.</span><span style="--0:#7FDBCA;--1:#097174">href</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#C792EA;--1:#8D46B4">===</span><span style="--1:#403F53"><span style="--0:#D6DEEB"> </span><span style="--0:#D7DBE0">line</span><span style="--0:#D6DEEB">) {</span></span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#C792EA;--1:#8D46B4">return</span><span style="--1:#403F53"><span style="--0:#D6DEEB"> </span><span style="--0:#D7DBE0">context</span><span style="--0:#D6DEEB">;</span></span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#D6DEEB;--1:#403F53"> </span></span><span style="--0:#D6DEEB;--1:#403F53">}</span></div></div><div class="ec-line"><div class="code"> </div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#C792EA;--1:#8D46B4">if</span><span style="--0:#D6DEEB;--1:#403F53">(</span><span style="--0:#7FDBCA;--1:#097174">line</span><span style="--0:#C792EA;--1:#8D46B4">.</span><span style="--0:#82AAFF;--1:#3C63B3">indexOf</span><span style="--1:#403F53"><span style="--0:#D6DEEB">(</span><span style="--0:#D7DBE0">lineStart</span><span style="--0:#D6DEEB">) </span></span><span style="--0:#C792EA;--1:#8D46B4">===</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">0</span><span style="--0:#D6DEEB;--1:#403F53">) {</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--1:#403F53"> </span></span><span style="--0:#D7DBE0;--1:#403F53">linkCount</span><span style="--0:#C792EA;--1:#8D46B4">++</span><span style="--0:#D6DEEB;--1:#403F53">;</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#D6DEEB;--1:#403F53"> </span></span><span style="--0:#D6DEEB;--1:#403F53">}</span></div></div><div class="ec-line"><div class="code"> </div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#C792EA;--1:#8D46B4">if</span><span style="--1:#403F53"><span style="--0:#D6DEEB">(</span><span style="--0:#D7DBE0">line</span><span style="--0:#D6DEEB"> </span></span><span style="--0:#C792EA;--1:#8D46B4">===</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#ECC48D;--1:#9B504E">And more...</span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#D6DEEB;--1:#403F53">) {</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#C792EA;--1:#8D46B4">return</span><span style="--1:#403F53"><span style="--0:#D6DEEB"> </span><span style="--0:#D7DBE0">context</span><span style="--0:#D6DEEB">;</span></span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#D6DEEB;--1:#403F53"> </span></span><span style="--0:#D6DEEB;--1:#403F53">}</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#D6DEEB;--1:#403F53"> </span></span><span style="--0:#D6DEEB;--1:#403F53">}</span></div></div><div class="ec-line"><div class="code"> </div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#C792EA;--1:#8D46B4">if</span><span style="--1:#403F53"><span style="--0:#D6DEEB">(</span><span style="--0:#D7DBE0">linkCount</span><span style="--0:#D6DEEB"> </span></span><span style="--0:#C792EA;--1:#8D46B4">&#x3C;</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">5</span><span style="--0:#D6DEEB;--1:#403F53">) {</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#C792EA;--1:#8D46B4">return</span><span style="--1:#403F53"><span style="--0:#D6DEEB"> </span><span style="--0:#D7DBE0">context</span><span style="--0:#D6DEEB"> </span></span><span style="--0:#C792EA;--1:#8D46B4">+</span><span style="--1:#403F53"><span style="--0:#D6DEEB"> </span><span style="--0:#D7DBE0">separator</span><span style="--0:#D6DEEB"> </span></span><span style="--0:#C792EA;--1:#8D46B4">+</span><span style="--1:#403F53"><span style="--0:#D6DEEB"> </span><span style="--0:#D7DBE0">lineStart</span><span style="--0:#D6DEEB"> </span></span><span style="--0:#C792EA;--1:#8D46B4">+</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#7FDBCA;--1:#097174">window</span><span style="--0:#C792EA;--1:#8D46B4">.</span><span style="--0:#FAF39F;--1:#111111">location</span><span style="--0:#C792EA;--1:#8D46B4">.</span><span style="--0:#7FDBCA;--1:#097174">href</span><span style="--0:#D6DEEB;--1:#403F53">;</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#D6DEEB;--1:#403F53"> </span></span><span style="--0:#D6DEEB;--1:#403F53">}</span></div></div><div class="ec-line"><div class="code"> </div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#C792EA;--1:#8D46B4">return</span><span style="--1:#403F53"><span style="--0:#D6DEEB"> </span><span style="--0:#D7DBE0">context</span><span style="--0:#D6DEEB"> </span></span><span style="--0:#C792EA;--1:#8D46B4">+</span><span style="--1:#403F53"><span style="--0:#D6DEEB"> </span><span style="--0:#D7DBE0">separator</span><span style="--0:#D6DEEB"> </span></span><span style="--0:#C792EA;--1:#8D46B4">+</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#ECC48D;--1:#9B504E">And more...</span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#D6DEEB;--1:#403F53">;</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#D6DEEB;--1:#403F53"> </span></span><span style="--0:#D6DEEB;--1:#403F53">}]);</span></div></div><div class="ec-line"><div class="code"><span style="--1:#8D46B4"><span style="--0:#7FDBCA">&#x3C;/</span><span style="--0:#CAECE6">script</span><span style="--0:#7FDBCA">></span></span></div></div></code></pre><div class="copy"><button title="Copy to clipboard" data-copied="Copied!" data-code="<script type=&#x22;text/javascript&#x22;> var _jipt = []; _jipt.push([&#x27;project&#x27;, &#x27;your_project_identifier&#x27;]); _jipt.push([&#x27;preload_texts&#x27;, false]); _jipt.push([&#x27;edit_strings_context&#x27;, function(context) { var separator = &#x22;\n&#x22;; var lineStart = &#x22;* &#x22;; var contextParts = context.split(separator); var linkCount = 0; for(var i in contextParts) { var line = contextParts[i]; if(lineStart + window.location.href === line) { return context; } if(line.indexOf(lineStart) === 0) { linkCount++; } if(line === &#x27;And more...&#x27;) { return context; } } if(linkCount < 5) { return context + separator + lineStart + window.location.href; } return context + separator + &#x27;And more...&#x27;; }]);</script>"><div></div></button></div></figure></div> Once finished, each website’s page you’d like to translate via In-Context should contain two JavaScript snippets: <ul> <li>Primary JavaScript snippet that launches the In-Context feature.</li> <li>Additional JavaScript snippet that collects and adds URLs to the source string context.</li> </ul> </li> <li>After adding JavaScript snippets, you should open each website page where In-Context is integrated. That will allow the additional JavaScript snippet to collect and add string URLs to your Crowdin project.</li> </ol> <p>When you add a new page to your website, upload the related source files to your Crowdin project. Afterward, repeat the steps above to collect and add URLs for strings from the new page.</p> <p>If some website page’s URL changes, open it in In-Context to refresh the string URLs collected initially.</p> <h2 id="optional-parameters"><a href="#optional-parameters">Optional Parameters</a></h2> <p>You can add these parameters to the <code dir="auto">_jipt</code> array in the configuration snippet.</p> <h3 id="texts-preloading"><a href="#texts-preloading">Texts Preloading</a></h3> <div class="expressive-code"><link rel="stylesheet" href="/_astro/ec.1su9a.css"><script type="module" src="/_astro/ec.8zarh.js"></script><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="js"><code><div class="ec-line"><div class="code"><span style="--0:#7FDBCA;--1:#097174">_jipt</span><span style="--0:#C792EA;--1:#8D46B4">.</span><span style="--0:#82AAFF;--1:#3C63B3">push</span><span style="--0:#D6DEEB;--1:#403F53">([</span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#ECC48D;--1:#9B504E">preload_texts</span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#D6DEEB;--1:#403F53">, </span><span style="--0:#FF5874;--1:#A54A4A">true</span><span style="--0:#D6DEEB;--1:#403F53">]);</span></div></div></code></pre><div class="copy"><button title="Copy to clipboard" data-copied="Copied!" data-code="_jipt.push([&#x27;preload_texts&#x27;, true]);"><div></div></button></div></figure></div> <p>Speeds up dynamic content displaying within the In-Context tool by preloading all source strings. Automatically disabled for large projects (5000+ strings). Acceptable values: true, false.</p> <h3 id="translation-button-always-visible"><a href="#translation-button-always-visible">Translation Button Always Visible</a></h3> <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="js"><code><div class="ec-line"><div class="code"><span style="--0:#7FDBCA;--1:#097174">_jipt</span><span style="--0:#C792EA;--1:#8D46B4">.</span><span style="--0:#82AAFF;--1:#3C63B3">push</span><span style="--0:#D6DEEB;--1:#403F53">([</span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#ECC48D;--1:#9B504E">touch_optimized</span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#D6DEEB;--1:#403F53">, </span><span style="--0:#FF5874;--1:#A54A4A">true</span><span style="--0:#D6DEEB;--1:#403F53">]);</span></div></div></code></pre><div class="copy"><button title="Copy to clipboard" data-copied="Copied!" data-code="_jipt.push([&#x27;touch_optimized&#x27;, true]);"><div></div></button></div></figure></div> <p>This option is enabled on touchscreens by default and makes the translation button next to each translatable string permanently visible instead of showing on hover. Acceptable values: true, false.</p> <h3 id="before-commit-callback"><a href="#before-commit-callback">Before Commit Callback</a></h3> <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="js"><code><div class="ec-line"><div class="code"><span style="--0:#7FDBCA;--1:#097174">_jipt</span><span style="--0:#C792EA;--1:#8D46B4">.</span><span style="--0:#82AAFF;--1:#3C63B3">push</span><span style="--0:#D6DEEB;--1:#403F53">([</span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#ECC48D;--1:#9B504E">before_commit</span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#D6DEEB;--1:#403F53">, </span><span style="--0:#C792EA;--1:#8D46B4">function</span><span style="--0:#D9F5DD;--1:#111111">(</span><span style="--1:#403F53"><span style="--0:#D7DBE0">source</span><span style="--0:#D6DEEB">, </span><span style="--0:#D7DBE0">translation</span><span style="--0:#D6DEEB">, </span><span style="--0:#D7DBE0">context</span><span style="--0:#D6DEEB">, </span><span style="--0:#D7DBE0">language_code</span></span><span style="--0:#D9F5DD;--1:#111111">)</span><span style="--0:#D6DEEB;--1:#403F53"> {</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#C792EA;--1:#8D46B4">return</span><span style="--1:#403F53"><span style="--0:#D6DEEB"> </span><span style="--0:#D7DBE0">status_obj</span><span style="--0:#D6DEEB">;</span></span></div></div><div class="ec-line"><div class="code"><span style="--0:#D6DEEB;--1:#403F53">}]);</span></div></div></code></pre><div class="copy"><button title="Copy to clipboard" data-copied="Copied!" data-code="_jipt.push([&#x27;before_commit&#x27;, function(source, translation, context, language_code) { return status_obj;}]);"><div></div></button></div></figure></div> <p>Function to validate the suggestion before committing.</p> <table><tbody><tr><td colSpan="2"><b>Parameters</b></td></tr><tr><td>source</td><td>Source text</td></tr><tr><td>translation</td><td>Translation text</td></tr><tr><td>context</td><td>Source string context</td></tr><tr><td>language_code</td><td>Target language code (<a href="/developer/language-codes/">language codes</a>)</td></tr><tr><td colSpan="2"><b>Return Values</b></td></tr><tr><td>status_obj</td><td>Object. The <code>status_obj.status</code> may be <code>“ok”</code>, <code>“error”</code> or <code>“corrected”</code>. In case of error, <code>status_obj.message</code> contains error description. When status is <code>corrected</code>, <code>status_obj.correction</code> contains the corrected translation</td></tr></tbody></table> <h3 id="before-dom-insert-callback"><a href="#before-dom-insert-callback">Before DOM Insert Callback</a></h3> <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="js"><code><div class="ec-line"><div class="code"><span style="--0:#7FDBCA;--1:#097174">_jipt</span><span style="--0:#C792EA;--1:#8D46B4">.</span><span style="--0:#82AAFF;--1:#3C63B3">push</span><span style="--0:#D6DEEB;--1:#403F53">([</span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#ECC48D;--1:#9B504E">before_dom_insert</span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#D6DEEB;--1:#403F53">, </span><span style="--0:#C792EA;--1:#8D46B4">function</span><span style="--0:#D9F5DD;--1:#111111">(</span><span style="--1:#403F53"><span style="--0:#D7DBE0">text</span><span style="--0:#D6DEEB">, </span><span style="--0:#D7DBE0">node</span><span style="--0:#D6DEEB">, </span><span style="--0:#D7DBE0">attribute</span></span><span style="--0:#D9F5DD;--1:#111111">)</span><span style="--0:#D6DEEB;--1:#403F53"> {</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#C792EA;--1:#8D46B4">return</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#ECC48D;--1:#9B504E">text</span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#D6DEEB;--1:#403F53">;</span></div></div><div class="ec-line"><div class="code"><span style="--0:#D6DEEB;--1:#403F53">}]);</span></div></div></code></pre><div class="copy"><button title="Copy to clipboard" data-copied="Copied!" data-code="_jipt.push([&#x27;before_dom_insert&#x27;, function(text, node, attribute) { return &#x27;text&#x27;;}]);"><div></div></button></div></figure></div> <p>Function to transform the string before it gets inserted into the DOM.</p> <table><tbody><tr><td colspan="2"><b>Parameters</b></td></tr><tr><td>text</td><td>String for insertion</td></tr><tr><td>node <br/><span class="text-muted">optional</span></td><td>DOM element in which the text must be inserted. It may be omitted if the text doesn’t have a target element (text inside the browser’s pop-ups)</td></tr><tr><td>attribute <br/><span class="text-muted">optional</span></td><td>The attribute of DOM element, if the text is part of an attribute</td></tr><tr><td colspan="2"><b>Return Values</b></td></tr><tr><td>text</td><td>String for insertion</td></tr><tr><td>false</td><td>If the function returns <i>false</i>, DOM will not be updated</td></tr></tbody></table> <h3 id="close-the-in-context-overlay-callback"><a href="#close-the-in-context-overlay-callback">Close the In-Context Overlay Callback</a></h3> <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="js"><code><div class="ec-line"><div class="code"><span style="--0:#7FDBCA;--1:#097174">_jipt</span><span style="--0:#C792EA;--1:#8D46B4">.</span><span style="--0:#82AAFF;--1:#3C63B3">push</span><span style="--0:#D6DEEB;--1:#403F53">([</span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#ECC48D;--1:#9B504E">escape</span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#D6DEEB;--1:#403F53">, </span><span style="--0:#C792EA;--1:#8D46B4">function</span><span style="--0:#D9F5DD;--1:#111111">()</span><span style="--0:#D6DEEB;--1:#403F53"> {</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#7FDBCA;--1:#097174">window</span><span style="--0:#C792EA;--1:#8D46B4">.</span><span style="--0:#FAF39F;--1:#111111">location</span><span style="--0:#C792EA;--1:#8D46B4">.</span><span style="--0:#7FDBCA;--1:#097174">href</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#C792EA;--1:#8D46B4">=</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#9B504E">http://app_domain.com</span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#D6DEEB;--1:#403F53">;</span></div></div><div class="ec-line"><div class="code"><span style="--0:#D6DEEB;--1:#403F53">}]);</span></div></div></code></pre><div class="copy"><button title="Copy to clipboard" data-copied="Copied!" data-code="_jipt.push([&#x27;escape&#x27;, function() { window.location.href = &#x22;http://app_domain.com&#x22;;}]);"><div></div></button></div></figure></div> <p>If defined, users can close the In-Context overlay if they don’t want to translate. Implement this feature on your side. Depending on the In-Context integration approach, it must change the app’s language or redirect from the translation environment to the production app.</p> <img src="/_astro/in_context_login_close.COrh_PSo_1l2EIU.webp" alt="Close Login Window" width="1494" height="816" loading="lazy" decoding="async"> <h2 id="adding-screenshots-via-in-context"><a href="#adding-screenshots-via-in-context">Adding Screenshots via In-Context</a></h2> <p>This feature allows you to take a screenshot of the opened website page, upload it to the Crowdin project and automatically tag all strings used on the page.</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>This feature is available to project members with manager permissions (or higher).</p> </section> </aside> <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="/screenshots/">Screenshots</a>.</p></span> </div> <img src="/_astro/in_context_add_screenshot.xYgduSMQ_1SbRcH.webp" alt="Add Screenshot" width="1176" height="1008" loading="lazy" decoding="async"> <div class="sl-link-card astro-mf7fz2mj"> <span class="sl-flex stack astro-mf7fz2mj"> <a href="/developer/automating-screenshot-management/" class="astro-mf7fz2mj"> <span class="title astro-mf7fz2mj">Automated Screenshot Management</span> </a> <span class="description astro-mf7fz2mj">Learn how to automate screenshot creation and updates.</span> </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> <h2 id="troubleshooting-and-common-questions"><a href="#troubleshooting-and-common-questions">Troubleshooting and Common Questions</a></h2> <details class="bg-gray-200 dark:bg-gray-700 p-4 mt-4"> <summary> <strong class="text-base font-semibold">Error: Crowdin In-Context was unable to identify translatable texts (Nothing to translate)</strong> </summary> <div class="px-2"> <p>This error may occur if some strings have been updated in the Crowdin project, but these texts are missing on your website. In this case, download the latest version of the pseudo-language from your project in <strong>Tools > In-Context</strong> and update the pseudo-language on your website.</p> </div> </details> <details class="bg-gray-200 dark:bg-gray-700 p-4 mt-4"> <summary> <strong class="text-base font-semibold">Can I use In-Context with the React app?</strong> </summary> <div class="px-2"> <p>In-Context is technology-independent. Users can configure it according to the regular instructions, simply using a <code dir="auto">script</code> tag.</p> </div> </details> <details class="bg-gray-200 dark:bg-gray-700 p-4 mt-4"> <summary> <strong class="text-base font-semibold">Can I use In-Context if multiple packages compose one application in production?</strong> </summary> <div class="px-2"> <p>It doesn’t matter how many packages and repositories are involved. You can connect multiple repositories within one Crowdin project. If they relate to the same web app, it should work seamlessly.</p> </div> </details> <details class="bg-gray-200 dark:bg-gray-700 p-4 mt-4"> <summary> <strong class="text-base font-semibold">Limitation to use In-Context in only one Crowdin project</strong> </summary> <div class="px-2"> <p>As long as the texts that are displayed on the website page come from one Crowdin project, In-Context will handle them just fine. The key point is that the texts on your website must be in the regular DOM, not in the shadow DOM.</p> </div> </details> <details class="bg-gray-200 dark:bg-gray-700 p-4 mt-4"> <summary> <strong class="text-base font-semibold">Ability of extracting In-Context strings from Shadow DOM</strong> </summary> <div class="px-2"> <p>This is technically impossible. The Shadow DOM is invisible to our scripts. It can only be manipulated by the code that created the Shadow DOM.</p> </div> </details> <details class="bg-gray-200 dark:bg-gray-700 p-4 mt-4"> <summary> <strong class="text-base font-semibold">Ability to configure so that the source file updates are automatically added into the pseudo-language package and then into the website</strong> </summary> <div class="px-2"> <p>This can be done using the Crowdin API. Use the <a href="/developer/api/v2/#operation/api.projects.get">Get Project</a> API method to extract the <code dir="auto">inContextPseudoLanguage</code> object, which contains the language code of the pseudo-language. With this language code, you can build the pseudo-language separately, download it, and integrate it into your website. All other methods are regular - upload/update the file, get the list of target languages with the <a href="/developer/api/v2/#operation/api.projects.get">Get Project</a> API method, and build the target languages. Alternatively, you can also build and download the entire Crowdin project archive at once, which will include the pseudo-language.</p> </div> </details> <details class="bg-gray-200 dark:bg-gray-700 p-4 mt-4"> <summary> <strong class="text-base font-semibold">Recently added new source strings on the website displayed as `unrecognized text`</strong> </summary> <div class="px-2"> <p>The “Unrecognized text” label is displayed on the website if in the Crowdin project strings have been deleted or string keys have been changed in the source files, but the same strings are still present in the pseudo-language that is integrated into the website. To fix this, you just need to update the source files in the Crowdin project again, download the pseudo-language, and update it on the website.</p> </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/developer/capabilities/in-context.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>

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