but then you have to -know- at which geo you want to operate.
The internet has long been broken as a global field imho
It does not "fix" that at all, and breaks so many other things. I don't wanna see US/UK/Australian prices just because I happen to live in Spain but prefer English when browsing the web (literally same boat as parent).
i meant it fixes allowing you to pretend to be phsycally somewhere else, but as you say introduces a whole can of new problems/hurdles
idk man i just switch it on and off depending on site
They absolutely do lol.
Like it or not, people like you are outnumbered by people who set their Accept-Language header wrong and don't know how to fix it. Those people probably buy more too (or at least buy more that shows up in tracking, since you sound like the kind of person who disables cookies etc. too).
Is this actually something that you can back up with data, or are you just guessing?
I find it hard to imagine that would be the case, considering this header generally gets populated by the user's system locale/language.
And you know what? I didn't pay so much attention to what English I'm selecting so part of my devices are set to UK english and part to US english. It's all English to me, just don't translate my File menu!
I let you track me Google, please use it for some good UX and not just advertising.
At any one time, there's got to be tens of millions of people accessing Google from a country which has a primary language unknown to the traveller. Even if this number is insignificant compared to Google's full user base, the cost for Google to service 20-30mn people with a feature is presumably lower than their annual ad revenues across 20-30mn people.
Lately they've decided that auto translating the local language into English in Maps reviews is the wrong thing to do. They translate every other language into English but somehow since I live in this place I must speak the local language too, so I don't need that in English.
Ditto for search results. Surely you want Wikipedia in the local language! I mean you've been there for so long! You search for things in the local language, surely that's a sign of your preference and not the fact that searching for things locally requires use of the local language.
This also applies to so much other "we must make our software so smart and guess all your preferences". Google fails so consistently at this I cannot understand why they persist other than some sort of misplaced corporate self regard.
People like us are an edge case.
Many EU country have more than one official languages.
Most previous colony is bilingual.
He told me that for efficiency, they had different stages in the content rendering and that the main page structure didn't have your user information yet. That's rubbish IMHO because the accept language header should be readily available in that phase.
I think this is because half of Google live their entire career in California, so they don't know about other languages, units, time zones at all.
It's weird, because they employ SO many foreigners, bringing them to California. But somehow upon arrival they all get memory wiped about the existence of anything outside the bay area.
Other companies do this right. Google is user hostile.
No. I will NEVER navigate by bike, foot, or public transport in these strange America-only units.
https://qutebrowser.org/doc/help/settings.html#content.heade...
I assume other developer-centric browsers have similar options.
Your payment provider's automatic conversion is most likely more predatory than my bank's so I don't want to use it.
And even if you guess my location right, how do you know I want a badly/machine translated web site?
Why not let germans select iDeal and dutch users Giropay? They'll not click it if it's not useful for them. Adjusting the sort for what's most commonly used makes sense, but why actively thwart users from paying by geolocking payment methods by IP address...
Billing address is not a sure way to predict currency.
This is also a broken assumption.
First, Accept-Language is an ordered list, and most daily-multilingual people don't have an absolute order of preference, and more a topical list of preferences.
If I read an English news site that has a translated French version, it doesn't matter if I'm most proficient in French, I'll want the English version.
Then, as an affect of the first point, users will specify their most practical language, not some actual preference. For instance local non-English sites tend to do less shenanigans than international English ones, so having one's language set as English only will force English display for the former, with few impact on most other sites.
A French site ignoring all preferences and just pushing the French version by default actually helps in that case.
If anything, I just wish site owners stopped trying to be cute or clever and just had a very obvious and quick interface to switch to other versions. Wikipedia does it decently well for instance.
Where does this assumption come from? Given the fact that many (most? almost all?) sites don't honor the Accept-Language header, I doubt that there's much game theory going on in users' head when deciding this configuration.
We definitely pick languages that work as opposed to languages that we speak. Setting it to Dutch is just worse: UX doesn't fit, english search results wouldn't show up (way fewer results/content/info), and translations often don't make sense (imagine a button called "you shut it" on a modal window, it's a literal translation of one interpretation of the string "close it" but you'll be confused as to what that button will do)
Technically Accept-Language allows you to specify a "quality value"/weight for each language... https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/...
IMO there is a lot of improvements that can be made by both the browser and websites:
Websites should probably allow users to override the browser-requested language. But browsers should also allow users to choose between "Site default", "Request system default language", "Request English", "Request Chinese", "Request Spanish", etc. on a per site basis.
Most optimally however: sites should expose a list of supported languages, maybe in the manifest.json: https://developer.mozilla.org/en-US/docs/Web/Progressive_web... Format would be something like: `Map<iso639Code: string, Tuple<translationQuality: float, comments: string>>`
Language selection should be done on the client side, not on the server.
Having priorities and weight and language lists in the manifest help for negociation, but at the core of it, the user will want to choose language based on context and content. > Language selection should be done on the client side, not on the server.
Yes.
Using a site specific list on the client side could also do it (let's say I always want Facebook in a language and Google in another, Linkedin in yet another etc.). It still will be pretty cumbersome, probably needs an auto-save and sync of the preferences, and still hits problematic cases, but it would be the most pragmatic solution.
The worst instance of it is IMHO the way Google Maps work, changing language based on the country gives the best display (local names in the proper writing, no internationalization), I wish there was an easier way than screwing with the Google account preferences. As you point out, having clients able to unambiguously request a specific version at each requests would gives us so many more options.
The solution there is not to abandon the very useful Accept-Language header, but to never offer half-baked translations. Is your website multilingual? Fine, but only offer fully translated and verified translation sets. It's OK to have your UI and your own content translated in a few languages — for a company that may make sense depending on their target clientele — but you'll have to maintain all of these and keep them in sync.
However, user content is off-limits. No automatic translations unless you only offer those under a button to be helpful (like 'Spanish detected, click to show an automatic translation into English'), but really, leave that to the user's browser.
Use Accept-Language to pick a language, and then offer me a way to switch in addition to that. That's all there is to it.
> Wikipedia does it decently well for instance.
Wikipedia doesn't do that. Each language is its own instance, where content may be ported to by translating it (or parts of it), but outside of the Mediawiki UI texts, it is not a translation of the same content. The Dutch version of the lemma 'Language' is a different article in a different language with some overlap. There is no claim made that it is the same article in Dutch. It is hosted on a different sub-domain and path on purpose.
Sadly that ship has sailed.
We can look at the reaction from smaller youtubers as auto-dub rolled out. Most are sympathetic to the quality issues but are seeing it as either a "good enough" or at least a "better than nothing" feature that helps them expand their audience with no visible cost on their side.
Or official government sites that have explicitely disclosed AI translations and didn't bother passing it through a regular translator.
This situation just won't get better. Except perhaps the day AI is actually intelligent and we have human being level translators running on cloud servers.
> Wikipedia
Yes, those are not translations, but in that specific case they also don't need to: the quality of the article will vary depending on the editor, but there's no "original" article, so nothing to translate from IMHO.
From my technical standpoint it worked really well and the code was very slick. It was a lot of fun to build.
From a user standpoint most of our users really just wanted English regardless of their Accept-Language header. They had the option to change it in the footer but this apparently wasn't obvious enough.
We just ask now, and our users are happier.
I run into those regularly and it's always a struggle to know how to stay on the damn page I clicked on: will the "continue" button use the preselected value or will it dismiss the pop-up and continue on the current page?If the former, is the preselected value the page I'm on or a different language? Can I guess which locale I'm on to select that and dismiss the pop-up then? Can I inspect-element→delete this modal and just sidestep the whole problem? Even just a small close button is a luxury on these language walls...
95 out of 100 times, I'm fine with whatever language I clicked on, and if I want your German version for locale-adjusted shipping info or payment options or whatnot, I'll look for a language selector on the top right or, alternatively, in the page footer. If it's in one of those two places, I'd be much happier about a web without JavaScript-based pop-ups constantly
It's just a separate page you hit after signing in if we don't have your preference. You click on the language you want and you are redirected to the dashboard.
The option to change it still exists in the footer.
I’m currently agonizing about how to let the user change their language, because I want to respect locale as well (es-MX vs es-ES for example). And I haven’t found a good UX pattern for changing language+locale. I’ll likely just implement a big list that the user can select, and have the current language be a link that they can click to change via a modal.
You want your users to be able to change their location (and, therefore, locale) and their language independently. The Accept-Language header could be used as a sentinel for language. Then again, I wouldn't outright rely on geoIP to set the locale which is an umbrella for regional differing variables like timezone, date formatting, currency, VAT / Taxes,...
I think it's okay to have your content served, by default, in a language that reflects either the majority of your target audience; or the culture / place you're based in. Changing the locale / language should follow a clear UI pattern e.g. a language switcher & locale switcher in the header; or a clear navigational aid pointing to a context menu. That's how Hetzner works, for instance. Another example is Deliveroo.
Why is it so hard to just add something as a setting/feature and offer it to people without forcing it on the user?
just dislike video and move on. I'm guessing Google wants uploader penalized, and I do feel sorry but it's not my problem.
At least I know I didn't mess anything on my WebOS TV.
Exactly, it's like they've never left their own state levels of ignorance
Which has been baffling to me considering how many foreigners work at these companies.
It's the idea that the user has a preference for something, and it applies always and everywhere, even when it's not applicable.
One of the sister replies linked to an extension to help with that, which I'm going to give a try, but it's annoying that there's not a simple toggle in the youtube settings to tell it to always use the original language. On the rare occasion that I want to use the translated audio track, I can do _that_ on my own; I speak enough languages that this is a very rare occasion with the type of content I watch.
This isn't even something I can understand as them being hostile to ad blocking or wanting to push ads. This is a 'convenience' feature that is just poorly implemented. But I'm sure there's some PM that got a pat on the back for it.
Another extremely annoying thing I've noticed more often now are machine-translated versions of content in the search results. Reddit for example does this now, and it's just terrible. One of the main reasons I use non-English search terms is to get non-English results, e.g. because I'm looking for information on topics that is not globally applicable.
I don't know how that happens. Like, do individual teams within Meta have to re-learn that users in their own system have a language preference? (Not even talking about Accept-Language, it's a Facebook user setting.)
I have my phone's language set to English as a native English speaker. Google maps reads me the Swedish road signs, in English.
My computers are all set to English even though I'm a German living in Germany, and I absolutely hate it when local business websites give me the "we don't ship abroad, sorry" just because of my browser's language settings.
In our case, less is more. We decided to not do any of that, and were a bit paranoid that maybe we were going against a 'best practice' somehow?
All we do is look at navigator.language to get the language code:
const userLanguage = navigator.language.split('-')[0]
and if we support that language then we will change the "Translate" button label to that language and default behavior to shortcut to that language version (you can still get the full list).Thats it. Keep it simple.
Example: https://restofworld.org/2024/filipino-ai-chatbot-launches-20...
(translation UI in the byline area, under lead image)
The worst offender was eBay which would machine-translate listings from English to Spanish.
E.g. an English Wikipedia page will present me with the following language suggestions:
Suggested languages
Deutsch
Français
Nederlands
When you assume a language, you make an ass of you and of me. Don't be an ass. Be like Wikipedia.Well, it's in an order, but I don't know about alphabetical. I clicked on today's English featured article and looked at the languages: "中文", "Italiano" are "suggested", then the remainder are grouped by geographic region, and aren't particularly alphabetical. They appear to be in groups which are still not alphabetical. Europe seems to have a Cyrillic group but "Қазақша" is shown after "Українська" which isn't accurate in Kazakh (Қ isn't a letter in Russian, this is probably why this happens) and probably also unexpected for anybody who isn't familiar with the letter Қ. The Chinese languages don't seem to be in stroke order (no expert here), although Korean is below them (because of course, K for Korean alphabetizes after C for Chinese).
Anyways, no hate for Wikipedia; they do a great job of localizing. Just a bit of nuance/pedantry about how you can't "alphabetize" language names in their own language.
This is not only an issue on websites but also on apps. For example, the Books and Podcasts apps on iOS show me both Dutch-speaking and French-speaking titles. I tried to raise this issue back when I worked at Apple but they only have 1 storefront per country and didn't feel like changing it.
I'm not sure what the purpose of this idiocy is. Is it a dark pattern of some kind? Or is it just so hard for grey, cubicle-dwelling functionaries at companies that are themselves often very international to set systems for leaving one's language defaults static unless otherwise adjusted by said site user?
If you're already tracking me and every single one of my digital activities through my devices, then at least give me some modicum of convenience from all the bother.
It also flips the entire user interface to a right-to-left layout to match Urdu’s writing direction, which feels completely unfamiliar and disorienting to me.
But google will then localize results to where I am, which typically deprioritizes English results because I'm not in an English speaking country.
You can set your google settings to act as if you're in the US permanently, but then googling anything local/regional will serve results aimed at people a continent away.
All this "guessing what the user wants" has become detrimental to actual UX.
And then the 'change language' menu is rendered in the unreadable script.
<Cough> google maps, in fact most google apps.
In your example, there's only one language available, and it depends on your location, and that is fine.
What is NOT fine is the general case, where several languages are available, and you have already chosen the one(s) you prefer, but the site decides to ignore your choice because reasons.
> If you want to use GeoIP, fine — but only for currency, shipping, legal stuff, never for language
Why oh why does Google Maps think that "miles", "feet", and "yards" are words that have any meaning at all?
Only like a 20th of the world even knows what these obscure things are. Just because I'm currently located in a country that nominally uses these arcane units doesn't mean that I know what they are.
Oh you can change it to real units temporarily. But if you look away for a split second it changes it right back.
I'm LOGGED IN. How could you not remember?!
It's a uphill battle where you cannot convince others, so the best thing you can do is figure out how to adjust your own setup to make it less of a hassle.
> Do it right or don’t do it at all.
I'm fairly sure we wouldn't have the internet nor the web if everyone thought like this. I personally also strive for making things as good, right and correct as possible, but obviously I cannot force others to think alike, especially for-profit businesses that don't really care about "correct", only about "good enough".
Also, it's only partially true, e.g. Amazon doesn't force the language at all, and while it presumes the country of delivery (which makes perfect sense as not all products are available everywhere), it explicitly nags me about it so I can change it with one click.
If they did understand, no site would ever propose you an automatic translation into your primary language over the original text written in any other of the languages you can read.
I've been on static IPs for a decade or so; my last home's static IP was regularly Geo-located to Romania, the next one to the Netherlands, and sometimes even further afield; I'm in the UK.
I started to have a heart attack just yesterday because Zenarmor on my OPNSense box was suggesting that a particular device was sending traffic to a region it has no business sending traffic to; turns out the DB is just wrong and a quick search indicated it actually (currently) belongs to the UK.
In a separate incident (also yesterday, as I then got into investigative mode), I installed Rethink on my phone, which suggested, yet again, that devices (including my phone itself) were sending traffic to places they shouldn't be; again, false alarm, turns out they were all UK IPs, one of which being my own static IP which was being wrongly attributed to another region.
If this part of locating the IP can't even universally be done correctly; why on earth is anyone even considering trying to use it to guess a person's language.
EDIT: The result of these issues, particularly with my home IPs usually manifests in certain sites displaying in languages and with currencies neither I nor my family speak/read or understand, for me I'm used to it and will look for where/how to change the language/currency, but for my wife and kids it's just confusing.
But yes, many ignore the selected language or units completely.
It is great to be able to select individually per site. I often like to use the native French and just drop back to English if its technical language.
I do find that every site has the setting in a different place which is annoying, it would be great to be able to select it in a standard place on the browser.
The worst offenders are the single language per country sites. For example Ebay insists on only using German in Switzerland, which is rather frustrating since I only know English and French so far.
They're polluting search results and it's the ultimate disrespect against multi-lingual users... it's made my life hell when trying to find localized information (for example, in Portuguese), when my computer is set to Portuguese but I'm searching in English.
I don't care if there are any other auto-translated thing that you though it's close enough because they have same prefix that would help.
NO, absolutely NO.
I even specified the en-US or any other language that original content uses as the secondary candidates, then most just ignores it and serves randomly translated thing that you think would be close enough because you can't tell.
Just please, follow what user asked first.
Edit: formatting
vaylian•2h ago
lblume•2h ago
If websites really need translation (which they very likely do not!), this should be the norm as well.
watson•1h ago
oefrha•1h ago
happytoexplain•1h ago
Aachen•1h ago
detourdog•1h ago
dijit•1h ago
https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/...
I wrote about it once; https://dijit.svbtle.com/trusting-the-user-they-know-what-la...
Outlook web actually respects this, which is refreshing.
Vinnl•1h ago
I speak Dutch and English, but have English set as my preferred language, because most of the time that multiple languages are available, that is the original language. However, sometimes I'll be visiting a Dutch site that has a (usually badly-)translated English version available, and I'd rather get the Dutch version.
dijit•1h ago
I would think the ideal prioritisation should probably be:
* Exact (en_GB)
* Exact (fr_CA)
* Soft (en_*) // Any variant of English you might have available
* Soft (fr_*) // Any variant of French you might have available
* Translated. (to first preferred)
for Accept-Language: “en_GB,fr_CA”