[Galaxy S I9000 General] bloodrider:
As you should have noted I'm not supporting this topic anymore. Nowadays most ROMs have this integrated, you only have to change to your CSC of choice in case of need.

(My links were from "pre-Megaupload BOOM" era, so... Not really uploading them again as they aren't needed!)

Before anything, I hope you have an /efs folder backup, you should have done it even before flashing!

NOTICE: This method does a reset, your SGS only maintains your personal files (sdcard & external sdcard). I'm not responsible at all for any problem that you get for following this procedure.

This procedure must bee done after flashing and before installing "anything" ("only" root and a program like Root Explorer are allowed :P). If you do this after you'll likely have problems!

You need root access so this can work! You may do this with commands via ADB or terminal, or else in a easy way with a program like Root Explorer (notice this is a paid app).

NOTICE: It seems this process, as it uses older CSC versions, disables the "voice input abilities", you may have to reinstall "voice apks" (if you use them...). I will confirm this today or during this weekend. (this issue was related to a problem on the French CSC)

MANUAL METHOD:

First, get the right folder for your country (available at the bottom of this topic or else ask me) and copy it to /system/csc.*

After, open an ADB shell, and use the following command:

am start -a android.intent.action.MAIN -n com.android.Preconfig/com.android.Preconfig.Preconfig

After this, select on your SGS, your CSC country code. Then it'll reboot, you'll have to do the initial configuration, and it's done!

"AUTOMATIC" METHOD (firmwares dated to september (or newer)): (Thanks for Richthofen, for this info!)

First, get the right folder for your country (available at the bottom of this topic or else ask me) and copy it to /system/csc.*

After, check your IMEI with this code on the dialer, *#06#, and save it as you'll need.

Then, type on the dialer, *#272*???????????????# (??????????????? it's your IMEI, it must have 15 digits), after you can chose your CSC, then it'll reboot (it may take some time, you'll see bootloader applying the changes), you'll have to do the initial configuration and it's done!

For your country you'll need a specific folder. If you don't find it were, give me an CSC file for your country (any firmware version, I just need the file "cache.rfs" or the "CSC_I9000------.tar.md5") and I will make the folder for your country available.

* If you're on JPK (probably on every new version of Froyo), you'll need the following commands to be able to copy the CSC folder to the /system/csc.

adb shell
su
busybox mount -o remount,rw /system

This process is fully functional, it changes your CSC and recover your original product code! (to have your product code recovered your nv_data.bak should be compatible with the CSC you apply)

PS: You can check your product code with SGS ToolBox.

PS2: I did some search and didn't see this method posted were on XDA. If I'm wrong, sorry!

OPS - Australia (YES OPTUS)

VAU - Australia (Vodafone) BRANDED

XSA - Australia (Telstra, YES OPTUS, Vodafone AU, Virgin Mobile, 3, Crazy Johns)

HUT - Australia (3) BRANDED

ATO - Austria

SEB - Baltic (LMT GSM, LV TELE2, LV BITE, LT Omnitel, LT Bite, LT TELE2, EE EMT, EE ELISA, EE TELE2)

ETR - Bangladesh

TML - Bangladesh (TML and ETR seem equal, same version, same network operators)

PRO - Belgium

VVT - Bulgaria (vivacom)

MTL - Bulgaria (MTEL)

BMC - Canada (Bell)

BWA - Canada (SaskTel)

BMF - Canada (Fido) UNBRANDED [provided by Idan73, not checked by me]

XEZ - Czech Republic

VIP - Croatia (HR VIP)

SFR - France (F SFR, SFR RU) BRANDED

XEF - France

DBT - Germany

CYO - Greece (MTN, CYTAVODA)

EUR - Greece (WIND GR, vodafone GR, COSMOTE)

TGY - Hong Kong [provided by rickylcp, not checked by me]

INS - India (CSCEdition > ED006)

INU - India (CSCEdition > ED009 | I think INU is an updated version of INS, as they seem to have the same network operators)

XSE - Indonesia

MET - Ireland (Meteor)

ITV - Italy [UPDATED 02/11]

XME - Malaysia

NPL - Nepal

XEE - Nordic (Denmark, Finland, Iceland, Norway, Sweden)

XTC - Philippines

XEO - Poland (Plus, Era, Heyah, Orange, Play)

ERA - Poland (ERA) BRANDED

TPH - Portugal

CNX - Romania (Vodafone RO)

COA - Romania (Cosmote)

ORO - Romania (RO Orange)

HAT - Romania (RO Orange, Vodafone RO, Cosmote)

SER - Russia (MTS, Beeline, Megafon, TELE2)

TOP - Serbia

XSP - Singapore

XSP - Singapore UNBRANDED

XSO - Singapore (Singtel)

MOT - Slovenia (Mobitel)

SIM - Slovenia (Si.mobil)

XEC - Spain (Movistar) BRANDED

FOP - Spain (Movistar, Vodafone ES, Orange, Yoigo, Mobil R, EUSKALTEL, TeleCable, Blau, Simyo)

SLK - Sri Lanka

AUT - Switzerland (Sunrise, Swisscom, Orange CH)

MOZ - Switzerland (Sunrise, Swisscom, Orange CH)

SWC - Switzerland (Swisscom) BRANDED

CPW - United Kingdom & Ireland

XEU - United Kingdom & Ireland

This process also works on the I5801, thanks to gazski!