42 lines
1.4 KiB
Markdown
42 lines
1.4 KiB
Markdown
# @vscode/l10n
|
|
|
|
Library used for loading the translations into subprocesses of your extension. These usages also get picked up by [l10n-dev](https://github.com/microsoft/vscode-l10n/tree/main/l10n-dev) string extraction tooling.
|
|
|
|
> **Note**
|
|
>
|
|
> You should _NOT_ use this library in your extension's main process. The translations are loaded into the main process by VS Code itself.
|
|
|
|
## Usage
|
|
|
|
```typescript
|
|
import * as l10n from '@vscode/l10n';
|
|
|
|
// Load the translations for the current locale
|
|
l10n.config({
|
|
contents: JSON.parse(process.env.BUNDLE_FROM_EXTENSION)
|
|
});
|
|
// or
|
|
l10n.config({
|
|
fsPath: process.env.FSPATH_TO_BUNDLE_FROM_EXTENSION
|
|
});
|
|
// or (warning, this is async)
|
|
await l10n.config({
|
|
uri: JSON.parse(process.env.BUNDLE_URI_FROM_EXTENSION)
|
|
});
|
|
|
|
// returns the translated string or the original string if no translation is available
|
|
l10n.t('Hello World');
|
|
|
|
// supports arguments just like the vscode API
|
|
l10n.t('Hello {0}', 'John');
|
|
|
|
// supports comments for translators
|
|
l10n.t({
|
|
message: 'Hello {0}',
|
|
args: ['John'],
|
|
comment: ['This is a comment']
|
|
});
|
|
```
|
|
|
|
The input for `l10n.conig` pairs nicely with the `bundle` and `uri` properties on the `l10n` namespace that are provided by the [VS Code API](https://code.visualstudio.com/api/references/vscode-api#l10n).
|
|
You should send the value of one of these properties from your extension to your subprocess that is consuming `@vscode/l10n`.
|