Skip to content
| Marketplace
Sign in
Visual Studio>Tools>LocaleSmith
LocaleSmith

LocaleSmith

Anton Lazouski

|
2 installs
| (0) | Free
The text behind every .resx key, right where the key is used in C#, XAML and Razor: values inline, every translation on hover, missing ones flagged.
Download

LocaleSmith

LocaleSmith — the text behind every .resx key

LocaleSmith shows the text of every resource key right where the key is used — after the line, in C#, Visual Basic, F#, XAML and Razor. Hover it for every translation, see missing translations and wrong placeholders before your users do, and move a string to a .resx file with Ctrl+.

Free. Forever. No subscription, no trial, no "pro" version, no nag screens, no telemetry.

📖 Documentation · Visual Studio 2022 and 2026 · x64 and ARM64 · UI in 14 languages


Code you can read

Strings.InvoiceSaved says little; "Invoice {0} saved" says everything. The value stands after the line, quiet and italic; placeholders are colored.

Before and after

Works with Strings.Key and Properties.Resources.Key, {x:Static res:Strings.Key} in XAML (WPF, WinUI, MAUI, Avalonia), localizer["Key"] and @Localizer["Key"] in ASP.NET Core and Blazor, and GetString("Key").

Every translation on hover

Rest the pointer on a value: the card lists the key in every language, missing ones in yellow. Click a language to open its .resx with the value selected — a missing translation is added for you. Preview language switches the whole editor to German, Japanese or any language of your resources, so you see your screens before you run the app.

Every translation on hover

Mistakes before your users see them

Squiggles like compiler warnings — and with LensSmith the text at the end of the line:

  • LOC001 — a translation is missing in some languages;
  • LOC002 — a translation uses other placeholders than the default text;
  • LOC003 — localizer["Key"] with a key no file has, with the closest existing key;
  • LOC004 — string.Format(Strings.Key, …) with too few or too many arguments.

Problems

Extract to resource

Caret in a string, Ctrl+., Extract to resource…: the key is suggested from the text, the closest .resx file is chosen, an existing key with the same text is reused. The string becomes Strings.Key — or {x:Static res:Strings.Key} in XAML, with the xmlns added for you.

Extract to resource

Settings

Tools → Options → SmithWorks → LocaleSmith. The preview language, the maximum length, each rule and the light bulb action can be changed or turned off; every option has a description, and a live preview shows the result.

Options


Questions or ideas? Use the Q & A tab on this page or the Feedback repository. Full documentation: lazowskianton.github.io/VSExtensions/localesmith.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft