Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>Enso Devtools for i18nNew to Visual Studio Code? Get it now.
Enso Devtools for i18n

Enso Devtools for i18n

Armado

|
1 install
| (0) | Free
Complete i18n tooling for frontend (Vue/TS/JS) and backend (C#) — IntelliSense, extraction, Claude Code integration
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

ENSO i18n

Extension VS Code / Cursor pour la gestion complete de l'internationalisation (i18n) — frontend (Vue, TypeScript, JavaScript, JSON) et backend (C#, fichiers .resx).

Detection automatique des deux scopes (frontend/backend), deux panneaux d'explorateur distincts, et toutes les fonctionnalites IntelliSense disponibles cote front comme cote back. Compatible VS Code et Cursor (avec integration AI).


Fonctionnalites

IntelliSense et detection

# Fonctionnalite Description
1 Hover Tooltips Survoler une cle → toutes les traductions avec drapeaux et statut
2 Autocompletion des cles Taper $t('comm... → liste des cles existantes avec preview
3 Suggestions par similarite Taper du texte → suggestions similaires avec % de match
4 Detection texte hardcode Soulignement automatique du texte non traduit
5 Quick Fixes (Ctrl+.) Menu contextuel avec extraction et traduction
6 CodeLens inline Boutons d'action au-dessus des lignes avec du texte a traduire

Navigation et refactoring

# Fonctionnalite Description
7 Deux explorateurs i18n Panneaux lateraux distincts : i18n Explorer (front) pour les JSON et i18n Explorer (back) pour les .resx. Chacun avec : toutes les traductions, manquantes, orphelines, par fichier
8 Go to Definition (Cmd+Clic) Clic sur une cle → ouvre le JSON (front) ou le .resx (back) a la bonne ligne
9 Rename Key (F2) Renomme dans tous les JSON / .resx + tout le code source (y compris TranslationKeys.X)
10 Barre de statut Nb cles + couverture, clic → rapport
11 Rapport de couverture Par langue + par fichier avec barres de progression

Extraction et ajout

# Fonctionnalite Description
12 Extraction (Cmd+Shift+E) Selectionner du texte → creer la cle → remplace par $t()
13 Ajout manuel Formulaire interactif pour ajouter une cle
14 Snippets C# i18nerr, i18nsuc, i18nt, i18nval, i18ntp
15 Snippets Vue/TS/JS i18nt, i18ntt, i18na, i18nv, i18np

Maintenance

# Fonctionnalite Description
16 Supprimer les cles orphelines Scanne le code → suppression directe des cles inutilisees
16b Regenerer TranslationKeys (backend) (Re)genere la classe C# TranslationKeys depuis les cles .resx. Automatique : creation via l'extension ET toute modif .resx (Cursor AI, edition manuelle, git pull) via le file watcher ; aussi a la demande. Le corps de la classe est integralement regenere (tout ce qui est entre { et } est remplace) — idempotent. Anything hand-written doit vivre HORS de la classe (ex. partial class dans un autre fichier)

Integration Cursor AI (Cursor uniquement)

# Fonctionnalite Description
17 Traduire avec Cursor AI (Cmd+Shift+T) Ouvre le Composer avec fichier en contexte + prompt de traduction
18 Traduire toutes les manquantes Envoie toutes les cles incompletes au Composer d'un coup
19 Traduire une cle manquante Traduit les langues manquantes pour une cle specifique
20 Migrer un fichier entier Clic droit → migre tous les textes du fichier en i18n
21 Ameliorer une traduction Envoie une cle au Composer pour correction idiomatique
22 Audit AI Detecte les traductions suspectes et les envoie au Composer

Les fonctionnalites 1 a 16 fonctionnent sur VS Code et Cursor. Les fonctionnalites 17 a 22 utilisent le Composer de Cursor.


Guide d'utilisation

Installation

Depuis le Marketplace : Chercher "ENSO i18n" dans les extensions (Cmd+Shift+X).

Depuis le VSIX :

# VS Code
code --install-extension enso-i18n-*

# Cursor
cursor --install-extension enso-i18n-*

Premiers pas

  1. Ouvrir un projet — l'extension detecte automatiquement :
    • Frontend : dossiers src/i18n/locales/<lang>/*.json (Vue/TS/JS)
    • Backend : fichiers Ressources/TranslationResource[.lang].resx (C#)
  2. Deux panneaux apparaissent dans l'Explorer : i18n Explorer (front) et i18n Explorer (back), chacun cible son scope.
  3. Survoler une cle $t('...') (front) ou _localizer[TranslationKeys.X] / .WithMessage(TranslationKeys.X) (back) → tooltip avec toutes les traductions.
  4. Extraire du texte → selectionner du texte, Cmd+Shift+E, confirmer la cle (scope auto-detecte selon le langage du fichier actif).
  5. Traduire avec Cursor AI → Cmd+Shift+T ou bouton CodeLens sur la ligne.

Raccourcis

Raccourci Action
Cmd+Shift+E Extraire vers cle i18n
Cmd+Shift+T Traduire avec Cursor AI
Cmd+Clic Go to Definition
F2 Renommer une cle
Ctrl+. Quick fixes

Configuration

L'extension detecte automatiquement les dossiers de traductions (frontend ET backend) et toutes les langues presentes. Configuration optionnelle dans les settings :

Setting Default Description
armado-i18n.translationsPath (auto) Chemin vers UN dossier locales (force le scope detecte selon contenu : .json → frontend, .resx → backend). Laisser vide pour scanner les deux automatiquement
armado-i18n.enableHover true Tooltips au survol
armado-i18n.enableAutoComplete true Autocompletion des cles
armado-i18n.enableDiagnostics true Detection du texte hardcode
armado-i18n.enableCodeLens true Boutons inline
armado-i18n.diagnosticsDelay 500 Delai avant analyse (ms)
armado-i18n.autoGenerateTranslationKeys true Backend : regenere TranslationKeys.cs apres creation d'une cle backend
armado-i18n.translationKeysPath (auto) Backend : chemin du fichier TranslationKeys.cs (auto-detecte si vide)
armado-i18n.translationKeysNamespace (Armado.Ressources) Backend : namespace utilise uniquement si TranslationKeys.cs est cree de zero

Performance

L'extension est legere et optimisee :

  • ~5-15 Mo de RAM pour un projet typique (500-2000 cles)
  • Chargement unique au demarrage, mise a jour par file watcher (debounce 1s)
  • Diagnostics debounces (500ms configurable)
  • Completions limitees a 50 resultats
  • Scan orphelins/manquants a la demande uniquement
  • Aucun processus arriere-plan

Pour les developpeurs

Architecture

src/
├── extension.ts              # Point d'entree (activation synchrone)
├── services/
│   ├── i18nService.ts        # Service central (cache, watch, CRUD, analyse)
│   └── translationKeysGenerator.ts  # Generation classe C# TranslationKeys (backend)
├── commands/
│   ├── extractToI18n.ts      # Extraction Cmd+Shift+E
│   ├── addTranslation.ts     # Ajout manuel
│   ├── cursorTranslate.ts    # Integration Cursor AI (7 commandes)
│   ├── findOrphans.ts        # Rapports orphelins + manquants
│   └── coverageReport.ts     # Rapport de couverture
└── providers/
    ├── hoverProvider.ts       # Tooltips
    ├── completionProvider.ts  # Autocompletion cles
    ├── frenchCompletionProvider.ts  # Suggestions par similarite
    ├── frenchSuggestionProvider.ts  # Quick fixes
    ├── codeActionProvider.ts  # Code actions
    ├── codeLensProvider.ts    # Boutons inline
    ├── diagnosticProvider.ts  # Detection texte hardcode
    ├── definitionProvider.ts  # Go to Definition
    ├── renameProvider.ts      # Rename Key
    └── treeDataProvider.ts    # Explorateur i18n

Detection frontend / backend

Backend (C#) Frontend (Vue/TS/JS)
Format des cles PascalCaseSansPoint (ex: AuthErrorAccountLocked) module.composant.element (dotted)
Format des fichiers XML .resx (TranslationResource.resx, TranslationResource.<lang>.resx) JSON par langue (fr/common.json, en/admin.json, ...)
Localisation par defaut Ressources/ a la racine du projet **/src/i18n/locales/, **/i18n/locales/, etc.
Code d'usage _localizer[TranslationKeys.Key], _localizer[TranslationKeys.Key, arg], .WithMessage(TranslationKeys.Key) $t('module.x'), {{ $t('module.x') }}, i18n.t('module.x')
View VS Code armadoI18nExplorerBackend ("i18n Explorer (back)") armadoI18nExplorerFrontend ("i18n Explorer (front)")

Chaque TranslationEntry cree dans le service contient un champ scope: 'frontend' | 'backend'. Toutes les methodes du service (getAllTranslations, searchTranslations, createTranslation, etc.) acceptent un parametre optionnel pour filtrer par scope.

Compiler et packager

cd extension-i18n
npm install
npm run compile        # compile TypeScript
npm run package        # genere le .vsix

Mode debug

Appuyer sur F5 dans VS Code/Cursor pour lancer l'extension en mode debug.

Prerequis

  • VS Code >= 1.74.0 ou Cursor
  • Node.js >= 16
  • Un projet avec des fichiers de traduction JSON (frontend) et/ou .resx (backend)
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft