Using Multilingual User Interface on Windows Embedded Standard 2009

Using Multilingual User Interface on Windows Embedded Standard 2009


Microsoft Corporation

July 2009

This technical article contains information about how to use Multilingual User Interface (MUI) on Windows Embedded Standard 2009.

Multilingual User Interface (MUI) is a technology for providing a localized user interface to international users. MUI technology, which deals with user interface elements, such as menus, dialog boxes, Help text, and other items, is represented as resources. Installed onto an English-language Windows operating system, the MUI pack implements the MUI technology and provides a MUI version of the operating system. By using the MUI version of the operating system, users can set the user interface language according to their preferences as long as resources for the required languages have been added to the operating system. All versions of the Windows XP operating system use the same executable code to run Win32-based applications. The only difference between these binaries from one language to another is in the translation of their resources.

When thinking about MUI with regard to Windows Embedded Standard 2009, remember that the operating system is not fully localized, applying an MUI pack to the English-based operating system image makes only the translated resources available for use for the selected language. Each language has its own resources, and not all resources are the same for each language. Some menus or dialog boxes may have localized resources in one language but not in another. If a localized resource string is not available for a language, the menu or dialog box appears in the underlying language of the operating system, which is English for Standard 2009. This is also true for features such as Windows Internet Explorer, Outlook Express, and Windows Media Player.

Standard 2009 does not support Language Interface Packs (LIP). For more information, see Frequently Asked Questions: Windows Language Interface Pack (LIP) on MSDN.

In This Section


A locale is a set of user preference information related to the user's language and country/region. For example, the language could be French, and the country/region could be Canada, France, or Switzerland.

Locale information includes the following:

  • Currency symbols
  • Date, time, and number formatting information
  • Localized days of the week and months of the year
  • The standard abbreviation for the name of the country/region
  • Character encoding information

For a fuller list, see the National Language Support API (NLSAPI) specification.

Character Encoding

Character encoding, also known as a code page, is a set of numeric values, or code points, that represent a group of alphanumeric characters, punctuation, and symbols. Single-byte character encoding uses 8-bits to encode 256 different characters. In Windows, the first 128 characters of all code pages consist of the standard ASCII set of characters. The range of characters from code point 128 through 255 represent additional characters and vary depending on the set of scripts represented by the character encoding. For a complete listing of character set tables, see Developing International Software (Second Edition). Double-byte character encodings on Windows used for Asian languages, use 8 to 16 bits to encode each character. Computers exchange information encoded in character encodings and render it on screens using fonts. The following illustration shows code page 1256, Arabic character encoding.


Windows XP supports the OEM character set (originally designed for MS-DOS), the ANSI character set (introduced with Windows 3.1), and Unicode. Unicode is a 16-bit character set that includes most of the scripts widely used today. For more information, see The Unicode Standard published by the Unicode Consortium.

Windows XP uses Unicode as its base character set. Therefore, all strings that are passed around internally in the system, including strings in Windows resource (.res) files, are Unicode. Windows XP also supports the ANSI character set. Each API that takes a string as a parameter has two entry points, an 'A' or ANSI entry point and a 'W' or wide-character (Unicode) entry point.

Windows XP supports additional code pages for translating data to and from Unicode, including Macintosh, EBCDIC, and ISO. It also contains translation tables for the UTF-7 and UTF-8 standards. These are typically used to send Unicode-based data across networks, in particular, the Internet.

National Language Support

National Language Support (NLS) in Windows XP consists of a set of system tables that applications can access through the NLSAPI. The NLSAPI retrieves the following types of information:

  • Locale information
    For example, date, time, number, or currency format, or localized names of languages, country/region, or days of the month and week.
  • Character mapping tables
    For example, character mapping tables that map local character encodings (ANSI or OEM) to Unicode or character mapping tables that map Unicode to local character encodings.
  • Keyboard layout information
    Because Windows keyboards use layouts that are software driven, the same keyboard hardware can be used to generate various different language scripts.
  • Character typing information
    For example, whether a specific Unicode code point is a letter, a number, a spacing character, or punctuation symbol; whether a character is uppercase or lowercase; or what a character's uppercase or lowercase equivalent is for a particular locale.
  • Sorting information
    Different locales follow different sorting rules for accented characters or may support more than one sorting algorithm.
  • Font information
    For example, system-stored information about which fonts support which character encodings or which ranges of Unicode. APIs map the fonts that support each language.

On Windows XP, users can install National Language Support for any locale by using Control Panel. In Standard 2009, support for a specific language and locale is enabled by adding the appropriate components to the run-time configuration.

Localizable Resource

A localizable resource is any piece of information in a software program that will change from language to language. Although certain algorithms may change depending on language (for example, spelling or hyphenation), localizable resources are generally UI elements. Examples include menus, dialog boxes, Help text, icons, and bitmaps. On Windows, most of these resources are stored in Windows resource files. In text form, Windows resource files have the .rc extension. Resource files have the .res file name extension and are compiled directly into the application executable. On Windows XP, all languages can share the same binary executable. All that must change to support a new language are the localizable resources. The same is true for Standard 2009.

Standard 2009 supports the following language packs:

  • Arabic
  • Chinese (PRC)
  • Chinese (Taiwan)
  • Czech
  • Danish
  • Dutch
  • Finnish
  • French
  • German
  • Greek
  • Hebrew
  • Hungarian
  • Italian
  • Japanese
  • Korean
  • Norwegian
  • Polish
  • Portuguese (Brazil)
  • Portuguese (Portugal)
  • Russian
  • Spanish
  • Swedish
  • Turkish

Language packs are installed in the Component Database and not on the embedded run-time images on a device. Each MUI pack must be separately installed. By default, only the English language is included in the Component Database.

There are two methods to install MUI packs:

  • Install MUI packs by using Setup Wizard
  • Manually install the MUI packs

  1. Insert the Windows Embedded Standard 2009 DVD.

  2. Click Setup.exe.

  3. Move through the Setup Wizard to the following screen.

  4. Expand the Database node, and then expand the MUIs node.

  5. Select the language or languages you want to install.

  6. Complete the Setup Wizard.

  1. Insert the Windows Embedded Standard 2009 DVD.

  2. In Windows Explorer, locate the DVD drive.

  3. Locate the Setup folder, and then the MUI folder.

  4. Double-click the .exe files for the languages you want to install.

    All .exe files that are related to that language must be installed. For example, if you want to install the Chinese (PCR) language, you should run LANGCHS.exe, LANGCHSSP2.exe, and LANGCHSSP3.exe.

    The permissions for the Repositories share on your database computer must be set to read/write.

All language support components are located under the Software/System/International/Infrastructure node in the component browser in Target Designer. You can add multiple language support for different languages.

When you add the language support components to your configuration, the MUI pack for that language is not automatically installed. The MUI pack must be installed to the database to access the resource strings for that language.

  1. In Target Designer, create a configuration that includes all required components.

  2. Add the appropriate language support component to your configuration.

    For example, add the Chinese – Simplified Language Support component for Chinese (PRC).

  3. In the Settings node of the language support component select the fonts, code pages, and keyboard layouts to include (some will be selected by default).

    For example, the default settings for Chinese - Simplified Language Support component are shown in the following illustration.

  4. Add the English Language Support component.

    Even if the resulting run-time image will not display English, you must include this component in the configuration because it provides the resource references that the language pack components use.

  5. The Regional and Language Options component is added automatically during a dependency check, or you can add it manually. In this component, select Settings to configure:

    • User interface language
    • Standards and formats
    • Default input language
    • Default language for non-Unicode programs
    • Geographic location
    If you did not add the English language pack component, these options are unavailable.
  6. Add the International Control Panel component if you want to change language, locale, formats, and keyboard on the run-time image after it has been built and deployed.

  7. Run a dependency check, and then build the run-time image.

    All MUI-related components, such as fonts, locale, and input method editor, will be added to the run-time image in addition to those feature components that have MUI resources, such as Internet Explorer 7, Windows Media Player 11, and Remote Desktop Protocol 6.1.

You can add multiple language components to your configuration. This is useful when you are building the same device for multiple regions because you will only have to maintain one image and the interface language can be changed for each region. The drawback is that the footprint size increases substantially when you add multiple languages.

In This Section

For testing, we recommend that you build the configuration by selecting English as the User interface language in the Regional and Language Options component and deploy the run-time image to your target device with the English user interface. Test the device and the applications on it and then switch to the desired language using Intl.cpl, which is owned by the International Control Panel component. This helps narrow any possible problems that you may have by isolating them to the MUI or to the base configuration.

It may also be easier to interact with the run-time image if you select a keyboard layout that matches the one that you currently use. Keyboards for different languages and locales have different layouts and may have additional keys. If you do not have the appropriate keyboard attached to the device for the keyboard layout you chose in Target Designer, you may be unable to input the correct characters. This situation could, for example, prevent you from correctly entering the user password to log on to the device.

First Boot Agent (FBA) will be displayed in the language that is selected in Target Designer.

Standard 2009 supports the same functionality as Windows XP for setting locales, standards, and code pages. You do this by double-clicking the Regional and Language Options icon in Control Panel on the run-time image. The available options in this control panel are covered in the following section.

The control panel file for setting regional and language settings is not owned by the Regional and Language Options component, but instead by the International Control Panel component, which must be added manually to the configuration.

Change Standards and Formats

You can configure the standards and formats related to user language preferences in the Control Panel. On the taskbar, click Start, and then click Control Panel. Click the Regional and Language Options icon. In the Regional and Language Options dialog box, click the Regional Options tab. On the Regional Options tab, you can perform the following actions:

  • Select the User Locale by using the Standards and Formats control.
    The User Locale affects settings such as number, currency, and date and time formats.
  • Customize the User Locale settings through the Customize button.
  • Specify a geographical location.
    This setting will also affect the date and time that is displayed on the run-time image. The following illustration shows the standards and formats that users can configure in Control Panel.

Change Language in the Run-Time Image

After FBA is completed, the system starts in the default language selected in the Regional and Language Options component. To change the default language in a multiple MUI run-time image, use the Languages tab in Control Panel. Users can make the following changes on the Languages tab:

  • Change the default keyboard type or add keyboards for additional languages by selecting Details in the Text Services and Input Languages section.
  • Choose the language to use when displaying menus and dialog boxes.
    Supplemental language support is not available on an embedded run-time image, because you cannot add additional languages on a deployed run-time image.

The changes are applied on the next system restart. The following illustration shows how to change the language in Control Panel.


On the Languages tab, click Details to open the Text Input Languages dialog box. This UI enables a better distinction between different installed input languages and input methods (keyboard layout, Input Method Editors, Handwriting recognition, and speech). Standard 2009 stores the locale/keyboard layout pairs as part of a user's profile. Different users may assign a different keyboard layout to a particular language. The following illustration shows how to configure input languages and settings.


Change Language for Non-Unicode Programs

By using the Advanced tab, the user can make the following changes:

  • Set the system locale for displaying text in legacy, non-Unicode applications.
  • Select or clear codepage translation tables.
  • Apply the current settings to all user accounts on the system.
  • The following figure shows how to change the advanced settings.

What you have learned

By using the information in this technical article, you should now have a better understanding about how to use Multilingual User Interface on Windows Embedded Standard 2009.

For more information about International Support, see Overview of Windows XP International Support on MSDN.

For more information about Multilingual User Interface, see Introduction to MUI on MSDN.

© 2016 Microsoft