Supporting Multiple Languages in a Single Application (130057)
The information in this article applies to:
- Microsoft Windows Software Development Kit (SDK) 3.1
This article was previously published under Q130057 SUMMARY
It is not trivial to support multiple languages in a single Windows-based
application. Unlike Windows NT, Windows has no built-in support for
different language versions of a single resource.
MORE INFORMATION
The easiest way to do it and the way it is done for Windows itself and all
our localized Windows-based applications, is to have separate executables
for each language (English, German, French, and so on) version.
However, it is possible to create a single executable that supports
multiple language resources. For example, you could have a separate DLL
containing the resources for different language versions of your
application. You can link a specific version of DLL in runtime.
The language selection should be an install-time option, because there is
no official way to identify the host language. The application needs to ask
the user to confirm what the application has found.
All the messages and system errors generated by Windows, regardless of your
resource files, will displayed as the local language error messages.
If an application needs to have one resource file, the developer must
create a unique resource ID for each language version of the resource, and
then load the appropriate resource depending on the language. For example,
the following string table could be created:
IDS_HELLO_ENGLISH, "Hello"
IDS_HELLO_GERMAN, "Hallo"
The application would then either load the English string or the German
string as required.
There is no documentation on this subject because it is not a feature of
Windows. There is a new book out that has a chapter on internationalizing
applications. It is written in a friendly manner. Microsoft Windows 3.1
Developer's Workshop by Dr. John Butler; it's published by Microsoft Press.
In addition, the Microsoft Developer Relations Group is currently revising
"The International Handbook."
Modification Type: | Major | Last Reviewed: | 11/6/1999 |
---|
Keywords: | KB130057 |
---|
|