I programmed http://maven3d.com as a multilingual site. It can handle 137 languages but only has 3.
I've programmed other sites as multilingual, but they had different purposes and architectures. http://maven3d.com is a better example of how to do things right.
Behind it, there's a CMS to input everything into a database. Pages are then published to the right subdirectory, e.g. /en/, /ko/, /ja/.
I use server variables to find the http_accept_language and then redirect based on that. English is the default.
It works very well and you can even switch languages seamlessly (almost).
The site is really based on the ISO639 standard which all broswers use.
INI files or includes and cookies are a poor way to work things unless you are trying to maintain an application INTERFACE. i.e. The 'non-content' things are the ones that change.
The reason I say cookies are poor is because you can't control them reliably. You DO have control over the HTTP protocol though.