fix: missing translations of remote built-in extensions - #249430
Conversation
|
@microsoft-github-policy-service agree |
|
Can you please share more information here - what is the bug? Are there steps to reproduce? Any screenshots would be helpful. Before that please file an issue first with all this information. Thanks |
|
Sandeep Somavarapu (@sandy081) Hi thanks for showing up. I have created an issue linked to this PR: #250579 |
|
hyrious (@hyrious) how did you test this change, because I just tested it (by building a local build of VS Code) and it sadly does not work (I'm using a pseudolanguage pack since I know only English)
|
|
Sandeep Somavarapu (@sandy081) your guidance would be nice here. The steps are easy to reproduce:
These strings are localized in the manifest so I'm not sure why, when there's a remote, the manifest strings would stick to English. |
|
TylerLeonhardt A little tricky to test because the remote host should also be built by yourself. If you're using the official reh build in the remote host it wouldn't work. I actually tested it by manually port changes to the code-server. You may have a try:
|
|
|
I built an Insiders build off of this branch and can confirm that this fixes the problem :) |
| let scanAllExtensionsPromise = this.scanAllExtensionPromise.get(profileLocation); | ||
| if (!scanAllExtensionsPromise) { | ||
| scanAllExtensionsPromise = this.extensionsScannerService.scanAllExtensions({}, userScanOptions) | ||
| scanAllExtensionsPromise = this.extensionsScannerService.scanAllExtensions({ language }, userScanOptions) |
There was a problem hiding this comment.
Is not this promise should be cached by language?
There was a problem hiding this comment.
Oh.. yes. Maybe I will just use ${profileLocation}?${language} for key of the scanAllExtensionPromise map?
There was a problem hiding this comment.
Yes, you need to change both scanned extensions promises map
There was a problem hiding this comment.
Sandeep Somavarapu (@sandy081) Sorry, just noticed the comment. Code updated.
|
Sandeep Somavarapu (@sandy081) I defer to you for final approval |
22708b9
|
TylerLeonhardt Approved from my side. Should we merge? |
|
hyrious (@hyrious) this fix is going to make a lot of devs happy. Thank you for contributing! |

Kevin Cui (@BlackHole1) noticed that some translations are missing when develop in remote mode. After digging a bit, we found that only built-in extensions' NLS messages are missing. For example, the Source Control view (contributed by the built-in 'Git' extension) and built-in extensions' configurations are in English.
Despite that the remote server will download and install the corresponding language pack extension, it does not pick the language pack up because of 2 problems:
nls.keys.jsonin the server build, causingclp/{hash}.{lang}/*failed to generate.This PR fixes the 2 problems.
Note about problem 1: The original code
Promise.all([mkdir, read keys, read messages])will fail when the keys file is missing, but the mkdir task would succeed and leave an empty folder which prevents it regenerate in the next calling. So I changed the testing logic from the folder to the file in it.Fixes #250579