comp2_head.gif (12369 bytes)

nav.gif (6067 bytes)


Resource Options 

There are many standard and custom ways that localization can be handled in Windows applications. In all cases, user interface elements are gathered in a container so they can be isolated and translated to other languages while keeping the bulk of the application's executable code unchanged. Containers for user interface elements can be a resource file or a satellite DLL. ResMe supports both of these options and ResMe also facilitates the use of custom string mechanisms.

Microsoft encourages the use of resource files for UI strings, pictures and other localization elements. A single resource file can hold multiple languages in a single string table or it can hold multiple string tables. Multiple string tables is the default scheme that Microsoft seems to encourage but there are some disadvantages. A short description of resource files and satellite DLLs is given here with links to more detailed discussions.

Resource file with multiple string tables.

This is the easiest approach to take. VB will automatically select the appropriate string table based on the computer's locale setting. This is handy but it makes it impossible to change languages at runtime- it is necessary to change the locale setting and reboot. The application will also become rather large because ALL languages are compiled into the application. Another drawback is that minor translation changes or added languages will require a complete recompile and re-release of your application.


Resource file with one string table.

This is also an easy approach to take and it solves the problem of switching languages. A simple indexing scheme is used to select a block of string IDs contained in a single string table. This has the same drawbacks of a large EXE file and the need to recompile whenever there is a translation change to one of the UI strings. An added issue is the need to group all the translated strings into predefined numeric blocks.


Satellite DLLs

This is a more complicated approach but it is also more flexible. Each language is given its own string DLL. It is easy to change languages at runtime by selecting a different satellite DLL. And since the DLLs are separate from the EXE file, the application does not grow larger each time a new language is added. In addition, changes can be made to individual language DLLs or new languages can be added without the need to recompile your application. The drawbacks are a slight performance decrease due to accessing the DLL and the increased coding complexity.


Home | Products | Contact Us | FAQs | What's New | Services | Localization Info | Search

For comments about the site, contact the Webmaster
Copyright 1999 Resource Mining Incorporated.  All rights reserved.

Page last updated: May 03, 2003