LocaleSmith
Le texte de chaque clé .resx, là où la clé est utilisée : la valeur en fin de ligne, toutes les traductions au survol, les traductions manquantes et les espaces réservés incorrects signalés avant que vos utilisateurs ne les voient.
Gratuit · Visual Studio 2022 et 2026 · 14 langues d’interface · aucune télémétrie
Pourquoi LocaleSmith

Du code lisible
Strings.InvoiceSaved ne dit pas grand-chose ; « Invoice {0} saved » dit tout. Le texte s’affiche après la ligne, discret, en italique.
Toutes les langues sous la main
Survolez une valeur pour voir toutes ses traductions, ou passez tout l’éditeur en allemand ou en japonais pour voir vos écrans avant de lancer l’application.
Les erreurs avant vos utilisateurs
Traductions manquantes, un {1} absent du texte par défaut, une faute de frappe dans une clé, un string.Format avec trop peu d’arguments — tout est souligné dans le code.
Gratuit, sans contrepartie
Ni abonnement, ni période d’essai, ni écrans de rappel, ni télémétrie. Fonctionne avec Visual Studio 2022 et 2026, x64 et ARM64.
Fonctionnalités
- Les valeurs à côté des clés : le texte de chaque clé après sa ligne, entre guillemets ; les espaces réservés comme
{0}sont colorés, les sauts de ligne affichés en ↵. - Langue d’aperçu : les valeurs dans n’importe quelle langue de vos ressources ; une valeur que .NET prendrait dans les ressources par défaut s’affiche en jaune avec ⚠.
- Toutes les traductions au survol : une carte avec toutes les langues de la clé ; un clic ouvre le .resx de cette langue directement sur la valeur — si elle manque, elle est ajoutée pour vous.
- Les problèmes dans le code : traductions manquantes, espaces réservés incohérents, clés inconnues et appels
string.Formatavec un mauvais nombre d’arguments, soulignés d’un trait ondulé. - Extraire vers une ressource : Ctrl+. sur une chaîne en C#, Visual Basic ou XAML la déplace dans un fichier .resx et met la clé à sa place.
- Toujours à jour : les fichiers .resx de la solution sont lus en arrière-plan et surveillés ; une modification enregistrée s’affiche aussitôt.
- Thèmes sombre et clair : les couleurs suivent le thème de Visual Studio.
Clés reconnues
| Dans le code | Où |
|---|---|
Strings.Key, Properties.Resources.Key | C#, Visual Basic, F# |
{x:Static res:Strings.Key} | XAML (WPF, WinUI, MAUI, Avalonia) |
localizer["Key"], @Localizer["Key"] | ASP.NET Core et Blazor : IStringLocalizer, IViewLocalizer |
GetString("Key") | ResourceManager et localiseurs |
Toutes les traductions au survol
Laissez le pointeur sur une valeur : la carte affiche la clé dans toutes les langues, les traductions manquantes en jaune. Cliquez sur une langue pour ouvrir son .resx avec la valeur sélectionnée — il suffit de taper par-dessus. Ouvrir dans le .resx et Copier la clé sont en haut.

Problèmes
Les problèmes sont des soulignements ondulés, comme les avertissements du compilateur : tout outil qui affiche les uns affiche aussi les autres — LensSmith les écrit en fin de ligne. Chaque règle peut être désactivée.

| Règle | Ce qui est souligné |
|---|---|
| LOC001 | Une clé absente de certains fichiers de langue, avec la liste de ces langues. |
| LOC002 | Une traduction dont les espaces réservés diffèrent de ceux du texte par défaut ; un espace réservé en trop échoue à l’exécution et compte comme une erreur. |
| LOC003 | localizer["Key"] ou GetString("Key") avec une clé qu’aucun fichier de ressources ne contient, avec la clé existante la plus proche. |
| LOC004 | string.Format(Strings.Key, …) avec moins d’arguments que le texte n’en demande (erreur) ou plus qu’il n’en utilise (avertissement). |
Extraire vers une ressource
Placez le curseur dans une chaîne et appuyez sur Ctrl+. — Extraire vers une ressource… propose une clé tirée du texte et le fichier .resx le plus proche. Si le fichier contient déjà ce texte, sa clé est réutilisée. La chaîne est remplacée par Strings.Key (avec l’espace de noms si le fichier ne l’importe pas) ou par {x:Static res:Strings.Key} en XAML, où le xmlns est ajouté pour vous.

Paramètres
Outils → Options → SmithWorks → LocaleSmith. Chaque option est décrite, et l’aperçu en haut affiche immédiatement les valeurs dans la langue choisie.
| Option | Par défaut |
|---|---|
| Afficher les valeurs des ressources à côté des clés | activé |
| Langue d'aperçu | Ressources par défaut |
| Longueur maximale | 80 |
| Problèmes : LOC001–LOC004 | tous activés |
| Extraire vers une ressource dans l'ampoule | activé |
Les paramètres sont stockés dans %LocalAppData%\LocaleSmith.

FAQ
Quels fichiers .resx sont lus ?
Tous les fichiers .resx sous le dossier de la solution (celui du fichier .sln ou .slnx, ou la racine du dépôt), sauf bin, obj et node_modules. Les images et autres ressources non textuelles sont ignorées.
Pourquoi aucune valeur ne s’affiche après une clé ?
La clé doit exister dans un fichier .resx de la solution, et le nom de sa classe doit correspondre au nom du fichier (Strings.resx → Strings ; les points deviennent des traits de soulignement, comme le fait le générateur). Les valeurs apparaissent peu après l’ouverture de la solution, une fois les fichiers lus.
Après l’extraction, la nouvelle propriété est soulignée. Pourquoi ?
La classe fortement typée (Strings.Designer.cs) est régénérée aussitôt si le projet utilise un outil personnalisé pour la produire ; dans les projets qui la génèrent pendant le build, la propriété apparaît après le build suivant.
{x:Static} ne trouve pas ma classe de ressources en XAML.
x:Static exige une classe publique. Réglez le modificateur d’accès du fichier .resx sur Public dans le concepteur de ressources, ou passez par une classe publique intermédiaire.
Fonctionne-t-elle avec LensSmith ?
Oui. Les deux écrivent en fin de ligne et se partagent cet espace : la valeur de la clé d’abord, le message de diagnostic ensuite. Les problèmes de LocaleSmith apparaissent dans LensSmith comme n’importe quel autre avertissement.
LocaleSmith envoie-t-il des données ?
Non. Aucune télémétrie, aucun accès réseau ; vos fichiers de ressources restent sur votre machine.
Où signaler un problème ou proposer une fonctionnalité ?
Ouvrez un ticket dans le dépôt Feedback sur GitHub — il y a des formulaires pour les bogues et les idées (modifiez les noms confidentiels). Vous pouvez aussi utiliser l’onglet Q&A sur le Marketplace.
Historique des versions
1.0.1
- Lien « Évaluer sur le Marketplace » dans les paramètres.
1.0.0
- Première version publique.