Where RESX comes from
RESX arrived with .NET Framework 1.0 in 2002 as the XML-editable front end to the binary .resources format, replacing the plain-text .txt resource files of earlier tooling. Its per-culture naming convention — Strings.resx, Strings.fr.resx, Strings.fr-CA.resx — became the standard way .NET applications carry translations, and it survived unchanged into .NET Core and .NET 5+ despite the platform being rewritten around it.