Summary

  • The ease with which you can localize a program's user interface is a good indication of whether the underlying code is properly internationalized.
  • Win32 resource files are a convenient mechanism for isolating, editing, and compiling the localizable elements of a program's user interface. To create a different language edition of a program, you need only change the resources.
  • The Win32 SDK contains tools for creating, editing, and compiling resources. Microsoft Visual C++ 2 integrates these tools into a single editing environment.
  • Win32 resource strings are compiled into Unicode format, but the .RC file format is still commonly expressed in Windows character sets. You can compile multilingual resources encompassing different character sets using the RC compiler that comes with the Win32 SDK.
  • A good localization tool for an ongoing project tracks when developers add, change, or delete user interface elements in the application. It also minimizes common mistakes made by translators and provides context information and database suggestions to increase translation accuracy and speed.
  • Designing your native-language dialog boxes with room to spare minimizes time spent resizing them.
  • Message tables conveniently store alert and error messages that contain more than one replacement parameter. Message tables can contain text in multiple languages and character sets.
  • You should store localizable constants, but not strings, in RCDATA resources.
  • Because resources in Win32 are indexed by language as well as by type and name, you can compile multiple-language resources in a single executable or into separate DLLs and switch the language of your program's user interface at run time.
  • A version stamp can be used to declare which languages a given executable or DLL supports.