Comparing Windows XP Professional Multilingual Options

Published: December 01, 2001 | Updated: April 11, 2003

Abstract

This article explains the similarities and differences between the Microsoft® Windows® XP Multilingual User Interface Pack and localized versions of Windows XP Professional. Although many customers deploy localized versions of Windows XP Professional in a multilingual environment, the localization quality of Windows XP Multilingual User Interface Pack equals a localized version, plus it comes with added benefits. For this reason, the Multilingual User Interface Technology is the default architecture for future localized versions of Windows.

Acknowledgements

Edward Ye, Program Manager, Microsoft Corporation

Steve Jang, Program Manager, Microsoft Corporation

On This Page

Introduction
The Windows Architecture for Handling Multilingual Data
Engineering Process for Localization
Additional Benefits of Windows XP Multilingual User Interface Pack
Special considerations for Windows XP Embedded
Summary
Appendix A: Localized Versions of Windows XP Professional
Appendix B: Windows XP Multilingual User Interface Pack Languages
Related Links

Introduction

Microsoft always ships localized versions of the Windows® operating system for use in multilingual environments. The international Windows team releases localized versions of the operating system within a predictable period of time after the release of each English version. With this history and experience, the engineering process for localizing the Windows user interface has improved steadily over time. Today, Microsoft ships 24 localized versions of Windows XP (for a complete list, see Appendix A).

With Windows 2000 Professional, Microsoft introduced Multilanguage User Interface technology, which enabled multiple localized user interfaces on the same installation of English Windows 2000 Professional. The Multilingual User Interface Pack for Windows 2000 Professional was supported on both Windows 2000 Professional and Windows 2000 Server and Advanced Server and was also released as a separate version. International enterprise customers could choose between localized versions of Windows 2000 Professional and Windows 2000 Multilingual User Interface Version. Now the Windows Multilingual User Interface Pack is available for Windows XP Professional and Windows XP Embedded and will be available for the Windows Server 2003 Family. Windows XP Multilingual User Interface Pack supports 33 languages, nine of which are new (for a complete list, see Appendix B).

Windows XP advances Multilingual User Interface technology to the next generation. The next version of Windows is expected to take this technology even further with a single, language-independent binary supporting multiple language skins.

How robust is Multilingual User Interface technology at this stage? How good is the localization quality? How does Windows XP Multilingual User Interface Pack compare to localized versions? Do applications behave differently on localized versions versus the English version with Multilingual User Interface Pack? What concerns have been raised over deploying the Multilingual User Interface Pack?

This article addresses these questions by examining the fundamental architecture of Windows XP Professional for handling multilingual data and the engineering process for building localized versions vs. the Multilingual User Interface Pack.

The Windows Architecture for Handling Multilingual Data

Windows XP Professional, a World-Ready Operating System

Windows is developed with English as the default user interface. From its initial design, the Microsoft Windows NT® operating system incorporated international support through the Unicode character encoding system. Unicode is a 16-bit character encoding capable of representing most of the languages in common use throughout the world. The Unicode Character Standard primarily encodes scripts rather than languages; that is, when two or more languages share a set of symbols that have a historically related derivation, the union of the set of symbols of each language is unified into a single collection identified as a script. These collections of symbols (scripts) then serve as inventories of symbols, which are drawn upon to write particular languages. In many cases, a single script may write several languages (e.g., the Latin script). In other cases only one language employs a particular script (an example is Hangul, which is used only for the Korean language). Additionally, the writing systems for some languages use more than one script—Japanese traditionally uses the Han (Kanji), Hiragana, and Katakana scripts, and modern Japanese usage mixes in the Latin script as well. As a result of this encoding system, Windows XP, Windows Embedded, and Windows Server 2003 allow users to write, edit, and print documents in hundreds of languages.

Figure 1: Regional and Language Options, installing additional language collections

Figure 1: Regional and Language Options, installing additional language collections

In Windows XP most languages are installed by default. Collections can be added through direct user intervention or on demand by applications. The basic language collection is always installed, and the East Asian and Complex Script collections can be added.

The base operating system, as well as all included programs, including file names, objects names, strings in registry, and any other internal strings used by Windows XP, is Unicode based and thus has a format that is language independent. With international support built in, Windows XP is a truly global operating system that adapts hundreds of languages. Any version of Windows XP can host Windows applications in any language.

Given the Unicode support in Windows, there's little excuse not to write Unicode-compatible software. A common misconception about coding using Unicode is that it's difficult. In fact, writing Unicode-savvy code is easier than implementing DBCS-enabled software. The Win32® API is designed so that all system functions that accept string parameters exist in a form that expects the string to be expressed as Unicode characters, as well as in the form that accepts "regular" Windows characters. Please visit the Microsoft Global Software Development Web site at https://www.microsoft.com/globaldev/default.mspx for more information on developing Unicode-based applications.

Figure 2: Regional and Language Options, setting the system ANSI code page

Figure 2: Regional and Language Options, setting the system ANSI code page

To understand the way Windows handles multilingual data, it is important to first define a few basic concepts.

A locale is a set of preferences related to the user's language and sublanguage. An example of a language is "French," whereas the sublanguage could be French as spoken in Canada, France, Belgium, or Switzerland. Locale information includes currency symbol; date, time, and number formatting norms; localized days of the week and months of the year; the standard abbreviation for the name of the country/region; and character encoding information.

National Language Support includes input support, such as IMM/IME, fonts, and conversion tables that are included in the core operating system. Windows XP comes with Input Method Manager (IMM) and Input Method Editor (IME) for users or applications that require an input mechanism more complex than typing on an English keyboard. For instance, applications that require Asian language character input use IME. The API to access IMM and IME functionality is part of the standard Win32 API on Windows XP. Windows XP also offers a new text input service that supports advanced input technologies such as speech and handwriting, as well as traditional IME with improvements.

A keyboard layout maps between key codes and character codes. A keyboard layout also specifies language, keyboard type and version, modifiers, and so on. Users can switch to a specific keyboard layout to generate different character codes using the same physical keyboard.

The NLS API is a collection of APIs that help write locale-aware applications. A programmer must use these to make an application usable across multiple language platforms. The NLS API provides functions to get or modify locale-related settings; it facilitates locale-dependent operations, such as string sorting, time and date formatting, currency formatting, and calendar formatting; and it provides code page API and string conversion support for applications using ANSI or DBCS strings

Windows XP provides APIs that takes non-Unicode character codes (ANSI or DBCS) as parameters in order to maintain backward compatibility with applications written for Windows 9X and Windows ME. Corresponding API take Unicode character codes as parameters. Essentially, the non-Unicode API will translate the character code in parameters to Unicode before calling the corresponding Unicode API. In this translation, the operating system uses the system default code page set by the user or administrator. Only one system default code page can be set at a time.

Figure 3 describes the way English or localized Win32 applications interact with Windows XP.

Figure 3: Win32 Interactions with Windows XP

Figure 3: Win32 Interactions with Windows XP

Locale-unaware applications use either Unicode or ANSI1 character encoding internally. They call the Unicode or ANSI version of the Win32 API to access services of the operating system. However, the Win32 subsystem itself is Unicode based, and the ANSI API layer simply converts ANSI characters to Unicode characters before calling the Unicode versions of the same API.

The system default code page is used in the ANSI Win32 API in order to convert a character from ANSI to Unicode. Therefore, if you are running an ANSI-localized application on Windows XP, you must set the system default code page to match the encoding scheme for that application. Otherwise, the application will display garbage characters caused by an ANSI-to-Unicode translation error. This diagram also depicts that locale-aware applications use the NLS API.

Windows XP Multilingual User Interface

The Multilingual User Interface Pack is installed on the English version of Windows XP. There are no binary differences between the English version and the English version with the Multilingual User Interface Pack. The English Windows XP is built with support for the Multilingual User Interface mechanism in its final form.

The Multilingual User Interface is implemented by redirecting resource load calls to an alternate path. With the Windows XP Multilingual User Interface Pack, the operating system loads the localized resource specific to the current language setting, instead of the resource in the English section of the executable.

Figure 4 depicts the resource loading on English Windows XP.

Figure 4: Resource loading on English or Localized Windows XP

Figure 4: Resource loading on English or Localized Windows XP

Figure 5 depicts the resource loading on the Windows XP Multilingual User Interface Pack.

Figure 5: Resource loading on the Windows XP Multilingual User Interface Pack

Figure 5: Resource loading on the Windows XP Multilingual User Interface Pack

Given this architecture, there is no reason to expect that an application running on the English Windows XP will not run on the Windows XP Multilingual User Interface Pack.

Microsoft put considerable effort into increasing compatibility in Windows XP. The application compatibility technologies fall into two distinct groups:

  • Help with migration applications when upgrading from previous versions of Windows.

  • Fixes, including compatibility modes and Application Help, that support the installation and operation of applications on Windows XP.

These technologies, described in detail in the technical article "Windows XP Application Compatibility Technologies" at https://www.microsoft.com/technet/prodtechnol/winxppro/plan/appcmpxp.mspx, result in a much higher compatibility score for Windows XP than any earlier version of Windows.

In international markets, however, many customers run applications on localized versions of Windows NT or Windows 2000. These customers express concerns about compatibility issues running localized applications on the Windows XP Multilingual User Interface Pack. This article aims to alleviate those concerns and clear up misconceptions.

Non-Unicode applications will break if the code page is not set up correctly on the Windows XP Multilingual User Interface Pack. This can be prevented by setting the correct default system code page.

Localized Versions of Windows XP

Localized versions of Windows XP have exactly the same set of international features as the English version and the same architecture as described in Figure 1. A localized version of Windows XP provides binary compatible APIs for IME, NLS, and Complex Script APIs. From a feature and architecture point of view, localized versions of Windows XP are the same as English Windows XP. What, then, are the differences between them?

In a localized version of Windows XP:

  • The User Interface resources are fully localized.

  • The Windows Setup information, such as system locale, user locale, keyboard layout, etc, is customized for a specific language/country. This is a policy setting with the Multilingual User Interface Pack

  • Support is included for upgrades from localized versions of Windows 9.X or Windows 2000. The Multilingual User Interface Pack only supports upgrades from English versions.

  • Additional country-specific device drivers are included in the East Asian versions.

Let's examine these differences by looking at the engineering process for a localized version of Windows.

Engineering Process for Localization

English and localized versions of Windows XP are generated from the same source code. This includes headers and make-files, except for a few operating system loader and setup binaries2. The localized versions become different during a process applied to the release build of the English version.

The process is simplified here and does not include quality check and testing cycles.

The build lab compiles the source code with the English resources and creates the English Windows Build. After verification, the build is released to manufacturing and to localization teams. The localization teams extract the resource portions from the binaries, translate the tokens, and test them before returning them to the build lab. There they replace the English resource files. The build lab creates localized INF files and compiles the specific binaries for the localized version, thus producing a localized version.

The process of creating localized INF files is very simple. INF files contain install sections and a strings section. Install sections contain the logic for installing software, and use strings that are defined in the strings section. The strings section contains localizable strings that may be displayed to the user during setup. With exceptions to a few setup INF files, the build lab just attaches a localized strings section to a template INF file that contains only install sections.

The process described here represents great progress from the early days of Windows when many core binaries had to be recompiled to generate localized versions. The fact that only resource sections and INF files change now means that the executable portion of Windows XP is truly world-ready.

The Windows XP Multilingual User Interface Pack contains six CDs. One CD contains the English version of Windows XP and the other five contain Multilingual User Interface Pack localized resources and the muisetup program. The user first installs the English version, and then installs Multilingual User Interface Pack resources on top of it.

The mostly automated process of creating a Windows XP Multilingual User Interface Pack is very similar to the process used to create the localized versions of Windows XP. Once a localized version has been built, an automated process is run to extract the localized resources from the binaries and repackage them as Multilingual User Interface Pack resource DLLs. These are part of the media packages, including muisetup, that get shipped to customers and original equipment manufacturers (OEMs). The contents of these resources go through the same tests as those performed on the localized version.

Streamlining the process enables the Microsoft international team to release a build of Multilingual User Interface Pack resources for a particular language within just three days of the release of the localized version from which the resource DLLs were created.

The Windows XP Multilingual User Interface Pack contains resources for 33 languages. It also contains muisetup.exe, which allows users or administrators to select the languages they want to install, then installs the appropriate language resource files onto a running Windows XP system.

Customers evaluating the Windows XP Professional Multilingual User Interface Pack are usually concerned about the degree of localization.

Because the resources in a localized version are used to create the Multilingual User Interface Pack, there is no difference between the actual translations. All resources in a localized build are extracted and used to create the Multilingual User Interface Pack resource files. This results in nearly full localization, apart from small elements that are dependent on:

  • INF files.

  • UI strings stored in the registry.

  • ANSI components such as hyperterminal.

  • 16-bit applications in ANSI format.

Localization coverage in the Windows 2000 Multilingual User Interface Pack was about 90 percent. The Windows 2000 Multilingual User Interface Pack had many visible strings that appeared in English. One of the most noticeable areas was the Start menu, which was populated directly using file and folder names created at setup. Because English was the original installation language, these file and folder names appeared in English even if you were running on the Multilingual User Interface Pack with a Japanese user interface. This discrepancy has been corrected in Windows XP, resulting in a much better localization for the system user.

Much of the additional localized coverage in Windows XP is achieved through an Multilingual User Interface that enables Windows XP system modules and applications. Specifically, it does this by:

  • Transferring user interface strings from the registry to Windows resource files.

  • Removing user interface strings from the kernel.

  • Using the Multilingual User Interface-enabled shell to display localized strings for Start menu items, desktop shortcuts, shell menu items, file type names, and shell verbs (right-click menu items).

  • Making Windows services impersonate the current interactive user instead of the system default when displaying user interface elements.

  • Baring the use of hard-coded file paths when loading resource files, including help files, so that an alternate resource path can be used to load the resource file.

  • Providing special code in each component to install and load the user interface resource if a nontraditional Win-32 resource is used (such as XML or an HTML-based resource).

Implementing these changes for the Windows XP Multilingual User Interface Pack resulted in much higher localization quality and improves the user experience considerably.

The biggest difference between the feature set of a localized version and the Windows XP Multilingual User Interface Pack are country-specific device drivers that ship with a particular localized version. Other than these country-specific binary modules, there are virtually no differences between using the Windows XP Multilingual User Interface Pack and a localized version in terms of operating system features.

Additional Benefits of Windows XP Multilingual User Interface Pack

In addition to the high quality localization, Windows XP Multilingual User Interface Pack further eases deployment and maintenance of multilingual computing environments by:

  • Helping administrators define a single corporate standard for desktops worldwide. The Windows XP Multilingual User Interface Pack makes it easier and more efficient to centrally define, create, and manage desktop configurations, including desktop productivity tools and business applications, and then deploy them with the appropriate language interface to give users an excellent localized experience. For example, a U.S. corporation with subsidiary offices in Tokyo, Athens, and Rome can now deploy the English version of Windows XP with the Multilingual User Interface Pack in each office, rather than deploying the Windows XP Japanese version in Tokyo, the Windows XP Greek version in Athens, and the Windows XP Italian version in Rome.

  • Enabling administrators to apply service packs or updates once for all supported language environments. Because the Multilingual User Interface Pack is installed on top of the English version of Windows XP, applying a service pack or update is greatly simplified for a global organization. Rather than waiting for and then applying, tracking, and maintaining a different service pack, tool, and application set for each localized version, administrators can apply the same software to every machine in the company, regardless of location. The result: significantly lower costs for maintaining a global desktop computing environment.

  • Allowing workstations to be shared by users who speak different languages. This eliminates the need for dual-boot configurations or dedicated machines for each language, resulting in lower cost. In addition, it helps workers be more productive by providing them with a system environment in their native language.

  • Letting users log on anywhere and get the user interface in their own language. In Windows XP, a user's language settings are stored in a user profile. This enables that user to move from one Windows XP-based machine to another in a network and retain personal multilingual and international settings, as well as a consistent UI language. For example, a sales representative based in Zurich, Switzerland, can maintain a German UI when working on machines in both the Geneva and Zurich offices, rather than having to use a French UI in the Geneva office.

Special considerations for Windows XP Embedded

Windows XP Embedded is based on the unmodified, release binaries of Windows XP. The architectural discussion earlier in this article is relevant to Windows XP Embedded. The Windows XP Embedded product provides a component database and authoring tools that let an OEM create highly customized, run-time images of Windows XP for dedicated purposes.

For a detailed discussion of the Windows XP Embedded system, see the Windows XP Embedded Web site at https://www.microsoft.com/windows/embedded/default.asp.

Also, the resource files for each supported language in the Windows XP Multilingual User Interface Pack are repackaged into individual language components, allowing an OEM to simply add these language components to customized configurations and thereby change the user interface language of their embedded appliance.

Concerns

Just as customers in the PC desktop and server PC markets raised concerns about translation quality using the Multilingual User Interface Pack, industry customers interested in Windows XP Embedded also had doubts.

One concern that was unique to the embedded industry was the potential for footprint increase. And if we compare an English-only configuration against an Multilingual User Interface-enabled configuration, there certainly will be an increase in disk footprint due to the additional language components.

For a fairer comparison, it's necessary to evaluate an Multilingual User Interface-enabled image against a localized image of an embedded operating system. Typically, a localized image (especially for Far East Asian languages) has a significant size increase even if it isn't using the Multilingual User Interface Pack modules3. This increase is much more significant in bare minimum configurations than in larger configurations, because the minimum language modules required by a localized image are generally larger than the rest of the core operating system image itself. For example, a required font on a Japanese system can be 8 MB in size. Add the IME and dictionary files, and you will end up with a localized image that is triple the size of the corresponding English-only image.

Given this, the size of the additional English resources contained in an Multilingual User Interface-enabled image is relatively insignificant compared with the size of required additional language modules for a localized image. This is true whether using Multilingual User Interface modules or not.

Also, the size difference will be further minimized on smaller configurations that contain only core operating system components. Fewer language resources need to be localized in these core components, and only a small number of the Multilingual User Interface Pack components are required by them.

Added Benefits

With initial concerns alleviated, the benefits of Multilingual User Interface technology become magnified in an embedded industry context.

Language components in Windows XP Embedded greatly reduce the engineering effort involved in localizing run-time images for embedded applications. For example, suppose a multinational OEM wants to ship an appliance in five different languages. If they create five configurations based on five localized versions of an operating system, they will have to increase their engineering efforts in integration, testing, packaging, and release management by fivefold. However, if they use a single version of Windows with language components, they can create and validate a single configuration by simply adding language components to localize their product UI. Better yet, they could even release a single version of the appliance containing all five languages and have it reconfigured, with a flip of a switch, at their regional distribution sites worldwide.

Releasing a single, worldwide configuration for embedded applications means there can be one centralized support organization supporting products around the world. The result is reduced management costs as well as reduced support engineering costs. A fix in one country can be applied to all the other countries.

Multilingual User Interface technology also allows language switching on the same system. An OEM can take advantage of this feature to create multilingual devices. This feature is useful in embedded applications found at places where individual users may speak different languages, such as an airport terminal.

Summary

While the Windows XP Multilingual User Interface Pack provides several key advantages over language-specific localized versions of Windows XP, customers expressed concerns that the localization would be inferior quality.

However, Windows XP is a world-ready operating system that can run applications in any language. Further, Windows XP contains globalization features that enable localized applications to run successfully.

A localized version of Windows XP provides the same set of international features as the English version of Windows XP. In additions to these features, the localized version provides a user interface suitable for a particular language. By comparison, the Windows XP Multilingual User Interface Pack supports user interface in multiple languages on the same installation. This is the natural evolution of localized versions of Windows, given the architecture behind the Windows XP operating system, the engineering process to produce it, and the high level of localization coverage it provides.

Windows XP Embedded takes advantage of Multilingual User Interface technology to localize embedded run-time images. Multilingual User Interface technology holds special values in an embedded environment context, and initial concerns about Multilingual User Interface technology in desktop/server PC markets are even less of an issue in an embedded environment.

Appendix A: Localized Versions of Windows XP Professional

There are 24 fully localized versions of Windows XP Professional.

  • Arabic

  • Hebrew

  • Portuguese (Brazil)

  • Hungarian

  • Chinese Hong Kong

  • Italian

  • Chinese Simplified

  • Japanese

  • Chinese Traditional

  • Korean

  • Czech

  • Norwegian

  • Danish

  • Polish

  • Dutch

  • Portuguese (Portugal)

  • Finnish

  • Russian

  • French

  • Spanish

  • German

  • Swedish

  • Greek

  • Turkish

Appendix B: Windows XP Multilingual User Interface Pack Languages

There are 33 languages available in the Windows XP Professional Multilingual User Interface Pack, which is an add-on to the English version of Windows XP Professional:

  • Arabic

  • Hebrew

  • Portuguese (Brazil)

  • Hungarian

  • Chinese Simplified

  • Italian

  • Chinese Traditional

  • Japanese

  • Czech

  • Korean

  • Danish

  • Norwegian

  • Dutch

  • Polish

  • English

  • Portuguese (Portugal)

  • Finnish

  • Russian

  • French

  • Spanish

  • German

  • Swedish

  • Greek

  • Turkish

Note: Any of the following supported languages that do not have an official localized version listed in Appendix A are recognized as the only localized version in their corresponding geographic areas.

  • Bulgarian

  • Romanian

  • Croatian

  • Slovak

  • Estonian

  • Slovenian

  • Latvian

  • Thai

  • Lithuanian

 

See the following resources for further information:

For the latest information about Windows XP, see the Windows XP Web site at https://www.microsoft.com/windowsxp/default.asp.

1 ANSI here is liberally used to mean "non-Unicode" characters. ANSI code pages represent the character encoding schemes that older versions of Windows used.

2 The following files are compiled from different source code for different language versions: Ntldr, osloader.exe, setupldr.bin, setupldr.exe (these files run before Windows XP is up and running, and no globalization features can be used at that time).

3 With Windows NT Embedded 4.0, a minimum bootable image with networking would take approximately 16 MB of disk space. An equivalent bootable image in Japanese would larger than 40MB due to language specific modules such as IME and dictionary files.