ENSO i18n
Extension VS Code / Cursor pour la gestion complete de l'internationalisation (i18n) — frontend (Vue, TypeScript, JavaScript) et backend (C#).
22 fonctionnalites. Detection automatique des langues et du contexte. 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 |
Explorateur i18n |
Panneau lateral : toutes les traductions, manquantes, orphelines, par fichier |
| 8 |
Go to Definition (Cmd+Clic) |
Clic sur une cle → ouvre le JSON a la bonne ligne |
| 9 |
Rename Key (F2) |
Renomme dans tous les JSON + tout le code source |
| 10 |
Barre de statut |
Nb cles + couverture, clic → rapport |
| 11 |
Rapport de couverture |
Par langue + par fichier avec barres de progression |
| # |
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 |
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 :
code --install-extension enso-i18n-1.1.0.vsix # VS Code
cursor --install-extension enso-i18n-1.1.0.vsix # Cursor
Premiers pas
- Ouvrir un projet avec des fichiers de traduction JSON — l'extension detecte automatiquement le dossier (
src/i18n/locales/, CrossCutting/I18n/Locales/, etc.)
- Survoler une cle
$t('...') → tooltip avec toutes les traductions
- Extraire du texte → selectionner du texte,
Cmd+Shift+E, confirmer la cle
- 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 le dossier de traductions et toutes les langues presentes. Configuration optionnelle dans les settings :
| Setting |
Default |
Description |
armado-i18n.translationsPath |
(auto) |
Chemin vers le dossier locales |
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) |
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)
├── 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) |
| Cles |
backend.domain.type.desc |
module.composant.element |
| Fichiers |
backend.json |
common.json, orders.json, etc. |
| Code |
_i18nService.T() |
$t(), {{ $t() }} |
| Extraction |
_i18nService.T("key", _httpContextAccessor) |
$t('key') |
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