Microsoft .NET applications can be developed in either C# or VB .NET using the Microsoft Visual Studio .NET Development environment. Other than procedural and variable declarative statements, C# and VB .NET are almost identical in their syntax, and the development process of building .NET application is symmetrical.

When a .NET application is created, all the UI resources (Strings, dialogs, menus etc.) are stored in the applications’ code files. This makes localisation costly and expensive, as the application has to be rebuilt for each language version required.

To overcome this problem, Microsoft has created a solution whereby the developer can select those resources that are to be translated and these will then be stored in an external resource file, called a .resx  file.

net001.bmp

These .resx files are then be compiled into a resource only Dynamic Link Library. These are referred to as Language Assemblies and are stored in a predetermined directory structure.

By separating the code files from the UI resources (.resx files), it is relatively easy to build multi-lingual versions of a .NET application.