Add localization (i18n) support, starting with Simplified Chinese (zh-cn)

Open
#648 3 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

@linghengqian is already working on this.

Since Nov 5, 2026.

  • #650 by @linghengqian — open

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
45/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
typescript, vscode

Research direction

Start with extensions/vscode-containers/package.json, extension/package.nls.json, and the existing l10n.t() calls in extensions/vscode-containers/src and packages/vscode-docker-registries/src. Check how Dev Containers structures its localization files and how the registry package is bundled; then define the extraction and translation workflow for zh-cn and cover the listed remaining literals. Done means manifest and runtime strings load in Simplified Chinese and new runtime strings can be exported.

Written by the indexing model from the issue text.

Description

The current release of Container Tools ships no translations. With the Chinese (Simplified) Language Pack, VS Code itself is in Chinese, but everything this extension adds (view and command names, setting descriptions, quick picks, notifications, error messages) is English.

I'd like to request localization support, with Simplified Chinese (zh-cn) first. Other VS Code display languages could follow.

What I checked

  • The current Marketplace build, ms-azuretools.vscode-containers 2.5.3, contains extension/package.nls.json (English, 369 keys) and no other localization files. There is no package.nls.<locale>.json, no l10n/ folder, and no "l10n" field in package.json, so VS Code has nothing to load for any non-English display language.
  • The source is mostly prepared for it. At cb1dcf0 (main), package.json uses 367 %key% placeholders defined in package.nls.json, and the shipped code has 446 l10n.t() calls in 145 files (extensions/vscode-containers/src and packages/vscode-docker-registries/src, tests excluded). .github/skills/code-review/rubric.md also asks that every user-facing string be localized.
  • I found no @vscode/l10n-dev dependency, no script that exports bundle.l10n.json, and no translated files in the repo.
  • Dev Containers (ms-vscode-remote.remote-containers 0.471.0) is the closest comparison. It ships package.nls.<locale>.json and l10n/bundle.l10n.<locale>.json for 13 languages, including zh-cn and zh-tw, and sets "l10n": "./l10n".
  • I searched issues, pull requests and discussions in this repo for "i18n", "l10n", "localization", "translation" and "Chinese" and found no existing request. The closest are #582 and #583, which moved the container client labels into package.nls.json so they can be localized.

Request

  1. Ship translated resources: package.nls.<locale>.json for the manifest and l10n/bundle.l10n.<locale>.json for runtime strings, with "l10n": "./l10n" in package.json. Start with zh-cn.
  2. Add an extraction step (for example @vscode/l10n-dev export) so new strings reach the bundle. It needs to cover packages/vscode-docker-registries, which is bundled from source.
  3. Wrap the strings that are still literals. A few I noticed at cb1dcf0:
    • extensions/vscode-containers/package.json: the debugger label and the launch snippet labels and descriptions
    • extensions/vscode-containers/src/utils/multiSelectNodes.ts:51
    • extensions/vscode-containers/src/commands/registries/deleteRemoteImage.ts:41
    • extensions/vscode-containers/src/commands/registries/azure/createAzureRegistry.ts:57

Questions

  • Is localization planned? Could Container Tools use the same Microsoft localization process as Dev Containers?
  • If not, would you accept community translations as pull requests, and in what form (files, review process)?
Dominant language
TypeScript
Stars
147
Forks
93
Avg merge
9h 16m
Merged PRs (30d)
14

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from microsoft/vscode-containers

All issues in microsoft/vscode-containers

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.