Don't set the language of your website based on user location
dev.to
dev.to
What makes it even worse is that often it's not properly translated, but just Microsoft's translation machine applied to the English version. The result isn't very good. And even if it were manually translated, the result would likely end up a mixture of english and German. German is a very nice language, as is english, but what I absolutely hate is the mix of the two, also called denglisch.
Ok fine whatever, don’t really speak German but did enough in high school to muddle through. Proba localization, will turn back when I go home.
2 years later and Google on my phone remains German. This is my life now ... at least I get to practice a little german I guess
Now Google Maps shows me prices of hotels in Uzbekistani soms. Didn't find a way to reset it in the UI, clearing GMaps cache didn't help either. It's been a year already.
Don't get me wrong, I've had my moments where I've done similar things for years. I just have to say it's a little funny.
I distinctly remember updating my address and location each time, but it never made a difference.
Now I just find it a little amusing. Keeps my Russian and Spanish fresh.
I distinctly remember updating my address and location each time, but it never made a difference.
Now I just find it a little amusing. Keeps my Russian and Spanish fresh.
Some people have worked very hard to make their doc as painful as possible.
Finally I sometimes perform search in other languages, for instance Chinese. Of course I got results mostly in Japanese from Google... few years ago it was possible to change the language for a query, now the settings in burried under dozen of clicks, and are link to my profile. So basically unusable.
In a way it’s like the OS desktop UX: developers are busy trying to outsmart the user, yet the end result is more painful to use and less customizable than it was a decade ago.
Before the great Firefox extension purge I was sending out different language preference headers depending on domain. Unfortunately, this trick was already breaking down as more and more German companies redirect from their .de to their .com to show off ambition, leaving me with a bad English translation of the massive German due to headers.
What I'd love to see would be a server side distinction between primary and secondary languages, but of course companies would lie their asses off for uncountable reasons bad and worse.
Sometimes when not working on my own machines at a client the locale is set to a language other than English and some Java frameworks such as Hibernate then will dutifully print out error messages in that language.
This is next to useless. At a time when you still had nothing but a printed manual in your local language to go on this might have made some sense but nowadays people research error messages on the internet. Searching for some arcane ORM framework error message in a language other than English is a futile endeavour.
https://github.com/explosion/spaCy/blob/master/spacy/errors....
It's really great trying to figure out an error that's written in Norwegian, when you're not the least bit familiar in that language.
Most of the errors do have codes though, and just Googling that will get you started at least.
Source: me. I had to help someone with specifically this when they set the wrong charset on their DB. Had these problems.
Ah, I remember MS Combat Flight Simulator 2. Translated to Spanish (or maybe automatically using local system files?) without bothering the check the text fit the allotted fields, which meant you could not read most things at all. Impressive QA, Microsoft! ;)
Some sites (and ads) don’t respect my settings and will default to french. My french is rudimentary at best.
[1] https://addons.mozilla.org/en-US/firefox/addon/english-conte...
[2] https://github.com/darekkay/config-files/blob/master/userscr...
For example, here it is looking very silly in Denmark: https://i.imgur.com/kdux88q.jpg
They used to localise VBA too, all IFs and THENs and WHILEs were translated to the local language. Yes it was as bad as you think it was.
You could somehow run VBA macros written in the wrong language, you couldn't just touch them or it'd be all syntax errors everywhere.
/s
[1]: https://support.office.com/en-us/article/excel-functions-tra...
I can read English and usually German, but I definitely can't read technical documents that have passed through a machine translator twice.
Actually, it's not just websites I hate. A lot of software makes me jump through ridiculous hoops to do basic things.
WTF!
We kept getting tickets to lock more and more of the device down as 'solutions' to support requests.
One ticket was to lock the device to maximum brightness, because support had fielded some calls where the users couldn't see the screen.
We then started getting calls from users who worked nightshifts complaining that this tablet bolted to their truck was blindling bright and there was nothing they could do to dim or turn off the screen...
Not to mention the infinite scrolling insanity.
Is it unclear that I mean that I don't want text selection to be disabled and I am questioning why you can disable that I can select the text in my browser of your website, or is someone really invested in having non-selectable text? I'm surprised.
Yes, as you said, this makes no sense, and the only available interpretation is that you do not want it disabled, but it took me a WTF moment before I got to that. Maybe some people are quick to downvote.
- [...] A lot of software makes me jump through ridiculous hoops to do basic things.
- Also: STOP DISABLING ZOOMING. WTF!
- And please, text selection on mobile. Why is that even possible?
I guess that's not clear at all once there are many replies. What I'm learning here is to craft responses that stand on their own. This is not a spoken dialogue.
The rationale (which I still don't agree with) was that many browsers would send "en-US" by default, and so it wasn't a reliable indication of the user's actual language. If you set your Accept-Language to anything else, then Google would pay attention to it, but en-US was treated as if it wasn't set at all.
Default settings need to be treated as the lack of a choice rather than an explicit choice for the default. So much software doesn’t make this distinction apparent and makes peoples’, usually users’, lives difficult.
If “agree to send me promotional email” is the default (and is gross but that’s not really the point here) you’re missing out on good data knowing who explicitly chose it. If the new version of a software has a setting with a new default but you can’t change it on upgrade because you don’t what users explicitly chose then you wind up with this weird case where version Y fresh and version Y from X behave differently. Maddening for debugging and support.
To make matters worse, Google uses ccTLDs for everywhere except the US. google.us just redirects to google.com, and google.com uses your IP to figure out your country, so you can't even use the domain as a workaround.
Sounds like a potential workaround is to set your language to another flavour of English like "en-CA" or "en-GB".
Browser set to en-au? "Oh, I'm sorry, you can't use this feature yet because it's not in your region." for years after launch.
In short if your location has a different default language setting than what you are sending, what you are sending is probably what you really prefer.
...or because your browser defaults to sending en-US even though you're using a Danish-localized browser on a Danish operating system, as described by the parent comment.
It is however not what I experience when I look at my Danish localized firefox because it sends da-DK by default, and my english browser sends en-Us, because I took the effort to make it so, because I don't much like the Danish language for UI.
I admit this is just a quick look over of the different language browsers I have on my system. What do the different language browsers on your system do that you feel so confident in telling me to pay more attention to the parent comment?
Indicating that "the user's actual language" and "en-US" are different. Yes, I extrapolated this to both the browser and the operating system having a different language, maybe it was just one or the other.
> What do the different language browsers on your system
From the parent comment:
> Google has been doing this for almost 20 years. [...] The rationale (which I still don't agree with) was [...]
I don't have any 20 years old browsers to test with, I'm afraid.
Which browsers? I'm using Chrome and it definitely does not do that. Should be easy to find out that with user agent.
I'm surprised browsers haven't addressed this yet, by adding an extra header stating if the locale is in the default setting or if the user has explicitly configured it.
The results you get are very much dependant on where you are visiting from. I can set my everything to Japanese, both in my browser, OS and my Google user account and search via google.co.jp - but if I am not in Japan, results will be skewed away from Japanese websites.
For example: The other day I wanted to find the lyrics for the Japanese version of a song, so I typed "[song name] 歌詞" and because Google knows that 歌詞 means lyrics, and it can see I'm in Europe, my top result was an English lyric site, with the original version of the lyrics and no mention of the Japanese word from my search term. Technically, that is really impressive, but kinda useless.
On top of that, it can sometimes be impossible to visit help or product pages if you happen to be in the wrong country.
I never completely agreed with the rationale for using location, but 15-20 years ago I at least found it understandable...Internet Cafes and borrowing your host's desktop computer were more common scenarios then. Today they're rare enough that I can't understand why anyone would accommodate those scenarios over the scenario of someone traveling with their own device.
Given Google's wanton dropping support for RFC-compliant HTTPS in the name of changing times, certainly they should be open to changing this policy with the appropriate data.
Thank you so very much for this tip! I don't use cookies and live in a non-English country so I've been clicking that yellow "change to English results" button for at least half a decade now, numerous times a day, every day. Switching to en-GB indeed makes Google respect my language choice.
Not kidding, you've just saved me thousands and thousands of clicks and small annoyances.
You say that because you speak English. If you don't then obviously English is much worse than even a poor translation. Game developers have to take that in to account - using the user's Steam language setting means they can definitely read that language, so putting the game in that to start with should work for them.
The app has to default to something even if the game enables the user to change the setting. Using the user's Steam language is a more sensible starting point for most users than "Everyone gets English". That just completely ignores 80% of the world's population.
As for the quality of the translation, the solution for that is for developers to make better translations.
Not really. They could pop up a language selection dialog on first use, like many installers have done for ages.
I'm pretty sure much more than 20% of the world's population is fluent in English. It's the language of the western world and the global economy, after all.
> As for the quality of the translation, the solution for that is for developers to make better translations.
Like the market ever cared about distributed failures like these. Every studio uses a different translation group, they can't really verify the final product, and the translators will happily save money doing shoddy work. Not to mention, the workflow isn't usually optimized for correct translations. To do this right, you'd have to have the translation team play through the entire game at least once to understand the whole picture, and only then have them work together on translating the text and audio. No single-pass translations, and no dividing the work between multiple people that don't talk to each other. I.e. more expensive. At the same time, the studio will get 90% of the profit (which happens at the point of sale, not at the completion of the experience) with a shitty translation anyway.
Translation is inherently lossy.
I've never been to Germany, the last time I studied german was a quarter century ago. My Xbox isn't set to German either.
Even the language selection was hidden in a sub-sub-sub menu somewhere, which took some digging.
I think it was hidden in the accessibility menu... This made me absolutely furious when I couldn't figure out how to change the game's language to the one that my Windows installation is using.
I often have this problem with web shops with my wife, who has a different mother tongue: she sends me a link to eg. a piece of furniture she likes, and all I can see is the homepage of the bloody shop, with no clear way to just say "show me the damn page I asked for".
Another fun experience was a short text on an airline website (cannot remember which one) which ended being in 3 different languages, sometimes switching in the middle of a paragraph, depending on whether it was using the language of my location, my browser or my OS. At least that was fun.
I was doing some research on camping equipment. Google leads me to a US page. But since I'm in NL, it redirects me to an NL domain, which is a totally different site. That site, of course, doesn't have that page, so I get dumped on their main homepage.
I have been building web apps for a couple decades and have some that operate in dozens of languages. My best practise is to only look at your region when your selected language has regional variations. However, that's true for most of the popular languages which is why it isn't as easy as the article suggests.
For example, your browser's language is set to English. Cool. But, are you in America or somewhere else? Oh you're in Canada, no problem neighbour. Spanish? Are you in Mexico or Spain? Don't worry, I'll give you the appropriate version of our Spanish translations then. French? You in Canada or France? Portuguese, Brazil or Portugal?
Not to mention, when you're operating in a lot of languages, and your application is in active development, you're constantly sending out copy for translation. Different translators have different turnaround times and they don't always make it into the release schedule. So, what happens when a translation is missing in a particular language? First we fall back to another region for the same language, then we fall back to English. American English to be specific -- that's the language the developers and product managers write in so there's always an American English translation.
Then, we also allow the user to override their browser settings and pick whichever language they want. That is saved to their user profile so wherever they're logged in they'll get the language they have set for our applications.
So ya, we give you your configured language whenever possible. But asking us to ignore region is not ideal for most users either.
That's where this example should stop. Your site should then serve me English, because that's the language I've told you that I understand.
Why are you changing it based on my location? Why are you serving an English-speaking tourist in Mexico "the appropriate version of our Spanish translations" when their browser just fucking told you THEY WANTED THE ENGLISH VERSION?!!
But I would rather consume content of a website in my native language. While I'm not complaining if it it will serve me English.
They seem to rely on similar settings for knowing whether to bring up a "This page is in Polish. Do you want to translate it?" popup.
Linux's locale allows more granular settings, but that's not possible over HTTP.
The problem with "appropriate translations" is that a fair number of them is horrible and broken. Sometimes they're plain wrong. It's not about small companies; but giants like Microsoft also gets this wrong -- for example, Polish localization of Visual Studio development tools is often not understandable for a native speaker of Poland, also sometimes it's plain wrong because it lists options that aren't there now, maybe there were used at some point in the past. This is the reason why I consciously select English as my main Internet language, and the language of my OS, because I don't really want to be annoyed with poor quality translations.
I just wish Internet pages would just use my browser's setting and stop trying to be intelligent, because it only produces problems and nothing more.
Your browser's language is set to English. Do you serve UK, US, Australian or Canadian English?
Language is a property of people, not place.
edit: Also, I'm an English speaker living in Berlin. This shit happens to me all the time, and it's a trigger. Apologies for blowing my cool.
And I'm used to reading any flavour of English. The regional dialects really don't matter. Colour can be color and I'll still understand. I won't understand "Farbe".
We do, and that's what I'm using. Sorry if my example was confusing, I should have worded it better. I am using the regional setting from the browser to determine the correct region for your language, I'm not using your physical location in any way.
My comment was an outline for the right way to do it and I blew it when my example had the person with their region set to mexico actually in mexico (which is true most of the time, and true in my example, but is not how the app logic works because it's not true for everyone all the time). Either way, I think the actual logic agrees with what you would expect -- you get the language your browser is set to regardless of where you're connecting from. Additionally, if you have your region selected, we'll also tune your desired language for the right region of that language too regardless of where you are physically.
Your site is an outlier if you ignore the user's location. Most tend to take the IP address as more important than the browser settings (looking at you Google, Amazon).
The Amazon case is especially weird. I can talk English to Amazon.com, but as soon as I set up a Berlin delivery address it wants me to switch to Amazon.de. Which speaks German to me. There is a switch for language there, but that only works for some parts of the interface, and not things like reviews, etc, which are all still in German. It knows I speak English, because it keeps offering to translate these German reviews into English for me. But if I go to the same product on the .com site, there's a ton of English reviews for the same product. I must admit, I don't understand the logic behind it all.
But the same problem is at the core: assuming that because someone lives in Germany, they speak German. Again, language is a property of people, not places.
It's worse than that. The Amazon interface on amazon.de is clearly a translated version of amazon.com, but the English option is a machine translation of the German amazon.de (which was originally manually translated from English). Why?
And then amazon.fr just doesn't give you an English option at all. Again, why?
I always figure I must be a tiny minority market for Amazon to not have optimised my experience.
(Although, I don't think I've ever seen a website offering multiple versions of English.)
"Favourites" instead of "Favorites".
English speakers are quite capable of understanding regional dialects and I would guess there are few instances when a user could be confused by a dialect not local to them.
Do we then have to go down the route of translating to northern English dialect over Scottish English? etc.?
No, you serve up whatever variation of English that is local to you. The rest of us native English speakers will get by just fine, unlike if I was on holiday in Mexico and was served up Spanish. I wouldn't have a clue.
As someone from the UK, I don't need a news article to use "pavement" or "footway" instead of "sidewalk".
But I do appreciate sites using a UK date format, and saying "Colour" instead of "Color", in their UI.
For example: I'm English, and live in Berlin. If I use a VPN to set my IP address to the UK, I get an English version of <site>. But if I then set my German address, <site> complains that I'm not on the German version of the site. If I change to the German version, then there's no option to set English. I have no control over this - there's no option available for "I speak English, but have a German address".
> For example, your browser's language is set to English. Cool. But, are you in America or somewhere else? Oh you're in Canada, no problem neighbour. Spanish? Are you in Mexico or Spain? Don't worry, I'll give you the appropriate version of our Spanish translations then. French? You in Canada or France? Portuguese, Brazil or Portugal?
This is so utterly wrong and user unfriendly. Let's say that I'm an Australian traveling in Trinidad and Tobago. Somehow your web server has decided that my language is simply "English" (although it certainly is more specific than that) and makes a wild guess that because I'm in Trinidad, I want to read your website in Trinidad English creole...it's a wholly invalid assumption based on the flawed notion that my location somehow reflects my language preference.
Luckily, HTTP 1.1 has Accept-Language standardized, and unlike the solution you present it was designed with the existence of travel in mind. The locale identifiers may already specify a regional variation. My browser sends "en-AU" and your server will have all the information it needs to respond in kind without resorting to a guessing game. It's not only better for me; it's also easier for you, so why over-complicate things and break user expectations?
> Not to mention, when you're operating in a lot of languages,
... an entirely orthogonal issue may occur. Understood, but has nothing to do with location based content delivery and thus does not justify it. Again, though, Accept-Language may prioritize several language and you can use that information to decide which translation to use as a fallback.
Or just pick one, and go with it? That way you only need one translation into each language.
As spanish from Spain I, and I guess more than 80% of spanish people, prefer to read mexican written by a mexican person than "es-ES" translated by a robot. If I'm travelling to Latam, I would prefer your site serving "es-ES", after that "en-US", then "en-UK", and only after that any "es". Just like I have my browser configured. Other Spaniards may disagree and set their preferences differently, and that's fine. It's 100% easier to respect the Accept-Language header than to do geolocation gimnastics.
Yes, I live in Mexico, and yes I speak Spanish, but no I don't want to see your terrible translation.
Language is a sensitive issue in several parts of India. Why not be polite and ask the user for language preference first?
They actually trying to force me to use more insecure passwords.
Not only that, but their translation is terrible. Plus, since Arabic is not the business language here, most of the terms used on their site are quite ambiguous to most Tunisian users.
Ugh.
1. locale preference stored in session of the Web application
2. locale preference stored in user settings of the Web application
3. locale preference advertised in browser
3. a) Accept-Language header
3. b) language/territory in User-Agent header
3. c) IP address lookup/geoip
3. d) Geolocation API
4. default locale of the Web application
You will notice that Google tries to be "smarter", to the detraction of the user, as shown in many comments in this thread.
Implementation notes: 1. and 2. require a locale selection somewhere as part of the Web application, 3. is browser settings, 4. is hard coded in the Web application.
----
From the article:
> Don't set the language of your website based on user location
This is an extreme/absolute prohibition and therefore almost certainly false/useless. Done correctly, user location is one clue in a chain.
> why would I have my machine in that language? And if it's not, I will change it myself.
Sometimes, it is not possible or feasible. Be aware of these situations. Examples:
* You are in an internet cafe or corporate environment and the browser settings are locked down by admin policy.
* You borrow someone else's mobile phone or tablet for a few minutes.
It would appear so on first glance, but consider that sometimes, the 3a value is useless, and some home-brew analytics will reveal that; so you can think about whether to not take the value into consideration for the locale. Unfortunately, the real world is messy like that. :(
Examples:
• browser was never configured because the user does not know how, or even that the capability exists, and hence does not reflect the true intention of the user
• browser configuration could not be changed for technical or social reasons
• browser is hardened against finger-printing
And you have no means of knowing that the accept language is wrong anyway. But it's always there (for mainstream browsers), and more trustworthy than the lower options. You won't have the chance of falling back into them. (A non configured browser has that header set, and you don't know if the browser user can change it or is lying.)
Google Maps is the worst. I live in Israel, so I obviously want to see street names in Hebrew. My Android device locale is set to English (Because that's the way I prefer, and I also rather not see everything flipped because of the RTL nature of Hebrew). This FORCES me to view street names in English, and there simply NO WAY around it other than changing the device language. It has been this way for years, and it's painful. Why not just let us modify the language on per-app basis?
I certainly don't think it should be location based.
It's really not that hard to find the language switcher on most websites, but it's still a bit annoying.
The country selection itself is trivial, but often the content will be geo-specific as well, and you might end up with things like the wrong currency and so on.
I’m genuinely surprised that there’s not a falsehoods article that includes things like:
* The mapping between languages and countries is 1-1.
* Every language has a mother single mother country.
* “English” refers to a single language.
* “US English” is good enough for all English speakers.
* US English is well defined and refers to a single language.
* You can partition a map into areas for which there is a single reasonable default language.
And so on.
Also:
> There is a perfect symbol for any language which you can use on the Web: the name of the language in the language itself, such as English (or British English or US English, if needed). Be careful with the grammatically correct use of upper and lower case here! If a reader doesn't know the name of language X in X, he probably does not know X enough for the link to be of use to him.
So now that I'm on this Korean site, with no idea how "Korean" looks in Korean, how am I supposed to find the language picker?
He is not saying to use the current language's hame for the language picker's icon (I would use a globe, personally), but instead to use the language's name in the list.
For example:
[GLOBE]
>English
>日本語It would cause a bunch of other problems, of course, but it would be nice if we could just have a bunch of languages with an EU flag next to them. At least from an UI perspective. :D
>
> * “US English” is good enough for all English speakers.
>
> * US English is well defined and refers to a single language.
There are certainly pretty extreme differences in spoken language, especially in the UK with its vast collection of local dialects, or in places where English is on a continuum with a creole language (Jamaica, Liberia, etc.)
But I would have thought that any regional variety of written English could be readily easily understood by most functionally literate speakers. I can browse English-language newspapers from the US, UK, Jamaica, India, and the Philippines and understand everything or nearly so. Is my assumption incorrect?
Anyway, I'd add another falsehood to your list:
* People prefer to consume content in their native language.
I think most bilingual people would prefer to read original content in their non-dominant language than a (poorly) translated version in their native language.
Worst of all, even when I set Google to English, the OAuth popups remain in Chinese with no option to change.
And don't get me started on those captions! Youtube, please stahp! Why do you keep forcing these? I don't want them, stop pushing them.
Whenever we use Chromecast with multiple people, Youtube enables the auto-translated captions. So, we turn it off, next video youtube turns it on again, we turn it off again, next vid, it's there again. arrgghhhhhh
But my point was more that I didn't want localized video titles and I should just get the original one since the video is in that original language anyway.
I like that you can set language and region on top of the browser settings though and it's cookie based. This way I have a firefox container for Spanish another one for English, etc. Same Youtube account different languages.
Somewhat ironically most of the time those would be governmental websites or some important announcements.
If you've made this fancy image that looks like a brochure and you must put it on a website and you can't be bothered making it in HTML with text, at least write all the text on the image in alt attribute or under the image.
Also, now many documentation websites will try to serve their content based on your location. I'm always clicking around.
That said, I found it sufficient to switch Google to English and I didn't have to ditch that search engine just because of that reason alone (you might have other good reasons to do it though).
I think I used https://google.com/?hl=en to set the language; but since it remembers that setting honestly I have no idea if it's still the way to switch languages
You can even do this on completely static HTML-only websites that don't use JavaScript or server-side code. Debian is an example of this:
https://www.debian.org/intro/cn#override https://salsa.debian.org/dsa-team/mirror/dsa-puppet/-/raw/ma...
In Firefox it's in the first page of the settings: Tools > Options > Language and appearance, there you can change the language of the UI and the preferred language for displaying pages.
I don't understand why a web browser (or any application) needs a custom language setting, much less a prominent one. It's just one more place that can fail.
For entertainment including games I want them to be in the original languaugage they were developed in (if it's one I can speak fluently) even if that differs from my system language (which differs from my native language (which at many points in my life has differed from the default language for my location)).
I don't personally have a reason to have a different language for my browser UI though, but perhaps someone else does. However I agree that the default for application languages should be "use the system default" - not whatever was the system default at installation time or some other fixed language.
If the Accept-Language header matches "en-*", ignore that. Instead use geoip to try to guess a language.
If the Accept-Language header is something else, use that.
There's probably some cookie/Google-ID-based heuristics going on too.
Please just give us a UI language selector. Don't leave us with something half-baked that works great for 90% of the users and leaves the remaining people perplexed. People do know multiple languages, and want to search for stuff in other languages too, sometimes. (Yes, it does seem like the UI language is influencing the search results, too.)
I'm in Germany, my browser is set to English, and I bought a play store app while I was in Japan using Japanese money.
The other day I wanted to install the "Too Good To Go" app but I had to sideload it because Google thinks the app is not "compatible with your device". It's just region locked and the app should be available to me because I'm not in Japan.
When I tried to change the settings on various Google websites, the language kept switching between the three languages. A forward even failed because of this and I had to find out the next URL and manually edit it so that the language didn't change and thereby restart the settings wizard.
In the end I couldn't figure it out and gave up.
If I want the Australian site I'll go to the .au domain name. If I go to .com then I want the global/USA site.
It is SO annoying when going to .com redirects to .au
Maybe this is what happens when companies stockpile so many developers that they have more than they need - everything that can be written does get written.
For example, cisco webex turns on 24/7 microphone access "to find nearby displays".
this could be a funding model - if your app can plausibly access (contacts, location, microphone, camera, photo library, ...) then it should get more funding (because you can slap on an advertising SDK to "coincidentally" extract more user data)
https://help.webex.com/en-us/WBX89838/What-is-Cisco-Intellig...
Short distance data channels that solve the “two computers physically next to each other can’t communicate frustration” are always welcome in my book.
(meanwhile I can also add an advertising sdk to listen for nearby television advertisements or recognize nearby music to "add value")
Google maps, for example.
When I did it, I just mapped the browser language to our languages and called it a day, no complaints so far. So far as I know, most browsers send that header in.
Is it unreasonable of me to be less tolerant of this brokenness when it comes from companies with all the money in the world, and also all the highest paid developers in the world?
Imagine being able to invert a binary tree on a whiteboard, but not being able to follow a basic HTTP specification. Insane.
> "The amount of people who live in the world who do not change their default OS settings is higher than those who live in foreign countries"
> "it is computationally expensive to read Accept-Language vs geoIP"
> "obviously companies know what they're doing here"
I have seen only a few applications using the accept-language header, Grafana and Outlook Web Access are notable, but they wouldn't necessarily have the luxury of using GEOIP as they're typically hosted on-prem.
[0]: https://blog.dijit.sh/trusting-the-user-they-know-what-langu...
They'll get computers with an OS and a browser on their language.
There are people claiming that in some places the computers will be in English even though people do not speak English... But this is such a suboptimal situation that I can't believe it happens in any large place, and those people will certainly learn how to set their browser locale.
Much more likely is that people will get a computer on a different variant of their language, like many countries in Africa that get computers set for the European variants of their language, so ignoring the variant may make some sense. But still it would make much more sense to not ignore the variant, and let people change it on your interface.
> "it is computationally expensive to read Accept-Language vs geoIP"
The cost difference is included on the page processing already... and in your firewall, and in your HA proxy, it's so cheap that every node on the path pays it just in case you want it for something.
> "obviously companies know what they're doing here"
Oh, sure.
I usually first look it up on the top right. Then I go back to editing to URL before scrolling all the way down. (And hoping it doesn't use infinite scrolling...)
I would disagree with this and propose a clear choice. Many people speak 2 or 3 languages. The only reason my browser / OS is in English is because it's easier to troubleshoot or Google error messages that way. Just a bigger pool this fish in for answers.
A little flag in the top corner is best.
The way i thought it was best:
- Give users the option to change
- If the main user browser language is different than the current one, suggest it more on top:
https://www.belgianbrewed.com/nl - will suggest english for the majority here.
[Screenshot] https://gyazo.com/0372490df1b033ac42c8cb7aa3a4198b
My entry page is google. So if they find something in English, i suppose they want the english site.
If they don't, i give them the option to change it to the most obvious "supported" option.
I do redirect them to the main page, so they see an overview of the shop. Showing them the translated (current) page is not a priority (right now)
PS. Google has the option for /ncr . They obviously forgot the use-case where my proxy of work redirects to Paris.
PS2. /ncr changed to https://www.google.com/?gws_rd=cr&safe=active&ssui=on => No Country Redirect.
* Make the "continue in English" button easier to find. It does not stand out visually, and I had to search for it.
* In the languages dropdown, use the native name for each language (e.g. français, deutsch, English, Nederlands) instead of the Dutch name for all of them.
In my experience, the problem is different. Company X does not want to translate into different languages, different markets. For example: Apple, Microsoft, Samsung. Amazon video. If you want to see German available products or prices, it have to be in German.
And to top it off the language switch is often hidden away in some bottom corner so it takes you way too long to find it.
Give me back my old internet!
In the era of Windows 7 and before. Maybe Windows 8 - don't remember when it changed, BUT someone at Microsoft considered localization a premium feature of Windows Ultimate. What a "great" idea.
End result in our small country? Understand you English or not, but that was the version on majority of PCs sold on retail stores and used at home. The other part of the issue is techies don't love localized Windows here. But even if it did, it costs you money no-one will be spending to switch that language for their Mom/Dad/Uncle/... or myself.
Luckily Windows lets you set Country or region apps should use. Don't know if browser takes data from that setting or not.
¹ Firefox: config setting geo.provider.network.url returns JSON in the form of https://ichnaea.readthedocs.io/en/latest/api/geolocate.html#... — e.g. set the config value to: data:application/json,{"location":{"lat":43.5,"lng":-80.5},"accuracy":1000}
Answer: The short answer is: always.
I've asked localisation experts about this and the answer I've gotten is that `Accept-Langauge` and other signals that are available to provide a hint as to the user's preferred language are teribble. For most people they are incorrectly set to some form of English(en-US, en-GB) even though this is not what the user wants. For this reason the IP/geolocation method is preferred, it also generates false negatives but per the people I've spoken too they are fewer than if you just respect `Accept-Language`.
This stopped being true a long time ago. It was once a problem, but not during the last decade, and certainly not now.
> Sore eyes? Go to the "misc" section of your settings and select night theme
If only there were some built in way for browsers to tell sites that user's want dark themes. If only...
Alternatively, some website consultant/'expert' is charging by the hour and adding this 'features' is a way for them to charge more?
Or, some technically clueless manager is asking the consultant why the website is not showing up in the local language when it is his browser that is misconfigured?
But what I see more, is; websites translating "change language" into the language the website is currently in. How does this even make any sense, if your website is in German, the people who would want to change the language most likely don't speak German. So why is the "change language" link translated in German?
I've spent years working with desktops builds from US-based IT teams that have then been deployed globally (so language is US and paper size is letter). And then access control is added over the top to prevent end-users changing those settings because when they get it wrong it causes excessive support calls.
en-GB,en;q=0.9,ga;q=0.8,es;q=0.7
I could be wrong. This is a complete guess, but my suspicion is that Yandex Browser is doing some very lazy checking of a user's language preferences and defaults to Russian if the visited site is not available in the user's preferred language[s]and user hasn't got 'en-US' defined as a fallback.
[My language preference are set to: English UK > Irish > Spanish > English]
It's not as common, but plenty of e-commerce type sites try to redirect me to their site for a country that's on an entirely different continent, based on my browser being set for a language that's spoken plenty of other places, too.
Is it common for users to have the language preferences of their browsers misconfigured?
If so then I can see why this is common practice.
If not then we should stop using the users' location.
Are there any stats anywhere on how likely a user is to have their language preference configured in their browser / OS correctly?
At the last millennium it was. Just like some people are still complaining that HTTPS is too CPU intensive, because it used to require a visible share of the cycles of a 486.
Google like to think I'm Arabic at the moment, bouncing around various Middle Eastern countries. Google Maps sends me to the UAE right now. Y tho?
For those who don't know: in a long gone past, any official business in Belgium was done in French, even though about half of the population spoke Dutch. But that's long gone, and certainly dates from long before the rise of the world wide web. These days we have three official languages: Dutch, spoken by about 40% of the population; French, about 40%; German, less than 1%.
EDIT: Example: Nvidia's site. Opens in French for me, and the "Select your location" page has only "Belgique (Belgium)" for Belgium, which links to a site in French. For our Dutch neighbors in the Netherlands they do have a site in Dutch. I don't even understand why they don't just offer a language choice instead of a location/language choice. The specs and drivers for a video card are the same whether the card is in Belgium or in the USA or anywhere else.
A coin?
There is only so much EXCEL formula translation I can cope with pr. week.
It took Spotify a long time to fix that! MSN/Microsoft used to have that issue too.
Android and iOS, change your spell checkers to accept multiple languages in the same phrase. Lots of people mix English with their native language, and how about, say, Belgium where they speak 3-4 languages regularly?
I’m in Switzerland, please follow my browser language. Don’t guess whether I speak Swiss, French, Italian, etc
I’m in Laos, my OS is in English. Please show me Laotian.
However, do make it easy for anyone to change the language. I shouldn’t have to hunt the settings page when traveling.
Agree with the op. Not only do I regularly struggle with location-based internationalization, sometimes I can't even /see/ pages depending on location. Tried to find the product page for new google ear buds thing (in Korea) and they refuse to even display it. Of course, setting up local ssh tunnel to ec2 machine based in US takes < 60sec but it's still annoying.
Statistically speaking, Laotian users speak Laotian. As a traveler, I’m the minority.
Regarding the rest, I feel you. They can guess whatever language as long as they make it easy to change it, without unnecessary redirection games.
Apple.com is relatively good with this:
> Hey I see you’re in Thailand, maybe you want to check out the Thai site.
In my case: I want Danish, if and only IF the site is a Danish website. If you're not a Danish website, I would like English, even though a Danish version may be available.
Of cause that bad advise for many sites, because basically my request is that sites like Linkedin or Facebook just drops localization, but that's not what my mom wants.
At the very least they should not be the first hit if you search for the program name. I don't get how that could possibly change with language selection.
edit: Inkscape results in a "Inkscape - CHIP-Installer.exe" download with my antimalware immediately sprinting to my rescue.
When I want to download Inkscape for Windows, I get a zip file. When I download GIMP for Windows, I seem to get a genuine installer with the same size and filename as what is offered on gimp.org. I didn't download these files on Windows, though.
I went to their website[1], and clicked the prominent Download button[2]. Next to that button it says "Sicherer Download" (secure download). The executable file downloaded is not the original installer but the a binary with their chip icon and signed by Chip GmbH.
Running that "installer" then asked me if I wanted an amazon desktop icon (with their affiliate link in it, I am sure), and clicking just Next asked me again if I wanted it because I "did not make a selection". Then it offered to "block annoying ads" (the irony!) by installing Opera (again asking me again when I clicked next).
Then it finally downloaded something. Says that something was checked by Kaspersky. The download progress screen also asked me if my PC was slow, and if I wanted to call some "free" number to have experts check my computer for free(!) (via Teamviewer or telephone, wat). And if I did call those experts, I'd even get a free McAfee license! (what do Kaspersky, who scanned the download, think about that?). The "free" number is actually a number somewhere in Frankfurt am Main, so it's not actually toll free as far as I can tell; if I am correct, this would be a direct violation of German law which states that ads giving you a number to call have to correctly state the charges associated with a call.
I eventually ended up with a .zip file that contains the actual Inkscape installer. Or rather installers; it contained both the 32 bit and 64 bit installers. Those installers are not launched automatically by the way. So the usual "unsavvy" user will end up with two files in a zip with no idea what to do next. So the Chip "installer" is just for displaying those ads, pushing their crapware, but will not actually help you install the software you wanted.
Here are some screenshots https://imgur.com/a/tyIopku .
And rather on-topic it displayed the UI as a mix of English and German because I was using an English language Windows Sandbox...
If you just want the zip without the adware "installer", you have to click the regular "Manuelle Installation" link (far less prominently featured than the crapware button), then again click something, and then it will download the same zip without the "installer".
[1] https://www.chip.de/downloads/Inkscape_15274752.html
My guess is that they don’t, and this fix would hurt more users than it helps.
Perhaps some multilingual users might have one of their secondary language(s) set instead of their primary/preferred one, but at least it'll be a language they speak.
More importantly, even if the user has their browser screwed up, it's something that can be easily fixed on their end. But on sites that set language based on location, there isn't such an easy fix available; short of relocating or using a VPN, people in OP's situation are kinda screwed.
This is especially common in poorly localized tools. For example, a poorly implemented browser component inside some other tool or phone app might not properly set this value, and instead default to en-US.
Switching to the proposed method might fix the author's problem, but create a bunch of problems for other users in other scenarios.
German is well supported by software. If Germans want German content, they’ll have their OS set to use German.
Filipinos on the other hand would be a better example: Their software is likely to be in English but surely they prefer reading Tagalog or Cebuano.
- -
As a traveler, I’m thoroughly annoyed by being shown websites in the local language, but that would be perfectly fine if it was easy for me to change the language.
Sadly though changing the language often means having to learn what “Settings, Language, <language name>” looks like in the current country.
Switching to the proposed method might fix the author's problem, but create a bunch of problems for other users in other scenarios.
Tons of websites are server-rendered, which means the decision of which language to show has to be made upfront: at the time of the first HTTP request, so before sending the page to the user. And we don't know the user's language preferences until we reach the browser and can execute some JavaScript. If we do as he suggest, it would paradoxically lead to the very behavior he is criticizing in the post: page loads default (e.g english), (then reads user preferences with JS, e.g german), then reloads to show german instead.
So why pre-populating the page with the langage the users in that particular country are most likely to wanna use a bad 'default'? Would it be worth it to rather worsen their experience by forcing all german users to load english first, and then repaint the page with german?
I think only SPAs could afford to implement the whole thing based on user local preferences without major UX drawbacks.
This is untrue: the HTTP "Accept-Language" header tells the server what language the browser wants to get, right before any request get served. There is no need for Javascript.
My browser sends "en-GB" in this header but Google always defaults to Chinese because I am using a Hong Kong IP.