As an avid VPN user it’s infuriating that multilingual websites insist on using the client’s IP address to determine their language and country when web browsers have been sending the Accept-Language
HTTP header since the mid-90s.
I understand that you can work out more or less where someone is located based on their IP address but it was never meant to be a geo-based marker. Why not go the simple route and use the header?
Probably because it’s easier to track people that way.
Sure, but that could be decoupled from language/regional preferences.
When I travel to another country my smartphone doesn’t change its language to match that of the host country, so why don’t websites respect the user-defined preference defined in the header?
No one is spending money to cater to a miniscule audience.
Doesn’t it cost less money to parse the header than to pay for an entire geolocation dataset?
It was not that long ago when Android changed my on screen keyboard to a different layout whenever I was in a different country. Really annoying - I don’t suddenly type in Danish when I’m on a business trip to Lyngby (near Copenhagen)
I’ve been complaining about this for years. And since the large influx of vpn use (esp US I think), I expected this to become a more pressing and widespread issue, leading to more urgency to fix it. But no, even google sites seem to not give a shit IIRC
As a user it’s annoying because I have to hunt down the language/region settings. And as a developer it would cost me a lot more to hunt down those values based on the client IP address.
Especially bad for counties with multiple official languages, they just pick one at random
I’ve noticed that too, it’s so dumb especially when your browser’s language is set to one of them in the first place.
Accept-Language
is usually used for localizations. The 2 main ways that are used to gather location information are the location permissions and IP’s.The reason IPs are used primarily is they don’t need user consent since it’s being sent to the server. It allows an easy way to determine a close enough location for search results since it can get down to a metroplex or city.
Is user consent needed for the
Accept-Language
header? That would be kind of insane. I realize that it could be considered identifiable but that still feels strange to me.I’m thinking mostly of localization, primarily language.
Localizations are used to convert between different languages. Just having a country code inside a header doesn’t give enough context where you are. For example states/provinces and their respective cities. Most of that is easily collected from the GeoIP information to give you local results for your area.
Edit: here’s an example of one of the bigger GeoIP APIs that provides the data so you can see the example for your own IP
It’s to annoy you into not using a VPN.
Honestly, plain old ignorance. (and some anglo-centrism)
I am a software dev, worked on two translation projects at different points in time, and both of them were kind of a mess. In one case, translation team was all Americans (US company), and I was the only person who spoke another language and had firsthand experience with bad translation in media. When I asked how to switch the language in their app, senior dev told me to switch my OS language. Translations themselves often sounded overly verbose, robotic, or plain weird in other languages.
And then, the typical oversights like not leaving enough screen space for longer translated text, using ambiguous terms without providing context, badly splitting phrases. Text-in-image, etc.
Because they don’t make, or give a flying flip any you and vpn users. You are an not an important population to optimize around.
I’m not arguing that I am. I’m arguing that using an IP address to determine language settings is stupid, regardless of whether I’m using a VPN.
I would assume because ur hitting the geolocated cache which will be IP based. I would assume its not doing a location check its simply that the site is being served by the nearest (IP routing wise) provider and that cache is configured to serve only the local language. Its the same reason the language is often encoded in the URL.
Excellent point on the local cache explanation! I hadn’t thought of that.
As a web developer myself I’m into detecting it automatically then redirecting to a URL that includes it (like
/en/products
). Then of course users can manually change it by signing in and/or using cookies.You’re doing the Lord’s work. As someone who lives in a country where I can barely speak the language this is a constant frustration.
I also hate how hard it is to override location for other searches. I travel back and forth to my native country regularly, and so I’m often trying to search stuff or buy things for a different country than the one I’m literally in. If Google is so keen on making money from me, why can’t I tell it to do a Product search in a specific country, instead of forcing me to use a vpn to trick it?
The country-based shopping dilemma sounds tough to solve without a VPN. I think the explanation there is that because countries have different laws they might not be legally allowed to show some products.