From 8b4fe27f61d46808927b3b19a9ee7d198265850d Mon Sep 17 00:00:00 2001 From: Asher Date: Wed, 22 Dec 2021 21:01:07 +0000 Subject: [PATCH] Restore display language support For https://github.com/coder/code-server/issues/4598. --- src/vs/base/common/platform.ts | 16 ++++++ src/vs/base/parts/ipc/common/ipc.ts | 2 +- .../code/browser/workbench/workbench-dev.html | 3 + src/vs/code/browser/workbench/workbench.html | 30 +++++++++- .../environment/common/environmentService.ts | 2 +- .../server/@types/code-server-lib/index.d.ts | 1 + .../server/remoteExtensionHostAgentServer.ts | 18 +++++- src/vs/server/remoteLanguagePacks.ts | 55 +++++++++++++++++++ src/vs/server/serverEnvironmentService.ts | 4 +- src/vs/server/webClientServer.ts | 5 ++ .../browser/localizationsService.ts | 28 ++++++++++ src/vs/workbench/workbench.web.main.ts | 8 +++ 12 files changed, 164 insertions(+), 8 deletions(-) create mode 100644 src/vs/workbench/services/localizations/browser/localizationsService.ts diff --git a/src/vs/base/common/platform.ts b/src/vs/base/common/platform.ts index 723d1c3ed3168..648d3f4be7e31 100644 --- a/src/vs/base/common/platform.ts +++ b/src/vs/base/common/platform.ts @@ -81,6 +81,22 @@ if (typeof navigator === 'object' && !isElectronRenderer) { _isWeb = true; _locale = navigator.language; _language = _locale; + + /** + * Make languages work. + * + * @author coder + */ + const el = typeof document !== 'undefined' && document.getElementById('vscode-remote-nls-configuration'); + const rawNlsConfig = el && el.getAttribute('data-settings'); + if (rawNlsConfig) { + try { + const nlsConfig: NLSConfig = JSON.parse(rawNlsConfig); + _locale = nlsConfig.locale; + _translationsConfigFile = nlsConfig._translationsConfigFile; + _language = nlsConfig.availableLanguages['*'] || LANGUAGE_DEFAULT; + } catch (error) { /* Oh well. */ } + } } // Native environment diff --git a/src/vs/base/parts/ipc/common/ipc.ts b/src/vs/base/parts/ipc/common/ipc.ts index fcb5823f0cb87..344d83302240c 100644 --- a/src/vs/base/parts/ipc/common/ipc.ts +++ b/src/vs/base/parts/ipc/common/ipc.ts @@ -1056,7 +1056,7 @@ export namespace ProxyChannel { export interface ICreateServiceChannelOptions extends IProxyOptions { } - export function fromService(service: unknown, options?: ICreateServiceChannelOptions): IServerChannel { + export function fromService(service: unknown, options?: ICreateServiceChannelOptions): IServerChannel { const handler = service as { [key: string]: unknown }; const disableMarshalling = options && options.disableMarshalling; diff --git a/src/vs/code/browser/workbench/workbench-dev.html b/src/vs/code/browser/workbench/workbench-dev.html index 7caeae015cfaa..49b5d99d31bc1 100644 --- a/src/vs/code/browser/workbench/workbench-dev.html +++ b/src/vs/code/browser/workbench/workbench-dev.html @@ -23,6 +23,9 @@ + + + diff --git a/src/vs/code/browser/workbench/workbench.html b/src/vs/code/browser/workbench/workbench.html index 238a1eff989d7..4f97f5b635da7 100644 --- a/src/vs/code/browser/workbench/workbench.html +++ b/src/vs/code/browser/workbench/workbench.html @@ -23,6 +23,9 @@ + + + @@ -42,9 +45,31 @@