Skip to content

Localize Code #2041

@egamma

Description

@egamma

Today we have the Monaco editor localized. This plan item captures how we get to a localized VS Code.

We need to localize both the core and the extensions we bundle.

Core + Helper Apps

The core includes the main process, renderer, and extension host. All these components use AMD and we will use the same localization approach as is used in the Monaco editor (nls.localize).

The core includes some built-in languages like PHP, CSS, JSON. Each of these languages comes with strings that are used as documentation for Intellisense or validation (PHP built-in functions, CSS attribute descriptions, JSON schema descriptions from http://schemastore.org/json/). We will not externalize and translate these strings initially.

Tasks:

  • Provide a tslint rule to check for non-externalized strings. @dbaeumer
  • Externalize the remaining strings. Major areas of the workbench are already localized, but there are gaps. @Microsoft/vscode
  • Review the places where we expose exception messages directly to the user (e.g. editor, explorer, git, search) and ensure that a higher-level translatable error message is shown in the UI, which incluldes the raw error as detail in parenthesis. @bpasero
  • Localize the Search App. @dbaeumer
  • Localize the Git App @dbaeumer
  • Plugin Host @dbaeumer
  • Main @dbaeumer
  • Renderer @dbaeumer

Extensions

Extensions are implemented using the CommonJS modules and the AMD based externalization used in the Code cannot be use. The goal is to use the same file format for the language bundles used for the Core and extensions.

An extensions has contributes strings in the package.json and from the code. We need a localization support for both.

Tasks:

  • Localization support for the package.json.
  • Provide a node localization module that uses the same file format as for the core and that can be used by extensions..
  • Provide nls-checking tool to check for non-localized strings for the bundled extensions
  • Externalize bundled extensions (with user visible strings)
    • TypeScript
    • JSON
    • ❓ others

Debug Adapters

  • Support that messages from the debug adapter can be localized @weinand

Development Tasks

  • Support pseudo localization for testing.
  • Document the localization support so that the community can contribute translations.
  • Tools to enable contributions of translations.
  • Support install/update localized Code versions.

Roadmap

  • January
    • Core + Apps is localized
    • Demo Code in German (minus extensions)
  • February
    • Bundled extensions are localized
    • Bundled debug adapter are localized
    • Demo Code in German with a localized extension

Metadata

Metadata

Assignees

Labels

plan-itemVS Code - planned item for upcoming

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions