CINXE.COM
Crowdin - Visual Studio Marketplace
<html lang="en-us"> <head> <meta name="description" content="Extension for Visual Studio Code - Crowdin Explorer for Visual Studio Code" /><meta name="keywords" content="Crowdin,i18n,Internationalization,Localization,Multi-language,Translate,Translation" /><meta property="og:title" content="Crowdin - Visual Studio Marketplace" /><meta property="og:type" content="website" /><meta property="og:url" content="https://marketplace.visualstudio.com/items?itemName=Crowdin.vscode-crowdin" /><meta property="og:image" content="https://Crowdin.gallerycdn.vsassets.io/extensions/crowdin/vscode-crowdin/2.2.3/1730282542627/Microsoft.VisualStudio.Services.Icons.Default" /><meta property="og:description" content="Extension for Visual Studio Code - Crowdin Explorer for Visual Studio Code" /><meta property="twitter:card" content="summary" /><meta property="twitter:site" content="@Code" /><link rel="canonical" href="https://marketplace.visualstudio.com/items?itemName=Crowdin.vscode-crowdin" /> <style> html { overflow-y: scroll; } body { font-family: wf_segoe-ui, Helvetica Neue, Helvetica, Arial, Verdana; color: rgba( 0, 0, 0, 1); font-size: 12px; background-color: rgba(255, 255, 255, 1); margin: 0; padding: 0; } /* L0 header styles start*/ .uxservices-header { height: 34px; background-color:black; } a.skip-main { left: -999px; position: absolute; top: auto; width: 1px; height: 1px; overflow: hidden; z-index: -999; } a.skip-main:focus, a.skip-main:active { color: #0078D4; background-color: #FFFFFF; position: absolute; left: auto; top: auto; width: 122px; height: 33px; overflow: auto; padding-left: 12px; padding-right: 12px; padding-top: 7px; text-align: center; font-size: 14px; font-weight: 500; font-family: 'Segoe UI'; line-height: 20px; z-index: 999; } a.skip-main:hover { color: #005BA1; background-color: #F2F2F2; } .uxservices-header div.upperBandContent { background-color:black; color: white; line-height: 17px; width:100%; margin:0 auto; box-sizing:border-box; max-width: 1160px; padding: 0px; } .uxservices-header div.upperBandContent .left { padding: 5px 0 0 0; } .uxservices-header div.upperBandContent .left .vs-logo-header { height: 31px; padding-top: 5px; } .uxservices-header div.upperBandContent .left .marketplacetext-header { vertical-align: 9px; padding-top: 5px; } .uxservices-header div.upperBandContent .right { display: inline-block; position: relative; background-color: black; font-size: 11px; padding-top: 10px; } .uxservices-header div.upperBandContent .right .signIn { font-weight: 600; float: left; } .uxservices-header .marketPlaceLogoLink { white-space: pre; font-size: 16px; line-height: 16px; vertical-align: -4px; display: inline-block; color: white; } .uxservices-header .marketPlaceLogoLink.vs-brand-icon { width: 30px; height: 30px; background: url(https://cdn.vsassets.io/v/M252_20250218.9/_content/Header/ImageSprite.png) no-repeat -250px 0 !important; } .uxservices-header .right a { font-family: wf_segoe-ui, -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Helvetica Neue", "Lucida Grande", sans-serif; font-size: inherit; } .uxservices-header div.upperBandContent .scarabLink { margin-right: 0.23em; } #Fragment_SearchBox { display: inline-block; margin-left: 25px; height: 13px; } #Fragment_SearchBox .header-search-button { height: 20px; width: 20px; background: url(https://cdn.vsassets.io/v/M252_20250218.9/_content/Header/ImageSprite.png) no-repeat -195px 0 !important; cursor: pointer; border: none; margin-left: 3px; padding: 0px; } #Fragment_SearchBox .header-search-button:focus { outline-color: rgb(77, 144, 254); outline-style: auto; outline-width: 5px; } #Fragment_SearchBox .header-search-textbox { vertical-align: top; background-color: #6a6a6a; color: #ffffff; padding-left: 2px; } /* l0 header ends*/ .tab { overflow: hidden; border-bottom: 1px solid #ccc; background-color: transparent; margin-bottom: 25px; } /* Style the buttons that are used to open the tab content */ .tab button { background-color: transparent; float: left; border: none; outline: none; cursor: pointer; padding: 0px 16px; font-size: 16px; height: 40px; border-width: 1px; border-style: solid; border-color: transparent } /* Change background color of buttons on hover */ .tab button:hover { color: #106ebe; } .tab button.selected { color: #106ebe; border-bottom: 2px solid #106ebe; } .tab button:focus, .tab button.selected:focus { border-color: #000000; } /* Style the tab content */ .tabcontent { padding: 6px 12px; } .bowtie-icon, i.bowtie-icon { font-family: "Bowtie"; font-size: 14px; speak: none; display: inline-block; font-style: normal; font-weight: normal; font-variant: normal; text-transform: none; text-align: center; text-decoration: none; line-height: 16px; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .bowtie-icon:disabled, i.bowtie-icon:disabled { opacity: 0.5; } .bowtie-brand-visualstudio::before { content: "\E91D"; } .bowtie-install::before { content: "\E92C"; } .bowtie-search::before { content: "\E986"; } .bowtie-navigate-external::before { content: "\E9D0"; } .bowtie-status-info::before { content: "\EA08"; } .bowtie-status-info { color: rgba(0, 120, 212, 1); color: var(--communication-background, rgba(0, 120, 212, 1)); } * { box-sizing: border-box; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; } a:not(.ms-Button) { color: rgba(0, 120, 212, 1); color: var(--communication-foreground, rgba(0, 120, 212, 1)); text-decoration: none; cursor: pointer; } a:not(.ms-Button):hover { color: rgba(0, 120, 212, 1); color: var(--communication-foreground, rgba(0, 120, 212, 1)); text-decoration: underline; } a:not(.ms-Button):visited { color: rgba(0, 120, 212, 1); color: var(--communication-foreground, rgba(0, 120, 212, 1)); } a:not(.ms-Button):active { color: rgba(0, 120, 212, 1); color: var(--communication-foreground, rgba(0, 120, 212, 1)); } button { font-family: "Segoe UI VSS (Regular)", "Segoe UI", "-apple-system", BlinkMacSystemFont, Roboto, "Helvetica Neue", Helvetica, Ubuntu, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; height: 30px; border: 1px solid; border-color: rgba( 200, 200, 200, 1); border-color: rgba( var(--palette-neutral-20, 200, 200, 200), 1); background-color: rgba( 248, 248, 248, 1); background-color: rgba( var(--palette-neutral-2, 248, 248, 248), 1); color: rgba( 51, 51, 51, 1); color: rgba( var(--palette-neutral-80, 51, 51, 51), 1); cursor: pointer; outline: 0; padding: 2px 12px 2px 12px; } button:hover:not(.ms-Button):not(.bolt-button):not(.link-as-button), button:focus:not(.ms-Button):not(.bolt-button):not(.link-as-button) { border-color: rgba( 166, 166, 166, 1); border-color: rgba( var(--palette-neutral-30, 166, 166, 166), 1); border-style: dotted; } .pricingTab-loader-container, .qnaTab-loader-container, .rnrTab-loader-container, .versionHistoryTab-loader-container { text-align: center; } .pricingTab-loader-container .loader, .qnaTab-loader-container .loader, .rnrTab-loader-container .loader, .versionHistoryTab-loader-container .loader { display: inline-block; } .item-details-control-root .ux-section-resources ul li a { text-decoration:underline!important; } /* Styles for bread crumb */ .bread-crumb-container { font-size: 13px; color: #FFFFFF; height: 45px; line-height: 45px; } .bread-crumb-container .member { text-decoration: none; } .bread-crumb-container .separator { padding: 0 5px; } .bread-crumb-container a:visited { color: #FFFFFF; } .bread-crumb-container a { color: #FFFFFF; } .bread-crumb-container a:hover { color: #FFFFFF; } .item-details-control-root .breadcrumb { background-color: #232323; color: #FFFFFF; line-height: 45px; font-size: 13px; /* min-width: 1250px; */ } .item-details-control-root .breadcrumb .vsCodeDownloadLinkContainer { float: right; color: inherit; } .item-details-control-root .breadcrumb .vsCodeDownloadLink { color: #0090ff; } /* end of bread crumb styles */ /* Styles for item banner */ .ux-section-banner { padding: 16px 0px; background-color: #eff1f3; /* min-width: 1250px; */ } .item-details-control-root .ux-section-banner { padding: 32px 0px; background-color: #eff1f3; } .gallery-centered-content { width: 1160px; margin-left: auto; margin-right: auto; padding-left: 10px; padding-right: 10px; } @media all and (max-width:1165px){ .gallery-centered-content{ width:100%; padding-left:25px; padding-right:25px; } } table { border-collapse: collapse; border-spacing: 0; margin: 0; padding: 0; border: 0; } .item-details-control-root .item-img { text-align: center; vertical-align: top; width: 132px; } .item-details-control-root .item-img img { max-width: 128px; position: relative; visibility: hidden; } .item-details-control-root .item-header .item-header-content { font-size: 14px; margin-left: 32px; } .item-details-control-root .ux-item-name { font-size: 26px; font-weight: 600; display: inline-block; padding-right: 8px; } .item-details-control-root .ux-item-second-row-wrapper { margin-top: 4px; } .item-details-control-root .ux-item-second-row-wrapper>div { display: inline-block; } .item-details-control-root .ux-item-second-row-wrapper>div:nth-child(1) { margin-right: 10px; } .item-details-control-root .ux-item-second-row-wrapper>.ux-item-rating { margin-left: 10px; margin-right: 10px; } .item-details-control-root .ux-item-second-row-wrapper>.item-price-category { margin-left: 10px; margin-right: 10px; } .item-details-control-root .item-header h1, .item-details-control-root .item-header h2 { margin: 0px; padding: 0px; display: inline-block; font-size: 0em; font-weight: normal; } .item-details-control-root .item-header .dark { color: #FFFFFF; } .item-details-control-root .ux-item-rating { font-size: 14px; } .item-details-control-root .ux-item-publisher { font-size: 18px; } .item-details-control-root .ux-item-publisher-link { font-size: 18px; font-weight: 600; } .item-details-control-root .ux-item-shortdesc { margin: 20px 0; max-width: 608px; line-height: 1.5; overflow: hidden; } .item-details-control-root .dark .item-banner-focussable-child-item:focus { outline: 1px dotted white; } .item-details-control-root .item-header .item-header-content.light .installHelpInfo a { color: #000000; text-decoration: underline; border-color: #000000; } .item-details-control-root .item-header .item-header-content.dark .installHelpInfo a { color: #FFFFFF; text-decoration: underline; } .ux-section-details-tabs .version-history-top-container { width: 100% } /* not unpublished */ .one-click-install-container { display: flex; } .installHelpInfo { margin-left: 10px; } .installHelpInfo>a { vertical-align: sub; } .textContainer-41 { flex-grow: 1; } .flexContainer-40 { display: flex; height: 100%; flex-wrap: nowrap; justify-content: center; align-items: center; } .label-43 { margin-top: 0px; margin-right: 4px; margin-bottom: 0px; margin-left: 4px; line-height: 100%; font-weight: 600; } .item-details-control-root .ux-button.install { position: relative; font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; -webkit-font-smoothing: antialiased; font-size: 14px; font-weight: 400; box-sizing: border-box; display: inline-block; text-align: center; cursor: pointer; vertical-align: top; padding-top: 0px; padding-right: 16px; padding-bottom: 0px; padding-left: 16px; min-width: 80px; height: 32px; background-color: rgb(244, 244, 244); color: rgb(51, 51, 51); user-select: none; outline: transparent; border-width: 1px; border-style: solid; border-color: transparent; border-image: initial; text-decoration: none; border-radius: 0px; } .item-details-control-root .item-header-content .install-button-container .ux-button.install.buttonDisabled { background-color: #AAAAAA; color: #EEEEEE; opacity: 1; border: 1px solid #E6E6E6; } .item-details-control-root .item-header-content .install-button-container .ux-button.install.buttonDisabled:hover { cursor: default; opacity: 1; } .item-details-control-root .dark .ux-button.install { background-color: #107c10; color: #FFFFFF; min-width: 120px; border: 1px solid #FFFFFF; } .item-details-control-root .dark .ux-button.install:hover { background-color: #AAAAAA; opacity: 0.6; } .ux-item-action a.install-button-container { line-height: 32px; } .item-details-control-root .light .ux-button.install { background-color: #107c10; color: #FFFFFF; min-width: 120px; border: 1px solid #666666; } .item-details-control-root .light .ux-button.install:hover, .item-details-control-root .light .ux-button.install:focus { background-color: #074507; } .item-details-control-root .dark .ux-button.install:focus, .item-details-control-root .light .ux-button.install:focus { border: 1px dotted; } /* End of item banner styles. */ /* Styles for item details overview */ .item-details-control-root .ux-section-details { margin: 24px 0 34px 0px; font-size: 13px; } .item-details-control-root .ux-section-details .itemdetails-section-header { font-size: 16px; font-weight: bold; color: #555; padding-bottom: 16px; } .item-details-control-root .ux-section-details .ux-section-details-table { width: 100%; table-layout: fixed; } .item-details-control-root .ux-itemdetails-left { vertical-align: top; font-size: 14px; padding-right: 20px; } .item-details-control-root .ux-itemdetails-right { width: 34.45%; vertical-align: top; padding: 0 0 0 20px; } @media all and (max-width:768px) { .item-details-control-root .ux-itemdetails-left { float: left; width: 100%; padding-right: 0px; } .item-details-control-root .ux-itemdetails-right{ padding-left:0px!important; float:left; width:100%; } } .item-details-control-root .itemDetails-right { display: none; } .item-details-control-root .markdown { color: #222; line-height: 1.6; position: relative; } .gallery-centered-content .markdown a { color: rgba(0, 120, 212, 1); text-decoration:underline; } .markdown table tr:nth-child(2n) a, .gallery-centered-content .markdown a code { color: rgb(15, 113, 196); } .item-details-control-root .markdown > *:first-child { margin-top: 0!important; } .item-details-control-root .markdown .link-header:target:before { content: ""; display: block; height: 250px; margin: -250px 0 0; } .link-as-button { height: initial; } .link-as-button:hover { text-decoration: underline; } /* End of item details overview styles. */ /* Styles for footer */ #ux-footer { line-height: 1.2em; } #ux-footer:after { content: ""; display: table; clear: both; } #ux-footer a { color: #595958; } #ux-footer a:hover { color: #3399ff; } #ux-footer ul.links { padding: 0; line-height: 1.2em; } #ux-footer .linkList>ul>li { list-style-type: none; background: none; padding: 4px 0; margin: 0; } #ux-footer #baseFooter { width: 1160px; padding: 15px 10px; margin: 0 auto; } @media all and (max-width:1165px){ #ux-footer #baseFooter{ width:100%; padding:15px 20px; } } #ux-footer #baseFooter:after { content: ""; display: table; clear: both; } #ux-footer #baseFooter li { display: inline-block; list-style-type: none; margin: 0 15px 0 0; } #ux-footer #baseFooter #Fragment_BaseFooterLinks { text-align: right; } #ux-footer #baseFooter #rightBaseFooter { float: right; width: 18%; font-family: wf_segoe-ui, Tahoma, Helvetica, Sans-Serif; color: #595958; font-weight: bold; } @media only screen and (max-width: 400px) { #ux-footer #baseFooter #rightBaseFooter{ width:100%; text-align: center; } .ux-section-banner td.item-img img { width: 100% !important; } } #ux-footer span.microsoftLogo { display: inline-block; margin-left: 16px; } .microsoftLogo { background: url(https://cdn.vsassets.io/v/M252_20250218.9/_content/Header/ImageSprite.png) no-repeat -93px 0!important; } .microsoftLogo { width: 70px; height: 14px; overflow: hidden; } /* End of footer styles. */ /* Styles for markdown */ .markdown img { max-width: 100%; } .markdown video { max-width: 100%; } .markdown h1, .markdown h2 { line-height: 1.4; margin-top: 1em; margin-bottom: 16px; } .markdown h1 { font-size: 1.5em; line-height: 1.2em; border-bottom: 1px solid #eee; margin-top: 2em; padding-bottom: 10px; } .markdown h2 { font-size: 1.375em; line-height: 1.2em; border-bottom: 1px solid #eee; margin-top: 2em; padding-bottom: 10px; } .markdown h3 { font-size: 1.25em; } .markdown h4 { font-size: 1.125em; } .markdown h5 { font-size: 1.0em; } .markdown blockquote { padding: 0 15px; color: #777; border-left: 4px solid #ddd; margin: 0; } .markdown pre { padding: 16px; overflow: auto; font-size: 85%; line-height: 1.45; background-color: #f7f7f7; border-radius: 3px; word-wrap: normal; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } .markdown code, .markdown tt { padding: 0; background-color: rgba(0, 0, 0, 0.04); margin: 0; padding-top: 0.2em; padding-bottom: 0.2em; border-radius: 3px; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } .markdown pre > code { background-color: inherit; } .markdown table { display: block; width: 100%; overflow: auto; word-break: normal; word-break: keep-all; } .markdown table th { font-weight: bold; } .markdown table th, .markdown table td { padding: 6px 13px; border: 1px solid #ddd; } .markdown table tr { background-color: #fff; border-top: 1px solid #ccc; } .markdown table tr:nth-child(2n) { background-color: #f8f8f8; } /* End of markdown styles. */ .main-content.item-details-main-content { min-height: 950px; } .item-details-main-content { background-color: #FFFFFF; } .ms-Fabric { -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; color: #333333; font-family: "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, "Roboto", "Helvetica Neue", sans-serif; font-size: 14px; } .ms-Fabric button { font-family: inherit; } .ux-section-details-tabs { margin-top: -20px; } @font-face { font-family: wf_segoe-ui; src: url("//c.s-microsoft.com/static/fonts/segoe-ui/west-european/light/latest.eot"); src: local("Segoe UI Light"), local("Segoe Light"), local("Segoe WP Light"), url("//c.s-microsoft.com/static/fonts/segoe-ui/west-european/light/latest.eot?#iefix") format("embedded-opentype"), url("//c.s-microsoft.com/static/fonts/segoe-ui/west-european/light/latest.woff2") format("woff2"), url("//c.s-microsoft.com/static/fonts/segoe-ui/west-european/light/latest.woff") format("woff"), url("//c.s-microsoft.com/static/fonts/segoe-ui/west-european/light/latest.ttf") format("truetype"); font-weight: 200; font-style: normal; -webkit-font-smoothing: antialiased; } #survey-container { position: relative; background-color: #f5ebc5; justify-content: space-between; text-align: center; } #survey-content-container { margin: 0; padding-left: 5%; padding-top: 8px; padding-bottom: 8px; padding-left:30%; padding-right:15%; } #survey-content-text { color: #000000 !important; display: table-cell; vertical-align: middle; padding: 0; font-family: Segoe UI, SegoeUI, Arial, sans-serif; font-style: normal; font-weight: normal; font-size: 13px; line-height: 16px; } #survey-info-icon { display: table-cell; padding: 4px; width: 24px; height: 24px; line-height: 0; text-align: left; } @font-face { font-family: wf_segoe-ui; src: url("//c.s-microsoft.com/static/fonts/segoe-ui/west-european/semilight/latest.eot"); src: local("Segoe UI Semilight"), local("Segoe Semilight"), local("Segoe WP Semilight"), url("//c.s-microsoft.com/static/fonts/segoe-ui/west-european/semilight/latest.eot?#iefix") format("embedded-opentype"), url("//c.s-microsoft.com/static/fonts/segoe-ui/west-european/semilight/latest.woff2") format("woff2"), url("//c.s-microsoft.com/static/fonts/segoe-ui/west-european/semilight/latest.woff") format("woff"), url("//c.s-microsoft.com/static/fonts/segoe-ui/west-european/semilight/latest.ttf") format("truetype"); font-weight: 300; font-style: normal; } @font-face { font-family: wf_segoe-ui; src: url("//c.s-microsoft.com/static/fonts/segoe-ui/west-european/normal/latest.eot"); src: local("Segoe UI"), local("Segoe"), local("Segoe WP"), url("//c.s-microsoft.com/static/fonts/segoe-ui/west-european/normal/latest.eot?#iefix") format("embedded-opentype"), url("//c.s-microsoft.com/static/fonts/segoe-ui/west-european/normal/latest.woff2") format("woff2"), url("//c.s-microsoft.com/static/fonts/segoe-ui/west-european/normal/latest.woff") format("woff"), url("//c.s-microsoft.com/static/fonts/segoe-ui/west-european/normal/latest.ttf") format("truetype"); font-weight: normal; font-style: normal; } @font-face { font-family: wf_segoe-ui; src: url("//c.s-microsoft.com/static/fonts/segoe-ui/west-european/Semibold/latest.eot"); src: local("Segoe UI Semibold"), local("Segoe Semibold"), local("Segoe WP Semibold"), url("//c.s-microsoft.com/static/fonts/segoe-ui/west-european/Semibold/latest.eot?#iefix") format("embedded-opentype"), url("//c.s-microsoft.com/static/fonts/segoe-ui/west-european/Semibold/latest.woff2") format("woff2"), url("//c.s-microsoft.com/static/fonts/segoe-ui/west-european/Semibold/latest.woff") format("woff"), url("//c.s-microsoft.com/static/fonts/segoe-ui/west-european/Semibold/latest.ttf") format("truetype"); font-weight: 500; font-style: normal; } @font-face { font-family: wf_segoe-ui; src: url("//c.s-microsoft.com/static/fonts/segoe-ui/west-european/Semibold/latest.eot"); src: local("Segoe UI Semibold"), local("Segoe Semibold"), local("Segoe WP Semibold"), url("//c.s-microsoft.com/static/fonts/segoe-ui/west-european/Semibold/latest.eot?#iefix") format("embedded-opentype"), url("//c.s-microsoft.com/static/fonts/segoe-ui/west-european/Semibold/latest.woff2") format("woff2"), url("//c.s-microsoft.com/static/fonts/segoe-ui/west-european/Semibold/latest.woff") format("woff"), url("//c.s-microsoft.com/static/fonts/segoe-ui/west-european/Semibold/latest.ttf") format("truetype"); font-weight: 600; font-style: normal; } @font-face { font-family: wf_segoe-ui; src: url("//c.s-microsoft.com/static/fonts/segoe-ui/west-european/bold/latest.eot"); src: local("Segoe UI Bold"), local("Segoe Bold"), local("Segoe WP Bold"), local("Segoe UI"), local("Segoe"), local("Segoe WP"), url("//c.s-microsoft.com/static/fonts/segoe-ui/west-european/bold/latest.eot?#iefix") format("embedded-opentype"), url("//c.s-microsoft.com/static/fonts/segoe-ui/west-european/bold/latest.woff") format("woff"), url("//c.s-microsoft.com/static/fonts/segoe-ui/west-european/bold/latest.woff2") format("woff2"), url("//c.s-microsoft.com/static/fonts/segoe-ui/west-european/bold/latest.ttf") format("truetype"); font-weight: bold; font-style: normal; } @font-face { font-family: wf_segoe-ui_light; src: url("//c.s-microsoft.com/static/fonts/segoe-ui/west-european/light/latest.eot"); src: local("Segoe UI Light"), local("Segoe Light"), local("Segoe WP Light"), url("//c.s-microsoft.com/static/fonts/segoe-ui/west-european/light/latest.eot?#iefix") format("embedded-opentype"), url("//c.s-microsoft.com/static/fonts/segoe-ui/west-european/light/latest.woff2") format("woff2"), url("//c.s-microsoft.com/static/fonts/segoe-ui/west-european/light/latest.woff") format("woff"), url("//c.s-microsoft.com/static/fonts/segoe-ui/west-european/light/latest.ttf") format("truetype"); font-weight: normal; font-style: normal; } @font-face { font-family: 'bowtie'; font-style: normal; font-weight: normal; src: url(https://cdn.vsassets.io/v/M252_20250218.9/_content/Fonts/Icons/bowtie.eot); src: url(https://cdn.vsassets.io/v/M252_20250218.9/_content/Fonts/Icons/bowtie.eot?iefix) format("embedded-opentype"), url(https://cdn.vsassets.io/v/M252_20250218.9/_content/Fonts/Icons/bowtie.woff) format("woff"), url(https://cdn.vsassets.io/v/M252_20250218.9/_content/Fonts/Icons/bowtie.svg#bowtie) format("svg"); } /*Sponsor start*/ @font-face { font-family: AzureDevOpsMDL2Assets; src: url(https://cdn.vsassets.io/v/M252_20250218.9/_content/Fonts/Icons/AzDevMDL2.woff) format('woff'); } .ux-item-sponsor-text { background-color: #F1F1F1; border: 1px solid #007ACC; color: #000000; padding: 5px 0px 5px 10px; } .ux-item-sponsor-heart-icon{ color: #B51E78; padding: inherit; padding-left: 6px; font-weight: 600; position: relative; top: 3px; } .bowtie-heart-icon::before { content: "\EB52"; font-family: AzureDevOpsMDL2Assets; } .bowtie-heart-icon { color: rgba(0, 120, 212, 1); color: var(--communication-background, rgba(0, 120, 212, 1)); } .ux-sponsor-text-icon { padding-left: 6px; padding-right: 6px; } /*Sponsor style end*/ /* Verified Domain style begin */ /* Verified Domain style end */ /* top pub. style begin */ /* top pub. style end */ /*rating review style begin*/ .item-details-control-root .ux-item-review-rating .ux-item-rating-control .rating-control .star { min-width: 16px; min-height: 16px; height: 12px; width: 12px; padding-top: 0px; margin: 0px 2px; } .item-details-control-root .ux-item-second-row-wrapper .ux-item-review-rating-wrapper { text-decoration: none; color: inherit; padding-top: 1px; padding-bottom: 3px; } .item-details-control-root .ux-item-second-row-wrapper .ux-item-review-rating-wrapper .ux-item-review-rating{ display: inline-flex; } .item-details-control-root .ux-item-second-row-wrapper .ux-item-review-rating-wrapper .ux-item-review-rating .ux-item-rating-control { margin-left: 10px; top: 2px; position: relative; } .item-details-control-root .ux-item-second-row-wrapper .ux-item-review-rating-wrapper .ux-item-review-rating .ux-item-rating-count { margin-left: 5px; font-size: 16px; margin-top: -1px; margin-right: 8px; } /*rating review style end*/ /*Spinner*/ .loader-container { text-align: -webkit-center; text-align: -mozkit-center; } .loader { border: 3px solid #f3f3f3; border-radius: 50%; border-top: solid #808080; width: 30px; height: 30px; -webkit-animation: spin 2s linear infinite; animation: spin 2s linear infinite; } @-webkit-keyframes spin { 0% { -webkit-transform: rotate(0deg); } 100% { -webkit-transform: rotate(360deg); } } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .tooltip { position: relative; display: inline-block; border-bottom: 1px dotted black; } .tooltip .tooltiptext { visibility: hidden; width: 310px; background-color: black; color: white; text-align: center; border-radius: 6px; padding: 0px 0; position: absolute; z-index: 1; top: 1px; right: 100%; } .tooltip:hover .tooltiptext { visibility: visible; } .uxservices-header #signIn .tooltip a:focus-within .tooltiptext, .uxservices-header .signIn .tooltip a:focus-within .tooltiptext { visibility: visible; } .uxservices-header .tooltip .tooltiptext #copy_button:focus #outInfo { padding: 5px 10px; border: 1px solid #fff !important; } .ms-Button-icon.bowtie-icon.bowtie-copy-to-clipboard.icon-64:before{ content: "\E8C8"; font-family: AzureDevOpsMDL2Assets; } </style> <script type="text/javascript" src="https://wcpstatic.microsoft.com/mscc/lib/v2/wcp-consent.js"></script> <script type="text/javascript" nonce="+o3KCtqscJTv3xE8Jg/hSA=="> function sue(em, s, l, c, eo){var w=window,p="ue";w[p]=w[p]||[];w[p].push({"em":em,"s":s,"l":l,"c":c,"eo":eo});return false;} window.onerror = sue; isServerSideRendering = function () { try { return !(document !== undefined); } catch (e) { return true; } }; redirectToNonSSR = function(area) { var fqn = document.getElementById("FQN").value; var galleryUrl = document.getElementById("galleryUrl").value; window.location.assign(window.location.origin + galleryUrl +"items?itemName=" + fqn + "&ssr=false" + area); } hideAndShowTabs = function(tabToShow) { var currentTab = document.getElementsByClassName("selected-tab"); currentTab[0].style.display = "none"; currentTab[0].classList.remove("selected-tab"); var selectedTab = document.getElementById(tabToShow); selectedTab.classList.add("selected-tab"); selectedTab.style.display = "block"; // Changing the button styling for the newly clicked button var currentTabButton = document.getElementsByClassName("selected"); currentTabButton[0].classList.remove("selected"); var selectedTabButton = document.getElementById(tabToShow.slice(0, -3)); selectedTabButton.classList.add("selected"); } if (!isServerSideRendering()) { document.addEventListener('DOMContentLoaded', function () { document.getElementById("overview").addEventListener("click", function (e) { hideAndShowTabs("overviewTab"); }); document.getElementById("qna").addEventListener("click", function (e) { redirectToNonSSR("#qna"); }); document.getElementById("versionHistory").addEventListener("click", function (e) { hideAndShowTabs("versionHistoryTab"); }); document.getElementById("rnr").addEventListener("click", function (e) { redirectToNonSSR("#review-details"); }); document.getElementById("review-details").addEventListener("click", function (e) { redirectToNonSSR("#review-details"); }); // vscode copy command handlings let copyCommandInput = document.getElementById("vscode-command-input"); if (copyCommandInput) { copyCommandInput.addEventListener("click", function (e) { e.target.select(); }); document.getElementById("copy-to-clipboard-button").addEventListener("click", function (e) { document.getElementById("vscode-command-input").select(); var successful = document.execCommand('copy'); if (successful) { var element = document.getElementById("copied-animation"); element.style.display = "block"; } }); } // add handler for search document.getElementById("Fragment_SearchBox").addEventListener("submit", function (e) { e.preventDefault(); var queryText = document.getElementById("header-search-textbox").value; var galleryUrl = document.getElementById("galleryUrl").value; var searchTarget = document.getElementById("searchTarget").value; window.location = window.location.origin + galleryUrl + "search?term=" + queryText + "&target=" + searchTarget; }); let acqBtn = document.getElementsByClassName("install-button-container"); if (acqBtn && acqBtn[0]) { acqBtn[0].onclick = function (event) { var w = window, p = "ciEvents"; w[p] = w[p] || []; w[p].push({ "acquisition": true, "event": event }); }; } }); } document.addEventListener('DOMContentLoaded', function () { if (document.getElementById("mgtConsentCookie") != null) { document.getElementById("mgtConsentCookie").addEventListener("click", function (e) { console.log("from aspx hit."); manageConsent(); }); } }); document.addEventListener('DOMContentLoaded', function () { var h1targetDiv = document.getElementById("overviewTab").getElementsByTagName("h1"); for (var i = 0; i < h1targetDiv.length; i++) { h1targetDiv[i].setAttribute('role', 'heading'); h1targetDiv[i].setAttribute('aria-level', '2'); } }); </script> <title> Crowdin - Visual Studio Marketplace </title> </head> <a href="#start-of-content" class="skip-main">Skip to content</a> <body class="platform gallery gallery-page-item-details"> <div id="cookie-banner"></div> <div class="uxservices-header" role="banner"> <div class="upperBandContent"> <a href="/" title="| Marketplace" class="left" > <img class="vs-logo-header" aria-label="Visual Studio logo" src="https://cdn.vsassets.io/v/M252_20250218.9/_content/Header/vs-logo.png"/> <div id="marketPlaceLogoLink" class="marketPlaceLogoLink marketplacetext-header" aria-label="Marketplace logo">| Marketplace</div> </a> <div class="right" style="float: right;"> <div class="signIn"> <a href="https://app.vssps.visualstudio.com/_signin?realm=marketplace.visualstudio.com&reply_to=https%3A%2F%2Fmarketplace.visualstudio.com%2Fitems%3FitemName%3DCrowdin.vscode-crowdin&redirect=1&context=eyJodCI6MywiaGlkIjoiMjY2M2IxM2YtNTBlMy1hNjU1LWExNTktMjJmNmY0NzI1ZmFiIiwicXMiOnt9LCJyciI6IiIsInZoIjoiIiwiY3YiOiIiLCJjcyI6IiJ90&workflowId=marketplace&wt.mc_id=o~msft~marketplace~signIn#ctx=eyJTaWduSW5Db29raWVEb21haW5zIjpbImh0dHBzOi8vbG9naW4ud2luZG93cy5uZXQiLCJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20iXX01" class="scarabLink" style="margin-left:23px;padding-top:1px;color:#fff;font-weight:400;"> Sign in </a> </div> <form id="Fragment_SearchBox" class="header-search" aria-label="search" role="search" data-fragmentname="SearchBox"> <input id="header-search-textbox" class="header-search-textbox" aria-label="search" max-length="200" type="text" autocomplete="off"> <button id="header-search-button" class="header-search-button" aria-label="search" type="submit"></button> </form> </div> </div> </div> <div class="skiptarget" id="start-of-content"></div> <div id="react_0HNAL6AFHFM7R"><div data-reactroot=""><div class="item-details-control-root"><div class="breadcrumb"><div class="gallery-centered-content"><span class="bread-crumb-container"><a class="member" href="/vscode">Visual Studio Code</a><span class="separator">></span><a class="member" href="/search?sortBy=Installs&category=Other&target=VSCode">Other</a><span class="separator">></span><span class="member">Crowdin</span></span><span class="vsCodeDownloadLinkContainer"><span>New to Visual Studio Code?</span> <a class="vsCodeDownloadLink" href="https://go.microsoft.com/fwlink?linkid=846418&pub=Crowdin&ext=vscode-crowdin&utm_source=vsmp&utm_campaign=mpdetails" target="_blank" rel="noreferrer noopener nofollow" aria-label="Get Visual Studio Code Now">Get it now.</a></span></div></div><div class="main-content item-details-main-content" id="vss_1"><div class="item-details-control-root"><div class="ux-item-details"><div class="ux-section-banner" id="section-banner"><div class="ux-section-core gallery-centered-content"><table role="presentation"><tbody><tr><td class="item-img" id="vss_2"><img class="image-display" alt="Crowdin" src="https://Crowdin.gallerycdn.vsassets.io/extensions/crowdin/vscode-crowdin/2.2.3/1730282542627/Microsoft.VisualStudio.Services.Icons.Default" style="top:0.5px;visibility:visible"/></td><td class="item-header"><div class="item-header-content light"><h1><span class="ux-item-name">Crowdin</span></h1><div class="ux-item-second-row-wrapper"><div class="ux-item-publisher"><h2 role="presentation"><a class="ux-item-publisher-link item-banner-focussable-child-item" href="publishers/Crowdin" aria-label="More from Crowdin publisher" style="color:#000000">Crowdin</a></h2></div><span class="divider"> | </span><div class="ux-item-rating"><div class="bowtie-icon bowtie-install"></div><span class="installs-text" title="The number of unique installations, not including updates."> 4,581 installs</span></div><a id="review-details" href="#review-details" class="ux-item-review-rating-wrapper" aria-label="Average rating: 4.7 out of 5. Navigate to user reviews."><span class="ux-item-review-rating" title="Average rating: 4.7 out of 5"><span class="divider"> | </span><span class="ux-item-rating-control"><span class="rating-control" aria-hidden="true"><img class="star full-star" alt="" aria-label="1 star" src="https://cdn.vsassets.io/v/M252_20250218.9/_content/FullStar.svg"/><img class="star full-star" alt="" aria-label="2 star" src="https://cdn.vsassets.io/v/M252_20250218.9/_content/FullStar.svg"/><img class="star full-star" alt="" aria-label="3 star" src="https://cdn.vsassets.io/v/M252_20250218.9/_content/FullStar.svg"/><img class="star full-star" alt="" aria-label="4 star" src="https://cdn.vsassets.io/v/M252_20250218.9/_content/FullStar.svg"/><img class="star half-star" alt="" src="https://cdn.vsassets.io/v/M252_20250218.9/_content/HalfStarDark.svg"/></span></span><span class="ux-item-rating-count"> (<span>3</span>)</span></span></a><span class="divider"> | </span><span class="item-price-category">Free</span></div><div class="ux-item-shortdesc">Crowdin Explorer for Visual Studio Code</div><div class="ux-item-action"><div class="installButtonContainer"><div class="one-click-install-container"><div><div class="ms-Fabric"><span class="ux-oneclick-install-button-container"><a href="vscode:extension/Crowdin.vscode-crowdin" class="ms-Button ux-button install ms-Button--default root-39"><div class="ms-Button-flexContainer flexContainer-40"><div class="ms-Button-textContainer textContainer-41"><div class="ms-Button-label label-43" id="id__0">Install</div></div></div></a></span></div></div><span class="installHelpInfo"><a href="https://aka.ms/vscode_extn_install" target="_blank" rel="noreferrer noopener nofollow" class="light">Trouble Installing?<i class="bowtie-icon bowtie-navigate-external"></i></a></span></div></div><div style="display:none"><input type="text" id="FQN" readonly="" value="Crowdin.vscode-crowdin"/><input type="text" id="galleryUrl" readonly="" value="/"/><input type="text" id="searchTarget" readonly="" value="VSCode"/></div></div></div></td></tr></tbody></table></div></div><div class="gallery-centered-content"><div class="ux-section-details"><div class="ms-Fabric ux-section-details-tabs"><div class="gallery-centered-content"><div class="tab"><button id="overview" class="selected">Overview</button><button id="versionHistory">Version History</button><button id="qna">Q & A</button><button id="rnr">Rating & Review</button></div><div class="tabcontent"><div id="overviewTab" class="overview selected-tab"><div class="details-tab itemdetails"><table class="ux-section-details-table" role="presentation"><tbody><tr><td class="ux-itemdetails-left"><div class="itemDetails"><div class="markdown"><h1 id=crowdin-for-vs-code-tweet-github-repo-stars>Crowdin for VS Code <a href="https://twitter.com/intent/tweet?url=https:%2f%2fgithub.com%2fcrowdin%2fvscode-crowdin&text=Manage%20and%20synchronize%20your%20localization%20resources%20with%20Crowdin%20project%20instantly%20from%20Visual%20Studio%20Code" target=_blank rel="noreferrer noopener nofollow"><img src="https://img.shields.io/twitter/url/http/shields.io.svg?style=social" alt=Tweet></a> <a href="https://github.com/crowdin/vscode-crowdin/stargazers" target=_blank rel="noreferrer noopener nofollow"><img src="https://img.shields.io/github/stars/crowdin/vscode-crowdin?style=social&cacheSeconds=1800" alt="GitHub Repo stars"></a></h1> <p>Integrate your Visual Studio Code projects with Crowdin to streamline the localization process. The plugin allows you to instantly upload new source strings to your Crowdin project, autocomplete string keys, check translation progress and download translations from Crowdin.</p> <div align=center> <p><a href="https://marketplace.visualstudio.com/items?itemName=Crowdin.vscode-crowdin" target=_blank rel="noreferrer noopener nofollow">Get it from the VS Code Marketplace →</a></p> <p><a href="https://marketplace.visualstudio.com/items?itemName=Crowdin.vscode-crowdin" target=_blank rel="noreferrer noopener nofollow"><img src="https://img.shields.io/visual-studio-marketplace/i/Crowdin.vscode-crowdin?logo=visual-studio-code&cacheSeconds=3000" alt="Visual Studio Marketplace Installs"></a> <a href="https://marketplace.visualstudio.com/items?itemName=Crowdin.vscode-crowdin" target=_blank rel="noreferrer noopener nofollow"><img src="https://badgen.net/vs-marketplace/d/Crowdin.vscode-crowdin?cache=1000" alt="Visual Studio Marketplace Downloads"></a> <a href="https://marketplace.visualstudio.com/items?itemName=Crowdin.vscode-crowdin&ssr=false#review-details" target=_blank rel="noreferrer noopener nofollow"><img src="https://img.shields.io/visual-studio-marketplace/stars/Crowdin.vscode-crowdin?logo=visual-studio-code&cacheSeconds=3000" alt="Visual Studio Marketplace Rating (Stars)"></a> <a href="https://marketplace.visualstudio.com/items?itemName=Crowdin.vscode-crowdin" target=_blank rel="noreferrer noopener nofollow"><img src="https://img.shields.io/visual-studio-marketplace/v/Crowdin.vscode-crowdin?cacheSeconds=3000" alt="Visual Studio Marketplace Version"></a></p> </div> <p><a href="https://store.crowdin.com/visual-studio-code/" target=_blank rel="noreferrer noopener nofollow"><p align=center><img src="https://github.com/crowdin/vscode-crowdin/raw/HEAD/resources/cover.png" data-canonical-src="resources/cover.png" width=1200 height=auto align=center></p></a></p> <h2 id=features>Features</h2> <p>A new component will be introduced in the Activity Bar called the <em>Crowdin</em>. The plugin will scan each workspace for a Crowdin-specific configuration file and will build a tree with source files.</p> <h3 id=upload-source-files-to-crowdin>Upload source files to Crowdin</h3> <p>Upload source files to Crowdin for translation using the <strong>"Upload"</strong> panel. It displays all the source files matching the specified pattern in the configuration file. You can either individually select files to upload to Crowdin or upload all files at once.</p> <p><a href="https://store.crowdin.com/visual-studio-code/" target=_blank rel="noreferrer noopener nofollow"><p align=center><img src="https://github.com/crowdin/vscode-crowdin/raw/HEAD/resources/animations/upload.gif" data-canonical-src="resources/animations/upload.gif" width=600 height=auto align=center></p></a></p> <h3 id=download-source-and-translation-files-from-crowdin>Download source and translation files from Crowdin</h3> <p>Download source and translation files from Crowdin using the <strong>"Download"</strong> panel. It displays all the source files matching the specified pattern in the configuration file. You can download translations for all target languages as well as download source files edited in Crowdin.</p> <p><a href="https://store.crowdin.com/visual-studio-code/" target=_blank rel="noreferrer noopener nofollow"><p align=center><img src="https://github.com/crowdin/vscode-crowdin/raw/HEAD/resources/animations/download.gif" data-canonical-src="resources/animations/download.gif" width=600 height=auto align=center></p></a></p> <h3 id=track-translation-progress>Track translation progress</h3> <p>Track progress of translated and approved strings for each project and target language.</p> <p><a href="https://store.crowdin.com/visual-studio-code/" target=_blank rel="noreferrer noopener nofollow"><p align=center><img src="https://github.com/crowdin/vscode-crowdin/raw/HEAD/resources/animations/progress.gif" data-canonical-src="resources/animations/progress.gif" width=600 height=auto align=center></p></a></p> <h3 id=string-keys-autocompletion>String keys autocompletion</h3> <p>Use string keys in your code fetched from Crowdin and available in autocomplete suggestions. Whenever a user types something, the VSCode autocompletion will suggest available string keys from Crowdin.</p> <p>There is a possibility to configure file extensions, where the string keys autocompletion will appear. By default, autocompletion is turned on and available in all files.</p> <p>Strings for autocompletion are loaded during the bootstrap of VSCode and are also updated whenever there was a change in the <code>crowdin.yml</code> configuration file.</p> <p><a href="https://store.crowdin.com/visual-studio-code/" target=_blank rel="noreferrer noopener nofollow"><p align=center><img src="https://github.com/crowdin/vscode-crowdin/raw/HEAD/resources/animations/autocomplete.gif" data-canonical-src="resources/animations/autocomplete.gif" width=600 height=auto align=center></p></a></p> <p>This gif illustrates the autocompletion of string keys in a React project that uses the <a href="https://lingui.dev/tools/crowdin" target=_blank rel="noreferrer noopener nofollow">Lingui</a> library.</p> <h3 id=string-extraction>String extraction</h3> <p>The plugin allows you to extract strings from your source files and upload them to Crowdin. Just select the necessary text and use the <code>"Crowdin: Extract String"</code> from the context menu. You will then be asked to enter the key for that string and select the file to upload it to.</p> <h3 id=command-palette-commands>Command Palette commands</h3> <p>The plugin provides the following commands in the VS Code <a href="https://code.visualstudio.com/docs/getstarted/userinterface#_command-" target=_blank rel="noreferrer noopener nofollow">Command Palette</a> (Shift+Command+P/Ctrl+Shift+P):</p> <ul> <li><code>Crowdin: Sign In</code> to log in into your Crowdin profile</li> <li><code>Crowdin: Sign Out</code> to log out from your Crowdin profile</li> <li><code>Crowdin: Select Project</code> to select Crowdin project</li> <li><code>Crowdin: Open Configuration</code> to open Crowdin configuration file</li> <li><code>Crowdin: Focus on Upload View</code> to focus on the Upload view</li> <li><code>Crowdin: Focus on Download View</code> to focus on the Download view</li> <li><code>Crowdin: Focus on Progress View</code> to focus on the Progress view</li> </ul> <p><a href="https://store.crowdin.com/visual-studio-code/" target=_blank rel="noreferrer noopener nofollow"><p align=center><img src="https://github.com/crowdin/vscode-crowdin/raw/HEAD/resources/animations/command-palette.gif" data-canonical-src="resources/animations/command-palette.gif" width=600 height=auto align=center></p></a></p> <h2 id=setup>Setup</h2> <h3 id=installation>Installation</h3> <p>Install the <em>Crowdin</em> plugin using one of the following methods:</p> <ul> <li><p>open VS Code Extensions (Ctrl+Shift+X), search for <em>Crowdin</em> and click <strong>Install</strong></p> <p>or</p> </li> <li><p>launch VS Code Quick Open (Ctrl+P), paste the below command, and press <strong>Enter</strong> <code>ext install Crowdin.vscode-crowdin</code></p> </li> </ul> <h3 id=authorization-via-browser>Authorization via browser</h3> <p>Run the following <a href="https://code.visualstudio.com/docs/getstarted/userinterface#_command-palette" target=_blank rel="noreferrer noopener nofollow">commands</a> to prepare workspace:</p> <ul> <li><code>Crowdin: Sign In</code> to log in into your Crowdin profile</li> <li><code>Crowdin: Select Project</code> to select Crowdin project</li> <li><code>Crowdin: Create configuration</code> to generate Crowdin configuration file <ul> <li>Edit <code>files</code> section according to your project needs</li> </ul> </li> </ul> <h3 id=manual-setup>Manual setup</h3> <ul> <li>Create a new Personal Access Token in your Crowdin account settings.</li> <li>Get the Project ID in the Tools > API section on your Crowdin project page.</li> <li>Prepare a <code>crowdin.yml</code> configuration file and add it to the needed workspace in Visual Studio Code.</li> </ul> <h2 id=configuration>Configuration</h2> <p>To work with the plugin in the Visual Studio Code workspace, there should be a Crowdin configuration file called either <code>crowdin.yml</code> or <code>crowdin.yaml</code>. The plugin scans each Visual Studio Code workspace to find a Crowdin configuration file and automatically builds the tree with source files in the <em>Crowdin</em> component available in your Activity Bar.</p> <p>You can create a new configuration file by using the "Crowdin: Create configuration" command in the VS Code Command Palette (Shift+Command+P/Ctrl+Shift+P).</p> <p><strong>Configuration file example:</strong></p> <pre><code class=language-yaml>"files": [ { "source": "/sources/**/*.xml", "translation": "/translations/%two_letters_code%/%original_file_name%" } ] </code></pre> <p><strong>All supported options:</strong></p> <pre><code class=language-yaml>"project_id": "projectId" // optional "api_token": "apiToken" // optional "base_path": "folder" // optional "branch": "master" // optional "base_url": "https://{organization-name}.crowdin.com" // optional (for Crowdin Enterprise only) "files": [ { "source": "/sources/**/*.xml", "translation": "/translations/%two_letters_code%/%original_file_name%", "update_option": "update_as_unapproved", // optional "excluded_target_languages": ["uk", "fr"], // optional "labels": ["android", "emails"], // optional "dest": "/app/%file_name%.xml", // optional "type": "android", // optional "update_strings": false, // optional (for strings based projects) "cleanup_mode": true // optional (for strings based projects) }, { "source": "multicolumn.csv", "translation": "multicolumn.csv", "scheme": "identifier,source_phrase,context,uk,ru,fr" // optional } ] </code></pre> <p><strong>Tip:</strong> You don't need to specify the <code>project_id</code> and <code>api_token</code> in your configuration file if you use browser authorization in the plugin.</p> <p>You can also use environment variables in the configuration file <a href="https://support.crowdin.com/configuration-file/#api-credentials-from-environment-variables" target=_blank rel="noreferrer noopener nofollow">Environment variables</a>:</p> <pre><code class=language-yaml>"project_id_env": "CROWDIN_PROJECT_ID" "api_token_env": "CROWDIN_PERSONAL_TOKEN" "base_path_env": "CROWDIN_BASE_PATH" "base_url_env": "CROWDIN_BASE_URL" </code></pre> <h2 id=extension-settings>Extension Settings</h2> <p>This extension contributes the following settings:</p> <ul> <li><code>crowdin.autoRefresh</code>: enable/disable auto refresh of the file tree after each change in the Crowdin configuration file.</li> <li><code>crowdin.stringsCompletion</code>: enable/disable autocompletion of strings keys.</li> <li><code>crowdin.stringsCompletionFileExtensions</code>: comma-separated list of file extensions for which autocomplete should be active. By default, strings autocomplete will be active in all files.</li> <li><code>crowdin.useGitBranch</code>: enable/disable the use of a Git branch as a Crowdin branch.</li> </ul> <h2 id=limitations>Limitations</h2> <p>At the moment, the plugin does not support all possible properties in the configuration file (see <a href="https://support.crowdin.com/configuration-file/" target=_blank rel="noreferrer noopener nofollow">Configuration file</a>). All properties which are supported by this plugin are listed in the example above.</p> <h2 id=seeking-assistance>Seeking Assistance</h2> <p>If you find any problems or would like to suggest a feature, please read the <a href="https://github.com/crowdin/vscode-crowdin/blob/HEAD/CONTRIBUTING.md#how-can-i-contribute" target=_blank rel="noreferrer noopener nofollow">How can I contribute</a> section in our contributing guidelines.</p> <h2 id=contributing>Contributing</h2> <p>We are happy to accept contributions to the Crowdin Visual Studio Code Plugin. If you want to contribute, please read the <a href="https://github.com/crowdin/vscode-crowdin/blob/HEAD/CONTRIBUTING.md" target=_blank rel="noreferrer noopener nofollow">Contributing</a> guidelines.</p> <h2 id=license>License</h2> <pre> The Crowdin Visual Studio Code Plugin is licensed under the MIT License. See the LICENSE file distributed with this work for additional information regarding copyright ownership. Except as contained in the LICENSE file, the name(s) of the above copyright holders shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization. </pre> </div></div></td><td class="ux-itemdetails-right" role="complementary"><div class="screenshot-carousel-container"></div><div class="loader-container"><div class="loader"></div></div><div class="itemDetails-right"></div></td></tr></tbody></table></div></div><div id="versionHistoryTab" style="display:none"><div class="versionHistoryTab-loader-container"><div class="loader"></div></div><div id="version-history-tab-content"></div></div></div></div></div></div></div></div></div></div><div id="gallery-footer"><footer><div id="ux-footer" class="ltr" role="contentinfo"><div id="baseFooter"><div id="Fragment_BaseFooterLinks"><div class="linkList"><ul class="links horizontal"><li><a href="https://www.visualstudio.com/support/support-overview-vs" data-mscc-ic="false">Contact us</a></li><li><a href="https://careers.microsoft.com/" data-mscc-ic="false">Jobs</a></li><li><a href="https://go.microsoft.com/fwlink/?LinkID=521839" data-mscc-ic="false">Privacy</a></li><li><a id="mgtConsentCookie" data-mscc-ic="false">Manage cookies</a></li><li><a href="https://aka.ms/vsmarketplace-ToU" data-mscc-ic="false">Terms of use</a></li><li><a href="https://www.microsoft.com/trademarks" data-mscc-ic="false">Trademarks</a></li></ul></div></div><div id="rightBaseFooter">©<!-- --> 2025 Microsoft<span class="microsoftLogo" title="Microsoft"></span></div><div class="clear"></div></div></div></footer></div></div></div></div> <div class="render-time"> <script class="server-side-render" defer="defer" type="application/json">2</script> </div> <div class="rhs-content"> <script class="jiContent" defer="defer" type="application/json">{"GitHubLink":"https://github.com/crowdin/vscode-crowdin.git","ReleaseDateString":"Wed, 03 Jul 2019 20:22:20 GMT","LastUpdatedDateString":"Wed, 30 Oct 2024 10:05:29 GMT","GalleryUrl":"/","Categories":["Other"],"Tags":["Crowdin","i18n","Internationalization","Localization","Multi-language","Translate","Translation"],"ExtensionProperties":{"Microsoft.VisualStudio.Services.Links.Getstarted":"https://github.com/crowdin/vscode-crowdin.git","Microsoft.VisualStudio.Services.Links.Support":"https://github.com/crowdin/vscode-crowdin/issues","Microsoft.VisualStudio.Services.Links.Learn":"https://github.com/crowdin/vscode-crowdin#readme","Microsoft.VisualStudio.Services.Links.Source":"https://github.com/crowdin/vscode-crowdin.git","Microsoft.VisualStudio.Services.Links.GitHub":"https://github.com/crowdin/vscode-crowdin.git","Microsoft.VisualStudio.Code.Engine":"^1.66.0","Microsoft.VisualStudio.Services.GitHubFlavoredMarkdown":"true","Microsoft.VisualStudio.Code.ExtensionDependencies":"","Microsoft.VisualStudio.Code.ExtensionPack":"","Microsoft.VisualStudio.Code.LocalizedLanguages":"","Microsoft.VisualStudio.Code.ExtensionKind":"workspace","Microsoft.VisualStudio.Services.Content.Pricing":"Free"},"Resources":{"LicenseText":"License","ChangelogText":"Changelog","PublisherName":"Crowdin","ExtensionName":"vscode-crowdin","Version":"2.2.3"},"MoreInfo":{"VersionValue":"2.2.3","PublisherValue":"Crowdin","UniqueIdentifierValue":"Crowdin.vscode-crowdin","TwitterShareContents":"Just%20discovered%20this%20on%20the%20%23VSMarketplace%3A%20https%3A%2F%2Fmarketplace.visualstudio.com%2Fitems%3FitemName%3DCrowdin.vscode-crowdin","EmailShareContents":"Hi%2C%20Just%20discovered%20this%20extension%20on%20the%20%23VSMarketplace%20that%20may%20be%20of%20interest%20to%20you.%20Check%20it%20out%20%40%20https%3A%2F%2Fmarketplace.visualstudio.com%2Fitems%3FitemName%3DCrowdin.vscode-crowdin%20%21","EmailShareSubject":"Check%20out%20-%20Crowdin%20for%20Visual%20Studio%20Code","IsPublic":true},"ResourcesPath":"https://cdn.vsassets.io/v/M252_20250218.9/_content/","AssetUri":"https://Crowdin.gallerycdn.vsassets.io/extensions/crowdin/vscode-crowdin/2.2.3/1730282542627","VsixManifestAssetType":"Microsoft.VisualStudio.Services.VsixManifest","StaticResourceVersion":"M252_20250218.9","AfdIdentifier":"Ref A: 16972DCF67664EFDB3AE2C3283C0088E Ref B: SG1EDGE0122 Ref C: 2025-02-26T00:26:52Z","VsixId":null,"WorksWith":["Universal"],"ItemType":3,"IsMDPruned":false,"PrunedMDLength":0,"OverviewMDLength":11114,"IsRHSAsyncComponentsEnabled":true,"OfferDetails":null,"IsDetailsTabsEnabled":false,"ShowVersionHistory":true,"IsSeeMoreButtonOnVersionHistoryTab":false,"DisableVSCodeDownloadButtonEnabled":true,"IsReferralLinkRedirectionWarningPopupEnabled":true,"Versions":[{"version":"2.2.3","lastUpdated":"Wed, 30 Oct 2024 10:05:29 GMT","targetPlatform":null},{"version":"2.2.2","lastUpdated":"Mon, 22 Jul 2024 07:15:04 GMT","targetPlatform":null},{"version":"2.2.1","lastUpdated":"Wed, 12 Jun 2024 13:11:27 GMT","targetPlatform":null},{"version":"2.2.0","lastUpdated":"Thu, 14 Mar 2024 13:46:12 GMT","targetPlatform":null},{"version":"2.1.0","lastUpdated":"Mon, 19 Feb 2024 14:54:25 GMT","targetPlatform":null}],"IsCSRFeatureEnabled":false,"TargetPlatforms":{"win32-x64":"Windows x64","win32-arm64":"Windows ARM","linux-x64":"Linux x64","linux-arm64":"Linux ARM64","linux-armhf":"Linux ARM32","darwin-x64":"macOS Intel","darwin-arm64":"macOS Apple Silicon","alpine-x64":"Alpine Linux 64 bit","web":"Web","alpine-arm64":"Alpine Linux ARM64","win32-ia32":"Windows ia32"}}</script> </div> <div class="csp-user"> <script class="is-csp-user" defer="defer" type="application/json">false</script> </div> <script type="text/javascript" nonce="+o3KCtqscJTv3xE8Jg/hSA=="> if (document) { try { if (window.performance && window.performance.timing) { window["marketplaceRenderTime"] = Date.now() - window.performance.timing.navigationStart; } } catch(e){ } } </script> <script type="text/javascript" nonce="+o3KCtqscJTv3xE8Jg/hSA=="> var __vssPageContext = {"webContext":{"user":{"id":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","name":"Anonymous","email":"","uniqueName":"TEAM FOUNDATION\\Anonymous"},"host":{"id":"2663b13f-50e3-a655-a159-22f6f4725fab","name":"TEAM FOUNDATION","uri":"https://marketplace.visualstudio.com/","relativeUri":"/","hostType":"deployment","scheme":"https","authority":"marketplace.visualstudio.com"}},"moduleLoaderConfig":{"baseUrl":"https://cdn.vsassets.io/v/M252_20250218.9/_scripts/TFS/min/","paths":{"VSSPreview/Resources":"/_static/tfs/M252_20250218.9/_scripts/TFS/min/en-US","ContentRendering/Resources":"/_static/tfs/M252_20250218.9/_scripts/TFS/min/en-US","Engagement/Resources":"/_static/tfs/M252_20250218.9/_scripts/TFS/min/en-US","Charts/Resources":"/_static/tfs/M252_20250218.9/_scripts/TFS/min/en-US","Gallery/Scripts/Gallery/Resources":"/_static/tfs/M252_20250218.9/_scripts/TFS/min/en-US","VSS/Resources":"/_static/tfs/M252_20250218.9/_scripts/TFS/min/en-US","highcharts":"https://cdn.vsassets.io/3rdParty/_scripts/highcharts.v11.4.6","highcharts/highcharts-more":"https://cdn.vsassets.io/3rdParty/_scripts/highcharts-more.v11.4.6","highcharts/modules/accessibility":"https://cdn.vsassets.io/3rdParty/_scripts/highcharts-accessibility.v11.4.6","highcharts/modules/funnel":"https://cdn.vsassets.io/3rdParty/_scripts/highcharts-funnel.v11.4.6","highcharts/modules/heatmap":"https://cdn.vsassets.io/3rdParty/_scripts/highcharts-heatmap.v11.4.6"},"map":{"*":{"office-ui-fabric-react/lib":"OfficeFabric"}},"contributionPaths":{"VSS":{"value":"/_static/tfs/M252_20250218.9/_scripts/TFS/min/VSS","pathType":"default"},"VSS/Resources":{"value":"/_static/tfs/M252_20250218.9/_scripts/TFS/min/en-US","pathType":"resource"},"q":{"value":"/_static/tfs/M252_20250218.9/_scripts/TFS/min/q","pathType":"default"},"knockout":{"value":"/_static/tfs/M252_20250218.9/_scripts/TFS/min/knockout","pathType":"default"},"mousetrap":{"value":"/_static/tfs/M252_20250218.9/_scripts/TFS/min/mousetrap","pathType":"default"},"mustache":{"value":"/_static/tfs/M252_20250218.9/_scripts/TFS/min/mustache","pathType":"default"},"react":{"value":"/_static/tfs/M252_20250218.9/_scripts/TFS/min/react.15.3","pathType":"default"},"react-dom":{"value":"/_static/tfs/M252_20250218.9/_scripts/TFS/min/react-dom.15.3","pathType":"default"},"react-transition-group":{"value":"/_static/tfs/M252_20250218.9/_scripts/TFS/min/react-transition-group.15.3","pathType":"default"},"jQueryUI":{"value":"/_static/tfs/M252_20250218.9/_scripts/TFS/min/jQueryUI","pathType":"default"},"jquery":{"value":"/_static/tfs/M252_20250218.9/_scripts/TFS/min/jquery","pathType":"default"},"OfficeFabric":{"value":"/_static/tfs/M252_20250218.9/_scripts/TFS/min/OfficeFabric","pathType":"default"},"tslib":{"value":"/_static/tfs/M252_20250218.9/_scripts/TFS/min/tslib","pathType":"default"},"@uifabric":{"value":"/_static/tfs/M252_20250218.9/_scripts/TFS/min/@uifabric","pathType":"default"},"VSSUI":{"value":"/_static/tfs/M252_20250218.9/_scripts/TFS/min/VSSUI","pathType":"default"},"ContentRendering":{"value":"/_static/tfs/M252_20250218.9/_scripts/TFS/min/ContentRendering","pathType":"default"},"ContentRendering/Resources":{"value":"/_static/tfs/M252_20250218.9/_scripts/TFS/min/en-US","pathType":"resource"},"Charts":{"value":"/_static/tfs/M252_20250218.9/_scripts/TFS/min/Charts","pathType":"default"},"Charts/Resources":{"value":"/_static/tfs/M252_20250218.9/_scripts/TFS/min/en-US","pathType":"resource"},"highcharts":{"value":"https://cdn.vsassets.io/3rdParty/_scripts/highcharts.v11.4.6","pathType":"thirdParty"},"highcharts/highcharts-more":{"value":"https://cdn.vsassets.io/3rdParty/_scripts/highcharts-more.v11.4.6","pathType":"thirdParty"},"highcharts/modules/accessibility":{"value":"https://cdn.vsassets.io/3rdParty/_scripts/highcharts-accessibility.v11.4.6","pathType":"thirdParty"},"highcharts/modules/funnel":{"value":"https://cdn.vsassets.io/3rdParty/_scripts/highcharts-funnel.v11.4.6","pathType":"thirdParty"},"highcharts/modules/heatmap":{"value":"https://cdn.vsassets.io/3rdParty/_scripts/highcharts-heatmap.v11.4.6","pathType":"thirdParty"}},"shim":{"jquery":{"deps":[],"exports":"jQuery"}},"waitSeconds":30},"coreReferences":{"stylesheets":[{"url":"/_static/tfs/M252_20250218.9/_cssbundles/Default/vss-bundle-ext-core-css-vdl6C9oqaY8jIYGt0fSVzQfhTlc3U3sLKE8T0mcZwW_0=","highContrastUrl":null,"isCoreStylesheet":true}],"scripts":[{"identifier":"JQuery","url":"https://cdn.vsassets.io/3rdParty/_scripts/jquery-3.6.0.min.js","fallbackUrl":null,"fallbackCondition":null,"isCoreModule":true},{"identifier":"JQueryXDomain","url":"https://cdn.vsassets.io/3rdParty/_scripts/jquery.xdomainrequest.min.js","fallbackUrl":null,"fallbackCondition":null,"isCoreModule":true},{"identifier":"Promise","url":"https://cdn.vsassets.io/v/M252_20250218.9/_scripts/TFS/min/promise.js","fallbackUrl":null,"fallbackCondition":null,"isCoreModule":true},{"identifier":"GlobalScripts","url":"https://cdn.vsassets.io/v/M252_20250218.9/_scripts/TFS/min/global-scripts.js","fallbackUrl":null,"fallbackCondition":null,"isCoreModule":true},{"identifier":"LoaderFixes","url":"https://cdn.vsassets.io/v/M252_20250218.9/_scripts/TFS/pre-loader-shim.min.js","fallbackUrl":null,"fallbackCondition":null,"isCoreModule":false},{"identifier":"AMDLoader","url":"https://cdn.vsassets.io/3rdParty/_scripts/require.min.js","fallbackUrl":null,"fallbackCondition":null,"isCoreModule":true},{"identifier":"LoaderFixes","url":"https://cdn.vsassets.io/v/M252_20250218.9/_scripts/TFS/post-loader-shim.min.js","fallbackUrl":null,"fallbackCondition":null,"isCoreModule":false}],"coreScriptsBundle":{"identifier":"CoreBundle","url":"/_public/_Bundling/Content?bundle=vss-bundle-basejs-vx38JYf0FTtFkI9k88H54KYCLs9sIP_6xJwgWGnd-xvw=","fallbackUrl":null,"fallbackCondition":null,"isCoreModule":true},"extensionCoreReferences":{"identifier":"CoreBundle","url":"/_public/_Bundling/Content?bundle=vss-bundle-ext-core-vqwTrJ55sQn93WfGv3oBntAe2iLY8rrEFnbzK7Zmw9ps=","fallbackUrl":null,"fallbackCondition":null,"isCoreModule":true}},"webAccessConfiguration":{"isHosted":true,"paths":{"rootPath":"/","staticContentRootPath":"/","staticContentVersion":"M252_20250218.9","resourcesPath":"https://cdn.vsassets.io/v/M252_20250218.9/_content/","staticRootTfs":"https://cdn.vsassets.io/v/M252_20250218.9/","cdnFallbackStaticRootTfs":"/_static/tfs/M252_20250218.9/","staticRoot3rdParty":"https://cdn.vsassets.io/3rdParty/"},"api":{"webApiVersion":"1","areaPrefix":"_","controllerPrefix":"_"},"mailSettings":{"enabled":false},"registryItems":{}},"microsoftAjaxConfig":{"cultureInfo":{"name":"en-US","numberFormat":{"CurrencyDecimalDigits":2,"CurrencyDecimalSeparator":".","IsReadOnly":true,"CurrencyGroupSizes":[3],"NumberGroupSizes":[3],"PercentGroupSizes":[3],"CurrencyGroupSeparator":",","CurrencySymbol":"$","NaNSymbol":"NaN","CurrencyNegativePattern":0,"NumberNegativePattern":1,"PercentPositivePattern":1,"PercentNegativePattern":1,"NegativeInfinitySymbol":"-∞","NegativeSign":"-","NumberDecimalDigits":2,"NumberDecimalSeparator":".","NumberGroupSeparator":",","CurrencyPositivePattern":0,"PositiveInfinitySymbol":"∞","PositiveSign":"+","PercentDecimalDigits":2,"PercentDecimalSeparator":".","PercentGroupSeparator":",","PercentSymbol":"%","PerMilleSymbol":"‰","NativeDigits":["0","1","2","3","4","5","6","7","8","9"],"DigitSubstitution":1},"dateTimeFormat":{"AMDesignator":"AM","Calendar":{"MinSupportedDateTime":"0001-01-01T00:00:00","MaxSupportedDateTime":"9999-12-31T23:59:59.9999999","AlgorithmType":1,"CalendarType":1,"Eras":[1],"TwoDigitYearMax":2049,"IsReadOnly":true},"DateSeparator":"/","FirstDayOfWeek":0,"CalendarWeekRule":0,"FullDateTimePattern":"dddd, MMMM d, yyyy h:mm:ss tt","LongDatePattern":"dddd, MMMM d, yyyy","LongTimePattern":"h:mm:ss tt","MonthDayPattern":"MMMM d","PMDesignator":"PM","RFC1123Pattern":"ddd, dd MMM yyyy HH':'mm':'ss 'GMT'","ShortDatePattern":"M/d/yyyy","ShortTimePattern":"h:mm tt","SortableDateTimePattern":"yyyy'-'MM'-'dd'T'HH':'mm':'ss","TimeSeparator":":","UniversalSortableDateTimePattern":"yyyy'-'MM'-'dd HH':'mm':'ss'Z'","YearMonthPattern":"MMMM yyyy","AbbreviatedDayNames":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"ShortestDayNames":["Su","Mo","Tu","We","Th","Fr","Sa"],"DayNames":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"AbbreviatedMonthNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthNames":["January","February","March","April","May","June","July","August","September","October","November","December",""],"IsReadOnly":true,"NativeCalendarName":"Gregorian Calendar","AbbreviatedMonthGenitiveNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthGenitiveNames":["January","February","March","April","May","June","July","August","September","October","November","December",""]},"numberShortForm":{"QuantitySymbols":["K","M","B"],"NumberGroupSize":1000,"ThousandSymbol":"K"},"eras":null}},"timeZonesConfiguration":{},"featureAvailability":{"featureStates":{"VisualStudio.Services.Contribution.EnableOnPremUnsecureBrowsers":false,"VisualStudio.Service.WebPlatform.ClientErrorReporting":true,"Microsoft.VisualStudio.Services.Gallery.Client.UseCdnAssetUri":false,"VisualStudio.Services.WebAccess.SubresourceIntegrity":false,"VisualStudio.Services.IdentityPicker.ReactProfileCard":true}},"appInsightsConfiguration":{"enabled":false,"instrumentationKey":"00000000-0000-0000-0000-000000000000","insightsScriptUrl":null},"diagnostics":{"sessionId":"693286a2-c96c-474b-aa2c-2a9d9f32a51a","activityId":"693286a2-c96c-474b-aa2c-2a9d9f32a51a","bundlingEnabled":true,"cdnAvailable":true,"cdnEnabled":true,"webPlatformVersion":"M252","serviceVersion":"Dev19.M252.1 (build: AzureDevOps_M252_20250218.9)"},"navigation":{"topMostLevel":"deployment","area":"","currentController":"Gallery","currentAction":"Details","commandName":"Gallery.Details","routeId":"ms.vss-gallery-web.gallery-route-details","routeTemplates":["items"],"routeValues":{"controller":"Gallery","action":"Details"}},"globalization":{"explicitTheme":"","theme":"Default","culture":"en-US","timezoneOffset":0,"timeZoneId":"UTC"},"serviceInstanceId":"00000029-0000-8888-8000-000000000000","hubsContext":{},"serviceLocations":{"locations":{"951917ac-a960-4999-8464-e3f0aa25b381":{"Application":"https://app.vssps.visualstudio.com/","Deployment":"https://app.vssps.visualstudio.com/"}}}};</script> <script defer="true" data-bundlelength="127542" data-bundlename="basejs" nonce="+o3KCtqscJTv3xE8Jg/hSA==" src="/_public/_Bundling/Content?bundle=vss-bundle-basejs-vx38JYf0FTtFkI9k88H54KYCLs9sIP_6xJwgWGnd-xvw=" type="text/javascript"></script> <script defer="true" data-bundlelength="227544" data-bundlename="common" data-includedscripts="VSS/Bundling" nonce="+o3KCtqscJTv3xE8Jg/hSA==" src="/_public/_Bundling/Content?bundle=vss-bundle-common-v4x8_pIABOx55_YHwFRpvRPY7RlvTKDdVy4Z-7LptCWo=" type="text/javascript"></script><script defer="true" data-bundlelength="2205643" data-bundlename="view" data-includedscripts="Gallery/Client/Pages/VSSItemDetailsSSR/VSSItemDetailsSSRAsync" nonce="+o3KCtqscJTv3xE8Jg/hSA==" src="/_public/_Bundling/Content?bundle=vss-bundle-view-vL-HxjMBTTpV_9AdFLsMM_9Tdto7GC4umhYpMNF9VTJw=" type="text/javascript"></script> <script defer=true nonce="+o3KCtqscJTv3xE8Jg/hSA==" src="/_static/tfs/M252_20250218.9/_scripts/TFS/min/Gallery/Client/Pages/VSSItemDetailsSSR/SSRModuleWrappers.js"></script> <script nonce="+o3KCtqscJTv3xE8Jg/hSA==" src="/_static/tfs/M252_20250218.9/_scripts/TFS/min/Gallery/Client/Common/ManageCookieDrop.js"></script> </body> </html>