.Net Resource (.resx)
RESX (Resource XML) is the localisation format for the .NET platform, supporting ASP.NET Core, WPF, WinForms, and Blazor. The base resource file (Resources.resx) contains default-language strings. Language-specific overrides are stored in separate files: Resources.fr.resx, Resources.de.resx, and so on. The .NET resource manager resolves the correct file at runtime based on the thread's current culture, falling back through the satellite assembly chain.
RESX is an XML file where each string is a data element with a name attribute (the key) and a value child element. A comment element stores translator notes. The base RESX compiles into the main assembly; language-specific files compile into satellite assemblies in culture-named subdirectories. MSBuild's EmbeddedResource item type controls compilation. Designer.cs files generated from RESX expose keys as typed properties for compile-time safety.
Best practice: organise RESX files by feature area — Auth.resx, Checkout.resx, Common.resx — and use IStringLocalizer with typed generic parameters in ASP.NET Core for compile-time satellite assembly binding. Name keys in PascalCase and avoid spaces or hyphens that break Designer.cs property generation. Document the type and purpose of each positional format argument in the resource comment. Language Monster detects RESX files automatically, preserves XML structure and comment nodes, protects .NET format specifiers during translation, and pushes completed satellite files back to your repository.
