Microsoft.com Home | Site Map
Microsoft
Search Microsoft.com for:
Search for

Advanced Search
Global Development and Computing Portal   Global Development and Computing Portal
Hands-On

Overview of Windows XP International Support

Posted:
On this page

With built in support for over 60 scripts, hundreds of languages, and 126 locales, every language version (and each flavor) of Windows 2000 provides unprecedented support for international and multilingual computing. Above all, the international feature set of Windows 2000 satisfies two key customer requirements by:

  •  Enabling global communication, allowing users to edit content in any language and to work in any given language.
  •  Simplifying the deployment, maintenance and support of different language releases of the operating system worldwide, reducing the complexity and overall cost of ownership.

Windows XP expands this global support and brings – for the very first time – multilingual computing support into the client space and home computing.

This two part article highlights the international and multilingual functionality of Windows 2000 and Windows XP. Part One provides a brief review of Windows 2000’s international support. Part Two highlights Windows XP’s improvements and discusses the expanded feature list for use in a global solution.

Part One: Windows 2000 International Features

Single Worldwide Binary:

All versions of Windows 2000 use the same executable code to run Win32 based applications. In fact, the only difference between these binaries from one language to another is in the translation of their resources.

This allows users to:

  •  Enter text in any language using any version of Windows 2000. For example, a user can write Hebrew on a Japanese version of Windows 2000.
  •  Run any language version of Win32 applications on any language version of Windows 2000. For example, one can run an Arabic Win32 application on a Russian Windows 2000.

The single worldwide binary also benefits developers, who can:

  •  Build all language versions of their product on one system. Shipping one functional core-binary to all platforms and for all different language versions reduces the hassle and costs of development significantly:
    •  It eliminates conditional compiling.
    •  It eliminates the need to maintain separate source code branches.
  •  Ship all languages at the same time, preventing delays in deploying the product worldwide.

Finally, IT managers benefit because they

  •  Deal with fewer system differences from one language to another. This eases the maintenance and administration effort.

Fully Unicode:

Multilingual computing is made possible by Windows 2000’s native Unicode encoding (UTF-16 little-endian) and its complete support for Unicode. There is no more ANSI/OEM codepage dependency under Windows 2000! In fact, support for new scripts (such as the Indic family, Armenian, and Georgian) is added through pure Unicode encoding and no ANSI or OEM code pages are defined for these scripts. Hence, hundreds of languages are supported out of the box.

Multiscript

Figure 1: Windows 2000 Notepad with multiple scripts displayed simultaneously.

Complex scripts support:

Several scripts, due to their linguistic requirements, need special handling when it comes to the layout and display of text electronically. A few of these challenges are:

  •  Bidirectionality of mixed Right_To_Left (RTL) and Left_To_Right (LTR)characters (Arabic and Hebrew scripts).
  •  Contextual shaping of characters (Arabic and Indic family of scripts).
  •  Layout of combining characters (Arabic, Indic, and Thai scripts).
  •  Justification (Arabic).
  •  Word breaking and warping (Thai).

Uniscribe, the layout and shaping engine for these scripts, is built into Windows 2000 and provides consistent support across its clients (Windows 2000, Microsoft Office 2000 and Office XP, Microsoft Internet Explorer 5.0 and beyond). To learn more about Windows 2000 complex script support you can refer to: Multilanguage text support in Windows 2000.

Multilingual User Interface:

The Windows 2000 MultiLanguage Version (MUI) allows users – for the first time – to select the language of the User Interface (dialog boxes, menus, HTML help files etc). This version of Windows allows users to:

To support MUI, changes were made in the system’s resource loader to load the right resource files for a given process based on the currently selected UI language. Users can install MUI resources files for all 24 languages in which Windows 2000 is localized. Resource files for each language require about 40 to 50 megabytes of disk space and give a little more than 90% localization of the user interface (versus 100% for a typical localized OS). MUI’s primary goal is to decrease the cost of implementing and maintaining IT environments with multiple languages. To learn more about MUI, you can refer to Microsoft’s FAQ related to this subject. You can also take advantage of MUI technology to offer your own multilingual UI solution

Mirroring technology:

This technology was designed to allow a perfect right-to-left (RTL) look and feel of the User Interface (UI) for RTL languages such as Arabic and Hebrew. Because of the changes made in the system’s User and GDI components, the creation of mirrored applications almost becomes a transparent job to developers. Only a few simple considerations are needed when creating Windows and mapping coordinates. To learn more about the mirroring technology you can refer to Microsoft’s globalization guidelines on mirroring

Mirrored

Figure 2: A mirrored Explorer window (Hebrew Windows 2000).

Fonts:

To accommodate multilingual computing and to properly display text in a multilingual context, Microsoft Windows 2000 introduces three new technologies:

  •  OpenType fonts: This new font format, developed jointly by Microsoft and Adobe, is in fact an extension to the TrueType font specification. The OpenType fonts in Windows 2000 include expanded repertoires of glyphs to accommodate Pan-European, Arabic, Hebrew, and Thai scripts. To learn more about OpenType and fonts in general, refer to Microsoft’s typography site.
  •  Font fallback: this mechanism, made available through Uniscribe (see section on Complex Scripts Support), provides a fallback font (or a default font) when dealing with complex scripts. If the selected font face does not include any glyphs for the complex script that is about to be displayed, Uniscribe selects a default hardcoded font for the given script. For example, if you have Hindi text and the font is Courier, then Uniscribe will use the Mangal font. This technique is internal to Uniscribe and developers can not add additional fonts to the list of fallback fonts.
  •  Font linking: this technique is mainly used to accommodate East Asian languages and uses a registry setting of fonts linked in a list to a facename. If the required glyph is not in the nominal facename, GDI searches each font in the list of those linked to the face name until it finds one with the required glyph. This new font is then linked to the nominal font (base font). Users and developers should not modify the list of linked fonts in the registry, since it might cause serious display problems.

Expanded NLS:

The Windows 2000 National Language Support (NLS) APIs provide support for displaying regional and culturally-correct formatted data (calendar, currency symbol, date & time, sort tables etc.) for 126 locales.

To top of page

Part Two: Windows XP Improvements

In a nutshell, the goals of Windows XP’s multilingual functionality are to:

  •  Match all Windows 2000’s international features.
  •  Integrate Windows ME international features.
  •  Add support for new locales and new scripts.
  •  Improve the input method architecture.
  •  Improve the user experience by simplifying the language support installation. 

Windows XP provides all of Windows 2000 multilingual experience to home users for the first time. For that matter, all flavors of Windows XP (Personal, Professional, and Server) provide the same level of international support.

Improved NLS Support:

National Language Support (NLS) changes enlarged the already extensive list of covered locales.

  •  New Locales:
    •  Divehi - Maldives
    •  Galician - Spain
    •  Gujarati - India
    •  Kannada - India
    •  Kyrgyz (Cyrillic) - Republic of Kyrgyzstan
    •  Mongolian (Cyrillic) - Mongolia
    •  Punjabi(Gurmukhi) - India
    •  Syriac - Syria
    •  Telugu – India
  •  New “Location” variable: the notion of “location” was introduced in Windows ME to specify a user’s physical location - as opposed to the “User Locale” setting that defines a user’s cultural preferences for the display of formatted data. This variable can be retrieved by using the new GetGeoInfo API and can be used, for example, by on-line service providers to define the closest service centers to your area. The Dr. International Locale 101 article explains in a simple and effective way the distinctions between the different locale variables and their accessibility for both users and developers.
  •  Invariant locale: this new locale’s (Locale ID = 0x01ff ) settings are similar to US-English international standards. Although this locale should not be used to display formatted data, applications can take advantage of it when a consistent and locale independent result is needed. The invariant locale can be an attractive solution, for example, when it comes to compare character strings using the CompareString API and a consistent result regardless of the User Locale is expected.

Redesigned Regional Options Control Panel:

Windows XP sports an extensively redesigned Regional and Language Options control panel that offers an improved user experience and integrates new international functionality. Changes to the UI, to the terminology, and to behavior are described below.

Regional Options page consolidates the system’s Regional settings, allowing users to:

  •  Set the User Locale (which controls settings such as number, currency, date & time formats) through the Standards and Formats control.
  •  Customize the User Locale settings through the Customize button. 
  •  Specify a geographic location (Geo setting).

Mirrored

Figure 3: Regional Options Tab

The Languages tab clusters together all the system's language options. This page allows users to:

  •  Navigate to the Text Services dialog, where they can install input languages and methods
  •  Install or remove additional support files for the group of Chinese, Japanese and Korean (CJK) languages, or the group of Armenian, Arabic, Georgian, Hebrew, Indic, Thai and Vietnamese languages. Most of the languages are installed by default. By clustering remaining language groups together, fewer reboots are required upon addition of new language support.
  •  Change the MUI language, if running on an MUI system.

Mirrored

Figure 4: Language Tab

The Text Input Languages dialog is invoked from the button in the Input Languages and Methods field on the Language tab. This new UI allows a better distinction between different installed input languages and input methods (keyboard layout, IME, Handwriting recognition, and speech).

Mirrored

Figure 5: Text Input Languages Dialog

The advanced tab only displays when an administrator logs on. The page allows administrators to:

  •  Set the system locale (for legacy non-Unicode application emulation).
  •  Install or remove codepage translation tables.
  •  Apply the current settings to the default user account.

The checkbox in the Default User Settings field allows administrators to configure the default user settings (applied to all new user accounts) with the current user settings.

Mirrored

Figure 6: Advanced Tab

Unattended mode installations:

Windows XP Regional & Language Options control panel provides silent / unattended mode setup support through several defined keywords. This support enables the configuration of the system's various regional and language settings without displaying the user interface or requesting user interaction - all the configuration information is provided in a separate text file, called an "answer file". In unattended mode, setup reads from the answer file rather than from user input. Regional and language settings are specified in the answer file in the [RegionalSettings] section. The following keywords are defined (items in red are new keywords in Windows XP):

[RegionalSettings]
Language = <locale ID>
LanguageGroup =<language group ID>,<language group ID>,..
SystemLocale = <locale ID>
UserLocale = <locale ID>
InputLocale= <locale ID:keyboard layout ID>, <locale ID:keyboard layout ID>,… 
UserLocale_DefaultUser =<locale ID>
InputLocale_DefaultUser =<locale ID:keyboard layout ID>, …

Modifications in Uniscribe:

The Uniscribe engine now supports even more scripts:

  •  New Indian scripts: Gujarati, Gurmukhi, Telugu, Kannada.
  •  New Arabic scripts: Syriac, Divehi.
  •  New font fallback support for East Asian languages. This complex script specific feature is now available to accommodate East Asian languages whenever the currently selected font and the font linking mechanism fail to define the appropriate glyph to be displayed.

Multilingual User Interface (MUI):

Windows XP with MUI Pack is closer to the localized experience than ever before.

  •  Improved coverage: Localization of the UI is boosted to 97% in Windows XP Multilingual User Interface Pack (versus 100% for a typical localized version). Most of these improvements can be attributed to changes made in the system’s Shell and to the elimination of string resources from the Registry. Folder names, shortcuts, friendly doc names, control panel, and desktop elements are now fully localized.
  •  Full coverage for help files: In Windows 2000 MUI, win32hlp files (*.hlp)and context sensitive content remain in English. Windows XP MUI handles these old ANSI based help files in addition to HTML based help files, allowing both to be displayed in the selected UI language.
  •  Easier Setup & Administration: Windows XP MUI setup uses Windows Installer technology and is packaged as an MSI file. This approach reduces setup footprints, for example in case of a network installation it allows for a remote uninstall. Also, improved unattended setup options, discussed above, allow a better definition of MUI specific variables. Finally, language group clustering makes language support installation an easier process with fewer reboots required.
  •  Resource versioning: Windows XP MUI version makes the MUI language resource file version stamping possible. Changes were made to allow:
    •  A mechanism to recycle old resource files.
    •  Fallback to English if updated resources are not available for a given MUI language.
    •  Supporting Service Pack and hot-fix scenarios where not all MUI language files can be made available at once.

Notice that the Windows XP MUI packages are distinct and separate SKUs for Professional, Server, Advanced Server, and Data Server. Also, the MUI feature will not be available for Windows XP Personal.

Summary

Windows XP has even better multilingual support than Windows 2000 which was recognized to have set new standards in international computing industry. Windows XP’s new international coverage includes:

  •  9 new locales added to previous list of 126 locales.
  •  Improved support for existing locales (Farsi and Urdu).
  •  Over 10 new languages and scripts, including additional complex scripts such as Telugu and Syriac as well as other scripts like Old Hangul.
  •  More robust font display mechanism for East Asian languages.
  •  Improved Regional Settings options.
  •  Largely improved MUI support with more parity with localized versions and better setup and administration options
 

About the Author:

Houman Pournasseh is a Lead Program Manager in the Windows Division in charge of globalization and internationalization evangelism. He was part of Windows 98 BiDi development team and the Program Manager for Windows 2000 Complex Script languages.


To top of page


©2004 Microsoft Corporation. All rights reserved. Terms of Use |Trademarks |Privacy Statement