
IP geolocation is a bad way to select a UI language - Zak
http://zakwilson.posterous.com/lay-off-the-geolocation-already
======
jacquesm
One of the better ways I think is to look at the localization settings as
reported by the browser, use those as a default and allow the user to override
this in an easy way.

The header that contains this information is:

    
    
      Accept-Language:
    

If you're into php this is the variable you'll need:

    
    
      $_SERVER["HTTP_ACCEPT_LANGUAGE"]
    

Other platforms will have their own mechanisms to reach the headers as sent by
the users browser.

Make sure that it is easy to change because your user may be more comfortable
with a different language than the one that the browser reports, for instance
the user could be a Spanish tourist visiting Sweden and using an internet cafe
in Stockholm.

~~~
huhtenberg
> _One of the better ways_

It is _the_ way to select the default language.

------
estacado
True. I remember when Pirate Bay implemented it and changed the language to
Malay for me and I have to manually change it back to English. The internet,
especially an international torrent site where 99% of the stuff posted are in
English, is better read in English. Making it in another language is just
plain annoying. If you want your audience to know that an option to change
languages is available, just makes it more visible. Larger icons or a more
prominent placing. Let the user choose, don't make the decision for them. If
you make the decision for them, you are just insulting the user's intelligence
and at the same making yourself look stupid.

------
nico
Usually, when I use google I look for english content, even though I live in a
spanish-speaking country. It really bugs me when I go to google.com and get
redirected to the local version. It bothers me not only because I'm looking
for english content, but because Google localizes search results yielding a
lot of unrelated or not so relevant stuff.

~~~
pogos
use <http://www.google.com/ncr> instead.

~~~
slig
'ncr' means non country redirect. So you can remember easily.

~~~
huhtenberg
I doubt it means that because, for example, it doesn't work from Canada. It
still redirects to google.ca.

~~~
Evgeny
Works for Australia though for some reason.

------
sanjayparekh
All I can say is sorry. Yeah, the technology is my creation although Google
doesn't use my old company's technology anymore (long story). I always tried
to educate users with the proper way of implementing and using IP targeting.
Doesn't mean they ever listened.

~~~
huherto
yep. [http://patft.uspto.gov/netacgi/nph-
Parser?Sect1=PTO1&Sec...](http://patft.uspto.gov/netacgi/nph-
Parser?Sect1=PTO1&Sect2=HITOFF&d=PALL&p=1&u=%2Fnetahtml%2FPTO%2Fsrchnum.htm&r=1&f=G&l=50&s1=6757740.PN.&OS=PN/6757740&RS=PN/6757740)

~~~
sanjayparekh
Yeah, it's actually a lot more difficult than one would think. Heck back in
1999 I thought it'd be pretty easy. The Internet is pretty wily when it comes
to this kind of stuff.

------
didroe
Geolocation is bad for detecting the language, the HTTP Accept-Language header
is better for that. But Geolocation can be good for localising content. If I'm
in Germany and search for fast food, I want to see the results in English (if
possible) but they should be about German businesses.

It's impossible to get it right though because you need to decide what the
user wants to see localised vs always in their home locale. Maybe another
header that you could set per site like "Accept-Content-Locale" or something.

And of course, both the Accept-Language and GeoIP methods fail miserably at
determining things like the user's time zone. There really should be a "home"
and "roaming" locale system in browsers that sends the preferred language,
time zone, localised content preference, and anything else that could be
useful in generically customising content. The user could set the locale
browser wide or per site.

~~~
decadentcactus
A way that I think would be useful is, presuming you're on "fastfood.com" and
not "germanfastfood.com", have a search box where you enter the food (pizza)
and a location, which would be automatically filled with the GeoIP location,
or blank if you can't determine.

That way it's helpful if you are in Germany, but you can change it easily, and
aren't forced into it (it's more of an opt-to rather than opt-out)

------
TrisMcC
Facebook does this. I was in Costa Rica on vacation, and went to Facebook once
just to accept a friend request, and all friend requests started showing up in
my email as Spanish. I know I could have changed the default, but the internet
was slow, and I didn't have time. It was on an internet cafe Ubuntu machine
that I checked was set to American English

~~~
jdminhbg
I took my laptop to Mexico and visited Facebook once; it's been entirely in
Spanish ever since. The hundreds of visits from the US before and after make
no difference.

I'm sure it's possible to change, but it's sort of amusing to get all my FB
email in Spanish. Even if you don't speak the language, FB does like two
things anyway, it's not confusing.

------
URSpider94
As the comments on the original article mention, Google seems to be answering
two different questions with geolocation. The first is which of their
localized web sites to display. The second is which language to display that
site in. Defaulting to the localized site almost certainly helps them comply
with local censorship laws, as well as offering culturally and geographically
relevant content. Once you've made that choice, displaying, say, Google Japan
in English might not make very much sense, so I can see why Google has merged
them.

As a frequent international traveler, I would definitely appreciate a setting
that permanently locks my Google to the US site in English.

------
seasoup
A bad way to select it for the user by default, yes, but it is a good way to
help organize the drop down list by having the geolocated language be the
default selection.

------
kree10
When your manager was in France last week, how come when he pulled up the site
on his Vaio, he was not getting the French language version? He even cleared
his browser cache and still got English!

Engineering can explain there is a standard way to know an HTTP client's
preferred language: the Accept-Language header, and that your server already
supports it: Apache had mod_negotiation activated when you first installed it,
but it doesn't matter. You now have a high-priority IP
geolocation/geotargeting project to do.

This sounds like the same disease that made MSIE disregard MIME type headers.

------
nreece
Here's a simple way to detect the UI language (for glocalization): ask your
visitor for their choice. It only takes a few seconds, and it's much more
reliable.

When in doubt, ask, don't assume.

~~~
jm4
I know from experience that there are a few issues with that too. First, how
do you ask?

One way is to prominently display links to the other languages. You could put
them in the top right corner of every page. You'd be surprised at how many
users can't figure this out.

Ok, so maybe you give first time visitors some kind of popup, interstitial
page or overlay thing asking what their preference is and save it for future
use. So what language do you ask in? Besides, a very large majority of your
users will be using one language- let's say English- so this is totally
pointless for them. Imagine if Google or HN asked you for your language
preference every time you cleared your cache. It gets annoying quickly and you
could risk increasing your bounce rate.

A better way is to use a combination of detection, asking and then prominently
displaying alternate language links. Identify some markers that may suggest a
user wants a language other than the primary one. User agent string, IP
geolocation, referred from a search engine where they did a search in another
language, etc. Ask those users what language they would prefer; don't bother
the others. The alternate language links are still available to the ones that
slip through the cracks.

Best Buy does something like this on their site. Set your language preference
to Spanish in your browser and visit the home page to see it in action.

------
geuis
So after reading through all of the comments people have left here and through
some of the related links people have posted, it really sounds that most of
the folks who think this is a bad idea are people who travel a lot or are
above the norm in regards to tech. Face it, if you're reading HN, you're
probably a geek in one form or another.

But the thing is, most people _aren't_. They want to go to a service and have
it work for them. To talk about Google specifically, remember for a second
that this is a company that is insanely driven by numbers. Remember that thing
a few months ago where their lead UI guy quit because they did A/B testing on
30 different colors of blue? I can't confirm, of course, but I would put a lot
of money on Google having spent a lot of time doing testing on language
localization based across a lot of different parameters including user agent,
geo IP, etc. And if they're using IP's, there's probably a good reason why
they do.

I'll also admit that I'm an American English speaker. I can't speak a second
language, but I can read Spanish(slowly) and I understand a bit of Haitian
Creole if spoken slowly. The only time I've ever been out of the U.S. is to
Montreal 10 years ago on vacation.

The site that pisses me off the most at the moment is ups.com. They never
remember the language I select(English) and their UX is a freaking pile of
crap. Every time I go their site, I get the same cramped little box where I
have to pick a language. They are a prime candidate to use geo-IP detection
given their global business, and yet they don't. I contrast them to Google
because they're both global companies, but while Google has put millions of
dollars into testing their products, UPS looks like they hired some interns 5
years ago to design their site and haven't updated it since.

------
jrnkntl
"assume makes an ass out of u and me"

I cant recall the number of times I have been cursing at a website, in
particular Google, when I get the whole site presented in Thai characters.
Wtf?! I can't read this stuff. Give me an English button and for once, please
remember my selection.

------
pilif
I've ranted about this exact same problem a year ago and IMHO it goes even
further than just geolocation for websites, but it's also a problem with
desktop applications that use the locale to determine UI language which is
inconvenient and in some times even confusing as it mixes the application's UI
that's in one language with UI from the OS that's in another language -
sometimes even in the same dialog.

My old rant is here for those interested:
<http://www.gnegg.ch/2008/09/automatic-language-detection/>

------
kvs
This redirection is not happening at application layer, perhaps due to scale?

------
ivanstojic
Here's my blog post about this from about two years ago:

[http://www.ordecon.com/2007/06/11/why-geolocation-by-ip-
suck...](http://www.ordecon.com/2007/06/11/why-geolocation-by-ip-sucks/)

------
ivanyv
One very useful way to get around this, specially when you use both a local
and the global version, is to setup a keyword search for each in your browser
(in Chrome and Firefox it's pretty easy).

So for example, if I want the english Google (hl=en), I have a keyword "g",
and when I want local MX content (.com.mx, hl=es), I use gmx.

Of course it's still no excuse for Google (and other companies) to offer such
bad user experience.

------
yread
A hotel with free internet in yurop? Impossible!

On a more serious note the author is right that it's highly annoying to be in
a country where you don't understand a word and when looking for some
familiarity you open the internets only to find out that they too have been
translated.

~~~
andyking
Even if you were to open up the Google home page in Maltese or Welsh or some
such language, I don't think it'd be too much of a challenge to work out what
to do with it.

In the UK, it redirects me to google.co.uk (which, as a UK resident, is the
site I want) if I request google.com. If I type in (say) google.de it takes me
to the localised version. Incidentally, the German Google home page has an
option to go to "Google.com in English" in the footer.

~~~
Zak
It's not so bad with Google; I know about google.com/ncr and I know how to get
to the preferences even if I can't read any of the text. I chose Google
because it's a very visible company, and one that should know better.

------
juliusdavies
I find it pretty funny to be reading all these complaints about "IP
Geolocation" in ENGLISH. Really these are all variations on: "Why serving non-
English pages is bad for users who only understand English."

~~~
didroe
Well you are reading an English language site so the articles are obviously
going to be in English. The complaint applies to anyone travelling to a
country that speaks a different language. There are also comments from people
in other countries who prefer to browse in English.

------
mosburger
Bing should take note of this. I hardly ever use Bing, but if enough
international travelers get annoyed with Google, it won't hurt their cause.

------
100k
Funny story...I was taking a multi-week trip to Europe while meanwhile
attempting to finish my submission for Advanced Rails Recipes.

No problem, I figured, I'll just use Google Docs to write it from internet
cafes.

I got hit by this problem. I could figure out enough French to save my work
and what not, but not enough to tell Google to show me Google Docs in English!

------
pbhjpbhj
It annoys me as much when they don't bother making a character encoding
declaration and there are placemarkers all over.

------
shalmanese
Here's the dilemma put simply: If you set language based on geolocation,
you'll have a tiny handful of tech savvy nerds complain about you on the
internet.

If you set it based on the Accept-Language header, you'll have a bunch of non-
tech savvy users not use your site because they have no idea their language is
set to English in the browser.

It's a tradeoff and, unfortunately, geolocation is the best of a bunch of bad
methods to determine your language.

------
herdrick
De veras.

------
torpor
I absolutely despise 'location aware' software that assumes that because I've
crossed the border, I want to speak that language. It happens to me with my
iPhone all the time and its bothersome, frankly.

------
erlanger
This always gets me when I'm using Tor. I usually just go to google.co.uk (is
there an explicit URL for the US site?).

