An open letter to Microsoft Bing

It is ironic that I am forced to use Google translate to use

Sadly, I’m not kidding. Let me explain…

With that bold statement aside, let me introduce the Bing team to the HTTP Header “Accept Language”:

That’s my Accept Language header above, direct from my browser settings and sent to Bing in every request I send to your website. Regardless of that rather nice hint, I’m being forced to read the website in German! This is even the case when I deliberately visit (and get sadly get redirected back to German).

So, what’s wrong about this picture? Well first you make a huge and rather rude assumption concerning my language preference and base your decision on where I am currently geographically located in the world. Then you don’t offer me any obvious way to get out of this mess.

Think about that for a second. Now go sort this shit out.

Geographical location != language preference

You can use IP-to-Geo technology as a guide to offer people an alternative (make a best guess and offer) but FFS don’t force people.

Next time I’ll write to you in Mandarin Chinese and see how you like it. Don’t get me wrong, I’m a huge Microsoft fan. You don’t have many left. Is there any need to isolate yourselves any further? At present I could not recommend to anyone. Sad.

To solve the problem you can automatically set the current thread culture in ASP.NET or alternatively do it manually. Even better, offer the languages suited to the region so that the user can choose.

Get the user’s geographical location from your wonderful IP-to-GEO crappy database. If the preferred Accept Language header does not match the geographical location then pop up a modal window that offers the user to switch to the geographical region. Add an option to remember that decision for the next visit, but don’t make it mandatory. Bonus tip. Offer these languages in those languages, and not in English.

Offer a way to change language (not region, the two aren’t the same) on every page.

It isn’t hard, you already have the query string param cc to change region. Add another for language and stick a drop down list at the bottom of the page. Skype has a good example drop down list (except for presenting me everything in German to start with).

Go slap the developer that wrote this code. If they are in the UK, double slap them. They should know better.

Present some statistics to your bosses who don’t get it.

11 million Catalan speakers in the world, mostly in Spain. 37 million Spanish speakers in the USA and 19% of them ONLY speak Spanish. The first don’t want Spanish trust down their throats, and the latter would be quite happy to have Spanish. US and UK expats. Russian expats, Polish expats. People migrate. Europe has a steady movement of people. Get used to it.

Repeat after me.

Geographical location != language preference


Sorry for the rant, but it is 2012 and Microsoft should be setting an example to the rest of us lowly developers.

Work around

There is a work around but it isn’t obvious. You can use the cc querystring parameter to set the region.

Dan Grossman | A date range picker for Twitter Bootstrap

Dan Grossman | A date range picker for Twitter Bootstrap