title is pretty clear.
My websites consists of both English-written and Spanish-written versions. You can go to the main site, which is in Spanish, by clicking http:
some website use IP address-based geo location, some us Accept language header (can be set in the browser). Anyway, from the usability point of view - always allow people to change the language and never display different content on the same IP (google and other search engines doesn't like it and it would be bad from SEO point of view).