Você não deve fazer isso através da edição do registro, já que nosso conhecimento sobre isso é bastante limitado, mas use o mecanismo fornecido pelo Windows.
A Microsoft criou o Windows PowerShell como sua principal interface de programação que permite o acesso a praticamente todas as funcionalidades do Windows. Infelizmente, a família de funções do PowerShell que pertence à linguagem, Cmdlets de configurações internacionais , foi apresentado apenas para o Windows 8 / Server 2012 e não está disponível para o Windows 7 ou Vista.
No entanto, existem soluções para o Windows 7 ou o Vista, conforme descrito no artigo do MSDN: Configuração da linha de comando do Windows Vista das configurações internacionais .
Um exemplo de uso desta técnica pode ser encontrado em Configurando opções regionais e de idioma internacional Configurações com automação de linha de comando , que basicamente usa um arquivo xml especialmente criado com o comando:
control intl.cpl,, /f:"intlsettings.xml"
Abaixo estão listados alguns exemplos de arquivos xml.
Alterar o idioma atual
<gs:GlobalizationServices xmlns:gs="urn:longhornGlobalizationUnattend">
<!--User List-->
<gs:UserList>
<gs:User UserID="Current"/>
</gs:UserList>
<!-- User Locale-->
<gs:UserLocale>
<gs:Locale Name="es-US" SetAsCurrent="true"/>
</gs:UserLocale>
</gs:GlobalizationServices>
Adicionar idioma do teclado
<gs:GlobalizationServices xmlns:gs="urn:longhornGlobalizationUnattend">
<gs:UserList>
<gs:User UserID="Current" CopySettingsToDefaultUserAcct="true" CopySettingsToSystemAcct="true"/></gs:UserList>
<gs:InputPreferences>
<gs:InputLanguageID Action="add" ID="0804:E0200804"/>
</gs:InputPreferences>
</gs:GlobalizationServices>
Remover idioma do teclado
<gs:GlobalizationServices xmlns:gs="urn:longhornGlobalizationUnattend">
<gs:UserList>
<gs:User UserID="Current" CopySettingsToDefaultUserAcct="true" CopySettingsToSystemAcct="true"/></gs:UserList>
<gs:InputPreferences>
<gs:InputLanguageID Action="remove" ID="0804:E0200804"/>
</gs:InputPreferences>
</gs:GlobalizationServices>