Sep/0823
Automatic language detection
If you write a website, do not use Geolocation to determine the language to display to your user.
If you write a desktop application, do not use the region setting to determine the language to display to your user.
This is incredibly annoying for some of us, especially for me which is why I'm ranting here.
The moment Google released their (awful) German translation for their RSS reader, I was served the German version just because I have a Swiss IP address.
Here in Switzerland, we actually speak one of three (or four, depending on who you ask) languages, so defaulting to German is probably not of much help for the people in the french speaking part.
Additionally, there are many users fluent in (at least reading) English. We always prefer the original language if at all possible because generally, translations never quite work. Even if you have the best translators at work, translated texts never feel fluid. Especially not when you are used to the original version.
So, Google, what were you thinking to switch me over to the German version of the reader? I have been using the English version for more than a year, so clearly, I understood enough of that language to be able to use it. More than 90% of the RSS feeds I'm subscribed to are, in fact, in English. Can you imagine how pissed I was to see the interface changed?
This is even worse on the iPhone/iPod frontend, because, there, you don't even provide an option to change the language aside of manually hacking the URL.
Or take desktop applications. I live in the German speaking parts of Switzerland. True. So naturally I have set my locale settings to Swiss German. You know: I want to have the correct number formatting, I want my weeks to start on Mondays. I want the correct currency. I want my 24 hours clock I'm used to.
Actually, I also want the German week and month names, because I will be using these in most of my letters and documents, which are, in fact, German too.
But my OS installation is English. I am used to English. I prefer English. Why do so many programs insist to use the locale setting to determine the display language? Do you developers think it's funny to have a mish-mash of languages on the screen? Don't you think that me using an English OS version may be an indication that I do not want to read your crappy German translation alongside the English user interface of my OS?
Don't you think that it feels really stupid to have a button in a German dialog box open another, English, dialog (the first one is from Chrome, the one that opens once you click "Zertifikate verwalten" (Manage certificates) is from Windows itself)?
In Chrome, I can at least fix the language - once I found the knob to turn. At first, it was easier for me to just delete the German localization file from the chrome installation because, due to being completely unused to German UIs, I was unable to find the right setting.
This is really annoying and I see this particular problem being neglected on an incredibly large scale. I know that I am a minority, but the problem is so terribly easy to fix:
- All current browsers send an Accept-Language header. In contrast to the earlier times, nowadays, it is actually correctly preset in all the common browsers. Use that. Don't use my IP-address.
- Instead of reading the locale setting in my OS, ask the OS for its UI language and use that to determine which localization to load (actually, this is the recommended way of doing things according to Microsoft's guidelines at least since Windows XP which was 2001).
Using these two simple tricks, you help a minority without hindering the majority in any way and without additional development overhead!
Actually, you'll be getting away a lot cheaper than before. GeoIP is expensive if you want it to be accurate (and you do want that. Don't you?), whereas there are ready-to-use libraries to determine the correct language even from the most complex Accept-Language-Header.
Asking the OS for the UI language isn't harder than asking it for the locale, so no overhead there either.
Please, developers, please have mercy! Stop the annoyance! Stop it now!

September 24th, 2008
I’m a German with an English Ubuntu and English Windows XP installation. I agree, it is totally annoying when a service decides not to serve the default (=English) version.
September 24th, 2008
One problem is that Windows does not allow you to easily change the UI language. I am British but I live in Spain, so all computers you buy here come with Spanish Windows. In this case applications defaulting to the Windows UI language is not what I would want, I would want applications I install to be in English.
September 24th, 2008
It is definitely very hard to change the UI language in Windows (XP at least, not sure about Vista). The only way I know without a reinstall is to use the MUI packs. These are only legally available with a Microsoft Enterprise or Volume Licensing account, but can be found online via torrents. I used the Russian MUI on my install of XP, and now I can change the system UI language (and it changes everything) with one selection in Control Panel. I also setup a friend of mine with the Arabic MUI, which also worked very well (even with the right-to-left change).
September 24th, 2008
Couldn’t agree with your article more – I live in Japan, but I am from New Zealand, so I prefer to have things in English. I can work in Japanese but don’t want that forced on me. Sites like Facebook and Youtube do this – on youtube, even changing to New Zealand content gets me an interface in Japanese! Terribly annoying.
September 24th, 2008
Google is especially bad in this regard. Their search engine does not only switch the user interface language but also alters the search function itself to prefer german websites.
Changing the settings didn’t work really. For some reasons, may it be bugs, mischief, or my own stupidity, I still got german results sometimes.
To make a long story short: I switched search engines soon after this “feature” was introduced.
September 24th, 2008
Windows is largely to blame. On Windows XP, there’s one “Regional Options” for locale settings, a “Location” popup for “local information, such as news and weather”, and that’s it. It’s not clear how to tell Windows what language you want it to speak.
In contrast, the Mac’s International control panel has 3 tabs: Language (“application menus, dialogs”), Formats (Dates/Times/Numbers/etc.), and Input Menu (keyboard layouts). I can have sensible European-style dates, with English UI text, and type on a Dvorak keyboard (even for Hiragana, impressively).
When a system, like Windows, doesn’t allow you as a user to say what you want, developers have the choice of (a) ignoring such issues and giving everybody American English, or (b) inventing an algorithm to guess. Many people hate (a). And remember, their entire empire is built on applying strategy (b). A search engine is not a well-defined problem, so clever algorithms is their core competency. They gave a bad result in your case (a small country with several common languages), but for almost all of the rest of us, they present a better interface than those software companies who ignore such issues altogether.
Sorry. I love to bash Google as much as the next guy, but they got this one right. Blame Microsoft for their platform. Google made an undesirable choice, but all the others were even worse.
September 24th, 2008
I think you are right about not using Geo information about a user to pick language. I also live in the German part of Switzerland, I don’t speak German, I just use English. But the locale is a setting about what you want. You can override the language part of the locale, LC_LANG if I am not mistaken, and the applications should respect that. If not, then it is a bug in your application.
About web applications they should ask the browser, there’s already a negotiation mechanism for languages and I actually provide, thru my browser, the list of languages I speak (2 and a half so far), web apps should respect that.
What I think happens is that most people have their browsers horribly configured and doing Geo annoys less people that using the configuration, but I’m not sure.
September 24th, 2008
Thank you for writing about this. It has been annoying me for years.
September 24th, 2008
LC_LANG will set *all* locale settings.
I have my Unix machines configured to use de_CH for everything but LC_MESSAGES.
This rant was mostly about Windows and Mac. Unix does it right to start with.
September 24th, 2008
Couldn’t agree more. I happen to live in Spain, and I’m constantly getting victimized this way. But it’s not just me, I see every day more people preferring the original English version, even people whose knowledge of English is far from perfect. The imposition of the (universally bad) translations is nothing short of infuriating.
September 24th, 2008
This is exactly why I set all my systems to French, while being Dutch speaking. Still Google suggest to do either searches and news for France or Netherlands, but not for Belgium…..
On Mac, most programs are available in multiple languages, but the chance of having Dutch amongst them is smaller than having French amongst them. At least I get a uniform French interface with a rare program only available in English. Going on the web, having language set be_fr, it still confuses a lot having any combination of be_nl, be_fr, fr_fr, nl_nl, en_en, en_uk, en_us popping around.
Luckily for me, the fr_fr settings are very, very close to be_nl settings…. a luck you do not seem to have.
The best thing that could happen to solve the problem, is to have a global system list of allowed combinations with a priority, a user able to select in his profile from the system languages and alter the priority, and then all programs obeying to this.
Mac OS X comes close, but still no system global list… Windows and various linuxes have not one but plenty of lists that even do not always combine the country/language specification.
September 24th, 2008
Oh yes. Every time I go to http://mappy.be/, Belgian localized version of http://mappy.co.uk/, it redirects me to a page in French. I don’t speak French, I speak Dutch. I have to change the language, on every single visit.
Can’t it just set a cookie and remember that I want Dutch, not French?
September 24th, 2008
On Google, hitting “Google.com in English” on the (e.g.) google.nl page will make other google services be in English. This doesn’t work for youtube, but you can go to uk.youtube.com for that.
September 24th, 2008
That’s exactly why I use Ubuntu: I prefer the english UI, live in Germany and am a spanish native speaker. All is well with Ubuntu’s language selector and Gnomes keyboard config tools.
Cheers
September 25th, 2008
Thanks so much for ranting on this- I’m behind you 100%. What I hate even more than having a different language forced on me, is when there is no way to change the language back to English. Grrrrrrr.
September 25th, 2008
Thankfully, google has improved since the days when it would send me (an English resident of Norway) to google.no, with a norwegian UI, even if I explicitly went to google.uk; it clearly “knew better” than I did. The usual excuse for ignoring English as Accept-Language is that it was the default setting in browsers lame enough to set it without asking the user, so its presence didn’t really mean I wanted English. Which might almost have made sense if my browser were sending “Accept-Language: en” and no more; but, in fact, it was sending “Accept-Language: en-GB,en;q=0.9″ – which emphatically isn’t the same thing.
The other rant-worthy idiocy about language choice (aside from the fact that every web-site feels the need to invent its own solution to the problem, totally ignoring what the HTTP RFCs have said for over a decade) is the use of flags of nations to indicate languages. The correct way to indicate a language is to use that language’s word for that language (see debian.org or gnu.org page footers for fine examples of doing it right).
September 25th, 2008
Hear, hear! This is specially true for minorities. I’m a Catalan and English speaker living in Spain and I get lot of pages in Spanish. Some of them don’t even allow you to change it (I’m looking at you, MySpace). Please, webdevs, look at the “Accept-Language” header!
September 27th, 2008
I totally agree! This has been annoying me for years!
At least you could switch to the correct language from the ‘full’ site but when using the mobile version this function is usually missing.
Would someone be willing to start a petition to ask Google to change this behaviour? Maybe others will follow.
Google’s current policy:
http://www.google.com/support/bin/answer.py?answer=873&ctx=contactpolicy
October 3rd, 2008
At least in Finland nearly no one sets the language settings of the browser to accept Finnish, so they then get English from such sites even though they’d prefer Finnish. So I feel there is really no good solution. I think most users just don’t know about the setting for telling the site what languages one prefers. Lots of user educating needs to be done.
January 27th, 2009
I am based in Belgium, but for some reason YouTube has suddenly shifted me to a Japanese interface, as the New Zealand contributor mentioned. Because my system does not support Japanese (and I dont understand it anyway) I cant find any way to change this on the page. Can someone tell me what to do?
May 20th, 2009
Hey there! I have moved to the UAE and some websites just turn up in Arabic, google being the worst perpetrator! Blogger is one of these too, I created a blog for my students at home and thinking I was really clever, when I got to show my students, blogger only opened up in Arabic! It took me ages to figure out what to do! Very annoying! I only want English and/or French! I find this sort of thing very intrusive and an abuse of my rights to choose whatever language I want!
September 7th, 2009
As an IT Systems Administrator I can state the 2 main “pointers” that any website can use. but the 1st one is the the one they use mostly, and that is the country IP address in which you live, you an “force” the browser to another language “sometimes” through a setting within the browser page one uses, “cookie” that is, but I delete “all cookies” and visited pages preventing tracing my movements whit in the net (tracking is use for advertising and other information gathering organizations) It would be all too easy to run a script at the time of loading a site and it could “read” the language settings and nobody would be bothered to type ****/en at the end of the URL to get English. I would love to sue, and for millions because of the “discrimination” of my language everytime I go to google and or Bing or Ebay and the list goes on. Help!
September 7th, 2009
As an IT Systems Administrator I can state the 2 main “pointers” that any website can use. but the 1st one is the one they use mostly, and that is the country IP address in which you live, you can “force” the browser to another language “sometimes” through a setting within the browser page one uses, “cookie” that is, but I delete “all cookies” and visited pages preventing tracing my movements within the net (tracking is used for advertising and other information gathering organizations) It would be all too easy to run a script at the time of loading a site and it could “read” the language settings and nobody would be bothered to type ****/en at the end of the URL to get English. I would love to sue, and for millions because of the “discrimination” of my language everytime I go to google and or Bing or Ebay and the list goes on. Help!