Ecmel Berk Canlıer - 13 July 2020

Ranting about language detection

I use a VPN on my day-to-day browsing because my country does stupid stuff like blocking Imgur, Pastebin, and historically Twitter, YouTube, and even Wikipedia.

Now, my VPN is located in Europe, specifically Germany. Which shouldn’t be an important detail to keep in mind, but it is.

Why? Because I often get sites in German, even if my browser specifically requests English on its Accept-Language header.

Don’t think you know better than your users

If the user wants to see your site in a specific language, they will configure their browser to ask your server for it, via the Accept-Language header or similar markers. Even if your users aren’t technically literate enough to fiddle with their browser settings, most browsers can infer this from their system language, which is generally a language the user can read and understand.

IP addresses aren’t good for geolocation

While yes, there are many IP to location databases, and many IP adresses are geographical, there are many cases where the IP address you get aren’t the IP address of the specific device your users are viewing your content on.

These cases include VPNs and NATs. For NATs, the geolocation issue isn’t that big of a deal in page languages, since most NAT IPs will be from the same country (and in many cases, ISP) the user is from.

VPNs on the other hand, can pretend to be from any country the user wishes. Most VPN providers will have multiple servers in different countries, and even a self-hosted VPN (like mine) might not be from where the user is.

Now you might think to yourself that your target audience doesn’t use any VPNs because they aren’t technically literate to use one. But let me remind you that there are VPNs that advertise to the technically illiterate, often with dubious claims to get those people to use their service. Or the fact that “target audience” doesn’t mean “everyone who will see your page”.

Don’t try to be smart

If you’re Google, then you might think you’re smart enough to overcome these issues via some random convoluted method I don’t know about. You aren’t. The only thing you will do is to give me, who prefer the internet in English, pages in Arabic, which I can’t even read.

Google Docs Login in Arabic
Google Docs Login in Arabic

Region isn’t preference

Also, even if you manage to find where I live and serve me a page in my native language, it doesn’t mean I want that page in my native language.

So please just obey Accept-Language, and everything will be fine.

It’s not just language

While writing this post (specifically, adding image support into my blog’s layout), I came across one more thing.

Please don’t alter how things like dates, times, and numbers look, especially if the rest of the page is in a different locale.

Google Search results displaying (probably) Arabic dates, while the rest of the text is in English
Google Search results displaying (probably) Arabic dates, while the rest of the text is in English