Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

Is there any command line utility to change the system locale in Windows 2003?

share|improve this question

migrated from stackoverflow.com May 30 '10 at 22:27

This question came from our site for professional and enthusiast programmers.

2 Answers 2

There is no Win32 API or Scripting (WMI) to switch system locale. However, you can use this command line to do it:

rundll32 shell32, Control_RunDLL intl.cpl,,/f:”c:\locale.txt”

The content of C:\locale.txt looks like:

[RegionalSettings]

LanguageGroup=13

SystemLocale=0401

UserLocale=0401

InputLocale=0409:00000409,0401:00000401

(This will change System and User locale to Arabic – Saudi Arabia and add Arabic keyboard).


Taken from Microsoft KB

share|improve this answer

I don't know of a command line utility that strictly does this, but you could use a small bit of VBScript to change the associated registry values. It's not as straightforward as changing the locale in the General tab of the Regional and Language Options dialog, but it works.

For example, to change the settings to match "English (United Kingdom)" you can use something like this:

Dim WSHShell
Set WSHShell = CreateObject("Wscript.Shell")

WSHShell.RegWrite "HKCU\Control Panel\International\iCountry", "44", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\iCurrDigits", "2", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\iCurrency", "0", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\iDate", "1", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\iDigits", "2", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\iLZero", "1", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\iMeasure", "0", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\iNegCurr", "1", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\iTime", "1", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\iTLZero", "1", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\Locale", "00000809", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\s1159", "AM", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\s2359", "PM", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\sCountry", "United Kingdom", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\sCurrency", "£", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\sDate", "/", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\sDecimal", ".", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\sLanguage", "ENG", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\sList", ",", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\sLongDate", "dd MMMM yyyy", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\sShortDate", "dd/MM/yyyy", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\sThousand", ",", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\sTime", ":", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\DefaultBlindDialFlag", "00", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\sTimeFormat", "HH:mm:ss", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\iTimePrefix", "0", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\sMonDecimalSep", ".", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\sMonThousandSep", ",", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\iNegNumber", "1", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\sNativeDigits", "0123456789", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\NumShape", "1", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\iCalendarType", "1", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\iFirstDayOfWeek", "0", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\iFirstWeekOfYear", "0", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\sGrouping", "3;0", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\sMonGrouping", "3;0", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\sPositiveSign", "", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\sNegativeSign", "-", "REG_SZ"
WSHShell.RegWrite "HKCU\Control Panel\International\Geo\Nation", "244", "REG_SZ"
share|improve this answer
    
Note that the user may have to log off/on again for the change to take effect. –  David Crow Sep 23 '08 at 22:45

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.