The basics of a multilingual application on Windows is the use of "resources." a resource is a fragment added at the end of an executable file that contains only data and is formatted in a very specific way so that Windows can interpret this data.
in your resources you can find dialog boxes, string tables, as well as version information (those that appear in the file properties dialog box in Explorer). You can view the resources of any DLL or EXE by opening exe or dll in Visual C ++. when developing an application, you can create a resource (File / New), add it to your project (the same as when adding a file), and edit resources (using the resource editor, usually a tab next to the file view in the project explorer).
each resource (dialog, dialog, template, version information, table row, ...) contains a language identifier that you can change. You can create the same resource multiple times using a different language identifier. after compilation, when the application loads Windows, it will try to open resources whose language is closer to the language of the Windows user interface.
a set of functions is defined in the Windows SDK to efficiently use these resources: LoadString, LoadCursor, LoadBitmap and everything in the resources section.
Now every time you use a string in your code, put it in the String Table resource and use the LoadString function to get it. windows and dialog boxes are usually loaded in the correct language, without requiring any specific function call, if you set the correct language identifier in the resources.
voila, this is the shortest introduction to multilingual development under Windows that I could do. I'm sure you can find many well-written articles about resources or multilingual development for Windows on the web.
Adrien plisson
source share