Preparing Surface for Localized Applications

When you set up Microsoft Surface for the first time, you set up the Windows 7 operating system and you can change the language and locale from English to other Surface-supported languages. If you change the language and locale from English to another supported language, Windows 7 and the user-facing parts of the Surface user interface appear in the new language.

Any changes that you make to the language or locale in Control Panel do not apply to the Surface software. (For example, you can make these changes by opening Control Panel, then opening Region and Language, and then changing the settings for Formats, Location, and Keyboards and Languages in the Clock, Language, and Region dialog box.) Settings in Control Panel are user-specific, not system-wide. If you want to change the language or locale that Surface uses to display applications, you can use Surface Configuration Editor to change language and locale settings that are described in the following Changing Microsoft Surface Localization Settings by Using Surface Configuration Editor section of this article.

You must also configure some localization settings on devices made for Surface to prepare them to display localized applications. This topic includes:

If you prefer to manually set the registry entries to configure localization settings for Surface software, see the Surface Registry Keys reference topic, and search on the InputLanguageID, LocaleName, and UILanguageName entries.

Windows Localization Settings

The Windows 7 operating system uses a globalized architecture that enables you to establish settings that apply to a culture and locale. There are three types of settings that you can apply:

  • The interface language setting (UILanguageName) controls the language that appears in toolbars, menus, dialog boxes, and so on. (The interface language is also called UI Language in Win32 or UI Culture in the .NET Framework.)

  • The date and number setting (LocaleName) affects how numbers, currencies, dates, and time are displayed. (The date and number setting is called Locale in Win32 or Culture in the .NET Framework.)

  • The input language setting (InputLanguageID) changes the keyboard layout and the characters that certain keys generate. For example, users can use this setting to type accented characters that apply to a specific locale. (The input language that used to be called Keyboard Layout in Win32 is now called Input Locale (Win32) and is also called Keyboard Layout in the .NET Framework.)

These settings are independent of each other. For example, you can set the interface language to English (United States) and set the date and number format and input language to use settings from a different culture.

Surface uses localization settings that are equivalent to Windows 7, but these settings are separate from the operating system settings. For example, you can perform administrative functions on a Surface (such as installing applications) by using the English language interface of Windows 7 while the Surface interface language displays German for Launcher, the out-of-order screen, and so on.

Changing Microsoft Surface Localization Settings by Using Surface Configuration Editor

To change the localization settings for Surface software, you must modify the following configuration settings:

  • UI language controls which language is displayed in the user interface for Surface.

  • Locale controls how Surface displays numbers, currencies, dates, and time.

  • Input language (keyboard) controls the layout and key mapping used for the Surface on-screen keyboard.

To configure localization settings for Surface software

  1. In Windows mode, click Start, click All Programs, click Microsoft Surface 2.0, and then click Surface Configuration Editor.

  2. In the left pane, click International Support.

  3. In the International Support pane, under UI language select the language you want to display in the user interface of Surface software.

  4. In the International Support pane, under Locale, select the locale you want to control how numbers, currencies, dates, and time are displayed in Surface software.

  5. In the International Support pane, under Input language (keyboard) (you may need to scroll down to see this section of the pane), select the language that you want to use for the Surface on-screen keyboard. This may be a different language than what you chose for UI language. For example, if you, as the administrator, want to use Danish for the on-screen keyboard, but you want to configure settings for Surface applications localized into Spanish, you would choose Danish for Input language (keyboard) and you would choose Spanish (Spain) for UI language.

  6. Click OK to save your settings and close Surface Configuration Editor, or click Apply to save your settings and continue configuring Surface. Restart Surface Shell for your settings to take effect.

Missing Localization Settings

If a localization registry setting is missing, Surface uses default values. For example, if you do not specify a language or locale setting for the UI language, Locale, or Input language (keyboard) options in Surface Configuration Editor, Surface Shell automatically uses the default interface language for the operating system.

Ultimately, the resource loader of each feature (Launcher, Surface applications, and so on) determines which resources to load, based on the Surface UI language and the resource loading fallback rules from the .NET Framework.

Localizing the Out-of-Order and Error Screen Messages

Microsoft Surface 2.0 is available in 10 languages and includes the default out-of-order and error screen messages in each of those languages. If your deployment requires another language or if you want to modify the default strings, you can do one of the following:

  • Use Surface Configuration Editor to customize the text on the error and the out-of-order screens. For more information, see Configuring Error and Out-of-Order Screens.


  • Manually edit the SurfaceOutOfOrder.XML file, adding your customized text for error and out-of-order screens. For more information, see the following procedure steps.

To manually add localized strings to the error and out-of-order screens

  1. Create a subfolder of the %PROGRAMDATA%\Microsoft\Surface\v2.0 folder that is named to match the name of the UI language that you want to support or the name of the UI language that you want to modify strings for (for example, %PROGRAMDATA%\Microsoft\Surface\v2.0\de-DE if you want to support German out-of-order and error messages).

    For a list of the supported UI language names, see the languages that Microsoft Surface 2.0 supports in the table under UILanguageName in the Surface Registry Keys reference topic. For a list of locale names that the Microsoft Windows operating system supports, see Locale Identifier Constants and Strings on the MSDN website.

  2. Create a copy of the SurfaceOutOfOrder.xml file by using the same file name and putting this new file in the language-specific subfolder.

    For more information about the SurfaceOutOfOrder.xml file, see SurfaceOutOfOrder.XML File.

  3. In the language-specific SurfaceOutOfOrder.xml file, type the localized primary and secondary text for the error and out-of-order screen messages.

  4. (Optional) If you want to show alternate error or out-of-order screen images, create new ImageFile elements. Or, if you do not want those images to appear in this localized version, delete the copied ImageFile elements.

See Also

Did you find this information useful? Please send us your suggestions and comments.

© 2011 Microsoft Corporation. All rights reserved.