The only solution I managed to implement was to change the registry. In Windows 7, when changing the language, a new entry is added to the registry in the subkey: HKEY_CURRENT_USER\Control Panel\Desktop . This key will contain a PreferredUILanguagesPending entry of type REG_MULTI_SZ , and its value will determine the interface language. In order for the changes to be applied, the current user must log out and log back in. This can be done using the following code:
RegistryKey key = Registry.CurrentUser.OpenSubKey(@"Control Panel\Desktop", true); string[] lang = {"en-ZA"}; key.SetValue("PreferredUILanguagesPending", lang, RegistryValueKind.MultiString);
The language pack must be installed before installing it. For a list of language packs, check here or here . If more than 1 language pack is installed, Control Panel > Region and Language > Keyboards and Languages > Display language appears to change the user interface Control Panel > Region and Language > Keyboards and Languages > Display language .
source share