Locale Forge
February 24, 2026 ยท View on GitHub
Locale Forge is a VS Code extension that generates locale JSON files from English source files using OpenAI, with parallel translation requests and strict placeholder preservation checks.
Features
- Generate locale files from the active file.
- Generate locale files from all currently open tabs.
- Support both locale layouts:
.../en.json->.../<locale>.json.../*.en.json->.../*.<locale>.json
- Parallel translation for faster runs.
- Strict validation:
- Flat JSON object only.
- Keys must be identical.
- Placeholders such as
{name},{{count}},%smust remain intact.
Commands
Locale Forge: Set OpenAI API Key(localeforge.setApiKey)Locale Forge: Configure Locales(localeforge.configureLocales)Locale Forge: Generate Locales From Active File(localeforge.generateFromActiveFile)Locale Forge: Generate Locales From Open Tabs(localeforge.generateFromOpenTabs)
Configuration
| Setting | Default | Description |
|---|---|---|
localeforge.sourceLocale | "en" | Source locale code. |
localeforge.targetLocales | ["es","fr","de","it","pt-BR"] | Locales to generate. |
localeforge.autoDetectTargetLocales | true | Auto-include locales detected from sibling files. |
localeforge.openai.model | "gpt-4.1-mini" | OpenAI model for translations. |
localeforge.concurrency | 4 | Max parallel translation calls. |
localeforge.filePatterns | ["**/en.json","**/*.en.json"] | Source file detection patterns. |
localeforge.overwriteExisting | true | Overwrite existing locale files when generating. |
Usage
- Run
Locale Forge: Set OpenAI API Key. - Run
Locale Forge: Configure Localesand choose source/target locales interactively. - Open a source locale file such as
en.jsonormessages.en.json. - Run one of:
Locale Forge: Generate Locales From Active FileLocale Forge: Generate Locales From Open Tabs
- Review output in the
Locale Forgeoutput channel.
If autoDetectTargetLocales is enabled, Locale Forge also discovers existing sibling locale files automatically (for example, ar.json next to en.json, or messages.fr.json next to messages.en.json).
Development
npm install
npm run lint
npm run compile
npm run test
npm run package:vsix
Release
- CI runs on every push to
main. - The workflow builds, tests, packages a
.vsix, and attempts publish to Marketplace ifVSCE_PATis available and the version is not already published.
See:
docs/architecture.mddocs/release.md