I18n BoostSupercharge your internationalization (i18n) workflow. Integrates directly into your editor to help you navigate, manage, and use translation keys faster. Supported Frameworks
Works with React, Vue, Svelte, Next.js, i18next, vue-i18n, next-intl and more. Features1. Autocomplete for
|
| Setting | Description | Default Value |
|---|---|---|
i18nBoost.localesPath |
Path to translation files folder (relative to workspace root) | "src/i18n" |
i18nBoost.fileNamingPattern |
Pattern for locale file naming | "auto" |
i18nBoost.keyStrategy |
How translation keys are constructed (see below) | "filename" |
i18nBoost.functionNames |
Function names that trigger autocomplete (e.g., t, $t) |
["t", ...] |
i18nBoost.defaultLocale |
Default locale to navigate to on Ctrl+Click | "en" |
i18nBoost.enabled |
Enable/disable extension features | true |
📂 File Naming Patterns
Define how your translation files are organized within the localesPath:
"auto": Automatically detects the pattern based on your files."locale.json": Each locale is a single JSON file.- Example:
en.json,ar.json,es.json
- Example:
- **
"locale/**/\*.json"**: Each locale is a directory containing multiple JSON files.- Example:
en/common.json,en/auth/login.json
- Example:
🔑 Understanding keyStrategy
This setting determines how the extension reads your translation keys. Choose the one that matches your i18n library usage:
filename(Default): The file name acts as a namespace.- Structure:
locales/en/auth.jsoncontaining keylogin. - Usage:
t("auth.login") - Best for: Projects that split translations into multiple files (namespaces).
- Structure:
flat: File paths are ignored; keys are read directly from the JSON structure.- Structure:
locales/en.jsoncontaining nested objectauth: { login: ... }. - Usage:
t("auth.login") - Best for: Projects using a single large translation file or libraries that merge all files.
- Structure:
Example Configuration
.vscode/settings.json (workspace-specific):
{
"i18nBoost.localesPath": "./src/locales",
"i18nBoost.defaultLocale": "en",
"i18nBoost.functionNames": [
"t",
"translate",
"$t",
"i18n.t",
"t.raw",
"t.rich"
],
"i18nBoost.fileNamingPattern": "auto",
"i18nBoost.keyStrategy": "filename",
"i18nBoost.enabled": true
}
🛠 Installation
From VS Code Marketplace
- Open Extensions in VS Code (
Ctrl+Shift+X) - Search for
I18n Boost - Click Install
From VSIX File
- Download the latest
.vsixfile from Releases - Open VS Code
- Go to Extensions → ... → Install from VSIX
- Select the downloaded
.vsixfile
From Source (Development)
Clone this repository:
git clone https://github.com/mrgwd/i18n-boost.git cd i18n-boostInstall dependencies:
npm installCompile:
npm run compilePress
F5in VS Code to launch the extension in a new Extension Development Host window.
🔧 Quick Setup
- Install the extension from the VS Code Marketplace
- Configure your settings via VS Code Settings (
Ctrl+,) or.vscode/settings.json - Start using autocomplete and navigation features immediately!
The extension will automatically discover your locale files based on your configuration.
🐛 Troubleshooting
Extension not working?
- Check your settings: Ensure I18n Boost is enabled in VS Code settings
- Verify file paths: Make sure
i18nBoost.localesPathpoints to your translation files - Check file naming: Ensure your locale files match the
i18nBoost.fileNamingPatternsetting - Restart VS Code: Sometimes a restart is needed after configuration changes
Autocomplete not showing?
- Verify function names: Check that your translation function names are in the
i18nBoost.functionNamesarray - Check file types: Ensure you're working in supported file types (
.js,.ts,.jsx,.tsx,.vue,.svelte) - Trigger manually: Try typing
t("and thenCtrl+Spaceto trigger suggestions
Navigation not working?
- Check default locale: Ensure your
i18nBoost.defaultLocalefile exists - Verify key exists: Make sure the translation key exists in your default locale file
- Check function names: Ensure the function name matches your configuration
Unused keys not detected?
- Wait for scan: The extension scans your codebase when files are saved
- Check file patterns: Ensure your code files match the supported patterns
- Verify function names: Make sure your translation function calls use the configured function names
Key exists but not suggested?
- Check your
keyStrategysetting - Ensure the key exists in the default locale
- Restart VS Code after changing configuration
🗂 Project Structure
i18n-boost/
│
├── package.json # Extension metadata & activation
├── tsconfig.json # TypeScript configuration
├── README.md # This file
├── CHANGELOG.md # Release notes
├── src/
│ ├── extension.ts # Entry point
│ ├── commands/ # Command implementations
│ ├── providers/ # Hover, completion, definition providers
│ ├── types/ # Type definitions
│ ├── utils/ # Utility functions
│ └── images/ # Icons and images
└── tests/ # Unit tests
🤝 Contributing
PRs are welcome! Please check the Contributing Guide for details.
🔒 Privacy Policy
I18n Boost respects your privacy:
- No data collection: The extension does not collect, store, or transmit any personal data
- Local processing only: All translation key analysis happens locally in your VS Code instance
- No telemetry: No usage statistics or analytics are collected
- Open source: The entire codebase is open source and auditable
The extension only reads your project files to provide i18n functionality and does not communicate with external servers.
📜 License
This project is licensed under the MIT License — see the LICENSE file for details.
Why I built this extension?
Read the backstory blog post — it's a ~6-min read.




