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](Overview%20of%20Windows%20XP%20International%20Support_files/multiscript.jpg)
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
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.
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](Overview%20of%20Windows%20XP%20International%20Support_files/xp-regoptions.jpg)
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.
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).
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.
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. |
|