At Exact Software we already create multi-language applications for more than 15 years. The principle was very simple. All pieces of text would be stored separately, the applications would only contain references to the text and at run-time the correct language was displayed. Since these were on premise applications the installation would set a default language, that could be modified by the user. This was simple and effective.
Today most applications and websites use the same principle, but often try to be too smart for their own good. I've lately been bugged too many times by websites that try to out smart me.
1. YouTube has decided that I should use a 'Netherlands' filter and use the 'Dutch' language. They do this based on my IP address, because I run an English OS on a machine bought in the US. I can only choose 'Yes' or 'Cancel'. I consequently press 'Cancel' but that is for YouTube/Google a reason to keep asking again after a few days. I really have no way out!
2. If I go to www.myspace.com I do get a page in Dutch. When I signed up for MySpace the Dutch version didn't even exist. I've had endless email conversations with Tom that I don't want this... but nothing helps.
3. I do travel quite a bit and that is for Google also a reason to change the language of your applications. Google stop putting my Reader in German! When I've coworker from the States over in the Netherlands the same happens. Apparently Google hasn't figured out that people travel.
4. Plaxo has been bugging me for weeks to change to the 'Dutch' language. The actual message was in Dutch and pressing no was not an option.
... and the list goes on and on..
I'm not sure why they do this, but it might be considered improving the user experiences. My take on it is simple. Just stop messing with my language!