microsoft / microsoft/vscode

Extension command titles lose localization after installing/updating an extension until full restart (VS Code 1.133)

Open
#330,908 2 comments 0 reactions 1 assignee Assigned to @TylerLeonhardt View on GitHub
Dominant language
TypeScript
Stars
193k
Forks
42.4k
PR merge metrics
PR metrics pending

Description

**Does this issue occur when all extensions are disabled?:** No - the issue affects ALL extensions' command titles when a language pack is active.

**Issue:**
After installing or updating ANY extension while VS Code is running, all extension command titles in the Command Palette (Ctrl+Shift+P) lose their localization (revert to English), even though the built-in commands remain localized. The issue persists until VS Code is **fully restarted** (File > Exit, not Reload Window). Switching profiles (which triggers a full extension re-scan) also temporarily restores localization.

**Environment:**
- VS Code Version: 1.133.0
- OS Version: Windows
- Language pack: Chinese (Simplified) 1.131.2026072717 (ms-ceintl.vscode-language-pack-zh-hans)
- Profiles in use: custom profiles (Base, Base->Dev) with inherit-profile-plus

**Steps to Reproduce:**
1. Start VS Code with a language pack active (e.g. Chinese). Extension commands are localized correctly.
2. Install or update ANY third-party extension (e.g. via `code --install-extension ` or the Extensions view).
3. Open Command Palette (Ctrl+Shift+P). Now ALL third-party extension command titles show in English (e.g. "TokenRhythm: Manage API Keys" instead of the Chinese "管理 API Keys"). Other extensions (GitLens, Python, etc.) are affected too.
4. Reload Window (Developer: Reload Window) does NOT fix it.
5. Fully exit VS Code and restart -> localization returns.

**Expected:** Extension command titles remain localized after extension install/update without a full restart.

**Actual:** Extension command titles revert to English until full restart.

**Additional evidence:**
- Built-in (core) command titles remain localized - only extension-provided commands lose translations.
- Exthost log shows repeated warnings after the install: `Using default string since no string found in i18n bundle that has the key: ...` (e.g. from the built-in Copilot extension).
- The extension's own `package.nls.zh-cn.json` file is intact (valid JSON, UTF-8, no BOM) and present in the installed extension folder and inside the .vsix.
- Language pack caches are intact: `%APPDATA%\Code\languagepacks.json` and `%APPDATA%\Code\clp\.zh-cn\tcf.json` both exist with correct mappings.
- Root-cause hypothesis: the extension scanner (`extensionsScannerService`) uses the correct `zh-cn` locale during a full scan (startup / profile switch), but during the **incremental re-scan** triggered by an extension install/update, `nlsConfiguration.language` is missing, so `package.nls..json` is never loaded for the updated extension and the manifest `%key%` references are not translated.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.