International Features
Developing MUI Applications

This topic provides an overview for multilingual application development using MUI technology. It summarizes the main programming considerations to keep in mind when developing your MUI applications and provides references for additional information. For an illustration of a multilingual application developed using MUI technology, see MUI Application Sample.

The process of creating an application that is useful to many different users with different locales and languages is called software internationalization. Such an application requires localization to customize it to the supported locales and languages. The Microsoft Global Development and Computing Portal Microsoft link provides a wide selection of related documentation that helps you design, build, and deploy world-ready applications. These documents help you consider how the characteristics of different human languages can affect the design of your software. Note that the portal also provides a complete archive of Dr. International columns.

You can use many localization models to create software for international users. However, MUI technology supports a highly effective localization model of its own. This document focuses on the creation of applications using the MUI technology.

Note: Application development described in this topic mostly applies to applications intended to run on Windows Vista. If you must create an MUI application to run on a pre-Windows Vista operating system, you will need to add certain functionality. For more information, see Supporting Pre-Windows Vista Operating Systems.

Decide on a Localization Model

When developing internationalized applications on operating systems prior to Windows Vista, you generally use a process to create static and separately packaged single-language localized applications. With this model, you choose a particular language at the start of the development project. To allow your application to be translated and built for other languages, you follow standard software globalization and localizability guidelines to internationalize the application. To make user interface resources translatable, you store the strings and other user interface elements in resource sections of your application binaries. A tool is used to translate and build separate versions of the binaries. The separate language binaries are packaged in separate versions of your application. After software distribution of the application, users can select a specific localized version to install and use.

Starting with Windows Vista, you are encouraged to do your internationalized software development using the MUI localization model to create MUI applications. With this model, you have two ways to create the applications: the existing multilingual or satellite DLL-based solution and the MUI technology-based solution.

Multilingual or satellite DLL-based solution. This solution uses a variety of Windows resource technologies, for example, managed resource technology, and therefore applies to applications that run on any Windows operating system, not just Windows Vista. Using the multilingual approach, you create your portable executables and add resources for all languages in the same binaries. In this case, your application code must decide which language resource to load at runtime. With the satellite DLL-based approach, you store each language resource in a separate language-specific satellite resource DLL and include application code to decide which DLL to load for a particular language user.

MUI technology-based solution. This solution makes maximum use of MUI technology to manage language-specific storage and simplify and automate resource loading. It makes it easier to develop, test, and support software that works worldwide. You can create one set of portable executables with the basic application functionality. Then you create language-specific resources for each supported language. Creation of resources for an additional language does not require any changes to the portable executables. Your application does not have to provide conditional compilation, and you do not have to maintain separate source code for each language. Being able to ship one core functionality binary to all platforms, for all different language versions, reduces the development effort significantly. If you have to issue an update or a service pack, it will apply to all supported languages with no additional engineering effort. Later support for additional languages becomes a localization project, instead of a full software development project.

Globalize Your Application with Unicode

An MUI application can run under any language or locale setting, and the user can request any language for which the application includes support. Therefore, your application must encode user interface text to support the widest possible variety of languages. For more information, see Representing the Correct Language to the User.

To allow your MUI application to work with multilingual text, the most important thing to remember is to use Unicode to handle all text processing. For more information about globalization using Unicode, see the Microsoft Global Development and Computing Portal Microsoft link.

Handle Resources

For your MUI application, you can use any Windows resource technology to create user interface resources. However, it is highly recommended to use the MUI-specific Win32 resource technology techniques, with careful separation of language-neutral code from language-specific resources. For detailed information, see Preparing Resources.

Package and Install Your Application

In general, the resource technology that you select for your development project enforces certain packaging and installation conventions on the target operating system. Details of packaging and installation are provided in Packaging and Installing MUI Applications.

Related Topics

Using Multilingual User Interface

Tags :


Page view tracker