Introduction to MUI
Multilingual User Interface (MUI) is a technology for providing localized user interface to international users. MUI deals with user interface resource management in the Windows operating system. It promotes dynamic user interface resource handling to support new capabilities, such as multiple-language user interface and language-neutral base system.
As part of software internationalization technology, MUI supports and simplifies software localization, which is the customization of software to defined locales and languages. A comprehensive discussion of internationalization and localization can be found at Microsoft's Global Development and Computing Portal . This site provides extensive documentation about designing, building, and deploying globalized applications, including the characteristics of different human languages that can affect software design.
MUI allows large corporations and OEMs to roll out, support, and maintain the same worldwide image with a single installation. Other benefits of MUI are that users of different languages can share the same workstation, and roaming users can move their localized user interface from one workstation to another. For instance, one user might choose to see system menus, dialog boxes, and other text in Japanese, while another user logging onto the same operating system might prefer to see the corresponding text in Danish.
Windows MUI Operating System
For operating systems and servers prior to Windows Vista, each single-language user interface version is localized for a specific language. Versions of the same Windows operating system localized for different languages differ from one another in the language reflected in the resource sections of executable files.
Starting with Windows 2000, Microsoft introduced the MUI technology and the Windows MUI Pack. Installed on top of an English-language Windows operating system, the MUI pack implements the MUI technology and provides an MUI version of the operating system. The MUI operating system version allows users to set the user interface language according to their preferences, provided that resources for the required languages have been added to the operating system.
Beginning with Windows Vista, all Windows operating system versions are enhanced with the latest MUI technology. Even if an operating system has only single-language localization support, the MUI technology is still working to provide user interface localization. As long as licensing allows, an MUI pack can be added on top of any language system of Windows Vista.
Support for MUI Technology
The heart of the MUI operating system is the MUI technology, which deals with user interface elements, such as menus, dialogs, help strings, and other items, represented as resources. The user interface language becomes one of the settings for an application. This setting determines the application user interface elements that are loaded and displayed to the user. If an application has user interface resources installed for more than one language, the user can set the application to run under any of these languages. For more information, see User Interface Language Management.
To create user interface resources for your MUI applications, you can use your choice of Windows resource technologies, as described in Preparing Resources. On Windows Vista and later, all supported resource technologies, for example, managed resource technology, Windows help technology, and RC data technology, are updated to allow MUI-compatible handling of language-specific resources. As a result of the MUI design, some resource technologies update existing string loading functions or add new functions. Each particular resource technology deals with resource rendering, storage, loading, and installation.
MUI also provides its own Win32 resource technology, with the following characteristics:
- A resource is stored separately from the programming code and data. If programming code is changed, it does not affect the resource files. When a resource is translated to another language, a new copy of the resource file is created without affecting the code files.
- The resources for multiple languages can be stored in a single installation or operating system.
- A resource is loaded and displayed according to the language of the application as set by the user.
Availability of MUI
The following list indicates the platforms that support MUI technology:
- All Windows Vista operating system versions are built on MUI technology. Any languages can be added to any language system to provide an MUI operating system, although licensing considerations do apply.
- Windows 2000 Professional, Windows XP Professional, Windows XP for Tablet PC, Windows XP Embedded, the Windows 2000 servers, and Windows Server 2003 have both localized versions and MUI versions. The MUI pack can be added to the English version to make it into an MUI version.
- Windows 95/98/Me operating systems, Windows NT, and Windows XP Home Edition have only localized versions. They do not support MUI technology.
MUI Application Programming Interface (API)
On pre-Windows Vista operating systems, the MUI technology is not exposed to applications, but is solely used by operating system components to enable the MUI functionality. Starting with Windows Vista, however, MUI technology and the associated API are made available for you to use in developing MUI applications. Details of the entire MUI API are provided in Multilingual User Interface Reference.
The MUI API functions fall into two categories: user interface language management functions and resource loading functions. The user interface language management functions allow your applications to support user interface languages. These functions are described in User Interface Language Management. The resource loading functions are used to allow the resource loader to load application user interface resources. Resource loading is described for the MUI-specific Win32 resource technology in Placing and Loading Win32 Resources for applications to run on Windows Vista and later. Resource loading for applications to run on pre-Windows Vista operating systems is discussed in Supporting Pre-Windows Vista Operating Systems. If you are using a non-MUI resource technology, resource loading uses technology-specific techniques.
Although MUI technology takes advantage of all Windows resource technologies, it easy to develop an MUI application. You can develop either a single-language user interface application with its resources built into the portable executable, or an application designed to work with a variety of languages. You can develop MUI applications to run on Windows Vista or on supported pre-Windows Vista operating systems. Just follow the programming guidelines discussed in Using Multilingual User Interface.