The only other option is to enable cookies so that the website language choice is saved - which also invites countless tracking cookies which I do NOT want.
Your web site does NOT know better than me which language I want to read.
The only other option is to enable cookies so that the website language choice is saved - which also invites countless tracking cookies which I do NOT want.
Your web site does NOT know better than me which language I want to read.
If you have multiple language, hopefully you already have a scheme to differentiate the language (i.e. wikipedia has the language in the URL). If the user went to a specific language URL you should ignore the other settings.
If he/she didn't go directly to a specific language, it's fair to assume he/she is in a non standard situation or is OK with the defaults, and applying heuristics doesn't help.
If you can afford two pop-up lists, the approach of Lufthansa is the best [2]. If you want just one list, follow the installation screen of Ubuntu -- they write out the name of the language in its own script.
[1]: http://flagsarenotlanguages.com/blog/2011/09/the-metropolita...
[2]: http://www.lufthansa.com/de/en/pre-homepage?command=cc&lang=...
As a visual marker for language switching I imagined having a flag, but looking at the replies, that seems non optimal.
The best behavior could be a popup shown only to users who's accepted languages don't match the current language, and keep the choice in a cookie perhaps ?
If IP and accept-language don't match, why not make a prominent button (in the language they didn't pick) to allow you to quickly change?
"It looks like you are in Japan, but your computer's language is set to English. Which language would you prefer? [English][日本語]"
The problem is that for a large minority of people this is absolutely catastrophic. Think of the Western business traveller going to Japan or China...