Tarjim: i18n Guard
Tarjim: i18n Guard finds missing, extra, empty, and mismatched translation keys across your locale JSON files, right inside VS Code. It keeps every language in step with your base locale, and it fixes the common problems with one click.

Features
- Missing keys. Keys that exist in the base locale but not in a translation.
- Extra keys. Keys that exist in a translation but not in the base locale (often leftovers after a rename).
- Placeholder mismatches. A translation that drops or renames
{name} or {{count}} variables. This is an error because it breaks the UI at runtime.
- Empty translations. Keys with blank values.
- Untranslated values (optional). Values identical to the base text, which usually means they were never translated.
- Invalid JSON. A precise, underlined syntax error instead of a vague failure.
- Quick fixes. Add missing keys (base text is copied as a placeholder, in base order) and remove extra keys. Indentation and trailing newlines are preserved.
- Arabic and English UI. Settings and commands are localized.
Locale files are detected by name: en.json, ar.json, pt-BR.json, and so on. They are picked up from folders such as locales/, i18n/, l10n/, translations/, and lang/.
Quick start
- Open a project that contains locale files, such as
src/locales/en.json and src/locales/ar.json.
- Problems appear automatically in the Problems panel and in the editor as you edit and save.
- Run Tarjim: Check Translations from the Command Palette to rescan the whole workspace.
- Click the lightbulb in a locale file to apply a quick fix.
Settings
| Setting |
Default |
Description |
tarjim.baseLocale |
en |
The reference language every other locale is compared against. |
tarjim.include |
**/{locales,locale,i18n,l10n,translations,lang}/**/*.json |
Glob patterns that select locale files. |
tarjim.exclude |
**/{node_modules,out,dist,build}/** |
Paths to skip while scanning. |
tarjim.ignoredKeys |
[] |
Dotted keys to skip in every locale, for example app.version. |
tarjim.reportUntranslated |
false |
Warn about values identical to the base locale. |
Example .vscode/settings.json:
{
"tarjim.baseLocale": "en",
"tarjim.ignoredKeys": ["app.version", "brand.name"],
"tarjim.reportUntranslated": true
}
Severity
| Problem |
Severity |
| Invalid JSON |
Error |
| Placeholder mismatch |
Error |
| Missing key |
Warning |
| Empty translation |
Warning |
| Extra key |
Information |
| Untranslated value |
Hint |
Commands
| Command |
Description |
Tarjim: Check Translations |
Scan every locale folder in the workspace and report the results. |
Privacy
Tarjim runs entirely on your machine. It reads files in your workspace, and it does not send data over the network or collect telemetry. See SECURITY.md to report a vulnerability.
Requirements
VS Code 1.85 or newer. Tarjim works in untrusted workspaces: it only reads and edits JSON files and never executes code from the project.
Contributing
Bug reports, ideas, and pull requests are welcome. See CONTRIBUTING.md for the development setup and the checks every change must pass.
License
MIT © RadwanAlmsora