The Microsoft Surface (the table, not the tablet) is a Windows Vista computer running the Microsoft Surface Shell. This shell is by default localized for US English.
It is possible to localize for other locales, but there is no configuration screen to set the desired localization.
This article will summarize the different steps to localize the Surface shell.
Microsoft Surface Device vs. Microsoft Surface Simulator
The settings work for both the Microsoft Surface device and the Surface Simulator.
Note for x64 machines (Running the SDK)
If you are running the Surface Simulator on a x64 machine (see my post about Installing the Microsoft Surface SDK on Windows 7 x64
) the registry entries are slightly different.
For x86:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Surface\v1.0
For x64:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Surface\v1.0
All my examples in this post will use the x86 path.
Setting the Surface Shell interface language
With service pack 1, the shell now supports 10 UI languages.
Language | UILanguageName value |
---|---|
Danish | da-DK |
Dutch | nl-NL |
English (United States) | en-US |
French | fr-FR |
German | de-DE |
Italian | it-IT |
Korean | ko-KR |
Norwegian (Bokmål) | nb-NO |
Spanish | es-ES |
Swedish | sv-SE |
To set the required language you need to edit the registry.
- Look for the following key
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Surface\v1.0\InternationalSupport
- Change the
UILanguageName
value into the desired language name you find in the table. For example, to set the language to Dutch you enternl-NL
. - Restart the shell
Setting the Surface Keyboard mapping
There are 19 supported keyboard mappings.
Keyboard layout | InputLanguageID value |
---|---|
Belgian (Comma) | 0x1080c |
Belgian French | 0x80c |
Canadian French | 0x1009 |
Canadian Multilingual Standard | 0x11009 |
Danish | 0x406 |
French | 0x40c |
German | 0x407 |
Italian | 0x410 |
Korean | 0x412 |
Latin American | 0x80a |
Norwegian | 0x414 |
Spanish | 0x40a |
Swedish | 0x41d |
Swiss French | 0x100c |
Swiss German | 0x807 |
United Kingdom | 0x809 |
United Kingdom Extended | 0x452 |
US English | 0x409 |
US-International | 0x20409 |
To set the desired keyboard mapping you need to edit the registry.
- Look for the following key
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Surface\v1.0\InternationalSupport
- Change the
InputLanguageID
value into the desired keyboard mapping you find in the table. For example, to set the shell to Korean you enter0x412
(Hexadecimal). - Restart the shell
Setting the Surface Date and Number formatting
For date and number formatting you can use all locales supported by the .NET Framework. The complete list can be found on the Language Identifier Constants and Strings MSDN page.
Just combine the primary language, for example: Dutch (nl), with the sublanguage, for example Netherlands (NL): nl-NL
.
To set the desired date and number formatting you need to edit the registry.
- Look for the following key
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Surface\v1.0\InternationalSupport
- Change the
LocaleName
value into the desired formatting locale. For example, to set the formatting to Dutch you enternl-NL
. - Restart the shell