341 comments

[ 4.4 ms ] story [ 282 ms ] thread
firefox had localized installers that also set the accept language headers correctly, dont know about chrome. using the geolocation data is good for the majority of the users i guess, although it ignores a lot of nuance about mixed populations.

back then when i was still a google product, it was very very frustrating while backpacking around the world. `hl=en` or some such parameter was the "fix".

google.com/ncr (no country redirect) was the panacea until Google broke it.
Nowadays it's https://www.google.com/?gl=us&hl=en (US region, English language). Works for /maps too.

If that still redirects you to a local version for some reason, append &gws_rd=cr (which AFAIK tells Google Web Server that a country redirect already happened and that no further country redirect should be triggered).

Youtube needs uppercase region and usually disrespects language if you don't append &persist_hl=1 (e.g. https://www.youtube.com/?hl=en&gl=US&persist_hl=1). Might as well append &persist_gl=1 too.

Not really an issue if you use bookmarks on your own devices, but super annoying otherwise.

Another option is that companies (mostly Google) have different offerings in different countries. In Germany, for example, they need to apply NetzDG filtering and I assume it's similar for countries all around the world. So my assumption is they don't redirect you for the language, they redirect you to the (slightly different) service for your current location, which happens to be in the local language.
On these regionalized pages you can still change the language.
The article talks about Microsoft, and boy, it's even more terrible in some respects: for example, language of some Office tools like Excel is bound to the organization!

I worked for a French company, and I was forced to use web Excel in French, including keyboard shortcuts being FR-specific ("ctrl-g" for "bold" - "grossir").

I had my language set to English everywhere in browser, OS, MS profile, Office profile etc., not important.

(FWIW native Windows Excel didn't have this issue, so I sticked with native Excel).

---

Re: location based on geoloc: I remember some HN user from Switzerland saying that IIRC either his IP is being moved around in geoIP databases between Swiss regions, or getting slightly distinct IP each time; as a result, he randomly gets all kinds of websites in French, and sometimes in German. Imagine this.

And in Office there is even worse to be found: Depending on that locale, that it chooses despite browser settings, you also get different behavior, when trying to open CSVs with literally a _comma_ separator, because Excel thinks, that it must interpret that as a character for making numbers more readable or other shenanigans.
In Germanic countries, it’s common to write numbers like 1.234,56 instead of the anglo standard of 1,234.56. Not just on paper, but also digitally. So a value in excel or a CSV is now 1234,56 instead of 1234.56. As result, CSV needs to use ; instead of , as separator

Which is why TSV exists, because the tab character is universal.

I don't really care about what kind of punctuation Germanic countries are using, which I am not using, avoiding ambiguity in the first place.

My software, including my browser, and my operating system is usually set to English, and I expect spreadsheet (data!) applications to not interpret whatever they want (based on IP address or location of companies or whatever), but actually interpret according to a standard. It is ridiculous for a spreadsheet application reading CSV (C! as in Comma!) to interpret the comma as a visual number decoration, instead of according to format, as a separator of cells.

The CSV "standard" is from 2005. Using ; as separator was common in germanic countries for decades before the standard was even written (and CSV was commonly understood as character separated values there).

You can’t easily redefine an existing standard just because you don’t like what everyone else has been doing for the past few decades.

As said, use TSV, which has been standardized for much longer, if you want compatibility.

It's bound to the version of office you buy. IIRC there are some hacks which let you change it.
> ("ctrl-g" for "bold" - "grossir").

Just nitpicking, but "g" stands for "gras", a literal translation of "bold" in the context of typography.

> I remember some HN user from Switzerland saying that IIRC either his IP is being moved around in geoIP databases between Swiss regions

And that's why assigning users to specific services/servers/translations depending on IP is the worst kind of evil. Please let us choose the language consciously in a menu, or respect our browser settings: whatever our shit ISPs are doing behind the scenes should not impact our browsing, and no, IP addresses don't have a "country" and the simple fact that you need to use 3rd party databases (geoIP etc) is proof of that and just how stupid the whole concept is.

Nitpicking your nitpick: “gras” means “fat” and, only in a typographical context, “bold”.
> no, IP addresses don't have a "country"

But, but, IP ranges have a “country” field in the RIPE database!

[Just pointing out it’s a mostly-right (aka subtly-wrong) solution that seems like a really good and straightforward idea at first (sufficiently ignorant) glance.]

This is very annoying for me too! I am North American, but work for a European company, and my Windows and Office locale settings are all screwed up, and consistency reset themselves whenever I try to fix it.
The beauty of AD user profiles.
> language of some Office tools like Excel is bound to the organization!

That doesn't seem to always be the case.

I work in France, all my IPs are identified as being from France, the company is purely French and doesn't use English at all, yet all my Office applications are in English. I'm using Firefox on Linux, in English.

The only one exception is Teams, because for some reason spelling is tied to the UI interface, so I chose for it to be in French, but the default was for it to be in English.

Google sheets also does this and even uses regional formatting standards. I can't copy values between programs because some are using ',' for decimals and some are using '.' its VERY annoying
Maybe we need a locale-neutral separator for these things. Then we'll have three conflicting options.

I always get this wrong in calculators. I type , where I should have typed . or vice versa, and get a completely wrong result.

(comment deleted)
For me the worst is that these settings sometimes reset after background updates... I don't know how many times I've tried to do a simple aggregation or something in Excel and was flustered by why it didn't work, only to finally figure out that my skripting language was set to german instead of English... Yes, the actual commands are also language specific.
Swiss German here. Je suis bilingue. My OS is set to English with a Swiss German keyboard layout. This works fine everywhere. Except: The Microsoft Store app just keeps on running in French with English content. No German to be found. It looks damn silly.
I think this explains why my old computer was so confused about languages. The windows apps were in Finnish, system settings etc. were in English. Then some parts of Google stuff were in Turkish, some in Finnish, and some others were in English. Every now and then some random app would appear and surprise me in Turkish. It was truly impossible to tell what language would appear after each click.

It was originally running windows 7 with English as the system language. Some software were installed while I was in Turkey, some (including windows 10 upgrade) were installed after I moved to Finland. Now I’m learning that my computer couldn’t handle this gracefully :)

Hey, I had the same issue and variations of it (french category titles, german content and english menus). Also Swiss German with English setup. I actually managed to solve it with some unintuitive language settings.

// Edit:

Okay so the issue can be resolved as follows (Windows 10): Windows Settings -> Time & Language -> Language -> Preferred Languages -> Order it so that "English (United States)" is at the top

I previsouly had "English (Switzerland)" at the top. This order influences the "Apps & websites" setting at the top there.

With "English (Switzerland)" my section headings in the Store were French, e.g. "Films et TV" but with "English (United States)" at the top I get "Movies & TV". Of course the section headings, callouts, etc. otherwise are still a mixture of your MS Store region (German in my case) and the Windows display language (English in my case).

Why "English (Switzerland)" would result in French... I don't know.

> Re: location based on geoloc: I remember some HN user from Switzerland saying that IIRC either his IP is being moved around in geoIP databases between Swiss regions, or getting slightly distinct IP each time; as a result, he randomly gets all kinds of websites in French, and sometimes in German. Imagine this.

Yep that’s a super fun one in all multilingual or small countries (where you might be geoloc’d in a separate linguistic community, or a country with a rather different culture).

Regarding Excel: Watch out with multi language setups! I was working with an English iPhone, an English Windows PC and a Swiss German Mac on an Excel file stored on One Drive. Editing sometimes in Excel and sometimes in Excel Online.

Result: Broken data due to SUM/SUMME/etc formulas, broken phone number recognition and (worst) broken dates.

What a mess!

And broken CSV files.

In some European locales Excel switches from importing/exporting Comma Separated Values to Semicolon Separated Values with comma acting as the decimal point.

I'm also victim of this.

It can be fix if you do import from file and then manually select separator.

But this was need to be done every. single. time.

> language of some Office tools like Excel is bound to the organization!

Maybe this is due to the fact that Excel documents break if you change language, as function names are localized?

> I remember some HN user from Switzerland saying that IIRC either his IP is being moved around in geoIP databases between Swiss regions, or getting slightly distinct IP each time; as a result, he randomly gets all kinds of websites in French, and sometimes in German. Imagine this.

Sometimes my IP resolves close enough to the Röstigraben[^1] that I will get sites in German despite having my browser set to English (GB) and OS set to French.

[^1]: https://en.wikipedia.org/wiki/Röstigraben

(comment deleted)
I am Swiss German and living in Switzerland (German speaking part) and I had the weirdest issue for a couple of years: Swiss, the airline, always gave me french boarding passes. But all my settings were either set to English or German. The bizarre part was that if I booked for multiple people they would all get english ones except for me. Similar things sometimes happen for other services. Sometimes Switzerland means French for some services and all my settings on any level do not help.
Which language Google uses is different from product to product. In Google forms, they use the language set in the Google account (neither location, nor browser language), which is frustrating, because as a designer of a survey you have no way to control the language the UI elements in your survey.
This is extremely annoying, especially when you're in a country with high level of English proficiency and a small population. In that scenario, you're not going to have a lot of local language results. Something like Wikipedia, which has decent quality in English, will tend to look like it was edited by high school students. Yet Google will force-redirect you to the local Wikipedia language over the vastly superior English article, even when searching for something in English.
Modern search engines are just so stupid trying to outsmart us. When was the last time running a literal search between double quotes produced any significant results for you? Nowadays even with double quotes, they more or less all return what they think i meant depending on a plethora of criteria and not what i asked for.

Thanks for marginalia search engine, it seems to be gaining in content and starts to be more and more useful lately! Though to be fair more *transparent* special-casing like you do for Wikipedia would be welcome in my humble view (eg. for technical documentation pointing to the reference site, etc).

The usual excuse is that they are optimizing for results that produce clicks on paid search, rather than optimizing for your satisfaction with the search results.
My vote goes to the “Org Too Big, Nobody Cares” explanation.

Or, perhaps, just the blissful America-centric ignorance about how there are regions in the world with multiple official languages.

Haven't checked this recently, but a while ago Google Maps was still serving street names in a random language (the first name in alphabetical ordering), for streets which have names in multiple languages.

>Or, perhaps, just the blissful America-centric ignorance

Ignorance, or arrogance?

American who has been in that meeting a few times. It is mostly arrogant innocence... A kind of Dunning-Krueger like effect.
> Or, perhaps just the blissful America-centric ignorance about how there are regions in the world where there are multiple official languages

As a brit, I am always irked that most of what I browse is locked to US English, as if it's the same thing as British English. At least if your main language is a popular non-English language you get the option to switch to it.

This is compounded by those location drop-downs, Where United States is always in the special top slot, and below that is everywhere else on the planet, like second rate-citizens. It's especially egregious on global sites, that serve global content.

> This is compounded by those location drop-downs, Where United States is always in the special top slot

This used to be the case, but it seems to be becoming rare. It’s really annoying actually as alphabetically United States is way down in the list. This is how IP geolocation should be used imho, bubble up the probable location(s) to the top of the list, but DON’T assume the geo is right without asking.

While we are complaining about this, can we all agree that using plain <select> for country is an anti pattern. There should be a fuzzy search.

So many times I have to search for my country under

United Kingdom

UK

Britain

Great Britain

England

Only to find that it was “Great Britain” but collated in the B’s amongst Bhutan and Belgium, etc.

> So many times I have to search for my country under [...]

It's even better when you have to explain this specific oddity in a foreign language.

Try politely explaining to a German consular official that they probably need to look in their system's drop-down box under 'V' for 'Vereinigtes* Königreich' [UK] (instead of 'E' for 'England' or indeed 'G' for 'Großbritannien' [GB]) as they are attempting to enter passport details...

* 'United', in German...

(comment deleted)
We once added internationalisation to our app. Being British developers, our English was British English so that's what was in the language picker.

We had a very angry American (presumably) who accused us of "cultural imperialism" for having an en-GB option but no en-US option.

Got to say I was laughing about that for quite some time.

Youtube also auto-translates video title for me, based on the language it assumes I can read. It’s so infuriating (there’s settings that alleviate that behavior for declared languages, but it’s buggy as hell, and still grating…)
I listened to a Podcast and one of the hosts was a British guy living in America. He had to speak in an American accent to his Xbox One in order for it to understand him. It seemed the voice recognition was based on your location setting and not independently configurable.
This triggers some PTSD with Google Maps navigation in Finland

We have two official languages - Finnish and Swedish, neither of them big enough to warrant any Google effort for proper text-to-speech. Hence, the voice navigation first pronounces street names in Finnish, then again in Swedish, both butchered by applying English spelling rules, all voiced by an extremely robotic voice

I doubt it. I bet this actually works better for most people. It really sucks because you can't fix it if your computer is actually configured correct, but they probably ran some simple tests and determined that IP location is better than HTTP header language.

I'm sure it is easy to construct an argument that this isn't actually better overall. That case probably does then fall into "Org Too Big, Nobody Cares".

Monopolists don't care about quality.

It's slightly different from too big an organization. Big organizations do not care about the people they touch (employees, suppliers, etc). Monopolists do not care about their customers.

USA-centrism per se would still seem to recognise second languages, several state legislatures use Spanish, I think at least one publishes laws in Spanish & English.

Part of USA even has Spanish as an official and principal language - Puerto Rico.

There is nothing worse than a site or program trying to guess my language by geo location. Just honor my settings.
This thing has been broken for so long on Google, I don't think languages ever worked properly.
I live in the French speaking part of Belgium and have configured all my devices in English for the past 15+ years.

Apparently Google consider that if you are geo IP located in Belgium with your devices in English, you _have to be_ a Dutch speaker. While I would agree that French speaking Belgians are in majority using French UIs, there are exceptions. Please respect my browser settings!

The solution? I have to put French in my browser accepted languages (not necessarily first) and then Google understand I'm not a Dutch speaker and will stick to English.

How did you even figure that one out?
Exactly my thought! Imagine the time spent on this..
Came across the solution by chance, a couple of years ago. It's really maddening.
I live in France, speak French, but work with English as my primary language.

So, I had to make the same settings change, otherwise google would keep putting French searches before English ones (despite the fact that I searched with English keywords).

I don't remember how I found this, but it might something along the lines of "I'm really annoyed today, let's fix this NOW". When you speak 2 languages or more, and they don't match with your location, Google, Microsoft, and most other big tech companies go completely nuts. So, you get used to fiddling with languages settings.

I have no idea how we got there, but my guess is that most Google engineers are either : completely ignorant of internationalization issues, don't care, or don't speak more than one language.

PS: Speech recognition, autocorrect, and mobile keyboards : Same problem.

PS2: Apple get it right most of the time.

> I have no idea how we got there, but my guess is that most Google engineers are either : completely ignorant of internationalization issues, don't care, or don't speak more than one language.

Funny, if anything probably 80%+ of the eng folks in Europe for big tech speak more than one language (everyone who's not from UK or Ireland).

This is why I think Google assistant is absolutely useless. Try to call someone who has a name in X language on a device that is set to English. You just can't. I love Big tech circle jerk about diversity, that somehow stops at skincolor, gender and sexual identity. You happens to bilingual? Sorry our cutting edge AI can't handle that.

Google all I want is a command for assistant, for example "OK Google, Call *in german/dutch/French/etc* <after this command everything will be interpreted on the given language, for the rest of the voice input>. See, it's not that hard.

> Google all I want is a command for assistant, for example "OK Google, Call in german/dutch/French/etc <after this command everything will be interpreted on the given language, for the rest of the voice input>. See, it's not that hard.

I had the exact same idea, it seems Google really lack good product design.

I think they discovered the trick. Default headers might be ignored, but anything non default (e.g. en-gb, two languages, etc.) is assumed to be correct.
Shit, where were you all these years?
This should be its own submission to HN
For me it's often the other way around... system language is English but where possible (e.g. browser) I indicate Dutch/Flemish can also be used. Still, many websites seem to think that they should default to their French version despite my settings and even geo IP putting me in the non-French part...

I wish they would stop guessing and just listen to the hints...

I wonder if you could also use en_GB with the same effect (though if your hack is working it's probably not worth changing).
This is especially annoying for Portuguese people. Because most Portuguese speakers are Brazilian, sometimes websites default to Brazilian pages or trends.

Twitter is becoming almost unusable with their suggested topics - I know they're awful for most people, but for me they don't even get the country right...

As a Spaniard I am really tired of American companies that think that Mexican localisation for apps or websites is acceptable.

Not to mention as you said many sites such as Twitter think I care about what happens in South America because I speak the same language.

My personal papercut is with YouTube.

It doesn’t care that:

- my browser is in English

- that I’m logged in and with English as my language

- that my region is set to the U.S.

- that I only used English keywords on the search box

It still gives me Portuguese results as my geo ip is in Brazil.

It’s infuriating.

Same for me here in Denmark for google and gmail - I don't f***g speak Danish!
So the Googlers in Zurich Switzerland should get a Swiss German version. I'm sure they'd fix that soon enough.
The "fix" was probably to add an exception to the IP range of the Swiss office...
I wonder if they don't have some VPN anyway so that the exit IP is something completely different to the region. Or if the Google searches even see the Internet, or if they stay within the "intranet".
Same, but with Spanish. My first language is Spanish but 99% of the media I consume is in English. Each time I log into YouTube my location is set to Chile and language to Spanish. Each time I change them to US and English. I've even sent complaints but nothing ever happens.
That doesn't happen to me, I can open YouTube in incognito mode and the UI is in English. I'm not using a VPN. So it surely has to be your browser or OS settings.

google.com on the other hand is Spanish.

If that helps, even if your location and language was set correctly, you'd still get local results in Youtube.

My Youtube account is configured to use English, with a location in France. It still returns videos in Spanish when I'm in Spain. The UI is in English, but the search results in Spanish.

Youtube has a specific setting under the rightmost menu (under the avatar) to change country and language. It used to work great, you could have multiple browsers/containers set for different languages. This is very interesting to get the news or trending pages from another country. But lately it's been buggy and constantly switch back to some IP-based guess.
I'm Italian, but I live in Germany and my language is set to English on all my devices and software.

I haven't lived in Italy for about a decade, but I created my Google account when I was still in Italy. To this day YouTube will randomly switch to Italian and machine-translate some (but not all!) titles and descriptions of YouTube videos.

I've manually changed the language setting back to English a dozen times and tried to nuke any reference to Italy from my profile but Google keeps thinking "This poor user must have accidentally switched language and not know how to go back! Let me help and serve him half translated websites" every two months or so.

Same with Google Images. All the results are from local sources although I have selected Language: English and Region: United States in the settings. This is indeed infuriating.

By the way, I just went to https://www.google.com/preferences and the page is totally broken (Google Chrome with disabled ublock/privacybadger), when I click on Languages or Appearance or Region: Show more (at the bottom), nothing happens. "Uncaught ReferenceError: google is not defined" in the console.

This is extremely annoying and wrong in so many ways. Especially in countries that use multiple, say, conflicting languages, and Google's choices come off as culturally very insensitive, even offensive. It is so infuriating.
Whenever I'm traveling abroad I set my phone & laptop default search engine to DuckDuckGo. The worse search results (sorry, but yes) are at least in English...
DuckDuckGo has also been guilty of this, even when I disable the prominent "regional results" toggle. I am in France but have everything set to en_US, and on some searches of rare technical keywords it will still mix in "Visit France" tourist websites, often within the first page.

Ridiculous example: searching for "HID2HCI" (a bluetooth thing) returns as first result a business website from the French Alps. The second result is the English Wikipedia page for "Île-de-France" -- just why?? It doesn't matter which country I set in the "region filter" or whether I disable it entirely. And these "regional" results seem to be very random in that they will change and move up/down when I repeat the same search.

Google goes further than that. If you go for a holiday in Thailand, you'll get all your search results dated with the Buddhist calendar instead of the Gregorian calendar.

Nice work, world's best and brightest.

I've been on holiday to Thailand, and Google most definitely did not use the buddhist calendar for my search results
Behavior is different if you’re logged in and depending on your settings I think.
There's just so many things at play it's really difficult to know what to blame.

When I ask Google Assistant "where am I?" on my phone it tells me I'm in Manchester. Nice.

When I ask the same question on my Bluetooth headphones it says Liverpool. I can't get it to work. It's been like that for a year. Can't get any support.

So I just don't use Assistant for anything.

> When I ask Google Assistant "where am I?" on my phone it tells me I'm in Manchester. Nice.

> When I ask the same question on my Bluetooth headphones it says Liverpool. I can't get it to work. It's been like that for a year. Can't get any support.

Maybe Google's own analytics suggest that very few people in Manchester use Bluetooth gadgets, ergo you are in Liverpool.

Or (more seriously even if as unlikely perhaps) maybe you have a duplicate Bluetooth MAC address, the other one located in Liverpool. Do you have Bluetooth turned on when not using your headphones? Does the answer depend on Bluetooth being on?

I actually have two pairs of bluetooth headphones, my Sony XM3s (where this has happened for a year) and some brand new Sony Linkbuds.

Both exhibit the behaviour. Everything seems to work fine _except_ it thinks I'm elsewhere.

I don't know why the MAC address would come into play, I thought that Assistant was running on the phone via the headset. It just doesn't make sense to me that the phone immediately shows my proper location in Maps and Assistant responds correctly there, but not via Bluetooth.

Bluetooth being enabled doesn't affect the response on the phone itself, it only mis-reports the location when asking through the headsets.

Perhaps it's a permissions thing somewhere but I've looked through the settings and everything looks fine. I've searched and other people are suffering from it too. Thankfully I'm not alone, but Google's support is terrible.

https://support.google.com/assistant/thread/107064163/google... https://support.google.com/pixelphone/thread/118603801/assis...

I have a weirder one.

I have two Google home devices, one I bought when I lived in SF and another that I bought after I moved down to the suburbs.

The one I bought when in SF is still stuck thinking it's in SF, no matter where I change the settings. So, I get SF weather, SF traffic and all that depending on which Google Home happens to answer my questions.

It might be a function of how long you stay there. Usually when I visit Thailand, I stay for a couple of months. Likewise when I stay in Ukraine, the adverts I'm presented with on both YouTube and Instagram switch mostly to Ukrainian. Or Serbian when I'm in Serbia, or Turkish when I'm in Turkey, etc.
>Nice work, world's best and brightest.

I would be delighted to see the uproar if being bilingual+ became a FAANG requirement.

10000 guys who can implement a trie but only 100 who can communicate with more than 1/5th of their customers.

Assuming that your user speaks the common language of their current location is as rude as any other kind of stereotyping.
Off-topic, but wtf is wrong with images on this site? For some reason i had javascript enabled in my Tor Browser (safer mode) so whenever i hover an image it starts to fill the whole screen... which is inconvenient because images are already almost filling my screen so it's REALLY HARD to scroll away from them to read the text.
Fair enough, I'll fix it. It's actually a CSS thing. In some of my travel articles it's nice to be able to see the images in full resolution, but the blog template I'm using squeezes them all to the column width. I'll add a click to zoom instead when I get a chance.
This doesn't even consider the possibility that location might be a more accurate indication of what language(s) the human user knows/prefers language than the browser setting is.

Which it may or may not be. But I'm shocked by the headline, "Why does Google get internationalization wrong?" that just presume that Google hasn't collected data on this. After all, Google is famous for data collected and data-driven decisions. Remember that "41 shades of blue" story?

Its more like they fucked it up with some AI driven A/B testing and think they are doing the right thing but actually its just all broken now.

They used to have /ncr (no country redirect) - open that in incognito mode and you have to accept some TOS in a language based on some idea of where the IP is.

> After all, Google is famous for data collected and data-driven decisions. Remember that "41 shades of blue" story?

Data (metrics really) isn’t the end all be all, and in particular the decisions resulting from the data is not bound to be good.

As you say, Google is famous for data-driven decisions, and for instance android couldn’t become the top rated smartphone OS. Their shopping property couldn’t overcome competition despite unfair positioning, their social network couldn’t survive despite all the effort put in it.

Looking at all their failures, why should we assume that here they made the best choice, when at an individual level we see it as deeply wrong ?

At an individual level, we should IMNSHO moderate our hubris and at least consider the possibility that other people are right, and that includes people at Google. Data isn't bound to be good, but it's not bound to be bad either.

Posting "why Google is wrong" is (still IMNSHO) an overdose of hubris, and because of that hubris it's wrong even if Google happens to be wrong in the matter at hand.

They are - objectively - wrong. There's a spec, and they're violating it.

This gets even more absurd given that they most likely produce the user agent as well, so they can't really blame "it's too hard for users to configure the user agent". Put the effin' language selector in the toolbar if configured language doesn't match your wildly inaccurate guesses then.

> They are - objectively - wrong. There's a spec, and they're violating it.

Not following a spec only implies they're objectively wrong if the spec is objectively correct. I don't think the Accept-Language spec is objectively correct; for me, it's not even subjectively correct. Following it or not is a choice, and neither is wrong.

There’s a point that hasn’t been much raised in the other threads because of its obviousness: they’re the wildly dominant search engine, paying ungodly amounts of money to stay so, and forcing itself wherever it can (remember the lawsuits around the search bar in android…)

For them to decide some portion of users are not worth the hassle and should have a degraded experience, because overall it serves Google better (revenue ? engagement ?) doesn’t make them ‘right’ in my book. Feels more like ‘assholes’.

If your argument was that for a vast majority of user the current behavior might be better, so as a whole it is the “right” choice, this has a taste of trolley problem. Except there’s more than two paths here, and having settings that work properly would make everyone happy for instance. It’s not hubris to say that Google isn’t delivering on that part, making the overall situation “wrong”.

The only answer to the question is because google make more money if you sign in and share location data.

There's no other logical reason a rough guess about where you might be in the world is a better method for determining your language needs than the specific request from the browser.

As a nomad traveler, this is the reason I stopped using Google as my primary search engine.
I think part of the reason might be that the browser settings aren't as reliable as location data. A lot of people even outside the US, have their browser/OS set to en-US from the default configuration. Even if they might be located in France or India. If Google had determined that was the case more than 50% of the time, then I can see why they favour using location for language instead of browser settings.
Yes, that's exactly my experience.

Most people who install windows don't bother to set the locale correctly, so everyone ends up en-US.

So if you trust the Accept Language header, you'll get it wrong.

In which country did you see that? I'm curious because that contradicts my experience.
My anecdotes are from two countries:

1. In Quebec, Canada where French speakers keep the default en-US, even thought most of their work and communications will be in fr-CA.

2. In Bulgaria, because most people learned computer concepts in English so seeing OS and Browser menus in Bulgarian would be confusing to them.

Thanks, I guess both cases make sense and in that case geolocation probably works better.
That hasn't been my experience both from running a site in Europe using the accept language header as default and from my anecdotal experience with friends in Asia and Europe.

In general, I think using geoip is much more likely to get things wrong than using the accept language.

So if that's the case then give them the en-US version? They'll either accept it because that's what they've explicitly requested, or change their system settings to match what they actually want.
I added Accept-Language to our web logs for a month before we added our first site translation.

That showed us that the majority of people had a language matching the expectation we would have from an IP geolocation, so we use Accept-Language alone.

I wonder if they could just change the browser to hint about "Do you want content in your local language?". I wonder if the dominant browser vendor on the web would be willing to accommodate Google...
The could even work together with the dominant smartphone OS maker to solve it there as well.
I built an iOS app once for a Dutch audience. We used the device's language as the app's language, because that makes sense, right? It's the same with the preferred language in a browser, right?

Wrong; we got complaints from users that their app was in English instead of Dutch. Even though their device was set to English or another unsupported language.

We begrudgingly added an app specific language preference. I repeated this later on for a package shipping webapp where on the login screen (and elsewhere iirc?) you can select a language; it defaults to your browser's Accept-Language header, but allows the user to override it.

Lesson learned; Accept-Language is fine for the initial language, and if that header is not to be trusted, maybe IP / geolocation based. But always offer an easy way to set the language; you may be dealing with someone who doesn't live in the country of origin on a device / browser that isn't theirs.

Also remember that location, locale and language are three different concepts entirely.

First and foremost, thanks for having a very sane approach to this ! This is what other apps should tend to.

> We used the device's language as the app's language, because that makes sense, right?

One of the mistake devs do all the time is assuming users use _one_ language. It’s not the case for a very large portion of people around the globe.

> It’s not the case for a very large portion of people around the globe.

Yep, even people who speak one language might put their phone or browser into another language for learning (immersion) purposes but need your important (e.g. banking) application to be in their native language regardless.

Yepp, just look at other responses here in this thread. People often assume that there is a system language that is used in the browser; that is only partly true, browser settings allow to specify multiple languages with given priority. It is just usually the default system language, until you configure it. The browser might not even use the system language in that setting at all if you configure otherwise.
All my devices are set to English. But my bank’s app is in Polish (using the app-specific override), partly because their English translation is mediocre, but also because I’d rather not do something dumb with my money due to a mistranslation/misunderstanding/different interpretation. Same goes for other local experiences. eg. takeway.com — the restaurant menus would likely be in Polish anyway (though I can see some translated ones as well).
I'm in a similar boat as you, Switzerland is multi language (German, French and Italian) and quite a few users (including myself) use English as system language. Luckily by now you can change the language of iOS applications in the settings app. Though guess what... no one knows or finds that setting. So yes, it's best to let the user decide just as you write.
And then there's the technical audience: I use all my devices in English, as usually the translations are subpar. On the other hand, I expect the local apps (ie, banking, some e-gov app, your package shipping example, etc) to be in my native language, as usually, the translations are even worse due to the developer's budget allocated to localization. Conversely, when I'm travelling and need to use some local app (airline, rideshare, taxi, etc) I hope that it is able to at least have some English translation.

Yeah, please offer the option to set the language to the user.

That's exactly my approach as well. My devices are usually in English, as it's the "lingua franca" of the OS and the internet. For non country-specific applications, it's much harder to search for, well, any issue if your OS/browser/IDE/complex application is not in English.

On the other hand, I want my local apps to use the local language, as they were developed with the native language in mind first for a use case that makes sense with that specific locale in mind, and it just doesn't make sense to be reading an English translation of something that you're used to see expressed in your local language. An English translation in that case is usually not only subpar but confusing if you're also fluent in the local language.

My ideal would be to somehow state that, say, "I speak English and German. My preference is to have content displayed in what you consider the "native" language of your application if it's on that list, otherwise my preference is English, then German."

In practice, no one would bother setting this up (as we see in the case of Accept-Language) and no one would bother implementing this correctly. The next best thing is just an application/website specific language override, which is easily explainable to any user.

It's frustrating that again and again I run into the same sort of root issue. There exists UI to configure something but it's either hard to find, hard to change, people want to leave that setting as-is but still want your webpage/app to behave differently, or people don't even know about it. What this leads to having to wrap "native"/"system" UI for almost any option that decent number of users might want.

Dark mode is another good example of this. A lot of app developers weren't able to just respect the system setting, instead they had to add a toggle/select to their options so users could pick "Follow system", "Always Light", or "Always Dark". Same thing with language and you never please everyone. If you add a website/app setting to change language there will be some number of users who complain that your app isn't following system settings (even if you set your own internal setting initially to match the system). You can normally satisfy most people with a "Follow System" or "Hardcode to X value" but it always feels a little gross to add yet another level of settings. In the same way you will almost never get a native Push Notification (or other permission) dialog in an app, first they pop their custom dialog and only if you say "Yes"/"Enable" will they pop the system one. I understand why and I've implemented this multiple times but it feels like there has to be a better middle ground between "You can only show the permission dialog once" and "You can spam it over and over indefinitely", I always hate having to create the "It looks like you've disabled this notification, here is how you can turn it on in your device settings"-screen.

Did you suggest they change their device settings? Yours was probably the right approach, I’m just curious whether we have actual data to support that people prefer this split configuration, and aren’t just suffering under bad defaults.
Another one that pains me is Google Flight currency. It's always on the currency of the country I am. I have manually selected USD countless times and it always goes away.
Spotify does this as well. I hate it. No, I do not speak the local language, stop!
Thanks for bringing that topic, for me as an expat it a major pain. I live in a country with rather unusual language, but I have only contact with English speaking people. And every service puts the locale of this in default - even with stating in browser settings what are my preferences. The worst part of this is that in many places I don't even know how to change local on specific pages manually.

VPN is the only valuable option for me unfortunately.