I can state with certainty that the “Accept-Language” header works these days, and any case where it doesn’t can (and will) be considered an error on the part of the browser vendor.
—
Code: Flickr Developer Blog » Language Detection: A Witch’s Brew?
Flickr, always with the pragmatic advice. (First nerd post, I resisted for, like, a week?)