Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable grabbing translations from an alternate location for server distro/serverful scenarios #150436

Merged
merged 11 commits into from May 26, 2022
1 change: 1 addition & 0 deletions src/vs/base/common/product.ts
Expand Up @@ -74,6 +74,7 @@ export interface IProductConfiguration {
readonly resourceUrlTemplate: string;
readonly controlUrl: string;
readonly recommendationsUrl: string;
readonly nlsBaseUrl: string;
};

readonly extensionTips?: { [id: string]: string };
Expand Down
16 changes: 15 additions & 1 deletion src/vs/code/browser/workbench/workbench.html
Expand Up @@ -40,6 +40,19 @@
Object.keys(self.webPackagePaths).map(function (key, index) {
self.webPackagePaths[key] = `${baseUrl}/node_modules/${key}/${self.webPackagePaths[key]}`;
});

// Set up nls if the user is not using the default language (English)
const nlsConfig = {};
const locale = navigator.language;
if (!locale.startsWith('en')) {
nlsConfig['vs/nls'] = {
availableLanguages: {
'*': locale
},
baseUrl: '{{WORKBENCH_NLS_BASE_URL}}'
};
}

require.config({
baseUrl: `${baseUrl}/out`,
recordStats: true,
Expand All @@ -48,7 +61,8 @@
return value;
}
}),
paths: self.webPackagePaths
paths: self.webPackagePaths,
...nlsConfig
});
</script>
<script>
Expand Down
7 changes: 6 additions & 1 deletion src/vs/server/node/webClientServer.ts
Expand Up @@ -320,10 +320,15 @@ export class WebClientServer {
callbackRoute: this._callbackRoute
};

let nlsBaseUrl = this._productService.extensionsGallery?.nlsBaseUrl;
if (!nlsBaseUrl?.endsWith('/')) {
nlsBaseUrl += '/';
}
const values: { [key: string]: string } = {
WORKBENCH_WEB_CONFIGURATION: asJSON(workbenchWebConfiguration),
WORKBENCH_AUTH_SESSION: authSessionInfo ? asJSON(authSessionInfo) : '',
WORKBENCH_WEB_BASE_URL: this._staticRoute,
WORKBENCH_NLS_BASE_URL: nlsBaseUrl ? `${nlsBaseUrl}${this._productService.commit}/${this._productService.version}/` : '',
};


Expand All @@ -340,7 +345,7 @@ export class WebClientServer {
'default-src \'self\';',
'img-src \'self\' https: data: blob:;',
'media-src \'self\';',
`script-src 'self' 'unsafe-eval' ${this._getScriptCspHashes(data).join(' ')} 'sha256-fh3TwPMflhsEIpR8g1OYTIMVWhXTLcjQ9kh2tIpmv54=' http://${remoteAuthority};`, // the sha is the same as in src/vs/workbench/services/extensions/worker/webWorkerExtensionHostIframe.html
`script-src 'self' 'unsafe-eval' ${this._getScriptCspHashes(data).join(' ')} 'sha256-fh3TwPMflhsEIpR8g1OYTIMVWhXTLcjQ9kh2tIpmv54=' http://${remoteAuthority} ${nlsBaseUrl ?? ''};`, // the sha is the same as in src/vs/workbench/services/extensions/worker/webWorkerExtensionHostIframe.html
'child-src \'self\';',
`frame-src 'self' https://*.vscode-cdn.net data:;`,
'worker-src \'self\' data:;',
Expand Down